Microsoft 发布了两个新功能,力图简化 Azure 中虚拟机的存储和扩展能力。其中托管磁盘(Managed Disks)使得不必配置“存储账户”就能保持虚拟机磁盘,扩展集合(Scale Sets)使得上百个同样的虚拟机可以一次性部署。
Microsoft 的 Corey Sanders 在一个博客帖子中指出:“你可以使用托管磁盘为每个实例添加磁盘,并创建多达 1,000 个虚拟机的扩展集合,这在规模上增加了 10 倍。”在推出托管磁盘功能之前,Microsoft 要求使用存储账户去保存虚拟机的磁盘。这些存储账户有存储容量和吞吐量上的限制。因此 Azure 客户要对存储账户的使用做认真的规划。
你必须要确保没有在同一存储账户中放置过多的磁盘,因为这会超出存储账户的扩展目标(例如 20,000 IOPS),导致虚拟机被截流。使用非托管磁盘时,为得到虚拟机的最优性能,必须知道如何最大化利用存储账户。
考虑到 IOPS 限制,用户必须精确计算每个存储账户中所能使用的虚拟机数量。
根据所请求的速率限制,你可以粗略地估算一个标准存储账户所支持的高可用磁盘的数量。例如,对于基础级(Basic Tier)虚拟机,高可用磁盘的最大数量大约是 66 个(20,000 除以每个磁盘的 IOPS 值 300);对于标准级(Standard Tier)虚拟机,这个数量大约是 40 个(20,000 除以每个磁盘的 IOPS 值 500)。
托管磁盘抽象了存储账户概念。用户仅需指定虚拟机的磁盘大小和“类型”,所有的存储账户由 Azure 去“管理”。磁盘有两种类型:标准(standard)和高级(premium)。标准磁盘使用硬盘驱动器(HDD,Hard Disk Driver)介质,容量可达 1TB。高级磁盘基于 SSD,容量也可达 1TB。所有被管理的磁盘都使用具有三份独立备份的持久存储。
Microsoft 推荐所有新的虚拟机使用托管磁盘,也推荐将所有现有的虚拟机都迁移到该模式。据 Sanders 介绍,迁移到托管磁盘或是在标准和高级磁盘服务间做迁移是十分容易实现的。
使用托管磁盘,从现有非受控 Azure Resource Manager 虚拟机移植到托管磁盘虚拟机是十分容易实现的,这无需重建虚拟机,并保留了虚拟机的配置和安全性。启动迁移后,虚拟机在重启后就立刻可用。你可完全控制迁移过程,并且可以选择是每次迁移一个虚拟机,还是通过脚本一次性地迁移所有的虚拟机。
现在你还可以方便地将托管磁盘从标准磁盘迁移到高级磁盘。使用托管磁盘后,通过关闭虚拟机就可以更改磁盘的账户类型,无需删除或重新配置虚拟机。在虚拟机重启后,更改的磁盘就立刻可用。
托管磁盘的另一个特性是细粒度的安全。不同于访问一个磁盘就意味着要访问所有的磁盘的旧“存储账户”模型,托管磁盘使得磁盘权限可管理。
Azure 虚拟机的扩展集合允许用户构建和管理一组相同的虚拟机资源。按照Microsoft 的说法,用户必须使用托管磁盘构建具有100 个以上虚拟机的扩展集合。如果不使用托管磁盘,每20 个虚拟机就要使用一个传统的存储账户。使用托管磁盘后,扩展集合中可包含1,000 个虚拟机,但是这仅针对基于Azure 提供的基础镜像。如果使用基于用户定制的镜像,扩展集合最多可包含100 个虚拟机。
为使构建扩展集合尽可能快, Microsoft 使用了一种预留分配(over-provisioning)策略 。
默认虚拟机扩展集合为“预留分配”的。当打开预留分配选项后,扩展集合实际运行的虚拟机数量要多于所需的数量。一旦成功分配了所需数量的虚拟机,就会删除多余的虚拟机。预留分配在提高分配成功率的同时,还降低了部署时间。你无需为额外的虚拟机付费,他们也不占用你的磁盘空间限额。
Sanders指出,Microsoft IaaS 平台还规划了一些其它功能。
我期待今年能发布更多的功能,包括对操作系统补丁的支持、应用生命周期集成、应用健康情况监控和负载均衡器的健康情况的集成。
查看英文原文: Microsoft Releases Managed Disks, Scale Sets
感谢薛命灯对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论