标签:readonly 有关 用户 virtual 加载 虚拟机 font 数据 res
虚拟机自动扩展集(VMSS)是Azure上一个非常强大的功能,在我之前的系列文档中已经做了详细的介绍,在此就不赘述了;我同时也提到,在使用Azure传统存储账号的时候,也存在诸多限制,比如你需要计算每个存储账号下虚拟机的数量以避免IOPS超过性能限制,需要考虑扩展集中虚拟机数量限制,自定义镜像的限制等等:
在用户进行大规模扩展的设计和使用中,使用传统存储账号非常不方便,所以我们在生产环境下,推荐用户使用在中国区新上线的托管磁盘(managed disk)。托管磁盘是将虚拟机的磁盘管理集中交给后台去做管理,用户不需要关心磁盘的存储, IOPS限制,扩展等琐碎的细节,只需要指定类型,比如高级磁盘或者普通磁盘,剩下的事情交给Azure后台服务去处理,使用托管磁盘可以让你在一个订阅中最大创建10000个磁盘,几千个虚拟机满足大部分扩展性应用的。
另外一个VMSS的限制是不能使用数据磁盘,但有些应用设计上在做扩展的时候,需要数据磁盘进行数据存储,目前在新版本的VMSS中已经支持Data Disk。
假如你有以下相对来讲比较复杂的客户需求,你该如何实现?
这个过程相对来说比较复杂,本文讨论如何基于传统存储账号的VMSS ARM模板进行修改,使用磁盘脚本,Azure CLI 2.0进行基于管理磁盘和数据磁盘的VMSS大规模部署。
用于本文的之前介绍的我的Linux VMSS Autoscale 的模板地址如下:
https://github.com/kingliantop/azurelabs/tree/master/AzureChinaARMTemplate/VMSS-Linux-Autoscale
基于该模板,我们需要做一些修改将使用传统存储账号的VMSS转换为使用Managed Disk和数据磁盘的VMSS 模板,然后再创建扩展集合。
"storageAccountType": "Standard_LRS",
"newStorageAccountSuffix": "[concat(variables(‘namingInfix‘), ‘sa‘)]",
"uniqueStringArray": [
"[concat(uniqueString(concat(resourceGroup().id, variables(‘newStorageAccountSuffix‘), ‘0‘)))]",
"[concat(uniqueString(concat(resourceGroup().id, variables(‘newStorageAccountSuffix‘), ‘1‘)))]",
"[concat(uniqueString(concat(resourceGroup().id, variables(‘newStorageAccountSuffix‘), ‘2‘)))]",
"[concat(uniqueString(concat(resourceGroup().id, variables(‘newStorageAccountSuffix‘), ‘3‘)))]",
"[concat(uniqueString(concat(resourceGroup().id, variables(‘newStorageAccountSuffix‘), ‘4‘)))]"
],
"vhdContainerName": "[concat(variables(‘namingInfix‘), ‘vhd‘)]",
"osDiskName": "[concat(variables(‘namingInfix‘), ‘osdisk‘)]",
"saCount": "[length(variables(‘uniqueStringArray‘))]",
az provider show --namespace Microsoft.Compute
可以看到虚拟机扩展集合和虚拟机都支持"2016-04-30-preview","2016-08-30","2017-03-30"等多个版本号,而Insight provider的Autoscalesetting最高支持"2015-04-01"这个版本:
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables(‘namingInfix‘)]",
"location": "[resourceGroup().location]",
"apiVersion": "[variables(‘computeApiVersion‘)]",
"dependsOn": [
"[concat(‘Microsoft.Storage/storageAccounts/‘, variables(‘uniqueStringArray‘)[0], variables(‘newStorageAccountSuffix‘))]",
"[concat(‘Microsoft.Storage/storageAccounts/‘, variables(‘uniqueStringArray‘)[1], variables(‘newStorageAccountSuffix‘))]",
"[concat(‘Microsoft.Storage/storageAccounts/‘, variables(‘uniqueStringArray‘)[2], variables(‘newStorageAccountSuffix‘))]",
"[concat(‘Microsoft.Storage/storageAccounts/‘, variables(‘uniqueStringArray‘)[3], variables(‘newStorageAccountSuffix‘))]",
"[concat(‘Microsoft.Storage/storageAccounts/‘, variables(‘uniqueStringArray‘)[4], variables(‘newStorageAccountSuffix‘))]",
"[concat(‘Microsoft.Network/loadBalancers/‘, variables(‘loadBalancerName‘))]",
"[concat(‘Microsoft.Network/virtualNetworks/‘, variables(‘virtualNetworkName‘))]"
"osDisk": {
"vhdContainers": [
"[concat(‘https://‘, variables(‘uniqueStringArray‘)[0], variables(‘newStorageAccountSuffix‘), ‘.blob.core.chinacloudapi.cn/‘, variables(‘vhdContainerName‘))]",
"[concat(‘https://‘, variables(‘uniqueStringArray‘)[1], variables(‘newStorageAccountSuffix‘), ‘.blob.core.chinacloudapi.cn/‘, variables(‘vhdContainerName‘))]",
"[concat(‘https://‘, variables(‘uniqueStringArray‘)[2], variables(‘newStorageAccountSuffix‘), ‘.blob.core.chinacloudapi.cn/‘, variables(‘vhdContainerName‘))]",
"[concat(‘https://‘, variables(‘uniqueStringArray‘)[3], variables(‘newStorageAccountSuffix‘), ‘.blob.core.chinacloudapi.cn/‘, variables(‘vhdContainerName‘))]",
"[concat(‘https://‘, variables(‘uniqueStringArray‘)[4], variables(‘newStorageAccountSuffix‘), ‘.blob.core.chinacloudapi.cn/‘, variables(‘vhdContainerName‘))]"
],
"name": "[variables(‘osDiskName‘)]",
"caching": "ReadOnly",
"createOption": "FromImage"
},
VMSS上用Managed Disk和Data Disk进行自动扩展(1)
标签:readonly 有关 用户 virtual 加载 虚拟机 font 数据 res
原文地址:http://www.cnblogs.com/cloudapps/p/7364390.html