Virtualization

磁碟收縮不適用於 ESXi 來賓

  • April 25, 2019

大家好!我在 StackOverflow 網路上的第一篇文章 :)

我們正在執行一些 ESXi 5.0/vCenter 基礎架構來主要託管具有 ext3 分區的 Debian 6/amd64 來賓系統,並根據debian 錯誤 471784open-vm-tools從原始碼編譯。

有一個問題在整個網際網路上都被提出,但在任何地方都沒有給出確鑿的答案。

當嘗試在獨立持久模式下縮小精簡配置磁碟時,沒有任何快照、父級、複製,我一直收到以下錯誤:

root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.

Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.

(順便問一下,“其他因素”是什麼,大量的白皮書和技術手冊中的哪一個使用者手冊?:)

我知道我可以用零填充分區(事實上,我shred -fuzn0在刪除大文件時確實使用過)然後關閉有問題的來賓並使用各種方法,例如vmkfstools在精簡配置模式下複製或 vMotioning 磁碟等,但所有其中的一個要麼導致客戶機被收縮而導致停機時間損失,要麼導致數據儲存和/或主機之間的數據無根據地移動。


答案是:在 ESX/ESXi 下沒有收縮(從版本 5 開始)。

文件內容如下:

重要在以下情況下不允許使用收縮磁碟:

  1. 虛擬機託管在 ESX/ESXi 伺服器上。 只有在導出虛擬機時, ESX/ESXi Server才能縮小虛擬磁碟的大小。但是,ESX/ESXi 伺服器上的虛擬磁碟佔用的空間不會改變。
  2. 虛擬機具有Mac 客戶作業系統。
  3. 創建虛擬磁碟時,您已將所有磁碟空間預分配給虛擬磁碟。
  4. 虛擬機包含一個快照
  5. 虛擬機是連結複製或連結複製的 級。
  6. 虛擬磁碟是非持久模式下的獨立磁碟 。
  7. 文件系統是日誌文件系統,例如ext4、xfs 或 jfs文件系統。

難怪在 VMWare Workstation 中有縮小選項,但在連接到 ESXi 或 vCenter 實例的 vSphere 客戶端中沒有。

http://www.vmware.com/pdf/vmware-tools-cli.pdf 第 13 頁:

在以下情況下不允許縮盤:

虛擬機託管在 ESX/ESXi 伺服器上。只有在導出虛擬機時,ESX/ESXi Server 才能縮小虛擬磁碟的大小。但是,ESX/ESXi 伺服器上的虛擬磁碟佔用的空間不會改變。

實際上,有一種方法可以在 ESXi 上縮小虛擬機,儘管您需要為此關閉虛擬機。就是這樣:

  1. 將 VM 內的所有未使用空間歸零:

dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero 2. 對其他掛載點、交換分區等執行相同操作。 3. 關閉虛擬機。 4. SSH 到 ESXi,並發出以下命令:

vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

這將需要一些時間… vmkfstools 在您的 VMDK 中“打孔”,例如取消分配所有用零填充的塊,從而有效地縮小您的 VMDK。

引用自:https://serverfault.com/questions/398162