关于NFS服务器的原理总结和mount挂载

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

  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是负责负责信息的传输。

其中,NFS服务器设定好了分享出来的/home/shares(可以是其他目录)这个目录后,其他的客户端就可以将这个目录挂载到自己系统上的/mnt/nfs挂载点(挂载点可以自定),只要在PC1系统中进入/mnt/nfs目录内,就可以看到NFS服务器系统内的/home/shares目录下的所有数据(要有相应的权限),/home/shares就好像自己PC中的一个分区(但不占用磁盘空间)。用户可以使用cp、cd、 mv、rm等磁盘或文件相关的指令进行操作。虽然NFS有属于自己的协议和端口号,但是在传送数据或其他相关信息时,NFS使用的是远程过程调用(Remote
Procedure Call,RPC)协议来协助NFS本身的运作。RPC即远程进程调用。当使用某些服务来进行远程联机的时候,主机的IP地址、服务的端口号及对应到的服务PID等信息都需要管理与对应,管理端口的对应与服务相关性的工作就是RPC的任务。

NFS本身的服务并没有提供数据传递的协议,因此,NFS使用RPC来实现网络传输功能。NFS本身就是一个使用RPC的程序,换句话说,NFS是RPC服务器。当然,不但运行NFS的服务器需要启动RPC的服务,要挂载NFS文件系统的客户端,也需要同步启动RPC,这样服务器端与客户端才能由RPC的协议进程序端口的对应,Linux系统默认时启动这一服务。

NFS的安装是非常简单的,只需要两个软件包即可,而且在通常情况下,是作为系统的默认包安装的。

  • nfs-utils-* :包括基本的NFS命令与监控程序
  • portmap-* :支持安全NFS RPC服务的连接

1、包的安装

yum install -y portmap

yum install -y nfs-utils

通过yum或者rpm安装完portmap后,发现执行命令service portmap start时报如下错误:portmap: unrecognized service。

CentOS6(Linux Kernel 2.6.32)中,portmap已经被rpcbind代替了,仔细查看安装信息就会发现,执行命令yum install portmap时安装的就是rpcbind。

安装好之后然后就是修改配置文件

服务器端配置文件/etc/exports:指定要共享的目录及权限,例如:

/home/work 192.168.11.*(rw,sync,root_squash)

/home  192.168.1.105 (rw,sync)

/public  * (rw,sync)

配置文件每行分为两段:第一段为共享的目录,使用绝对路径,第二段为客户端地址及权限。

地址可以使用完整IP或网段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0当然也可以地址可以使用主机名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*.chengyongxu.com

权限有:

rw:read-write,可读写;    注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限,参考问题7

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;

anongid:匿名用户的GID值。

我用的是:

vi /etc/exports

/home 192.168.11.*(rw)

2、设置NFS服务器的自动启动状态

对于实际的应用系统,每次启动LINUX系统后都手工启动nfs服务器是不现实的,需要设置系统在指定的运行级别自动启动portmap和nfs服务。

# chkconfig --list portmap

# chkconfig --list nfs

3、设置portmap和nfs服务在系统运行级别3和5自动启动。

# chkconfig --level 35 portmap on

# chkconfig --level 35 nfs on

NFS系统守护进程

  • nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
  • mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
  • portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

NFS服务器的启动与停止

在对exports文件进行了正确的配置后,就可以启动NFS服务器了。

service rpcbind start

service nfs start

重启portmap 和nfs 服务

service portmap restart

service nfs restart

exportfs

这样一来,NFS服务器就搭建好了,如果需要一个客户端来共享他的目录,需要在客户端执行这样的命令:

mount 192.168.11.210:/home/wow    /mnt/wow/config

就相当于把192.168.11.210(NFS服务器)的/home/wow挂载到 /mnt/wow/config目录上,实现了文件共享

其中,NFS服务器设定好了分享出来的/home/shares(可以是其他目录)这个目录后,其他的客户端就可以将这个目录挂载到自己系统上的/mnt/nfs挂载点(挂载点可以自定),只要在PC1系统中进入/mnt/nfs目录内,就可以看到NFS服务器系统内的/home/shares目录下的所有数据(要有相应的权限),/home/shares就好像自己PC中的一个分区(但不占用磁盘空间)。用户可以使用cp、cd、 mv、rm等磁盘或文件相关的指令进行操作。虽然NFS有属于自己的协议和端口号,但是在传送数据或其他相关信息时,NFS使用的是远程过程调用(Remote
Procedure Call,RPC)协议来协助NFS本身的运作。

