#1 关于nfs
Cifs挂载samba共享文件,是永久挂载,但是在实际生活中,这样有点浪费资源,我们想实现用的时候自动挂载,不用的时候自动卸载,这时候nfs就派上用场了
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
NFS体系至少有两个主要部分
一台NFS服务器和若干台客户机
客户端通过TCP/IP网络远程访问存放在NFS服务器上的数据。
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数。
#2 NFS优点
节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。
这可以减少整个网络上可移动介质设备的数量。
nfs共享的原理(客户端通过网络共享服务器磁盘中的数据)
NFS共享存储的使用
NFS 是Network File System的缩写,即网络文件系统,一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布
功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据
是在类Unix系统间实现磁盘文件共享的一种方法
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”
它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享
NFS在文件传送或信息传送过程中依赖于RPC协议
RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制
NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议
而这些传输协议用到这个RPC功能的,可以说NFS本身就是使用RPC的一个程序,或者说NFS也是一个RPC SERVER
所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT
这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应
可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输
NFS服务依赖与于PRC(Remote Process Call,远程过程调用)机制,以完成远程到本地的映射过程
RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解rpc就是一个中介服务
#3 搭建基础实验环境
实验环境:
主机信息 | 功能 |
---|---|
desktop | nfs服务器 |
server | 客户端 |
(1)在真机开启desktop虚拟机和server虚拟机
[root@foundatio61 ~]# rht-vmctl reset desktop重置desktop虚拟机
[root@foundatio61 ~]# rht-vmctl start desktop开启desktop虚拟机
[root@foundatio61 ~]# rht-vmctl view desktop图形化开启desktop虚拟机
(2)配置desktop虚拟机的网络
[root@localhost Desktop]# cd /etc/sysconfig/network-scripts切换到网络配置的路径
[root@localhost network-scripts]# ls查看网络配置文件
[root@localhost network-scripts]# vim ifcfg-eth0编辑网络配置文件
[root@localhost network-scripts]# systemctl restart network重启网络
(3)改desktop主机的名称
[root@localhost network-scripts]# hostnamectl set-hostname server.westos.com(服务端)
(4)在desktop主机中做本地解析
[root@localhost network-scripts]# vim /etc/hosts
172.25.254.111 server.westos.com
(5)在desktop主机中配置本地yum源
(6)给server虚拟机配置网络
[root@localhost Desktop]# cd /etc/sysconfig/network-scripts切换到网络配置路径下
[root@localhost network-scripts]# ls查看网络配置文件
[root@localhost network-scripts]# vim ifcfg-eth0编辑网络配置文件
[root@localhost network-scripts]# systemctl restart network重启网络
(7)改server主机名称
[root@localhost network-scripts]# hostnamectl set-hostname client.westos.com(测试端)
(8)给server主机做本地解析
[root@localhost network-scripts]# vim /etc/hosts
172.25.254.211 client.westos.com
(9)给server主机配置本地yum源
[root@localhost network-scripts]# cd /etc/yum.repos.d
[root@localhost network-scripts]# ls
#4搭建一个基本的NFS服务器,实现本地可以挂载
(1)实验目的
搭建一个nfs服务器,使nfs服务器的目录可以挂载在客户端本地,并且在本地修改
在desktop主机上面搭建nfs服务器
(2)关于NFS共享的常用参数:
ro # 只读访问
rw # 读写访问
sync # 所有数据在请求时写入共享
async # NFS在写入数据前可以相应请求
secure # NFS通过1024以下的安全TCP/IP端口发送
insecure # NFS通过1024以上的端口发送
wdelay # 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay # 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide # 在NFS共享目录中不共享其子目录
no_hide # 共享NFS目录的子目录
subtree_check # 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check # 和上面相对,不检查父目录权限
all_squash # 共享文件的UID和GID映射匿名用户
no_all_squash # 保留共享文件的UID和GID(默认)
root_squash # root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash # root用户具有根目录的完全管理访问权限
anonuid=xxx # 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx # 指定NFS服务器/etc/passwd文件中匿名用户的GID
(3)实验步骤
在desktop主机上面搭建NFS服务器
[root@