天天看點

在vSAN中回收精簡置備磁盤空間

VMware vSphere 6.5中引入了自動空間回收功能,用滑鼠右鍵單擊VMFS存儲,在彈出的快捷菜單中選擇“編輯空間回收”,在彈出的“空間回收設定”對話框中,管理者可以設定回收的速率(如圖1所示)。​

在vSAN中回收精簡置備磁盤空間

圖1 設定回收速率​

在vSAN 6.7 U1 及更高版本中支援删除或移除檔案将會釋放檔案系統内的空間。此可用空間會映射到某個儲存設備,直到檔案系統釋放或取消映射該空間為止。vSAN 支援可用空間回收,也稱為取消映射(UNMAP)操作。在執行諸如删除或遷移虛拟機、整合快照等操作時,可釋放 vSAN 資料存儲中的存儲空間。​

預設情況下vSAN禁用TRIM/UNMAP(剪裁/取消映射)功能。要在 vSAN 群集上啟用TRIM/UNMAP功能,應該滿足如下的條件:​

(1)vSAN 6.7 U1及之後的版本。​

(2)vSAN運作狀态檢查健康。​

(3)使用ssh登入到vCenter Server,再登入到vCenter Server RVC,進入目标vSAN叢集的路徑下,使用RVC 指令vsan.unmap_support .–enable啟用這一功能。​

(4)重新開機虛拟機。​

需要注意,在使用TRIM/UNMAP回收虛拟機的磁盤空間時,要求虛拟機的硬體版本大于13。對于Windows作業系統,Windows Server 2012之後的版本預設啟用這一功能,可以使用下面Powershell指令查詢,如圖2所示。​

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification​

在vSAN中回收精簡置備磁盤空間

圖2 ​

如果要開啟自動回收,可以執行如下指令,如圖3所示。​

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification -Value 0​

在vSAN中回收精簡置備磁盤空間

圖3​

(5)需要需要手動執行磁盤空間回收,在重新開機虛拟機之後,在VM裡執行下面的指令或者Defrag或者直接通過圖形排程磁盤清理任務(下面的C表示C槽):​

Optimize-Volume -DriveLetter C -ReTrim -Verbose​

(6)在 Linux 作業系統上,脫機取消映射通過 fstrim 指令執行,内嵌取消映射在使用 mount -o discard 指令時執行。​

在 vSAN 群集上啟用取消映射時,必須先關閉所有虛拟機的電源然後再打開電源。虛拟機必須使用虛拟硬體版本 13 或更高版本,才能執行取消映射操作。​

本文通過具體的案例來介紹這一功能。​

1 案例現狀

某企業虛拟化環境由5台ESXi主機組成,使用vSAN共享存儲架構。vCenter Server與ESXi版本是6.7.0 U3。該虛拟化環境中有台IP位址為192.168.223.238的虛拟機,安裝的Windows Server 2012 R2的作業系統。該虛拟機E盤使用了6430GB,因為E盤空間不夠,管理者在E盤删除了容量約3840GB的檔案,E盤可用空間從原來的278GB變為3.92TB(如圖4所示)。目前虛拟機共有4個磁盤分區,統計每個磁盤分區的總空間并減去可用空間,計算虛拟機的使用空間=(194-137)+(251-239)+(6.54-3.92)×1024+(7.99-4.51)×1024=6315GB≈6.17TB。​

在vSAN中回收精簡置備磁盤空間

圖4 在E盤删除​

因為目前是vSAN共享存儲架構,目前是混合存儲架構,總體相當于RAID-10,虛拟機使用6.17TB,實際應該占用的空間約12.3TB左右。但是在vCenter Server中檢檢視到,該虛拟機實際占用了20.68TB的空間,有8.38TB的空間沒有釋放,如圖5所示。​

在vSAN中回收精簡置備磁盤空間

圖5 檢查IP位址為192.168.223.238虛拟機的占用空間​

檢查vSAN共享存儲總空間和可用空間,總空間為39.12TB,可用空間為4.16TB,如圖6所示。​

在vSAN中回收精簡置備磁盤空間

圖6 檢查vSAN存儲空間​

