一、NFS简介

NFS就是Network FileSystem的缩写,最早之前是由Sun公司所发展出来的。他最大的功能就是可以透过网络,让不同的机器、不同的操作系统可以彼此分享个别档案(share file)。这个NFS Server可以让你的PC来讲网络远程的NFS主机分享的目录,挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分割操一样。说白了,就相当于Windows下面的文件共享一样.....

NFS使用的协议是RPC(远程过程调用)协议来协助NFS本身的运作! NFS本省的服务并没有提供数据传输的协议,但是NFS却能够让我们进行档案的分享,这其中的原因就是NFS使用到一些其它相关的传输协议!而这些传输的协议,就是使用到这个所谓的RPC的功能!这也就是说,NFS本身就是使用RPC的一个程序了,NFS可以视作一个RPC server,NFS管理主要管理分享出来的目录,而至于数据的传输,就直接丢给RPC协议来运作!

NFS Server总过需要启动至少两个进程(rpc.nfsd和rpc.mountd),一个管理Client是否可以登入的问题,另一个管理登入主机后的用户是否能够使用的档案权限!nfsd这个进程主要在管理客户端是否能够登入主机的权限,mountd这个进程则在管理NFS的档案系统,当客户端顺利通过nfsd后,登入到主机之后,在他使用可以NFS Server分享的档案之前,还会经过档案使用权限的认证程序!只有通过这一关之后,Client才能够使用NFS服务所分享的档案。

当客户端尝试使用RPC Server所提供的服务时,由于Client需要取得一个可以连接的端口(port)才能够使用RPC Server所提供的服务,因此,客户端首先去请求rpcbind(旧版本是portmp),然后,rpcbind将自己管理的端口映射告知客户端,好让客户端可以连接上服务,因此:启动NFS之前,一定要先启动rpcbind

总结一下安装NFS都需要什么,首先需要rpcbind,将端口告知客户端。其次需要nfs-utils,提供nfsd进程和mountd这两个NFS进程。

二、安装环境

这里我们提供两台主机,一台用来安装NFS服务器,一台用来挂载服务器分享的目录,操作系统全部采用的是centOS6.4,下载地址我的博文《Hadoop完全分布式模式搭建》中有,如果,对Hadoop感兴趣的话,可以看看:http://blog.sina.com.cn/s/blog_c09822a40102v9ja.html

主机名                                               IP地址                                        分享目录/挂载目录

centosDateNode3                      192.168.10.71                                    /home/roboson

centosNameNode                      192.168.10.66                                    /home/roboson1

三、大致流程

<1>.安装NFS Server

<2>.启动服务

<3>.设定分享的目录

<4>.分享目录的范围详解(给哪些客户端分享)

<5>.分享目录的权限详解(客户端能对分享的目录进行哪些操作)

<6>.服务器分享目录

<7>.服务器对分享目录的操作(卸掉,修改后重新分享使生效等)

<8>.服务器和客户端如何查看分享的目录

<9>.客户端挂载目录

<10>.客户端卸载目录

<11>.NFS Server如何设置开机自动启动

<12>.客户端如何设置开机自动挂载分享目录

四、开工

<1>.安装NFS Server

首先查看NFS Server是否已经安装,其实在默认情况下,NFS Server已经安装好了,下面查看是否安装了NFS Server,打开命令行,输入以下指令:

rpm -qa|grep nfs #前面的博文中这个指令用过好多次了

前面也说过,在运行NFS Server之前,一定要先启动rpcbind,所以,用相同的方法,查看是否安装

了rpcbind,在命令行下输入以下指令:

rpm -qa|grep rpcbind

如上图所示,说明系统已经安装了NFS Server和rpcbind,如果没有安装,也无所谓,centos操作系统中自带有安装包,打开系统挂载的地方,然后,进行安装!打开命令行,输入以下指令:

cd /media/CentOS_6.4_Final/Packages          #切换到挂载光驱的位置           

ls rpcbind*                                  #列出所有以rpcbind开头的包  

rpm -ivh  rpcbind-0.2.0-11.el6.x86_64.rpm    #安装列出的软件包(一个) 

如上图所示,安装成功,那么下来,就是安装NFS Service,同上面一样,先进入软件安装包中,然后,在命令行中输入以下指令:

cd /media/CentOS_6.4_Final/Packages           #切换到挂载光驱的位置           

ls nfs*                                       #列出所有以rpcbind开头的包  

rpm -ivh  nfs-utils-1.2.-.el6.x86_64.rpm   #安装列出的软件包(一个) 

<2>.启动服务

在安装完成后,我们就需要启动NFS Server所需要的进程,查看一下服务的状态,看是否启动,在命令行下输入以下指令:

service nfs status                                  #查看NFS Server的状态          

service rpcbind status                              #查看rpcbind的状态                

如上图所示,所需要的进程都已经开启!接下来nfs就可以设定分享目录了。

