Azure Stack Hub 受控磁碟:差異和考慮

本文摘要說明 Azure Stack Hub 中 受控磁碟 與 Azure中 受控磁碟之間的差異。 若要瞭解 Azure Stack Hub 與 Azure 之間的高階差異,請參閱 重要考慮 一文。

受控磁碟藉由管理與 VM 磁碟相關聯的 記憶體 帳戶,簡化 IaaS 虛擬機 (VM) 的磁碟管理。

使用 Azure Stack Hub 入口網站建立 VM 時,預設會啟用受控磁碟。

速查表:受控磁碟差異

特徵 Azure (全域) Azure Stack Hub
備份選項 Azure 備份服務 尚未支援
災害復原選項 Azure Site Recovery Azure Stack Hub 上的 Azure Site Recovery
磁碟效能分析 支援匯總計量和單個磁碟的計量。 尚未支援
磁碟大小 Azure 進階磁碟:P4 (32 GiB) 至 P80 (32 TiB)
Azure 標準 SSD 磁碟:E10 (128 GiB) 至 E80 (32 TiB)
Azure 標準 HDD 磁碟:S4 (32 GiB) 至 S80 (32 TiB)
M4: 32 GiB
M6: 64 GiB
M10: 128 GiB
M15: 256 GiB
M20: 512 GiB
M30: 1023 GiB
磁碟快照複製 快照集連結至執行中 VM 支援的 Azure 受控磁碟。 透過備份供應商提供支援。 請洽詢您的廠商以確認支援。
磁碟類型 進階 SSD、標準 SSD 和標準 HDD。 進階 SSD、標準 HDD
靜態資料的加密 Azure 記憶體服務加密 (SSE),Azure 磁碟加密 (ADE)。 BitLocker 128 位 AES 加密
擴充磁碟 – 受控磁碟 支援 支援
Windows
Linux
圖像 管理自定義映像檔 支援
遷移 提供工具以從現有的非受控 Azure Resource Manager VM 移轉,而不需要重新建立 VM。 尚未支援
進階磁碟 完全支援。 可以布建,但沒有效能限制或保證
進階磁碟 IOPS 取決於磁碟大小。 每個磁碟 2300 個 IOPS
進階磁碟輸送量 取決於磁碟大小。 每個磁碟 145 MB/秒

注意

Azure Stack Hub 中的受控磁碟 IOP 和輸送量是上限數目,而不是布建的數位,可能會受到 Azure Stack Hub 中執行的硬體和工作負載影響。

指標

記憶體計量也有差異:

  • 使用 Azure Stack Hub 時,記憶體計量中的事務數據不會區分內部或外部網路頻寬。
  • 儲存體計量中的 Azure Stack Hub 交易數據不包含虛擬機器對已掛接磁碟的存取。

API 版本

Azure Stack Hub 受控磁碟支援下列 API 版本:

  • 2019-07-01
  • 2019-03-01
  • 2018-09-30
  • 2018-06-01
  • 2018-04-01
  • 2017-03-30
  • 2017-03-30
  • 2017-12-01(僅限受控影像,無磁碟,無快照)

轉換為受控磁碟

注意

Azure PowerShell Cmdlet ConvertTo-AzVMManagedDisk 無法用來將非受控磁碟轉換成 Azure Stack Hub 中的受控磁碟。 Azure Stack Hub 目前不支援此 Cmdlet。

您可以使用下列文稿,將目前布建的 VM 從非受控磁碟轉換為受控磁碟。 將佔位元取代為您自己的數值。

$SubscriptionId = "SubId"

# The name of your resource group where your VM to be converted exists.
$ResourceGroupName ="MyResourceGroup"

# The name of the managed disk to be created.
$DiskName = "mngddisk"

# The size of the disks in GB. It should be greater than the VHD file size.
$DiskSize = "50"

