中小企业的朋友们,是不是总担心服务器突然宕机?业务停摆半小时,损失可能就不小。想搞双机热备保障业务,又觉得成本太高,动辄几万块的方案负担不起?其实啊,低成本的双机热备方案真的存在,不用花大价钱,用普通设备加开源工具就能搞定。今天小编就给大家讲讲具体方法,步骤简单,花钱少,适合中小企业快速部署,一起往下看吧!
先说说:为啥中小企业需要低成本双机热备?
双机热备就是两台服务器互相备份,一台出问题另一台立刻顶上,保证业务不中断。对中小企业来说,服务器宕机的损失可能比大企业还大 —— 大企业有冗余团队,小企业可能就一两台服务器,一停全停。
但中小企业预算有限,买不起动辄几十万的商业热备方案。小编之前接触过一家小电商公司,服务器硬盘坏了,停了 4 小时,损失了好几千订单,后来用低成本方案搞了热备,一年多没出过问题,花的钱还不到买新服务器的零头。
低成本方案的核心:不买贵的,用对的
硬件选择:旧设备利用起来,省钱又环保
- 服务器:不用买新的,公司淘汰的旧电脑、入门级服务器都行,两台配置差不多就成(比如都用 4 核 8G 内存)。小编见过有人用两台旧笔记本电脑改造成服务器,照样跑热备,就是散热得做好。
- 网络设备:普通千兆交换机就行,不用买企业级高端货,两台服务器连到同一个交换机,保证能互相通信。
- 共享存储(可选):预算紧就不用买 NAS,用软件同步数据(后面会说);预算够的话,整个几百块的入门级 NAS,存重要数据。
设备 | 低成本选择 | 大概预算 | 替代方案 |
---|---|---|---|
服务器 | 旧电脑 / 二手入门服务器 | 0-2000 元 | 新服务器(贵,不推荐) |
交换机 | 普通千兆交换机 | 100-300 元 | 企业级交换机(贵) |
共享存储 | 软件同步(如 rsync) | 0 元 | 入门级 NAS(500-1000 元) |
软件选择:开源免费的就够用,不用花钱买
- 高可用工具:首推Keepalived,开源免费,配置简单,能实现自动切换,中小企业够用了。
- 数据同步工具:rsync 或 lsyncd,都是免费的,能定时把主机数据同步到备机,虽然比实时同步慢一点,但胜在不花钱。
小编对比过,用这些开源工具,软件成本为零,效果虽然比不上商业方案,但对中小企业来说完全够用。
实施步骤:3 步搞定,新手也能学会
第一步:准备工作,把设备连起来
- 给两台服务器装一样的操作系统(推荐 CentOS 7 或 Ubuntu Server,免费稳定),设好 IP 地址(比如主机 A:192.168.1.10,备机 B:192.168.1.11)。
- 用网线把两台服务器和交换机连起来,确保能互相 ping 通(在 A 上 ping 192.168.1.11,能通就成)。
- 在两台服务器上都安装好需要的软件(比如 Nginx、MySQL),保证业务能正常跑。
这一步不难,就是费点时间装系统,新手慢慢弄,别急。小编第一次装的时候,把 IP 设错了网段,导致 ping 不通,折腾了半小时才发现,你说多粗心。
第二步:装 Keepalived,实现自动切换
- 安装:两台服务器都输入命令
yum install keepalived -y
(CentOS 系统),Ubuntu 用apt install keepalived -y
。 - 配置主机 A:
- 打开配置文件
vi /etc/keepalived/keepalived.conf
- 改这几处:
state MASTER
(主服务器)、priority 100
(优先级,主比备高)、virtual_ipaddress { 192.168.1.100 }
(虚拟 IP,用户访问用这个) - 保存退出,启动服务
systemctl start keepalived
,设成开机启动systemctl enable keepalived
- 打开配置文件
- 配置备机 B:
- 配置文件里改
state BACKUP
、priority 90
(比主低),虚拟 IP 和主机 A 一样 - 同样启动并设为开机启动
- 配置文件里改
这样,平时虚拟 IP 在主机 A 上,A 挂了就自动跑到 B 上,用户访问不受影响。
第三步:数据同步,用 rsync 定时备份
- 主机 A 上装 rsync:
yum install rsync -y
,备机 B 也装上。 - 主机 A 上写个脚本,把需要同步的目录(比如
/var/www/html
、/var/lib/mysql
)同步到备机 B,脚本内容大概是:plaintextrsync -avz /var/www/html/ root@192.168.1.11:/var/www/html/ rsync -avz /var/lib/mysql/ root@192.168.1.11:/var/lib/mysql/
- 设个定时任务,比如每 5 分钟同步一次:
crontab -e
,添加*/5 * * * * /root/sync.sh
(sync.sh 是你写的脚本名)
这个方法虽然不是实时同步,但 5 分钟一次对中小企业来说够了,关键是免费。
避坑指南:这几个地方新手容易出错
- 虚拟 IP 冲突:虚拟 IP(192.168.1.100)不能和现有 IP 重复,不然会冲突,提前查一下网段里有没有在用的。
- 防火墙没关:防火墙可能会挡住 Keepalived 的通信,测试阶段可以先关掉
systemctl stop firewalld
,稳定后再开端口。 - 数据同步权限:rsync 同步时可能因为权限问题失败,脚本里加个
chmod -R 755
给目录授权试试。
小编之前同步数据库时,就因为权限不够失败了,后来改了权限才好,这些小细节得注意。
自问自答:新手可能会问的问题
- 问:两台服务器性能不一样,能做热备吗?
答:能!主服务器性能好点,备机差点没关系,只要能跑起来业务就行,切换的时候慢点,但总比停了强。 - 问:不用共享存储,数据同步有延迟咋办?
答:如果业务对数据实时性要求特别高,那还是得花点钱买 NAS;要求不高的话,几分钟延迟没事,真宕机了,丢几分钟数据总比丢几小时强。
小编的一点心得
低成本双机热备,核心就是 “凑活用”—— 用旧设备、免费软件,虽然比不上大企业的方案,但对中小企业来说,花小钱办大事,值!关键是能避免服务器宕机造成的损失。
小编建议中小企业别等出了问题再补救,早点花点时间弄这个方案,真遇到服务器故障,你就知道有多香了。刚开始可能觉得麻烦,多练两次就熟了,动手试试吧!