什么是NFS文件系统
NFS(Network FIle System),即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
一 、NFS的简单共享文件
环境配置:
关闭selinux 客户端和服务端都应该是
getenforce=disabled 的状态
配置服务端和客户端的网络
- 服务端:
- 客户端
查看客户端和服务端的yum源 - 服务端:
- 客户端:
服务端:
- 1、打开nfs服务 并且查看状态
[root@server ~]# systemctl start nfs-server.service
[root@server ~]# systemctl status nfs-server.service
- 2、创建目录
[root@server ~]# mkdir /westos
[root@server ~]# touch /westos/file{1..10}
- 3、编辑读取文件
[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/westos *(sync,ro) sync 数据同步 ,ro 只读
[root@server ~]# exportfs -rv 刷新nfs文件
exporting *:/westos
- 4、设置火墙,获得服务通过
查看火墙是否允许这项服务的通过
设置火墙
[root@server ~]# firewall-cmd --add-service=nfs
success
[root@server ~]# firewall-cmd --add-service=rpc-bind
success
[root@server ~]# firewall-cmd --add-service=mountd
success
客户端:
- 1、查看是否可以挂载
[root@station ~]# showmount -e 192.168.100.200
Export list for 192.168.100.200:
/westos * 可以挂载
- 2、挂载
[root@station ~]# mount 192.168.100.200:/westos /mnt
- 3、查看挂载
[root@station ~]# cd /mnt
[root@station mnt]# ls 挂载成功
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
[root@station mnt]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18555904 3980808 14575096 22% /
devtmpfs 915756 0 915756 0% /dev
tmpfs 931612 0 931612 0% /dev/shm
tmpfs 931612 10164 921448 2% /run
tmpfs 931612 0 931612 0% /sys/fs/cgroup
/dev/sda1 303780 159220 144560 53% /boot
/dev/sr1 3704296 3704296 0 100% /run/media/root/RHEL-7.3 Server.x86_64
tmpfs 186324 0 186324 0% /run/user/0
192.168.100.200:/westos 18555904 4269568 14286336 24% /mnt
在客户端看出已经成功挂载,证明挂载成功
二、autofs自动挂载
自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的挂载,自动挂载器由autofs服务脚本管理。
客户端:
(一)、自动挂载
环境配置:df 查看是否有挂载 有的话先卸载掉
[root@station ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18555904 3987412 14568492 22% /
devtmpfs 915756 0 915756 0% /dev
tmpfs 931612 0 931612 0% /dev/shm
tmpfs 931612 10172 921440 2% /run
tmpfs 931612 0 931612 0% /sys/fs/cgroup
/dev/sda1 303780 159220 144560 53% /boot
/dev/sr1 3704296 3704296 0 100% /run/media/root/RHEL-7.3 Server.x86_64
tmpfs 186324 0 186324 0% /run/user/0
192.168.100.200:/westos 18555904 4269568 14286336 24% /mnt
[root@station ~]# umount /mnt
- 1、下载autofs插件
yum install autofs.x86_64 -y
- 2、挂载
< 在不使用的时候自动卸载,设置自动卸载的时间 >
- 1、编辑配置文件
[root@station westos]# vim /etc/autofs.conf
[root@station ~]# systemctl restart autofs.service 重启服务
- 2、查看挂载
重制之后立马df 查看,还在挂载
过五秒钟在重新查看就不会存在的了
(二)修改autofs默认挂载目录
客户端:
- 1、查看挂载是否成功
[root@station ~]# cd /westos/share (此目录在服务端建立的)
-bash: cd: /westos/share: No such file or directory 挂载不成功
- 2、编辑autofs主策略文件
[root@station ~]# vim /etc/auto.master
- 3、编辑读取文件
[root@station ~]# vim /etc/auto.westos
[root@station ~]# systemctl restart autofs.service 重启服务
- 4、挂载
(三)更换挂载版本
- 1、查看当前版本
[root@station share]# mount
- 2、编辑读取文件
[root@station share]# vim /etc/auto.westos
[root@station share]# cat /etc/auto.westos
share -ro,vers=3 192.168.100.200:/westos
systemctl restart autofs.service 重启服务
- 3、查看版本
mount 查看版本已经更换
三、nfs可写,可读,建立文件属于root用户
(一)nfs可写
(二)指定用户可读
-
服务端:
-
编辑读取文件
[root@server share]# vim /etc/exports
[root@server share]# cat /etc/exports
/westos *(sync,rw) 192.168.100.200(ro,sync) 让指定的IP只能是可读的状态
- 刷新
[root@server share]# exportfs -rv
exporting 192.168.100.200:/westos
exporting *:/westos
- 客户端:
- 删除文件file1
[root@station share]# rm -rf file1
rm: cannot remove ‘file1’: Read-only file system 因为是只读的状态所以是不可以删除的
(三)建立文件属于root
服务端
root@nfs-desktop ~]# vim /etc/exports
[root@nfs-desktop ~]# exportfs -rv
exporting *:/westos
[root@nfs-desktop ~]# cat /etc/exports
/westos *(sync,rw,no_root_squash)###创建的文件属于root用户
客户端
root@nfs-server nfshare]# touch file11
[root@nfs-server nfshare]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 6 23:17 file
-rw-r--r-- 1 root root 0 May 6 21:58 file1
-rw-r--r-- 1 root root 0 May 6 21:58 file10
-rw-r--r-- 1 root root 0 May 6 23:45 file11 ##root
-rw-r--r-- 1 root root 0 May 6 21:58 file2
-rw-r--r-- 1 root root 0 May 6 21:58 file3
-rw-r--r-- 1 root root 0 May 6 21:58 file4
-rw-r--r-- 1 root root 0 May 6 21:58 file5
-rw-r--r-- 1 root root 0 May 6 21:58 file6
-rw-r--r-- 1 root root 0 May 6 21:58 file7
-rw-r--r-- 1 root root 0 May 6 21:58 file8
-rw-r--r-- 1 root root 0 May 6 21:58 file9
服务端
[root@nfs-desktop ~]# id student ##查看id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@nfs-desktop ~]# vim /etc/exports
[root@nfs-desktop ~]# cat /etc/exports
/westos *(sync,rw,anonuid=1000,anongid=1000) ##指定创建的文件属于1000的用户
[root@nfs-desktop ~]# exportfs -rv
exporting *:/westos