지난달 퓨어스토리지는 업계 최초로 기업들의 주요 컴퓨팅 환경을 위한 100% NVMe 올플래시 어레이인 플래시어레이//X(FlashArray//X)를 출시했습니다.
플래시어레이//X(FlashArray//X)에 대한 기대는 매우 높았는데, 이는 업계 선도적으로 NVMe를 합리적인 가격에 이용할 수 있도록 하는 지원뿐 아니라 다이렉트플래시(DirectFlash) 모듈을 위한 퓨어스토리지만의 고유한 소프트웨어 정의 아키텍처 때문입니다. 다이렉트플래시(DirectFlash) 모듈은 NVMe 인터페이스를 통해 플래시의 높은 병렬성을 강력한 컴퓨팅 파워에 기반한 소프트웨어로 처리함으로써 새로운 수준의 성능 집적도를 제공합니다.
플래시어레이//X(FlashArray//X) 출시 후,
고객들은 당연히 어떻게 퓨어스토리지가 NVMe 기술을 //X 섀시 밖으로 확장할 것인가에 대한 질문을 제기했습니다. 오늘 그 질문에 대한 해답을 드리도록 하겠습니다.
이 블로그는 11부로 구성된, 클라우드 시대의 플래시: “올해의 소프트웨어” 출시 블로그 시리즈의 일부입니다. 모든 새로운 기능들에 대한 자세한 내용을 확인하십시오.
클라우드 시대의 플래시: “올해의 소프트웨어” 출시 블로그 시리즈
- 퓨어스토리지 설립 사상 최대 규모의 혁신적인 소프트웨어 출시
- 퓨리티(Purity) 액티브클러스터(ActiveCluster) – 모든 운영 환경에 적용 가능한 액티브-액티브 클러스터 솔루션
- 진정한 스케일 아웃 스토리지, 플래시블레이드(FlashBlade) – 5배 커진 용량, 5배 향상된 퍼포먼스
- 초고속 오브젝트 스토리지, 플래시블레이드(FLASHBLADE)
- 퓨리티(Purity) 클라우드스냅(CloudSnap) 기능을 활용한 네이티브 퍼블릭 클라우드 통합 방안
- VMware VVol의 간소화 – 클라우드에 최적화된 플래시 어레이에서의 VSPHERE 가상 볼륨 구축
- 퓨리티 런(Purity Run) – 내부 개발자를 위한 가상머신 및 컨테이너 구동을 위한 플래시어레이(FlashArray)
- 업계 혁신적인 NVMe 기술 도입, 그 이후는? 다이렉트플래시(DirectFlash) 쉘프 소개 및 NVMe/F 프리뷰(이번 포스팅)
- 플래시어레이(FlashArray용 Windows File Services: 플래시어레이(FlashArray)에 완전한 SMB & NFS 탑재
- 다양한 업무 통합을 가능하게 하는 정책 기반 QoS
- 퓨어1 메타(Pure1 META): 셀프-드라이빙 스토리지를 가능하게 하는 퓨어스토리지의 AI 플랫폼
확장 쉘프를 연결해 플래시어레이(FlashArray) 시스템에 용량을 추가하는 방식은 소규모의 시스템에서부터 시작하여 필요에 따라 점차 확장시킬 수 있도록 합니다. 또한, 확장 쉘프는 별도의 컨트롤러 추가 없이, 또는 초고밀도의 플래시 모듈 없이도 시스템의 용량을 고용량으로 효율적으로 확장시킬 수 있도록 지원합니다.
그러나 퓨어스토리지의 기존 확장 쉘프는 SAS 인터페이스를 사용합니다. NVMe와 다이렉트플래시(DirectFlash) 모듈이 제공하는 혜택을 유지하면서, 확장 쉘프가 주는 이러한 혜택을 모든 NVMe 플래시어레이//X(FlashArray//X에 어떻게 적용할 수 있을까요?
다이렉트플래시(DirectFlash) 모듈에 어떻게 확장 쉘프를 구축할 수 있을까요?
분명한 것은 기존 SAS 쉘프는 사용할 수는 없다는 것입니다. NVMe와 SAS 간의 변환이 가능하다고 해도 네이티브 NVMe를 포기할 수는 없습니다. 그렇다면 새로운 하드웨어를 구축해야만 합니다. 다이렉트플래시(DirectFlash) 모듈이 탑재돼 있으며 기본적으로 NVMe와 통신이 가능한 새로운 쉘프말입니다.
이러한 쉘프를 구축하는 간단한 방법은 PCIe 스위치, 케이블, 그리고 리타이머(retimer) 카드를 사용해 플래시어레이//X(FlashArray//X)의 PCIe 패브릭을 쉘프로 확장하는 것입니다. 그러나 이제까지의 경험에 의하면, PCIe는 효율적이고 섀시 안에서 컴포넌트들을 연결하는데 적합하지만 하나의 패브릭에서 다수의 섀시를 연결하는데 최적화돼 있지 않습니다. PCIe를 작동시킬 수는 있지만, 핫 플러그 설치와 같은 경우 PCIe에서 발생하는 장애에 대응하는 일이 어려워집니다. 다른 보편적이지 않은 기술과 마찬가지로 멀티 섀시 PCle 시스템은 취약하고 유지보수가 까다롭습니다.
NVMe over Fabric
다행히 이러한 요구사항을 완벽하게 충족시킬 수 있는 표준이 존재합니다. 바로 NVMe over Fabrics입니다. 최근 기존의 NVMe 표준의 확장 버전으로 발표된 NVMe over Fabrics는 동일한 표준 기구에 의해 발표됐습니다. NVMe over Fabrics는 기존 NVMe가 가진 경량 NVMe 명령어 세트와 높은 수준의 병렬 큐 모델은 유지하지만, PCIe 뿐 아니라 네트워크 상에 연결된 패브릭(이더넷 또는 광채널)을 지원하기 위해 데이터의 전송을 일반화합니다.
퓨어스토리지는 이미 하나의 패브릭에서 다수의 박스들을 연결하는데 매우 효과적인 네트워크를 보유하고 있습니다. NVMe는 높은 수준의 병렬성을 지닌 플래시와 통신하는데 효과적입니다. NVMe over Fabrics은 네트워크 통신을 기존 네트워크 표준에 맡기고, NVMe를 사용해 플래시와 통신하며 플래시를 간단한 방법으로 결합합니다. 전체 표준은 50페이지가 채 되지 않습니다.
NVMe over Fabrics는 퓨어스토리지가 새롭게 발표한 다이렉트플래시(DirectFlash) 쉘프의 기반입니다.
플래시어레이//X(FlashArray//X) 섀시에 사용된 다이렉트플래시(DirectFlash) 모듈과 동일한 모듈이 다이렉트플래시(DirectFlash) 쉘프에서도 사용됩니다. 이 쉘프는 초당 50Gb 이더넷 기반에 RoCE(RDMA over Converged Ethernet)를 통해 플래시어레이//X(FlashArray//X)로 연결됩니다. 새로운 다이렉트플래시(DirectFlash) 쉘프 컨트롤러는 PCIe를 통해 NVMe over Fabrics와 NVMe 간의 변환을 수행합니다.
명령어 및 응답이 NVMe 성능을 지속적으로 유지시켜 주기 때문에 변환이 간단하게 이뤄집니다. 쉘프 컨트롤러는 데이터 이동 작업을 RoCE 하드웨어가 처리하도록 하기 때문에, 퓨어스토리지의 소프트웨어는 컨텍스트 스위치 없이 폴링 모드에서 구동되어 간섭이 없으며, 멀티코어의 고급 아키텍처를 기반으로 설계되어 매우 효율적입니다.
결과적으로 다이렉트플래시(DirectFlash) 쉘프에서 다이렉트플래시(DirectFlash) 모듈에 액세스하면 수십만 IOPS를 제공하고 초당 수 GB를 처리하지만 응답시간은 단 한자리수의 밀리초만이 추가될 뿐입니다. 다이렉트플래시(DirectFlash) 쉘프에 탑재된 첨단 기술에 대해 언급하지 않을 수 없습니다. 중요한 사실은 퓨어스토리지가 매우 간단한 목표를 달성했다는 것입니다.
즉, 성능, 효율성 및 가용성에 아무런 저하 없이 플래시어레이//X(FlashArray//X)를 확장시킬 수 있게 됐습니다.
미래 – 어디든 NVMe 사용
NVMe의 장점을 설명하고 NVMe가 어떻게 NVMe over Fabrics를 통해 네트워크 상에서 확장될 수 있는지에 대해 이야기할 때 마다 반드시 듣는 질문이 있습니다. ” 서버가 어떻게 SCSI를 사용하지 않고 NVMe over Fabrics를 통해 퓨어스토리지의 올플래시 어레이와 통신하도록 만들 수 있습니까?”라는 질문입니다.
이제, 그 질문에 대한 답을 드릴 수 있습니다. 앞서 설명한 것처럼, 다이렉트플래시(DirectFlash) 쉘프의 내부에는 NVMe over Fabrics의 대상을 구현하는 빠른 속도의 확장성이 뛰어난 소프트웨어가 탑재돼 있습니다. 퓨어//액셀러레이트(Pure//Accelerate) 행사에서 우리는 플래시어레이(FlashArray//X) 상에서 구동되며 이러한 NVMe over Fabrics 구현 기능이 통합된 퓨리티(Purity) 소프트웨어 프리뷰를 발표할 예정입니다.
NVMe over Fabrics 구현은 공식 1.0 표준을 따르기 때문에, 서버는 표준 어댑터 카드 및 인박스 호스트 드라이버를 사용합니다.
NVMe over Fabrics 장치가 마운팅된 표준 RoCE 어댑터를 갖춘 서버를 플래시어레이(FlashArray)에 연결하는 것입니다. 이 서버는 변형되지 않은 Linux 커널(NVMe over Fabrics 호스트 드라이버들은 2016년 10월 발표된 버전 4.8 이후부터 업스트림 Linux 커널에서 사용 가능) 및 오픈소스 NVMe 관리 패키지를 사용합니다.
NVMe 장치는 서버에 정상적인 “/dev/nvme0n1” 블록 장치로 표시됩니다. 퓨어스토리지에서 볼륨을 할당하게 되면 NVMe의 빠른 성능 뿐만 아니라, 퓨어스토리지의 특장점인 데이터 중복제거 및 압축 뿐만 아니라, RAID-HA로 보호되며, 스냅샷 및 복제도 가능합니다.
NVMe over Fabrics는 특히 클라우드 공급업체 및 SaaS 아키텍처의 관점에서 흥미롭습니다. 각 서버 내부에 PCIe 플래시 또는 SSD 대신 퓨어스토리지의 플래시를 사용해 초고밀도의 구성을 가능하게 하기 때문입니다. 이와 같은 비즈니스를 운영한다는 것, 상상할 수 있으십니까?
모든 곳에서 NVMe를 사용하면,
성능을 향상시키고 록킹(locking) 및 SCSI 스택에서 낭비되는 CPU 자원들을 감소시킬 수 있을 것으로 기대됩니다. 퓨어스토리지는 업계 최고의 로컬 플래시 및 공유 스토리지를 미래의 아키텍처에서 결합시킬 수 있습니다. 마침내 이러한 NVMe over Fabrics의 데모를 세상과 공유할 수 있게 되어 매우 기쁘고 즐겁게 생각합니다.
참고로 현재 플래시어레이//X(FlashArray//X)와 다이렉트플래시(DirectFlash) 모듈은 사용 가능하며, 다이렉트플래시(DirectFlash) 쉘프는 올해 4분기 출시 될 예정입니다. 프론트-엔드 NVMe over Fabrics는 아직 정확한 출시 일정 및 계획이 발표되지 않았습니다. 계속 지켜봐주십시오. NVMe over Fabrics의 얼리어답터 베타 고객이 되는데 관심이 있으시면, 퓨어스토리지 영업 담당자에게 연락해주십시오.