nfs 概念
网络文件系统(NFS)是 Unix 系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过网络对共享文件访问和写入。
1、用于linux之间的共享
2、客户端使用挂载的方式查看共享资源
3、没有客户认证机制,且数据在网络上明文传输,一般只能在局域网中使用
4、在企业中用于web集群的后台存储
nfs 服务器配置
查看具体使用规则:man 5 exports
编辑:/etc/exports
目录名 192.168.0.0/24(ro,sync) #指定网关,只读挂载,sync是远程数据同步的意思
目录名 *.example.com(rw,sync) #指定主机名,可写挂载
目录名 192.168.0.1(rw,no_root_squash) #指定ip,当客户端挂载时仍然使用超级用户的身份执行
相关参数:
rw:挂载可谍写的文件系统
ro:挂载只读文件系统
vers=4尝试只使用指定的NFS版本进行挂载。如果服务器不支持该版本,则挂载请求失败
soft:如果NFS请求超时,三次尝试后返回错误。权衢数据完性与提高客户端响应性。(默认行为hard,特无限期地试)
实验:
准备三台主机一个服务端两个客户端
1、只读挂载
服务端:
[root@server ~]# yum install nfs-utils -y
[root@server ~]# systemctl start nfs
[root@server ~]# vim /etc/exports
文件内容如图:
文中的内容意为客户端对目录 mnt 是只读挂载
[root@server ~]# exportfs -rv #刷新
exporting *:/mnt
客户端:
[root@client ~]# yum install nfs-utils -y #下载nfs服务软件
[root@client ~]# showmount -e 172.25.254.196 #查看远程同步nfs共享的系统文件
Export list for 172.25.254.196:
/mnt *
[root@client ~]# mount 172.25.254.196:/mnt /mnt #将共享目录挂载到mnt下
[root@client ~]# ls /mnt/
file1 file2 file3
[root@client ~]# rm -fr /mnt/file1 #对目录中的文件进行删除时提示只读
rm: cannot remove ‘/mnt/file1’: Read-only file system
[root@client ~]# umount /mnt
2、测试读写挂载
服务端:
[root@server ~]# vim /etc/exports
文件内容如下:
文中的内容意为客户端对目录 mnt 是读写挂载
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]# ls -ld /mnt
drwxr-xr-x. 2 root root 42 Jun 5 08:52 /mnt
[root@server ~]# chmod 777 /mnt #这里对目录修改权限是方便实验,实际操作时依照情况对各用户加权限
客户端:
[root@client ~]# mount 172.25.254.196:/mnt /mnt
[root@client ~]# touch /mnt/file4
[root@client ~]# ls /mnt/
file1 file2 file3 file4
[root@client ~]# umount /mnt
服务端:
[root@server ~]# ls -ld /mnt/file4 #这里查看到目录的所属用户及组都是匿名用户
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 5 10:04 /mnt/file4
3、测试挂载时使用超级用户的身份执行的挂载
服务端:
[root@server ~]# vim /etc/exports
文件内容如下:
[root@server ~]# exportfs -rv
exporting *:/mnt
客户端:
[root@client ~]# mount 172.25.254.196:/mnt /mnt
[root@client ~]# touch /mnt/file5
[root@client ~]# umount /mnt
服务端:
[root@server ~]# ls -ld /mnt/file5 #查看到文件的所属组及用户为超级用户
-rw-r--r--. 1 root root 0 Jun 5 10:06 /mnt/file5
4、测试以指定用户身份执行的挂载
服务端:
[root@server ~]# vim /etc/exports
文件内容如下:
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]# chmod 777 /mnt
客户端:
[root@client ~]# mount 172.25.254.196:/mnt /mnt
[root@client ~]# touch /mnt/file6
[root@client ~]# umount /mnt
服务端:
[root@server ~]# ls -ld /mnt/file6 #查看到文件的所属组及用户为配置文件中指定用户
-rw-r--r--. 1 student student 0 Jun 5 10:07 /mnt/file6
5、测试指定ip的挂载
服务端:
[root@server ~]# vim /etc/exports
文件内容如下:
文中的内容意 test 目录对 ip 为172.25.254.169的用户只读,对172.25.254.69的用户可读写
[root@server ~]# exportfs -rv
exporting 172.25.254.69:/test
exporting 172.25.254.169/24:/test
[root@server ~]# chmod 777 /test
客户端69:
[root@foundation69 Desktop]# mount 172.25.254.196:/test /mnt
[root@foundation69 Desktop]# rm -fr /mnt/*
[root@foundation69 Desktop]# ls /mnt/
[root@foundation69 Desktop]# touch /mnt/file
[root@foundation69 Desktop]# umount /mnt
客户端169:
[root@client ~]# mount 172.25.254.196:/test /mnt
[root@client ~]# rm -fr /mnt/*
rm: cannot remove ‘/mnt/file’: Read-only file system
[root@client ~]# umount /mnt
autofs 自动挂卸载
服务端:
[root@server ~]# systemctl start nfs #开启服务
[root@server ~]# vim /etc/exports
文件内容如下:
[root@server ~]# exportfs -rv
exporting 172.25.254.69:/test
exporting 172.25.254.169/24:/test
[root@server ~]# chmod 777 /test
客户端:
[root@client ~]# yum install autofs #下载软件
[root@client ~]# systemctl start autofs #开启服务,会出现目录net
[root@client ~]# cd /net/172.25.254.196 #进入目录
[root@client 172.25.254.196]# ls #可以查看到目录
test
[root@client 172.25.254.196]# cd test
[root@client test]# ls
file
[root@client test]# df #显示自动挂载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3187212 7286688 31% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2355 451824 1% /home
172.25.254.196:/test 10473984 3168256 7305728 31% /net/172.25.254.196/test
[root@client test]# cd #退出目录
[root@client ~]# vim /etc/sysconfig/autofs #修改自动卸载时间
文件内容如下:
[root@client ~]# systemctl restart autofs #重启服务
[root@client ~]# df #5秒后查看已经卸载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3187212 7286688 31% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2355 451824 1% /home
autofs 自定义挂载点
[root@client ~]# cd /net/172.25.254.196
[root@client 172.25.254.196]# cd test
[root@client test]# df #查看挂载点
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3187212 7286688 31% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2355 451824 1% /home
172.25.254.196:/test 10473984 3168256 7305728 31% /net/172.25.254.196/test
[root@client test]# vim /etc/auto.master #编辑主策略文件
文件内容如下:
文中内容意思是最终挂载点的上层目录为 nfs
[root@client test]# vim /etc/auto.test #子策略
文件内容如下:
文中内容:设备挂载点名称test ,-ro 只读挂载 ,172.25.254.196:/test 代表网络挂载参数
[root@client test]# systemctl restart autofs.service
[root@client test]# cd /nfs/test
[root@client test]# df #查看挂载点变成/nfs/test
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3187220 7286680 31% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2355 451824 1% /home
172.25.254.196:/test 10473984 3168256 7305728 31% /nfs/test
[root@client test]# cd
[root@client ~]# df #退出后,自动卸载时间过后查看已经卸载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3188452 7285448 31% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12768 472164 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2355 451824 1% /home