zoukankan      html  css  js  c++  java
  • centOS下NFS服务器的安装配置详解

    一、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.3-36.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这两个东西

     

                                                                                                                                                                                                                  

                                                                                 

     

  • 相关阅读:
    Linux下通过.desktop 文件创建桌面程序图标及文件编写方式(Desktop Entry文件概述)
    Ubuntu16.04进入挂起或休眠状态时按任何键都无法唤醒问题解决办法
    Ubuntu16.04+Gnome3 锁定屏幕快捷键无效解决办法
    A start job is running for Raise network interface(5min 13s )问题解决方法
    Ubuntu16.04 “有线未托管”有线网络不可用问题解决
    A start job is running for Network Manager wait online (29s / no limit) 等待30s解决办法
    Linux 串口终端调试工具minicom
    Linux 终端仿真程序Putty
    Oracle:在 debian9 上完美安装 oracle 10.2.0.5 x64
    从debian9、ubuntu18.04的deb包依赖来看,似乎不是那么好!!
  • 原文地址:https://www.cnblogs.com/robert-blue/p/4134399.html
Copyright © 2011-2022 走看看