如何增加 VMware 中的虛擬機磁盤大小

Jacki

虛擬機的主要優點是可以在需要時靈活地向虛擬機分配額外資源。如果虛擬硬盤上的可用空間不足,您可以快速輕鬆地擴展它。本文介紹如何在 VMware ESXi 中調整虛擬機磁盤大小,然後在 Windows 或 Ubuntu 客戶機操作系統中擴展分區,而無需停止或重新啟動虛擬機。

內容:

在增加 VMware 虛擬機硬盤的大小時,需要考慮一些限制:

  • 如果虛擬機有快照,則無法增加磁盤。必須刪除所有快照;
  • 僅通過虛擬SCSI或NVMe控制器連接的磁盤可以在線擴展(如果虛擬磁盤通過IDE控制器連接,則必須先關閉虛擬機);
  • 鏈接克隆虛擬機(在 Vmware Horizo​​​​nt 上)不支持擴展選項;
  • 如果您在虛擬機面板中看到警告“Virtual Machine disks consolidation is needed',需要整合VM磁盤;
  • 僅當客戶操作系統中安裝了 VMware Tools 時,才可以在線擴展虛擬機磁盤(無需關閉虛擬機)。如果未安裝VMTools,更改虛擬磁盤大小後會出現錯誤:
    Operation failed
    Task name
    Reconfigure virtual machine
    The attempted operation cannot be performed in the current state (Powered on).

增加虛擬機磁盤大小的過程需要兩個步驟:

  1. 首先,您需要在vCenter/ESXi上的虛擬機設置中增加VMDK文件大小;
  2. 然後在來賓操作系統中擴展磁盤分區(我們將分別了解如何在 Windows 和 Linux 上擴展硬盤驅動器)。

增加 VMware 中 VM 磁盤 (VMDK) 的大小

例如,您有一台虛擬機,其單個虛擬硬盤文件 (vmdk) 為 40GB,並且您計劃將此虛擬磁盤大小增加到 50GB。

  1. 使用 vSphere Web Client 連接到您的 vCenter 服務器或獨立 ESXi 主機;
  2. 找到虛擬機並打開其設置(行動->編輯設置);
  3. 找到您要擴展的虛擬磁盤。在此示例中,VM 只有一個硬盤1大小為 40 GB。在此字段中指定新的磁盤大小並保存設置。請注意,此類數據存儲(VMFS、NFS、vSAN)可用的最大磁盤大小在“最大大小”字段中指定;

確保您的 VMFS 數據存儲有足夠的可用空間。如果需要,您可以增加 VMWare ESXi/vCenter 中 VMFS 數據存儲的大小。

您還可以使用 VMware PowerCLI 模塊 cmdlet 來增加虛擬機 VMDK 磁盤的大小。在 Windows 或 Linux 計算機上安裝 PowerCLI 模塊:
Install-Module -Name VMware.PowerCLI
連接到您的 vCenter 服務器或 ESXi 主機:

Connect-VIServer hostname

執行以下命令,擴容虛擬磁盤:

Get-HardDisk VMTest1 | where {$_.Name -eq "hard disk 1"} | Set-HardDisk -CapacityGB 50 -ResizeGuestPartition -Confirm:$false

然後您可以使用調用VMScript用於擴展來賓操作系統中的分區的 cmdlet:

Invoke-VMScript -VM VMTest1 -ScriptText "echo select vol c > c:diskpart.txt && echo extend >> c:diskpart.txt && diskpart.exe /s c:diskpart.txt" -GuestUser $guestUser -GuestPassword $guestPass -ScriptType BAT

之前,我們展示瞭如何使用 Invoke-VMScript 在 VMware VM 模板中自動安裝 Windows 更新的示例。

完成後,不要忘記終止 PowerShell 管理會話:

Disconnect-VIserver -Confirm:$false

現在您已經在 VMware 控制台中增加了虛擬磁盤大小,您需要在來賓操作系統中擴展分區

在 Windows 虛擬機中擴展分區

您必須啟動磁盤管理控制台(計算機管理->存儲->磁盤管理)並運行重新掃描磁盤命令來賓 Windows 操作系統查看額外空間。

接下來,選擇要擴展的分區,然後單擊擴大音量

指定要添加到選定 Windows 分區的未分配空間量(在字段中)選擇空間量(以 MB 為單位))。

現在單擊“下一步”->“完成”並檢查您的 C 盤是否已成功擴展。

擴展系統分區(C: 驅動器)時,您可能會發現其後面是 Windows 恢復環境分區,而不是未分配的空間。在這種情況下,擴展卷選項在磁盤管理器中將不可用(灰顯)。

在這種情況下,您將無法擴展 C: 驅動器,除非您刪除恢復分區或將其移動到驅動器的末尾。我們在文章“擴展卷選項在 Windows 中呈灰色顯示”中描述了此過程。

Windows XP和Windows Server 2003不支持系統C:卷的在線擴展。你可以用戴爾的外部部分無需重新啟動即可擴展系統分區的工具。

要在 Windows 2003/XP 中擴展系統分區,請將該工具複製到來賓操作系統並使用以下參數運行它:

extpart.exe c: 1020

, 在哪裡丙:是您要擴展的捲的名稱,並且1020是您想要擴展磁盤的大小(以 MB 為單位)。

您還可以通過其他方式擴展離線VM磁盤分區:

  • 從任何 LiveCD(例如 GParted)啟動虛擬機,並增加分區;
  • 將虛擬 VMDK 文件連接到另一台虛擬機並擴展該計算機上的分區;
  • 使用 VMware vCenter Converter 工具重新配置卷大小。

如何在Linux虛擬機中擴展分區?

現在讓我們看看如果您的虛擬機中安裝了 Linux 系列來賓操作系統,如何擴展磁盤分區。

首先要做的是確保 Linux 看到新的磁盤大小。要開始重新掃描,請運行以下命令:

$ echo 1>/sys/class/block/sdd/device/rescan

使用cfdisk工具顯示可用的虛擬硬盤空間:

$ sudo cfdisk

此示例顯示 /dev/sda 驅動器有 2 GB 的可用空間。選擇要擴展的分區(本例中為 /dev/sda3)並選擇調整大小從底部菜單。

然後點擊將更改應用到分區。

就我而言,我需要在 Ubuntu 22.04 LTS 虛擬機中擴展分區。默認情況下,此版本的 Ubuntu 安裝在 LVM 卷上:

$ sudo lsblk

在擴展 LVM 卷之前,您需要增加物理卷 (PV):

$ sudo pvresize /dev/sda3

完成後,您可以擴展邏輯卷(我們將使用所有可用的可用空間):

閱讀更多:忘記在 VMware Player 中運行的虛擬機的 Windows 密碼

$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

下一步是擴展文件系統:

$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

檢查 Linux 中的可用磁盤空間:

$ df -h

如果沒有LVM卷,可以使用parted工具在Linux中擴展分區:

$ sudo parted

讓我們檢查一下磁盤上有多少未分配空間:

print free

如您所見,可用空間 = 2149MB

要擴展 /dev/sda3 分區,請運行:

resizepart 3

指定新的分區大小(在本例中,我們需要指定結尾尺寸從自由空間堵塞):

結尾? [21.5GB]?23.6G

然後退出parted:

quit

剩下的就是擴展 ext4/3/2 文件系統。

$ sudo resize2fs /dev/sda3

本文介紹如何在具有 Windows 和 Linux 客戶機操作系統的 VMware vSphere 環境中增加虛擬硬盤的大小。在另一篇文章中,我們解釋瞭如何減少(縮小)VMware 上的虛擬硬盤的大小。