본문으로 이동

대기 시간이 없는 곳: 고성능 SSD를 이용한 새로운 스토리지 아키텍처

  • 메일
Thumbnail_Image
Thumbnail_Image
삼성 SSD 제품 위 빛나고 있는 Dropbox 로고
삼성 SSD 제품 위 빛나고 있는 Dropbox 로고
공용 클라우드에서 클라우드 제공자로 Dropbox는 사용자들이 파일을 업로드, 접근, 편집, 공유, 동기화할 수 있게 해주는 글로벌 협업 플랫폼이다. 2021년 7월을 기준으로 7억 명 이상의 사용자를 자랑하며 5,500억 개 이상의 콘텐츠를 저장하고 있다. Dropbox의 여러 중요한 기술적 발전 단계 중 Dropbox가 공용 클라우드 위주의 인프라에서 하이브리드/온프레미스 위주의 모델로 빠르게 전환한 일이 잘 알려져 있다. 2007년 첫 출시 당시 Dropbox의 스토리지는 AWS S3(Amazon Web Services Simple Storage Service)와 Dropbox의 자체 서버로 나뉘어져 있었다. 그러나 지난 2013년, 회사 대표들은 Dropbox가 출시된 지 몇 년이 채 지나지 않았음에도 이미 큰 성공을 거두었고, 그 규모로 인해 전세계 스토리지 제공자 중 상위에 위치해 있다는 사실을 깨달았다. 또한 공용 클라우드에 과하게 의존하는 대신 페타바이트(petabyte)의 사용자 데이터를 온프레미스 기반으로 호스팅한다면 최종 사용자 경험을 최적화할 수 있을 뿐만 아니라 단위 경제, 신뢰성, 보안성을 극대화할 수 있을 것이라고 판단했다. Dropbox는 ‘Magic Pocket’이라고 이름 지은 수 엑사바이트(exabyte) 규모의 특허받은 자체 스토리지 인프라를 구축하기로 결정했다. Dropbox의 커스텀 아키텍처 창조에 대한 주제로 수많은 기사와 글이 쏟아져 나왔지만[1] Dropbox의 계속되는 성공은 효율적인 성능 개선을 최종 목적으로, 잘 되는 것은 다듬고 잘 되지 않는 것은 재구축하는, 해를 거듭한 노력의 결과이다. 2018년 Dropbox는 새로운 유형의 스토리지 드라이브를 이용하기 위해 자신들의 스토리지 서버를 재설계하기로 결정했다. 새로운 드라이브 아키텍처로의 이러한 전환은 소프트웨어와 펌웨어 수준에서 주요 혁신을 요구했고, 이것이 바로 삼성 SSD가 Dropbox 인프라에 도입된 이유이다. Dropbox 데이터에 대해 먼저 Dropbox 데이터에 대해 간단하게 알아보겠다. Dropbox는 사용자 파일(문서, 스프레드시트 등)과 그러한 파일 및 사용자에 대한 정보(메타데이터)를 저장한다. 사용자 파일 저장에 필요한 스토리지 용량은 어마어마하다. 저장 파일의 갯수가 엄청날 뿐만 아니라 한 지역에 대규모 정전이 일어나도 파일 접근성을 보장할 수 있도록 Dropbox가 각 사용자 파일을 여러 물리적 장소로 복제하기 때문이다. 메타데이터 스택은 모든 Dropbox 서비스와 애플리케이션에 걸쳐 생성된 사용자 계정 및 파일에 대한 정보(파일을 업로드하거나 파일에 접근한 사람, 시간, 횟수, 변경 등)를 포함한다. 각 Drobox 애플리케이션은 읽기/쓰기 조합, 큐 크기, 대역폭, 대기 시간 요건 등을 포함한 고유의 성능 프로파일을 갖고 있다. 또한 메타데이터 스택은 사용자 파일이 저장된 위치와 방법을 매핑하는 파일시스템을 지원한다.
Metadata Servers Infrastructure 인포그래픽
Metadata Servers Infrastructure 인포그래픽
삼성 SSD는 Dropbox의 스토리지 및 데이터베이스 티어 모두에서 사용된다. 새로운 스토리지 아키텍처 사용자가 Dropbox에 업로드하는 문서, 스프레드시트, 사진, 영상, 실행 파일 등의 여러 파일은 Magic Pocket에 저장된다. Dropbox에게 스토리지 랙의 집적도는 극히 중요하다. 2018년에 Dropbox는 대기업으로서는 최초로 SMR(Shingled Magnetic Recording) 하드 드라이브 기술을 사용자 파일 스토리지에 채택했다. 현재 SMR 기술은 단위 당 가장 낮은 비용으로 가장 우수한 스토리지 용량을 제공할 수 있어, 집적도 극대화를 노리는 Dropbox에게는 마법의 조합이나 다름없다. 그러나 SMR 드라이브를 이용하면 데이터가 고정된 영역 크기로 순차적으로 쓰여져야 하기 때문에 쓰기 속도가 낮다.[2] Dropbox가 SMR 드라이브 집적도를 이용하기 위해서는 쓰기 지연을 해결하여 SMR 드라이브의 효율을 기존에 사용하던 PMR(Perpendicular Magnetic Recording) 드라이브만큼 향상시킬 시스템을 개발해야 했다.
SMR Data Writing & Caching 인포그래픽
SMR Data Writing & Caching 인포그래픽
Dropbox는 ‘데이터 쓰기’를 위한 견고하고, 강력한 준비/캐싱 레이어[3]를 구축하기 위해 스토리지 소프트웨어 코드를 재설계했다. 이는 SMR 드라이브에 완전히 기록될 때까지 (그리고 여러 장소로 복제될 때까지) 임시 메모리에 저장되는 데이터이다. 이러한 준비/캐시 레이어는 광범위한 큐 크기에 걸쳐 다양한 워크로드를 관리하기 위해 가용성이 높고 대기 시간이 짧은 SSD를 필요로 했다. 여기에서 삼성 PM1733 NMVe SSD가 등장한다. Dropbox의 Platform, Strategy and Operations의 Sr. Director Ali Zafar는 “우리는 새 아키텍처를 모든 면에서 지원할 드라이브가 필요했다”며 “우리 스토리지 시스템에서는 캐시, 처리량, 대기 시간, 전반적 쓰기 내구성이 중요하며, 그래서 삼성의 PM1733을 선택했다”고 말했다. Dropbox에서는 ‘평균’ 데이터 쓰기의 크기가 JEDEC이 정의한 평균보다 클뿐만 아니라 데이터의 무결성/내구성을 보장하기 위해 셀 내에서 4회 복제된다. Zafar는 “서버를 해제하게 되면 페타바이트 크기의 데이터를 새 클러스터로 옮겨야 한다”고 설명하며 “우리가 모든 워크로드를 4중으로 복제하며 각 워크로드가 평균보다 크다는 것을 고려하면, 드라이브가 기대 내구성 수명을 다하기 전에 드라이브의 쓰기 주기를 최대한 활용하는 것이 매우 중요하다”고 덧붙였다. 대기 시간이 허용되지 않는 메타데이터 스택 Dropbox의 데이터베이스는 수 천개의 서버와 수 페타바이트의 데이터를 포함하며, 메타데이터 스택은 여러 범주의 데이터베이스를 지원한다. 메타데이터 스택은 파일 시스템과 애플리케이션 메타데이터 등 Dropbox의 여러 애플리케이션에 걸쳐 메타데이터 스토리지를 위한 핵심 인프라를 구동한다. 대기 시간은 Dropbox의 스토리지 티어에서도 우려되는 사항이지만, 대기 시간이 메타데이터 영역에 미치는 영향은 최종 사용자에게 훨씬 더 분명히 드러난다. 대기 시간은 거의 어디에서나 문제가 될 수 있지만, 데이터베이스 스택에서 수행되는 연산의 엄청난 다양성 때문에 대기 시간의 영향은 이러한 핫 존에서 더 정확히 감지된다. “메타데이터는 대기 시간이 짧고 가용성이 높아야 하며, 접근 및 업데이트에 수 밀리세컨드 이상이 걸려서는 안된다”고 Dropbox의 Director of Engineering, Yang Lim이 말했다. Dropbox 홈페이지와 같은 애플리케이션은 항상 엄청난 갯수의 연산을 수행하고 있기 때문에 메타데이터 대기 시간에 극히 민감하다. 성능은 TTI(Time to Interactivity)를 통해 측정되며 수 초를 초과해서는 안된다. 애플리케이션의 한 부분에서 약간의 지연이 일어나면 최종 사용자 경험에는 수 초의 영향을 미칠 수 있다. 일종의 대기 시간의 나비 효과라고 할 수 있다.
Web Inband Share (P95) 인포그래픽
Web Inband Share (P95) 인포그래픽
짧은 대기 시간이라도 그 영향은 클 수 있다. 사소해 보이는 대기 시간이라도 Dropbox에게 얼마나 중요할 수 있는지 설명하기 위해 예를 들어 보겠다. 2020년 6월, 폴더 공유에 걸리는 평균 시간이 P95 8.08초에서 10.73초로 예상치 못하게 25% 증가했다. 2.65초의 차이가 발생한 이유는 Dropbox의 메타데이터 스택에 접근하는 연산 일부에서 10ms의 대기 시간이 발생했기 때문이다. 이것이 바로 Dropbox가 SATA SSD의 네 배에 해당하는 IOPS와 다양한 운영 변수에 구애받지 않고 일관된 성능을 제공하는 삼성의 PM983 NVMe PCIe SSD를 메타데이터 스택 스토리지로 선택한 이유이다. 고도 이용, 고도 반복률의 데이터 센터에 대한 요구를 만족하기 위해 PM983 SSD 펌웨어는 지속적인 임의적 워크로드를 위한 서비스 품질을 최우선으로 둔다. 항상 구동되며 처리량이 많은 워크로드에 최적화된 PM983은 데이터 센터에 NVMe SSD의 비용효율적인 대규모 배치를 지원하기 위해 개발되었다. Lim은 “삼성의 PM983 SSD는 독특하고 다양한 블록 크기 및 워크로드로 구동되며, 처리량과 대기 시간 성능이 Dropbox의 모든 MySQL 및 서비스 소유자 요건을 만족한다”고 말했다. Dropbox는 데이터 관리와 스토리지 외에도 SATA HHD에서 SSD로의 전환에 삼성 SSD를 채택하기로 결정하고 Compute 티어 부팅을 위해 삼성의 U.2 PM983 NVMe를 선택했다. 계속되는 혁신을 바탕으로 구축된 협력 관계 Dropbox와 삼성은 현재 진행 중인 협력 관계를 통해 서로에게 혜택이 크다고 생각한다. 두 기업 간의 협력 관계에 대해 설명해 달라는 부탁을 받은 Zafar는 다음과 같이 말했다. “Dropbox는 삼성과의 협력 관계, 그리고 계속 진화하는 소비자 요구를 만족하기 위한 인프라 개발의 새로운 방법을 탐색하는 지속적인 협력 기회를 매우 소중하게 여긴다. “삼성 엔터프라이즈와 데이터센터 SSD 로드맵은 Dropbox가 핫, 콜드 티어에서 모두 고성능을 제공하기 위해 필요로 하는 인프라 요구를 충족한다. 따라서 Dropbox의 데이터 센터에 추후 삼성의 차세대 SSD를 배치할 계획이다.” 계속해서 더 나은 사용자 경험을 구축하고자 하는 목표를 공유하는 두 기업은 효율적인 클라우드 인프라 발전을 위해 수많은 노력을 기울인다. 삼성전자 반도체의 Customer and Market Insights in Memory 부문 Senior Director인 Donovan Hwang도 이에 동의한다. “Dropbox는 엔지니어링 팀의 계속해서 진화하는 혁신성 때문에라도 협력하기에 유쾌한 기업이다. Dropbox는 규모 증가에 따라 유연성을 유지 또는 향상시키는 동시에 계속해서 랙 집적도를 증가시키고 TCO를 최적화할 기회를 탐색하고 있다.” “삼성은 이와 유사하지만 다른 각도의 목표를 갖고 있다. Dropbox와 같은 혁신적 기업이 멋진 일을 할 수 있도록 돕기 위해 업계에서 가장 빠르고, 집적도가 높으며, 신뢰성이 높은 메모리를 생산할 새로운 방법을 찾는 것이다.” 사례 연구는 Dropbox의 Siddharth Anand, Senior Commodity Manager와 협력하여 작성되었다.
[1] Dropbox는 해외 스토리지를 포함한 다양한 프로젝트에 여전히 AWS 스토리지와 연산 능력을 이용하고 있다. [2] PMR 드라이브의 속도 100 Mbps에 비해 SMR 드라이브의 속도는 일반적으로 10Mbps 이하이다. [3]준비 레이어는 공항 게이트 앞 대기 공간과 다소 비슷하다. 결국에는 모든 승객(데이터)이 비행기(SMR 디스크)에 탑승할(쓰여질) 것이지만, 모든 사람이 제자리(블록)에 착석할(기록될) 때까지는 대기열에서 기다려야 한다.