草庐IT

【vsphere高可用】虚拟机的重置和重启

hongdi 2023-06-22 原文

重置和重启不一样,重置指的是重新引导客户机操作系统

一、重新启动虚拟机要考虑的因素:

发生故障后,首选主机会通过考虑下列因素选择一个活动的从属主机用于启动故障主机上的虚拟机:

1、文件访问性。活动群集中的主机要能访问虚拟机文件;

2、虚拟机与主机的兼容性。包括任何所需虚拟机-主机关联性规则的影响。

3、资源预留。至少有一个主机具有足够的未预留容量(未预留他用的资源)以满足虚拟机的内存开销及任何资源预留。考虑4种类型的预留:cpu、内存、v NIC和虚拟闪存(此外必须要有足够的网络端口)。

4、主机限制。一个虚拟机只能放置在一台主机上。

5、功能限制。包括已设置需要vsphere ha强制执行“虚拟机-虚拟机反关联性规则(不能同时存在)”的高级选项;包括为容错虚拟机配置的任何每主机限制。

如果没有任何主机满足上述因素,则首选主机会发布一个时间指出没有足够的资源让vsphere ha来启动虚拟机,但会在群集状况发生更改时进行重试(重新选择)。

二、虚拟机重新启动次数限制

如果vsphere ha主代理重新启动虚拟机失败,将会在延迟一段时间后重试。Vsphere ha的最大重启次数默认是6次,但并不是所有的重启失败都根据此最大值来计算:

1、默认情况根据最大值重启:当重启失败后,主代理会在上次尝试后所实施延迟的两倍时间后进行重试,最少延迟1分钟,最多延迟30分钟。例如,延迟时间设为1分钟且在t=0开始尝试,则重试的时间点是t=1,t=3,t=7,t=15,t=30;

2、不同重启失败的情况,具有不同的延迟间隔。例如当选择重新启动虚拟机的主机在主代理做出选择后失去对某个虚拟机数据存储的访问权限时,会在默认延迟2分钟后重试,最大次数限制值为6。

3、有些情况下不会进行计数。例如,如果要重新启动虚拟机的主机在主代理发出重新启动请求之前发生故障,则会在2分钟后重试,但不会进行计数。

三、如何确定虚拟机需要重置?

“虚拟机监控”启用后,虚拟机监控服务(使用vmware tools)通过检查正在客户机内运行的vmware tools进程的常规检测信号和i/0活动来评估群集内的每个虚拟机是否正在运行。

如果没有收到检测信号或i/o活动,则有可能客户机操作系统出现故障,或为分配给vmware tools用来完成任务的时间。有时,仍然工作的虚拟机或应用程序会停止发送检测信号。为了避免不必要的重置,虚拟机监控服务还要监控虚拟机的i/o活动,如果故障时间间隔内未收到任何检测信号,则会检查i/o统计间隔(群集级别属性)。i/o统计间隔确定在前两分钟(默认,120s,可以通过高级选项das.iostatsinterval设置)内是否已发生与虚拟机有关的任何磁盘或网络活动,如果没有则重置虚拟机。

可以通过监控敏感度来控制虚拟机从出现故障到重置的时间间隔,和重置失败后再重试的时间间隔

未了避免因非瞬态错误而反复充值虚拟机。默认情况下,在某个可配置的时间间隔内将对虚拟机仅重置三次(可以配置最大重置次数)。

注意:当关闭虚拟机电源再打开虚拟机电源时,或使用vmotion将虚拟机迁移到其他主机时,重置统计信息将被清除,这会导致虚拟机上的客户机操作系统重新引导(不同于虚拟机电源状况发生改变的“重新启动”)。

如果虚拟机存在数据存储访问故障(全部路径异常或永久设备丢失),则虚拟机监控服务会挂起该虚拟机,直到故障得到排除。

有关【vsphere高可用】虚拟机的重置和重启的更多相关文章

  1. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  2. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  3. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  4. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  5. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  6. ruby-on-rails - self 在 Rails 模型中的值(value)是什么?为什么没有明显的实例方法可用? - 2

    我的rails3.1.6应用程序中有一个自定义访问器方法,它为一个属性分配一个值,即使该值不存在。my_attr属性是一个序列化的哈希,除非为空白,否则应与给定值合并指定了值,在这种情况下,它将当前值设置为空值。(添加了检查以确保值是它们应该的值,但为简洁起见被删除,因为它们不是我的问题的一部分。)我的setter定义为:defmy_attr=(new_val)cur_val=read_attribute(:my_attr)#storecurrentvalue#makesureweareworkingwithahash,andresetvalueifablankvalueisgiven

  7. ruby - 输出液体模板中的可用对象和属性 - 2

    有没有办法在liquidtemplate中输出(用于调试/信息目的)可用对象和对象属性??也就是说,假设我正在使用jekyll站点生成工具,并且我在我的index.html模板中(据我所知,这是一个液体模板)。它可能看起来像这样{%forpostinsite.posts%}{{post.date|date_to_string}}»{{post.title}}{%endfor%}是否有任何我可以使用的模板标签会告诉我/输出名为post的变量在此模板(以及其他模板)中可用。此外,是否有任何模板标签可以告诉我post对象具有键date、title、url、摘录、永久链接等

  8. ruby - 是否可以在 Unicorn master 完成重启时发送通知? - 2

    我在nginx+unicorn后面运行一系列Rails/Sinatra应用程序,零停机部署。我喜欢这个设置,但Unicorn需要一段时间才能完成重新启动,所以我想在完成时发送某种通知。我能在Unicorn文档中找到的唯一回调与workerfork相关,但我认为这些回调对此不起作用。这是我从赏金中寻找的东西:老unicorn主人启动新主人,然后新主人开始它的worker,然后旧主人停止它的worker并让新主人接管。我想在交接完成后执行一些ruby​​代码。理想情况下,我不想为此实现任何复杂的流程监控。如果这是唯一的方法,那就这样吧。但在走那条路之前,我正在寻找更简单的选择。

  9. ruby-on-rails - 是否有类似 'with_indifferent_access' 的数组可用于包含? - 2

    我尝试在我的应用中只使用:symbols作为关键词。我尝试在:symbol=>logic或string=>UI/languagespecific之间做出严格的决定但我也得到了每个JSON的一些“值”(即选项等),因为JSON中没有:symbols,所以我调用的所有哈希都具有“with_indifferent_access”属性。但是:数组是否有相同的东西?像那样a=['std','elliptic',:cubic].with_indifferent_accessa.include?:std=>true?编辑:将rails添加到标签 最佳答案

  10. ruby-on-rails - Rails 验证虚拟属性 - 2

    我这个模型:classBunny每当我提交一个表单来创建这个模型时,我都会收到以下错误:#的未定义方法“number_before_type_cast” 最佳答案 我通过将此方法添加到我的Bunny模型中解决了这个问题:defnumber_before_type_castnumberend我不喜欢它,但我想在有人发布更好的解决方案之前它会起作用。 关于ruby-on-rails-Rails验证虚拟属性,我们在StackOverflow上找到一个类似的问题: h

随机推荐