【虚拟机-可用性集】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 模式下的可用性集时,会遇到一些问题或者疑惑.这 ...
- 在Spark集群中,集群的节点个数、RDD分区个数、cpu内核个数三者与并行度的关系
梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数.Executor数.core数目的关系. 输入可能以多个文件的形式存储在H ...
- Windows Cluster 在群集管理器下 集群或可用性组 都不显示的问题
作为一个IT成员,特别是偏支持的.很多时候就是和各种异常打交道,总会碰到一些奇奇怪怪的问题.很多时候,可能是一个小小的异常都需要花费很长时间去解决. SQL Server AlwaysOn 是建立在W ...
- Linux中Consul集群部署
分配三台虚拟机: 192.168.5.125 192.168.5.128 192.168.5.129 在每台虚拟机上创建 /usr/consul 文件件 命令: mkdir /usr/consul ...
- Mongodb中Sharding集群
随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成 ...
- 用Go造轮子-管理集群中的配置文件
写在前面 最近一年来,我都在做公司的RTB广告系统,包括SSP曝光服务,ADX服务和DSP系统.因为是第一次在公司用Go语言实现这么一个大的系统,中间因为各种原因造了很多轮子.现在稍微有点时间,觉着有 ...
- Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统
前言 我们知道HDFS集群中,所有的文件都是存放在DN的数据块中的.那我们该怎么去查看数据块的相关属性的呢?这就是我今天分享的内容了 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 我 ...
- hadoop 集群中数据块的副本存放策略
HDFS采用一种称为机架感知(rack-aware)的策略来改进数据的可靠性.可用性和网络带宽的利用率.目前实现的副本存放策略只是在这个方向上的第一步.实现这个策略的短期目标是验证它在生产环境下的有效 ...
- docker swarm英文文档学习-8-在集群中部署服务
Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运 ...
随机推荐
- 如何用python最快的获取大文件的最后几行
工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断.那么,这种情况下我们应该怎么做呢? 1)常规方法:从前往后依次读取 步骤:open打开日志文件. ...
- 用c++STL实现进程管理
项目要求: 设计一个允许n个进程并发运行的进程管理模拟系统.该系统包括有简单的进程控制,其进程调度采用时间片轮转算法.每个进程用一个PCB表示,其内容根据具体情况设置.各进程之间有一定的同步关系(可选 ...
- Hashtable源码剖析
Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. Hashtabl ...
- ue4 改c++类名
http://blog.csdn.net/chinahaerbin/article/details/50855135
- Fire (poj 2152 树形dp)
Fire (poj 2152 树形dp) 给定一棵n个结点的树(1<n<=1000).现在要选择某些点,使得整棵树都被覆盖到.当选择第i个点的时候,可以覆盖和它距离在d[i]之内的结点,同 ...
- dual 视图模拟 Oracle
CREATE OR REPLACE VIEW dual ASSELECT NULL::"unknown"WHERE 1 = 1;
- vue中修改swiper样式
问题 vue单文件组件中无法修改swiper样式. 解决 1,单文件组件中:新增一个style 不加scoped 让它最终成为全局样式.只在其中操作swiper的样式. <style lang= ...
- JS高级学习历程-7
[面向(基于)对象] 1 创建对象 在php里边,需要先找到一个类别,在通过类创建具体对象 在javascript里边,可以直接创建具体对象,后期可以再给对象丰富许多属性或方法. 1. 字面量方式创建 ...
- 字典排序permutation
理论 C++ 中的next_permutation 一般作为正序全排列的使用规则,其实这个就是正序字典排序的实现. 比如我们要对 列表 [1,2,3] 做full permutation 一般使用递 ...
- BZOJ 1036 && Luogu P2590 [ZJOI2008]树的统计 树链剖分
链剖裸题...你值得一做~ 用线段树多维护一个mx,少写一个tag #include<cstdio> #include<iostream> #define ll long lo ...