如何回收xenserver磁盤空間?
在基于LVM的Local EXT和NFS SR上刪除快照或克隆虛擬機后,通過釋放未使用的數據,XenServer可自動回收磁盤空間,此過程稱之為合并(coalescing)。XenServer可在虛擬機運行的同時合并磁盤空間(即在線合并)。
但是,XenServer 5.5的合并部署有一個已知的限制條件。在虛擬機磁盤上刪除所有快照或克隆虛擬機后,一些磁盤空間可能仍然處于分配狀態。盡管NFS和基于ext的SR的已刪除快照或克隆虛擬機所消耗的空間非常少,但對于iSCSI FC和本地SR來說,消耗的空間量是非常巨大的。
為了消除這一局限性,XenServer 5.5 Update 1和更高版本引進了一個離線合并工具。該工具可在虛擬機暫時關閉或暫停使用(離線)時,回收之前分配給已刪除快照或克隆的所有磁盤空間。下面介紹了離線合并工具及其使用。
警告!
運行此腳本會導致虛擬機暫時無法使用,因為執行了暫停/恢復操作。
運行此工具前,您必須使用XenCenter或XenServer CLI刪除與虛擬機相關的所有快照和克隆。否則,腳本就會失敗,工具就會顯示錯誤信息,然后退出。
所有虛擬機磁盤必須在單個主機的共享存儲或本地存儲上。帶有這兩種存儲類型的磁盤的虛擬機無法合并。
步驟 - 適用于XenServer 5.5 Update 1和更高版本
思杰建議對將運行空間回收工具的虛擬機進行備份,可使用XenCenter導出選項進行備份。
您必須知道虛擬機的UUID。
獲取UUID
1. 在XenCenter中,啟用隱藏目標(View menu > Hidden Objects)。
1. 在Resource窗格中,選擇所需UUID對應的虛擬機。UUID將顯示在General項中。
回收磁盤空間
在XenServer CLI中運行以下命令:
coalesce-leaf –u <uuid of VM>
例如,如果虛擬機的UUID是2a8d2815-c97e-245b-efe2-389ba456bd7p,您需要運行以下命令:
coalesce-leaf –u 2a8d2815-c97e-245b-efe2-389ba456bd7p
1. 此命令會暫時中止虛擬機的運行(除非其已經關機),啟動回收進程,然后恢復虛擬機運行。
根據上次快照后寫入磁盤的數據量的大小,所需的時間也不同。最小的虛擬機(10GB或更低)只需不到1分鐘。
步驟 - 適用于XenServer 5.6
思杰建議對將運行空間回收工具的虛擬機進行備份,可使用XenCenter導出選項進行備份。
您需要知道虛擬機和主機UUID。
獲取UUID
1. 在XenCenter中,啟用隱藏目標(View menu > Hidden Objects)。
1. 在Resource窗格中,選擇所需UUID對應的虛擬機。UUID將顯示在General項中。
1. 在Resource窗格中,選擇資源池主機(列表中的第一臺主機)。UUID將顯示在General項中。如果您沒有使用資源池,選擇虛擬機所在的主機。
回收磁盤空間
1. 在XenServer CLI中運行以下命令:
xe host-call-plugin host-uuid=<host-UUID> plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=<VM-UUID>
例如,如果虛擬機的UUID是9bad4022-2c2d-dee6-abf5-1b6195b1dad5,主機UUID是b8722062-de95-4d95-9baa-a5fe343898ea,您需要運行以下命令:
xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5
1. 此命令會暫時中止虛擬機的運行(除非其已經關機),啟動回收進程,然后恢復虛擬機運行