本文說明如何在 Azure 中上傳自定義的虛擬硬盤 (VHD) 或復制現有 VHD,并從自定義磁盤創建 Linux 虛擬機 (VM)。 可以根據要求安裝并配置 Linux 分發版,并使用該 VHD 快速創建新的 Azure 虛擬機。
如果想要從自定義磁盤創建多個 VM,則應該從 VM 或 VHD 創建映像。 有關詳細信息,請參閱使用 CLI 創建 Azure VM 的自定義映像。
可以使用兩個選項:
快速命令
Note
在 Azure 中國區使用 Azure CLI 2.0 之前,請先運行az cloud set -n AzureChinaCloud來改變云環境。如果想切回國際版 Azure,請再次運行az cloud set -n AzureCloud。
使用az vm create從自定義或專用的磁盤創建新 VM 時,請附加該磁盤 (--attach-os-disk),而不要指定自定義映像或 Marketplace 映像 (--image)。 以下示例使用從自定義 VHD 創建的、名為myManagedDisk的托管磁盤,創建名為myVM的 VM:
Azure CLI復制
azvmcreate--resource-groupmyResourceGroup--locationchinaeast--namemyVM \--os-typelinux--attach-os-diskmyManagedDisk
要求
若要完成以下步驟,需要:
已準備好在 Azure 中使用的 Linux 虛擬機。 本文的準備 VM部分介紹了如何查找有關安裝 Azure Linux 代理 (waagent) 的特定于分發版的信息。要使 VM 在 Azure 中正常工作,以及要通過 SSH 連接到 VM,需要用到該代理。
用于將Azure 認可的 Linux 分發版(或參閱關于未認可分發版的信息)安裝到采用 VHD 格式的虛擬磁盤的 VHD 文件。 可使用多種工具創建 VM 和 VHD:
安裝并配置QEMU或KVM,并注意使用 VHD 作為映像格式。 如果需要,可以使用qemu-img convert轉換映像。
也可以在Windows 10或Windows Server 2012/2012 R2上使用 Hyper-V。
Note
Azure 不支持更新的 VHDX 格式。 創建 VM 時,請將 VHD 指定為映像格式。 如果需要,可以使用qemu-img convert或Convert-VHDPowerShell cmdlet 將 VHDX 磁盤轉換為 VHD。 此外,Azure 不支持上傳動態 VHD,因此,上傳之前,需要將此類磁盤轉換為靜態 VHD。 可以使用Azure VHD Utilities for GO等工具在上傳到 Azure 的過程中轉換動態磁盤。
確保已安裝了最新的Azure CLI 2.0并已使用az login登錄到 Azure 帳戶。
在以下示例中,請將示例參數名稱替換成自己的值。 示例參數名稱包括myResourceGroup、mystorageaccount和mydisks。
準備 VM
Azure 支持各種 Linux 分發(請參閱認可的分發)。 以下文章指導用戶準備 Azure 上支持的各種 Linux 分發版:
另請參閱Linux 安裝說明,獲取更多有關如何為 Azure 準備 Linux 映像的一般提示。
Note
只有在使用某個認可的分發的時候也使用Azure 認可的分發中的 Linux中“支持的版本”下指定的配置詳細信息時,Azure 平臺 SLA才適用于運行 Linux 的 VM。
選項 1:上傳 VHD
可以上傳本地計算機上運行的或者從另一個云導出的自定義 VHD。 若要使用 VHD 創建新的 Azure VM,需要將 VHD 上傳到存儲帳戶,并從該 VHD 創建托管磁盤。
創建資源組
在上傳自定義磁盤和創建 VM 之前,首先需要使用az group create創建一個資源組。
以下示例在chinaeast位置創建名為myResourceGroup的資源組:Azure 托管磁盤概述
Azure CLI復制
azgroupcreate\--namemyResourceGroup \--locationchinaeast
創建存儲帳戶
可以使用az storage account create為自定義磁盤和 VM 創建存儲帳戶。
以下示例在前面創建的資源組中創建名為mystorageaccount的存儲帳戶:
Azure CLI復制
azstorageaccountcreate\--resource-groupmyResourceGroup \--locationchinaeast \--namemystorageaccount \--kindStorage \--skuStandard_LRS
列出存儲帳戶密鑰
Azure 為每個存儲帳戶生成兩個 512 位的訪問密鑰。 在向存儲帳戶進行身份驗證以執行操作(例如執行寫入操作)時,會使用這些訪問密鑰。 從此處了解有關管理對存儲的訪問的詳細信息。 可以使用az storage account keys list查看訪問密鑰。
查看創建的存儲帳戶的訪問密鑰:
Azure CLI復制
azstorageaccountkeyslist\--resource-groupmyResourceGroup \--account-namemystorageaccount
輸出類似于:
Azure CLI復制
info:? ? Executing commandstorageaccountkeyslist+ Gettingstorageaccountkeysdata:? ? Name? Key? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Permissionsdata:-------------------------------------------------------------------------------------------------------data:? ? key1? d4XAvZzlGAgWdvhlWfkZ9q4k9bYZkXkuPCJ15NTsQOeDeowCDAdB80r9zA/tUINApdSGQ94H9zkszYyxpe8erw==? Fulldata:? ? key2? Ww0T7g4UyYLaBnLYcxIOTVziGAAHvU+wpwuPvK4ZG0CDFwu/mAxS/YYvAQGHocq1w7/3HcalbnfxtFdqoXOw8g==? Fullinfo:storageaccountkeyslistcommand OK
記下key1,因為在后續步驟中需要使用它來與存儲帳戶交互。
創建存儲容器
在存儲帳戶中創建用于整理磁盤的容器的方式,與創建各種目錄以便有條理地整理本地文件系統的方式相同。 一個存儲帳戶可以包含任意數目的容器。 可以使用az storage container create創建容器。
以下示例創建名為mydisks的容器:
Azure CLI復制
azstoragecontainercreate\--account-namemystorageaccount \--namemydisks
上傳 VHD
現在,使用az storage blob upload上傳自定義磁盤。 可以頁 Blob 的形式上傳和存儲自定義磁盤。
指定訪問密鑰、在上一步中創建的容器,以及自定義磁盤在本地計算機上的路徑:
Azure CLI復制
azstorageblobupload--account-namemystorageaccount \--account-keykey1 \--container-namemydisks \--typepage \--file/path/to/disk/mydisk.vhd \--namemyDisk.vhd
上傳 VHD 可能需要一些時間。
創建托管磁盤
使用az disk create從 VHD 創建托管磁盤。 以下示例從已上傳到命名存儲帳戶和容器的 VHD 創建名為myManagedDisk的托管磁盤:
Azure CLI復制
azdiskcreate\--resource-groupmyResourceGroup \--namemyManagedDisk \--sourcehttps://mystorageaccount.blob.core.chinacloudapi.cn/mydisks/myDisk.vhd
選項 2:復制現有 VM
也可以在 Azure 中創建自定義的 VM,并復制 OS 磁盤并將其附加到新 VM 以創建另一個副本。 這種做法在測試中不會有任何問題,但若要將現有 Azure VM 作為多個新 VM 的模型,則必須改為創建映像。 有關從現有 Azure VM 創建映像的詳細信息,請參閱使用 CLI 創建 Azure VM 的自定義映像
創建快照
此示例在資源組myResourceGroup中創建名為myVM的 VM 的快照,并創建名為osDiskSnapshot的快照。
azure-cli復制
osDiskId=$(azvmshow-gmyResourceGroup-nmyVM--query"storageProfile.osDisk.managedDisk.id"-otsv)azsnapshotcreate\-gmyResourceGroup \--source"$osDiskId"\--nameosDiskSnapshot
創建托管磁盤
從快照創建新的托管磁盤。
獲取快照的 ID。 在此示例中,快照名為osDiskSnapshot,位于myResourceGroup資源組中。
azure-cli復制
snapshotId=$(azsnapshotshow--nameosDiskSnapshot--resource-groupmyResourceGroup--query[id]-otsv)
創建托管磁盤。 在此示例中,我們會在標準存儲中從快照創建大小為 128GB、名為myManagedDisk的托管磁盤。
azure-cli復制
az disk create \? ? --resource-group myResourceGroup \--name myManagedDisk \--sku Standard_LRS \--size-gb128\--source $snapshotId
創建 VM
現在,使用az vm create創建 VM,并將托管磁盤附加為 OS 磁盤 (--attach-os-disk)。 以下示例使用基于上傳的 VHD 創建的托管磁盤創建名為myNewVM的 VM:
Azure CLI復制
azvmcreate\--resource-groupmyResourceGroup \--locationchinaeast \--namemyNewVM \--os-typelinux \--attach-os-diskmyManagedDisk
現在,應該可以使用憑據通過 SSH 從源 VM 連接到該 VM。
后續步驟
準備好并上傳自定義虛擬磁盤之后,可以閱讀有關使用 Resource Manager 和模板的詳細信息。 可能還需要向新 VM添加數據磁盤。 如果需要訪問在 VM 上運行的應用程序,請務必打開端口和終結點。
立即訪問http://market.azure.cn