NFS网络操作系统介绍以及相关应用

  1. NFS服务简介

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

          NFS在文件传送或信息传送的过程中,依赖于RPC协议。RPC(Remote Procedure Call),中文名为远程过程调用,它是一种能使客户端执行其他系统中程序的一种机制,可以说NFS本身是使用RPC进行通讯的一个程序,凡是用到NFS的地方,无论是NFS Server或者NFS Client,都需要开启RPC服务,这样Server和Client才能通过RPC来实现PROGRAM PORT的对于,可以这么来理解,NFS是一个文件系统,RPC是负责信息的传输。

     2. NFS安装和配置

        在Linux下,安装NFS非常简单,只需要

        nfs-utils-*  : 包含基本的NFS命令与监控程序

        portmap-*  : 支持安全NFS RPC服务的连接

        当NFS服务启动后,它会有三个守护进程来配合协调工作。

        nfsd: 最基本的nfs守护进程,主要功能是管理客户端是否能够登陆服务器并提供服务,使用端口为2049

        mountd: RPC的守护进程,主要功能是管理NFS文件系统,当客户端通过nfsd登陆成功NFS服务器后,还需要鉴权操作。鉴权依据NFS的配置文件

                        /etc/exports

        portmap: 主动进行端口映射工作,当客户端尝试连接并且使用NFS时,portmap会将所管理NFS服务端口提供给客户端,从而使客户端可以通过该端口向服务器发出请求,使用端口为111,在新版本中,portmap被rpcbind取代。

       上面介绍了NFS的安装和守护进程,一般来说,需要先配置好服务器,再配置好客户端,就可以正常工作。 下面先介绍如何配置NFS服务器。

        NFS的常用目录

/etc/exports              NFS服务的主要配置文件

/usr/sbin/exportfs        NFS服务的管理命令
/usr/sbin/showmount       客户端的查看命令

/var/lib/nfs/etab         记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab         记录曾经登录过的客户端信息

NFS服务器的配置主要是对/etc/exports的配置,其文件内容格式如下:

  <输出目录> [客户端1     选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

     共享目录     有权访问共享目录的主机  选项用来设置输出目录的访问权限(ro,rw)、用户映射等

  用户映射选项:

  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
  • no_all_squash:与all_squash取反(默认设置);
  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
  • no_root_squash:与rootsquash取反;
  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其他选项:

  • secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
  • wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
  • no_wdelay:若有写操作则立即执行,应与sync配合使用;
  • subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
  • no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

例如:将NFS Server 的/home/david/ 共享给192.168.1.0/24网段,权限读写,

        配置文件/etc/exports添加一行:  /home/david 192.168.1.0/24(rw)

    配置好exports文件后,就可以启动NFS服务器,nfs服务器程序依赖protmap和nfs程序,所以要先启动他们两个。

    执行 service portmap[nfs] start 启动服务,执行service portmap[nfs] status查看服务状态。

    凡是修改/etc/exports文件后,需要先执行service portmap restart,在执行service nfs restart,就可以使设置的参数生效。

    exportfs命令可以查看当前nfs配置文件内容。

# exportfs [-aruv]

-a 全部挂载或卸载 /etc/exports中的内容

-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab

-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)

-v 在export的时候,将详细的信息输出到屏幕上。

具体例子:

# exportfs -au 卸载所有共享目录

# exportfs -rv 重新共享所有目录并输出详细信息

   用户可以通过nfsstat来查看nfs的运行状态,通过rpcinfo来检测rpc运行情况,rpcinfo –p 查看哪些程序使用的RPC端口。

   showmount 查看目前有多少客户端连接。

    停止NFS服务器,执行service nfs stop,是否停止protmap看系统中还有谁在使用此服务来决定。

   

    服务器端的NFS设置完成后,下面来设置客户端的NFS。

    mount NFS服务器IP:共享目录 本地挂载目录

    例如: mount 192.168.1.108:/home/hao  /mnt/   表示将108服务器下的/home/hao目录挂载到本地mnt目录下。

    将  192.168.1.108:/home/hao  /mnt nfs defaults 0 0 写入/etc/fstab文件,就可以让系统开机启动时,自动挂载NFS文件系统。

    挂载成功之后,上述两个目录内的文件保持同步变化。卸载已挂账的NFS共享目录umount /home/hao。

    上面介绍了nfs挂载的相关知识,如果在共享目录里面创建文件,那么这个文件属于谁呢?这里面就牵涉到NFS的权限问题,下面来介绍。

  3. NFS的权限控制

     同一个文件夹,在两个不同的Linux系统上可以进行同时更改,创建。如果A系统上是A用户,B系统上是B用户,A用户在自己目录(非NFS共享目录)下创建文件,文件的属主属于A,B用户的属于B,这样是没有冲突的。如果A和B都在NFS共享目录里面创建文件,这又怎么来处理呢?

     如果客户端所在的共享目录无法创建文件,原因可能是NFS服务器端的共享目录本身的写权限没有开放给其他用户,这可以通过chmod 777 –R 目录来解决。

     NFS有很多默认的参数,打开/var/lib/nfs/etab 查看分享文件夹的完整权限设定值。

 

   root用户创建文件的文件属主和组默认是nfsnobody,而普通用户写入文件时就是自己的名字,这保证了服务器的安全性

   

 

 

   

                                       

 

 

 

 

 

