一、搭建nfs服务服务器(由于图片不能显示可以下载,可以到我的下载页面下载word,不要积分的)
下载地址:http://download.youkuaiyun.com/user/y0908105023
1、nfs特点
nfs(Network FileSystem)网络文件系统,是在unix系统间实现文件共享的一种方法。它支持应用程序在客户端通过网络访问访问位于服务器端数据的一种文件协议。
nfs的优点和使用的好处包括:
(1):节约磁盘空间,因为多个系统共享一个文件。
(2):节约硬件资源,nfs可以共享软驱、cdrom等存储设备。
(3):用户的主目录设定,经过nfs的设定,可以在客户端指定这个用户的主目录的位置,并自动挂载,就可以在任何计算机上使用用户主目录的文件。
(4):节约成本,无论从哪个方面,使用nfs节约硬件资源、节约磁盘空间都可以节约成本。
2、nfs工作原理
nfs是一种基于XDR/RPC协议的。XDR(externaldata representation,外部数据调用),它提供一种把数据从一种格式转化成另一种标准数据格式的方法,确保在不通的计算机、操作系统、程序中,所有的数据都能够相互交互。
RPC(remoteprocedure call )远程过程调用,客户机通过网络传送RPC到远程计算机,请求服务。
nfs的工作流程分为下面几个步骤:
(1)、客户端发出信息,请求服务
(2)、客户端占位程序把客户送出的参数转化成标准的XDR格式,通过RPC得到要调用服务的端口,并放入到网络中。
(3)、请求服务到达服务器后,通过XDR将客户端的参数转化为可以识别的格式,然后通过RPC调用服务器端的某个固定端口程序,服务器将取出的数据以同样的方式传送给客户端。
流程图如下:
nfs的调用流程是由于网络的七层协议规定的,七层协议的图示如下:(此图来源网络)
3、nfs的权限机制
现在假设客户端的用户为zs(uid 501),现在nfs权限机制的图解如下:
参考网址:http://linux.vbird.org/linux_server/0330nfs.php#What_NFS_perm
通过以上的权限机制,并看了鸟哥的说明,如果要搭建安全的nfs服务,还需要有一个可以确认用户端身份和服务端什么的服务器,nfs才算是安全。
4、安装nfs服务
安装nfs服务需要nfs-utils-1.2.3-15.el6.i686.rpm nfs-utils-lib-1.1.5-4.el6.i686.rpm这两个rpm包,这两个包均可以在镜像iso文件中找出。下面开始安装这两个文件
rpm -ivh nfs-utils-1.2.3-15.el6.i686.rpm nfs-utils-lib-1.1.5-4.el6.i686.rpm
安装时报了下面这个错:
上面出现的错误,明显的告诉我们需要先安装依赖包,这个依赖包总共有四个:分为是
libevent-1.4.13-1.el6.i686.rpm
libgssglue-0.1-11.el6.i686.rpm
libtirpc-0.2.1-5.el6.i686.rpm
rpcbind-0.2.0-8.el6.i686.rpm
那么我们就先要安装这些依赖包。
5、安装nfs服务依赖包
这些依赖包均可以在iso镜像中找到,现在我们就把这些依赖包找到放入到我们的新建的libdir文件夹下面统一管理。然后分别安装
安装libgssglue-0.1-11.el6.i686.rpm
安装libtirpc-0.2.1-5.el6.i686.rpm
安装rpcbind-0.2.0-8.el6.i686.rpm
6、再次安装nfs服务并加入配置
安装好依赖包后,现在可以安装nfs服务了
上面显示安装成功,现在开始配置共享目录:
vi /etc.exports
打开这个文件,写入下面配置:
解释一下上面的意思:
前面是被共享的文件路径。
括号内insecure是关闭安全性。
rw:客户端对共享文件的操作权限。
no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限
下面的来源于网络:
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash客户机用root访问该共享文件夹时,不映射root用户
all_squash客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid将客户机上的用户映射成指定的本地用户ID的用户
anongid将客户机上的用户映射成属于指定的本地用户组ID
sync资料同步写入到内存与硬盘中
async资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
然后分别启动 rpcbind 、nfs(注意顺序):
service rpcbind start
service nfs start
7、配置客户机
客户机中安装服务器一样,安装nfs服务,只是不需要配置/etc/exports文件。安装成功后先后启动rpcbind 、nfs,然后开始挂载。
挂载命令:
mount -t nfs 192.168.123.123:/usr/fileshare/usr/fileshare
挂载成功测试图:
主机端:
客户端: