본문 바로가기

Virtualization/VMware vSAN

[VMware] vSAN Cluster 재기동 절차. Rebooting/Shutting down of vSAN Cluster with built-in tool.

상황에 따라 vSAN 클러스터를 전체 종료해야 하는 경우가 있다.  (PM 작업, 물리 이전 등)

친한 형이 관련 작업 예정이라 같이 테스트했는데, 기왕 테스트하는거 스크린샷 찍고 포스팅하기로 했다. ㅎㅎ

 

vSAN 종료 절차는 단순히 유지보수 모드만 생각할 수 있지만,

vSAN 6.7 U3 이상의 환경에서는 안전한 종료 절차를 위해 'built-in tool' 솔루션이 지원된다고 한다.

* 단, 정상 상태의 vSAN 환경에서 지원 가능 (이슈가 있는 상태면 복구를 우선)

 

 

 

 

 

 

테스트 환경: vSAN 6.7 P01 (ESXi 6.7u3, VCSA 6.7u3)

 

01. vSAN 환경의 정상 여부 확인

#esxcli vsan debug resync summary get

// resync 여부는 GUI에서도 확인 가능하며, 클러스터 vSphere HA도 Disable 한다.

해당 명령어는 vSAN 6.6 이상에서 가능

 

 

02. 모든 가상시스템 Shutdown 진행

여기서 vCenter Server VM은 가장 마지막에 종료하는 것이 편하다.

 

 

03. vSAN 호스트의 SSH 접속 후 명령어 실행

#esxcfg-advcfg -s 1 /VSAN/IgnoreClusterMemberListUpdates

// vCenter Server가 클러스터 멤버에 대한 업데이트를 의도적으로 무시하도록 전체 호스트에 명령을 실행한다.

#python /usr/lib/vmware/vsan/bin/reboot_helper.py prepare

// Reboot 준비 스크립트는 꼭 한 호스트에서만 실행해야 한다. 감시 호스트의 개념으로 이해하면 된다.

// 스크립트 실행이 완료하면 아래사진 처럼 'Cluster preparation is done!' 문구가 떠야 한다.

* 스크립트 수행 후에는 감시 호스트만큼의 vSAN 데이터스토어 용량만 확인된다.

* 내 경우에는 테스트를 한번 진행한 후에, 원복으로 재수행하면서 스크린샷을 찍었는데 처음엔 스크립트에 실패했다.

이전에 변경한 가비지 값이 남은건지.. vCenter Server가 실행중인 상태에서 03번을 먼저 수행했더니 스크립트 수행이 됐다.

 

 

04. vSAN 호스트 유지보수 모드 진입

#esxcli system maintenanceMode set -e true -m noAction

// 전체 호스트에서 수행. '작업 없음' 상태의 유지보수 모드로 설정.

 

 

05. vSAN 전체 호스트 재기동 (Power OFF ~ Power ON)

-

05-1. 운영자가 호스트의 IP/hostname을 변경하겠다고 한다면?

호스트 재기동 및 유지보수 모드 상태에서, DCUI 진입 후 네트워크 값을 변경하면 된다.

(vCenter 기동 시 호스트 '연결끊김' 상태일 경우) 전체 호스트 /etc/init.d/hostd restart

(여전히 '연결끊김' 상태일 경우) 전체 호스트 인벤토리 재등록 수행

* 인벤토리 재등록의 경우 호스트 유지보수 모드가 필요하지만, vCenter를 사용해야 하므로 해당 VM이 상주하는 한 호스트만 유지보수 모드를 종료해야 한다. 이 때, vCenter VM은 사전에 Local 영역에 두고 작업하는 것도 방법이다. (vSAN 데이터스토어 용량 문제 등)

 

 

06. vSAN 호스트 유지보수 모드 종료

#esxcli system maintenanceMode set -e false

// 전체 호스트에서 수행.

 

 

07. vSAN 호스트의 SSH 접속 후 명령어 실행

#python /usr/lib/vmware/vsan/bin/reboot_helper.py recover

// 03번의 역순으로 스크립트 먼저 수행한다. 마찬가지로 꼭 한 호스트에서만 실행해야 한다.

// 스크립트 실행이 완료하면 아래사진 처럼 'Cluster reboot/poweron is completed successfully!' 문구가 떠야 한다.

#esxcfg-advcfg -s 0 /VSAN/IgnoreClusterMemberListUpdates

// 이제 vCenter Server가 클러스터 멤버를 업데이트하도록 전체 호스트에 명령을 실행한다.

 

 

08. (마무리) vSAN 클러스터 참여 여부 확인 

#esxcli vsan cluster get

클러스터 구성원이나 DS 용량이 모두 정상이라면 vCenter Server VM을 포함한 전체 가상시스템의 전원을 Power on 하면 된다.

 

 

 

 

 

위와 같은 내용으로 모든 테스트를 마무리했다.

아래는 vSAN 클러스터 재기동 + 네트워크 변경 작업을 포스팅 내용 그대로 진행한 전후 스크린샷이다.

 

(AS-IS)

 

 

(TO-BE)

 

 

 

참고 URL

VMware KB : https://kb.vmware.com/s/article/70650

VMware Docs : https://docs.vmware.com/kr/VMware-vSphere/7.0/com.vmware.vsphere.vsan-monitoring.doc/GUID-31B4F958-30A9-4BEC-819E-32A18A685688.html