內網esxi磁盤空間不足導致虛擬機宕機
一、問題引入
周一上班的時候,發現公司內網的戴爾服務器上(前人裝的ESXi系統,里面有很多個虛擬機),好幾個虛擬機異常關機了。點擊重新開機,有以下報錯提示:
選Retry是沒用的,選Cancel,才有可能開機,為啥叫可能,因為有一些空間占用多的虛擬機不一定能開機,會一直重復這種報錯。

二、問題研究及解決
刪掉快照,是最不用動腦子且快速的解決方法!
然而,效果並不理想(釋放的空間並不多),雖然已能確保所有虛擬機器都能啟動起來,但無疑為將來埋下地雷,只能干吧~~從根源解決問題。
公司是用VMware-Sphere虛擬化平台去管理虛擬機的。這個平台可以開啟esxi 的 ssh連接,具體大家可以百度下。我是通過某台同網段的虛擬機ssh跳過去的,因為不知道為啥,CRT直接輸入連接信息,一直不讓連,說要提供密鑰文件。
連上去看到的磁盤空間確實剩余不多
關於vmware的問題,老實說,找到的國人可參考文章非常少,所以開了個網易詞典,不斷看翻譯了解怎么釋放虛擬磁盤空間。
這篇文章是比較靠譜的,什么原理和解決方法都說了:

但到了這一步,可能是我理解能力有問題。遇到一些坑:手賤滴試過刪掉這行描述,也改過容量大小,然后莫名其妙不見了vmx文件,只能新建虛擬機讀原磁盤目錄,發現起不來,最終報廢了我的一台愛機(裝了個寶塔+mysql5.7),幸好我早就做好這機器得為革命事業奉獻的准備。不然不處理,以后也是一大禍患!像這樣

問題解決:
死了一台愛機,只能重建一台全新的linux機器進行測試,裝了個nginx,然后上傳了一個測試文件(最大限度模擬其他虛擬機環境)
首先需要關機,不然會給你提示:Failed to lock the file (16392) 【愛機生前最后一張遺照= =,紀念下它為人類革命奉獻了生命】

最終問題解決,還需要結合這篇文章進行參考(比較詳細):http://blog.faq-book.com/?p=6141
下面這個是我新建的機器:test-0413,給了40G硬盤空間,厚置備延遲置零

整個虛擬機目錄文件如下:
cp test-0413.vmx /tmp/
vmkfstools -i test-0413.vmdk -d thin test-0413_new.vmdk
對比下效果圖:

原來thick硬盤40G:

3、修改原本 Thick 格式的 test-0413.vmdk 和 test-0413-flat.vmdk 檔案名稱
~ # mv test-0413.vmdk test-0413.vmdk-thick.vmdk ~ # mv test-0413-flat.vmdk test-0413-flat-thick.vmdk
~ # mv test-0413_new.vmdk test-0413.vmdk ~ # mv test-0413_new-flat.vmdk test-0413-flat.vmdk
。。。 # Extent description RW 83886080 VMFS "test-0413-flat.vmdk" 。。。
6、驗證一致性:
vmkfstools -e test-0413.vmdk

