本文說明如何在 Azure 中上傳自定義的虛擬硬盤 (VHD) 或復(fù)制現(xiàn)有 VHD碳锈,并從自定義磁盤創(chuàng)建 Linux 虛擬機 (VM)书在。 可以根據(jù)要求安裝并配置 Linux 分發(fā)版洁桌,并使用該 VHD 快速創(chuàng)建新的 Azure 虛擬機。
如果想要從自定義磁盤創(chuàng)建多個 VM,則應(yīng)該從 VM 或 VHD 創(chuàng)建映像笋庄。 有關(guān)詳細信息,請參閱使用 CLI 創(chuàng)建 Azure VM 的自定義映像倔监。
可以使用兩個選項:
快速命令
Note
在 Azure 中國區(qū)使用 Azure CLI 2.0 之前直砂,請先運行az cloud set -n AzureChinaCloud來改變云環(huán)境。如果想切回國際版 Azure浩习,請再次運行az cloud set -n AzureCloud静暂。
使用az vm create從自定義或?qū)S玫拇疟P創(chuàng)建新 VM 時,請附加該磁盤 (--attach-os-disk)谱秽,而不要指定自定義映像或 Marketplace 映像 (--image)洽蛀。 以下示例使用從自定義 VHD 創(chuàng)建的、名為myManagedDisk的托管磁盤疟赊,創(chuàng)建名為myVM的 VM:
Azure CLI復(fù)制
azvmcreate--resource-groupmyResourceGroup--locationchinaeast--namemyVM \--os-typelinux--attach-os-diskmyManagedDisk
要求
若要完成以下步驟郊供,需要:
已準備好在 Azure 中使用的 Linux 虛擬機。 本文的準備 VM部分介紹了如何查找有關(guān)安裝 Azure Linux 代理 (waagent) 的特定于分發(fā)版的信息近哟。要使 VM 在 Azure 中正常工作驮审,以及要通過 SSH 連接到 VM,需要用到該代理吉执。
用于將Azure 認可的 Linux 分發(fā)版(或參閱關(guān)于未認可分發(fā)版的信息)安裝到采用 VHD 格式的虛擬磁盤的 VHD 文件疯淫。 可使用多種工具創(chuàng)建 VM 和 VHD:
安裝并配置QEMU或KVM,并注意使用 VHD 作為映像格式戳玫。 如果需要峡竣,可以使用qemu-img convert轉(zhuǎn)換映像。
也可以在Windows 10或Windows Server 2012/2012 R2上使用 Hyper-V量九。
Note
Azure 不支持更新的 VHDX 格式适掰。 創(chuàng)建 VM 時,請將 VHD 指定為映像格式荠列。 如果需要类浪,可以使用qemu-img convert或Convert-VHDPowerShell cmdlet 將 VHDX 磁盤轉(zhuǎn)換為 VHD。 此外肌似,Azure 不支持上傳動態(tài) VHD费就,因此,上傳之前川队,需要將此類磁盤轉(zhuǎn)換為靜態(tài) VHD力细。 可以使用Azure VHD Utilities for GO等工具在上傳到 Azure 的過程中轉(zhuǎn)換動態(tài)磁盤睬澡。
確保已安裝了最新的Azure CLI 2.0并已使用az login登錄到 Azure 帳戶。
在以下示例中眠蚂,請將示例參數(shù)名稱替換成自己的值煞聪。 示例參數(shù)名稱包括myResourceGroup、mystorageaccount和mydisks逝慧。
準備 VM
Azure 支持各種 Linux 分發(fā)(請參閱認可的分發(fā))昔脯。 以下文章指導(dǎo)用戶準備 Azure 上支持的各種 Linux 分發(fā)版:
另請參閱Linux 安裝說明,獲取更多有關(guān)如何為 Azure 準備 Linux 映像的一般提示笛臣。
Note
只有在使用某個認可的分發(fā)的時候也使用Azure 認可的分發(fā)中的 Linux中“支持的版本”下指定的配置詳細信息時云稚,Azure 平臺 SLA才適用于運行 Linux 的 VM。
選項 1:上傳 VHD
可以上傳本地計算機上運行的或者從另一個云導(dǎo)出的自定義 VHD沈堡。 若要使用 VHD 創(chuàng)建新的 Azure VM静陈,需要將 VHD 上傳到存儲帳戶,并從該 VHD 創(chuàng)建托管磁盤诞丽。
創(chuàng)建資源組
在上傳自定義磁盤和創(chuàng)建 VM 之前窿给,首先需要使用az group create創(chuàng)建一個資源組。
以下示例在chinaeast位置創(chuàng)建名為myResourceGroup的資源組:Azure 托管磁盤概述
Azure CLI復(fù)制
azgroupcreate\--namemyResourceGroup \--locationchinaeast
創(chuàng)建存儲帳戶
可以使用az storage account create為自定義磁盤和 VM 創(chuàng)建存儲帳戶率拒。
以下示例在前面創(chuàng)建的資源組中創(chuàng)建名為mystorageaccount的存儲帳戶:
Azure CLI復(fù)制
azstorageaccountcreate\--resource-groupmyResourceGroup \--locationchinaeast \--namemystorageaccount \--kindStorage \--skuStandard_LRS
列出存儲帳戶密鑰
Azure 為每個存儲帳戶生成兩個 512 位的訪問密鑰崩泡。 在向存儲帳戶進行身份驗證以執(zhí)行操作(例如執(zhí)行寫入操作)時,會使用這些訪問密鑰猬膨。 從此處了解有關(guān)管理對存儲的訪問的詳細信息角撞。 可以使用az storage account keys list查看訪問密鑰。
查看創(chuàng)建的存儲帳戶的訪問密鑰:
Azure CLI復(fù)制
azstorageaccountkeyslist\--resource-groupmyResourceGroup \--account-namemystorageaccount
輸出類似于:
Azure CLI復(fù)制
info:? ? Executing commandstorageaccountkeyslist+ Gettingstorageaccountkeysdata:? ? Name? Key? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Permissionsdata:-------------------------------------------------------------------------------------------------------data:? ? key1? d4XAvZzlGAgWdvhlWfkZ9q4k9bYZkXkuPCJ15NTsQOeDeowCDAdB80r9zA/tUINApdSGQ94H9zkszYyxpe8erw==? Fulldata:? ? key2? Ww0T7g4UyYLaBnLYcxIOTVziGAAHvU+wpwuPvK4ZG0CDFwu/mAxS/YYvAQGHocq1w7/3HcalbnfxtFdqoXOw8g==? Fullinfo:storageaccountkeyslistcommand OK
記下key1勃痴,因為在后續(xù)步驟中需要使用它來與存儲帳戶交互谒所。
創(chuàng)建存儲容器
在存儲帳戶中創(chuàng)建用于整理磁盤的容器的方式,與創(chuàng)建各種目錄以便有條理地整理本地文件系統(tǒng)的方式相同沛申。 一個存儲帳戶可以包含任意數(shù)目的容器劣领。 可以使用az storage container create創(chuàng)建容器。
以下示例創(chuàng)建名為mydisks的容器:
Azure CLI復(fù)制
azstoragecontainercreate\--account-namemystorageaccount \--namemydisks
上傳 VHD
現(xiàn)在铁材,使用az storage blob upload上傳自定義磁盤尖淘。 可以頁 Blob 的形式上傳和存儲自定義磁盤。
指定訪問密鑰著觉、在上一步中創(chuàng)建的容器村生,以及自定義磁盤在本地計算機上的路徑:
Azure CLI復(fù)制
azstorageblobupload--account-namemystorageaccount \--account-keykey1 \--container-namemydisks \--typepage \--file/path/to/disk/mydisk.vhd \--namemyDisk.vhd
上傳 VHD 可能需要一些時間。
創(chuàng)建托管磁盤
使用az disk create從 VHD 創(chuàng)建托管磁盤饼丘。 以下示例從已上傳到命名存儲帳戶和容器的 VHD 創(chuàng)建名為myManagedDisk的托管磁盤:
Azure CLI復(fù)制
azdiskcreate\--resource-groupmyResourceGroup \--namemyManagedDisk \--sourcehttps://mystorageaccount.blob.core.chinacloudapi.cn/mydisks/myDisk.vhd
選項 2:復(fù)制現(xiàn)有 VM
也可以在 Azure 中創(chuàng)建自定義的 VM趁桃,并復(fù)制 OS 磁盤并將其附加到新 VM 以創(chuàng)建另一個副本。 這種做法在測試中不會有任何問題,但若要將現(xiàn)有 Azure VM 作為多個新 VM 的模型卫病,則必須改為創(chuàng)建映像油啤。 有關(guān)從現(xiàn)有 Azure VM 創(chuàng)建映像的詳細信息,請參閱使用 CLI 創(chuàng)建 Azure VM 的自定義映像
創(chuàng)建快照
此示例在資源組myResourceGroup中創(chuàng)建名為myVM的 VM 的快照蟀苛,并創(chuàng)建名為osDiskSnapshot的快照益咬。
azure-cli復(fù)制
osDiskId=$(azvmshow-gmyResourceGroup-nmyVM--query"storageProfile.osDisk.managedDisk.id"-otsv)azsnapshotcreate\-gmyResourceGroup \--source"$osDiskId"\--nameosDiskSnapshot
創(chuàng)建托管磁盤
從快照創(chuàng)建新的托管磁盤。
獲取快照的 ID屹逛。 在此示例中,快照名為osDiskSnapshot汛骂,位于myResourceGroup資源組中罕模。
azure-cli復(fù)制
snapshotId=$(azsnapshotshow--nameosDiskSnapshot--resource-groupmyResourceGroup--query[id]-otsv)
創(chuàng)建托管磁盤。 在此示例中帘瞭,我們會在標準存儲中從快照創(chuàng)建大小為 128GB淑掌、名為myManagedDisk的托管磁盤。
azure-cli復(fù)制
az disk create \? ? --resource-group myResourceGroup \--name myManagedDisk \--sku Standard_LRS \--size-gb128\--source $snapshotId
創(chuàng)建 VM
現(xiàn)在蝶念,使用az vm create創(chuàng)建 VM抛腕,并將托管磁盤附加為 OS 磁盤 (--attach-os-disk)。 以下示例使用基于上傳的 VHD 創(chuàng)建的托管磁盤創(chuàng)建名為myNewVM的 VM:
Azure CLI復(fù)制
azvmcreate\--resource-groupmyResourceGroup \--locationchinaeast \--namemyNewVM \--os-typelinux \--attach-os-diskmyManagedDisk
現(xiàn)在媒殉,應(yīng)該可以使用憑據(jù)通過 SSH 從源 VM 連接到該 VM担敌。
后續(xù)步驟
準備好并上傳自定義虛擬磁盤之后,可以閱讀有關(guān)使用 Resource Manager 和模板的詳細信息廷蓉。 可能還需要向新 VM添加數(shù)據(jù)磁盤全封。 如果需要訪問在 VM 上運行的應(yīng)用程序,請務(wù)必打開端口和終結(jié)點桃犬。
立即訪問http://market.azure.cn