历史上的今天
返回首页

历史上的今天

今天是:2024年12月14日(星期六)

2019年12月14日 | Azure ARM (20) 将非托管磁盘虚拟机,迁移成托管磁盘虚拟机

2019-12-14 来源:eefocus

  在笔者之前的文章中,我们如果需要使用Azure虚拟机,必须预先创建一个Azure存储账户(Storage Account),用来保存虚拟机的VHD文件。

  这会有几个问题:

  1.一个Azure Storage Account存储账户,会有20000个IOPS的性能瓶颈。

  如果我们把过多的Azure VHD文件保存在同一个Storage Account,会由于IOPS性能瓶颈造成VM 磁盘吞吐量限制。

  我们建议一般40个普通VHD放在同一个存储账户里,每个一个VHD的IOPS为500, 总共的IOPS = 40 X 500 = 20000 IOPS,刚好等于一个存储账户的最大IOPS

 

  2.存储账户的高可用

  当我们在设计虚拟机的存储账户,更好的设计方式是:同一个高可用集的多台VM的VHD文件,都是在不同的Azure Storage Node里面的。

  比如在同一个高可用集Web-AvbSet里面的两台VM: Web01和Web02,所在的VHD文件,应该在不同的Azure Storage Node里面。

  这里如何查看Azure Storage Node呢,我们可以使用ping Storage Account Endpoint的方式来进行查看:

  

  如上图:

  (1)第一个存储账户niexxxx,所在的存储Node是sh2prdstr02a

  (2)第二个存储账户leixxxx,所在的存储Node是sha2prdstr02a。与第一个存储账户的Node是一样的。

  (3)第三个存储账户ocmxxxx,所在的存储账户Node是sha3prdstr01a。和上面2个存储账户的Node都不同。

 

  所以最佳实践是:Web01所在的VHD文件,保存在sh2prdstr02a。Web02所在的VHD文件,保存在sha3prdstr01a。

  这样才能保存存储的高可用设计,但是这样管理起来太麻烦了。

  我们需要Azure平台来自动帮助我管理虚拟机所在的VHD文件,及相应的Storage Node的高可用设计。

 

  这时候就可以利用Azure Manage Disk,让微软云平台给我管理虚拟机的磁盘,我们不需要手动管理存储账户。

 

  请注意,如果使用Unmanag Disk的虚拟机磁盘费用,对于普通存储来说,是用多少GB,算多少费用

  但是一旦转换了Manage Disk以后,存储费用是按照阶梯价格收费的。

 

  这里,笔者简单介绍一下。

  特别注意:截止2017年12月26日,使用Azure China Manage Disk,需要把高可用性集设置的故障域Fault Domain设置为2。

  暂时不支持Fault Domain为3。如下图:

  

 

 

 

  准备工作:

  1.我们已经创建了1个存储账户,命名为:leiasmstorage

  2.我们创建了一个高可用集Availability Set,Fault Domain故障域为2。如上图

  3.两台VM:LeiWeb01和LeiWeb02,都加入该高可用集。且这2台VM的VHD文件,都保存在同一个存储账户:leiasmstorage

  4.可以发现这样的设计是有问题的:因为这个存储账户发生宕机,则这2台VM也宕机

 

  1.首先我们把需要修改的VM关机,考虑到业务连续性,我们首先把LeiWeb01这台VM关机。图略

  2.打开Azure PowerShell,运行以下脚本:


#登录并验证

Add-AzureRmAccount -EnvironmentName AzureChinaCloud


#选择当前订阅

$subscriptionName = 'SubscriptionName'

Select-AzureRmSubscription -SubscriptionName $subscriptionName


#设置资源组

$rgName = "ResourceGroupName"


#设置虚拟机名称

$vmName = "LeiVM01"


#设置虚拟机的高可用性集

$avSetName = 'LEI-AVBSET'


#获得高可用性集

$avSet = Get-AzureRmAvailabilitySet -ResourceGroupName $rgName -Name $avSetName


#设置高可用性集的故障域为2,

$avSet.PlatformFaultDomainCount = 2


#更新

Update-AzureRmAvailabilitySet -AvailabilitySet $avSet -Sku Aligned



$avSet = Get-AzureRmAvailabilitySet -ResourceGroupName $rgName -Name $avSetName


foreach($vmInfo in $avSet.VirtualMachinesReferences)

