在服务器的运维管理中,硬盘数据的安全保障是至关重要的环节。想象一下,如果在电力供应突然中断的紧急情况下,硬盘正忙于大量的读写操作,这无疑会极大地增加硬盘受损的风险,对于存储的宝贵数据而言,这无疑是一场潜在的灾难。
鉴于此,决定引入一套UPS(不间断电源)系统,作为应对此类突发状况的解决方案。以下是我个人在实际操作过程中的一些心得与体会,欢迎大家就其中的不足之处提出宝贵意见,共同交流探讨。
需要特别强调的是,我的关注点主要集中在家庭服务器的搭建与优化上,而非构建NAS(网络附加存储)平台。
UPS工作流程简述:
市电断时,UPS转电瓶供电,并通过USB通知PVE迷你主机关机。关机后,UPS断电。
市电恢复时,UPS转市电供电,PVE迷你主机自动重启,系统及相关服务随之启动。
迷你主机
下面为设置迷你主机通电开机设置!
主机开机自启
1,启动主机后,按 DEL 进入 BIOS 设置
2,菜单选择Advanced,选择 【AMD CBS】,如图没有【AMD CBS】的话, 按CTRL + F1 开启隐藏菜单!
3,进入【Ac Power Loss Options】设置为 【Always On】
4,设置完成后,按【F4】,选择【Yes】确认保存退出
PVE设置
系统开机启动
主机启动后,自动启动操作系统。选择要启动的系统 – 选项 – 开机自启动
PVE自动关机
如市电突然断电,需要触发PVE的关机操作。PVE关机之前会自动触发虚拟机关机动作。
1,UPS会有一根USB数据线,USB插入主机,另一头插入UPS。
2,在PVE SHELL中执行下面内容
执行命令:lsusb 查看USB是否识别到UPS(下面Device 004)。
root@pve:~# lsusb
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 001 Device 004: ID 0463:ffff MGE UPS Systems UPS
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
3,安装 apcupsd
执行命令:apt install apcupsd -y
root@pve:~# apt install apcupsd -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
apcupsd-doc libusb-0.1-4
Suggested packages:
apcupsd-cgi
The following NEW packages will be installed:
apcupsd apcupsd-doc libusb-0.1-4
0 upgraded, 3 newly installed, 0 to remove and 56 not upgraded.
Need to get 670 kB of archives.
After this operation, 1,779 kB of additional disk space will be used.
Get:1 http://ftp.debian.org/debian bookworm/main amd64 libusb-0.1-4 amd64 2:0.1.12-32 [23.4 kB]
Get:2 http://ftp.debian.org/debian bookworm/main amd64 apcupsd amd64 3.14.14-3.1+b1 [256 kB]
Get:3 http://ftp.debian.org/debian bookworm/main amd64 apcupsd-doc all 3.14.14-3.1 [390 kB]
Fetched 670 kB in 13s (52.7 kB/s)
Selecting previously unselected package libusb-0.1-4:amd64.
(Reading database ... 45770 files and directories currently installed.)
Preparing to unpack .../libusb-0.1-4_2%3a0.1.12-32_amd64.deb ...
Unpacking libusb-0.1-4:amd64 (2:0.1.12-32) ...
Selecting previously unselected package apcupsd.
Preparing to unpack .../apcupsd_3.14.14-3.1+b1_amd64.deb ...
Unpacking apcupsd (3.14.14-3.1+b1) ...
Selecting previously unselected package apcupsd-doc.
Preparing to unpack .../apcupsd-doc_3.14.14-3.1_all.deb ...
Unpacking apcupsd-doc (3.14.14-3.1) ...
Setting up libusb-0.1-4:amd64 (2:0.1.12-32) ...
Setting up apcupsd-doc (3.14.14-3.1) ...
Setting up apcupsd (3.14.14-3.1+b1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/apcupsd.service → /lib/systemd/system/apcupsd.service.
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u6) ...
4,编辑配置文件 /etc/apcupsd/apcupsd.conf
按下面内容修改配置!
UPSCABLE usb
UPSTYPE usb
#*** 注释以下内容,能自动发现UPS
#DEVICE /dev/ttyS0
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
#UPS开始使用电池供电时延迟的秒数。在电池供电6秒后,apcupsd将开始响应电池事件。
ONBATTERYDELAY 6
#指定当电池电量降至40%时,apcupsd将触发关闭或其他预定义的操作(测试时可设置为95)。
BATTERYLEVEL 40
#指定UPS电池可持续供电的最小分钟数。超过10分钟的使用时间将触发关闭操作(测试时可设置为600)。
MINUTES 10
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 127.0.0.1
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
5,重启apcupsd
systemctl restart apcupsd
systemctl status apcupsd
6,设置apcupsd开机启动
systemctl enable apcupsd
7,查看apcupsd 日志
journalctl -u apcupsd -f
8,实时查看UPS情况
执行命令:apcaccess
: Warning: old configuration file found.
: Expected: "## apcupsd.conf v1.1 ##"
: Found: "UPSCABLE usb
"
: Please check new file format and
: modify accordingly the first line
: of config file.
: Processing config file anyway.
APC : 001,028,0660
DATE : 2024-09-10 23:54:18 +0800
HOSTNAME : pve
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : pve
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2024-09-10 23:04:07 +0800
MODEL : SANTAK TG-BOX
STATUS : ONLINE
LOADPCT : 9.0 Percent
BCHARGE : 91.0 Percent
TIMELEFT : 48.8 Minutes
MBATTCHG : 95 Percent
MINTIMEL : 600 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 230.0 Volts
DWAKE : -1 Seconds
LOTRANS : 184.0 Volts
HITRANS : 264.0 Volts
ALARMDEL : 30 Seconds
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000008
SERIALNO : Blank
END APC : 2024-09-10 23:55:07 +0800
总结:
博主经过实际使用,分享了几点关于是否需为服务器配置UPS的建议:
- 考虑环境温度:UPS适宜工作温度为-15°C至40°C,高温环境下可能需要额外降温设备。
- 市电输入端配置:若UPS接入端装有漏电保护器,可能会引发跳闸,建议改用空气开关。
- 硬盘类型:机械硬盘在突然断电时更易受损,需特别注意。
- 磁盘IO活动:若服务器正在进行高频磁盘读写(如复制大文件),断电风险更高。
- 数据重要性:评估数据的价值,重要数据需更高保障。
- 整体功耗:UPS日常功耗虽小(约5W),但整体系统(包括UPS、迷你主机、CPE、路由器、交换机)每天功耗约1度电,平均40-60W。
暂无评论内容