[번역] Write Buffer Sizing in vSAN when Using the Very Latest Hardware

출처 : https://blogs.vmware.com/virtualblocks/2019/10/01/write-buffer-sizing-vsan/

번역이 생각보다 잘 안되내요. 마지막에 있는 "추천 사항" 내용이 핵심입니다!

매년 VMworld에서 프레젠테이션을 할 수 있는 특권 중 하나는 vSAN 고객에게 가장 중요한 질문을 듣고 답변할 수 있는 기회다. 올해도 확실히 다르지 않았다. 예상보다 몇 번 더 나온 질문은 다음과 같다:

"Does the speed of my buffer device used in a disk group change how I should size the buffer devices used for my vSAN cluster?"

대답은 ""다. 그러나 이 대답을 좀 더 자세히 탐구해서 왜 이런 것인지 제대로 알아보겠다. 단순성을 위해 이 게시물은 All-Flash 기반 vSAN 클러스터에서 쓰기 I/O의 성능에 초점을 맞춘다.

2계층 스토리지 시스템의 목적

칩셋에서 네트워크 및 스토리지 시스템에 이르기까지 데이터센터 전체에 캐싱 및 버퍼링이 존재한다. 개념적으로, 2계층 스토리지 시스템의 이면에 있는 이유는 간단하다. 이 아키텍처는 기가바이트/테라바이트 용량당 비용을 합리적으로 유지하면서 더 높은 수준의 스토리지 성능을 제공한다.

그림 1과 같이 다음을 통해 이를 달성한다.

  • 상대적으로 작고, 고성능인 버퍼 계층을 통해 들어오는 쓰기 I/O 유입 : 이렇게 하면 쓰기 확인(write acknowledgement)이 가능한 한 빨리 VM으로 다시 전송된다.
  • 더 많은 가치 기반 고밀도 스토리지를 통해 용량 제공 : 버퍼 계층의 데이터는 시스템에 의해 결정되는 시간과 주기에 용량 계층으로 디스테이징된다.

Figure01.png

그림 1 : 2계층 스토리지 시스템

접근방식에 따라, 2계층 아키텍처는 버퍼 계층에서 수행되는 데이터 조작 또한 최소화할 수 있다. 처리가 감소하고 쓰기가 버퍼에 더 빠르게 흡수되어 VM에서 볼 수 있는 유효 지연 시간이 감소한다. 2계층 설계를 통해 VM에 대한 즉각적인 성능 저하 없이 데이터가 용량 계층으로 디스테이징될 때 중복제거 및 압축과 같은 데이터 서비스를 수행할 수 있다 - VMware가 이 설계를 선택한 또 다른 이유

기본적으로 2계층 스토리지 시스템의 이론적 최대 속도는 두 가지가 있다. 버퍼링 계층의 속도 및 용량 계층의 속도. VM에 제공되는 전체 성능을 정의하는 데 도움이 되는 두 계층의 조합이다. 버스트할 버퍼 계층이 없으면 지연 시간이 증가하고, 그림 2와 같이 I/O가 더 긴 시간 동안 분산된다.

Figure02.png

그림 2 : 2계층 시스템에서 버스트 I/O 활동의 시각화

버퍼링 계층이 제공하는 버스트 성능의 지속 기간은 무한정 지속되지 않는다. 이는 버퍼 계층이 들어오는 쓰기를 흡수할 수 있는 만큼, 빠르게 데이터를 느린 성능의 용량 계층으로 이동할 수 없기 때문이다. 버스트 성능이 지속되는 기간은 버퍼로 들어오는 I/O 양, 버퍼 크기 및 용량 계층에 대한 배출 속도/성능에 따라 달라진다. 배수 속도(drain rate)는 주로 용량 계층을 구성하는 가치 기반 장치의 섭취 속도에 의해 결정된다.

좋은 소식은 생산 작업 부하가 I/O 활동에서 버스티(busty)하고, 진동(oscilate)하는 경향이 있다는 것이다. 이를 통해 2계층 접근방식은 활동이 적은 시간에 쓰기를 디스테이지해서, 2계층 시스템의 원하는 결과를 얻을 수 있다: 테라바이트당 비용 절감을 위한 최고 수준의 성능. 이러한 유형의 버스트 동작이 있는 워크로드가 충분하거나 또는 쓰기 패턴이 지속되는 워크로드가 일부 있는 경우에는 VM에서 요청하는 정상 상태 속도는 용량 계층에 사용되는 정상 상태 I/O 기능 하드웨어를 초과할 수 있다.

