群晖开机自动挂载NFS分区

在Windows Server 2012R2上使用Hyper-V黑了一个群晖使用
硬件环境是HP Gen8,加到了10G内存,CPU依然是乞丐版,光驱位改为SSD,SATA1-4为 WD 4T * 4 红盘
本来想硬盘直通给黑群晖使用,但是考虑到万一挂掉了数据不好恢复,外加硬盘休眠的问题一直无法很理想的解决,所以就有了现在的方案:
hyper-v虚拟黑群晖,然后windows上把四块硬盘作带奇偶校验的存储资源池,然后通过NFS共享的方式给群晖加载使用,这样一来即保障了数据安全性,在windows上对于NFS文件夹也可以直接读写,方便管理,更重要的是再也不用纠结群晖到底是虚拟硬盘还是直通硬盘了。

网上有很多群晖挂载NFS的例子,大多数都是在计划任务里新建一个任务,来mount nfs格式分区,但这个方法很不爽的一点是,比如video,在启用video套件时,这个文件夹是不允许rename、mount等操作的,显示资源正忙,所以脚本的方法也不是很完美,结合台湾省的一个群晖论坛上的提示,我有了以下的方案:原文参考

1、ssh到群晖上,这个不用多说了,群晖得首先开启SSH服务,然后root用户的密码和初始化群晖时设置的密码一致;

2、编写开机自启动脚本:

vi /usr/syno/etc.defaults/rc.d/S99mount.sh

我这里索性将volume1里的所有文件夹都移动到了windows机器上,请注意替换实际的ip地址,具体内容为:

/bin/mount -t nfs -o hard 10.20.55.1:/music /volume1/music
/bin/mount -t nfs -o hard 10.20.55.1:/homes /volume1/homes
/bin/mount -t nfs -o hard 10.20.55.1:/photo /volume1/photo
/bin/mount -t nfs -o hard 10.20.55.1:/video /volume1/video
/bin/mount -t nfs -o hard 10.20.55.1:/svn /volume1/svn
/bin/mount -t nfs -o hard 10.20.55.1:/work /volume1/work
/bin/mount -t nfs -o hard 10.20.55.1:/document /volume1/document
/bin/mount -t nfs -o hard 10.20.55.1:/other /volume1/other

3、将开机脚本设置为全员可以执行

chmod a+x /usr/syno/etc.defaults/rc.d/S99mount.sh

4、在windows上设置nfs共享,这里我使用haneWIN NFS Server 2.1.16版本,虽然windows原生支持NFS,但是windows server 2012r2的nfs v3版本不支持utf-8编码,v4版本虽然支持,但是群晖作为客户端只有nfs v3,具体映射路径有:


D:\nfs\docker -name:docker 10.20.55.10
D:\nfs\music -name:music 10.20.55.10
D:\nfs\homes -name:homes 10.20.55.10
D:\nfs\photo -name:photo 10.20.55.10
D:\nfs\video -name:video 10.20.55.10
D:\nfs\svn -name:svn 10.20.55.10

5.勾选haneWIN NFS Server中的Server标签下的“UTF-8 character set”
6.点击haneWIN NFS Server中Exports标签下的“Restart Server”
7.为了保险,我把原来群晖/volume1下的所有文件夹做了一个备份:

mkdir /volume1/ori_bak
cd /volume1/ori_bak
mkdir @S2S @autoupdate @docker @tmp docker music @SynoDrive @cloudstation @download homes photo video @appstore @database @eaDir svn

cp -r  /volume1/@S2S/*  /volume1/ori_bak/@S2S/
cp -r  /volume1/@autoupdate/*  /volume1/ori_bak/@autoupdate/
cp -r  /volume1/@docker/*  /volume1/ori_bak/@docker/
cp -r  /volume1/@tmp/*  /volume1/ori_bak/@tmp/
cp -r  /volume1/docker/*  /volume1/ori_bak/docker/
cp -r  /volume1/music/*  /volume1/ori_bak/music/
cp -r  /volume1/@SynoDrive/*  /volume1/ori_bak/@SynoDrive/
cp -r  /volume1/@cloudstation/*  /volume1/ori_bak/@cloudstation/
cp -r  /volume1/@download/*  /volume1/ori_bak/@download/
cp -r  /volume1/homes/*  /volume1/ori_bak/homes/
cp -r  /volume1/photo/*  /volume1/ori_bak/photo/
cp -r  /volume1/video/*  /volume1/ori_bak/video/
cp -r  /volume1/@appstore/*  /volume1/ori_bak/@appstore/
cp -r  /volume1/@database/*  /volume1/ori_bak/@database/
cp -r  /volume1/@eaDir/*  /volume1/ori_bak/@eaDir/
cp -r  /volume1/svn/*  /volume1/ori_bak/svn/

8、重启群晖,再次ssh到群晖,到这一步其实已经ok了,然后我们要把备份的内容给还原到nfs对应的文件夹中:

cp -r /volume1/ori_bak/docker/* /volume1/docker/
cp -r /volume1/ori_bak/music/* /volume1/music/
cp -r /volume1/ori_bak/homes/* /volume1/homes/
cp -r /volume1/ori_bak/photo/* /volume1/photo/
cp -r /volume1/ori_bak/video/* /volume1/video/
cp -r /volume1/ori_bak/svn/* /volume1/svn/

9.大功告成,再次重启,验证

标签: 群晖, synology, nfs