Azure的磁盘存储是保存在存储账户中的Page Blob。由于Azure Storage Account的各种限制,在设计VM的磁盘存储时,要符合Azure磁盘存储账户的最佳实践,请参考:http://www.cnblogs.com/hengwei/p/6377598.html

目前Global已经发布了Managed Disk,就是把各种Storage Account的限制封装起来。用户在使用VM Disk时,不用再考虑各种Storage Account的限制。

在非Managed Disk情况下,需要考虑Storage Account:

在Managed Disk情况下,不需要再考虑Storage Account了:

本文将探讨,如何采用Managed Disk创建VM,已经如何将Unmanaged Disk转换成Managed Disk。

一、采用Managed Disk创建VM

  1. 在Portal上创建Managed Disk的VM

    在Portal上创建Managed Disk的VM和创建普通的VM相似,只是在选择存储信息的时候,选择Managed Disk选项就OK了。具体如下:

    1. VM基本信息

    1. 选择VM Size

    1. 配置可选功能

    其中和存储相关的亮相:1. Disk,选择Managed Disk,2. 诊断,选择普通的存储账户。

    一路确定下,Managed Disk的VM就创建好了。

    创建完成后,可以看到VM和其Disk的状态:

    在VM内,观察磁盘,

    [root@hwmdtest ~]# fdisk /dev/sda
    Welcome to fdisk (util-linux 2.23.).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    Command (m for help): p
    Disk /dev/sda: 32.2 GB, bytes, sectors
    Units = sectors of * = bytes
    Sector size (logical/physical): bytes / bytes
    I/O size (minimum/optimal): bytes / bytes
    Disk label type: dos
    Disk identifier: 0x000c7b1d
    Device Boot Start End Blocks Id System
    /dev/sda1 * Linux
    /dev/sda2 Linux
    Command (m for help): ^C 进行IOPS的测试:
    [root@hwmdtest ~]# ./iops.py /dev/sda
    /dev/sda, 32.21 G, sectorsize=512B, #threads=, pattern=random:
    B blocks: 560.3 IO/s, 286.9 kB/s ( 2.3 Mbit/s)
    kB blocks: 476.4 IO/s, 487.8 kB/s ( 3.9 Mbit/s)
    kB blocks: 415.7 IO/s, 851.4 kB/s ( 6.8 Mbit/s)
    kB blocks: 299.1 IO/s, 1.2 MB/s ( 9.8 Mbit/s)
    kB blocks: 289.4 IO/s, 2.4 MB/s ( 19.0 Mbit/s)
    kB blocks: 294.2 IO/s, 4.8 MB/s ( 38.6 Mbit/s)
    kB blocks: 291.1 IO/s, 9.5 MB/s ( 76.3 Mbit/s)
    kB blocks: 286.5 IO/s, 18.8 MB/s (150.2 Mbit/s)
    kB blocks: 210.5 IO/s, 27.6 MB/s (220.7 Mbit/s)
    kB blocks: 192.3 IO/s, 50.4 MB/s (403.2 Mbit/s)
    kB blocks: 105.2 IO/s, 55.2 MB/s (441.4 Mbit/s)
    MB blocks: 56.7 IO/s, 59.4 MB/s (475.6 Mbit/s)
    MB blocks: 31.6 IO/s, 66.2 MB/s (529.6 Mbit/s)
    MB blocks: 19.4 IO/s, 81.5 MB/s (651.9 Mbit/s)
    MB blocks: 15.9 IO/s, 133.3 MB/s ( 1.1 Gbit/s)
    MB blocks: 7.7 IO/s, 129.5 MB/s ( 1.0 Gbit/s)

    大约在500IOPS左右。

  2. 用Azure CLI创建VM

    用CLI创建一台CentOS的VM:

    az vm create -n hwmdcli --resource-group hwmd --admin-username hengwei \ 
    --admin-password xxxxxxxx --authentication-type password \
    --storage-sku Standard_LRS --size Standard_D1 --subnet default \
    --vnet-name hwmd-vnet --image CentOS {- Finished ..
    "fqdns": "",
    "id": "/subscriptions/xxxx/resourceGroups/hwmd/providers/Microsoft.Compute/virtualMachines/hwmdcli",
    "location": "eastasia",
    "macAddress": "00-0D-3A-81-C9-7F",
    "powerState": "VM running",
    "privateIpAddress": "10.1.0.5",
    "publicIpAddress": "52.229.175.38",
    "resourceGroup": "hwmd"
    }

