[번역] vSAN Design Considerations – Deduplication and Compression

출처 : https://blogs.vmware.com/virtualblocks/2020/06/18/vsan-design-considerations-deduplication-and-compression/

글 "Write Buffer Sizing in vSAN when Using the Very Latest Hardware"에서는 vSAN의 2계층 스토리지 시스템 구현에 대한 많은 기본 사항과 하드웨어가 시스템의 성능을 어떻게 변화시킬 수 있는지에 대해 설명하였다. 데이터 중복 제거 및 압축과 같은 소프트웨어 관련 설정이 성능에 미치는 영향 vSAN에서 구현되는 방식, 성능에 영향을 미칠 수 있는지 여부와 시기에 대한 이해도를 높이는 방법을 단계별로 살펴보겠다.

중복제거 및 압축이란?

데이터 중복 제거는 동일한 블록을 여러 번 저장하는 대신 중복 블록이 하나 이상 발견될 때를 감지해 해시 테이블을 이용해 데이터 구조의 단일 블록을 참조하는 기법이다. 데이터 압축은 데이터 블록 내의 콘텐츠와 같이 주어진 양의 데이터를 필요로 하며, 보다 효율적인 방법으로 데이터를 저장하기 위해 인코딩 기법을 사용한다. 이 두 기법은 서로 무관하지만 비슷한 목표인 공간 효율을 달성하려고 시도한다.

공간 효율성이 구현되는 방법은 솔루션에 따라 다르며, 공간 절약의 수준과 그 결과를 얻기 위해 필요한 노력에 영향을 미칠 수 있다. 어떤 방법을 구현하든 중복제거 기술과 압축 기술은 모두 기회주의적 공간 효율성 기능이다. 용량 절감 수준은 보장되지 않는다. 반면 RAID-5 또는 RAID-6와 같은 삭제 코드를 사용하는 데이터 배치 기술은 결정론적이다. 그것들은 탄력적인 방법으로 저장된 데이터에 대해 보장된 수준의 공간 효율을 제공한다.

vSAN에서 구현되는 방법

vSAN의 중복제거 및 압축(DD&C)은 클러스터 수준에서 단일 공간 효율성 기능으로 실행되며, 이 프로세스는 데이터가 용량 계층으로 디스테이징될 때 수행되며, 이는 쓰기 승인 내용이 VM에 다시 전송된 다음이다. 수신확인이 전송될 때까지 모든 형태의 데이터 조작을 최소화하면 게스트 VM에서 보이는 쓰기 지연 시간을 낮게 유지할 수 있다.

데이터가 저장되면 중복 제거 프로세스는 디스크 그룹 내에서 발견된 4KB 데이터 블록(vSAN의 중복 제거 도메인)을 중복 제거할 수 있는 기회를 모색한다. 이 작업은 압축 프로세스를 따른다. 4KB 블록을 50% 이상 압축할 수 있다면 그렇게 할 것이다. 그렇지 않으면 그대로 유지되며 데이터를 용량 계층으로 계속 디스테이징할 수 있다.

Figure01.gif

그림 1. 디스테이징 프로세스 중 데이터 중복 제거 및 압축

이러한 방식으로 DD&C를 구현하면 쓰기 승인을 게스트로 다시 보내기 전에 중복제거를 수행하는 인라인 시스템에서 발견된 성능 저하를 방지할 수 있다. 또한 이미 유휴 상태인 데이터를 중복 제거해야 하는 문제도 피할 수 있다. DD&C 프로세스는 쓰기 승인을 게스트 VM에 전송한 후 수행되지만 vSAN에서 이를 사용하도록 설정하면 특정 상황에서 성능에 영향을 줄 수 있으며, 이 프로세스는 아래에서 설명하기로 한다.

2계층 스토리지 시스템 기본 사항

vSAN은 2계층 분산 스토리지 시스템(two-tier distributed storage system)이다. 수신 데이터는 최적의 성능을 위해 게스트로 즉시 전송되는 쓰기 승인 정보를 사용하여 쓰기 버퍼에 기록되며, vSAN에서 결정한 시간과 빈도에 용량 계층으로 전송된다. 이 아키텍처는 용량에서 기가바이트/테라바이트당 비용을 합리적으로 유지하면서 더 높은 수준의 스토리지 성능을 제공한다.