{

  $vm = Get-AzureRmVM -ResourceGroupName $rgName | Where-Object {$_.Id -eq $vmInfo.id}

  Stop-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name -Force

  ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vm.Name

  Start-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name


  3.执行成功后,LeiWeb01和LeiWeb01的磁盘都变成了Managed Disk。如下图:

 

  4.如果我们想查看LeiVM01和LeiVM02的Managed Disk的URL地址,可以执行下面的PowerShell脚本:


#如果我们想查看Managed Disk的URL,可以执行下面的命令

foreach($vmInfo in $avSet.VirtualMachinesReferences)

{

  $vm = Get-AzureRmVM -ResourceGroupName $rgName | Where-Object {$_.Id -eq $vmInfo.id}

  #需要在关机下执行

  Stop-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name -Force

  

  $mdiskURL = Grant-AzureRmDiskAccess -ResourceGroupName $rgName -DiskName $vm.StorageProfile.OsDisk.Name -Access Read -DurationInSecond 3600

  Write-Output($mdiskURL)

  

   #然后开机

  #Start-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name

}

 

  执行结果如下图:

推荐阅读

史海拾趣

Eureka Microelectronics Inc公司的发展小趣事

Eureka一直重视研发实力的提升和技术创新。公司拥有一支专业的研发团队,致力于新技术的研发和应用。近年来,Eureka在人工智能、物联网等领域取得了多项技术突破,推出了一系列具有竞争力的新产品。这些技术的突破和应用,不仅提升了Eureka的产品性能和质量,也推动了公司在行业内的领先地位。

Graseby Infrared公司的发展小趣事
电动机负载过大或负载不平衡也可能导致接触器频繁动作。
Excel Cell Electronic Co Ltd公司的发展小趣事

作为一家具有社会责任感的企业,ECE公司始终关注社会公益事业。公司积极参与扶贫、教育、环保等领域的公益活动,为社会发展做出了积极贡献。同时,ECE公司还注重员工福利和职业发展,为员工提供良好的工作环境和培训机会,促进员工的全面发展。这些举措使ECE公司赢得了社会的广泛认可和尊重。

以上五个故事是基于ECE公司可能的发展历程和业务情况构建的虚构性概述。在实际发展过程中,ECE公司的发展历程可能更加复杂和多元化。

EBK Kruger GmbH & Co KG公司的发展小趣事

为了提升产品质量和满足客户需求,EBK Kruger开始建立严格的质量管理体系。公司引进了国际先进的生产设备和检测设备,并对员工进行了系统的质量培训。通过不懈的努力,EBK Kruger的产品质量得到了显著提升,赢得了客户的广泛赞誉。同时,公司还获得了多项国际质量认证,进一步提升了品牌形象。

Cicoil公司的发展小趣事

随着公司业务的不断拓展,Cicoil开始与大型计算机制造商IBM展开合作。他们为IBM的大型计算机提供定制的扁平电缆解决方案,以其出色的性能和可靠性赢得了IBM的信任。这一合作不仅提升了Cicoil在业界的地位,也为其带来了稳定的业务增长和更广阔的发展空间。

广东爱晟电子(exsense)公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,爱晟电子始终坚持以创新驱动发展。公司不断投入研发资金,加强研发团队的建设,推动技术的不断进步和创新。同时,公司还积极探索新的应用场景和市场领域,为未来的发展奠定了坚实的基础。这些努力使得爱晟电子在电子行业中保持了持续的发展势头和竞争力。

问答坊 | AI 解惑

电视监控系统组成

闭路监控系统主要组成部分是:前端部分(产生图像的摄像机或成像装置),传输部分(图像的传输),控制部分,显示记录部分。如图所示。 1、 前端部分 CCTV的前端设备是直接完成现场图像捕捉功能的设备及其辅助设备,主要有一体化智能快球、固定 ...…

查看全部问答>

基于STM32的μC/OS Ⅱ移植例程

例程大小:1583K 例程说明: 1.改移植和模板工程不包括操作系统核ucosⅡ的源代码,如需使用请向操作系统的供应商联系或者网上下载免费的源代码。 2.本移植使用的是 ucosⅡ 2.83版本,需要在OS文件夹下添加的操作系统源代码包括如下文件: os_fla ...…

查看全部问答>

单片机外围电路设计

在用单片机设计的过程中,难免要进行一些外围电路设计。这里我收集了一本不错的单片机外围电路设计的电子书,特的拿出来和大家一起分享!!!!!!!!!…

查看全部问答>

请教我读一读这个密码锁程序

在网上找了个密码锁程序来学习,用KEIL编译,开始不能生成HEX文件,后来找到原因了,有些是数字0打成了字母O,有些是漏了冒号! 现在想问一下,这个程序应该怎样读?密码是如何设置的?刚学,搞不懂. org 0000h AJMP START ORG 0030H START:ACALL BP ...…

查看全部问答>

S3C2440+ADS+H-JTAG+AXD无法调试

在AXD中Load Image后无法正常加载,加载后的程序如下                __main        [0x00000000]   andeq    r0,r0,r0        ...…

查看全部问答>

片内flash和片外flash?

刚接触开发板, 不清楚什么是片内RAM和片外RAM,以及片内Flash和片外Flash. 请大家解释一下, 我用的是philips的板子. 难道LPC2214处理器内部也有ARM和Flash吗? …

查看全部问答>

【编程】请教磁盘数据如何擦除

最近需要开发一个擦除硬盘的工具,实现的功能就是将一整块硬盘挂到一台机器上,比如说是Windows系统的机器上,然后利用该工具将整块硬盘的数据清除,而且清除后不可以再恢复。并且这块硬盘不管它是在什么系统下用的硬盘(比如AIX、HP、SCO等等), ...…

查看全部问答>

做一个计数器、不会!提问

    受朋友所托帮他做个计数器,但是之前硬件方面的都没接触过,所以到这里来请教各位大侠,望不吝赐教,谢谢。 功能是这样的:有十条生产线,要统计每一条生产线上生产的产品个数(0-99),输入的方法就是按一下按钮,每按一次计数器值 ...…

查看全部问答>

大侠,能给个Finsh shell移植到stm32的例子吗

或者给个移植的文档也行啊,radio里的东西感觉有点乱啊,谢谢了…

查看全部问答>

关于ADC转换使用DMA的问题!

ADC配置为一次转换6个通道,使用DMA传送, SCAN位为0  CONT位为零.外部触发使用软件触发. 出现一个问题是,转换只能在最后一通道转换完成后产生DMA传送,前面5通道全部丢失.  SCAN位置1也一样!…

查看全部问答>