# The URI of the VHD file that will be used to create the managed disk.
# The VHD file can be deleted as soon as the managed disk is created.
$VhdUri = "https://rgmgddisks347.blob.local.azurestack.external/vhds/unmngdvm20181109013817.vhd"

# The storage type for the managed disk: PremiumLRS or StandardLRS.
$AccountType = "StandardLRS"

# The Azure Stack Hub location where the managed disk will be located.
# The location should be the same as the location of the storage account in which VHD file is stored.
# Configure the new managed VM point to the old unmanaged VM configuration (network config, VM name, location).
$Location = "local"
$VirtualMachineName = "unmngdvm"
$VirtualMachineSize = "Standard_D1"
$PIpName = "unmngdvm-ip"
$VirtualNetworkName = "unmngdrg-vnet"
$NicName = "unmngdvm"

# Set the context to the subscription ID in which the managed disk will be created.
Select-AzSubscription -SubscriptionId $SubscriptionId

# Delete old VM, but keep the OS disk.
Remove-AzVm -Name $VirtualMachineName -ResourceGroupName $ResourceGroupName

# Create the managed disk configuration.
$DiskConfig = New-AzDiskConfig -AccountType $AccountType -Location $Location -DiskSizeGB $DiskSize -SourceUri $VhdUri -CreateOption Import

# Create managed disk.
New-AzDisk -DiskName $DiskName -Disk $DiskConfig -ResourceGroupName $resourceGroupName
$Disk = Get-AzDisk -DiskName $DiskName -ResourceGroupName $ResourceGroupName
$VirtualMachine = New-AzVMConfig -VMName $VirtualMachineName -VMSize $VirtualMachineSize

# Use the managed disk resource ID to attach it to the virtual machine.
# Change the OS type to "-Windows" if the OS disk has the Windows OS.
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -ManagedDiskId $Disk.Id -CreateOption Attach -Linux

# Create a public IP for the VM.
$PublicIp = Get-AzPublicIpAddress -Name $PIpName -ResourceGroupName $ResourceGroupName

# Get the virtual network where the virtual machine will be hosted.
$VNet = Get-AzVirtualNetwork -Name $VirtualNetworkName -ResourceGroupName $ResourceGroupName

# Create NIC in the first subnet of the virtual network.
$Nic = Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName

$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Nic.Id

# Create the virtual machine with managed disk.
New-AzVM -VM $VirtualMachine -ResourceGroupName $ResourceGroupName -Location $Location

受控映像

Azure Stack Hub 支援 受控映射,這可讓您在一般化 VM 上建立受控映射物件(非受控和受控映射),而該 VM 只能繼續建立受控磁碟 VM。 管理映像可啟用以下兩種情境:

  • 您已將非受控 VM 一般化,且想要未來使用受控磁碟。
  • 您有一般化的受控 VM,而且想要建立多個類似的受控 VM。

步驟 1:一般化 VM

針對 Windows,請遵循 使用 Sysprep 一般化 Windows VM 章節。 針對 Linux,請遵循這裡的步驟 1

注意

請務必將 VM 一般化。 從未正確一般化的映像建立 VM,可能會產生 VMProvisioningTimeout 錯誤。

步驟 2:建立受控映射

您可以使用入口網站、PowerShell 或 Azure CLI 來建立受控映像。 請遵循 建立受控映射中的步驟。

步驟 3:選擇使用案例

案例 1:將非受控 VM 遷移至受控磁碟

執行此步驟之前,請務必正確地將您的 VM 一般化。 一般化之後,您無法再使用此 VM。 從未正確一般化的映像檔建立 VM,會導致 VMProvisioningTimeout 錯誤。

請遵循 從使用記憶體帳戶的 VM 建立映像 中的指示,從記憶體帳戶中的一般化 VHD 建立受控映像。 您未來可以使用此映像來建立受控 VM。

案例 2:使用 PowerShell 從受控映射建立受控 VM