Figure02.gif

그림 2. 깔때기처럼 2단계 시스템 시각화

vSAN과 같은 2계층 시스템에는 이론적 성능 최대값이 두 가지 있다. 버퍼 계층의 기능을 나타내는 버스트 레이트 및 용량 계층의 기능을 나타내는 안정 상태 레이트다. 각 계층의 기본 하드웨어는 각 계층의 성능 기능에 막대한 영향을 미치지만 소프트웨어 설정, 애플리케이션 및 워크로드도 성능에 영향을 미칠 수 있다.

Figure03.png

그림 3. 시간 기반 그래프를 사용하여 2계층 시스템의 이론적 최대값 시각화

vSAN 호스트의 성능 최대값은 최대 버스트 속도와 최대 안정 상태 속도 사이에 있다. HCIBench를 사용한 장기간의 합성(synthetic) 시험은 시간 기반 그래프를 볼 때 이러한 근사값을 보여줄 수 있을 만큼 환경을 강조할 것이다. 생산 워크로드는 소규모(undersized) 설계에서 이러한 최대치를 달성할 수 있다.

성능에 미치는 잠재적 영향

중복제거 및 압축에는 다음과 같은 노력이 필요하다: 컴퓨팅 작업과 RAM의 사용 및 그에 따른 추가 I/O. 어떻게 구현되든 상관없이 사실이다. 단지 언제, 어디서, 어떻게 발생하느냐에 달려있다. vSAN에서 이러한 작업은 쓰기 버퍼의 데이터가 디스테이징되기 시작하면 발생하므로, 이 작업은 용량 계층에 대한 유효 디스테이징 처리량을 줄인다. 이렇게 하면 클러스터가 제공할 수 있는 최대 정상 상태 비율이 낮아진다. 즉, DD&C가 활성화된 클러스터는 성능이 훨씬 낮은 용량 계층 장치를 사용하는 DD&C가 비활성화된 클러스터와 유사한 성능을 가질 수 있다.

Figure04.gif

그림 4. DD&C가 활성화되면 디스테이징 및 최대 안정화 속도가 감소됨

다른 모든 변수가 동일하다고 가정할 때 용량 계층의 최대 안정 상태 속도를 낮추면 다음과 같은 동작이 입증될 수 있다.

  • 용량 계층의 성능 저하를 통해 두 계층 사이의 성능의 델타가 증가했기 때문에 쓰기 버퍼는 더 빨리 채워질 수 있다.
  • 쓰기 버퍼는 디스테이징 성능이 저하되어 더 느리게 디스테이징될 것이다.
  • 디스테이징이 시작된 경우 게스트 VM의 쓰기 승인 시간(쓰기 지연 시간)이 영향을 받을 수 있다. 영향의 정도는 용량 계층에 의해 가능한 소멸 비율을 포함한 몇 가지 요인에 따라 달라진다. 이 시나리오는 총 작업 집합의 데이터가 버퍼 계층의 용량 또는 용량 계층에 더 큰 요구를 갖는 빠른 듀티 사이클을 훨씬 초과하는 경우에 가장 흔하다.
  • 버퍼가 디스테이징 임계값에 도달하지 않은 경우 게스트 VM의 쓰기 승인 시간(쓰기 지연 시간)은 영향을 받지 않는다. 이는 버퍼 계층 내에 잘 맞는 소규모 Aggregate 작업 집합에서 공통적으로 발생하며 버퍼의 소멸에 대한 부담이 크지 않을 것이다.

vSAN의 엘리베이터 알고리즘은 데스티징 발생 여부, 시기 및 양을 결정하는 데 도움이 되는 다양한 조건을 감지한다. 그것은 점차적으로 데이터의 소멸을 소개하고, 가능한 한 빨리 가지 않고, 필요한 만큼만 빠르게 간다. 이는 후속 덮어쓰기에 대해 핫 데이터를 버퍼에 보관하는 데 도움이 되며, 불필요한 디스테이징 활동과 성능에 대한 잠재적 영향을 감소시킨다.

