NFS服务实现linux硬盘的映射实现文件存储与应用服务的分离。
- 实现目标:
在服务器A上访问服务器B上指定的文件系统。
服务器B配置步骤:
- 1、编辑/etc/exports
格式:共享目录 指定共享对象(共享参数)
例: /data/nfs 10.100.12.247(rw,sync)
将 /data/nfs 目录 共享给10.100.12.247 ,客户端权限rw
其中共享对象可以用通配符,比如 * 代表所有地址。
配置参数:
rw: 读写
ro :只读
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:是大数据时使用,是先写到缓存区,必要时再写到磁盘里。
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check(默认):即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
- 2、查看是否安装rpcbind 和 nfs
rpm -qa |grep nfs
rpm -qa |grep rpcbind
- 3、使用yum -y install nfs-utils rpcbind命令进行安装 nfs 和 rpcbind
- 4、关闭防火墙或者添加防火
systemctl stop firewalld 临时关闭
systemctl disable firewalld ,然后reboot 永久关闭
systemctl status firewalld 查看防火墙状态
- 5、启动服务,一定要先启动rpc再启动nfs
nfs需要向rpc注册,rpc一旦重启,所以注册的文件都丢失,其他向注册的服务都需要重启
启动rpc服务:
systemctl start rpcbind.service
启动nfs服务:
systemctl start nfs.servic
查询nfs挂载,showmount -e 后面可以接ip来查看。如 showmount -e 10.100.12.247
NFS服务开启后,查看共享目录参数
cat /var/lib/nfs/etab
- 6、配置开机启动 启动rpc再启动nfs
chkconfig rpcbind on
chkconfig nfs on
- 服务器A配置步骤:
1、查看是否安装rpcbind 和 nfs
2、使用yum -y install nfs-utils rpcbind命令进行安装 nfs 和 rpcbind
3、启动rpcbind,nfs可以不启动
4、客户端挂载nfs共享目录
mount -t nfs 10.100.12.247:/data/nfs /nfs #挂载服务器B的/data/nfs 目录到服务器A的 /nfs
5、查看磁盘
df -h
注:一般不将nfs挂载信息写入fstab,因为nfs依赖于rpc服务,rpc服务启动晚于fstab时会出错。可以将挂载信息写入 /etc/rc.local
vim /etc/rc.local
mount -t nfs 192.168.1.240:/data/nfs /data/nfs