Azure Stack Hub 受控磁碟:差異和考慮
本文摘要說明 Azure Stack Hub 中
受控磁碟藉由管理與 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 交易數據不包含虛擬機器對已掛接磁碟的存取。
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。
針對 Windows,請遵循 使用 Sysprep 一般化 Windows VM 章節。 針對 Linux,請遵循這裡的步驟 1 。
注意
請務必將 VM 一般化。 從未正確一般化的映像建立 VM,可能會產生 VMProvisioningTimeout 錯誤。
您可以使用入口網站、PowerShell 或 Azure CLI 來建立受控映像。 請遵循 建立受控映射中的步驟。
執行此步驟之前,請務必正確地將您的 VM 一般化。 一般化之後,您無法再使用此 VM。 從未正確一般化的映像檔建立 VM,會導致 VMProvisioningTimeout 錯誤。
請遵循 從使用記憶體帳戶的 VM 建立映像 中的指示,從記憶體帳戶中的一般化 VHD 建立受控映像。 您未來可以使用此映像來建立受控 VM。
使用 使用 powerShell從受控磁碟建立映像之後,請使用下列範例腳本從現有的映射物件建立類似的 Linux VM。
Azure Stack Hub PowerShell 模組 1.7.0 或更新版本:請遵循中
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 可能會失敗,並出現「磁碟管理員的內部錯誤」錯誤訊息。
- 在 Azure Stack Hub 使用者入口網站中,移至 訂用帳戶 並尋找訂用帳戶。 按兩下 [資源提供者],然後按兩下 [Microsoft.Compute],然後按兩下 [重新註冊]。
- 在相同的訂用帳戶下,移至 存取控制(IAM),並確認已列出 Azure Stack Hub - 受控磁碟。
- 如果您使用多租戶環境,請要求您的雲端管理員(可能是在您自己的組織中,或是來自服務提供者)依照 在 Azure Stack Hub 中設定多租戶的步驟,重新設定每個來賓目錄。 否則,在與該客體目錄相關聯的訂用帳戶中部署 VM 可能會失敗,並出現「磁碟管理員中的內部錯誤」錯誤訊息。
- 瞭解 Azure Stack Hub 虛擬機器。
- 另請參閱 Azure Stack Hub 受控磁碟的差異和考慮。
- 如何 擴展連接至虛擬機的非受管理虛擬硬碟。