时间: 2024-08-10 14:01:17

关于NFS服务器的原理总结和mount挂载的相关文章

在WINDOWS2008 Server 中创建NFS服务器,使用LINUX的MOUNT命令去加载网络盘

1.在WINDOWS服务器中创建NFS SERVER 首先,打开服务管理器,选择添加角色:     选中文件服务,下一步:     出现一个提示,不管它,继续下一步:     在接下来的页面中选中“网络文件系统服务”(NFS),下一步:     点击安装:     系统开始安装,大约需要几分钟:     安装完成,点击关闭:     这样,在Windows Server 2008 R2建立了NFS服务,然后选择一个分区,新建一个文件夹,比如NFS:     在文件夹上右键,属性,可以看到属性列表

NFS服务器及Samba服务配置实现文件共享

NFS服务器运行原理 实战配置NFS服务器 配置Samba服务器及实现文件共享 (一)NFS器服务端描述 NFS服务器: Network File System,网络文件系统使FreeBSD支持的一种 系统安装,直接用yum方式安装  # yum -y install NFS* 启动服务 #/etc/init.d/nfs start     启动显示失败:annot register service: RPC: Unable to receive; errno = Connection refu

nfs服务器的建立

NFS服务器的配置 一.NFS服务器端的配置,即共享发布者 (一)需启动的服务和需安装的软件 1.NFS服务器必须启动两个daemons服务:rpc.nfsd和rpc.mountd   rpc.nfsd:用来管理客户端PC是否可以登录.类似于windows中的共享权限.   rpc.mountd:用来管理客户端pc能够使用的文件安全权限. 如windows中的共享安全权限. RPC:因为NFS支持的功能很多,所以NFS的功能对应的端口才无法固定,而是采用小于1024的随机端口.    但客户端需

linux下通过mount挂载iscsi、ntfs、nfs详解

通常服务器本机自带磁盘空间有限,都需要额外加载磁盘,可以采用mount方式把远程的共享存储磁盘加载进来,目前用过的有iscsi.ntfs.nfs三种类型 一,mount挂载iscsi类型1,查找下准备挂载的磁盘或者存储器[[email protected] /]# iscsiadm -m discovery -t st -p 1x.xx.0.22:32601x.xx.0.22:3260,1 iqn.2001-05.com.equallogic:0-8a0906-6dac38009-c1b1cac

NFS网络文件系统原理及案例

从现在开始我决定把我所学的知识以博客的形式分享给大家,希望对和我一样的菜鸟,同时梦想成为一只老鸟的IT小伙伴有一定的帮助!而对于我而言,这本身也是一种学习呢!好了废话不多说,我们开始进入主题:我们人在接触一个新事物或者是一个新技一个新技术的时候,我们往往想到的第一个问题就是"这是什么呀?"或者"这是干什么的呀?"那么NFS网络文件系统到底是一个什么东西,它的作用又是什么,我们在这里围绕这两个问题进行讨论: 1.什么是NFS NFS是Network File Syst

4412 搭建和测试NFS服务器

一.NFS网络文件系统 NFS是Network FileSystem的缩写,NFS是基于UDP/IP协议的应用.它的最大功能就是可以通过网络让不同的机器,不通的操作系统彼此共享文件, 可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看做一个文件服务器. 通过NFS服务,我们可以实现在线调试文件系统或应用程序,而不用像传统的方式生成文件系统镜像,然后烧写到iTop-4412的eMMC里,在启动开发板. 通过NFS服务可以提高我们的调试效率. Android或者

NFS服务器设置及mount命令挂载

安装只要 yum -y install nfs-utils即可 一.NFS服务器的设定 NFS服务器的设定可以通过/etc/exports这个文件进行,设定格式如下: 分享目录      主机名称或者IP(参数1,参数2) /arm2410s   10.22.22.*(rw,sync,no_root_squash) 可以设定的参数主要有以下这些: rw:可读写的权限: ro:只读的权限: no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限:root_sq

NFS服务器原理和安装配置详解附案例演练

NFS服务器原理和安装配置详解附案例演练 1.什么是NFS服务器 NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器.不同的操作系统可以共享彼此的文件. NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利: 2.NFS挂载原理 NFS服务器的挂载结构图: 如上图示: 当我们在NFS服务器设置好一个共享目录/home/public后

nfs 服务器和客户端安装配置

nfs 服务器 cat /etc/redhat-release                                   //查看系统版本 uname -r                                                        //查看内核 uname -m                                                      //查看系统多少位 rpm -qa nfs-utils portmap rpcbin