二、磁盘的转换

  1. VM从Unmanaged Disk转换成Managed Disk

    创建一台Unmanaged Disk的VM:hwumd。然后用Azure CLI对VM进行转换:

    • Deallocate VM
      az vm deallocate -g hwmd -n hwumd
      
      {/ Finished ..
      "endTime": "2017-06-12T08:07:49.459038+00:00",
      "error": null,
      "name": "222f9f03-b23e-4359-ba07-4195840b68de",
      "startTime": "2017-06-12T08:05:48.453632+00:00",
      "status": "Succeeded"
      }
    • Convert Disk
      az vm convert -g hwmd -n hwumd
      
      {| Finished ..
      "endTime": "2017-06-12T08:14:23.519972+00:00",
      "error": null,
      "name": "cbe7b1ae-339d-415a-b4e7-c93c37ea7872",
      "startTime": "2017-06-12T08:13:31.748733+00:00",
      "status": "Succeeded"
      }
    • 此时可以看到Disk已经转换成Managed Disk:
    • az vm show -g hwmd -n hwumd
      
      {
      
      ......
      "osDisk": {
      "caching": "ReadWrite",
      "createOption": "fromImage",
      "diskSizeGb": ,
      "encryptionSettings": null,
      "image": null,
      "managedDisk": {
      "id": "/subscriptions/……/resourceGroups/hwmd/providers/Microsoft.Compute/disks/hwumd_hwumd",
      "resourceGroup": "hwmd",
      "storageAccountType": "Standard_LRS"
      },
      "name": "hwumd_hwumd",
      "osType": "Linux",
      "vhd": null
      }
      },
      ......
      }

2. 普通的Managed Disk转换成Premium的Managed Disk

    • 首先Deallocate VM
      az vm deallocate -g hwmd -n hwumd
      {| Finished ..
      "endTime": "2017-06-12T08:29:53.044297+00:00",
      "error": null,
      "name": "629d3b3e-78f7-4fb4-b6bb-aa4785c71123",
      "startTime": "2017-06-12T08:27:46.205233+00:00",
      "status": "Succeeded"
      }
    • Resize VM
      az vm resize -g hwmd -n hwumd --size Standard_DS2
      {- Finished ..
      ……
      "osDisk": {
      "caching": "ReadWrite",
      "createOption": "fromImage",
      "diskSizeGb": null,
      "encryptionSettings": null,
      "image": null,
      "managedDisk": {
      "id": "/subscriptions/……/resourceGroups/hwmd/providers/Microsoft.Compute/disks/hwumd_hwumd",
      "resourceGroup": "hwmd",
      "storageAccountType": null
      },
      "name": "hwumd_hwumd",
      "osType": "Linux",
      "vhd": null
      }
      },
      ……
      }
    • 改变Disk的类型到Premium
      az disk update -g hwmd -n hwumd_hwumd --sku Premium_LRS
      {
      "accountType": "Premium_LRS",
      "creationData": {
      "createOption": "Import",
      "imageReference": null,
      "sourceResourceId": null,
      "sourceUri": "https://hwmddiag954.blob.core.windows.net/vhds/hwumd20170612152358.vhd",
      "storageAccountId": null
      },
      "diskSizeGb": ,
      "encryptionSettings": null,
      "id": "/subscriptions/……/resourceGroups/hwmd/providers/Microsoft.Compute/disks/hwumd_hwumd",
      "location": "eastasia",
      "name": "hwumd_hwumd",
      "osType": null,
      "ownerId": "/subscriptions/……/resourceGroups/hwmd/providers/Microsoft.Compute/virtualMachines/hwumd",
      "provisioningState": "Succeeded",
      "resourceGroup": "hwmd",
      "tags": null,
      "timeCreated": "2017-06-12T08:13:37.322385+00:00",
      "type": "Microsoft.Compute/disks"
      }
    • 重新启动VM

      此时VM已经升级到DS2的高级存储类型的VM了。

三. 总结

通过简单的Azure Cli,可以把磁盘转换成Managed Disk。转成Managed Disk的好处是不需要再关心存储账户的各种限制。

另外,VM变成Premium的DS系列后,可以挂载普通或者高级的磁盘。实现下图的各种挂载磁盘选项:

Azure Managed Disk的更多相关文章

  1. Azure Managed Disk操作

    Azure Managed Disk对原有的Page Blob进行了一次封装.使得Azure VM的Disk操作变得非常简单.本文将介绍实际操作中针对Manage Disk的一些操作. 一.创建Man ...

  2. 把ASM下的HDD VM转换成ARM下Managed Disk的SSD VM

    在ASM下,要把HDD的VM转换成SSD的VM步骤非常复杂.需要手工把Disk从普通存储账户复制到高级存储账户.再通过这个Disk创建VM. 目前在有了ASM到ARM的迁移工具,以及Managed D ...

  3. Azure VM Disk的设计与部署

    Azure的VM的设计中,Disk相关的设计是非常重要的一个内容,本文将介绍Azure上的VM的Disk相关的一些最佳实践和一些小的技巧. 一.Azure VM中Disk的存储账户设计 1. Stor ...

  4. Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)

    <Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...

  5. Azure 标准与高级托管磁盘存储的相互转换

    托管磁盘提供两种存储选项:高级(基于 SSD)和标准(基于 HDD). 它允许基于性能需求在这两个选项之间轻松切换,并保障最短停机时间. 非托管磁盘不具备此功能. 但可以轻松转换为托管磁盘,以便在这两 ...

  6. 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像

    Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...

  7. 获取指定订阅下所有Azure ARM虚拟机配置(CPU核数,内存大小,磁盘信息)的使用情况

    脚本内容: <# .SYNOPSIS This script grab all ARM VM VHD file in the subscription and caculate VHD size ...

  8. Azure CLI脚本查看未挂载的ManagedDisk

    本文介绍如何用Azure CLI的脚本查看未挂载的Managed Disk,以及Managed Disk挂载到哪些资源. 具体的脚本如下: #!/bin/bash rm -rf noownerdisk ...

  9. Azure VM从ASM迁移到ARM(二)

    在一中讨论了通过Azure平台的工具进行迁移的方案. 本文将讨论另外一种迁移方式.通过磁盘复制的方式,把部分VM迁移到ARM的Managed Disk模式. 一.  获得ASM中Disk的信息 在管理 ...

随机推荐

  1. 快乐学习 Ionic Framework+PhoneGap 手册1-2{介绍Header,Content,Footer的使用}

    *先运行第一个简单的APP,介绍Header,Content,Footer的使用 {2.1}运行一个简单的APP,效果如下 {2.2}Header代码 <ion-header-bar class ...

  2. php数组函数-array_rand()

    array_rand()函数返回数组中的一个随机键名,或者如果指定函数返回键名不止一个,则返 回一个包含随机键名的数组. array_rand(array,number); array:必需.规定数组 ...

  3. 记录python面试题

    闲来无事,记录一下曾经以及深刻的面试题 记录一下我记忆比较深的面试题,以后若用到python相关还能细细把玩 搜狐面试题: 一.写一个缓存优化策略 解答:这个题主要考察对lru_cache的理解,所以 ...

  4. [Python] 弗洛伊德(Floyd)算法求图的直径并记录路径

    相关概念 对于一个图G=(V, E),求图中两点u, v间最短路径长度,称为图的最短路径问题.最短路径中最长的称为图的直径. 其中,求图中确定的某两点的最短路径算法,称为单源最短路径算法.求图中任意两 ...

  5. JAVAWeb学习总结(一)

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...

  6. 关于v4l2的一点变更

    先打个连接 http://linuxtv.org/downloads/presentations/media_ws_2013/v4l2-multi-format.pdf 2013年linux 多媒体构 ...

  7. UVA639 二叉树

    题意:深度为n的二叉树每个节点上有个开关,初始为关闭,每当小球落在节点上都会改变开关的状态,问编号为m的小球最终会落在哪里. 思路:对于二叉树的节点k,左节点右节点的编号为2k,2k+1.只需由最后一 ...

  8. sql中的group by 和 having 用法

    sql中的group by 用法:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然 ...

  9. 理解面向消息的中间件和 JMS

    本章知识点: 企业消息和面向消息的中间件 理解 Java Message Service(JMS) 使用 JMS APIs 发送和接收消息 消息驱动 bean 的一个例子 简介 一般来说,掌握了企业级 ...

  10. pythoncook 随记

    第一章 数据结构与算法 1 赋值多个变量 *2 collections deque 构造固定大小队列,插入删除比list快3 查找最大和最小元素的N个元素 heapq nlargest() nsmal ...