vSAN Memory consume – Virtualization
안녕하세요, 오랜만에 글을 올립니다. 당분간은 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개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
- 3GB + (1 x ( 500MB + (2MB x 400))) = 3GB + 1 x (500MB + 800 MB) = 3GB + 1300MB = 4.3GB
- 3개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
- 3GB + (3 x ( 500MB + (2MB x 400))) = 3GB + 3 x (500MB + 800 MB) = 3GB + 3900MB = 6.9GB
- 1개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
- 3GB + (1 x ( 500MB + (7MB x 400))) = 3GB + 1 x (500MB + 2800 MB) = 3GB + 3300MB = 6.3GB
- 3개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize)))
- 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개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
- (3GB + (1 x ( 500MB + (2MB x 400)))) * 16 / 32 = (3GB + 1 x (500MB + 800 MB)) / 2 = (3GB + 1300MB) / 2 = 2.15GB
- 3개의 디스크 그룹, Hybrid Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
- (3GB + (3 x ( 500MB + (2MB x 400)))) * 16 / 32 = 3GB + 3 x (500MB + 800 MB) / 2 = 3GB + 3900MB = 3.45GB
- 1개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
- (3GB + (1 x ( 500MB + (7MB x 400)))) * 16 / 32 = 3GB + 1 x (500MB + 2800 MB) / 2 = 3GB + 3300MB = 3.15GB
- 3개의 디스크 그룹, All flash Configuration, SSD 용량은 400GB
- BaseConsumption + (NumDiskGroups x ( DiskGroupBaseConsumption + (SSDMemOverheadPerGB x SSDSize))) * SystemMemory / 32
- (3GB + (3 x ( 500MB + (7MB x 400)))) * 16 / 32 = 3GB + 3 x (500MB + 2800 MB) / 2 = 3GB + 9900MB = 6.45GB
vSAN 6.6 에는 해당되지 않는 내용이니 참고하시기 바랍니다.
KB 로도 확인하실 수 있습니다.