家里装了NAS、私有云或者自建服务器,谁都不想半夜断个电、死个机,第二天发现相册传了一半、下载任务全废。其实通过合理的服务配置高可用方案,普通家庭也能让自家网络服务稳得像运营商。
什么是高可用?简单说就是别单点故障
比如你只有一台树莓派跑下载任务,它一关机,整个服务就停了。高可用的核心思路是:当一台设备出问题时,另一台能立刻顶上。这不一定要花大钱买企业设备,用点技巧就能实现。
双设备热备:主从切换不掉链子
拿常见的家庭NAS举例,可以准备两台低功耗主机,一台作为主NAS,另一台待命。通过Keepalived这类工具,给它们分配一个虚拟IP(VIP)。平时所有请求走这个VIP,指向主机。一旦主机宕机,备用机马上接管VIP,服务几乎无感切换。
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.1.100
}
}
上面这段配置放在主设备上,备用机把priority改成90,interface根据实际网卡调整。只要网络通,VIP就能漂移。手机连家里的SMB共享时,始终连192.168.1.100,不用管背后是谁在干活。
服务监控不能少,自动拉起来才安心
有时候不是机器死机,而是某个服务自己挂了。比如Transmission下载程序崩溃了,但系统还在跑。这时候可以用systemd加个守护:
[Unit]
Description=Transmission Daemon
After=network.target
[Service]
User=transmission
ExecStart=/usr/bin/transmission-daemon -f --log-error
Restart=always
[Install]
WantedBy=multi-user.target
关键在Restart=always这一行,只要进程退出,系统就会自动重启服务。比手动登录查看强太多。
存储也得有备份,别等硬盘坏了才后悔
高可用不只是服务不停,数据也不能丢。RAID1是最简单的方案,两块硬盘镜像存储,坏一块还能撑着。如果预算有限,至少做到定期rsync同步到另一台设备。比如每天凌晨把主NAS的影音目录推送到备用机:
0 2 * * * rsync -av /data/media/ backup@192.168.1.101:/backup/media/
配合SSH密钥免密登录,完全自动化。哪怕主设备彻底报废,第二天换台新机器,数据也能快速恢复。
小改动,大提升
很多人觉得高可用是公司才需要的东西,其实家庭环境同样适用。孩子录的钢琴视频、老人拍的家庭聚会,这些数据一旦丢失没法重来。花几个小时搭个基础的冗余架构,换来的是长期的心安。设备不需要多高端,关键是设计合理、有备无患。