NFS文件系统

NFS文件系统

NFS简介

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件(share files)。这个NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。

NFS一般用来存储共享视频,图片等静态数据

NFS工作原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jFfl18KH-1616049242820)(C:\Users\Mr.L\Desktop\博客images\NFS文件系统image\1.jpg)]

在传输时使用的端口是随机的未被使用<1024的端口,他是通过RPC(远程过程调用)服务来实现的。
RPC的主要功能就是记录每个NFS功能所对应的端口号,并且将该信息传到NFS客户端,来实现连接。

启动NFS server之前,首先要启动RPC服务(即portmap服务),否则nfs server就无法向RPC服务注册。

注意: 在这里插入图片描述
如果RPC服务重新启动,原来已注册好的NFS端口数据就会丢失,因此,此时RPC服务管理的NFS程序也需要重新启动以重新向RPC注册。

NFS权限设置

NFS配置权限设置,即/etc/exports文件配置格式中小括号()里的参数集。

参数命令参数用途
rwRead-write表示可读写
roRead-only表示只能读权限
Sync同步模式,请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回。优点:数据安全不会丢;缺点:性能比不启用该参数要差
no_root_squash访问NFS Server共享目录的用户是root的话,它对该共享目录具有root权限。这个配置原本是为无盘客户端准备的。用户应避免使用。
root_squash如果访问NFS Server共享目录的用户是root,则它的权限将被压缩成匿名用户,同时它的UID和GID通常会变成nfsnobody账号身份
all_squash不管访问NFS Server共享目录的用户身份如何,它的权限都将被压缩成匿名用户,同时它的UID和GID都会变成nfsnobody账号身份。在早期多个NFS客户端同时读写NFS Server数据时,这个参数很有用
anonuid参数以anon开头即指anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd中。在多NFS Clients时,如多台Web Server共享一个NFS目录,通过这个参数可以使得不同的NFS Clients写入的数据对所有NFS Clients保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用,一般默认即可
anongid同anongid,就是把uid换成gid而已

配置文件

NFS 配置文件是 /etc/exports,内容如下:

[root@localhost ~]# cat /etc/exports 
/data  192.168.100.10/32(rw,sync,all_squash,anonuid=1000,anongid=1000)
/home  192.168.100.20/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
# /data:指定要共享的目录
# 192.168.100.10/32:指定要共享给哪些客户端
# rw,sync,all_squash,.....:指定客户端的挂载选项

命令使用

客户端使用mount命令挂载

mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT /PATH/TO/SOMEWHRERE

exportfs

  • -a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;

  • -r: 重新导出

  • -u: 取消导出

  • -v: 显示详细信息

showmount

  • -e NFS_SERVER: 查看NFS服务器"导出"的各文件系统

  • -a NFS_SERVER: 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应关系列表

  • -d NFS_SERVER: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表

rpcinfo

  • -p :显示所有的 port 与 program 的信息

练习

环境说明

主机名称IP地址系统版本
客户端client192.168.153.10RHEl-8.2
服务端service192.168.153.11RHEL-8.2

准备工作

#在两台机器上进行操作,关闭selinx和防火墙
[root@client ~]# setenforce 0
[root@client ~]# systemctl stop firewalld
[root@service ~]# setenforce 0
[root@service ~]# systemctl stop firewalld
#在服务端操作
//安装nfs rpcbind
[root@service ~]# yum -y install nfs-utils rpcbind

//创建需要共享的abc文件
[root@service ~]# mkdir -p /leidazhuang/file
[root@service ~]# cd /leidazhuang/file/
[root@service file]# touch abc

//配置NFS服务端配置文件,此文件用于定义共享的目录及权限 
[root@service ~]# vim /etc/exports

/leidazhuang/file 192.168.153.10 *(rw)

//启动服务
[root@service ~]# systemctl start nfs-server
[root@service ~]# systemctl start rpcbind

#在客户端操作
//安装showmount命令
[root@client ~]# yum -y install showmount

//显示NFS服务器列表
[root@client ~]# showmount -e 192.168.153.11
Export list for 192.168.153.11:
/leidazhuang/file (everyone)

//在本地创建一个挂载目录
[root@client ~]# mkdir /leidazhuang
手动挂载
//把192.168.153.11主机上的leidazhuang目录挂载在本机的leidazhuang目录上
[root@client ~]# mount 192.168.153.11:/leidazhuang /leidazhuang/

//查看目录,挂载完成,共享文件成功
[root@client ~]# cd /leidazhuang/
[root@client leidazhuang]# ls
file
[root@client leidazhuang]# cd file/
[root@client file]# ls
abc

//取消挂载,方便下面演示
[root@client ~]# umount /leidazhuang/
使用autofs自动挂载
#在客户端进行操作
//定义主配置文件
[root@client ~]# vim /etc/auto.master
#
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/misc   /etc/auto.misc
/media /etc/cdrom.misc
/leidazhuang /etc/ldaz.misc

//定义子配置文件
[root@client ~]# vim /etc/ldaz.misc
ldaz -rw 192.168.153.11:/leidazhuang

//重启autofs服务
[root@client ~]# systemctl restart autofs

//查看当前挂载情况
[root@client ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               883M     0  883M   0% /dev
tmpfs                  901M     0  901M   0% /dev/shm
tmpfs                  901M   17M  884M   2% /run
tmpfs                  901M     0  901M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   47G  1.9G   46G   4% /
/dev/sda1             1014M  179M  836M  18% /boot
tmpfs                  181M     0  181M   0% /run/user/0

//进入目录触发挂载
[root@client ~]# cd /leidazhuang/ldaz
[root@client ldaz]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     883M     0  883M   0% /dev
tmpfs                        901M     0  901M   0% /dev/shm
tmpfs                        901M   17M  884M   2% /run
tmpfs                        901M     0  901M   0% /sys/fs/cgroup
/dev/mapper/rhel-root         47G  1.9G   46G   4% /
/dev/sda1                   1014M  179M  836M  18% /boot
tmpfs                        181M     0  181M   0% /run/user/0
192.168.153.11:/leidazhuang   47G  1.7G   46G   4% /leidazhuang/ldaz

//查看abc文件,成功自动挂载
[root@client ldaz]# ls
file
[root@client ldaz]# cd file/
[root@client file]# ls
abc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值