virtualization/VMware

[VMware] vSAN 캐시 디스크에 장애가 발생하면 디스크 그룹이 보이지않음

yueisu 2018. 6. 4. 22:52


조금 시간이 지난 내용일지 모르겠습니다.


작년에 vSAN에 대한 팁을 몇가지 소개한 적이 있습니다. 내용중에 vSAN 도입후 장애 테스트를 실행할 경우는 가동중인 디스크를 해제하지말고 "vsanDsikFaultInjection.pyc"를 이용하도록 소개를 했었습니다. 이 스크립트를 실행하면 캐시/용량 디스크의 장애 시험을 할 수 있죠. 


제 자신도 vSAN을 도입한 뒤에는 "vsanDsikFaultInjection.pyc"를 이용하여 디스크의 장애 시험을 행하고 있습니다만, vSAN 6.5부터 예상 밖의 문제에 부딪혔습니다.


뭐가 예상 밖이냐면 말이죠, 캐시 디스크에 장애를 일으키면 디스크 그룹이 보이지않게 된다는 겁니다. 이건 문제입니다. 디스크 그룹이 않보이면 뭐가 문제냐면 말이죠, 그 디스크 그룹내의 용량 디스크를 삭제할 수 없기 때문입니다. 용량 디스크를 삭제할 수 없으면 장애가 발생한 캐시 디스크를 교환했더라도 디스크 그룹을 새로 만들 수 없습니다. 왜냐하면 용량 디스크는 여전히 장애가 발생했던 캐시 디스크의 디스크 그룹의 메타 데이터를 갖고 있어 디스크 그룹을 만들려해도 용량 디스크가 표시되질 않기 때문입니다.  (용량 디스크에 장애가 발생하였을 경우는 디스크 그룹이 보이지않는 문제는 발생하지 않습니다)


이 현상, vSAN 6.5~6.6.1의 버그인거 같습니다. vSAN 6.2까지는 이 버그의 영향을 받지않았으며 캐시 디스크에 장애가 발생해도 디스크 그룹은 보여지기 때문에 Web Client를 통해 용량 디스크나 디스크 그룹을 삭제할 수 있었습니다. 이 버그, vSAN 6.7에서 해결(이라기보다는 대응)되었다고 합니다.

 


검증환경에서 확인을 해보죠.


위의 그림은 vSAN 6.6.1의 검증 환경입니다. 3 노드 구성으로 첫번째 노드(n-esxi65-15)의 캐시 디스크에 장애를 일으키겠습니다.


"vsanDsikFaultInjection.pyc"를 실행하여 "Permanent Disk Failure" 상태를 만듭니다.


보이시나요? 첫번째 노드(n-esxi65-15)의 디스크 그룹이 보이지 않게 되었습니다. 하지만 캐시 디스크와 용량 디스크는 확인을 할 수 있습니다. 하지만... 용량 디스크를 삭제할 수 있는 방법이 없습니다. 허허허


이번에는 버그를 대응한 vSAN 6.7의 검증 환경입니다. 역시나 3 노드 구성으로 첫번째 노드(n-esxi67-21)의 캐시 디스크에 장애를 일으키겠습니다.


"vsanDsikFaultInjection.pyc"를 실행하여 "Permanent Disk Failure" 상태를 만듭니다.

음? 대응되었을 버전임에도 불구하고 vSAN 6.6.1과 동일하게 디스크 그룹이 보이지 않게 되었습니다. 아울러 용량 디스크를 삭제할 수 있는 메뉴가 없습니다. 흐음...


HTML5 Client로 다시금 vSAN 6.7 클러스터를 확인해 봤습니다. 확인해보니 [Remove Disk(s)] 메뉴가 있네요! ;) 아시겠지만 Flash Client는 vSAN 6.7에서 비추천, 다음의 버전에서 비지원이 됩니다. 따라서 Flash Client에는 이 대응 메뉴가 추가되지 않은 것 같습니다.


[Remove Disk(s)]를 클릭하면 용량 디스크를 삭제할 수 있습니다. 


깔끔하게(?) 삭제가 되었네요. 흐흐



참고로 이 버그의 영향을 받는 vSAN 6.5 ~ 6.6.1 환경에서 만약 캐시 디스크에 장애가 발생하였다면 아래의 방법으로 ESXi에서 직접 용량 디스크를 삭제할 수 있습니다.


우선 삭제할 용량 디스크의 디바이스명을 확인합니다.

esxcli vsan storage list


디바이스명을 확인했다면 다음의 명령어를 실행, 용량 디스크를 하나씩 삭제합니다.

esxcli vsan storage remove –evacuation-mode=noAction –disk=디스크명


;)