centOS7.9部署nfs
NFS原理
- 先启动rpcbind服务
- 再启动nfs服务
- 用户访问rpcbind服务获取nfs信息(端口)
- 通过信息与nfs连接,然后使用nfs
服务端配置
安装nfs,一般安装nfs-utils就行rpcbind是依赖会自动安装
[root@nfs01 ~]# yum install -y nfs-utils
开启rpcbind服务,加入开机启动
[root@nfs01 ~]# systemctl start rpcbind
[root@nfs01 ~]# systemctl enable rpcbind
查询rpcbind服务注册信息
[root@nfs01 ~]# 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
启动nfs服务,加入开机自启动
[root@nfs01 ~]# systemctl start nfs [root@nfs01 ~]# systemctl enable nfs Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
再次查看fpcbind服务注册信息,就能看到nfs信息了
[root@nfs01 ~]# 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 44881 status 100024 1 tcp 41376 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 38962 nlockmgr 100021 3 udp 38962 nlockmgr 100021 4 udp 38962 nlockmgr 100021 1 tcp 40129 nlockmgr 100021 3 tcp 40129 nlockmgr 100021 4 tcp 40129 nlockmgr
创建好用于共享的目录
[root@nfs01 ~]# mkdir -p /nfsdata
更改目录所有者、组为nfsnobody这个用户安装nfs时会自动创建
[root@nfs01 ~]# id nfsnobody uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
[root@nfs01 ~]# chown nfsnobody:nfsnobody /nfsdata [root@nfs01 ~]# ll -d /nfsdata drwxr-xr-x 2 nfsnobody nfsnobody 6 Nov 14 08:38 /nfsdata
编辑nfs配置文件,第一个指定目录,第二是指定可以访问的网段可读可写
[root@nfs01 ~]# vim /etc/exports /nfsdata 10.0.0.0/24(rw)
rw | 读写 |
ro | 只读(read only) |
sync | 同步(数据实时写入磁盘) |
async | 异步(数据先写入缓存,然后再写入磁盘) |
root_squash | 如果是root用户,则再nfs服务端上面会被压缩为nfs匿名用户 |
no_all_squash | 如果不是root用户,则再nfs服务端上面不会进行压缩,保持原有用户(会报错权限拒绝) |
all_squash |
无论是什么用户,到了nfs服务端上面都压缩为nfs匿名用户 |
anonuid |
指定匿名用户的uid(用户名) |
anongid |
指定匿名用户的gid(用户组名字) |
查询共享哪些目录:showmount -e 10.0.0.31 加ip就是指定查ip那台机,不加就是查当前这台机
[root@nfs01 ~]# showmount -e Export list for nfs01: /nfsdata 10.0.0.0/24
本地挂载测试
[root@nfs01 ~]# mount 10.0.0.31:/nfsdata /mnt
[root@nfs01 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 475M 0 475M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 14M 473M 3% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/mapper/centos_xiaohanshen2-root 37G 2.1G 35G 6% / /dev/sda1 1014M 138M 877M 14% /boot tmpfs 98M 0 98M 0% /run/user/0 10.0.0.31:/nfsdata 37G 2.1G 35G 6% /mnt
客户端配置
创建挂载目录(生产环境是用户上传目录)
[root@backup ~]# mkdir -p /upload
安装nfs
[root@backup ~]# yum install -y nfs-utils
挂载
[root@backup ~]# mount 10.0.0.31:/nfsdata /upload
搞定
挂载选项
mount | |
-t | 指定文件系统类型-t nfs -t xfs |
-o | 用来指定挂载选项 |
umount |
-lf | 强制卸载 |