出現這種情況,是IP位址為192.168.223.238的虛拟機中删除的磁盤檔案的空間沒有被真正釋放。​

2 在vCenter Server中啟用unmap功能

在目前的案例中,vCenter Server的IP位址是192.168.223.220,SSO帳戶名稱為[email protected]。該vCenter Server的SSH功能已經啟用。如果vCenter Server的SSH功能已經禁用,可以登入到vCenter Server的管理者界面(https://192.168.223.220:5480)來啟用。​

(1)使用ssh工具軟體登入到vCenter Server。例如使用Xshell登入到192.168.223.220,使用root帳戶和密碼登入。在Command>後面輸入shell進入#提示符。​

(2)在#提示符後面輸入rvc指令;在Host to connect to (user@host):提示中輸入vCenter Server的IP位址192.168.223.220然後按Enter鍵,此時會提示使用預設的使用者名[email protected]登入,輸入vCenter Server的SSO賬戶[email protected]的密碼後,登入到vCenter Server的rvc界面,如圖7所示。​

在vSAN中回收精簡置備磁盤空間

圖7 進入rvc界面​

(3)進入rvc界面之後,輸入cd 1進入192.168.223.220。然後執行ls,此時會顯示vCenter Server中資料中心的名稱,目前資料中心名稱是Datacenter,執行cd 0進入資料中心。執行ls,會顯示存儲(storage)、主機(host)、網絡(network)、storages、虛拟機(vm)等清單,執行cd 1進入host。執行ls,顯示叢集,目前顯示有2個叢集。執行cd 1進入名稱為vSAN的叢集。然後執行vsan.unmap_support . -e啟用unmap,如圖8所示。在為名稱為vSAN的叢集啟用unmap後,執行exit退出。​

在vSAN中回收精簡置備磁盤空間

圖8 啟用unmap​

3 更新虛拟機硬體版本及回收磁盤空間

關閉IP位址為192.168.223.238虛拟機的電源,檢查目前虛拟機硬體版本為14。用滑鼠右鍵單擊該虛拟機,在彈出的快捷菜單中選擇“相容性→更新虛拟機相容性”。在彈出的“配置虛拟機相容性”對話框中,在“相容”下拉清單中選擇“ESXi 6.7 Update 2及更高版本”,然後單擊“确定”按鈕。​

此時IP位址為192.168.223.238的虛拟機硬體版本更新到15,如圖9所示。目前虛拟機的存儲使用情況為20.68TB。​

在vSAN中回收精簡置備磁盤空間

圖9 檢查虛拟機相容性​

然後打開IP位址為192.168.223.238虛拟機的電源,在CMD指令提示視窗執行Powershell指令,進入Powershell界面,執行如下指令回收E盤空間:​

optimize-volume -DriveLetter E -ReTrim -Verbose​

該指令執行完成後,顯示E盤的卷大小、已用空間、可用空間,如圖10所示。​

在vSAN中回收精簡置備磁盤空間

圖10 回收E盤空間​

IP位址為192.168.223.238虛拟機運作在IP位址為192.168.223.225的ESXi主機上,在vCenter Server中選中IP位址為192.168.223.225的ESXi主機,在“監控→vSAN→性能→虛拟機”中,在“剪裁/取消映射吞吐量”中顯示了vSAN執行unmap時的截圖,如圖11所示。​

在vSAN中回收精簡置備磁盤空間

圖11 檢視unmap截圖​

再次檢視IP位址為192.168.223.238虛拟機占用的空間,已經從原來的20.68TB下降到13.81TB,釋放了約6.87TB的空間,如圖12所示。​

在vSAN中回收精簡置備磁盤空間

圖12 再次檢查虛拟機占用存儲空間​

檢視vSAN共享存儲的可用空間,從原來的4.16TB上升到10.5TB,增加了6.34TB的空間,如圖13所示。​

在vSAN中回收精簡置備磁盤空間

圖13 再次檢查vSAN存儲空間​

【說明】​

(1)這篇文章最初發表在《網絡安全和資訊化》雜志2022年第6期的第93~95頁。​

(2)相關圖書《VMware vSAN超融合企業應用實戰》​

​​https://item.jd.com/12842654.html​​​

繼續閱讀