【虚拟机-可用性集】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来维护该状态.该状态包括以下信息(但不限于): 应该运 ...
随机推荐
- <正则吃饺子> :关于微信支付的简单总结说明(二)
关于微信退款 一.官方文档 申请退款:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_4&index=6 二.退款流程 ...
- Excel中导入到oracle使用merge into 差异性更新数据库
merge into temp1 ausing (select ID from (Select ID from temp1 ...
- why std::stack has separate top() and pop()
SGI explanation: http://www.sgi.com/tech/stl/stack.html One might wonder why pop() returns void, ins ...
- C#API接口调试工具
自从去年软件界网站开发推崇前后端分离,我们公司也在进行转行行,从原先的前端架构,后端架构,数据库搭建一肩挑的模式也逐渐转型为前后端分离,大量招收前端开发人员,原来的人员也转型为专职的后端开发,这样的变 ...
- 利用memoize缓存到Redis出现多个参数同一个结果
在为后端输出加入Redis缓存的过程中出现的问题. 在我利用Flask-restful架构的后端中,理所当然的利用装饰器marshal_with对我的返回数据进行格式化输出. 举个最简单的例子: fr ...
- cf822C(贪心)
题目链接: http://codeforces.com/problemset/problem/822/C 题意: 有n条线段(n<=2e5) 每条线段有左端点li,右端点ri,价值cost(1 ...
- uoj#308. 【UNR #2】UOJ拯救计划(并查集)
传送门 如果把答案写出来,就是\(\sum_{i=1}^ki!\times {k\choose i}\times f_i\),其中\(f_i\)为选\(i\)种颜色方案 发现如果\(i\geq 3\) ...
- django 数据库建表流程,与表结构
目录 配置数据库 创建表结构 多表关连的设置 自创建关联表方法 自建表 和 ManyToManyField 联合使用 配置数据库 在Django项目的settings.py文件中,配置数据库连接信息: ...
- jvm 默认字符集
最近在读取第三方上传的文件时,遇到一个问题,就是采用默认字符集读取,发现个别中文乱码,找到乱码的字,发现是生僻字:碶. 由于在window是环境下做的测试,并没有报错,但是在linux服务器上执行,发 ...
- 微信小程序采坑之上拉触底加载更多和下拉刷新
小程序中加载更多数据一般都是触底刷新 有自带的函数: onReachBottom: function (){} 但是在使用时触发完全没有反应,后来尝试给外层加了一个高度,解决问题 仔细想想也是,没有设 ...