NFS的介绍

NFS

1 nfs特点 (Network File System)

1.节约使用的磁盘空间
客户端经常使用的数据可以集中存放在一台机器上,并使用NFS发布,那么网络内部所有计算机可以通过网络访问,不必单独存储.
2.节约硬件资源
NFS还可以共享软驱,CDROM和ZIP等的存储设备,减少整个网络上的可移动设备的数量.
3.用户主目录设定
对于特殊用户,如管理员等,为了管理的需要,可能会经常登录到网络中所有的计算机,若每个客户端,均保存这个用户的主目录很繁琐,而且不能保证数据的一致性.实际上,经过NFS服务的设定,然后在客户端指定这个用户的主目录位置,并自动挂载,就可以在任何计算机上使用用户主目录的文件.

nfs体系至少有两个主要部分:

一台nfs服务器
若干台客户机

RPC

RPC(Remote Procedure Call Protocol),远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。

在这里插入图片描述

rpc工作机制如上图所示,下面来描述一下它:

客户端程序发起一个RPC系统调用基于TCP协议发送给另一台主机(服务端)
服务端监听在某个套接字上,当收到客户端的系统调用请求以后,将收到的请求和其所传递的参数通过本地的系统调用执行一遍,并将结果返回给本地的服务进程
服务端的服务进程收到返回的执行结果后将其封装成响应报文,再通过rpc协议返回给客户端
客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行

nfs工作机制

在这里插入图片描述NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

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

在这里插入图片描述
如上图示:

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

实例

作业

手动搭建一个nfs服务器

开放/nfs/shared目录,供所有用户查阅资料
开放/nfs/upload目录为172.16.12.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300

配置的步骤

服务端
[root@czh ]# dnf -y install nfs-utils
[root@czh ]# systemctl start nfs-server
[root@czh # ss -antl
State    Recv-Q   Send-Q     Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128              0.0.0.0:22              0.0.0.0:*                
LISTEN   0        64               0.0.0.0:2049            0.0.0.0:*                
LISTEN   0        128              0.0.0.0:36297           0.0.0.0:*                
LISTEN   0        64               0.0.0.0:46255           0.0.0.0:*                
LISTEN   0        128              0.0.0.0:111             0.0.0.0:*                
LISTEN   0        128              0.0.0.0:20048           0.0.0.0:*                
LISTEN   0        128                 [::]:42005              [::]:*                
LISTEN   0        128                 [::]:22                 [::]:*                
LISTEN   0        64                  [::]:2049               [::]:*                
LISTEN   0        64                  [::]:42567              [::]:*                
LISTEN   0        128                 [::]:111                [::]:*                
LISTEN   0        128                 [::]:20048              [::]:* 
[root@140 ]# systemctl stop firewalld
[root@140 ]# setenforce 0

###编辑/etc/exports文件

root@czh ]# mkdir -p /nfs/upload
[root@czh ]# mkdir -p /nfs/shared
[root@czh ]# vim /etc/exports
[root@czh ]# cat /etc/exports
/nfs/shared     *(ro)
/nfs/upload     192.168.31.*(rw,anonuid=300,anongid=300)
创建映射用户和共享目录并设置权限
[root@czh ]# groupadd -r -g 300 nfs-upload
[root@czh ]# useradd -r -u 300 -g 300 nfs-upload
[root@czh ]#  id nfs-upload
uid=300(nfs-upload) gid=300(nfs-upload)=300(nfs-upload)
[root@czh ]# setfacl -m u:nfs-upload:rwx /nfs/upload/
[root@czh ]# setfacl -m g:nfs-upload:rwx /nfs/upload
重启服务
[root@czh ]# systemctl restart nfs-server
客户端
[root@czh ]# dnf -y install nfs-utils
[root@czh ]# systemctl start nfs-utils
[root@czh ]# ss -antl
State    Recv-Q   Send-Q     Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128              0.0.0.0:111             0.0.0.0:*                
LISTEN   0        128              0.0.0.0:22              0.0.0.0:*                
LISTEN   0        128                 [::]:111                [::]:*                
LISTEN   0        128                 [::]:22                 [::]:*                
[root@czh ]# systemctl stop firewalld
[root@czh ]# setenforce 0

挂载
手动挂载

[root@czh ~]# mount -t nfs 192.168.31.140:/nfs/ /media/
[root@czh ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             876M     0  876M    0% /dev
tmpfs                895M     0  895M    0% /dev/shm
tmpfs                895M  8.8M  887M    1% /run
tmpfs                895M     0  895M    0% /sys/fs/cgroup
/dev/mapper/cs-root   17G  1.8G   16G   11% /
/dev/sda1           1014M  195M  820M   20% /boot
tmpfs                179M     0  179M    0% /run/user/0
192.168.31.140:/nfs   17G  1.8G   16G   11% /media

测试

[root@czh upload]# cd ../shared/
[root@czh shared]# ls
[root@czh shared]# touch xixi
touch: 无法创建 'xixi': 只读文件系统
[root@czh shared]# touch hehe
touch: 无法创建 'hehe': 只读文件系统
[root@czh shared]# ll
总用量 0
[root@czh shared]# cd ../upload/
[root@czh upload]# ll
总用量 0
-rw-r--r--. 1 300 300 0 66 13:02 czh
[root@czh upload]# touch xixi
[root@czh upload]# ll
总用量 0
-rw-r--r--. 1 300 300 0 66 13:02 czh
-rw-r--r--. 1 300 300 0 66 13:03 xixi
[root@czh upload]# rm -rf xixi
[root@czh upload]# ll
总用量 0
-rw-r--r--. 1 300 300 0 66 13:02 czh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值