目录
一.什么是NFS共享储存服务
NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
NPS服务的实现依赖于 RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。所以需要安装 nfs-utils、rpcbind软件包来提供NPS共享服务,前者用于NFS共享发布和访问,后者用于 RPC支持。
NFS 的配置文件为/etc/exports
格式为: 共享的目录位置 客户机地址(权限选项)
二.NFS共享储存服务配置方法
1.配置文件服务器
1.安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
2.设置共享目录
mkdir -p /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用户映射成匿名用户
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
其它常用选项:
all_ squash : 所有访问用户都映射为匿名用户或用户组
async : 将数据先保存在内存缓冲区中,必要时才写入磁盘
ubtree_ check (默认) : 若输出目录是一个子目录,则nfs服 务器将检查其父目录的权限
o_subtree_check: 即使输出目录是一个子目录,则nfs服务器也不检查其父目录的权限,这样可以提高效率
anonuid=xxx : 指定NFS服务器/etc/ passwd文件中匿名用户的UID
anongid=xxx : 指定NFS服务器/etc/passwd文件中匿名用户的GID