共用方式為


在 Azure Stack Hub 中建立 VM 磁碟記憶體

本文說明如何使用 Azure Stack Hub 入口網站或使用 PowerShell 建立虛擬機 (VM) 磁碟記憶體。

概觀

Azure Stack Hub 支援在 VM 中使用受控磁碟和非受控磁碟,做為操作系統 (OS) 和數據磁碟。

受控磁碟 藉由管理與 VM 磁碟相關聯的記憶體帳戶,簡化 Azure IaaS VM 的磁碟管理。 您只需要指定您需要的磁碟大小,Azure Stack Hub 就會替您建立和管理磁碟。

非受控磁碟會要求您建立記憶體帳戶來儲存磁碟。 您所建立的磁碟稱為 VM 磁碟,並儲存在記憶體帳戶中的容器中。

最佳做法指導方針

建議您針對 VM 使用受控磁碟,以方便管理和容量平衡。 使用受控磁碟之前,您不需要準備記憶體帳戶和容器。 在建立多個受控磁碟時,這些磁碟會分散到多個磁碟區,以便協助平衡磁碟區的容量。

針對非受控磁碟,若要改善效能並降低整體成本,我們建議您將每個非受控磁碟放在個別的容器中。 雖然您可以將 OS 磁碟和數據磁碟放在相同的容器中,但最佳做法是,一個容器應該同時保存 OS 磁碟或數據磁碟,但不能同時保存兩者。

如果您將一或多個數據磁碟新增至 VM,請使用其他容器作為儲存這些磁碟的位置。 其他 VM 的 OS 磁碟也應該位於自己的容器中。

當您建立 VM 時,您可以針對每個新的虛擬機重複使用相同的記憶體帳戶。 只有您建立的容器應該是唯一的。

新增磁碟

下表摘要說明如何使用入口網站,以及使用PowerShell來新增磁碟:

方法 選項。
使用者入口網站 - 將新的數據磁碟新增至現有的 VM。 Azure Stack Hub 會建立新的磁碟。

- 將現有的磁碟 (.vhd) 檔案新增至先前建立的 VM。 若要這樣做,您必須準備 .vhd,然後將檔案上傳至 Azure Stack Hub。
PowerShell - 建立具有 OS 磁碟的新 VM,同時將一或多個數據磁碟新增至該 VM。

使用入口網站將磁碟新增至 VM

根據預設,當您使用入口網站為大部分市集專案建立 VM 時,只會建立 OS 磁碟。

建立 VM 之後,您可以使用入口網站來:

  • 建立新的數據磁碟,並將其連結至 VM。
  • 上傳現有的數據磁碟,並將其連結至 VM。

將您新增的每個非受控磁碟放入個別的容器中。

使用入口網站來建立和連結新的數據磁碟

  1. 在入口網站中,依序選取 [ 所有服務]、[ 計算] 和 [ 虛擬機]。 範例:VM 儀錶板

  2. 從清單中選取先前已建立的 VM。

  3. 針對 VM,選取 [磁碟],然後選取 [新增數據磁碟]。 顯示如何將新磁碟連結至 VM 的螢幕快照。

  4. 針對資料磁碟:

    • 輸入 LUN。 LUN 必須是有效的數位。
    • 選取 [ 建立磁碟]。 顯示如何建立新數據磁碟的螢幕快照。
  5. 在 [ 建立受控磁碟 ] 刀鋒視窗中:

    • 輸入磁碟的名稱。
    • 選取現有的 [資源群組] 或建立新群組。
    • 選取 [位置]。 根據預設,位置會設定為保留OS磁碟的相同容器。
    • 選取 [ 帳戶類型]。 範例:將新的磁碟連結至 VM

    注意

    進階磁碟 (SSD) 和標準磁碟 (HDD) 是由 Azure Stack Hub 中的相同記憶體基礎結構所支援。 它們提供相同的效能。

    • 選取 [ 來源類型]。

      從另一個磁碟的快照集、記憶體帳戶中的 Blob 或建立空的磁碟建立磁碟。

      快照集:如果有的話,請選取快照集。 快照集必須位於 VM 的訂用帳戶和位置中。

      記憶體 Blob

      • 新增包含磁碟映像的記憶體 Blob URI。
      • 選取 [ 瀏覽 ] 以開啟 [儲存體帳戶] 刀鋒視窗。 如需指示,請參閱 從記憶體帳戶新增數據磁碟。
      • 選取映像的 OS 類型:WindowsLinuxNone (資料磁碟)。
    • 選取 [大小] [GiB]。

      磁碟成本會根據磁碟的大小而增加。

    • 選取 建立。 Azure Stack Hub 會建立並驗證受控磁碟。

  6. 在 Azure Stack Hub 建立磁碟並將其連結至 VM 之後,新的磁碟會列在 [數據磁碟] 下的 VM 磁碟設定中。

    範例:檢視磁碟

