在基於LVM的Local EXT和NFS SR上刪除快照或克隆虛擬機器後,透過釋放未使用的資料,XenServer可自動回收磁碟空間,此過程稱之為合併(coalescing)。XenServer可在虛擬機器執行的同時合併磁碟空間(即線上合併)。
但是,XenServer 5.5的合併部署有一個已知的限制條件。在虛擬機器磁碟上刪除所有快照或克隆虛擬機器後,一些磁碟空間可能仍然處於分配狀態。儘管NFS和基於ext的SR的已刪除快照或克隆虛擬機器所消耗的空間非常少,但對於iSCSI FC和本地SR來說,消耗的空間量是非常巨大的。
警告!
執行此指令碼會導致虛擬機器暫時無法使用,因為執行了暫停/恢復操作。
所有虛擬機器磁碟必須在單個主機的共享儲存或本地儲存上。帶有這兩種儲存型別的磁碟的虛擬機器無法合併。
步驟 - 適用於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是2a8d2815-c97e-245b-efe2-389ba456bd7p,您需要執行以下命令:
coalesce-leaf –u 2a8d2815-c97e-245b-efe2-389ba456bd7p
1. 此命令會暫時中止虛擬機器的執行(除非其已經關機),啟動回收程序,然後恢復虛擬機器執行。
根據上次快照後寫入磁碟的資料量的大小,所需的時間也不同。最小的虛擬機器(10GB或更低)只需不到1分鐘。
步驟 - 適用於XenServer 5.6
您需要知道虛擬機器和主機UUID。
1. 在Resource窗格中,選擇資源池主機(列表中的第一臺主機)。UUID將顯示在General項中。如果您沒有使用資源池,選擇虛擬機器所在的主機。
1. 在XenServer CLI中執行以下命令:
xe host-call-plugin host-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
在基於LVM的Local EXT和NFS SR上刪除快照或克隆虛擬機器後,透過釋放未使用的資料,XenServer可自動回收磁碟空間,此過程稱之為合併(coalescing)。XenServer可在虛擬機器執行的同時合併磁碟空間(即線上合併)。
但是,XenServer 5.5的合併部署有一個已知的限制條件。在虛擬機器磁碟上刪除所有快照或克隆虛擬機器後,一些磁碟空間可能仍然處於分配狀態。儘管NFS和基於ext的SR的已刪除快照或克隆虛擬機器所消耗的空間非常少,但對於iSCSI FC和本地SR來說,消耗的空間量是非常巨大的。
警告!
執行此指令碼會導致虛擬機器暫時無法使用,因為執行了暫停/恢復操作。
所有虛擬機器磁碟必須在單個主機的共享儲存或本地儲存上。帶有這兩種儲存型別的磁碟的虛擬機器無法合併。
步驟 - 適用於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是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=
例如,如果虛擬機器的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. 此命令會暫時中止虛擬機器的執行(除非其已經關機),啟動回收程序,然後恢復虛擬機器執行。