RAID-5/6 삭제 코딩은 스토리지 정책을 사용하여 VM 단위 또는 VMDK 단위로 사용할 수 있는 또 다른 공간 효율성 옵션이다. 공간 효율성 기법을 함께 사용하는 것 또한 주목할 만한 영향을 미칠 수 있다. 자세한 내용은 vSAN Operations guide의 "Using Space-Efficient Storage Policies (Erasure Coding) with Clusters Running DD&C"(5-12)을 참조한다.

사용자 지정 옵션

vSAN의 아키텍처는 고객이 자신의 요구 사항에 맞게 클러스터를 조정할 수 있는 다양한 옵션을 제공한다. 올바르게 설계하고 사이징한다는 것은 요구사항과 우선순위를 명확하게 이해한다는 것을 의미한다. 예를 들어, 주어진 클러스터에서 용량이 더 높은 우선 순위인가, 아니면 성능인가? 이러한 우선순위를 기존 하드웨어 및 소프트웨어 설정에 반영하고 있는가? 가장 높은 수준의 성능을 원하지만 가장 낮은 등급의 구성요소를 선택하는 동시에 공간 효율성 기법을 사용하는 것은 목적상 모순이다. 공간 효율성은 용량 요구사항을 달성하는 방법이 될 수 있지만 비용이 수반된다.

우선 순위가 정해지면 환경의 필요에 맞게 조정할 수 있다. 여기에는 다음이 포함될 수 있다.

  • 용량 계층에서 더 빠른 장치. DD&C를 사용하도록 설정하고 예상보다 높은 VM 지연 시간을 발견한 경우 용량 계층에서 더 빠른 용량 디바이스를 고려한다. 이는 DD&C가 활성화된 경우 용량 계층의 성능 저하를 방지하는 데 도움이 될 수 있다. 용량 계층에서 불충분한 성능의 장치가 성능 문제의 가장 일반적인 이유 중 하나이다.
  • 더 많은 디스크 그룹을 사용. 이것은 더 많은 버퍼 용량을 추가하고 핫 작업 세트 데이터를 위한 용량을 증가시키며, 데이터가 파괴되는 긴급성을 감소시킬 것이다. 두 개의 디스크 그룹이 최소값이며 세 개의 디스크 그룹이 기본 구성이다.
  • 용량 요구 사항을 충족하기 위해 용량 계층을 위한 새로운 고밀도 스토리지 장치를 살펴본다. 성능 요구 사항을 충족한다고 가정할 경우, 이러한 새로운 밀도는 DD&C 사용의 필요성을 상쇄할 수 있다. 자세한 내용은 vSAN Design Considerations - Using Large Capacity Storage Devices 을 참조한다.
  • 최신 버전의 vSAN을 실행. 최신 버전의 vSAN은 DD&C를 실행하는 클러스터의 성능 향상: VM에 대한 지연 시간 일관성 향상 및 소프트웨어 최적화를 통해 디스테이징 비율을 높이는 데 초점을 맞추고 있다.
  • 선택한 클러스터에서만 사용 가능. 워크로드의 요구사항을 지원하는 데 충분한 성능을 제공할 수 있는 하드웨어의 클러스터에서만 DD&C를 사용하도록 설정한다. 필요한 경우 RAID-5/6과 같은 공간 효율적인 스토리지 정책을 가장 합리적인 개별 워크로드에 적용할 수 있다. 삭제 코딩에 대한 성능 트레이드오프도 있다는 점에 유의한다.

요약

중복제거 및 압축은 쉽고 효과적인 공간 효율성 기능이다. vSAN의 DD&C 설계는 게스트 VM 지연 시간을 낮게 유지하기 위해 노력하는 데이터 경로를 제공한다. vSAN의 2계층 아키텍처는 성능에 미치는 영향을 최소화하는 데 도움이 되지만, 하드웨어 구성의 불충분 또는 요구량이 많은 워크로드의 모음이 VM의 지연 시간 증가를 볼 수 있을 정도로 구성을 압도할 수 있다. vSAN의 유연성 덕분에 워크로드 수요에 맞게 설정 및 하드웨어 구성을 조정할 수 있다.