VMSS上用Managed Disk和Data Disk进行自动扩展(1)
虛擬機自動擴展集(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"
},
?
?
?
?
?
轉載于:https://www.cnblogs.com/cloudapps/p/7364390.html
總結
以上是生活随笔為你收集整理的VMSS上用Managed Disk和Data Disk进行自动扩展(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop- MapReduce分布式
- 下一篇: 数据库迁移——自动迁移Enable-Mi