使用 使用 powerShell從受控磁碟建立映像之後,請使用下列範例腳本從現有的映射物件建立類似的 Linux VM。

Azure Stack Hub PowerShell 模組 1.7.0 或更新版本:請遵循中 從受控映像建立 VM 的指示。

Azure Stack Hub PowerShell 模組 1.6.0 或更早版本:

# Variables for common values
$ResourceGroupName = "MyResourceGroup"
$Location = "local"
$VirtualMachineName = "MyVM"
$ImageRG = "managedlinuxrg"
$ImageName = "simplelinuxvmm-image-2019122"

# Create credential object
$Cred = Get-Credential -Message "Enter a username and password for the virtual machine."

# Create a resource group
New-AzResourceGroup -Name $ResourceGroupName -Location $Location

# Create a subnet configuration
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name "MySubnet" -AddressPrefix "192.168.1.0/24"

# Create a virtual network
$VNet = New-AzVirtualNetwork -ResourceGroupName $ResourceGroupName -Location $Location `
  -Name "MyVNet" -AddressPrefix "192.168.0.0/16" -Subnet $SubnetConfig

# Create a public IP address and specify a DNS name
$PIp = New-AzPublicIpAddress -ResourceGroupName $ResourceGroupName -Location $Location `
  -Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4

# Create an inbound network security group rule for port 3389
$NsgRuleSSH = New-AzNetworkSecurityRuleConfig -Name "MyNetworkSecurityGroupRuleSSH"  -Protocol Tcp `
  -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
  -DestinationPortRange 22 -Access Allow

# Create a network security group
$Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $Location `
  -Name "MyNetworkSecurityGroup" -SecurityRules $NsgRuleSSH

# Create a virtual network card and associate with public IP address and NSG
$Nic = New-AzNetworkInterface -Name "MyNic" -ResourceGroupName $ResourceGroupName -Location $Location `
  -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PIp.Id -NetworkSecurityGroupId $Nsg.Id

$Image = Get-AzImage -ResourceGroupName $ImageRG -ImageName $ImageName

# Create a virtual machine configuration
$VmConfig = New-AzVMConfig -VMName $VirtualMachineName -VMSize "Standard_D1" | `
Set-AzVMOperatingSystem -Linux -ComputerName $VirtualMachineName -Credential $Cred | `
Set-AzVMSourceImage -Id $Image.Id | `
Set-AzVMOSDisk -VM $VmConfig -CreateOption FromImage -Linux | `
Add-AzVMNetworkInterface -Id $Nic.Id

# Create a virtual machine
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VmConfig

您也可以使用入口從受管理映像建立 VM。 如需詳細資訊,請參閱 Azure 受控映像文章 在 Azure 中建立一般化 VM 的受控映像,從受控映射建立 VM

配置

套用 1808 更新或更新版本之後,您必須先進行下列設定變更,才能使用受控磁碟:

  • 如果在 1808 更新之前建立訂閱,請遵循下列步驟來更新訂用帳戶。 否則,在此訂用帳戶中部署 VM 可能會失敗,並出現「磁碟管理員的內部錯誤」錯誤訊息。
    1. 在 Azure Stack Hub 使用者入口網站中,移至 訂用帳戶 並尋找訂用帳戶。 按兩下 [資源提供者],然後按兩下 [Microsoft.Compute],然後按兩下 [重新註冊]。
    2. 在相同的訂用帳戶下,移至 存取控制(IAM),並確認已列出 Azure Stack Hub - 受控磁碟
  • 如果您使用多租戶環境,請要求您的雲端管理員(可能是在您自己的組織中,或是來自服務提供者)依照 在 Azure Stack Hub 中設定多租戶的步驟,重新設定每個來賓目錄。 否則,在與該客體目錄相關聯的訂用帳戶中部署 VM 可能會失敗,並出現「磁碟管理員中的內部錯誤」錯誤訊息。

後續步驟