找回密码
 加入我们
搜索
      
查看: 11938|回复: 43

[软件] ESXi 服务器如何使用普通后备式 UPS 实现停电自动关机?

[复制链接]
发表于 2024-5-2 16:40 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-5-2 16:46 | 显示全部楼层
ESXI下安装的什么虚拟机?如果是truenas或者群晖可以再虚拟机里设置断电后关闭宿主机,网上有教程。
发表于 2024-5-2 16:51 | 显示全部楼层
直接用定期Ping的方案呗,周期性的ping一下能有啥资源消耗,你实在担心,把延迟加长呗
 楼主| 发表于 2024-5-2 17:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-5-2 17:50 | 显示全部楼层
ping网关或者最近的一级交换机,虽然有误报风险,但及时关机还是没问题的
发表于 2024-5-2 19:14 来自手机 | 显示全部楼层
有usb口的ups可以实现吗
发表于 2024-5-2 19:42 | 显示全部楼层
本帖最后由 monkeylab 于 2024-5-2 19:43 编辑
zhuabafish 发表于 2024-5-2 19:14
有usb口的ups可以实现吗


那办法就很多了,比如esxi装NutClient,虚拟个Debian或者黑群晖做NutServer连USB口。
发表于 2024-5-2 19:50 | 显示全部楼层
单机的ESXI偶尔断电崩溃的风险没那么高。
发表于 2024-5-2 20:16 | 显示全部楼层
monkeylab 发表于 2024-5-2 19:42
那办法就很多了,比如esxi装NutClient,虚拟个Debian或者黑群晖做NutServer连USB口。 ...

好的谢谢
发表于 2024-5-2 20:45 | 显示全部楼层
ESXi 没那么容易崩,停电关机了,下次正常启动就好。
发表于 2024-5-2 20:48 | 显示全部楼层
为了避免UPS续航不足,需要烧脑解决自动关机问题。

我的措施是
bbtte.jpg

让续航足够
 楼主| 发表于 2024-5-2 21:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-5-2 21:29 | 显示全部楼层
红色狂想 发表于 2024-5-2 21:26
延迟也不能搞得太长了,我这个老UPS才1KVA/600W,两节12V/9Ah的电池也已经进入老化期了,带两台机器估计 ...

两节12V/9Ah的电池也已经进入老化期了,可以安排更换了
 楼主| 发表于 2024-5-3 13:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2024-5-3 16:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-5-3 19:56 | 显示全部楼层
本帖最后由 闲痴 于 2024-5-3 20:00 编辑
红色狂想 发表于 2024-5-3 16:15
ping最近的主交换机的话返回的TTL=255,ping主路由返回的TTL=64,这种情况ping哪个设备效率最高呀?如果 ...


        换我个人习惯,应该是参照python排版,把小功能上下加空行,嵌套的部分全部缩进,ping的部分写成函数同时ping多个地址,然后给返回。想要易读就多写注释,格式每个人都有不同习惯
        另外现在比较少写bash了,我没理解错的话,你这是三分钟检查一次吧,每次ping一个包,有问题就间隔三分钟在ping一个包。感觉这里有点问题,第一,只ping一个包更容易受网络波动影响,建议每次发四个只要有通过的就正常;第二,三分钟间隔太长了,如果一轮检查刚结束就出问题,那意味着要六分钟后才能反应过来,ping基本可以认为没有消耗,你就10秒ping一次都没问题,发现有问题就连续ping一分钟(或你认为ups能供安全供电的时间,留出关机余量)不恢复就关机,成功不需要日志,有波动才需要;第三,你这里的一旦因为网络波动导致跳出循环开始关机前检测,那么恢复后是不会回到循环的,这样会导致断掉保护失效,建议把判断也放到循环内部,干脆写成函数形式去调用就行了,确保不会因为意外情况丢保护。
        如果方便的话,可以再写一个守护脚本,就负责检测这个脚本是否在运行,不运行就自动拉起,甚至可以多个守护互相拉起,取决于你对意外的接受能力
发表于 2024-5-3 20:21 | 显示全部楼层
红色狂想 发表于 2024-5-3 16:15
ping最近的主交换机的话返回的TTL=255,ping主路由返回的TTL=64,这种情况ping哪个设备效率最高呀?如果 ...



如图
发表于 2024-5-3 20:25 | 显示全部楼层
所有的无直接通讯的关机,基本都是PING网关+或交换机 实现
1,ESXI中WINDOWS虚拟机设置BAT脚本PING,然后通过PINK +SSH命令关机
2,ESXI中内置脚本设置守护进程

以前用的第1中,后来用第2种
我单位是PING 网关 核心交换机 AP ,3个设备,同时不通才会关机
发表于 2024-5-3 20:25 来自手机 | 显示全部楼层
红色狂想 发表于 2024-5-2 21:26
延迟也不能搞得太长了,我这个老UPS才1KVA/600W,两节12V/9Ah的电池也已经进入老化期了,带两台机器估计 ...

就算一秒一个ping,负载对Gen9来说连一根牛毛都算不上吧?
 楼主| 发表于 2024-5-3 21:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-5-3 21:34 | 显示全部楼层
红色狂想 发表于 2024-5-3 21:18
我不是担心ping会消耗CPU资源,而是那个while…do…done循环体不停的运行会不会消耗资源 ...

合理配置sleep就没问题,ping本身也是等待io为主
 楼主| 发表于 2024-5-3 22:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2024-5-3 22:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-5-3 22:43 来自手机 | 显示全部楼层
我觉得不要把简单的事情复杂化,别人推荐的做法,肯定也是经过他的验证
而且既然是临时用用的,就果断接受临时方案的小问题
发表于 2024-5-3 22:45 | 显示全部楼层
本帖最后由 闲痴 于 2024-5-3 22:47 编辑
红色狂想 发表于 2024-5-3 22:19
这个停电自动关机脚本示例我是参考的这篇文章,LINUX、ESXI如何使用普通的UPS做到断电自动关机,他有守护 ...


先用伪代码或者流程图搞清楚功能逻辑,然后直接学bash/python去实现,讲道理反正玩服务器迟早得学的,基本的运维都没法搞后面会很难的,中文搜索的材料也是你抄我我抄你,有问题的太多了,多看官方文档,类unix系统虽然组件各有不同,但原则都是一致的
光你发的这个,用corn了还用守护进程就是多此一举,双守护互相拉起完事,或者corn直接执行ping检测写入缓存文件这样可以不需要后台

localtime是用来配置时区的
发表于 2024-5-3 22:46 | 显示全部楼层
本帖最后由 tide~ 于 2024-5-3 22:49 编辑

市电回路接到一个继电器线圈上,断电后触点会出现ON/OFF状态变化(实现一个强电到弱电/无源触点的转换),买个4-8路开关量输入模块USB接口(30元起),装上驱动,电脑这边不就能读到4-8路的0/1状态了嘛,然后触发直接关机、延时关机指令(也可以再用个延时继电器当计时器)就行了;
这在工控行业太司空见惯了
 楼主| 发表于 2024-5-3 22:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2024-5-4 16:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2024-5-4 16:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2024-5-4 16:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-6-15 03:42 , Processed in 0.014420 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表