從記憶體帳戶新增數據磁碟

如需在 Azure Stack Hub 中使用記憶體帳戶的詳細資訊,請參閱 Azure Stack Hub 記憶體簡介。

  1. 選取要使用的記憶體帳戶

  2. 選取您要放置數據磁碟的容器。 從 [ 容器] 刀鋒視窗中,您可以視需要建立新的容器。 然後,您可以將新磁碟的位置變更為自己的容器。 當您針對每個磁碟使用不同的容器時,您會散發數據磁碟的位置,以改善效能。

  3. 選擇 [ 選取 ] 以儲存選取專案。

    顯示如何選取容器的螢幕快照。

將現有的資料磁碟附加至 VM

  1. 準備 .vhd 檔案 ,以作為 VM 的數據磁碟。 將該 .vhd 檔案上傳至您要連結 .vhd 檔案的 VM 所使用的記憶體帳戶。

  2. 上傳 .vhd 檔案之後,您就可以將 VHD 連結至 VM。 在左側功能表中,選取 [ 虛擬機]。
    顯示所選虛擬機的螢幕快照。

  3. 從清單中選擇 VM。

  4. 在 VM 的頁面上,選取 [ 磁碟],然後選取 [ 鏈接現有的]。

    範例:鏈接現有的磁碟

  5. 在 [ 鏈接現有的磁碟 ] 頁面中,選取 [VHD 檔案]。 [ 記憶體帳戶] 頁面隨即開啟。

    範例:選取 VHD 檔案

  6. 在 [記憶體帳戶] 底下,選取要使用的帳戶,然後選擇保留您先前上傳之 .vhd 檔案的容器。 選取 .vhd 檔案,然後選擇 [ 選取 ] 以儲存選取專案。

    範例:選取容器

  7. 在 [鏈接現有磁碟] 下,您選取的檔案會列在 [VHD 檔案] 底下 更新磁碟的主機快取設定,然後選取 [確定] 以儲存 VM 的新磁碟組態。

    範例:附加 VHD 檔案

  8. 在 Azure Stack Hub 建立磁碟並將其連結至 VM 之後,新的磁碟會列在 VM 的磁碟設定底下的 [數據磁碟]。

    範例:完成磁碟連接

使用 PowerShell 將多個磁碟新增至 VM

您可以使用 PowerShell 來布建 VM 並新增數據磁碟,或將預先存在的受控磁碟或 .vhd 檔案連結為數據磁碟。

Add-AzVMDataDisk Cmdlet 會將數據磁碟新增至 VM。 您可以在建立 VM 時新增數據磁碟,也可以將數據磁碟新增至現有的 VM。 針對非受控磁碟,請指定 VhdUri 參數,將磁碟分散到不同的容器。

將數據磁碟新增至 新的 VM

下列範例使用 PowerShell 命令來建立具有三個數據磁碟的 VM。 命令會提供數個部分,因為使用受控磁碟或非受控磁碟時的輕微差異。

建立虛擬機組態和網路資源

下列腳本會建立 VM 對象,然後將它儲存在變數中 $VirtualMachine 。 命令會將名稱和大小指派給 VM,然後為 VM 建立網路資源(虛擬網路、子網、虛擬網路適配器、NSG 和公用 IP 位址)。

# Create new virtual machine configuration
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine" `
                                      -VMSize "Standard_A2"

# Set variables
$rgName = "myResourceGroup"
$location = "local"

# Create a subnet configuration
$subnetName = "mySubNet"
$singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24

# Create a vnet configuration
$vnetName = "myVnetName"
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
                                  -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet

# Create a public IP
$ipName = "myIP"
$pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
                                  -AllocationMethod Dynamic

# Create a network security group configuration
$nsgName = "myNsg"
$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
                                                -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
                                                -SourceAddressPrefix Internet -SourcePortRange * `
                                                -DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
                                       -Name $nsgName -SecurityRules $rdpRule

# Create a NIC configuration
$nicName = "myNicName"
$nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName `
                                   -Location $location -SubnetId $vnet.Subnets[0].Id `
                                   -NetworkSecurityGroupId $nsg.Id -PublicIpAddressId $pip.Id

新增受控磁碟

下列三個命令會將受控數據磁碟新增至儲存在 中的 $VirtualMachine虛擬機。 每個命令都會指定磁碟的名稱和其他屬性。

$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk1' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 `
                                        -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk2' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 `
                                        -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk3' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 `
                                        -CreateOption Empty

下列命令會將 OS 磁碟新增為受控磁碟至儲存在 中的 $VirtualMachine虛擬機。

