TrueNAS是一个基于FreeBSD开发的NAS系统,拥有比较友好的操作WEB UI和强大的ZFS文件系统,在用到TrueNAS的NFS共享功能时,发现无论我怎么挂载用户组和用户都显示挂载目录权限为nobody,这个权限导致如果你想把docker的运行路径填写到此处时,由于权限不足导致各种报错,折腾了几周后终于找到了解决方案,特此记录一波,本教程为全新安装后的设置教程。
试验环境:
- 服务器端:TrueNAS core 12.0 RC1
- 客户端:centos7.9.2009
服务器端设置:
Tips:初始化系统设置那些操作就省略带过,只讲重点部分下面。
1.找到共享,选择NFS,然后添加一个共享目录,Maproot用户选择root,详细配置如下图所示:
2.找到服务,选择NFS,然后勾选【启用NFSv4】【NFSv4的NFSv3所有权模型】【服务UDP NFS客户端】如下图所示:
3.保存,然后关闭并开启一下NFS服务即可。
客户端设置:
参考资料来自:https://www.alibabacloud.com/help/zh/nas/user-guide/mount-an-nfs-file-system-on-a-linux-ecs-instance
1.准备一台新安装好的centos7主机并登录SSH控制台
2.安装NFS服务
sudo yum install -y nfs-utils
3.增加同时发起的NFS请求数量
if (lsmod | grep sunrpc); then (modinfo sunrpc | grep tcp_max_slot_table_entries) && sysctl -w sunrpc.tcp_max_slot_table_entries=128 (modinfo sunrpc | grep tcp_slot_table_entries) && sysctl -w sunrpc.tcp_slot_table_entries=128 fi (modinfo sunrpc | grep tcp_max_slot_table_entries) && echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf (modinfo sunrpc | grep tcp_slot_table_entries) && echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
4.查看NFS共享目录(根据实际情况替换IP)
showmount -e 0.0.0.0
5.使用NFSv4协议挂载(根据实际情况替换路径)
sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt
挂载参数说明:
6.查看挂载信息
mount -l
7.查看系统文件目录容量
df -h
8.设置开机自动挂载目录,打开/etc/fstab配置文件
vi /etc/fstab
9.填入如下内容
file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
参数说明:
10.重启服务器
11.验证开机自动挂载是否成功,开机后输入df -h查看。
end…



