안녕하세요, 오랜만에 글을 올립니다. 당분간은 VMware 중 vSAN 에 관련된 포스트를 주로 올릴려고 합니다.

vSAN 을 도입하는 경우, vSAN 이 ESXi 내에 함께 통합되어 있기 때문에, vSAN 동작을 위해서 필요로 하는 메모리의 양이 있습니다.

기본적으로 vSAN 6.0 – 6.5 버전들의 메모리 사용량은 아래와 같은 공식으로 계산됩니다.

BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))

 

부수적으로 설명을 드리면,

 

BaseConsumption : vSAN 구성시 기본적으로 사용하는 고정적인 사용량. 현재 버전에서는 3GB 이며, vSAN directory 및 메타데이타, 메모리 캐쉬를 저장하는 공간입니다.
NumDiskGroups : 호스트당 디스크 그룹의 숫자 입니다. 1~5 가 될 수 있겠습니다.

DiskGroupBaseConsumption : 각각의 디스크 그룹이 사용하는 고정적인 사용량이며, 현재는 500MB 입니다. 디스크 그룹레벨에서의 온라인 오퍼레이션을 위해서 리소스를 할당할 때 사용합니다.

SSDMemOverheadPerGB  :  SSD 의 GB 당 사용하는 고정적인 사용량입니다. Hybrid configuration 에서는 2MB 이고, ALL flash 구성에서는 7MB 입니다. Write buffer 와 read cache 로 인하여 변경되는 SSD 내의 Block 을 트래킹하기 위해 사용됩니다.

SSDSize : SSD 용량입니다. GB 단위 입니다.

 

계산 예제는 다음과 같습니다.

  1. 1개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
    2. 3GB + (1 x ( 500MB + (2MB x 400))) = 3GB + 1 x (500MB + 800 MB) = 3GB + 1300MB = 4.3GB
  2. 3개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
    2. 3GB + (3 x ( 500MB + (2MB x 400))) = 3GB + 3 x (500MB + 800 MB) = 3GB + 3900MB = 6.9GB
  3. 1개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
    2. 3GB + (1 x ( 500MB + (7MB x 400))) = 3GB + 1 x (500MB + 2800 MB) = 3GB + 3300MB = 6.3GB
  4. 3개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
    2. 3GB + (3 x ( 500MB + (7MB x 400))) = 3GB + 3 x (500MB + 2800 MB) = 3GB + 9900MB = 12.9GB

클러스터내의 호스트가 32대를 넘어가면 BaseConsumption 이 3.3GB 로 증가합니다.

 

만약 호스트의 메모리가 32GB 가 되지 않으면 다음과 같이, 사용하는 메모리의 양이 Scale down 되며, 계산공식에 다음이 추가됩니다.

(BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) ) * SystemMemory / 32

위의 계산 예제에 적용을 하면 (호스트의 메모리는 16GB 로 가정하겠습니다.)

  1. 1개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
    2. (3GB + (1 x ( 500MB + (2MB x 400)))) * 16 / 32 = (3GB + 1 x (500MB + 800 MB)) / 2 = (3GB + 1300MB) / 2  = 2.15GB
  2. 3개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
    2. (3GB + (3 x ( 500MB + (2MB x 400)))) * 16 / 32 = 3GB + 3 x (500MB + 800 MB) / 2 = 3GB + 3900MB = 3.45GB
  3. 1개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
    2. (3GB + (1 x ( 500MB + (7MB x 400)))) * 16 / 32 = 3GB + 1 x (500MB + 2800 MB) / 2 = 3GB + 3300MB = 3.15GB
  4. 3개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
    2. (3GB + (3 x ( 500MB + (7MB x 400)))) * 16 / 32 = 3GB + 3 x (500MB + 2800 MB) / 2 = 3GB + 9900MB = 6.45GB

vSAN 6.6 에는 해당되지 않는 내용이니 참고하시기 바랍니다.

(2017.08.22 update)

ESXi 6.0 update 3 및 vSAN 6.6 에서는 아래와 같이 변경되었습니다.

BaseConsumption +
(NumDiskGroups * (DiskGroupBaseConsumption + (SSDMemOverheadPerGB * SSDSize))) + (NumCapacityDisks * CapacityDiskBaseConsumption)

BaseConsumption = 5426 MB
DiskGroupBaseConsumption = 636 MB
SSDMemOverheadPerGB (hydrid) = 8 MB
SSDMemOverheadPerGB (allflash) = 14 MB
CapacityDiskBaseConsumption= 70 MB

위의 변경된 내용으로 다시 계산을 해보면

  • 1개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB , 각 Diskgroup 당 Capacity disk 는 3개
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) + (NumCapacityDisks * CapacityDiskBaseConsumption)
    2. 5426MB + (1 x ( 636MB + (8MB x 400))) + (3 * 70MB)=5426MB + 1 x (636MB + 3200MB) + 210MB = 5426MB + 3836MB + 210MB = 9472MB
  • 3개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB, 각 Diskgroup 당 Capacity disk 는 3개
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) + (NumCapacityDisks * CapacityDiskBaseConsumption)
    2. 5426MB + (3 x ( 636MB + (8MB x 400))) + (9 * 70MB) = 5426MB + 3 x (636MB + 3200MB) + 630MB = 5426MB+ 11508MB + 630MB = 17564MB
  • 1개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB, 각 Diskgroup 당 Capacity disk 는 3개
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))  + (NumCapacityDisks * CapacityDiskBaseConsumption)
    2. 5426MB + (1 x ( 636MB + (14MB x 400))) + (3 * 70MB) = 5426MB+ 1 x (636MB + 5600 MB) + 210MB = 5426MB + 6236MB + 210MB= 11872MB
  • 3개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB, 각 Diskgroup 당 Capacity disk 는 3개
    1. BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) (NumCapacityDisks * CapacityDiskBaseConsumption)
    2. 5426MB + (3 x ( 636MB + (14MB x 400))) + (9 * 70MB) = 5426MB + 3 x (636MB + 5600 MB) + 630MB= 5426MB + 19038MB + 630MB  = 25094MB

KB 로도 확인하실 수 있습니다.

https://kb.vmware.com/kb/2113954

One thought on “vSAN Memory consume”

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다