본문 바로가기

TECH ZOOM

엔터프라이즈 플래시 스토리지 성능, 디바이스 완성도가 차이를 결정합니다


플래시 어레이는 통합 인프라 상의 랜덤 액세스 및 고성능 분석이 요구되는 환경에서 디스크 스토리지 대비 월등한 성능을 제공하는 반면, 지속적인 고성능과 내구성을 보장하기 위해서는 세심한 관리가 요구됩니다. 바로 이러한 부분 덕분에 랜덤 액세스 및 로우 레이턴시 등 플래시의 이점을 활용하고 내구성 및 쓰기 배율 등 플래시의 약점을 어떻게 극복하는지에 대해 벤더 간 차이가 발생하게 됩니다. 플래시 어레이는 크게 2가지, 즉 플래시 컨트롤러와 플래시 미디어로 구성됩니다. 컨트롤러와 미디어는 모두 플래시의 속성에 최적화 되어 최상의 성능과 내구성을 보장하도록 설계되어야 하며, 올플래시 벤더들의 경우 어레이 컨트롤러를 통해 차별화를 시도하기도 하지만, 대부분은 플래시 디바이스 기술에 의존하고 있습니다.

엔터프라이즈 디스크 어레이 컨트롤러는 컨트롤러 및 캐시 내부 인텔리전스를 통해 고가용성, 확장성, 성능에 관련된 기능을 제공하도록 설계됩니다. 디스크의 경우 미디어 자체적으로 이러한 기능을 제공하기가 어렵기 때문입니다. 디스크는 기계적인 디바이스인 만큼 용량당 비용은 계속해서 낮아지고 있지만 성능을 개선할 수 있는 요인은 거의 존재하지 않습니다. 실제로 디스크 드라이브는 60여 년의 역사를 유지해 오는 동안 용량의 경우 8자리 이상 증가했지만 최대 성능은 불과 3배 정도 증가하는 데 그쳤습니다.

플래시 미디어는 프로그래밍이 가능한 디바이스로서 회전에 따른 레이턴시가 발생하지 않고 기계적인 검색 시간이 필요치 않으므로 랜덤 엑세스에 적합합니다. 그러나 플래시 미디어는 성능과 내구성을 관리하기 위한 매개 변수가 다양하므로 훨씬 더 복잡합니다. 디스크와 달리 포맷 된 셀 페이지에 데이터 쓰기 작업이 이루어지며, 포맷은 개별 페이지 대신 페이지 블록 단위로 이루어집니다. 블록 내 페이지가 업데이트 되는 경우 새로운 포맷 페이지에 쓰기 작업이 이루어지며, 이전 페이지는 더 이상 사용되지 않습니다. 유효하지 않은 각각의 페이지들로 블록이 가득 차게 되면, 용량을 복구하기 위해 garbage collection을 수행해야 합니다. 나머지 유효한 페이지들은 이전 블록이 재포맷 되기 전에 새로운 블록에 읽기/쓰기 작업을 수행하게 됩니다. 디스크와 달리 플래시 미디어는 읽기, 쓰기가 반복될수록 수명이 줄어듭니다. 플래시는 산화물 박막에 의해 절연된 부동(floating) 게이트에 저장된 전자를 사용하는 방식으로, 비휘발성의 전자는 계속해서 유실되며, 읽기 데이터는 전압을 걸어 더 많은 전자 소비를 촉진시킵니다. 이러한 과정 덕분에 블록은 사전 포맷된 페이지를 통해 정기적으로 리프레시 되어야 합니다. 이를 하우스키핑(SSD의 내부적으로 삭제된 영역을 관리하기 위한 리프레쉬와 기타 웨어레벨링을 관리 하는 작업)이라 부르는데, 이러한 플래시 페이지의 재쓰기 작업과 garbage collection을 위한 페이지 재쓰기 작업은 “쓰기 증폭(write amplification)”을 야기시켜 플래시 미디어의 수명을 단축시키고 성능 저하를 가져옵니다. 플래시 디바이스 내에서 이루어지는 기타 하우스키핑 관련 기능으로는 블록 맵핑, 웨어 레벨링(wear leveling), 압축, 확장 ECC(Error Correction Codes), 스페어 페이지 관리, 성능 및 내구성 모니터링 등이 있습니다. 단일 코어 프로세서로 이루어진 대부분의 SSD의 경우, 페이지 재포맷을 위해 블록을 이동시키는 동안 I/O 액세스가 차단되므로 이러한 하우스키핑 동작이 성능에 크게 영향을 미치게 됩니다. 실제로 하우스키핑 동작이 이루어지는 동안 IOPs가 약 75%까지 저하되는 것을 확인할 수 있습니다. 플래시 어레이 상에서 성능 테스트를 실시해보고자 한다면, 전체 플래시 셀에 여러 번 반복하여 쓰기 작업을 실시한 후, 일반적인 조건에서 하우스키핑 동작 중 어레이가 어떻게 운영되는지 시뮬레이션 하는 것이 중요합니다.

