当前服务器上了满速的nvme(970 EVO Plus(MZ-V7S1T0B),但却不敢把重要应用(比如gitlab)放在上面跑,因为这玩意一旦哪天罢了工,数据的可恢复性为0。
或许我们可以使用nvme的raid1卡来解决这个问题,但又不好确认raid1卡是否能成功的被vmware esxi识别,同时价格也是需要考虑的因素。
顺便说一句:970 EVO Plus在vmware esxi 6.7.0上表现良好,即插即用。
rsync
而rsync恰好能够解决这个问题,基本的思路很简单:
- 在nas端开启rsync服务
- 在客户端启用rsync,并设置需要同步的文件夹
nas端
nas我们可以使用群晖或是FreeNAS,或是使用FreeBSD的zfs系统来打造。本文以群晖为例。
群晖的官方网站有关于如何启用rsync的说明这为我们实现此功能降低了难度。
按上文我们创建一个备案专用文件夹(比如bak),然后创建一个只有当前文件夹读写权限的用户(用户组建议先选择为管理员,避免一些ssh认证问题),设置一个复杂点的密码,在应用设置上,仅勾选rsync。
另外建议使用个非22端口,这个应该是更安全一点。
客户端
nas就绪后,我们开始在客户端上安装rsync服务。
debian
系统不重要,重要的是是否可以成功安装rsync服务。
# su -
# bash
# apt install sshpass
# pat install rsync接下来我们先使用ssh连接一下主机,避免产生rsync Host key verification failed错误。
# ssh -p yoursshport rsyncuser@your.nas.domain.name安装完毕后,开始尝试进行同步:
# sshpass -p "rsyncpassword" rsync -av -e 'ssh -p yoursshport' --progress /home/panjie rsyncuser@your.nas.domain.name::bak/foldernameFreeBSD
首先按官网指导安装rsync客户端
[root@nfs /yzpool/data/hosts]# pkg install sshpass
[root@nfs /yzpool/data/hosts]# pkg install rsync
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
--
Some scripts provided by rsync such as rrsync requires
python which is not installed by default最后提示我们还需要安装python
# pkg install python定时任务
rsync有个非常大的优点在于其同步的时候,会进行差异化同步,这极好的保证了备份的效率。
结合定时任务,我们便可以实现按一定周期进行同步的目的。
debain
我先建议个批处理文件(比如为: rsync.sh),并保存在/home/username下,内容就是我们前面执行的命令:
#/bin/bash
sshpass -p "rsyncpassword" rsync -av -e 'ssh -p yoursshport' --progress /home/panjie rsyncuser@your.nas.domain.name::bak/foldername \
> /home/panjie/rsync.log
echo "done at $(date)" >> /home/panjie/rsync.log
cat /home/panjie/rsync.log保存后为其增加执行权限:#chmod -x rsync.sh,然后执行一遍看是否报错:#./rsync.sh。没有错误的话把nas中的同步用户用户组设置为普通用户后再执行一遍#./rsync.sh。
最后执行crontab -e便可以设置定时任务了:
# crontab -e然后输入以下内容:
0 */1 * * * /home/panjie/rsync.sh上述定义了一个每1小时执行一次的策略。可以借助crontab.gura来快速生成相关的计划任务。
NEXT
剥离感觉效率不高,发热量还不小的raid卡,将硬盘做走通给FreeBSD,基于FreeBSD打造ZFS文件系统。并 ZFS 文件系统做为数据盘挂载给其它系统。
此时:服务器操作系统的数据盘为 ZFS 系统,有冗余(还可以有快照),结合NAS的rsync做小时级别的备份,总算可以安心的将生产环境移植过来了。
如果是 I/0 密集型的应用,还可以使用nvme做数据盘,使用rsync将数据文件分别备份到ZFS及NAS上,这样的三重保护就可以任性的使用nvme了。
自动启动zfs快照,并将快照上传至nas做为备份。
zhuanlan.zhihu.com/p/...
转移仓库位置至zfs存储
docs.gitlab.com/ee/ad...