网络文件系统--NFS

一、NFS简介

    1.1、什么是NFS?

        NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

    1.2、简单原理

 服务端:NFS文件系统依赖RPC协议(portmap)实现对外提供服务。

 客户端:用户访问进程依赖RPC协议(portmap)取得服务端提供的服务。

 服务端和客户端基于TCP/IP协议进行通信。

>>server端的nfs向本机的RPC(portmap)注册服务和端口----->>

>>client端的用户向本机RPC(portmap)提出远程访问请求----->> 

>>client端的RPC(portmap)向server端的RPC(portmap)请求获得用户需求nfs注册的端口---->>

>>server端的RPC(portmap)向clinet端的RPC(portmap)发送nfs注册的端口

>>client端的RPC(portmap)在获得对应端口后直接向server端的nfs服务器请求访问并且挂载到client端的目录。

    1.3、NFS流程图

        网络文件系统--NFS

    1.4、NFS原理图

        网络文件系统--NFS

二、环境部署

    2.1、生产环境            

                服务端:

                    1.两个主要的程序:portmap、nfs-utils

                    2.网络访问正常,假设IP地址192.168.1.98/24

                客户端:

                    1.主要的程序:portmap

                    2.网络访问正常,假设IP地址192.168.1.99/24


    2.2、配置过程     

                 服务端:

1.检查portmap和nfs-utils是否安装

#rmp -aq portmap nfs-utils

2.首先启动portmap服务,然后启动nfs服务 ,一般情况下设置开机自动启动

#/etc/rc.d/init.d/portmap start  (or:#service portmap start)

#/etc/rc.d/init.d/nfs start   (or:#service nfs start)

#chkconfig portmap on

#chkconfig nfs on

3.建立共享文件目录/tmp/serverdir,修改满足最大需求的最小权限

#mkdir -p /tmp/serverdir

4.nfs配置文件/etc/exports,设定满足最大需求的最小权限

#vi /etc/exports

添加一段内容:

格式:共享目录绝对路径 共享给那些主机(设定的权限)

eg:##将/tmp/serverdir共享给192.168.1.0/24这个网段的主机可读写、同步写到磁盘、默认的匿名访问

/tmp/serverdir 192.168.1.0/24(rm,sync)

5.让配置文件/etc/exports生效方法:

方法1.#exportfs -rv (推荐使用)

方法2.#/etc/rc.d/init.d/nfs reload   (or:#service nfs reload) (推荐使用)

方法3.#/etc/rc.d/init.d/nfs restart   (or:#service nfs restart) (不推荐使用)

                客户端:

1.检查portmap是否安装

#rmp -aq portmap 

2.启动portmap服务,一般情况下设置开机自动启动

#/etc/rc.d/init.d/portmap start  (or:#service portmap start)

#chkconfig portmap on

3.建立挂载目录/tmp/clientdir,修改满足最大需求的最小权限

#mkdir -p /tmp/clientdir

4.使用/usr/bin/showmount -e 服务器的IP地址,查看服务器机导出的所有远程目录的列表

#/usr/bin/showmount -e 192.168.1.98

5.使用/bin/mount挂载服务器共享的目录到本地/tmp/clientdir目录

#/bin/mount -t nfs 192.168.1.98:/tmp/serverdir /tmp/clientdir

6.挂载后情况使用命令dh -h查看挂载的情况

#df -h