当前位置: 首页 > news >正文

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这两个东西

 

                                                                                                                                                                                                              

                                                                             

 

转载于:https://www.cnblogs.com/robert-blue/p/4134399.html

相关文章:

  • IDEA下从零开始搭建SpringBoot工程
  • SQL SERVER时间格式化
  • top命令的使用
  • 手机WAP前端开发标准
  • 微信钱包入口开发笔记
  • 编程是一个没有前途的工作
  • 32位系统(软件)和64位系统(软件)的区别(跑的快,内存支持多)
  • SQL点滴34—SQL中的大小写
  • Windows 10下安装配置Caffe并支持GPU加速(修改版)
  • mac homebrew安装
  • 每天10道编程题-第四天
  • 【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
  • Tomcat源码分析之—具体启动流程分析
  • 集合,映射,流程控制, 知识点。
  • java7 concurrency cookbook(第三章)
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • JavaScript设计模式之工厂模式
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • JWT究竟是什么呢?
  • leetcode98. Validate Binary Search Tree
  • MySQL主从复制读写分离及奇怪的问题
  • PhantomJS 安装
  • scrapy学习之路4(itemloder的使用)
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue.js源码(2):初探List Rendering
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 技术发展面试
  • 区块链技术特点之去中心化特性
  • 三分钟教你同步 Visual Studio Code 设置
  • 我的面试准备过程--容器(更新中)
  • 智能合约开发环境搭建及Hello World合约
  • 7行Python代码的人脸识别
  • gunicorn工作原理
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​Linux·i2c驱动架构​
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • %@ page import=%的用法
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (39)STM32——FLASH闪存
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (十六)Flask之蓝图
  • (四) 虚拟摄像头vivi体验
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (译)2019年前端性能优化清单 — 下篇
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (轉貼) UML中文FAQ (OO) (UML)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET BackgroundWorker
  • .net 后台导出excel ,word
  • .Net 垃圾回收机制原理(二)