3. 在嵌入式领域的应用

    使用NFSROOT来启动开发板,可以避免重复制作根文件系统(rootfs)镜像以及烧写文件系统,从而节省大量拷贝、传送文件的操作,节省开发时间。

    如何开启nfsroot功能?开启nfsroot功能需要具备如下几个条件:

     1.  宿主机(一般为虚拟机里面的Linux系统)要开启nfs server服务

     2. 开发板的网口要畅通

     3. 开发板的Linux内核要支持nfsroot

     1和2是硬件条件,一般都是支持的。第三项需要对内核和uboot进行相关设置才行,下面来介绍:

      首先,内核配置里面,要选中有关NFSROOT的选项

     选择完毕后,编译运行,然后烧写到Flash指定分区就行。这一步是让kernel有能力去从nfs上挂载rootfs,但具体的路径参数还不知道,剩下的需要通过配置uboot终端bootargs参数,这个参数会传递给kernel,kernel根据此参数去找具体的路径并且挂载。下面介绍在Uboot中,启动nfs的相关参数

    在Uboot命令行中,输入

    setenv bootargs ‘mem=64M console=ttyAMA0,115200 root=/dev/nfs rw nfsroot=192.168.4.165:/home/NFSROOT/rootfs_dir

                           ip=192.168.4.99:192.168.4.1:255.255.255.0 mtdparts=hi_sfc:256K(boot),256K(env),1792K(kernel),-(rootfs)‘

时间: 2024-10-05 13:57:16

NFS网络操作系统介绍以及相关应用的相关文章

NFS 网络文件系统介绍

NFS网络文件系统介绍 什么是NFS系统? NFS是Network File System 的缩写,它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录.NFS服务器可以允许NFS客户端,将远端NFS服务器端的共享目录,挂载到本地NFS客户端中.(注NFS客户端一般为应用服务器如:web) NFS服务器端共享的目录就好像NFS客户端自己的磁盘分区和目录一样. 一般客户端挂载到本地目录的名字可以随便,但为方便管理,建议和服务器端一样比较好. NFS一般是用来存储共享视频.图片等静态数据

nfs网络文件系统服务介绍与实战第一部

1.NFS原理描述 什么是NFS?NFS是Network File System的缩写,它的主要功能是通过网络让不同的机器之间可以彼此共享文件或目录.NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂在到本地的NFS客户端中.在本地NFS客户端的机器看来,NFS服务器端共享的目录就好像是自己的磁盘分区或者目录一样. NFS一般用来存储共享视频.图片等静态数据,是当前互联网系统架构中最常用的服务之一. 2.NFS挂载结构图 图解:NFS对外共享了video这个目录,下面有两台NFS客

企业级NFS网络文件共享服务

虚拟实验: 操作系统:CentOS release 6.8 (Final) 虚拟机:VMware 任务:NFS网络文件共享服务 默认是没有安装NFS软件包,NFS主要功能是通过网络让不同的主机系统之间可以共享文件或目录.NFS网络文件系统很像Windows系统的网络共享.安全功能.网络驱动映射,而互联网中小型网站集群架构后端常用NFS进行数据共享. NFS服务器IP: 192.168.222.130 NFS客户端IP1: 192.168.222.138 NFS客户端IP2:192.168.222

NFS网络文件共享服务

NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静态资源文件(一般把网站用户上传的文件都放到NFS共享里,例如:BBS产品的图片.附件.头像,注意网站BBS程序不要放NFS共享里),NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率很高.大公司或门户除了使用NFS外,还可能会使用MFS.GFS.FASTFS,TFS等

NFS网络文件共享服务介绍及案例

1.NFS介绍 1.1.NFS概念描述 什么是NFS?NFS是Network File System的缩写,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或者目.NFS客户端(一般为应用服务器,如Web)可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到NFS客户端本地系统中(就是某一个挂载点下).从NFS客户端的机器本地上看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上确是远端的服务器目录. 1.2.NFS历史 第一个网络文件系统

NFS(网络文件系统)

NFS(网络文件系统) 1.关于NFS介绍 1.1NFS在企业中的应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,例如:BBS产品的图片,附件,头像(注意网站BBS程序不要放NFS共享里),然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源.NFS是当前互联网系统架构中最常用的数据存储服务之一,前面说过,中小型网站公司应用频率更高,大公司或门户除了使用NFS外,还可能会使用更为复杂的

NFS网络文件系统的应用

    NFS是linux中非常常见的一种网络文件系统,其的搭建配置也非常简单,在一般的企业应用中较为广泛.下面就介绍一下NFS在企业环境中的基本应用,在应用中我们也可以更好的理解NFS网络文件系统的工作原理. 1)企业中一般应用场景 如上图一般我们要在中心服务器上设置好共享目录,由其他客户端挂在相应的共享目录,这样客户端服务器就可以想在本地一样往中心服务器上读写数据了.由上图也可以看出NFS服务一般由服务端和客户端组成. 2)rpc服务 既然想使用NFS服务就必须了解RPC服务的相关内容,因为

NFS网络文件系统服务配置、验证及错误解决

NFS网络文件系统服务配置.验证及错误解决 前期准备: 1.至少准备一台服务器(nfs-server)和一台客户机(nfs-client).老表测试用的服务器端用的系统是ubuntu,客户机用的是CentOS 6.5,所以有些地方操作不一样. 2.给两台测试机都安装NFS服务和rpc服务.(一般安装NFS服务会自动安装rpc) 安装: ubuntu:sudo apt-get install nfs-kernel-server CentOS:yum groupinstall "NFS file s

NFS网络文件共享存储服务器

NFS网络文件共享存储服务器 什么是NFS NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 在企业集群架构的工作场景中,NFS网络文件系统一般被用来共享存储视频.图片.附件等静态资源文件,通常网站用户上的文件都会存放到NFS共享里.例如bbs产品的图片.附件头像等.然后前段所有的节点访问这些静态资源时都会读取NFS存储上