NFS服务搭建以及详细分析

1. NFS服务介绍

1.1 什么是NFS服务

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样,也就是说客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。

1.2 NFS服务的有优缺点

优点:

  • 节省本地存储空间,将常用的数据存放在一台可以通过网络访问的服务器上
  • 简单容易上手
  • 方便部署非常快速,维护十分简单

缺点:

  • 容易发生单点故障,需要做备份处理
  • 在高并发环境中效率性能有限
  • 客户端没有认证机制,数据通过明文传输,缺乏安全性
  • 对数据的完整性不做验证
  • 多台机器挂载NFS服务器时,连接管理维护比较麻烦

2. NFS工作原理介绍

需要基于RPC服务

2.1 RPC简单介绍

RPC(Remote Procedure Call)远程过程调用。
主要功能:在指定每个NFS功能所对应的端口号,并且汇报给客户端,让客户端正确的连接到端口号上去。


RPC服务原理
  • a.执行顺序:1(注册端口)--à2(达成协议)-à3(直接建立联系)--à4(达成协议)--à5(建立连接)
  • b.那为啥rpc能够找到对应的port呢?这是因为当服务器在启动NFS时会随机取用数个port,并且主动的向RPC注册,因此RPC可以知道每个NFS的port对应的NFS功能,然后RPC又是固定使用port111来监听客户端的需求并汇报客户端的正确的port。

3. NFS Server安装

3.1 服务器系统初始化

  • 主机名hostname修改
  • IP地址设定
  • 防火墙iptables关闭
  • 关闭selinux

3.2 yum安装nfs服务和rpc服务

[root@nfs-server ~]# yum install nfs* rpcbind -y

3.3 检查是否已经安装nfs和rpc服务

[root@nfs-server ~]# rpm -qa nfs* rpcbind
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6_8.2.x86_64
nfsometer-1.6-1.el6.noarch
nfs-ganesha-utils-2.3.2-1.el6.x86_64
nfs-ganesha-proxy-2.3.2-1.el6.x86_64
nfs-ganesha-mount-9P-2.3.2-1.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
nfs-ganesha-2.3.2-1.el6.x86_64
nfs-ganesha-vfs-2.3.2-1.el6.x86_64
nfs-ganesha-nullfs-2.3.2-1.el6.x86_64
nfs-utils-lib-devel-1.1.5-11.el6.x86_64
nfs4-acl-tools-0.3.3-8.el6.x86_64

3.4 启动rpc服务和nfs服务(先启动rpc后启动nfs)

[root@nfs-server ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@nfs-server ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

3.5 设置开机自启动

[root@nfs-server ~]# chkconfig rpcbind on
[root@nfs-server ~]# chkconfig nfs on
[root@nfs-server ~]# chkconfig --list | egrep "nfs|rpcbind"
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfs-rdma        0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off

3.6 建立和配置共享目录

[root@nfs-server ~]# mkdir /data
[root@nfs-server ~]# vim /etc/exports 
/data 192.168.84.1/24(rw,sync,no_all_squash)

3.7 平滑加载nfs服务并检查

[root@nfs-server ~]# /etc/init.d/nfs reload
[root@nfs-server ~]# showmount -e localhost
Export list for localhost:
/data 192.168.84.1/24

4. NFS Client 安装

4.1 安装rpcbind服务

[root@nfs-client ~]# yum install rpcbinid -y

4.2 启动并检查服务,设置开机自动启动

[root@nfs-client ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@nfs-client ~]# chkconfig rpcbind on
[root@nfs-client ~]# chkconfig --list | grep rpcbind
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off

4.3 挂载server端共享的文件

[root@nfs-client ~]# mount -t nfs 192.168.84.102:/data /tmp/

4.4 查看是否挂载成功

[root@nfs-client ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      8.4G  1.1G  6.9G  14% /
tmpfs                 238M     0  238M   0% /dev/shm
/dev/sda1             477M   33M  419M   8% /boot
192.168.84.102:/data  8.4G  1.1G  6.9G  14% /tmp

5. NFS配置权限相关

nfs权限参数
常用命令
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 29.1 引言 本章中我们要讨论另一个常用的应用程序:NFS(网络文件系统),它为客户程序提供透明的文件访问。NF...
    张芳涛阅读 1,034评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,280评论 19 139
  • 《鸟哥Linux私房菜》《老男孩Linux运维》 NFS介绍 NFS维基百科:网络文件系统(英语:Network ...
    Zhang21阅读 4,349评论 0 13
  • 微信:任致一 1.仿写微博 每当我处于人生的低谷时,都会以“天生我材必有用”这句话来激励自己,后来渐渐长得大了,才...
    致一阅读 320评论 2 0
  • 今天我要给大家分享的书叫《你担心的事,9成都不会发生》。 前几天有位朋友在后台留言,说他容易胡思乱想,比如接了一个...
    穆思心语阅读 683评论 0 1