ARM 中可用性集使用的注意事项
Azure 目前有两种部署模型:经典部署模型 (ASM) 和资源管理器 (ARM)。如果您之前使用过 ASM 模式下的可用性集,那么很可能在使用 ARM 模式下的可用性集时,会遇到一些问题或者疑惑。这里就 ARM 中可用性集使用的一些常见问题做个简单回答。
ARM 中,虚拟机的整个生命周期都不能更改其可用性集设置。
在经典模式中,只需要经过停止分配再启动虚拟机,就可以将虚拟机加入,移除或者更换可用性集。 而在 ARM 模式中,在查看虚拟机可用性集是,您会注意到如下提示:

什么意思呢?就是说:
如果在创建虚拟机的时候,如果没有指定可用性集,那么虚拟机完成部署后,是不能将该虚拟机加入到可用性集中的。
如果虚拟机已经在可用性集中,您需要给它换个可用性集,或者将其移除可用性集,这也是不能的。
如果您的确需要更改该虚拟机的可用性集设置,唯一的方法,就是通过删除虚拟机保留磁盘,并重建虚拟机的方式,指定可用性集。
可用性集的设置也是只能在创建的时候指定。
创建可用性集时,您可以自定义容错域和更新域的数量。但在创建完成后,这些设置就不能再更改了。
容错域:范围 1-3,默认值是 3。在物理上,一个域中的所有虚拟机和物理机,会共享同样的电源和网络资源。
更新域:范围 1-20, 默认值是 5。这是一个逻辑的概念,后台在执行计划内维护时,所有更新域中一次只会有一个域在进行维护。可用性集中虚拟机操作常见错误 1 :
由于后台部署失败,造成虚拟机创建失败。这些失败的虚拟机因放在可用性集中,删除也遇到问题。删除单个虚拟机,报错虚拟机分配失败;通过删除整个可用性集,报错须首先删除虚拟机。

解决方法 :
将可用性集下的所有虚拟机,都执行一遍删除操作,无论成功与否。然后再删除该可用性集。
原因:通过对每台虚拟机都执行删除操作,即使未能成功删除,也会将虚拟机的状态标记为 “ToBeDelete”。此时再删除可用性集,可用性集在验证虚拟机状态时,发现所有虚拟机都是可以被删除的,则会将虚拟机连同可用性集一起删除。可用性集中虚拟机操作常见错误 2 :
在对可用性集中的虚拟机进行一些管理平面的操作时,你可能会遇到如下错误。
如更改诊断设置存储账号/删除虚拟机:
或者向该可用性集中创建新虚拟机 :

