vSAN Sparse swap

UPDATE (2018/May/02): vSAN 6.7 에서는 vSAN Sparse swap 이 디폴트로 enabled 되어있습니다. 또한 swap file 에 대한 policy 가 무조건 FTT=1 으로 고정되는것이 아니라, VM 에 적용되어있는 Policy 를 따라가도록 변경이 되었습니다.

vSAN 6.2 에서 추가된 것중 하나가 vSAN Sparse swap 입니다.

이게 무슨 기능이냐 쉽게 생각하면 thin provisioned swap file 이라고 생각하시면 됩니다.

vSAN 6.1 까지는 VM poweron 시에 생기는 swap 파일에 대해서 OSR 이 무조건 100% 로 설정이 되었습니다. 

만약 VM 에 4GB 를 할당하고 power on 을 하게 되면 4GB 짜리 swap 파일이 생성이 되는 것이죠. 거기에 FTT=1 까지 먹어서 실제로는 swap 으로 인한 용량 손실이 8GB 가 되는것입니다.

4GB VM 이 1000 라고 한다면, swap 용량으로만 8TB 를 소모하는 것이지요.

이러한 것들을 피하기 위해서 vSAN sparse swap 이 나왔습니다.

한가지 기억해두실것은 vSAN Sparse swap 파일은 Memory overcommit 을 사용하는 환경에서는 적용하지 않는것을 권합니다. 아니 적용안하는걸 권한다라기 보다는.. 메모리 오버커밋이 발생하면 어짜피  해당 크기만큼 생기기 때문에 의미가 없는것이지요.

일단 sparse swap 은 기본적으로 disable 상태입니다.

이 상태에서 VM swap object 의 정보를 보면 (아래 VM 은 4GB 메모리가 할당된 VM 입니다.)

 

위와 같이 4.0 GB 크기의 component 두개가 생성되어있는것을 볼 수 있습니다.

자 그렇다면 sparse swap 기능을 enabled 해보겠습니다. 호스트별로 설정을 해주어야 합니다.

현재 설정되어있는 값을 확인합니다.

esxcfg-advcfg -g /VSAN/SwapThickProvisionDisabled

0 으로 되어있다면 Thick provision 상태임으로 1 로 변경하여 줍니다.

esxcfg-advcfg -s 1 /VSAN/SwapThickProvisionDisabled

위 기능을 enabled 하고 나서 VM 을 power off -> power on 해줍니다. 그러고나서 다시 확인해보면..

 

위에서 보는바와 같이 power off -> on 으로 인하여 새로 swap 파일이 생성되었기 떄문에 object id 는 변경이 되었습니다만, component 가 가진 size 의 크기는 0GB 로 변경된것을 확인할 수 있습니다.

Memory overcommit 이 발생하지 않는 환경이라면 sparse swap 기능을 enabled 해서 swap 파일로 인해 낭비되는 공간을 줄이시면 아주 좋겠지요.