Azure Managed Disk對原有的Page Blob進行了一次封裝。使得Azure VM的Disk操作變得非常簡單。本文將介紹實際操作中針對Manage Disk的一些操作。
一、建立Manage Disk
Manage Disk的建立,可以建立空磁碟,也可以從其他源建立Disk。
1 建立空磁碟
root@hw-surfacebook:~# az disk create -g hwtest -n hwempty01 --size-gb 31 --sku Standard_LRS {\ Finished .. "accountType": "Standard_LRS", "creationData": { "createOption": "Empty", "imageReference": null, "sourceResourceId": null, "sourceUri": null, "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/hwempty01", "location": "chinanorth", "name": "hwempty01", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-12T09:39:57.982040+00:00", "type": "Microsoft.Compute/disks" }
2 從其他源建立磁碟
可以通過儲存賬戶中Page Blob建立Disk:
root@hw-surfacebook:~# az disk create -g hwfdsk -n hwmd01 --source https://h2portalvhdsn6t2ktgjscst.blob.core.chinacloudapi.cn/vhds/hwfdsk-hwfdsk-2017-06-23.vhd {/ Finished .. "accountType": "Premium_LRS", "creationData": { "createOption": "Import", "imageReference": null, "sourceResourceId": null, "sourceUri": "https://h2portalvhdsn6t2ktgjscst.blob.core.chinacloudapi.cn/vhds/hwfdsk-hwfdsk-2017-06-23.vhd", "storageAccountId": null }, "diskSizeGb": null, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwfdsk/providers/Microsoft.Compute/disks/hwmd01", "location": "chinanorth", "name": "hwmd01", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwfdsk", "tags": {}, "timeCreated": "2017-06-23T14:52:46.629909+00:00", "type": "Microsoft.Compute/disks" }
二 複製Disk
Managed Disk的複製就是用Create的命令來實現的:
root@hw-surfacebook:~# az disk create -g hwtest -n mydisk03 --source mydisk02 {\ Finished .. "accountType": "Premium_LRS", "creationData": { "createOption": "Copy", "imageReference": null, "sourceResourceId": null, "sourceUri": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk02", "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk03", "location": "chinanorth", "name": "mydisk03", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-12T09:48:33.620377+00:00", "type": "Microsoft.Compute/disks" }
命令是把mydisk02複製到mydisk03。一般情況下,不指定managed disk的sku,都是Premium_LRS的。
3 跨Resource Group建立managed Disk:
root@hw-surfacebook:~# az disk create -g hwtest -n mydisk04 --source /subscriptions/xxxx/resourceGroups/HWFDSK/providers/Microsoft.Compute/disks/hwmd01 {/ Finished .. "accountType": "Premium_LRS", "creationData": { "createOption": "Copy", "imageReference": null, "sourceResourceId": null, "sourceUri": "/subscriptions/xxxx/resourceGroups/HWFDSK/providers/Microsoft.Compute/disks/hwmd01", "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk04", "location": "chinanorth", "name": "mydisk04", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-12T10:01:17.520376+00:00", "type": "Microsoft.Compute/disks" }
三 下載Managed Disk
如果想把Managed Disk下載下來,需要通過開放managed Disk的SAS訪問許可權。具體命令如下:
root@hw-surfacebook:~# az disk grant-access -g hwtest -n mydisk03 --duration-in-seconds 600 {/ Finished .. "accessSas": "https://md-xplvtgf1jcgg.blob.core.chinacloudapi.cn/ttq410wsfkk5/abcd?sv=2016-05-31&sr=b&si=31fc2e57-dcd6-4cf1-ba2a-33fb44d560a4&sig=j2JwhG8Gx51sVwOdm%2BNIPEOfTAWiZsoW82XpEjTcAHA%3D" } 這種情況下,已經Attach到VM的Disk是不能開機的。如果開放了SAS的訪問許可權,又需要開機,需要把這個許可權取消掉。具體命令如下: root@hw-surfacebook:~# az disk revoke-access -g hwtest -n mydisk03 {/ Finished .. "endTime": "2017-07-12T09:56:37.555156+00:00", "error": null, "name": "acdf95b5-d658-4a17-b680-31f48c8b8927", "startTime": "2017-07-12T09:56:37.336370+00:00", "status": "Succeeded" }
四 更改managed Disk的sku
前面提到過,managed disk在不指定sku的情況下,預設都是SSD的。如果需要轉換成HDD的Disk,命令如下:
root@hw-surfacebook:~# az disk update -g hwtest -n mydisk03 --sku Standard_LRS { "accountType": "Standard_LRS", "creationData": { "createOption": "Copy", "imageReference": null, "sourceResourceId": null, "sourceUri": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk02", "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk03", "location": "chinanorth", "name": "mydisk03", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-12T09:48:33.620377+00:00", "type": "Microsoft.Compute/disks" }
或者在建立的時候就指定SKU:
root@hw-surfacebook:~# az disk create -g hwtest -n mydisk05 --source mydisk04 --sku Standard_LRS {/ Finished .. "accountType": "Standard_LRS", "creationData": { "createOption": "Copy", "imageReference": null, "sourceResourceId": null, "sourceUri": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk04", "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk05", "location": "chinanorth", "name": "mydisk05", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-12T10:03:20.170081+00:00", "type": "Microsoft.Compute/disks" }
五 對managed disk做snapshot
root@hw-surfacebook:~# az snapshot create -g hwtest -n hwsnapshot01 --source mydisk01 {/ Finished .. "accountType": "Standard_LRS", "creationData": { "createOption": "Copy", "imageReference": null, "sourceResourceId": null, "sourceUri": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk01", "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/snapshots/hwsnapshot01", "location": "chinanorth", "name": "hwsnapshot01", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-13T05:31:54.692171+00:00", "type": "Microsoft.Compute/snapshots" }
從Snapshot建立Disk:
root@hw-surfacebook:~# az disk create -g hwtest -n mydisk06 --source hwsnapshot01 {- Finished .. "accountType": "Premium_LRS", "creationData": { "createOption": "Copy", "imageReference": null, "sourceResourceId": null, "sourceUri": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/snapshots/hwsnapshot01", "storageAccountId": null }, "diskSizeGb": 31, "encryptionSettings": null, "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/disks/mydisk06", "location": "chinanorth", "name": "mydisk06", "osType": null, "ownerId": null, "provisioningState": "Succeeded", "resourceGroup": "hwtest", "tags": {}, "timeCreated": "2017-07-13T05:33:57.468651+00:00", "type": "Microsoft.Compute/disks" }
五 用已有的managed disk建立VM
有了managed disk,建立VM就非常簡單了,用Azure Cli建立的命令如下:
root@hw-surfacebook:~# az vm create -g hwtest -n hwtest06 --attach-os-disk mydisk06 --vnet-name hwtest --subnet Subnet-1 --os-type Linux {- Finished .. "fqdns": "", "id": "/subscriptions/xxxx/resourceGroups/hwtest/providers/Microsoft.Compute/virtualMachines/hwtest06", "location": "chinanorth", "macAddress": "00-17-FA-00-C7-FA", "powerState": "VM running", "privateIpAddress": "10.3.0.5", "publicIpAddress": "139.219.104.221", "resourceGroup": "hwtest" }
總結:
有了managed Disk,很多針對VM Disk的操作變得簡單很多。