如何运用nfs让客户端轻松使用服务端共享出来的磁盘

nfs是什么

网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

​ NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

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

nfs挂载示意图

                         nfs挂载示意图

在这里插入图片描述
当我们在NFS服务器设置好一个共享目录/home/public后,其他有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:df –h。

nfs原理图

在这里插入图片描述

实现步骤

nfs服务器的部署

实验背景:
服务端:desktop 172.25.254.110 截图为白色
客户端:server 172.25.254.210 截图为黑色

实验步骤:

在服务端  和客户端 都执行 yum install nfs-utils -y

在服务端

systemctl start nfs-server
systemctl status nfs


firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind

firewall-cmd --reload

1.在这里插入图片描述2.在这里插入图片描述3.
在这里插入图片描述

vim /etc/exports  #nfs的主要配置文件
添加
/mnt *(ro,sync) #表示只读挂载,sync方式传输

exportfs -rv 刷新文件

在这里插入图片描述
在这里插入图片描述

sync和async的区别:
async 客户端编写文件时,同时同步到服务器 稳定 低速 对服务器压力大 一边写在内存中,存一边在硬盘中
sync 客户端编写完之后,再同步到服务器 不稳定 速度快

在客户端:

showmount -e 172.25.254.110
mount 172.25.254.110:/mnt/  /media/
cd /media/
ls

在这里插入图片描述

nfs的自动挂载

看谁就挂载谁看完就自动卸载 和samba一样

服务端 先共享文件出来=

  1.vim /etc/exports
添加
/etc *(ro,sync)

exportfs -rv  刷新

1.在这里插入图片描述2.在这里插入图片描述

在客户端
测试 showmount -e 172.25.254.110

  1.编辑文件  /etc/auto.master
  添加
 /media /etc/auto.nfs
 
  2.vim /etc/auto.nfs
   添加  
   *  172.25.254.110:/& #同配符的方式
  3.重启服务 systemctl restart autofs
  4.cd /media/
    ls
    cd mnt
    df 
    在规定时间 退出/media目录 挂载失败

  5.cd  /media/
    ls
   cd etc
   df

1.在这里插入图片描述2.在这里插入图片描述3.在这里插入图片描述5.在这里插入图片描述6.在这里插入图片描述7.在这里插入图片描述8.etc目录自动挂载
在这里插入图片描述

nfs的权限管理

在服务端 开启nfs之后

开始时,客户端是不支持对mnt目录写入的。

在这里插入图片描述

vim /etc/exports
添加

设置 /mnt *(rw,sync)
exportsfs -rv 刷新

chmod 777 /mnt 修改权限 chmod 777 /mnt  这样的话,其他用户才能对mnt可写


1.在这里插入图片描述2.在这里插入图片描述
3.在这里插入图片描述
在客户端

cd  /media/mnt/
touch filess
ls

在这里插入图片描述在这里插入图片描述
在服务器端

cd /mnt/
ll 

在这里插入图片描述

当不进行任何设置时,客户端新建的用户在客户端用户和组都是nfsnobody

对ROOT用户的设定

在服务端

vim /etc/exports
添加
/mnt *(rw,sync,anonuid=1001,anongid=1002)#指定root用户在客户机新建文件时所用的组和用户身份
exportsfs -rv

1.在这里插入图片描述
2.在这里插入图片描述
在客户端:

cd /media/mnt/
touch file33 #发现是服务端/etc/exports指定的用户id
ll

在这里插入图片描述
对student用户的设定

在客户端:

su - student
cd /media/mnt
ls
touch file44
ll

在这里插入图片描述

如果不做设置,在客户机用student用户新建文件,则客户机和服务器都是student

在服务器端:

cd /mnt/
ll

vim /etc/exports
/mnt *(rw,sync,anonuid=1001,anongid=1002,all_squash)

exportsfs -rv

设置all_squash 则所有用户(不管是root还是student)在新建文件时,都用1001 和1002,即你设定的用户和组

1.在这里插入图片描述2.在这里插入图片描述
3.在这里插入图片描述
在客户端:

su - student
cd /media/mnt
ls
touch file55
ll

在这里插入图片描述服务端
在这里插入图片描述
3.no_root_squash root用户用root 其他用户用自

no_root_squash 和all_squash不能同时存在

在服务器端

vim /etc/exports
/mnt *(rw,sync,anonuid=1001,anongid=1002,no_root_squash)

在这里插入图片描述在这里插入图片描述
在客户端

su - student
cd /media/mnt
ls
touch file66
ll

在这里插入图片描述服务端:
在这里插入图片描述

4.172.25.254.2(ro) *(rw,sync) 对54是只读,对其他任何是读写。

小范围的特定设置需要在 * 前面 否则大范围覆盖小范围。 特定设置不生效。

在服务端

vim /etc/exports
/mnt 172.25.254.2(ro) * (rw......)

exportfs -rv

1.在这里插入图片描述2.
在这里插入图片描述

在真机测试:

mount 172.25.254.110:/mnt /mnt/
cd /mnt/
ls
touch fileq #显示只读

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值