올플래시 스토리지 선정 시 체크포인트
by 박주형 (jhpark@gluesys.com)
기업들이 올플래시 스토리지를 도입하고자 하는 주된 목적은 기본적으로 하드디스크 기반의 스토리지보다 높은 성능을 제공할 수 있다는 것에 있습니다. 플래시 기반의 스토리지는 전통적으로 미션 크리티컬하거나 지연시간에 민감한 핵심 워크로드를 운용할 목적으로 사용됐으나, 높은 가격과 부족한 유스케이스로 인해 많은 기업들이 도입을 주저해 왔습니다. 하지만, 플래시 메모리의 가격이 점점 낮아지면서 상대적으로 비용이 저렴한 올플래시 스토리지들이 시장에 등장하게 되었고, 이는 전반적인 스토리지 성능 기준과 요구사항을 향상시키는 데 일조했습니다.
이렇게 올플래시 스토리지에 대한 접근성이 높아지고 올플래시 스토리지에 대한 시장 검증도 해소되면서 많은 기업들이 비즈니스 가속화를 위해 올플래시 스토리지의 도입을 추진하고 있습니다. 그러나 전통적인 스토리지 시스템에서 올플래시 스토리지로 전환하는 것은 계획적이고 신중한 접근이 필요한 결정입니다. 올플래시 스토리지 선택 시 체크 포인트를 간단히 정리해 보았습니다.
하드디스크 vs SSD
하드디스크와 솔리드 스테이트 드라이브(이하 SSD)의 관계를 단순히 성능과 가격 문제로 치부하기에는 복잡한 부분이 있습니다. 하드디스크는 기본적으로 기계적인 동작을 통해 데이터를 읽고 쓰는 스토리지 미디어입니다. 이 때문에 플래터의 바깥쪽 트랙이냐 안쪽 트랙이냐에 따라 데이터를 읽어오는 속도가 다르고, 읽기/쓰기 헤드가 플래터 위를 이동함에 따라 기계적 지연이 발생해 읽기 속도가 상대적으로 느릴 뿐만 아니라, 일정하지 못하다는 문제가 있습니다. 반면에 SSD는 데이터를 읽고 쓰는데 전기 회로를 활용하기 때문에 일정한 읽기 성능을 제공할 수 있어, 많은 데이터를 계속해서 요구하는 집약적인 워크로드에 적합합니다. 게다가 하드디스크에 비해 발열과 충격에 강하고, 보다 작은 용적량을 제공해 데이터센터 내 공간 비용을 최소화할 수 있습니다.
하지만 SSD는 고질적으로 수명과 쓰기 성능에 대한 이슈가 있다는 점도 알고 있어야 합니다. 우선, 플래시 메모리는 하드디스크와는 달리 쓰기 수명이 있어 일정 쓰기 횟수를 넘어가면 더 이상 쓰기 작업을 못 하게 됩니다. 게다가 SSD의 가비지 컬렉션1 작업은 1bit의 데이터만 수정되어도 블록 전체를 다시 써야 하고, 이것이 많아지면 쓰기 성능에 영향을 주게 됩니다. 이를 방지하기 위해 대부분의 SSD 제품은 오버 프로비저닝2 기능을 통해 쓰기 버퍼를 위한 공간을 확보하고, 특정 블록만 마모되지 않도록 쓰기 빈도를 관리하는 웨어 레벨링3 기술 등을 적용해 SSD의 쓰기 성능과 수명을 증가시키고 있습니다. 하지만 SSD의 이러한 단점들을 고려해도, 하드디스크에 비해 압도적인 성능을 제공한다는 것은 사실입니다. 그리고 이러한 성능을 완전하게 활용하기 위해서는 무엇보다 애플리케이션에서 요구하는 워크로드 유형에 대한 고민이 필요합니다.
워크로드 유형
올플래시 스토리지가 제공할 수 있는 성능은 운용 중인 애플리케이션이나 워크로드 유형에 따라 다를 수 있습니다. 이 때문에 단순히 성능 수치를 보기보다는 다음과 같이 자사의 애플리케이션 운용 방식에 따른 시스템 구성과 이에 따른 워크로드 유형을 알아볼 수 있어야 합니다:
-
스루풋: 자사 인프라 내에서 스루풋 중심의 애플리케이션을 활용하고 있는 경우, 스루풋 요구사항을 면밀히 검토해 볼 필요가 있습니다. 스루풋은 스토리지 시스템에서 오고 나가는 데이터의 양을 측정하는 지표입니다. 빅데이터 분석이나 영상 후반작업처럼 오고 나가는 데이터의 규모가 클수록 높은 스루풋을 요구하는 환경이라고 볼 수 있습니다. 그리고 운용하는 데이터의 규모가 큰 만큼 네트워크 대역폭에 대한 요구사항도 높아질 수 있습니다. 다만, 네트워크 대역폭을 확장하는 만큼, 서버 점유율 또한 높아진다는 점도 고려해야 합니다.
-
IOPS: 주로 동시에 여러 사용자가 접속하는 온라인 트랜잭션이나 가상 데스크톱과 같이 병렬 작업이 많이 발생하는 환경에서 높은 IOPS가 요구됩니다. 하지만 IOPS는 많은 벤더들이 과장해서 강조하는 만큼 가장 주의 깊게 따져봐야 하는 지표입니다. IOPS는 블록 크기, 랜덤 I/O의 비중 등에 따라 수치가 크게 상이합니다. 단순히 높은 IOPS를 제공한다 해도, 실 환경에서는 그 기준이 천차만별이기 때문에 도입 전에 이러한 기준들을 잘 살펴보고, 유스 케이스가 가장 비슷한 레퍼런스를 찾아서 비교하는 것이 필요합니다.
-
지연시간: 고성능 컴퓨팅이나 실시간 스트리밍 서비스를 제공하는 환경에서는 극단적으로 낮은 지연시간을 요구합니다. 하이엔드급 올플래시 스토리지는 1ms 이하의 지연시간을 제공하지만, 몇몇 초고성능을 요구하는 애플리케이션은 수십 마이크로초 이하의 지속적인 응답속도를 요구하기도 합니다. 지연시간은 최소 지연시간보다는 평균 지연시간을 참고하는 것이 중요하며, 평균에서 많이 벗어난 수치가 나올 수도 있기 때문에 최대 지연시간에 대해서도 알아보는 것이 좋습니다.
올플래시 스토리지 선정을 위한 체크포인트
이처럼 올플래시 스토리지는 기존 하드디스크 기반 스토리지에 비해 압도적인 속도와 낮은 지연시간을 제공하지만, 이러한 이점을 자사 인프라에서 최대한으로 활용할 수 있으려면 어떤 점들이 고려되어야 할지를 다루어 보고자 합니다.
-
목표 성능과 비용: 목표 성능을 제공하는 제품을 알아보기 전에 우선 벤더마다 성능에 대한 마케팅 전략도 매우 다른 점을 명심해야 합니다. 어떤 벤더는 단순히 IOPS나 스루풋에 대한 성능만을 강조하고, RAID 레벨이나 데이터 리덕션 기능에 따른 성능 저하 부분까지는 언급하지 않는 경우도 있기 때문입니다. 또한, 직접 업체에 문의하거나 벤더들이 광고하는 성능을 참고하는 것도 좋지만, SPC-14와 같이 실 환경 워크로드를 구현하는 써드파티 벤치마크를 참고하는 방법도 있습니다. 목표를 정했으면, 도입하고자 하는 올플래시 스토리지의 TCO와 기존에 보유한 디스크 기반의 스토리지의 TCO를 비교하고, 용량과 애플리케이션, 데이터센터 운영비용, IT 관리 및 소프트웨어 라이선스 비용 등을 따져봐야 합니다.
-
네트워크 구성: 자사 인프라의 네트워크 사양에 대해 잘 알고 있어야 데이터 병목을 피할 수 있습니다. 올플래시 스토리지를 고성능에 고집적으로 구성함에 따라 네트워크 대역폭에 대한 요구사항 역시 대폭 높아질 수 있기 때문입니다. SSD는 기존 하드디스크에 비해 수배의 성능을 제공하기 때문에 예상과는 다르게 기존의 네트워크 대역폭을 포화시킬 수도 있습니다. 게다가 NVMe SSD를 도입해 NVMe over Fabrics를 활용하고자 하는 경우, 네트워크 구성에 따라 별도의 호스트 어댑터나 드라이버 등의 조정이 필요한 경우도 있습니다.
-
데이터 리덕션: 스토리지 공간을 확보하기 위해 데이터 리덕션 기능을 사용하기보다는, 경우에 따라 데이터 리덕션을 수행하는 것이 더 중요합니다. 데이터 유형에 따라 중복제거율이 다르며, 중복제거를 설정하는 것 보다 성능을 확보하는 것이 비용 효율적인 경우도 있습니다. 예를 들어, 가상머신을 운용하는 환경에서는 압축 및 중복제거율이 매우 높아, 스토리지 미디어를 모두 플래시로 구성해도 용량 대비 비용 효율이 높다고 볼 수 있지만, 영상 관제 시스템과 같이 영상 및 이미지 파일을 저장하는 환경에서는 데이터의 특성으로 인해 압축 및 중복제거율이 매우 낮기 때문에 데이터 리덕션 기능은 오히려 성능 저하의 원인이 될 수 있습니다.
-
NVMe vs SAS/SATA: 최근 수년 사이 NVMe SSD가 시장에 본격적으로 등장하기 시작하면서, NVMe SSD만으로 구성된 올플래시 스토리지 제품이 기존의 SAS/SATA 올플래시 스토리지의 자리를 넘보고 있습니다. NVMe SSD는 PCIe의 높은 대역폭을 활용해 SAS/SATA 인터페이스 대비 비교적 높은 성능과 낮은 지연시간을 보장합니다. 가격 차도 점점 줄어드는 추세라, 일각에서는 NVMe SSD가 SAS/SATA SSD를 빠르게 대체해 나갈 것이라고 보고 있지만, All-NVMe 스토리지 도입은 시기상조일 수도 있습니다. 우선, NVMe에 최적화된 스토리지 컨트롤러를 가진 올플래시 스토리지 제품들은 아직 많지 않으며, NVMe-oF를 지원하거나 OS의 I/O 스택을 거치지 않고 NVMe 드라이브에 접근할 수 있는 파일시스템이 없는 제품들도 있습니다.
마치며
올플래시 스토리지의 높은 성능과 효율성은 기업과 기관에 많은 장점을 제공합니다. 그러나 올플래시 스토리지를 도입하는 결정은 비용과 워크로드 요구 사항, 확장성이나 호환성 등 여러 가지 요소를 종합적으로 고려해야 합니다. 전문가들과 협업을 통해 적절한 솔루션을 찾고, 기술적인 변화를 반영하여 미래 지향적인 스토리지 시스템을 구축한다면 더욱 효율적인 데이터 관리와 혁신적인 비즈니스 전략을 구사할 수 있을 것입니다.
참고
- https://www.techtarget.com/searchstorage/feature/SAS-vs-NVMe-The-future-of-the-two-key-storage-interfaces
- https://www.computerweekly.com/feature/A-guide-to-choosing-and-using-all-flash-array-storage
- https://www.techtarget.com/searchstorage/feature/Building-a-business-case-for-all-flash-array-storage
- https://www.techtarget.com/searchstorage/feature/Five-factors-to-consider-before-buying-all-flash-storage-arrays
- https://www.techtarget.com/searchstorage/definition/overprovisioning-SSD-overprovisioning
- https://www.techtarget.com/searchstorage/definition/wear-leveling
- https://storageswiss.com/2015/02/23/what-are-iops-and-should-you-care/
주석
-
가비지 컬렉션(garbage collection): SSD에서 데이터는 페이지 단위로 저장되며, 여러 페이지가 모여 블록을 구성합니다. 그리고 데이터의 읽기/쓰기는 페이지 단위에서 가능하지만, 데이터를 삭제할 수 있는 최소 단위는 블록입니다. 즉, 블록 내 일부 페이지를 변경하려면, 수정된 페이지를 새 블록에 쓰고 기존 블록을 삭제해 재사용이 가능하도록 비우는 작업을 수행하는데, 이를 가비지 컬렉션이라고 합니다. 가비지 컬렉션은 쓰기 작업의 부하를 줄이기 위해 활동이 적은 시점에서 수행되곤 합니다. ↩
-
오버 프로비저닝(overprovisioning): 오버 프로비저닝이란, SSD에 기본 저장 용도와는 별도로 확보한 스토리지 공간을 말합니다. 오버 프로비저닝으로 확보한 공간은 플래시 메모리의 쓰기 부하를 분산시켜 SSD의 수명을 증가시키고, 여분의 블록을 확보해 쓰기 증폭(write amplification)으로 인한 성능 저하를 방지합니다. ↩
-
웨어 레벨링(wear leveling): 웨어 레벨링은 SSD의 수명을 증가시키기 위해 블록별 쓰기 수준을 조절하는 기능을 말합니다. 플래시 컨트롤러에서 웨어 레벨링 알고리즘을 활용해 블록 별로 쓰기 빈도를 조절해, 쓰기 부하를 분산시켜 플래시 메모리의 소모를 최소화합니다. ↩
-
SPC-1: SPC-1은 국제 스토리지 성능 표준화 인증 기구인 스토리지 성능 협회(Storage Performance Council)에서 주관하는 벤치마크 인증으로, 데이터베이스, 온라인 트랜잭션(OLTP) 시스템 등 무작위 입출력이 가중되는 실제 스토리지 환경을 구현해 입출력 성능(IOPS)과 응답시간(ms)을 측정합니다. ↩