<3>.设定分享的目录

Linux把要分享的目录的路径都放在一个文件中,并且有分享的客户端范围,有分享的权限,这个目录

在/etc/exports,如果没有这个文件,可以自己手动建一个,记录分享目录的格式:

【分享的目录】【单个或多个主机名称】或【IP范围】(权限)

/home/roboson  *(rw)

如上所示,分享的目录是/home/roboson,对所有人开放  ,权限是可读可写!

好,分享的范围都有哪些定义法,权限都有哪些呢?

<4>.分享目录的范围详解(给哪些客户端分享)

(1).指定ip地址的主机:192.168.10.71

只允许IP地址为192.168.10.71的主机可以登录到此共享目录

(2).指定子网中的所有主机:192.168.0.0/24或者192.168.0.0/255.255.255.0

只允许192.168.10.1~192.168.10.254这个网段内的IP登录到此共享目录

(3).指定域名的主机:centosNameNode.roboson.cn

只允许主机名为centosNameNode.roboson.cn的可以登录到此共享目录

(4).指定域内的所有主机:*.roboson.cn

只允许域名为.roboson.cn的可以登录到此共享目录

(5).指定所有的主机:*

<5>.分享目录的权限详解(客户端能对分享的目录进行哪些操作)

(1).rw:可读可写的权限

(2).ro:只读的权限

(3).no_root_squash:登入分享目录的使用者如果是root的话,那么对于这个分享的目录来说,他就具有root的权限!这一项不安全,不建议使用!

(4).root_squash:登入分享目录的使用者如果是root的话,那么这个使用者的权限将被压缩成匿名使用者,通常他的UID与GID都会变成nobody那个系统账号的身份。

(5).all_squash:不论登入分享目录的使用者是什么身份,都会被压缩成匿名使用者。

(6).anonuid:可以自行设定使用者UID的值!也就是使用者登录到分享目录中,身份成为UID这个使用者,必须在/etc/passwd中存在这个UID。

(7).anongid:可以自行设定使用者GID的值!也就是使用者登录到分享目录中,身份成为GID这个使用者,必须在/etc/group中存在这个GID。

(8).sync:数据同步写入到内存与硬盘当中

(9).async:数据会先暂存于内存当中,而非直接写入硬盘

<6>.服务器分享目录

将centosDateNode3上的/home/roboson目录分享出去,对centosNameNode.roboson.cn主机开放,并且具有读写权限,在命令行中输入以下指令:

注意:centosDateNode3必须要能够解析centosNameNode.roboson.cn这台主机,要么在DNS务器上有记录,要么在/etc/hosts文件下有记录

hosts文件域名映射IP地址的添加,在我的博文《Hadoop完全分布式模式搭建》中有,如果,对Hadoop感兴趣的话,可以看看:

http://blog.sina.com.cn/s/blog_c09822a40102v9ja.html

<7>.服务器对分享目录的操作(卸掉,修改后重新分享使生效等)

修改好了/etc/exports文件 后,通过以下指令可以让分享目录生效,不需要重新启动nfsd等守护进程只需要使用exportfs重新扫描一次/etc/exports文件,并且重新加载一次就可以了,以下是它的用法:

exportfs                                                                                                    

<8>.服务器和客户端如何查看分享的目录

通过showmount可以查看共享的目录,showmount语法如下:

服务器端查看自己分享的目录:

showmount    -e     

客户端查看自己分享的目录:

showmount    -e  centosDateNode3.roboson.cn

注意:如果出现上图Unknown host说明识别不了主机,所以,hosts或者DNS服务器没有记录你的主机与IP地址的映射关系。前面已经提到过了!

<9>.客户端挂载目录

前面的安装环境中,说过,将分享 的目录挂载到/home/roboson1下,输入:

mkdir    /home/roboson1                 #创建要挂载的目录
mount -t nfs centosDateNode3.roboson.cn:/home/roboson /home/roboson1
cd /home/roboson1 #看是否能够登录到共享目录

注意:如果出现上图权限不够,因为centosDateNode3.roboson.cn:/home/roboson本身也有权限(drwx-xxx-xxx),不允许组内其他成员和组外的成员访问,只允许自己访问,所以要修改权限。

然后,再进入到挂载的目录,并且新建一个文件夹,看有没有读写权限:

如图所示,说明挂载共享目录成功,并且拥有读写权限(rw)

<10>.客户端卸载目录

客户端卸载共享目录是通过umount实现的

umount /home/roboson1

<11>.NFS Server如何设置开机自动启动

说到这里,先说说Linux的开机启动模式,Linux的开机启动模式有多种,那么如果要设置开机启动项,就得说明,哪一种开机启动模式下,我的服务要自动启动!先看看Linux都有哪几种启动模式,在命令行输入以下指令:

cat /etc/inittab                #这个文件下有Linux的开机启动模式

从上图可以看出,总共有七种开机模式:

