openmediavault简称OMV,是一款非常好用的开源NAS,今天来做一下双机热备。此处说双机热备不准确,我采用的是在备用服务器上进行增量备份(出于安全性考虑,万一主服务器上的文件被删了呢)。也可以选择实时同步(rsync+inotify),做实时同步的话主服务器上删了,备用服务器上也会同步删,不符合我的需求。
该方式只能实现NAS上的文件备份,备份不了用户账号和用户组及系统设置,这个需求可通过U盘对OMV系统进行备份,官网有介绍。我是esxi虚拟机部署,直接导出虚拟机到另一台服务器上导入并创建服务器。
一、首先是在主服务器上进行操作,开启Rsync服务及相关配置。
在OMV的服务中开启Rsync。
添加模块。
添加模块:共享目录、共享名称(后面命令行中要用)、用户(后面命令行中要用),取消chroot,右下角保存。
至此服务端已完成!!!就这么简单!
二、然后是在备用服务器上进行操作。
SSH登录备用服务器
rsync -av shen.yang@10.180.5.11::01_公共区 /srv/dev-disk-by-uuid-cca2680e-3a12-4b67-8a3d-a7eccba9d433/01_公共区
绿色字为增量同步命令
此处解释下,"-av":a是归档模式,表示以递归方式传输文件,并保持所有属性,v表示打印一些信息,比如文件列表、文件数量等。shen.yang为前面在OMV后台设置的用户。10.180.5.11是主服务器。双冒号后面的01_公共区也是前面在OMV后台设置的参数,即共享名称。/srv/dev-disk-by-uuid...........这是备用服务器上OMV共享文件的真实路径,如看不懂可翻我前一贴。
那么接下来就是考虑如何自动执行命令了,总不至于每次手动在命令行执行这条命令吧
怎么做?写个shell小脚本咯
cd / ----切换到根目录
touch backup.sh -----创建backup.sh文件,即shell脚本。
ls ----查看文件已创建成功
root@openmediavault:/# vim backup.sh ----通过vim工具打开sh文件,打开后输入i进入插入模式
往backup.sh中插入命令
#!/bin/sh ----固定格式
root@openmediavault:/# chmod +x backup.sh ----给脚本执行权限
root@openmediavault:/# vim /etc/crontab ----编辑crontab文件,类似Windows上的自动任务
在该文件最后面加入红框内容,表示每天凌晨2点30,以root身份执行backup.sh这个脚本。
文中只做了01_公共区的增量备份,实际上有多少个共享文件夹就在脚本中写多少条rsync命令即可。
至此就能实现OMV备用服务器在每天凌晨2:30自动执行增量备份,具体备份频率可按需求更改。也可通过inotify工具实现两台机器实时同步,这样一是会占用服务器带宽,二是用户删了主服务器上的文件,备用服务器也会被删不安全,增量备份则没有这个问题。