가장 최신 버퍼 디바이스로 클러스터를 업그레이드하면 디스테이징 속도는 동일하게 유지되는 동안 쓰기가 더 빨리 흡수될 수 있다(잠재 시간 단축). 이는 그림 3과 같이 두 계층 사이의 성능 델타를 증가시킨다. 워크로드가 자원을 요구한다고 가정할 때, 이것은 더 빠른 버퍼 장치가 느린 버퍼 장치보다 더 빨리 채워질 수 있다는 것을 의미한다. VM에 더 나은 성능을 제공할 수 있지만, 시간은 짧다.

Figure03.png

그림 3 : 버퍼 계층과 용량 계층 간의 성능 델타

버퍼 계층과 용량 사이의 성능 델타가 증가하면 버퍼의 채우기 속도도 증가한다.

vSAN의 2계층 스토리지 시스템 구현

vSAN이 사용하는 2계층 아키텍처는 위에서 설명한 바와 같이 고객이 가장 최신의 고성능 기술을 저렴한 방법으로 이용할 수 있도록 한다. vSAN의 2계층 아키텍처는 디스크 그룹 개념을 사용한다. 캐싱/버퍼링에 사용되는 하나의 디바이스와 용량에 사용되는 1-7개의 디바이스의 논리적 구성이다. vSAN은 다음을 허용한다.그림 4와 같이 호스트당 디스크 그룹 5개까지다.

Figure04-768x433.png

vSAN은 디스크 그룹의 버퍼링 디바이스에 대한 논리적 제한이 600GB이다. All-Flash vSAN 클러스터에서는 전체 용량(최대 600GB)이 쓰기 버퍼링을 위해 예약되어 있다. 버퍼링 계층은 아직 용량 계층으로 디스테이징되지 않은 읽기를 가져오는 캐시 역할을 한다. 버퍼 장치의 논리적 한계인 600GB가 존재하지만, 600GB보다 큰 장치를 쉽게 사용할 수 있으며, 일반적으로 사용된다. 이렇게 하면 기기의 쓰기 내구성이 향상된다.

데이터는 vSAN에 의해 결정된 다양한 조건에 따라 디스테이징된다. 이 비동기식 태스크는 데이터를 즉시 디스테이징하지 않으므로 자주 쓰는 데이터에서 용량 계층으로 쓰기를 확대하지 않고 동일한 블록 덮어쓰기가 발생할 수 있다. 실제 워크로드에서는 많은 수의 쓰기가 동일한 블록 덮어쓰기가 될 수 있다. 이러한 동작은 vSAN의 논리와 대규모 버퍼와 결합되어 용량 계층의 리소스 부담을 더욱 줄일 수 있다. 그러나 버퍼 용량을 극대화하는 구성의 또 다른 이점.

디스테이징에 영향을 미치는 요인 중 하나는 디스테이징되지 않은 들어오는 쓰기에 의해 버퍼에서 소비되는 용량의 비율이다. 버퍼 용량 장치가 작을수록 또는 버퍼 장치가 빠를수록 더 빠르게 채워지고 더 빨리 디스테이징되기 시작한다. 그것이 빨리 파괴되기 시작할수록 성능은 더 이상 버퍼가 제공하는 피크 레벨에 있지 않을 수 있다.

그래, 정확히 읽었구나. 아무것도 변하지 않은 2계층 아키텍처에서, 훨씬 더 빠른 버퍼 장치를 도입하는 것은 기능적으로 더 작고 약간 느린 버퍼 장치와 유사하다. 따라서 환경에 고성능 버퍼링 장치를 도입할 때 더 빠른 계층의 이점을 완벽하게 실현하기 위해 어떤 옵션을 사용할 수 있는지 이해하십시오.

추천 사항

