virtualization/VMware

디스크 용량 부족으로 인한 가상머신의 기동실패

yueisu 2010. 8. 24. 13:35
백업서버용으로 가상머신을 사용하고 있습니다. iSCSI 스토리지상에 1.5TB의 virtual disk를 작성해서 할당한 가상머신이었습니다. 지난주 금요일 해당 가상머신의 데이터스토어 남은 용량이 10%라는 경고가 뜨길래, 예전에 작성해둔 스냅숏을 삭제했습니다. 그리고 퇴근...

월요일 아침에 확인을 했더니 다음과 같은 메시지와 함께 백업서버의 기동이 실패한 상태였습니다.
msg.hbacommon.outofspace:There is no more space for the redo log of 가상머신.vmdk. You may be able to continue this session by freeing disk space on the relevant partition, and clicking Retry. Otherwise, click Abort to terminate this session.

난감하더군요. vCenter상에서는 스냅숏의 삭제가 정상적으로 된 것처럼 보이는데, 용량이 줄긴커녕 늘어버려, 8MB밖에 남지않았기 때문에 위와 같은 메시지와 함께 기동이 실패한거였습니다.

ESX의 서비스 콘솔로 접속을 해서 해당 가상머신의 디렉토리로 이동, 확인해보니 버젓이 "xxxxx-delta.vmdk"가 남아있더군요.
이상하다싶어 다음의 명령어로 확인을 해본 결과, 스냅숏은 없다라는 결과였습니다.
[root@esx 가상머신]# vmware-cmd /vmfs/volumes/데이터스토어/가상머신명/가상머신.vmx hassnapshot
hassnapshot() = 0

음... --;

뭐, 정않되면 백업서버 삭제하고 템플릿으로 새로 백업서버를 만들면 되니까, 이기회에 서비스 콘솔상에서 이것저것 만질 수 있겠다싶어서 겁없이(!) 다음 작업을 했습니다.
 ① 백업서버를 기동시키려는 ESX상의 다른 가상머신을 vmotion으로 다른 호스트로 이행
 ② 서비스 콘솔로부터 백업서버의 프로세스를 정지
[root@esx 가상머신]# lsof  | grep 가상머신
[root@esx 가상머신]# kill -9 가상머신 프로세스

 ③  "xxxxx-00000x-delta.vmdk"과 "xxxxx-00000x.vmdk"화일을 삭제
 ④ "가상머신.vmx" 화일에서 [scsi0:1.fileName = "xxxxx-00000x-delta.vmdk"] 부분을 [scsi0:1.fileName = "xxxxx.vmdk"(parent 화일)]로 변경 
 ⑤ "가상머신.msn", "가상머신.vmsd" 화일을 삭제
 ⑥ mgmt-vmware 서비스 리스타트
[root@esx 가상머신]# /etc/init.d/mgmt-vmware restart

제대로 된 처치였는지는 모르겠습니다만, 기동이 되지않던 백업서버가 무사히(?) 기동되었습니다. 흐흐