版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
NFS
NFS是Network File System的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如Web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载带NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或目录一样,而实际上确实远端的NFS服务器的目录。
NFS网络文件系统很像Windows系统的网络共享、安全功能、网络驱动器映射,这也和Linux系统里的samba服务类似。只不过一般情况下,Windows网络共享服务或samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享。
1.NFS服务部署
在服务端:
mkdir /westos_nfs 建立相关目录
systemctl start nfs 开启服务
systemctl enable nfs 设置开机自启动
systemctl status nfs 查看状态
firewall-cmd --permanent --add-service=nfs 防火墙添加nfs服务
firewall-cmd --permanent --add-service=rpc-bind 防火墙添加rpc服务
firewall-cmd --permanent --add-service=mountd 防火墙添加mountd服务
firewall-cmd --reload 刷新
vim /etc/exports 编辑共享配置文件
/westos_nfs *(sync) 要共享的目录 准许的访问者(挂载方式,同步)
exportfs -rv 刷新,执行配置文件
touch /westos_nfs/lee{1..5} 建立文件
2.共享目录的挂载
在客户端:
yum install autofs -y 安装相关程序
systemctl start autofs.service 开启服务
showmount -e 172.25.254.128 查看服务端共享目录
mount 172.25.254.128:/westos_nfs /mnt 挂载共享目录
cd /net 进入共享路径
cd /172.25.254.128 可以看到共享文件夹
cd westos_nfs/ 可以看到共享文件夹里面的文件
在客户端:
vim /etc/auto.master 编辑主挂载文件
/mnt /etc/auto.nfs
最终挂载点的上层目录 子策略文件
vim /etc/auto.nfs 编辑子策略文件
westos 172.25.254.128:/westos_nfs
最终挂载点 挂载共享目录
systemctl restart autofs.service 重启服务
cd /mnt/
ls 进入共享设备,查看文件,此时并没有发现文件
cd westos 但是尝试进入westos目录,可以成功进入
ls 可以查看到服务端共享目录中的文件
在客户端:
vim /etc/auto.nfs 编辑子策略文件
westos -ro,vers=3 172.25.254.128:/westos_nfs
最终挂载点 挂载参数(权限,版本) 挂载设备
systemctl restart autofs.service 重启服务
在服务端:
vim /etc/exports 编辑共享配置文件
/westos_nfs *(sync) 172.25.254.228(rw) 给指定主机读写权限
exportfs -rv 刷新
在客户端:
cd /net/172.25.254.128/westos_nfs 进入共享目录
touch file 尝试建立文件
touch: cannot touch ‘file’: Permission denied 提示被拒绝
在服务端:
chmod 777 /westos_nfs/ 给共享目录满权限
在客户端:
touch file 尝试建立文件,此时可以成功建立
ll 查看文件信息
-rw-r--r-- 1 nfsnobody nfsnobody 0 Aug 14 10:57 file 发现文件为匿名用户建立
在服务端:
id westos 查看westos用户的id
uid=1001(westos) gid=1001(westos) groups=1001(westos)
vim /etc/exports 编辑共享配置文件
/westos_nfs *(sync) 172.25.254.228(rw,anonuid=1001,anongid=1001) 设置指定主机所创建的文件所有者及所有组为1001。
exportfs -rv 刷新
在客户端:
touch lee 尝试建立文件,此时可以成功建立
ll 查看文件信息
-rw-r--r-- 1 lee lee 0 Aug 14 11:09 lee 显示此文件为lee用户创建,所属组为lee(lee时id为1001对应的用户和所属组)
在服务端:
vim /etc/exports 编辑共享配置文件
/westos_nfs *(sync) 172.25.254.228(rw,anonuid=1001,anongid=1001,no _root_squash) 设置当客户端使用超级用户时,不进行身份转换,沿用超级用户
exportfs -rv 刷新
在客户端:
touch animal 尝试建立文件,此时可以成功建立
ll 查看文件信息
-rw-r--r-- 1 root root 0 Aug 14 11:22 animal 显示此文件所有者和所属组为root