따라서 플래시 어레이의 성능은 어레이 컨트롤러 내부의 컨트롤 패스 및 캐시에 국한되는 것이 아니라 플래시 미디어의 프로세싱에 따라 실질적인 성능이 좌우되는 것입니다. 엔터프라이즈 스토리지에 플래시가 처음 도입되었을 당시 많은 벤더들이 상용 PC를 위해 설계된 SSD와 동일한 SSD를 디스크에 최적화 된 기존 스토리지 컨트롤러에 부착하는 방식을 시도했습니다. 하지만 이러한 접근법은 미디어 및 컨트롤러에 담긴 플래시 기술의 장점을 충분히 활용하기에 적합하지 않는 것으로 나타났습니다.

최근 몇 년간 다양한 신생업체들이 SSD에 최적화 된 컨트롤러를 적용하여 올플래시 어레이를 시장에 선보이고 있습니다. 그 중에는 인피니밴드(InfiniBand) 및 이더넷 스케일아웃이 가능한 컨트롤러를 장착하고 있으며, 현재 통용되는 스케일아웃 대역폭은 약 40 Gb/s로, 메타데이터 및 데이터에 대한 글로벌 액세스를 지원합니다. 일부 제품들은 하우스키핑의 영향을 최소화하기 위해 컨트롤러 버퍼링을 적용하거나 디바이스 페이지의 전체 블록에 쓰기 작업을 실시하는 등 반드시 컨트롤러 내부에서 하우스키핑이 이루어지도록 합니다. 그러나 컨트롤러 내부의 하우스키핑은 디바이스 리프레시 및 에러 코렉션 코드 작업 중 발생한 변화를 인식하지 못한다는 단점이 있습니다. 또한 새로운 올플래시 어레이 개발업체들의 경우 엔터프라이즈 컨트롤러 개발 경험이 부족하여 엔터프라이즈 어레이에서 제공되는 기능이 누락되거나 완성도가 떨어져 복제와 같은 기능의 경우 추가 어플라이언스를 구입해야 하는 상황이 발생하기도 합니다.

HDS는 엔터프라이즈 스토리지 컨트롤러의 코드를 적용한 SSD를 통해 이미 개발된 엔터프라이즈 스토리지 서비스 및 기능들에 영향을 미치지 않고 I/O 프로세싱을 획기적으로 개선하는 한편 내부 스레드 카운트 및 데이터 이동 속도를 향상시켰습니다. 특히 G1000 스토리지 어레이는 고성능 내부 스위치를 통해 인터널 스케일아웃이 가능하여, 786GB/s의 사용자 데이터 대역폭을 지원하며, 메타 데이터 대역폭의 경우 128GB/s의 속도를 지원합니다. (참고: GB/s는 초당 기가비트(Gb/s)가 아닌 초당 기가바이트를 뜻합니다.)

Hitachi는 이러한 컨트롤러 강화와 더불어 플래시 디바이스 자체의 성능과 내구성 또한 극대화 시켰습니다.



Hitachi는 플래시 미디어의 향상된 프로세싱 요건을 충족시키기 위해 쿼드 코어 프로세서와 SAS타깃 모드 컨트롤러 인터페이스를 지원하는 8레인 임베디드 PCIe v2.0, 그리고 플래시 DIMM에 직접 연결되는 32개의 패러랠 경로로 구성된 Flash Media Device (FMD)를 개발했습니다. 이러한 구성을 통해 멀티 작업에 대한 동시 처리가 가능하며, 특히 I/O 경로 상에서 garbage collection, wear leveling, ECC 등등의 하우스키핑이 수행되지 않도록 함으로써, 호스트 I/O 중단으로 인한 성능 저하의 가능성을 차단합니다.

FMD는 또한 쓰기 작업을 최소화하여 내구성 및 성능을 향상 시킵니다. 플래시 컨트롤러 칩의 “블록 쓰기 방지”라는 기능을 통해 쓰기 작업을 제거할 수 있습니다. 즉 알고리즘에 의해 “0s” 혹은 “1s”로 인식되는 모든 데이터 스트림을 실시간으로 포인터에 리맵핑 시키는 것입니다. 이 기능은 패리티 그룹 포맷 시 매우 유용하게 쓰입니다. 대부분의 쓰기 작업이 삭제되며, 이렇게 절약된 공간을 통해 다른 쓰기 작업을 위한 프로비저닝 영역을 확대시킬 수 있습니다.