0:表示关机

1:表示单用户模式,可以通过这个模式修改root的密码

2:无网络连接的多用户命令行模式

3:有网络连接的多用户命令行模式

4:不可用

5:图形界面

6:重启

看见下面有一句话:id:5:initdefault:这句话的主要作用就是修改默认的启动模式,如果把5改为3, 那么就进入命令行模式!同理,修改开机启动项,也需要看给哪种模式设置开机自动启动,是用多用户命令行登录后,进程自动启动,还是以图形界面登录的时候,进程自动启动等等.....

chkconfig --list rpcbind         #查看rpcbind的开机启动情况
chkconfig --list nfs #查看nfs的开机启动

如图所示,一般我们用的要么是3,要么是5,所以,只需要设置3、5开机自动启动就可以了

<12>.客户端如何设置开机自动挂载分享目录

每次客户端重启的话,都需要重新挂载分享目录,挺麻烦的,最好能够设置开机自动挂载,Linux下可以通过/etc/fstab文件来记录,格式如下:

共享目录          本地挂载目录        nfs  选项  0 0

五、关机或结束时的注意事项

由于NFS使用的这个RPC在client端连上主机时,那么主机在想要关机的时候,可能关不了,如果,主机上面还有Client在联机,那么最好关机之前,关掉portmap与nfs这两个东西

centOS下NFS服务器的安装配置详解的更多相关文章

  1. CentOS下内核TCP参数优化配置详解

    主动关闭的一方在发送最后一个ACK后就会进入TIME_WAIT状态,并停留2MSL(Max Segment LifeTime)时间,这个是TCP/IP必不可少的. TCP/IP的设计者如此设计,主要原 ...

  2. CentOS6.5下VNC Server远程桌面配置详解

    参考文献: (总结)CentOS Linux下VNC Server远程桌面配置详解 远程桌面连接工具VNC——license Key 我的下载地址为 太平洋下载 VNC连接黑屏的问题 centos 6 ...

  3. Cloudera CDH 、Impala本地通过Parcel安装配置详解及什么是Parcel

    本文引用自:Cloudera CDH .Impala本地通过Parcel安装配置详解及什么是Parcelhttp://www.aboutyun.com/forum.php?mod=viewthread ...

  4. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  5. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  6. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  7. Eclipse IDE for C/C++ Developers安装配置详解

    Eclipse IDE for C/C++ Developers安装配置详解(转) 转自:http://hi.baidu.com/ltb6w/item/986532efd712460f570f1ddc ...

  8. (转)python中调用R语言通过rpy2 进行交互安装配置详解

    python中调用R语言通过rpy2 进行交互安装配置详解(R_USER.R_HOME配置) 2018年11月08日 10:00:11 luqin_ 阅读数:753   python中调用R语言通过r ...

  9. JDK10安装配置详解

    JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包:        地址:http://www.oracle.com/technetwork/java/javase/dow ...

随机推荐

  1. WINFORM小列子参考

    1.用树型列表动态显示菜单   密码:zx9t 二.Popup窗口提醒(桌面右下角出现)   密码:cjjo 三.台历 密码:nq4m 四.文件复制  密码:lsqj 五.进度条  密码:byti 六 ...

  2. Java HashMap两种遍历方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  3. cprogram作业

    刘金福 SA17225205 第三次作业 url:http://blog.csdn.net/liu896749150/article/details/78176433 学号:SA17225404 姓名 ...

  4. 迷你MVVM框架 avalonjs 学习教程14、事件绑定

    之前的章节许多示例代码也或多或少地展示了如何使用ms-click来绑定事件了.能直接在模板上绑定是事件,这也是静态模板与动态绑定的一大区别.ms-click不是简单的onclick的别名,它在内部屏蔽 ...

  5. 2基本类型数组和枚举类型——重拾Java

    2.1 标识符和关键字 2.1.1标识符 标识符:用来标志类名.变量名.方法名.类型名.数组名.文件名的有效字符序列称为标识符.简单地说,标识符就是一个名字. Java关于标识符的语法规则 标识符由字 ...

  6. mysql 中文编码问题

  7. URLconf

    URLconf 浏览者通过在浏览器的地址栏中输入网址请求网站,对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的 配置 在test3/settings.py中通过ROOT_UR ...

  8. 表单input中disabled提交后得不到值的解决办

    input 按钮的disabled属性,如果设置了,form表单提交后,后台接收不到input的value input的字段当为diabled时时无法获取数值得,所以最近不要用这个,我们可以用read ...

  9. Telephone interview with Youyou Tu

    "Good News for the National Holiday!" Telephone interview with Youyou Tu following the ann ...

  10. Animation.wrapMode循环模式

    WrapMode.Default:从动画剪辑中读取循环模式(默认是Once). WrapMode.Once:当时间播放到末尾的时候停止动画的播放. WrapMode.Loop:当时间播放到末尾的时候重 ...