如何擴充連結至 Windows 虛擬機器的虛擬硬碟

適用於:✔️ Windows VM ✔️ 彈性擴展集

當您在資源群組中,透過從 Azure Marketplace 部署映像來建立新的虛擬機器 (VM) 時,預設的作業系統 (OS) 磁碟機通常為 127 GiB (根據預設,有些映像的作業系統磁碟大小比較小)。 您可以將資料磁碟新增至 VM (數量取決於您選取的 VM SKU),並且建議將應用程式和 CPU 密集型工作負載安裝在資料磁碟上。 如果您要支援會在 OS 磁碟上安裝元件的舊版應用程式,或是從具有較大 OS 磁碟的內部部署移轉實體電腦或 VM,則可能需要擴充 OS 磁碟。 本文說明如何擴充 OS 磁碟或資料磁碟。

作業系統磁碟的最大容量為 4,095 GiB。 不過,根據預設,許多作業系統會分割 主開機記錄 (MBR)。 MBR 會將可用大小限制為 2 TiB。 如果需要超過 2 TiB,請建立和連結資料磁碟,並作為資料儲存體。 如果需要將資料儲存在 OS 磁碟上,而且需要更多空間,請轉換為 GUID 磁碟分割表格 (GPT)。 若要了解 Windows 部署上 MBR 和 GPT 之間的差異,請參閱 Windows和 GPT 常見問題集

重要

除非您使用不停機擴充,否則擴充資料磁碟會需要將 VM 解除配置。

不支援壓縮現有的磁碟,這可能會導致資料遺失。

在擴充磁碟之後,您必須擴充作業系統內的磁碟區以使用較大的磁碟。

您無法擴充等量磁碟區的大小。

不停機擴充

您可以擴充資料磁碟,而不需解除配置 VM。 您的磁碟主機快取設定不會變更您是否可以擴充資料磁碟,而不需要解除配置 VM。

這項功能有下列限制:

  • 僅支援資料磁碟。
  • 如果標準 HDD、標準 SSD 或進階 SSD 磁碟為 4 TiB 或更少,請在將其擴充至超過 4 TiB 之前先解除配置您的 VM 並中斷連結磁碟。 如果這些其中一個磁碟類型已經大於 4 TiB,您可以對其進行擴充,而無需解除配置 VM 並中斷連結磁碟。 這不適用於進階 SSD v2 或 Ultra 磁碟。
  • 不支援共用磁碟。
  • 擇一安裝和使用:
  • 在某些傳統 VM 上無法使用。 使用此指令碼取得支援無需停機擴充的傳統 VM SKU 清單。

Ultra 磁碟和進階 SSD v2 的預覽

重要

Ultra 磁碟和進階 SSD v2 磁碟的無停機擴充目前處於預覽階段。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

預覽版有以下其他限制:

  • 當磁碟上同時正在進行資料的背景複製時 (例如當磁碟正在從快照中進行資料恢復時),您無法擴充該磁碟。
  • 您無法在不停機的情況下擴充使用用於 Ultra 磁碟或進階 SSD v2 磁碟的 NVMe 控制器的 VM。

區域可用性

調整 Ultra 磁碟和進階 SSD v2 磁碟的大小目前在以下區域提供預覽版:

  • 澳大利亞東部
  • 巴西南部
  • 加拿大中部
  • 印度中部
  • 美國中部
  • 美國東部 2
  • 法國中部
  • 日本東部
  • 南韓中部
  • 北歐
  • 東南亞

調整 Azure 入口網站中的受控磁碟大小

重要

如果您的磁碟符合不停機擴充中的需求,您可以跳過步驟 1。

  1. Azure 入口網站,前往要擴充磁碟的虛擬機器。 選取 [停止] 以解除配置 VM。

  2. 在 [設定] 下的左側功能表中,選取 [磁碟]

    螢幕擷取畫面:顯示在功能表的 [設定] 區段中選取了 [磁碟] 選項。

  3. 在 [磁碟名稱] 下,選取要擴充的磁碟。

    螢幕擷取畫面:顯示選取了磁碟名稱的 [磁碟] 窗格。

  4. 在 [設定] 下方的左側功能表中,選取 [大小 + 效能]

    螢幕擷取畫面:顯示在功能表的 [設定] 區段中選取了 [大小與效能] 選項。

  5. 在 [大小 + 效能] 中,選取想要的磁碟大小。

    警告

    新的大小應該大於現有的磁碟大小。 作業系統磁碟允許的上限為 4095 GB。 (可以將 VHD Blob 擴充超過這個大小,但作業系統只能夠搭配第一個 4095 GB 的空間運作。)

    螢幕擷取畫面:顯示選取了磁碟大小的 [大小與效能] 窗格。

  6. 選取頁面下方的 [調整大小]

    螢幕擷取畫面:顯示選取了 [調整大小] 按鈕的 [大小與效能] 窗格。

