Azure Managed Disk操作

衡子發表於2017-07-13

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的操作變得簡單很多。

 

相關文章