目录
NFS概述
(1)NFS(网络文件服务):NFS是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用NFS协议,客户机可以像访问本地目录
一样访问远程服务器中的共享资源。NFS也是NAS 存储设备必然支持的一种协议。
(2)NFS服务的实现依赖于RPC ( Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在centos 7系统中,需要安装nfs-
utils、 rpcbind 软件包来提供NS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
(3)手动加载NFS 共享服务时,应该先启动rpcbind,再启动nfs。
- nfs端口号2049
- RPC端口号111
NFS特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
NFS的原理
实验步骤
- 安装nfs和rpcbind软件
- 修改配置文件设置共享
- 创建共享目录
- 开启服务
- 客户端验证共享目录可访问
配置NFS
rpm -q rpcbind nfs-utils
yum install -y nfs-utils rpcbind
服务器端
systemctl stop firewalld
setenforce 0
yum install -y nfs-utils rpcbind
vim /etc/exports #NFS的配置文件/etc/exports,文件内容默认为空(无任何共享)
/opt/web 192.168.8.0/24 (rw, sync,no_root_squash)
mkdir -p /opt/web
systemctl start rpcbind #需要先启动rpc服务,因为nfs要向rpc注册端口
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
netstat -anpu | grep rpc
showmount -e 192.168.8.4 #验证共享
exportfs -V #验证结果
客户端
systemctl stop firewalld
setenforce 0
yum install -y nfs-utils rpcbind
showmount -e 192.168.8.4 #客户端验证共享
yum -y install httpd
mount -t nfs 192.168.8.4:/opt/web /var/www/html #将共享目录挂载到网页目录
systemctl start httpd #启动web服务
curl 127.0.0.1
echo "this is kgc" >> /var/www/html/ index.html
同理可得,服务端写入或者修改内容,客户端也会同步。
最后打开浏览器,访问客户端的IP地址,进行测试。
NFS的配置文件/etc/exports
常用选项:
rw #表示允许读写
ro #表示为只读
sync #表示同步写入到内存与硬盘中
no_root_squash
#表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限。
root_squash
#表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户其它常用选项:
all_squash #所有访问用户都映射为匿名用户或用户组
async #将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
subtree_check(默认) #若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check #即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率