NFS(网络文件系统)简单总结

简单原理:

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

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

    3.服务端和客户端基于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端的目录。

简单结构图:


wKioL1YoWtiy03l7AAG2dwnIl90070.jpg

生产环境:

服务端:

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

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

客户端:

1.主要的程序:portmap

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


配置过程:

服务端:

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


NFS文件系统的优缺点:

    优点:

1.简单:配置简单,容易上手掌握

2.方便:部署非常快速,维护简单

3.可靠:在软件层面上看,数据比较可靠,经久耐用

    缺点:

1.局限性:存在单点故障,如果server端宕机了所有客户端都不能访问共享目录(可用负载均衡及高可用弥补)

2.在高并发的环境,NFS效率性能有限(一般几千万以下PV的网站不是瓶颈,除非网站架构太差)

3.客户端访问认证的时候基于IP和主机名,安全性一般,不过在内网问题不大

4.NFS文件系统不对数据传输的完整性进行验证

5.多台机器挂载服务器时,连接管理维护麻烦,如果是server端出现问题后,客户端可能会挂掉,出现僵死的状态。