详细讲解NFS配置过程

为什么要用NFS

  NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

   NFS最早是由Sun公司发展出来的,

  简单的来说:它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储。

以下是NFS最显而易见的好处:

  1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

  2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。

  3. 一些存储设备CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

  NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

  NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

一、准备阶段:(客户端和服务端)

[[email protected] ~]# cat /etc/redhat-release #查看系统版本
CentOS release 6.8 (Final)
[[email protected]-server ~]# uname -r #查看系统内核版本
2.6.32-642.11.1.el6.x86_64
[[email protected]-server ~]# uname -m #查看系统是否64位
x86_64

二、NFS服务端所需的软件列表

nfs-utils: 这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)

rpcbind: 这个是CentOS6.X的RPC主程序(CentOS5.X的为portmap)

三、检查软件是否安装

[[email protected] ~]# rpm -qa nfs-utils rpcbind #检查安装的软件包
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6_8.2.x86_64

<如果没有安装在系统中通过yum 命令进行安装以上两个包>

[[email protected] ~]# yum install -y nfs-utils rpcbind #安装上述所需的两个软件包

四、启动NFS服务端相关服务

---开启rpcbind服务

[[email protected] ~]# /etc/init.d/rpcbind status  #查询rpcbind服务状态并启动
rpcbind (pid 1281) is running...
[[email protected]-server ~]# LANG=en
[[email protected] ~]# lsof -i :111  #查询rpcbind监听状态 (111是rpcbind的主端口)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 1281 rpc 6u IPv4 10766 0t0 UDP *:sunrpc
rpcbind 1281 rpc 8u IPv4 10769 0t0 TCP *:sunrpc (LISTEN)
rpcbind 1281 rpc 9u IPv6 10771 0t0 UDP *:sunrpc
rpcbind 1281 rpc 11u IPv6 10774 0t0 TCP *:sunrpc (LISTEN)
[[email protected] ~]# netstat -lntup |grep rpcbind #查询rpcbind服务启动状态 (同lsof查询端口效果一样)
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1281/rpcbind
tcp 0 0 :::111 :::* LISTEN 1281/rpcbind
udp 0 0 0.0.0.0:608 0.0.0.0:* 1281/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 1281/rpcbind
udp 0 0 :::608 :::* 1281/rpcbind
udp 0 0 :::111 :::* 1281/rpcbind
[[email protected] ~]# chkconfig --list rpcbind #检查rpcbind自启动情况
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[email protected] ~]# rpcinfo -p localhost #查看NFS服务项rpc服务器注册的端口信

<这个是还未启动FNS服务的rpcbind状态>

---启动NFS服务

[[email protected] ~]# /etc/init.d/nfs status #查看NFS服务并启动
rpc.svcgssd is stopped
rpc.mountd (pid 1526) is running...
nfsd (pid 1542 1541 1540 1539 1538 1537 1536 1535) is running...
rpc.rquotad (pid 1521) is running...
[[email protected] ~]# netstat -lntup|grep nfs #查看NFS端口启动(FNS默认端口为2049)
[[email protected]-server ~]# lsof -i :2049 #查看NFS端口启动(FNS默认端口为2049)
[[email protected]-server ~]# netstat -lntup|grep 2049 #查看NFS端口启动(FNS默认端口为2049)
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 :::2049 :::* LISTEN -
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp 0 0 :::2049 :::* -
[[email protected] ~]# rpcinfo -p localhost #启动NFS过后rpcbind服务已经启用了对FNS的端口映射

<这个是启动FNS服务过后 的rpcbind的状态>

[[email protected] ~]# chkconfig --list nfs  #查看nfs的开机自启动情况
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected]-server ~]# chkconfig nfs on #让FNS开机自启动

由于在FNS服务过程中,必须先启动rpcbind,再启动nfs,这样才能让NFS在rpcbind上注册成功

[[email protected] ~]# less /etc/init.d/rpcbind  #查看rpcbind服务启动详情

同理我们查看nfs服务的自启动详情

[[email protected] ~]# less /etc/init.d/nfs

<由上面可以看出系统默认会让rpcbind服务先启动,再启动nfs服务,但是在实际生产环境中,我们最好不要用chkconfig来控制服务的开机自启动,我们生产环境中我们一般用rc.local来管理。主要是为了方便以后查阅哪些服务开机自己,并且能控制先后顺序,如图>

<为了规范化我们用rc.local来管理开机自启动>

[[email protected] ~]# vi /etc/rc.local

NFS服务常见进程的详细说明

我们可以重NFS服务的启动过程看到以下几个进程:

