linux之nfs文件系统
- 什么是nfs
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
- nfs文件共享部署
实验环境准备:
两台虚拟机
一台ip为172.25.254.84 名字为nfs-server 作为服务端
一台ip为172.25.254.184 名字为client 作为客户端
同时配置yum源
selinux为disabled
设置步骤:
在服务端:
创建共享目录并安装服务软件
mkdir /nfsdir
cd /nfsdir
touch file{1..10}
ls
yum search nfs (本机已经安装)
yum install nfs-utils.86_64 -y
开启服务
systemctl start nfs-server
systemctl status nfs-server
编写配置文件设定共享目录
vim /etc/exports
编写如下:
/nfsdir *(sync,ro)
exportfs -rv ##刷新文件
防火墙添加服务
firewall-cmd --add-service=nfs
firewall-cmd --add-service=rpc-bind
firewall-cmd --add-service=mountd
测试:
在客户端:
showmount -e 172.25.254.84
mount 172.25.254.84:/nfsdir /mnt
df
cd /mnt
ls
- autonfs自动挂载
设置步骤:
在客户端:
yum install autofs.x86_64 -y
测试:
开启自动挂载并查看:
systemctl start autofs
cd /net/172.25.254.84 ##切换到该目录则自动挂载
ls
cd /nfsdir
ls
- 更改自动挂载时间(默认300s)
在客户端:
在不使用而退出该共享目录之后 经过30秒后 自动卸载
vim /etc/sysconfig/autofs ##7.0版本的配置文件,7.3版本为/etc/sysconfig/autofs/autofs.conf
TIMEOUT=30
测试:
切出目录后等待30s:
- 设置永久挂载点
在客户端:
vim /etc/auto.master
编写如下:
/nfsdir /etc/auto.nfsdir ##文件名随意,此处编写为了规范
vim /etc/auto.nfsdir
编写如下:
nfshare -ro 172.25.254.84:/nfsdir
systemctl restart autofs
测试:
在客户端:
cd /nfsdir/nfshare
ls
- 设置挂载格式为nfs3
默认下挂载格式为nfs4
更改步骤:
在客户端:
vim /etc/auto.nfsdir
编写如下:
nfshare -ro,vers=3 172.25.254.84:/nfsdir
systemctl restart autofs
测试:
mount
- nfs文件权限设定
读写挂载设定:
实现客户端对共享目录具有写权限,需要设定:
1 服务端的该共享目录对其他用户具有写权限
2 共享目录实现读写共享
3 客户端进行读写挂载该共享目录
服务端设置:
chmod 777 /nfsdir
ls -ld /nfsdir
vim /etc/exports
/nfsdir *(sync,rw)
systemctl restart nfs-server.service #重新启动服务,使得设置生效
客户端设置:
vim /etc/auto.nfsdir
nfshare -rw 172.25.254.84:/nfsdir
systemctl restart autofs.service #重新启动服务,使得设置生效
测试:
客户端挂载共享目录 具有写权限
客户端创建文件的所有者以及所属组设定:
现象:
默认情况下 nfsnobody nfsnobody
cd /nfsdir/nfshare
ll
指定客户端以root用户的身份创建文件
服务端设置:
vim /etc/exports
/nfsdir *(sync,rw,no_root_squash) ##添加指定用户身份的参数no_root_squash
systemctl restart nfs-server.service #重新启动服务,使得设置生效
测试:
客户端挂载之后创建文件的所有人以及所属组均为root用户
以指定用户的身份以及所属组进行创建文件的设定:
服务端设置:
vim /etc/exports
/nfsdir *(sync,rw,anonuid=1000,anongid=1000) #指定所有者为1000,所属组为1000
systemctl restart nfs-server.service #重新启动服务,使得设置生效
测试:
客户端挂载之后创建文件的所有人以及所属组均为指定的
对特定的客户端设置共享参数的设定:
在服务端:
vim /etc/exports
/nfsdir *(sync,rw) 172.25.47.184(sync,ro) #指定特定的主机进行只读共享
systemctl restart nfs-server.service #重新启动服务,使得设置生效
测试:
使用该主机进行挂载,核实是否为只读挂载
END