liunx nfs共享目录搭建
一、环境准备
1 2 3 4 | 1、关闭防火墙 systemctl stop firewalld 2、永久关闭 systemctl disable firewalld<br>3、关闭SELINUX<br> sed -i 's/SELINUX=disabled/SELINUX=disabled/g' /etc/sysconfig/selinux <br>4、查询是否关闭 |
[root@localhost mysql]# getenforce
Disabled
二、服务搭建准备
1 2 3 4 5 6 7 8 | 搭建NFS服务准备虚拟机,我这里准备的是centos7 四台虚拟机,可以准备两台效果是一样的。 nfs 服务器 128.196.126.142 nfs 客户端 128.196.126.143 nfs 客户端 128.196.126.144 nfs 客户端 128.196.126.145<br><br> |
依赖关系nfs 四台都需要操作
yum install -y nfs-utils
2.1 修改共享目录用户ID
我这里挂载目录是nas_a目录,大家可以创建任意目录,前提是创建的目录路径需要一致,如果是使用普通用户,需要保证用户ID统一。
修改用户ID和用户组ID参考连接:https://www.cnblogs.com/pythonx/p/12074613.html
2.2 创建共享目录
创建共享目录,四台都操作
1 | mkdir -p /home/ap/nas_a |
2.4 编辑NFS配置文件
1 2 3 4 5 6 7 8 9 10 | /etc/exports NFS主要配置文件,系统没有默认值,需要手动编辑 vi /etc/exports /usr/sbin/exportfs NFS管理命令 /usr/sbin/showmount 客户端的查看命令 /var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值 /var/lib/nfs/xtab 记录测井登陆过的客户端信息 |
2.5 NFS配置文件格式说明
1 2 3 4 | /etc/exports 文件格式 [共享目录] [设置访问的主机] [访问权限,其他,用户映射] eg: /home/ap/nas_a *(rw, sync ,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)[共享目录] 是指:给客户端和服务的使用的同一个目录 [设置访问的主机] 指定IP地址主机: 1.1.1.1 指定子网中的所有主机: 1.1.0.0 /24 或1.1.0.0 /24/255 .255.255.0 指定域名主机: json.chao.com 指定所有域主机: *.chao.com 所有主机: * 注意: 主机和权限中间没有空格 [访问权限] 只读: ro 读写: rw [用户映射] all_squash: 将远程的所有普通用户及所有属组映射为匿名用户或用户组(nfsnobody) no_all_squash: 与all_squash 取反(默认设置) root_squash: 将root用户集所属组都映射为匿名用户或用户组(默认值) no_root_squash: 与root_squash取反 anonuid=xxx : 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx) anondig=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定改匿名用户组账户为本地用户组账户(GID=xxx) [其他] secure:限制客户端只能小于1024的tcp /udp 端口连接nfs服务器(默认值) insecure: 与secure取反,大于1024的tcp /udp 端口连接nfs服务器(默认值) sync : 将数据同步写入内存缓冲区与磁盘中,效率低,但是可以保证数据的一致性。 async: 将数据先保证在内存缓冲区中,必要时才写入磁盘 wdelay:检查是否有相关操作,如果有则将这些写操作一起执行,这样可以提高效率(默认值) no_wdelay:内有写操作则立即执行,应与 sync 配合使用 subtree:若输出目录的是一个子目录,则NFS服务将检查其父母了的权限(默认值) no_subtrr: 及时输出目录是一个子目录,NFS服务器也不检查其父目录权限,这样可以提高效率。 |
三、服务启动停止
为了使NFS服务正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind 一定要先于nfs启动
3.1 启动rpcbind 和 nfs服务
1 2 3 | systemctl start rpcbind.service systemctl start nfs.service |
3.2 设置开机自启动
1 2 3 | systemctl enable rpcbind.service systemctl enable nfs.service |
3.3 查询状态
1 2 3 | systemctl status rpcbind.service systemctl status nfs.service |
3.3 停止服务
1 2 3 | systemctl stop rpcbind.service systemctl stop nfs.service |
四、客户端挂载共享目录
mount 挂载命令
格式: nfs服务ip:共享目录 挂载目标目录
eg:
1 | mount -t nfs 128.196.126.142: /home/ap/nas_a /home/ap/nas_a |
五、设置开机自动挂载
vi /etc/fstab
1 2 3 4 5 6 7 8 9 10 | # /etc/fstab # Created by anaconda on Wed Nov 6 17:42:41 2019 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/ol-root / xfs defaults 0 0 UUID=55aa95cc-bedd-4549-8479-59dafbc409c7 /boot xfs defaults 0 0 /dev/mapper/ol-swap swap swap defaults 0 0 128.196.126.142: /home/ap/nas_a /home/ap/nas_a nfs sync 0 0 |
如果需要验证;保存退出,重启系统 df -h 验证即可。
六、相关命令
1、exportfs [-aruv]
-a 重新启动/etc/exportfs 中的内容
-r: 重新读取/etc/exportfs 中的信息,并同步更新/etc/exportfs 、/var/lib/nfs/xtab
-u :卸载单一目录(和 -a 使用 就是卸载说有的/etc/exportfs 文件中的目录)
-v:显示详细信息
这里的举例
exportfs -au : 卸载所有共享目录,在NFS 服务器上使用,客户端没有作用。
服务端执行后,客户端会卸载共享目录,代表umount
1 2 3 4 5 6 7 8 9 10 11 | 先查询客户端挂载情况 [root@localhost ~] # df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 477M 0 477M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 14M 483M 3% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/ol-root 47G 6.1G 41G 13% / /dev/sda1 1014M 156M 859M 16% /boot tmpfs 100M 0 100M 0% /run/user/0 128.196.126.142: /home/ap/nas_a 47G 7.2G 40G 16% /home/ap/nas_a |
服务端执行exportfs -au
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@localhost ap] # exportfs -au [root@localhost ap] # 客户端在检查挂载情况 [root@localhost ~] # df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 477M 0 477M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 14M 483M 3% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/ol-root 47G 6.1G 41G 13% / /dev/sda1 1014M 156M 859M 16% /boot tmpfs 100M 0 100M 0% /run/user/0 |
exportfs -rv:重新共享所有的目录并输出详细信息,NFS服务端使用重新挂载。
服务端执行后,客户端会重新挂载共享目录。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 服务端执行 [root@localhost ap] # exportfs -rv exporting *: /home/ap/nas_a [root@localhost ap] # 客户端查询挂载情况 [root@localhost ~] # df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 477M 0 477M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 14M 483M 3% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/ol-root 47G 6.1G 41G 13% / /dev/sda1 1014M 156M 859M 16% /boot tmpfs 100M 0 100M 0% /run/user/0 128.196.126.142: /home/ap/nas_a 47G 7.2G 40G 16% /home/ap/nas_a |
2、showmount:[-ae]
-a 显示已经于客户端连接的目录信息
1 2 | [root@localhost ap] # showmount -a All mount points on localhost.localdomain: |
-e:ip或者Hostname 显示此IP地址分享出来的目录
1 2 | [root@localhost ap] # showmount -e Export list for localhost.localdomain: |
3、rpcinfo
查看rpm执行信息,可以用于检查rpm运行情况的工具,利用rpcinfo -p可以查看出rpc开启端口所提供的程序有哪些。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@localhost ap] # rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 43206 status 100024 1 tcp 54467 status 100005 1 udp 20048 mountd 100005 1 tcp 20048 mountd 100005 2 udp 20048 mountd 100005 2 tcp 20048 mountd 100005 3 udp 20048 mountd 100005 3 tcp 20048 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 41563 nlockmgr 100021 3 udp 41563 nlockmgr 100021 4 udp 41563 nlockmgr 100021 1 tcp 58204 nlockmgr 100021 3 tcp 58204 nlockmgr 100021 4 tcp 58204 nlockmgr |
总结;如果想设置开机自启或者开机自动挂载,参考上述。
1、安装 NFS服务(四台都操作)
1 | yum install -y nfs-utils |
2、编译nfs配置文件(四台都操作)
1 2 | vi /etc/exports /home/ap/nas_a *(rw, sync ,all_squash) |
3、创建共享目录(四台都操作)
1 | mkdir -p /home/ap/nas_a |
4、启动NFS服务,先启动rpcbind 在启动nfs服务(服务端操作)
1 2 | systemctl start rpcbind.service systemctl start nfs.service |
5、挂载(客户端操作)
1 | mount -t nfs 128.196.126.142: /home/ap/nas_a /home/ap/nas_a |
6、总结新部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | nfs 操作 安装包 所使用的节点安装nfs-utils yumdownloader --resolve --destdir /data/nfs/ nfs-utils rpm -ivh nfs-utils-1.3.0-0.68.el7.x86_64.rpm server端操作 1、编辑配置文件 cat >> /etc/exports << EOF /data/nas_a *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt) /data/nas_b *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt) EOF 2、启动服务 systemctl start rpcbind.service systemctl start nfs.service systemctl enable rpcbind.service systemctl enable nfs.service 3、编辑开机自动挂载 cat >> /etc/fstab << EOF 192.168.8.102:/data/nas_a /home/ap/nas_a nfs sync 0 0 192.168.8.102:/data/nas_b /home/ap/nas_b nfs sync 0 0 EOF 4、挂载目录 mount -t nfs 192.168.8.102:/data/nas_a /home/ap/nas_a mount -t nfs 192.168.8.102:/data/nas_b /home/ap/nas_b 5、注意修改ip |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 接口重试的7种常用方案!