NFS共享存储服务

NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。

对于大多数负载均衡集群来说。使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。

NFS工作原理:

NES服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
所以需要安装nfs-utils、rpcbind 软件包来提供NFS共享服务,前者用于NES 共享发布和访问,后者用于RC支持。

原理图.jpg


NFS的配置文件为 /etc/exports
格式为:
共享的目录位置客户机地址(权限选项)
在文件服务器使用NFS发布共享资源


实验步骤:

在文件服务器使用NFS 发布共享资源

1.安装nfs-utils、 rpcbind 软件包

rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind

2.设置共享目录

mkdir -p l opt / wwwroot
chmod 777 /opt/wwwroot

vim /etc/exports
/opt/wwwroot 192.168.80.0/24(rw,sync,no_root_squash)  

/var/ftp/pub 192.168.4.11(ro)192.168.4.110(rw)
/share * (rw, sync)

客户机地址可以是主机名、IP地址、网段地址,允许使用"*"、"?"通配符。

"rw”表示允许读写,"ro”表示为只读。
sync:表示同步写入到内存与硬盘中。
no_root_squash:表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。
root_squash:表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。

其他常用选项:

all_squash:所有访问用户都映射为匿名用户或用户组
async:将数据先保存在内存缓存区中,必要时才写入磁盘。
subtree_check(默认):若输出目录时一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
anonuid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的GID

1.jpg


3、启动NFS服务程序

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
netstat -anpt | grep rpcbind   //查看rpcbind端口是否开启,rpcbind默认使用tcp端口111

4、查看本机发布的NFS共享目录

exportfs -rv        //发布共享
showmount -e     /

2.jpg


3.jpg


4.jpg


5.jpg


6.jpg


7.jpg


8.jpg


9.jpg


10.jpg


11.jpg