使用 PowerShell 調整受控磁碟的大小

在系統管理模式下開啟您的 Powershell ISE 或 Powershell 視窗,並依照下列步驟進行:

在資源管理模式下登入您的 Microsoft Azure 帳戶,並選取您的訂用帳戶:

Connect-AzAccount
Select-AzSubscription –SubscriptionName 'my-subscription-name'

設定資源群組名稱和 VM 名稱:

$rgName = 'my-resource-group-name'
$vmName = 'my-vm-name'
$diskName = 'my-disk-name'

取得您 VM 的參考:

$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName

重要

如果您的磁碟符合不停機擴充中的需求,您可以跳過步驟 4 和 6。

在調整磁碟大小前停止 VM:

Stop-AzVM -ResourceGroupName $rgName -Name $vmName

取得受控 OS 磁碟的參考。 將受控 OS 磁碟的大小設定為所需的值並更新磁碟:

$disk= Get-AzDisk -ResourceGroupName $rgName -DiskName $diskName
$disk.DiskSizeGB = 1023
Update-AzDisk -ResourceGroupName $rgName -Disk $disk -DiskName $disk.Name

警告

新的大小應該大於現有的磁碟大小。 作業系統磁碟允許的上限為 4095 GB。 (可以將 VHD Blob 擴充超過這個大小,但作業系統只能夠搭配第一個 4095 GB 的空間運作。)

更新 VM 可能需要幾秒鐘的時間。 命令執行完畢時,重新啟動 VM:

Start-AzVM -ResourceGroupName $rgName -Name $vmName

遠端進入 VM,開啟 [電腦管理] (或 [磁碟管理]),然後使用剛配置的空間擴充磁碟機。

擴展作業系統中的磁碟區

在擴充 VM 的磁碟後,您必須進入 OS 並擴充磁碟區以納入新的空間。 有幾種方法可用來擴展分割區。 本章節說明如何使用 RDP 連線與 VM 建立連線,以使用 Diskpart使用磁碟管理員擴充磁碟分割。

使用 DiskPart

在擴充 VM 的磁碟後,您必須進入 OS 並擴充磁碟區以納入新的空間。 有幾種方法可用來擴展分割區。 本節內容涵蓋使用 RDP 連線連接 VM,以使用 DiskPart 擴展磁碟分割區。

  1. 開啟與您的 VM 的 RDP 連線。

  2. 開啟命令提示字元,並輸入 diskpart

  3. DISKPART 提示中鍵入 list volume。 記下您要延伸的磁碟區。

  4. DISKPART 提示中鍵入 select volume <volumenumber>。 如此可選取您要延伸至相同磁碟中連續空白空間的磁碟區 volumenumber

  5. DISKPART 提示中鍵入 extend [size=<size>]。 這樣就會以單位為 MB 的「大小」來延伸所選取磁碟區。

使用磁碟管理員

  1. 使用 VM 啟動遠端桌面工作階段。

  2. 開啟磁碟管理

    螢幕擷取畫面:顯示磁碟管理。

  3. 在現有 C: 磁碟分割 -> 擴充磁碟區上按一下右鍵。

    螢幕擷取畫面,顯示如何擴充磁碟區。

  4. 請遵循步驟,以便查看更新容量的磁碟:

    螢幕擷取畫面:顯示磁碟管理員中更大的 C: 磁碟區。

在不停機的情況下擴充傳統 VM SKU 支援

如果您使用傳統 VM SKU,它可能不支援在不停機的情況下擴充磁碟。

使用下列 PowerShell 指令碼來判斷可用的 VM SKU:

Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}

foreach($vmSize in $vmSizes){
    foreach($capability in $vmSize.Capabilities)
    {
       if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
        {
            $vmSize.Name
       }
   }
}

下一步

您也可使用 Azure 入口網站連結磁碟。