一、 什么是NFS
网路文件系统(Network File System,NFS)由SUN公司开发, 功能是通过TCP/IP网络让不同的机器 不同的操作系统能够彼此分享数据, 让应用程序在客户端通过网络访问位于服务器磁盘中的数据, 是在Unix系统间实现磁盘文件共享的一种方法.
二、 NFS的优势
2.1 节省本地存储空间, 将常用的数据存放在一台NFS服务器上且可以通过网络络访问, 那么本地终端将可以减少自生身存储空间的使用.
2.2 配置相对简单
三. 工作原理
因为NFS支持的功能相当多, 而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口来传输数据; 因此NFS的功能所对应的端口才没有固定, 而是采用随机取用一些未被使用的小于724的端口来作为
传输之用; 但如此一来又造成客户端要连接服务器时的困扰, 因为客户端要知道服务器端的相关端口才能够联机, 此时我们需要用到RPC的服务.
RPC最主要的功能就是指定每个NFS功能所对应的端口号, 并且回报给客户端, 让客户端可以连接到正确的端口上. 当服务器在启动NFS时会随机选选数个端口并主动地向RPC注册. 因此RPC可以知道每个端口对应的NFS功
能, 然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口, 所以可以让NFS的启动更为容易. 注意启动NFS之前, 要先启动RPC否则NFS会无法向RPC注册, 另外重新启动RPC时原本注册的数据会不见, 因
此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册.
当客户端有NFS文件要存取请求时,它如何向服务器端要求数据?
1)客户端会向服务器端的RPC(port 111)发出NFS文件存取功能的询问请求.
2)服务器端找到对应的已注册的NFS daemon端口后会回报给客户端.
3)客户端了解正确的端口后,就可以直接与NFS守护进程来联机.
四. NFS服务安装
4.1 服务端
4.1.1 安装所需的RPM包
[root@localhost ~]# yum -y install nfs-utils rpcbind
4.1.2 创建NFS共享文件夹
[root@localhost ~]# mkdir -p /opt/harbor_disk
[root@localhost ~]# chmod 777 /opt/harbor_disk
4.1.3 修改NFS配置文件
[root@localhost ~]# vim /etc/exports
添加:
/opt/harbor_disk 172.16.70.0/24(rw,sync,no_root_squash)
#参数解析
/opt/harbor_disk 共享目录
172.16.70.0/24 能够访问该共享目录的网段段
rw 读写
ro 只读
sync 同步写 将数据同步写入内存缓冲区与磁盘中 效率低 但可以保证数据的一致性.
async 异步写 将数据先保存在内存缓冲区中 必要时才写入磁盘
wdelay 延迟写
root_squash 屏蔽ROOT权限 对共享目录的权限会被压缩为nfsnobody用户的权
no_root_squash 不屏蔽ROOT权限 用户如果是root权限,对共享目录也具有root权限
all_squash 屏蔽所有远程用户权限 不管你访问共享目录的用户是谁, 都必须压缩为nfsnobody用户的权限
4.1.4 启动NFS服务
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs
4.2 客户端
4.2.1 安装NFS客户端工具
[root@harbor-a harbor]# yum install nfs-utils
4.2.2 查看NFS服务端的共享目录
[root@harbor-a harbor]# showmount -e 172.16.70.233
Export list for 172.16.70.233:
/opt/harbor_disk 172.16.70.0/24
4.2.3 挂载共享目录
[root@harbor-a harbor]# mkdir -p /mnt/harbor_disk
4.2.4 修改fstab挂载网络磁盘空间
添加:
172.16.70.233:/opt/harbor_disk /mnt/harbor_disk nfs defaults 0 0
mount -a
4.2.5 查看系统所挂载的磁盘
[root@harbor-a harbor]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 18G 6.2G 12G 36% /
devtmpfs devtmpfs 479M 0 479M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 7.2M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 125M 373M 26% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/dm-3 xfs 10G 248M 9.8G 3%
172.16.70.233:/opt/harbor_disk nfs4 18G 1.9G 16G 11% /mnt/harbor_disk ##此为NFS磁盘
五. 注意
如果NFS服务器开启了防火墙, 由于NFS默认使用5个端⼝, 其中有4个端口是动态的, 所以如果服务器和客户端之间有iptables, 就要先把这4个动态端口设置成静态的, 然后加入进防火墙规则里放行流量, 需要修改的端口
有如下四个(端口可以根据需求改, 不一定就和我这一样):
5.1 在NFS服务端修改配置⽂件, /etc/sysconfig/nfs
LOCKD_TCPPORT=30001 #TCP锁使用端端口
LOCKD_UDPPORT=30002 #UDP锁使用端口
MOUNTD_PORT=30003 #挂载使用端口
STATD_PORT=30004 #状态使用端口
5.2 在服务端防火墙上放行以下流量:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30002 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30003 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30004 -j ACCEPT
注:
如要设置NFS共享磁盘可被所有的主机关联挂载, 可在/etc/exports配置文件中进行如下设置:
1. 修改配置文件/opt/nfs_test *(rw,sync,no_root_squash)
2. 刷新NFS配置 exportfs -rv
来源:/content-3-509951.html