日期:2014-05-16 浏览次数:20672 次
?
? ? ? Linux网络文件系统是实现网络文件共享的一项重要的服务,他是实现文件共享的一个重要的手段,他不仅可以实现不同主机之间的文件共享,而且可以实现不同操作系统之间,以及系列文件的文件共享,NFS让来自远程主机中的文件挂载到你的主机中使你可以向访问你自己机器中的文件一样访问远程主机中的文件.而且你可以在你的主机上使用常规的命令对文件进行操作。
? ? ? ? 在介绍实现NFS之前还需要介绍一下一个重要的服务就是RPC(Remote Procedure Call 远程方法调用)服务。之前我的理解就是一种远程代理,客户端发送参数到服务器,服务器计算结果之后返回结果给客户端,当然有点牵强,在linux中RPC也是要实现这样一种远程方法调用然后返回结果的功能,但是他提供的功能远不止于此,他还要实现端口的映射功能,因为服务器端要实现的功能很多,具体的端口必须要随机临时产生,不能写死。RPC服务要实现的功能就是当客户端来请求服务的时候,他需要把对应服务的端口返回给客户端。然后客户端才能实现其它操作。这里RPC使用的端口是111,在启动NFS服务之前还必须要向RPC注册已经选择的端口,之后RPC开始监听来自客户端对应RPC的请求。
? ? ? Linux作为一个用权限说话的操作系统,对于客户端的各种文件操作当然有各种限制。首先客户端连接RPC服务器需要有连接的权限或者说访问共享文件夹的权限,客户端对服务器端的各种文件rw操作需要对应的读写权限,NFS 的服务器端与客户端的使用者身份确认机制 。文件系统的 inode 所记录的属性为 UID, GID 而非账号与群组名。 那一般 Linux 主机会主动的以自己的 /etc/passwd, /etc/group 来查询对应的使用者、组名。NFS server/NFS client 刚好有相同的账号与群组,则此时使用者可以直接以自己的身份进行服务器所提供的文件系统之存取。如果服务端没有对应用户的ID存在那么用户只能以匿名者UID为65534 的身份(这是Linux系统中的一个特殊的user)进行操作。但是文件的所有者此时就是无拥有者。如果客户端是以root登录的,也会以压缩为匿名者。
? ? ? ? 接下来我们介绍怎样安装构建一个Linux虚拟文件系统,首先客户端和服务器都需要安装NFS以及RPC软件,客户端和服务器都使用相同的RPC端口111进行通信。
? ? ? 1、安装NFS软件,这里我们选择 nfs-kernel-server
? ? ? ? sudo apt-get install nfs-kernel-server
? ? ? ? nfs-kernel-server安装是会自动安装nfs-common和portmap,portmap会自己实现RPC端口映射的功能。
? ? ? 2、设置服务器的挂载目录或者文件以及开放权限
? ? ? 进入exports文件进行编辑<