首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

NFS——网络文件系统

NFS——网络文件系统

        一、NFS概念:
          透过网络,让不同的主机能“共享”文件。通过NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

        二、版本:
          共三个版本,NFSv2,NFSv3,NFSv4(包含4.0和4.1)。其中NFSv2和NFSv3由Sun公司起草。NFS4.0主要由NetApp。

        三、版本特点
          V2:实现基本的网络共享及存取功能
          V3:修正了V2的一些bug。
          ——————V3与V2区别——————
          1.V2对每次读写操作中传输数据的最大长度限制:8192字节,V3无限制
          2.V2对文件名长度限制:255字节,V3无限制
          3.V2对文件长度限制:0xFFFFFFF,V3无限制
          4.V2对文件句柄长度固定为32B,V3中句柄长度上限为64字节
          5.V2只支持同步写,V3支持异步写操作。V3增加了commit请求,commit可以将服务器缓存中的数据刷新到磁盘中。
        *注:同步写指当客户端向服务器端写入数据时,服务器必须将数据写入磁盘中才能发送应答消息。异步写指服务器只需要将数据写入缓存中就可以发送应答消息。
          6.V3增加了ACCESS请求
        *注:ACCESS用来检查用户的访问权限。因为服务器端可能进行uid映射,一次客户端的Uid和gid不能正确反映用户的访问权限。NFS2的处理方法是不管访问权限,直接返送请求,如果没有访问权限就出错。NFS3中增加了ACCESS请求,客户端可以检查是否有访问权限。
          7.V3中一些请求调整了参数和返回信息。
          ——————V4与V3区别——————
          1.V2和V3都是无状态协议,即服务器端不需要维护客户端的状态信息。无状态协议的优点是当服务器出现问题后,客户端只需要重复发送失败请求就可以了,直到收到服务器的响应信息。但某些操作必须需要状态,如文件锁。如果客户端申请了文件锁,但是服务器重启了,但NFSv3是无状态的,客户端再执行锁操作可能会出错。NFSv3需要NLM(Network Lock Manager)协助才能实现文件锁功能,但有时两者的配合不够协调。NFSv4设计成了一种有状态的协议,自身实现了文件锁功能,从而不再需要NLM协议。  

          2.NFSv4 增加了安全性,支持RPCSEC-GSS身份认证。
          3.NFSv4 只提供了两个请求NULL和COMPOUND ,所有的操作都整合进了COMPOUND中,客户端可以根据实际请求将多个操作封装到一个COMPOUND 请求中,增加了灵活性。
          4.NFSv4 文件系统的命令空间发生了变化,服务器端必须设置一个根文件系统(fsid=0) ,其他文件系统挂载在根文件系统上导出。
          5.NFSv4 支持delegation( 代表) 。由于多个客户端可以挂载同一个文件系统,为了保持文件同步, NFSv3 中客户端需要经常向服务器发起请求,请求文件属性信息,判断其他客户端是否修改了文件。如果文件系统是只读的,或者客户端对文件的修改不频繁,频繁向服务器请求文件属性信息会降低系统性能。NFSv4 可以依靠delegation 实现文件同步。   

        *如:当客户端A 打开一个文件时,服务器会分配给客户端A 一个delegation 。只要客户端A 具有delegation ,就可以认为与服务器保持了一致。如果另外一个客户端B 访问同一个文件,则服务器会暂缓客户端B 的访问请求,向客户端A 发送RECALL 请求。当客户端A 接收到RECALL 请求时将本地缓存刷新到服务器中,然后将delegation 返回服务器,这时服务器开始处理客户端B 的请求。
          6.NFSv4 修改了文件属性的表示方法。
          ——————V4.1与V4.0区别——————
          NFSv4.1 支持并行存储,服务器由一台元数据服务器(MDS) 和多台数据服务器(DS) 构成,元数据服务器只管理文件在磁盘中的布局,数据传输在客户端和数据服务器之间直接进行。由于系统中包含多台数据服务器,因此数据可以以并行方式访问,系统吞吐量迅速提升。


         四、Linux NFS相关文件
          /etc/exports:
                NFS 的主配置文件有的linux 版本中默认不存在,需要手动建立.
          /usr/sbin/exportfs:
                在Server端 维护NFS 共享资源的命令。
          /usr/sbin/showmount:
                在Client端 来查看NFS 共享的资源
          /var/lib/nfs/xtab:
                NFS 的记录文件,可以客户端查看链接服务器的信息
        五、搭建NFS服务 【默认服务端口:2049】
        Serve端:
        :安装软件
          yum install nfs-utils.x86_64 -y
        :启动服务
          systemctl start nfs-server.service
          如果报错请先开启“rpcbind.service”后再开启“nfs-server.service”
        :检查服务状态
          systemctl status nfs-server.service
          netstat -lantu |grep 2049
        :编辑配置文件
          /etc/exports:   /nfsserver      *(rw,sync)
          格式:  共享目录path   允许的IP/hostname  (权限)
        :重启服务
          systemctl restart nfs-server.service
       

        Clinet端:
        挂载方式分:手动、自动
        手动挂载:
        ①:执行命令:  mount.nfs   nfs_server_ip:/共享目录path /local/path
        自动挂载:
        ①:利用 fstab
        nfs_server_ip:/共享目录path  /local/path  nfs  defaults 0 0
        ②:使用automount
       
安装软件:yum install -y autofs

          启动服务:systemctl start autofs  systemctl enable autofs
          检查服务:systemctl status autofs
          新建配置文件:/etc/auto.master.d/xxxxxx.autofs(新建文件)
              内容:/-   /etc/xxxxx.nfs(/- 指定配置文件)
          编辑配置文件:/etc/xxxxx.nfs(新建、制作配置文件)
              内容:/local/path  -type=nfs,rw,sync   nfs_server_ip:/共享目录path
          重启服务:systemctl restart autofs.servic
继承事业,薪火相传
返回列表