[[email protected] ~]# ps -ef |egrep "rpc|nfs" #查看nfs相进程
rpcuser 1303 1 0 Nov22 ? 00:00:00 rpc.statd  #检查文件一致性
root 1512 2 0 Nov22 ? 00:00:00 [rpciod/0]
rpc 2723 1 0 02:43 ? 00:00:00 rpcbind
root 2896 1 0 02:56 ? 00:00:00 rpc.rquotad  #磁盘配额进程
root 2901 1 0 02:56 ? 00:00:00 rpc.mountd #权限管理验证等
root 2908 2 0 02:56 ? 00:00:00 [nfsd4]
root 2909 2 0 02:56 ? 00:00:00 [nfsd4_callbacks]
root 2910 2 0 02:56 ? 00:00:00 [nfsd]
root 2911 2 0 02:56 ? 00:00:00 [nfsd]
root 2912 2 0 02:56 ? 00:00:00 [nfsd]
root 2913 2 0 02:56 ? 00:00:00 [nfsd] #NFS主进程,管理登入,身份判定
root 2914 2 0 02:56 ? 00:00:00 [nfsd]
root 2915 2 0 02:56 ? 00:00:00 [nfsd]
root 2916 2 0 02:56 ? 00:00:00 [nfsd]
root 2917 2 0 02:56 ? 00:00:00 [nfsd]
root 2948 1 0 02:56 ? 00:00:00 rpc.idmapd  #名称映射

<如果对上述进程不明白可以 用man命令查阅帮助信息,如 “man rpc.statd”>

五、配置NFS服务端

前面介绍了NFS的启动,接下来我们配置NFS服务端的配置

/etc/exports 是NFS程序的配置文件。并且默认为空

/etc/exports文件的配置格式为:

NFS共享目录 NFS客户端地址1(参数1,参数2,参数3......) 客户端地址2(参数1,参数2,参数3......)

NFS共享目录 NFS客户端地址(参数1,参数2,参数3......)

<我们在此共享给 192.168.1.0/24所有主机,>

<man exports 查看 例子和参数详情。如下:>

配置完成exports后平滑重启NFS服务 ,下面两条命令等同

[[email protected] ~]# /etc/init.d/nfs reload
[[email protected]-server ~]# exportfs -r
[[email protected] ~]# showmount -e 127.0.0.1 #查看本机挂载情况

<必须先启动rpcbinc 再启动nfs才会显示正确>

[[email protected] ~]# mount -t nfs 192.168.1.5:/data /mnt #在本机测试挂载

<我们用客户机器进行挂载并测试>

<挂在过后由于权限问题,我们不能再/mnt里面进行编辑删除新增文件等操作。接下来为/data目录进行权限的设置>

六、配置NFS客户端

客户端也需要安装rpcbind和nfs-utils软件,并且设置开机自启动。(只需要启动rpcbind即可)

然后再进行如下操作

<自此,我们配置成功,但是别高兴。我们只是挂载动作完成了,但是我们没有权限对挂载的目录进行各种操作。>

接下来我们在服务端配置如下命令,给/data目录添加nfsnobody权限,

[[email protected] ~]# cat /var/lib/nfs/etab  #查看一条配置的详细信息

现在我们可以对挂载目录进行各种操作,但是还没有完。我们需要把挂载命令放在rc.local里面,

我们不要把挂载命令放在fstab,因为fstab比网络先启动,会出现挂载不上网络NFS

-------------------------------------------------------------------------------------------------------

WINDOWS客户端的配置

现在我们客户端和服务端的NFS配置都已经完成,多台客户端同上的客户端操作,

如果是WINDOWS客户端,我们需要在程序和功能里面启用 NFS客户端。

Windows 7 连接 NFS Server:

控制面板——所有控制面板项——程序和功能——勾选NFS服务,NFS客户端

CMD 进入命令行

mount ip:/www/abc/ z:

其它不支持直接连接NFS Server的windows,可以在系统上面安装SFU (Windows Services for UNIX),点开始–>点程序–>点Windows Services for UNIX–>Korn Shell

mount ip:/www/abc/ z:

------------------------------------------------------------------------------------------------------

总结NFS服务的配置过程:

--服务端--

1.安装软件

yum install -y nfs-utils rpcbind

2.启动服务(先启动rpcbind)

/etc/init.d/rpcbind start

/etc/init.d/nfs start

3.设置开机自启动

chkconfig nfs on

chkconfig rpcbind on

修改rc.local

4.配置NFS服务

echo "/data 192.168.1.5/24(rw,sync)"

mkdir -p /data

chown -R nfsnobody.nfsnobody /data

5.重新加载服务

/etc/init.d/nfs reload 或者 exportfs -r

6.检查或测试挂载

showmount -e localhost

mount -t nfs 192.168.1.5:/data /mnt