FMD는 1KB의 데이터 쓰기에 대해 42비트의 ECC(Error Correction Code)가 이루어지도록 ECC를 확대함으로써, 1.4KB 당 최대 42비트에 대한 코렉션을 지원하며, 이는 표준 MLC 스펙인 24비트를 상회하는 수치입니다. 확장된 ECC는 더 많은 처리 사이클을 요구하지만 페이지 판독률을 높이고 재쓰기 작업 빈도를 낮춰 쓰기 증폭을 감소시킵니다. FMD의 데이터 진단 및 읽기 재시도 기능은 Hitachi 스토리지 컨트롤러의 정기 데이터 진단 및 복구 기능과 통합하여 시너지를 발휘합니다. 비트 에러가 FMD의 ECC 코렉션 기능을 넘어서는 경우 읽기 재시도 기능을 통해 데이터 읽기가 가능해지는 식으로 보조하는 것입니다. 이 기능을 통해 플래시 메모리의 매개변수를 조정하고 데이터 읽기를 수행함으로써, 해당 영역은 리프레시 되고, 데이터가 읽기 불능의 상태가 되기 전에 다른 영역으로 카피됩니다.

SSD의 경우 미디어 디바이스 처리 능력 상의 한계로 가용 용량이 400~600GB에 불과하지만 Hitachi는 세계 최초로 FMD를 통해 1.6TB의 가용 용량을 선보였습니다. 현재 Hitachi FMD는 1.6TB와 3.2TB 2가지 용량으로 공급되고 있으며, 스토리지 컨트롤러 내부 Hitachi Accelerated Flash 코드와 FMD 디바이스 조합의 경우 올해 2월 SPC-1 성능 벤치마크에서 최상위 성적을 기록한 바 있습니다.



도표 상에서 보이는 월등한 성능 곡선은 개선된 컨트롤러 소프트웨어와 Flash Module Device의 합작품이라고 할 수 있습니다. SPC-1 벤치마크의 100% 로드 기준에서 0.96ms의 응답시간을 유지하며 2,004,941.89 SPC IOPS를 기록한 것은 어떠한 벤더도 이루어내지 못한 성과입니다. 이 기록은 단 64개의 FMD로만 달성한 것이며, 전체 엔터프라이즈급 구성 기준의 가격표로 환산했을 때 SPC-1 IOP당 1달러로 계산됩니다. 기타 플래시 어레이 벤더들의 경우 제한적인 컨트롤러 성능과 상용 플래시 미디어에 의존하고 있으므로, 최적의 플래시 기술을 제공하는 데 한계가 존재하게 됩니다. 특정 애플리케이션 용도를 위한 제품이라면 충분할 수도 있으나, 엔터프라이즈 어레이의 요건을 만족시키긴 어려운 것입니다.

이와 달리 커스텀 플래시 모듈을 사용하는 Hitachi는 상용 SSD 대비 월등한 성능과 밀도를 제공하며 통합면에서도 훨씬 유리합니다. 일부 AFA 벤더들은 SSD 업계에서 오랜 기간 동안 엔터프라이즈 로직 및 미디어칩을 경험했거나 관련 스타트업 출신의 엔지니어를 보유하고 있지 않다면 커스텀 모듈을 효과적으로 사용할 수 없을 것이라고 주장하기도 합니다. 그러나 Hitachi는 업계의 어떤 벤더들 보다 오랜 기간 동안 엔터프라이즈 로직과 미디어 칩을 연구해 왔으며 엔지니어 역량을 극대화 시키기 위한 노력을 계속하고 있습니다. 실제로 SSD 벤더들은 비용적인 면을 부각시키기 위해 대용량 볼륨의 상용 마켓을 공략하고 있으며, 엔터프라이즈 성능과 내구성, 용량에 요구되는 프로세싱을 개선하는 데 소극적으로 대처하고 있습니다. 최상의 비휘발성 메모리 디바이스 개발에 적극적으로 투자하고 있는 Hitachi와는 많은 차이가 발생하는 부분입니다.

Hitachi는 FMD와 더불어 저용량의 SSD 및 SAS 디스크 기반에서도 비즈니스 요구에 따라 스토리지를 최적화 할 수 있도록 지원합니다. Hitachi 역시 상용 SSD를 사용하는 AFA의 경우 낮은 비용으로 특정 애플리케이션을 최적화 시킬 수 있다는 점에서 고유의 가치를 제공한다는 점을 인정합니다. 비록 제한된 확장성과 계층화, 복제와 같은 엔터프라이즈 기능을 제공하지 못한다는 제약이 있더라도, 단일 시스템 구축 혹은 중소 규모의 제한적 애플리케이션에 대해서는 AFA가 효과적으로 활용될 수 있을 것입니다.