一、NFS
-
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
-
节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
-
NFS体系至少有两个主要部分:一台NFS服务器和若干台客户机,客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。
-
主要功能是:通过局域网让不同的主机之间可以共享文件或者目录。
-
vim /etc/exports #主配置文件
环境部署:
设置网络服务端和客户端的ip
搭建共享yum源,
[root@localhost Desktop]# getenforce
Disabled
[root@localhost Desktop]# getenforce
Disabled
二、设置nfs文件系统共享
服务端部署
- 服务安装
yum install nfs-utils -y #安装nfs文件系统软件
systemctl start nfs-server #开启服务
systemctl enable nfs-server.service #设置服务开机自动启动
-
防火墙设置:
[root@localhost westos]# firewall-cmd --add-service=nfs #允许服务器通过防火墙
success
[root@localhost westos]# firewall-cmd --add-service=rpc-bind #添加允许进行服务动态端口分配
success
[root@localhost westos]# firewall-cmd --add-service=mountd #添加允许进行远程挂载
success
-
编辑共享说明文件,指定共享目录以及共享方式
[root@localhost ~]# mkdir /westos #创建新的目录
[root@localhost ~]# cd /westos/
[root@localhost westos]# touch file{1…7} #在目录里创建新的文件
[root@localhost westos]# systemctl status nfs-server #查看nfs服务的状态
[root@localhost westos]# vim /etc/exports #编辑主配置文件,并在文件中指定共享目录以及共享方式。/westos *(sync,ro) #文件内容:共享目录 所有人可以查看 (同步数据 ,只读挂载)**
[root@localhost westos]# exportfs -rv #使文件生效(刷新内容)
exporting *:/westos
客户端部署
[root@kehu ~]# showmount -e 172.25.254.11
Export list for 172.25.254.11:
/westos *
[root@kehu ~]# mount 172.25.254.11:/westos /mnt
[root@kehu ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 6865128 3608772 66% /
devtmpfs 469332 0 469332 0% /dev
tmpfs 484920 140 484780 1% /dev/shm
tmpfs 484920 12760 472160 3% /run
tmpfs 484920 0 484920 0% /sys/fs/cgroup
172.25.254.11:/westos 10473984 4167552 6306432 40% /mnt
#可以看出172.25.254.11:/westos这个共享文件已经挂载在/mnt下了。
三、设置客户端自动挂载
客户端
- 在以上设置完成之后,共享目录被挂载在客户端本地目录中,但是一直是处于挂载状态,不论客户端是否使用该共享目录挂载。
- 实现该共享目录在使用的时候自动挂载在指定的本地目录中,不使用的时候自动卸载。该功能由服务软件autofs实现
-
默认挂载
安装autofs服务
yum install autofs.x86_64 -y #安装autofs服务,自动挂载软件
systemctl start autofs #启动服务
systemctl enable autofs.service #设置服务开机启动
[root@kehu ~]# systemctl status nfs
nfs-server.service - NFS Server
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled)
Active: inactive (dead)
[root@kehu ~]# systemctl start autofs
[root@kehu ~]# cd /net
[root@kehu net]# ls
[root@kehu net]# cd 172.25.254.11
[root@kehu 172.25.254.11]# ls
westos
[root@kehu 172.25.254.116# pwd
/net/172.25.254.11
[root@kehu 172.25.254.11]# cd westos/
[root@kehu westos]# ls
file1 file{1…7} file2 file3 file4 file5 file6 file7
[root@kehu westos]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10473900 3210856 7263044 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13448 495548 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
172.25.254.116:/westos 10473984 3220992 7252992 31% /mnt
172.25.254.116:/westos 10473984 3220992 7252992 31% /net/172.25.254.116/westos #进入到该目录下则可以看到该目录在使用时会自动被挂载。
[root@kehu westos]# vim /etc/sysconfig/autofs #设置空闲等待时间
内容:TIMEOUT=3 #设置自动卸载的时间为3秒。一般默认是300秒。
[root@kehu ~]# systemctl restart autofs.service #重新启动服务器,即可看到效果。
注: 看效果时,必须离开工作时自动挂在的目录。
注:
/net/ 为服务autofs 默认的共享挂载目录,可以进行设置将共享文件挂载在指定目录
四、指定共享挂载点
-
在不愿意将共享目录挂载在默认挂载点的情况下,可以通过设置指定挂载点:
-
/westos/nfshare #为指定的挂载点进行说明
客户端
[root@kehu ~]# vim /etc/auto.master #编辑挂载策略文件内容:/westos /etc/westos.auto #挂载点上级目录 指定的挂载配置文件
[root@kehu ~]# vim /etc/westos.auto #编辑指定的挂载配置文件
内容:nfshare -ro,vers=3 172.25.254.11:/westos #挂载点的相对路径 挂载参数 以及需要挂载的共享目录 #“vers=3"表示是选择nfs的版本,一般情况可加可不加。具体看nfs版本再考虑是否加。
[root@kehu ~]# systemctl restart autofs.service #重启服务使得设置生效
测试:
cd /westos/nfshare #直接进入指定的挂载点 实现共享目录的指定挂载点挂载
[root@kehu nfshare]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10473900 3210748 7263152 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13444 495552 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
172.25.254.116:/westos 10473984 3224832 7249152 31% /westos/nfshare
五、设置读写权限、设置默认建立文件的用户名称:
- 读写挂载
实现客户端对共享目录具有写权限,需要设定:
1 服务端的该共享目录对其他用户具有写权限
2 共享目录实现读写共享
3 客户端进行读写挂载该共享目录
服务端设置
systemctl restart nfs-server.service #重新启动服务,使得设置生效
客户端设置
systemctl restart autofs.service #重新启动服务,使得设置生效
测试:客户端挂载共享目录 具有写权限
- 设定客户端创建文件的所有者以及所属组:
(1)默认情况下 nfsnobody nfsnobody
(2)指定客户端以student用户的身份创建文件
服务端进行设置共享参数:
[root@server ~]# vim /etc/exports
内容:/westos *(sync,rw,anonuid=1000,anongid=1000) ##"anonuid=1000,anonguid=1000"设置默认建立文件的用户名称为student,
ystemctl restart nfs-server.service #重新启动服务,使得设置生效
测试:客户端挂载之后创建文件的所有人以及所属组均为指定的:
(3)指定客户端以root用户的身份创建文件
服务端进行设置共享参数:
vim /etc/exports
/westos *(sync,rw,no_root_squash) ##设置默认建立文件的用户名称为root用户
systemctl restart nfs-server.service #重新启动服务,使得设置生效
测试:
客户端:挂载之后创建文件的所有人以及所属组均为root用户
(4)以对特定的客户端设置共享参数
服务端进行设置共享参数:
vim /etc/exports
/westos *(sync,rw,) 172.25.254.22(ro,sync) ##172.25.254.22的用户只能读,其他默认用户是可以读写的。
systemctl restart nfs-server.service #重新启动服务,使得设置生效
测试:使用该主机进行挂载,核实是否为只读挂载
注: 在客户端编辑文件或着删除文件,查看默认建立文件用户名称。