--客户端-

1.安装软件

yum install -y nfs-utils rpcbind

2.启动rpcbind

/etc/init.d/rpcbind start

3.配置开机自启动

chkconfig rpcbind on

或者修改rc.local

4.测试服务端共享情况

show -e 192.168.1.5

5.挂载

mkdir -p /data

mount -t nfs 192.168.1.5:/data /data

6.测试是否有读写权限

-----------------------------------------------------------------------------------------------

常见错误

1.df -h 检查服务端的NFS服务是不是启动成功,

2.确认NFS客户端showmount是否OK。

3.确认rpcbind上是否有NFS注册,(rpcbind必须先启动)

3.确认网络是否通畅

4.确认是否因为防火墙挡住(一般内网不需要开启防火墙,在出口加防火墙就够了)

-----------------------------------------------------------------------------------------

后续会对NFS各种优化的内容进行更新

参考内容: 老男孩老师视频

时间: 2024-10-28 23:05:16

详细讲解NFS配置过程的相关文章

图解MySQL5.5详细安装与配置过程

出自:http://www.dbhom.com/show.aspx?id=77&cid=9 MySQL是一个开源的关系型数据库管理系统,原由瑞典MySQL AB公司开发,目前属于Oracle公司旗下.MySQL是目前世界上开源数据库中最受欢迎的产品之一,是应用最为广泛的开源数据库.MySQL就是LAMP中的M. 本文详细讨论的是MySQL最新版MySQL5.5详细安装与配置过程.MySQL5.5安装程序可以MySQL官网下载,下载地 址:http://dev.mysql.com/download

nfs配置过程及基础配置总结

1.开启portmap和nfs服务service portmap start     service nfs start     chkconfig --level nfs 35 on     chkconfig --level protmap 35 on 2.将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/     vim /etc/exports     在exports文件中添加     /sharedisk    192.168.0.0/24(rw,no_

Linux上redis详细安装及配置过程

本次介绍下redis的安装及详细配置,需要注意的是本地介绍的不是通过yum方式安装,也不推荐大家使用yum安装,安装完了其实啥也不知道. 1,通过rz命令将本地的tar.gz包上传到linux服务器上;我这里用的是redis-3.0.2.tar.gz,上传到/home/download下: 2.tar -zxvf 命令解压文件: 3,进入到redis-3.0.2文件夹下执行make编译命令, 看到下面这样的结果说明一切正常, 5,执行 make install命令进行安装,我个人习惯将软件都安装

hadoop初学的第一个程序详细讲解-含排错过程

学hadoop,第一个程序当然就是WordCount,这个程序不用自己照着书上抄写,hadoop的安装包里已经带了很多学习示例,其中就包括WordCount,如下图中的最后一个文件就是了 先附上两个测试文件如下: echo "Hello World Bye World" > file01 echo "Hello Hadoop Goodbye Hadoop" > file02 hadoop dfs -mkdir input hadoop dfs -put

Spherical CNNs代码配置过程

ICLR best paper: Spherical CNNs 论文链接:https://arxiv.org/abs/1801.10130 GITHUB地址:https://github.com/zhixuanli/s2cnn 中文讲解地址: https://www.zhihu.com/question/68713342 https://zhuanlan.zhihu.com/p/34042888 简介: In this paper we introduce the building blocks

【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装

NFS详细配置过程

在公司主要是需求是共享服务,但是没有多余的服务器来做共享平台,现在利用一台测试机来做NFS服务器,充分利用服务器的磁盘资源       O(∩_∩)O哈哈~ 在公司安装成功后,回家后,参考博友的自己也来写一个详细的安装过程.方便以后温故. 为什么要用NFS NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,

详细讲解多个华为交换机配置实例

详细讲解多个华为交换机配置实例 交换机的配置是网络管理员的基本技能,本文以华为S5700交换机为例,结合使用sNSP模拟器,详细阐述VLAN配置.VLAN之间通信.跨交换机VLAN配置.跨交换机VLAN之间通信等.(备注:以下配置的都是基于交换机接口的VLAN) 一.单台交换机下VLAN配置 1.配置单个VLAN 华为S5700本身默认有个VLAN,若不另行配置,直接接入交换机的终端都属于默认的VLAN,其编号是1.若要手动配置一个指定编号为10的VLAN,可用eNSP创建如下拓扑. 其中LSW

转载 - Struts2 拦截器详细配置过程

出处:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Interceptor ,Action去实现这个接口; Interceptor 它其中有三个方法(init(),destroy() ,interceptor()): Init()方法:在服务器起动的时候加载一次,并且只加载一次; Destroy()方法:当拦截器销毁时执行的方法; Interceptor()方