[vSphere] vCenter 잃고 vSAN 고치기

자금이 여유롭지 않거나 인프라 요구 수준이 통합되지 않았거나 홈 랩 구축의 경우, HCI는 보통 3대~5대의 호스트로 구축한다. 이 수량의 HCI를 추축했다면 전력이 안정되고 네트워크가 이중화되어 있지 않아 종종 불의의 사고로 인해 통제 권한을 잃는 때가 있다. 특히 VMware는 vCenter를 통해 vSAN을 관리하므로 당황하기 쉽다. 이 때문에 매뉴얼 숙독 없이 동호 수준으로 이용하는 아마츄어 관리자 중 다수다 가상화 바깥에 vCenter를 배치해야한다며 입을 모으기도 한다.

출시 초기의 vSAN은 3대 운영 중 1대 장애 시에도 데이터 손상을 고치치 못하는 기가 막히는 경우도 생겼었지만, 지금의 vSAN은 정합성은 물론 장애 시 복구 효율성을 위한 대비까지 자동으로 준비해주는 HCI 기술 리더이다. 몇가지 문제해결 방법을 숙지하고 있다면 사고 시에 주요 문서를 찾아내 CLI로 복구 작업을 진행할 수 있다.

우선 vSAN의 통신 흐름이 동작하기 위해서는 조건이 몇 있다.

  1. VMKernel에 vSAN 태그가 있을 것
  2. vSAN 클러스터에 가입되어있을 것
  3. vSAN 클러스터 내 호스트에 상호 통신 할 호스트의 UUID가 유니캐스트 에이전트로 등록되어 있을 것

3가지 모두 vCenter 통해 명령하도록 되어 있지만, 몇가지는 vCenter 없이 각 ESXi에서 통제할 수 있다.

시스템 실패 시에 vCenter접근 안되는 경우

장애 호스트에 vCenter가 있고 vCenter HA 구성되어 있지 않아 vSphere HA가 실패하였다면 대응은 단순하다.

시스템 복구 후에 VMware Host Client 접속하여 vCenter를 켠다.

네트워크 실패로 인해 vCenter 접근 안되는 경우

홈 랩은 언더레이 라우터가 가상화 되어 있고 네트워크 스위치에 장애가 발생한다면 약간 불행해질 때가 있다.

  1. ESXi의 DCUI 내 문제해결 옵션에서 VMK0를 Standard vSwitch로 되돌린다. (전체 네트워크 초기화하지 않도록 유의)
  2. 셸 접근하여 VMK0에 vSAN 태그를 붙혀 준다.
  3. VMK0 아이피로 각 호스트 UUID를 유니캐스트 에이전트로 등록한다.
  4. VMware Host Client의 VM 목록에서 상태가 ‘정상’으로 바뀌는지 확인 후에 vCenter를 부트한다.

이후에는 vCenter 접속하여 Standard vSwitch에서 vSphere Distributed Switch로 커널을 다시 마이그레이션 하며 통상 복구 과정을 진행한다.

VMK0에 vSAN 태깅

VMware Host Client Web GUI 통해서는 활성 상태만 확인할 수 있다. 활성화는 ESXi Shell에서 진행한다.

vSAN의 VMkenel 구성 추가 문서에는 CLI 방법을 안내하지 않지만, esxcli 명령 통해 VMkernel에 태그를 추가하는 방법을 그대로 활용할 수 있다.

esxcli network ip interface tag add -i vmk0 -t VSAN

접근 가능한 호스트 아이피와 UUID 통일

우선 등록되어 있는 유니캐스트 에이전트를 조회한다.

esxcli vsan cluster unicastagent list

이미 등록되어 있는 호스트의 UUID를 아이피만 바꾸어 추가한다. vSAN은 호스트 등록 시에 노드와 위트니스를 구분하므로 운영에 필요한 커맨드를 빠짐 없이 기입해야 한다.

esxcli vsan cluster unicastagent add -t node -U true -a (Host IP) -u (Host UUID)

기존 호스트 정보를 제거할 때는 아이피만 기입해준다.

esxcli vsan cluster unicastagent remove -a (Host IP)

그 밖의 참조는 vSAN 유니캐스트 통신 관련 KB 문서를 참조 한다.

4대~5대 구성이라면 호스트 2대 장애가 발생하여 vCenter 컴퓨팅을 잃어도 상기 구성 조정만으로 장애 해소가 가능하였다.


게시됨

카테고리

작성자

태그:

댓글

답글 남기기

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