seafile 本身已经支持”快照(特有的版本镜像)“和文件历史,但是一旦底层物理存储故障,上层应用做的再好也是于事无补的。所以今天应很多同学要求,写一遍挂载群晖NFS教程加数据迁移思路。
总体思路
-
群晖上创建存储池并创建存储卷,我这里用的raid10,兼顾性能但是空间损失一半。
-
另外很多反馈把seafile直接安装在群晖的虚拟机中不更好,除非你是SSD存储卷或者能让系统运行在SSD上面,不然效果会很差,具体表现就是网页加载巨慢。
-
所以推荐seafile前端跑在单独的服务器上面,配置不需要太高。
200G的SSD盘,4核16G内存(集成在线编辑推荐16G),数据存储在有raid保障的存储上面。 -
[$]
seafile 安装可以参照:Centos8/Ubuntu 20 安装 seafile 8.0.11 专业版脚本快速安装
挂载迁移步骤
配置存储卷并共享(群晖)
首先确保安装配置好群晖
1、群晖上面创建一个共享文件夹Seafile,空间根据需要定义,这里已1T为例。
-
开启【隐藏共享】,防止其他电脑对数据进行操作。
-
关闭回收箱,历史版本seafile自身会处理,没有必要开启。
2、关闭加密,配置容量为1T
3、新增NFS权限
-
注意:Squash:一定要改成【映射所有用户为admin】,不然重启会有几率出现非root用户无权访问的BUG。
-
服务器名称或者IP:填写seafile主机IP
-
记住最下面的挂载路径,挂载的时候会用到。
临时挂载,并迁移数据到NFS上面
1、创建临时迁移目录,并拷贝数据到群晖NFS共享盘上面
#切换到seafile目录cd /opt/seafi le/#创建临时迁移目录mkdir seafile-databak#挂载/usr/bin/mount -t nfs -o vers=3 192.168.31.205:/volume2/Seafile/ /opt/seafile/seafile-databak
-
如果挂载提示如下错误,则需要安装nfs客户端
安装客户端(挂载正常的不需要安装)
#Redhat、Centos系:yum install nfs-utils#debian、Ubuntu系:sudo apt-get install nfs-common
2、检查是否挂载
df -h
3、迁移已有的数据到群晖NFS盘上面
注意:如果数据量很大,中途意外断开,可以重复执行。rsyc是增量同步,可以无限执行。
/usr/bin/rsync -rvt /opt/seafile/seafile-data/* /opt/seafile/seafile-databak/
迁移速率差不多稳定在30M
正式挂载到seafile数据存储目录,并设置开机自动挂载
确保上面老数据迁移完成,如果是新安装seafile的基本秒结束。
1、卸载临时挂载,并挂载到真实seafile的数据目录
#卸载umount /opt/seafile/seafile-databak/#挂载到真实seafile目录/usr/bin/mount -t nfs -o vers=3 192.168.31.205:/volume2/Seafile/ /opt/seafile/seafile-data#设置权限chown -R seafile:seafile /opt/seafile
2、设置开机自动挂载
-
有两种办法,加到fstab或者rc.local里
-
这里偷懒就加到rc.local了。
vi /etc/rc.local#并追加下面挂载脚本/usr/bin/mount -t nfs -o vers=3 192.168.31.205:/volume2/Seafile/ /opt/seafile/seafile-data#按 :wq 回车保存#给予执行权限chmod +x /etc/rc.d/rc.local
3、重启seafile主机验证
问题排查
a、NFS已经开机自动挂载,但是seafile没有启动
检查挂载目录权限是否正常,检查命令
su - seafile -c "ls /opt/seafile/seafile-data"
如果报没有权限,则执行chown -R seafile:seafile /opt/seafile
如果手动挂载正常,开机就没有权限,排查思路从群晖上面入手,比如群晖上面的Square权限映射。
其他问题,欢迎留言反馈,一起探索,互帮互助。
转载自:https://www.ittel.cn/archives/12237.html
[/$]