# Set OS Disk
$osDiskName = "osDisk"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $osDiskName  `
                                      -CreateOption FromImage -Windows

新增非受控磁碟

接下來的三個命令會將三個非受控數據磁碟的路徑指派給 $DataDiskVhdUri01$DataDiskVhdUri02$DataDiskVhdUri03 變數。 在 URL 中定義不同的路徑名稱,以將磁碟分散到不同的容器:

$DataDiskVhdUri01 = "https://contoso.blob.local.azurestack.external/test1/data1.vhd"
$DataDiskVhdUri02 = "https://contoso.blob.local.azurestack.external/test2/data2.vhd"
$DataDiskVhdUri03 = "https://contoso.blob.local.azurestack.external/test3/data3.vhd"

下列三個命令會將數據磁碟新增至儲存在中的 $VirtualMachine虛擬機。 每個命令都會指定磁碟的名稱和其他屬性。 每個磁碟的 URI 會儲存在 $DataDiskVhdUri01$DataDiskVhdUri02$DataDiskVhdUri03中。

$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk1' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 `
                                        -VhdUri $DataDiskVhdUri01 -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk2' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 `
                                        -VhdUri $DataDiskVhdUri02 -CreateOption Empty
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name 'DataDisk3' `
                                        -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 `
                                        -VhdUri $DataDiskVhdUri03 -CreateOption Empty

下列命令會將非受控OS磁碟新增至儲存在中的 $VirtualMachine虛擬機。

# Set OS Disk
$osDiskUri = "https://contoso.blob.local.azurestack.external/vhds/osDisk.vhd"
$osDiskName = "osDisk"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $osDiskName -VhdUri $osDiskUri `
                                      -CreateOption FromImage -Windows

建立新的虛擬機器

使用下列 PowerShell 命令來設定 OS 映射、將網路設定新增至 VM,然後啟動新的 VM。

#Create the new VM
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName VirtualMachine -ProvisionVMAgent | `
                  Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
                  -Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nic.Id

New-AzVM -ResourceGroupName $rgName -Location $location -VM $VirtualMachine

將數據磁碟新增至現有的 VM

下列範例使用 PowerShell 命令,將三個數據磁碟新增至現有的 VM:

取得虛擬機器

第一個命令會使用 Get-AzVM Cmdlet 來取得名為 VirtualMachineVM 。 命令會將 VM 儲存在 變數中 $VirtualMachine

$VirtualMachine = Get-AzVM -ResourceGroupName "myResourceGroup" `
                                -Name "VirtualMachine"

新增受控磁碟

接下來的三個命令會將受控數據磁碟新增至儲存在變數中的 $VirtualMachine VM。 每個命令都會指定磁碟的名稱和其他屬性。

Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk1" -Lun 0 `
                      -Caching ReadOnly -DiskSizeinGB 10 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk2" -Lun 1 `
                      -Caching ReadOnly -DiskSizeinGB 11 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk3" -Lun 2 `
                      -Caching ReadOnly -DiskSizeinGB 12 -CreateOption Empty

新增非受控磁碟

接下來的三個命令會將三個數據磁碟的路徑指派給 $DataDiskVhdUri01$DataDiskVhdUri02$DataDiskVhdUri03 變數。 VHD URI 中的不同路徑名稱表示磁碟放置的不同容器:

$DataDiskVhdUri01 = "https://contoso.blob.local.azurestack.external/test1/data1.vhd"
$DataDiskVhdUri02 = "https://contoso.blob.local.azurestack.external/test2/data2.vhd"
$DataDiskVhdUri03 = "https://contoso.blob.local.azurestack.external/test3/data3.vhd"

接下來的三個命令會將數據磁碟新增至儲存在變數中的 $VirtualMachine VM。 每個命令都會指定磁碟的名稱、位置和其他屬性。 每個磁碟的 URI 會儲存在 $DataDiskVhdUri01$DataDiskVhdUri02$DataDiskVhdUri03中。

Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk1" `
                      -VhdUri $DataDiskVhdUri01 -LUN 0 `
                      -Caching ReadOnly -DiskSizeinGB 10 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk2" `
                      -VhdUri $DataDiskVhdUri02 -LUN 1 `
                      -Caching ReadOnly -DiskSizeinGB 11 -CreateOption Empty
Add-AzVMDataDisk -VM $VirtualMachine -Name "DataDisk3" `
                      -VhdUri $DataDiskVhdUri03 -LUN 2 `
                      -Caching ReadOnly -DiskSizeinGB 12 -CreateOption Empty

更新虛擬機狀態

此指令會更新儲存在 中$VirtualMachine-ResourceGroupName之 VM 的狀態:

Update-AzVM -ResourceGroupName "myResourceGroup" -VM $VirtualMachine

下一步

若要深入瞭解 Azure Stack Hub VM,請參閱 Azure Stack Hub 中 虛擬機器 考慮。