퓨어스토리지는 기존의 플래시어레이//M(FlashArray//M) 고객들에게 퓨리티(Purity) 액티브클러스터(ActiveCluster) 무상 지원을 발표했습니다.
진정한 액티브/액티브(active/active) 메트로 클러스터인 퓨리티(Purity) 액티브클러스터(ActiveCluster)는 퓨리티(Purity)에 완전히 내장되어 있으며, 티어1 스토리지의 수준을 한층 더 끌어 올렸습니다. 기존의 솔루션을 사용해 본 적이 있는 어떤 고객도 이처럼 구축과 사용이 쉬운 클러스터 솔루션을 경험한 적이 없을 것이라고 단언할 수 있습니다.
이 글은 클라우드 시대의 플래시: “소프트웨어의 시대“ 블로그 시리즈의 일부입니다. 아래 링크를 클릭하여 퓨어스토리지의 새로운 소식을 확인해보시기 바랍니다.
클라우드 시대의 플래시: “소프트웨어의 시대” 블로그 시리즈
- 퓨어스토리지 설립 사상 최대 규모의 혁신적인 소프트웨어 출시
- 퓨리티(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 플랫폼
창업 초기부터 안정성은 퓨어스토리지의 최우선 과제였습니다.
스토리지 안정성에 대한 고객의 기대치를 높이는 것뿐 아니라, 제품을 최대한 자동화하고 간소화하여 사용자가 실수를 줄일 수 있도록 지원하고자 지속적으로 노력해 왔습니다. 단순함이 안정성의 기반이 되기 때문입니다. 퓨어스토리지는 안정성의 단계를 다음과 같이 구분합니다.
안정성의 기반이 되는 첫번째 단계는 99.9999%의 가용성을 제공하는 것입니다.
퓨어스토리지는 플래시어레이//M(FlashArray//M)이 출시된 지 2년이 지난 지금 꾸준히 99.9999%의 가용성을 달성했다고 발표했습니다. 퓨어스토리지는 이러한 99.9999%의 가용성을 기반으로 하여서 사용자는 다운타임을 제거하기 위한 여러가지 노력을 하게 됩니다. 다운타임에는 다음과 같이 세가지 유형이 있습니다.
- 업그레이드 또는 상위 세대로의 마이그레이션을 위한 계획된 다운타임
- 사이트 장애 또는 다른 재해로 인한 계획되지 않은 다운타임,
- 다수의 워크로드가 통합된 환경에서 어떤 워크로드가 다른 워크로드에 잠재적인 성능 영향을 미치는 경우 발생하는 성능상의 문제 및 장애입니다.
이미 퓨어스토리지는 듀얼 컨트롤러 설계를 기반으로 장애 발생 또는 업그레이드 중 무중단 서비스 및 성능을 보장하는 기능, 멀티-사이트 재해복구를 위한 비동기식 복제 및 복수개의 워크로드가 통합 운영되는 환경에서 특정 워크로드의 성능이 다른 워크로드 처리성능에 영향을 미치는 것을 방지하기 위해 상시 가동되는 QoS 등 안정성과 관련된 다양한 기능을 제공해 왔습니다.
그러나 퓨어스토리지가 갖추지 못했던 한가지 기능이 있습니다. 지역적으로 떨어져 있는 두 사이트 간에 동기식 복제를 할 수 있는 기능입니다. 이 때문에 가용성이 가장 중요한 워크로드를 지원할 수 없었습니다. 지금까지는 그랬습니다.
동기식 복제는 1994년 EMC에 의해 최초로 도입됐습니다.
참고로, 동기식 복제는 EMC 최초의 유료 소프트웨어의 이름이기도 했으며, 소프트웨어 기능 유료화를 기반으로 한 비즈니스 모델의 시발점이 된 기능이었습니다. 퓨어스토리지는 모든 것이 포함된 소프트웨어 및 지속적인 혁신, 에버그린(Evergreen)식 접근방법으로 이러한 비즈니스 모델을 없애는데 선두적인 역할을 해왔습니다.
일부 공급업체들이 동기식 복제와 확장 클러스터 솔루션을 제공했지만, 이러한 솔루션들은 모두 고가이며 매우 복잡했습니다.
기존에는 확장 클러스터링을 구현하기 위해 수일이 소요돼야 했습니다. 수백 페이지에 달하는 매뉴얼을 확인하고 추가적인 소프트웨어 라이선스, 게이트웨이, 제3의 사이트 감시자(witness) 설치가 필요했으며 공급업체의 전문 서비스가 필요한 경우가 태반이었습니다. 결과적으로, 기존 확장 클러스터 하나를 성공적으로 구현하는데 10만 달러 이상의 비용이 들었습니다.
이 분야에서 제품을 공급하겠다는 계획을 세울 때, 퓨어스토리지는 세 가지 혁신 영역에 중점을 두었습니다.
- 업계 최고의 기능성 제공 일반적으로 공급업체들은 간단한 동기식 복제를 구현한 후에야 점진적으로 진정한 확장 클러스터 또는 세 개의 데이터센터를 연결하는 솔루션까지 지원합니다. 퓨어스토리지는 처음 제품을 출시할때부터 최고를 목표로 삼았습니다.비동기식 복제를 제3의 사이트에 추가적으로 구현할 수 있도록 완전히 통합된 진정한 액티브/액티브(active/active) 확장 클러스터를 제공하는 것입니다. 진정한 액티브/액티브(active/active)는 가장 높은 안정성을 제공할 뿐 아니라 시간이 지남에 따라 가장 단순한 설정 및 관리기능을 제공하는 솔루션입니다.
- 단순하며 완전한 통합 제공 퓨어스토리지는 단순함에 집중해 왔습니다. 간단한 설치뿐 아니라 퓨어스토리지를 통해 호스트되는 업계 최초의 SaaS 기반 복제 메디에이터인 ‘퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)’를 제공한다는 아이디어를 현실화했습니다. 물론, 추가적인 어플라이언스 없이 작동합니다.
- 모두 무상 동기식 복제는 기업들에게 높은 비용 때문에 보편적으로 사용되지 못하지만, 퓨어스토리지는 이러한 동기식 복제가 제공하는 강화된 안정성을 통해 더 많은 애플리케이션이 혜택을 얻을 수 있다고 생각합니다.그래서 이를 퓨어스토리지의 기본 제품에 추가 비용 없이 탑재했습니다. 누구나 사용할 수 있습니다. 공급업체가 이 기능에 대한 비용을 청구하거나 “고급” 소프트웨어 패키지를 구매할 것을 종용하면, 이제 그 이유를 물어보십시오.
기본적인 사항을 다뤘으니 퓨리티(Purity) 액티브클러스터(ActiveCluster)에 대해 자세히 알아보겠습니다!
퓨어스토리지는 기업들이 새로운 관리 체계를 익히지 않고도 액티브클러스터(ActiveCluster)를 최대한 쉽게 설치하고 설정할 수 있도록 만들기 위해 많은 노력을 기울였습니다.
어레이에 액티브클러스터 (ActiveCluster) 기능이 적용되는지와 관계 없이, 플래시어레이(FlashArray) 관리자들이 기존의 익숙한 방식으로 어레이를 관리할 수 있도록 지원하고자 했습니다. 이를 위해, 볼륨 생성, 스냅샷 생성, 클론 생성, 비동기식 복제 관리, NFS 및 클라우드로의 스냅샷 관리 등 모든 관리 작업은 볼륨을 단일한 어레이에서 관리하든, 아니면 액티브클러스터(ActiveCluster)에서 관리하든 상관 없이 동일한 방식으로 수행하도록 했습니다. 퓨어스토리지는 액티브클러스터(ActiveCluster)의 설정을 지원하기 위해 관리 모델에 ‘purepod’라는 새로운 명령어를 도입했습니다.
액티브클러스터(ActiveCluster)는 간단한 4단계 절차로 설정됩니다. 그 중 3개 단계에서는 모든 플래시어레이(FlashArray) 관리자들에게 이미 친숙한 명령어들이 사용됩니다.
1단계: 2대의 플래시어레이(FlashArray) 연결
액티브클러스터(ActiveCluster)를 위해 두 어레이를 연결하는데는 기존의 비동기식 복제와 동일한 방식이 사용됩니다. 아래의 GUI 예시에서 볼 수 있는 것처럼 새로운 연결 유형인 “동기식 복제(Sync Replication)”를 도입한 것이 전부입니다.
2단계: 팟(Pod) 생성 및 확장
purepod 명령은 팟(pod)을 생성하고 확장하는데 사용되는 명령어입니다. 팟(pod)이란 무엇일까요? 팟(pod)은 관리 오브젝트를 말합니다. 팟(pod)은 액티브/액티브(active/active) 환경에서 매우 간단한 관리를 제공합니다. 팟(pod)은 각 오브젝트의 확장된 인스턴스가 단 하나만 존재하는 것처럼 두 어레이에 동기적으로 존재할 수 있는 일련의 오브젝트 세트를 정의합니다. 이는 팟(pod)에 있는 오브젝트가 각 어레이에서 두 개가 아니라 하나로 관리될 수 있도록 합니다.
팟(pod)에는 볼륨, 스냅샷, 클론, 스냅샷의 예약 및 비동기식 복제를 위한 보호 그룹, 어떤 볼륨이 어느 호스트에 연결돼 있는지와 같은 설정 정보, 성능 통계 및 보안 감사 로그 정보가 포함돼 있습니다.
팟(pod)은 하나의 일관성 그룹으로 기능하여 동일한 팟(pod) 내의 여러 볼륨들이 쓰기 순서의 일관성을 유지할 수 있도록 합니다. 팟(pod)은 액티브클러스터(ActiveCluster)에 필요한 구성요소입니다.
어레이A에서 팟1(pod1)이라 명명된 팟(pod)을 생성합니다.
1 |
arrayA> purepod create pod1 |
이 팟(pod)을 어레이B로 확장하여 동기적으로 복제된 액티브클러스터(ActiveCluster) 팟(pod)을 만듭니다.
1 |
arrayA> purepod add —array arrayB pod1 |
이 시점에서 팟1(pod1)에 생성된 모든 볼륨, 보호 그룹, 스냅샷 또는 볼륨 클론은 어레이A와 어레이B에 동기화되며 동시에 생성됩니다. 다음으로 볼륨을 생성합니다.
3단계: 볼륨을 생성합니다.
1 |
From arrayA or arrayB> purevol create —size 1T pod1::vol1 |
모든 플래시어레이(FlashArray) 관리자들이 이미 잘 알고 있는 볼륨 생성 명령어입니다. 팟(pod) 이름을 볼륨 이름 앞에 추가하고 ‘::’로 분리했을 뿐입니다. 이는 완전한 볼륨 이름인 ‘pod1::vol1’을 사용하기만 하면 플래시어레이(FlashArray)에서 오브젝트를 관리하는 모든 스크립트 또는 REST 콜을 동일한 방식으로 작동시킬 수 있다는 의미입니다. 팟(pod)은 볼륨 이름에 추가적인 요소로 간단하게 노출됩니다.
물론 기존 볼륨을 100% 무중단으로 팟(pod)으로 이동시키며, 그 팟(pod)을 두 대의 플래시어레이(FlashArray)로 확장할 수도 있습니다. 액티브클러스터(ActiveCluster)를 위해 기존 볼륨을 설정하는 경우, 퓨어스토리지의 비동기식 복제 기술이 사용되어 두 어레이 간 최초의 기준 데이터 복사를 수행합니다.
퓨어스토리지의 비동기식 복제 엔진은 데이터 절감 인식형 복제를 제공합니다. 어레이A에서 어레이B로 데이터가 전송될 때, 데이터 압축 및 중복제거 기능이 유지된다는 뜻입니다.
4단계: 호스트 연결
액티브클러스터(ActiveCluster)는 볼륨 수준의 진정한 액티브/액티브(active/active) 솔루션입니다. 호스트들은 두 어레이 상의 동일한 볼륨에 탑재되어 쓰기 및 읽기를 수행할 수 있습니다.
호스트 생성 및 연결:
1 2 |
> purehost create —preferred–array arrayA —wwnlist WWNs or —iqnlist IQNs hostA > purehost connect —vol pod1::vol1 hostA |
이게 전부입니다! 액티브클러스터(ActiveCluster)는 가동이 시작되고 호스트A가 두 어레이 모두의 pod1::vol1에 동시에 액세스할 수 있게 됩니다.
액티브/액티브(active/active) 환경에서의 성능 최적화
플래시어레이(FlashArray)에 익숙한 사용자들은 위의 purehost 생성 명령어에서 ‘우선사용 어레이 (preferred-array)’ 옵션을 알아채셨을 겁니다. 우선사용 어레이 설정은 다수의 확장된 팟(pod)에 있는 볼륨에 연결된 호스트가 최대의 성능을 확보하도록 하는 설정입니다.
대부분의 액티브/액티브(active/active) 환경은 통합 액세스 모델로 구현됩니다. 이러한 방식으로 구현되는 경우, 호스트는 동일한 사이트에 있는 어레이인 로컬 어레이와 서로 다른 사이트에 있는 어레이인 원격 어레이 모두를 통해 동일한 볼륨에 액세스할 수 있습니다.
위의 그림은 호스트와 어레이 사이에 존재하는 논리적 경로, 그리고 통합 액세스 모델에 존재하는 두 어레이 간의 복제를 위한 연결을 나타냅니다. 통합 스토리지 액세스 모델은 사이트 위치에 상관 없이, 모든 호스트가 두 어레이에 액세스할 수 있도록 하기 때문에, 서로 다른 레이턴시 특성을 가진 경로들이 생깁니다. 호스트에서 로컬 어레이로의 경로는 최적화된 경로이므로 응답시간이 낮고, 각 로컬 호스트에서 원격 어레이로의 최적화되지 않은 경로는 상대적으로 응답시간이 더 깁니다.
액티브클러스터(ActiveCluster)는 “우선사용 어레이” 설정을 이용하여서, 해당 어레이를 우선사용 하도록 되어 있는 호스트에 최적의 경로를 제공하고 다른 호스트들에게는 최적화되지 않은 경로를 보여줌으로써 호스트가 최대의 성능을 확보할 수 있도록 합니다. 그리고 난 뒤 호스트는 라운드 로빈(round robin; RR) 또는 리스트 큐 뎁스(least queue depth; LQD) 방식의 호스트 경로 선택 정책에 기반해 최적의 경로 전반에 걸쳐 IO를 분산시킵니다. 최적의 경로를 사용할 수 없는 경우가 아닌 한, 호스트는 프론트-엔드 IO를 위해 비최적화된 경로를 이용하지 않습니다.
이는 호스트의 쓰기가 오직 왕복 전송 방식으로만 어레이 간에 동기식으로 복제되며, 읽기는 원격 사이트로 전송할 필요 없이 항상 로컬 경로에 의해 제공되도록 합니다. 그러나 로컬 어레이를 사용할 수 없을 경우에는 호스트가 비최적화된 경로를 통해 원격 어레이의 데이터에 쉽게 액세스할 수 있도록 합니다.
사용자 개입이 필요 없는 투명한 페일오버
스토리지 페일오버의 컨셉은 기존의 관점에서는 액티브클러스터(ActiveCluster)에 적용되지 않습니다. 액티브클러스터(ActiveCluster)는 진정한 액티브/액티브(active/active)로 설계되었기 때문에, 볼륨이 한 어레이에서는 액티브 상태이고 다른 어레이에서는 패시브 상태라는 개념 자체가 없습니다. 두 어레이 모두 동기적으로 복제된 볼륨에 I/O 서비스를 지속적으로 제공할 수 있습니다.
페일오버는 표준 호스트 I/O 타임아웃 내에서 발생합니다. 하드웨어 또는 소프트웨어의 무중단 업그레이드 중 하나의 어레이에 있는 두 개의 컨트롤러 간에 발생하는 페일오버와 유사합니다.
액티브클러스터(ActiveCluster)는 대칭적인 액티브/액티브(active/active) 스토리지 어레이 전반에서 최고의 가용성을 제공하며, ‘스플릿 브레인(split-brain)’ 상황이 발생하지 않도록 설계됐습니다. 스플릿 브레인(split-brain)은 두 어레이 간에 데이터가 동기화되지 않은 채 두 어레이가 I/O를 동일한 볼륨에 제공하는 것을 말합니다. 이러한 오류는 액티브클러스터(ActiveCluster)에서는 일어날 수 없습니다.
두 개의 다른 사이트에 걸쳐 지속적인 가용성을 제공하도록 설계된 모든 액티브/액티브(active/active) 동기식 복제 솔루션은 스플릿 브레인(split-brain) 오류를 방지하면서 페일오버를 조정할 수 있는 위트니스(witness) 또는 보터(voter)라 불리는 컴포넌트가 필요합니다. 액티브클러스터(ActiveCluster)는 장애 발생 시 사용자의 개입 없이도 애플리케이션이 투명하게 페일오버 되도록 하거나 사이트 사이에서 간단히 이동될 수 있도록 지원하는 사용이 간단하고, 가벼우며, 자동화된 기능을 제공합니다. 이것이 바로 퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)입니다.
퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)는 어레이 간에 통신 손실이 발생한 경우 각 팟(pod)에 하나의 어레이만 액티브 상태로 유지되도록 지원합니다.
퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)
모든 페일오버 메디에이터는 각 어레이가 위치한 곳과는 다른 장애 도메인에 있는 제3의 사이트에 위치해야 합니다. 각 어레이 사이트는 단일한 네트워크 고장으로 인해 두 어레이 모두가 메디에이터에 액세스할 수 없는 상황이 발생하지 않도록, 메디에이터로의 독립적인 네트워크 연결성을 갖춰야 합니다. 또한 메디에이터는 가벼워야 하고, 솔루션의 컴포넌트를 쉽게 관리할 수 있어야 합니다. 퓨어스토리지 솔루션은 통합된 클라우드 기반 메디에이터를 활용해 이러한 기능을 자동적으로 제공합니다. 퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)가 제공하는 두 가지 주요 기능은 다음과 같습니다.
- 어레이 간의 동기화 없이 두 어레이가 독립적으로 데이터에 액세스하도록 하여 스플릿 브레인(split-brain) 상황이 발생하지 않도록 하는 것입니다.
- 복제 링크 장애가 발생하는 경우 어떤 어레이가 동기적으로 복제된 볼륨에 지속적으로 IO를 제공할지를 판단하는 것입니다.
퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)는 일반적인 보터(voter) 또는 위트니스(witness) 대비 다음과 같은 장점을 제공합니다.
- SaaS 운영 혜택 – 모든 SaaS 솔루션과 마찬가지로, 운영 유지보수의 복잡성이 제거됩니다. 현장에서 아무 것도 설치할 필요가 없습니다. 하드웨어 또는 소프트웨어 관리가 필요하지 않으며, 고가용성을 위한 설정, 지원 및 보안 패치 업데이트도 필요하지 않습니다.
- 자동적으로 운영되는 제3의 사이트 – 퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)는 두 어레이와는 근본적으로 분리된 장애 도메인에 위치합니다.
- 자동화된 설정 – 액티브클러스터(ActiveCluster)를 위해 설정된 어레이는 자동적으로 퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)로 연결돼 해당 기능을 사용할 수 있습니다.
- 설정 오류 없음 – 자동화된 디폴트 설정을 통해 메디에이터가 부정확하게 설정되는 위험을 제거합니다.
- 사용자 개입 없음 – 액티브/액티브(active/active) 동기식 복제 솔루션의 주요 문제, 특히 우연히 발생하는 스플릿 브레인(split-brain) 오류와 관련된 문제는 사용자 오류로 인해 발생하는 경우가 많습니다. 자동화된 무인 메디에이터는 작업자 오류가 발생할 여지를 완전히 제거합니다.
- 패시브 중재 – 정상적인 운영 시에는 메디에이터로의 지속적인 액세스가 필요하지 않습니다. 어레이는 메디에이터의 가용성을 모니터링합니다. 그러나 메디에이터와의 연결이 손실되더라도 복제 링크가 활성화돼 있는 한 데이터를 계속 동기적으로 복제하고 제공합니다.
OVF 파일로 분산되고 가상머신으로 구현된 온-프레미스 메디에이터를 사용해 액티브클러스터(ActiveCluster)를 위한 페일오버 조정을 제공할 수 있습니다. 페일오버 행동은 퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)를 사용할 때와 동일합니다. 온-프레미스 메디에이터는 페일오버 시 퓨어1 클라우드 메디에이터(Pure1 Cloud Mediator)의 역할을 맡아 수행합니다.
투명한 페일오버
어레이가 복제 상호연결을 통해 서로 통신할 수 없게 되는 경우, I/O 처리는 잠시 중단되며, 메디에이터가 동기식 복제된 각 팟(pod)을 위해 어떤 어레이가 액티브 상태로 유지될지를 판단합니다. 메디에이터에 먼저 도달한 어레이의 동기식 복제된 팟(pod)이 중단 없이 가동됩니다.
메디에이터에 두 번째로 도달한 어레이는 스플릿 브레인(Split-brain) 상황이 발생하지 않도록 동기식 복제된 볼륨으로의 I/O 제공을 중단해야 합니다. 전체 운영은 애플리케이션의 중단을 최소화하고 I/O가 재개될 수 있도록 표준 호스트 I/O 타임아웃 내에서 유지됩니다.
통합 스토리지 액세스 설정이 사용된 경우에는 기본적으로 운영의 유지관리에 페일오버가 적습니다. 어레이 장애 또는 복제 링크 장애가 발생하여 어레이 하나에서 I/O 서비스가 중단되면, 호스트는 일부 스토리지 경로 손실만 경험하며 사용 가능한 어레이로 다른 경로들을 계속 사용합니다. 스토리지 관리자가 실행해야 하는 스토리지 페일오버 절차는 없습니다. 워크로드는 지속적으로 구동됩니다.
퓨리티(Purity) 액티브클러스터(ActiveCluster) – ‘간단함’의 대명사
이 글이 액티브클러스터(ActiveCluster)에 간단함이라는 컨셉이 얼마나 깊숙히 자리하고 있는지 이해하는데 도움이 되었길 바랍니다. 이러한 간단함은 오류를 감소시키고, 확장 클러스터로의 업그레이드를 망설이는 고객들에게 확신을 줄 수 있을 것입니다. 진정한 퓨어스토리지 방식의 액티브클러스터(ActiveCluster)는 플래시 속도로 메트로 확장 클러스터를 대중화합니다.
각 확장 클러스터 인스턴스에 10만 달러/유로/파운드/엔을 지속적으로 지불하고 있는 기업은 더 나은 방법에 관해 공급업체와 상담을 해볼 때입니다!