버퍼 계층의 유일한 목적은 vSAN 클러스터로 구동되는 VM에 향상된 성능을 제공하는 것이다. 더 빠른 버퍼 디바이스로 이동하여 성능을 더욱 개선할 필요가 있는 경우, 새로운 버퍼 디바이스가 다른 하드웨어 구성 요소 또는 구성에 불필요하게 제약되지 않도록 호스트 설계를 다시 검토하는 것이 현명한 단계다. 항목의 쉬운 체크리스트에는 다음이 포함된다.

  • 버퍼 계층과 용량 계층 간의 성능 델타가 중요한 경우 더 큰 버퍼 장치를 시도한다. 버퍼 장치의 성능이 향상되고 버퍼 계층과 용량 계층 간의 성능 델타가 증가함에 따라, 더 큰 버퍼가 더 큰 쓰기 버스트를 흡수할 수 있어 최적의 성능을 유지할 수 있다. vSAN의 논리적 한계에 따른 사이징은 최적의 버퍼링 용량을 제공할 것이다.
  • 더 빠르고 또는 더 작은 고성능 버퍼 장치를 사용하는 경우 더 높은 성능의 용량 장치를 추가하는 것을 고려한다.  이렇게 하면 데이터를 디스테이징할 수 있는 속도와 오랫동안 지속되는 쓰기 기간 동안 클러스터의 전체 정상 상태 성능이 향상된다. 용량 계층에 대한 디스테이징 레이트를 개선하면 보다 지속적인 쓰기 워크로드가 존재할 경우 버퍼의 채우기 속도가 사실상 감소한다. 고성능의 용량 계층은 용량이 작고 전체적으로 높은 vSAN 성능을 제공하는 고성능 버퍼 장치와 잘 결합된다.
  • 디스크 그룹을 더 추가하는 것을 고려한다. 각 디스크 그룹에는 전용 버퍼 장치가 필요하므로 더 많은 버퍼 용량을 도입하여 5개의 디스크 그룹을 사용하여 호스트당 최대 3TB의 총 버퍼 용량으로 더 많은 쓰기를 흡수할 수 있는 용량을 제공할 수 있다. 또한 버퍼가 수신하는 모든 쓰기 I/O와 디스테이징 태스크의 병렬성을 높인다. 버퍼 용량이 클수록 버퍼 계층에서 읽기를 가져올 수 있는 기회와 동일한 블록 덮어쓰기가 항상 개선된다.
  • Disk 그룹 내의 용량 장치 수를 늘리는 것을 고려한다. 이는 데이터를 디스테이징할 수 있는 속도와 오랫동안 지속되는 쓰기 기간 동안 클러스터의 전체 정상 상태 성능을 잠재적으로 개선할 수 있다.
  • vSAN Performance Service를 사용하여 워크로드를 관찰한다. 이는 오버헤드가 되는 버퍼 계층에 의해 성능이 방해받고 있는지 확인하는 데 필요한 통찰력을 제공할 수 있다. 자세한 내용은 "vSAN 성능 문제 해결"을 참조하십시오.
  • 최신 버전의 vSAN을 실행한다. vSAN 6.7 U3은 중복제거 및 압축을 실행하는 클러스터의 성능을 크게 향상시켰다. VM에 제공되는 지연 시간의 일관성을 향상시켰을 뿐만 아니라 소프트웨어 최적화를 통해 디스테이징 속도를 높였다.

특정 하드웨어 구성의 성능은 애플리케이션의 요구 사항 및 클러스터 구성에 따라 다르다는 점에 유의하십시오. 애플리케이션의 쓰기 버스트 기간이 매우 짧거나 용량 계층의 성능이 상당히 우수할 수 있다. 그러한 경우 더 빠른 버퍼 장치의 완전한 편익을 실현하기 위해 더 이상의 조정이 필요하지 않을 수 있다.

요약

쓰기 버퍼링은 용량 비용을 합리적으로 유지하면서 더 높은 성능을 제공하는 매우 효과적인 방법이다. vSAN과 같은 2계층 스토리지 시스템을 통해 버퍼 계층에서 가장 빠른 최신 스토리지 디바이스를 도입함으로써 VM에 더 낮은 지연 시간을 제공하는 쓰기를 보다 빠르게 인식할 수 있다. 이러한 고성능 기기를 통해 충분한 버퍼 용량을 확보하도록 하는 것은 성능 이점을 충분히 실현할 수 있도록 하는 좋은 단계다.