而实际上,您操作的虚拟机可能并没有使用这些存储账号。
这是由于在对可用性集中的虚拟机进行管理操作时,可用性集会验证其所有虚拟机的 OS Profile,保证信息的一致性。如果任何一台虚拟机引用的诊断存储账号不存在了,该验证过程失败,则操作无法继续进行,该虚拟机状态会被同步标记为失败。
解决方法 :
找到被删除的存储账号是被哪个虚拟机在使用。
通过
Get-AzureRmVM -ResourceGroupName <resource_name> -Name <vm_name>查看 BootDiagnostics 和 Diagnostic Extensions 的存储账号设置。
禁用该虚拟机的诊断存储账号即可。如果该可用性集中同时有多个诊断存储账号被误删,则方法 1 因一个虚拟机设置等待另一个虚拟机设置先修正而造成死锁。在这种情况下,需要找到所有被误删的诊断存储账号,重建之。
Note
前端显示存储账号重建成功后,后台各资源提供程序间的同步需要一段时间,可能发生因同步延迟造成的存储账号还是找不到的问题。请在重建好所有存储账号,大约一至一个半小时后,再次尝试管理操作。
同时,建议客户在使用可用性集时,提前进行规划,比如使用有意义的虚拟机和存储账号命名,将诊断设置放在同一个单独的存储账号中等,避免存储账号被误删的情况发生。 立即访问http://market.azure.cn
ARM 中可用性集使用的注意事项的更多相关文章
- 【虚拟机-可用性集】ARM 中可用性集使用的注意事项
Azure 目前有两种部署模型:经典部署模型 (ASM) 和资源管理器 (ARM).如果您之前使用过 ASM 模式下的可用性集,那么很可能在使用 ARM 模式下的可用性集时,会遇到一些问题或者疑惑.这 ...
- Azure 负载均衡和可用性集
首先要2台以上的虚拟机,一开始我找了好久都没找到如何在一个云服务里添加多个虚拟机. 因为我使用的是快速创建,快速创建的界面是要新建一个云服务的,如果你输入现有的云服务名字,它会提示你重名了. 你要用[ ...
- 更改 Windows VM 的可用性集
以下步骤说明如何使用 Azure PowerShell 来更改 VM 的可用性集. 只能在创建 VM 时将 VM 添加到可用性集. 如果要更改可用性集,必须将虚拟机删除,并重新创建虚拟机. 使用 Po ...
- ARM 中必须明白的几个概念
文章具体介绍了关于ARM的22个常用概念. 1.ARM中一些常见英文缩写解释 MSB:最高有效位: LSB:最低有效位: AHB:先进的高性能总线: VPB:连接片内外设功能的VLSI外设总线: EM ...
- 重新创建redis集群的注意事项
一.重新创建redis集群的注意事项 1.将每个节点下aof.rdb.nodes.conf本地备份文件删除: 2.127.0.0.1:7001> flushdb #清空当前数据库(这一步可以省略 ...
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- 如何在ARM中创建Express Route
很早之前就想试试Azure的express route,但是一直没有找到合适的机会,正好有个客户需要上express route,所以最近先自己研究研究,防止在做poc的时候耗费更多时间,本次场景我们 ...
- 如何将已部署在ASM的资源迁移到ARM中
使用过Azure的读者都知道,Azure向客户提供了两个管理portal,一个是ASM,一个是ARM,虽然Azure官方没有宣布说淘汰ASM,两个portal可能会在很长的一段时间共存,但是考虑到AR ...
- Swift基础--Swift中的分类以及在分类中扩展init方法的注意事项
Swift中的分类 1.创建一个空的swift文件 2.关键字extension,格式: extension 要扩展的类名 {} extension UIButton { } Swift中扩展init ...
随机推荐
- python学习,day2:列表的复制
主要涉及列表的潜复制(第二层受后面修改的影响)和深复制(不受后面修改的影响) 代码如下 # coding=utf-8 # Author: RyAn Bi import copy names = ['A ...
- python学习,day2:列表的使用,增删改合并等
# coding=utf-8 # Author: RyAn Bi names = ['A','B','C','D'] print(names) print(names[0]) #从0开始记录 prin ...
- 洛谷P2501 bzoj1049 [HAOI2006]数字序列
题目链接 bzoj 洛谷 题解 第一问: 假如 \(i < j\) 如果 \(j\)能从\(i\)转移过来 显然中间空隙必须足够 例如:\(50\) \(53\) \(53\) \(52\) 就 ...
- linux环境下安装python
在linux系统中安装python解释器 打开官网www.python.org 选择合适的版本进行下载 将下载好的压缩包拖入Xshell中,依次输入一下命令即可 tar xf Python-.tar. ...
- EntityFramework 并发处理
转载自:http://www.cnblogs.com/TianFang/p/4439215.html 什么是并发? 并发分悲观并发和乐观并发. 悲观并发:比如有两个用户A,B,同时登录系统修改一个文档 ...
- 3---Django rest framework源码分析(3)----节流
Django rest framework源码分析(3)----节流 目录 添加节流 自定义节流的方法 限制60s内只能访问3次 (1)API文件夹下面新建throttle.py,代码如下: # u ...
- Qt客户端阿里云服上传文件
整体原理: 阿里云提供了c程序上传文件到阿里云服务器的sdk工具包,将这个工具包继承在自己的客户端,调用接口即可实现上传文件. 前期准备: 1.阿里云c程序客户端的sdk,下载地址:https://h ...
- 如何透过上层div点击下层的元素解决方法
一.问题描述 笔者是在些一个登录界面时遇到这个问题的,需求是点击登录按钮出现登录悬浮框,初始化时登录悬浮框是display:none的,但笔者发现登录框那一块区域的input框无法响应点击时间,也无法 ...
- 路由器中带宽设置(Bandwidth) 20MHZ/40MHZ
原文是英文的,在这里:http://routerguide.net/setting-up-20-mhz-or-40-mhz-bandwidth-how-to-improve-wifi-network- ...
- 使用 Ninject
在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来 ...