您的位置:首页 > 运维架构 > Linux

Linux 网络文件系统(NFS)简介及环境搭建

2012-08-15 18:40 435 查看

 

      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文件进行编辑

        sudo /etc/exports

       文件中提供了怎样编辑文件路径以及ip配置的例子

 

       # /etc/exports: the access control list for filesystems which may be exported

       # to NFS clients. See exports(5).

       #

       # Example for NFSv2 and NFSv3:

       # /srv/homes hostname1(rw,sync,no_subtree_check)                  hostname2(ro,sync,no_subtree_check)

       #

       # Example for NFSv4:

       # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)

       # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)

       #

       以下是我的编辑:

       /home/luliang/share 192.168.135.113(rw,sync,no_subtree_check)

      首先是共享文件夹的目录或者文件,然后空格,接着是共享网络IP,可以是一台机器的IP,也可以是一个网段,紧接着是客户端的各种权限,首选是rw读写权限,接着是是否同步,再次是nfs客户端共享目录使用者权限。

       3、重启NFS服务,

         首先必须要启动端口映射的RPC服务,向RPC注册端口

       sudo /etc/init.d/portmap start

       出现一下内容表示成功:

        * Exporting directories for NFS kernel daemon... [ OK ]

        * Starting NFS kernel daemon [ OK ]

        再启动NFS服务

        sudo /etc/init.d/nfs-kernel-server start

         * Exporting directories for NFS kernel daemon... [ OK ]

         * Starting NFS kernel daemon [ OK ]

        4、输入exprotfs -rv命令重新导出NFS共享目录
          sudo /usr/sbin/exportfs -rv
          exporting 192.168.135.113:/home/luliang/share

 

          好吧到此配置完成!

         在 192.168.135.113机器上做个测试,当然首先必须要安装 nfs-kernel-server,并且启动。

         挂载共享文件夹,

         sudo mount -t nfs 192.168.135.109:/home/luliang/share /mnt

         看看共享文件夹下的东东:

         cd /mnt;ls -l

         Ok啦~!如果向卸载就umount一下;

         sudo umount /mnt

 

            各位看官,文章是在Linux写的,然后拷贝到这个鬼编辑器里面,效果实在是搓~

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: