FreeBSD确定重启是否由于掉电

我们正在运行FreeNAS(build立在FreeBSD上)来运行我们的数据存储系统。 它在APC Smart-UPS 750VA X上运行。

有几次,我已经注意到服务器被我们的监控系统closures的事实。 几分钟后,服务器恢复正常,没有问题。

当我跑完last我可以看到服务器刚刚启动,并检查/var/log/messages我可以看到它已经通过所有的启动过程,但是我看不到任何恐慌或任何closures它的原因。 从字面上看,它从输出引导信息变得很好。

所以这导致我想知道是否停电导致了这种情况的发生,但我怎么能确定这是事实? 我想为APC UPS获得一个交互式的卡,并将其连接到networking将是一种方式…任何其他方式我发现现在为什么发生这种情况?

我认为有几个明显的解决scheme来发现更多:

  • 将其他设备连接到同一个UPS输出。 如果两个设备同时重新启动,这将是电源问题的证据。
  • 连接一些设备,可以监视UPS输出的实际电压输出,并logging随时间变化的情况。

你的机器无法确切知道停电时发生了什么:那些电子就停止显示。 UPS可能知道(如果你失去了电力,而不是一个片状电源或什么的),但我不认为你有很多的希望,服务器能够告诉你。

FreeBSD有一个名为sysutils/apcupsd的伟大端口,用于与APC smart-UPS进行交互。

将您的UPS与USB电缆连接到主机。 编辑/usr/local/etc/apcupsd/apcupsd.conf:

 ### UPSCABLE usb UPSTYPE usb DEVICE POLLTIME 60 LOCKFILE /var/spool/lock BATTERYLEVEL 15 MINUTES 10 TIMEOUT 0 ANNOY 300 ANNOYDELAY 60 KILLDELAY 120 UPSCLASS standalone STATTIME 60 STATFILE /var/log/apcupsd.status ### 

这个configuration意味着下一个行为:

  • 当电力损失less于ANNOYDELAY秒时,UPS只接通电池,没有信号

  • ANNOYDELAY秒后UPS开始发出哔哔声。

  • 当(电平低于BATTERYLEVEL百分比)OR(估计的电池时间小于MINUTES)时, apcupsd将等待KILLDELAY秒并开始shutdown -h now处理。

  • 之后,UPS将closures负载并进入睡眠状态。

  • 当电源回复时,UPS上电,如果configuration为断电后启动,则正常启动,周期结束。

我不觉得你已经完成了最低限度的故障排除。 由于所提供的恐慌细节,这已经成为一个不好的问题。

  • 也许你的服务器崩溃了。
  • 你使用什么types的服务器硬件?
  • 你有这个服务器的带外pipe理吗? ( 国际劳工组织,IPMI,DRAC )如果是这样,它说什么?
  • 这种情况发生的频率如何?
  • 在同一个房间里的任何其他设备是否重置? 交换机? 其他服务器? 还有什么影响?
  • 您的监控系统位于服务器的哪个位置,因为它显然没有问题?

明显的事情要做…

  • 将APC黑色串行电缆连接到UPS和FreeNAS服务器。
  • 看看你的apcupsd服务的日志。 ( 在Linux中为/var/log/serviceapcupsd.events

(简单)

 2014-10-27 05:18:35 -0400 Power failure. 2014-10-27 05:18:38 -0400 Power is back. UPS running on mains. 2014-10-27 13:20:22 -0400 Power failure. 2014-10-27 13:20:25 -0400 Power is back. UPS running on mains. 2014-10-29 08:00:51 -0400 Power failure. 2014-10-29 08:00:54 -0400 Power is back. UPS running on mains. 2014-10-29 08:02:13 -0400 Power failure. 2014-10-29 08:02:16 -0400 Power is back. UPS running on mains. 2014-11-01 10:05:41 -0400 Power failure. 2014-11-01 10:05:44 -0400 Power is back. UPS running on mains. 
  • 检查你的电池状态。 他们持续3 – 5年。 如果年龄较大,则不会将您的电源负载转换为电池电量。
  • 检查UPS对电源波动的敏感度。 他们默认为高。 我通常在糟糕的环境中将其改为LOW。
  • 你的FreeNAS服务器有双电源吗? ( 如果没有的话,它应该 )将一个插入墙上以绕过UPS并消除UPS作为原因。 这也可以帮助logging服务器是否重新启动。
  • 升级您的UPS固件。
  • 升级服务器的固件。
  • 致电APC支持。

(也容易)

 [root@General /var/log]# apcaccess status localhost:3551 APC : 001,052,1316 DATE : 2014-11-17 08:24:55 -0500 HOSTNAME : General VERSION : 3.14.10 (13 September 2011) redhat UPSNAME : UPS_IDEN CABLE : Custom Cable Smart DRIVER : APC Smart UPS (any) UPSMODE : Stand Alone STARTTIME: 2014-09-24 14:14:05 -0400 MODEL : SMART-UPS 2200 RM XL STATUS : ONLINE LOWBATT LINEV : 119.6 Volts LOADPCT : 60.8 Percent Load Capacity BCHARGE : 100.0 Percent TIMELEFT : 3.0 Minutes MBATTCHG : 5 Percent MINTIMEL : 3 Minutes MAXTIME : 0 Seconds MAXLINEV : 120.9 Volts MINLINEV : 118.9 Volts OUTPUTV : 119.6 Volts SENSE : High DWAKE : 000 Seconds DSHUTD : 180 Seconds DLOWBATT : 02 Minutes LOTRANS : 103.0 Volts HITRANS : 132.0 Volts RETPCT : 000.0 Percent ITEMP : 44.5 C Internal ALARMDEL : 5 seconds BATTV : 56.1 Volts LINEFREQ : 60.0 Hz LASTXFER : No transfers since turnon NUMXFERS : 11 XONBATT : 2014-11-15 09:05:48 -0500 TONBATT : 0 seconds CUMONBATT: 44 seconds XOFFBATT : 2014-11-15 09:05:52 -0500 SELFTEST : NO STESTI : 336 STATFLAG : 0x07000048 Status Flag DIPSW : 0x00 Dip Switch REG1 : 0x00 Register 1 REG2 : 0x00 Register 2 REG3 : 0x00 Register 3 MANDATE : 11/05/05 SERIALNO : QS0545111716 BATTDATE : 11/05/05 NOMOUTV : 115 Volts NOMBATTV : 48.0 Volts EXTBATTS : 0 FIRMWARE : 83.14.D END APC : 2014-11-17 08:25:04 -0500 

将日志保存到磁盘。 您可以通过此util改变日志path到磁盘或手动改变path。 在下一次重启时,你可以find一个原因。