Linux NFS 网络文件共享

NFS:网络文件系统

网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。是当前主流异构平台共享文件系统之一,主要应用在UNIX环境下。最早是由Sun Microsystems开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,广泛应用在FreeBSD、SCO、Solaris等异构操作系统平台,允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。换言之,NFS可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。

Linux NFS 网络文件共享

NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

NFS的工作原理是使用客户端/服务器(C/S)架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。文件通常以块为单位进行传输。其大小是8KB(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。

Linux NFS 网络文件共享

网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。

特点

  • 提供透明文件访问以及文件传输
  • 容易扩充新的资源或软件,不需要改变现有的工作环境
  • 高性能,可灵活配置

  • 实验环境
  • NFS server    192.168.10.2   CentOS7.5   共享目录 /data/nfs_rw     /data/nfs_ro
  • Client    192.168.10.6

  • 首先 在 server10.2 上安装配置 NFS
  • 使用  yum 方式安装 NFS 
  • yum -y install nfs-utils
  • 编辑 NFS 配置文件     /etc/exports
  • vim /etc/exports
  • /data/nfs_ro 192.168.10.0/24(ro,sync)
    /data/nfs_rw 192.168.10.0/24(rw,sync)
  • /data/nfs_r*   为共享目录 
  • 192.168.10.0/24   指明那些网段可以访问
  • ro 代表只读,rw 代表可以读写
  • sync 同步模式,内存中数据时时写入磁盘
  • 分别创建共享目录,更改目录的属主属组为 nfsnobody(此用户为安装 NFS后自动创建的用户)
  • mkdir /data/nfs_r{o,w} && chown -R nfsnobody:nfsnobody /data/nfs_r*
  • 更改目录属性为 777 (即使给予了写入权限,nfs_ro 目录依然只读) 
  • chmod 777 /data/nfs_r*
  • ls -ld /data/nfs_r*
    drwxrwxrwx 2 nfsnobody nfsnobody 22 Feb 16 20:45 /data/nfs_ro
    drwxrwxrwx 2 nfsnobody nfsnobody 22 Feb 16 20:46 /data/nfs_rw

Linux NFS 网络文件共享

Linux NFS 网络文件共享

Linux NFS 网络文件共享

Linux NFS 网络文件共享

  • 确认无误启动 NFS
  • 需要先启动 rpcbind 再启动 NFS
  • 使用 showmount -e IP 可以查看共享目录信息
  • 查看NFS服务是否向rpc注册端口信息,主端口号是:111 
  • rpcinfo -p 192.168.10.2

Linux NFS 网络文件共享

Linux NFS 网络文件共享

  • cp 文件到 nfs 共享目录

Linux NFS 网络文件共享


  • 接下来在 Client 端安装、链接 NFS
  • 使用 yum 方式安装 NFS
  • 分别创建共享目录
  • mkdir /data/nfs_r{o,w}
  • Client 端不需要启动 NFS 只需要启动 rpcbind的即可
  • systemctl start rpcbind
  • 分别挂载共享目录,-t nfs 指明挂载方式为 NFS 共享
  • mount -t nfs 192.168.10.2:/data/nfs_ro /data/nfs_ro
  • mount -t nfs 192.168.10.2:/data/nfs_rw /data/nfs_rw
  • 验证目录的读写权限,nfs_ro目录只能读,不能写入,nfs_rw目录读写正常

Linux NFS 网络文件共享

Linux NFS 网络文件共享

Linux NFS 网络文件共享

Linux NFS 网络文件共享

Linux NFS 网络文件共享

  • 如果需要开机挂载需要写入 /etc/fstab 文件
  • vim /etc/fstab
  • 192.168.10.2:/data/nfs_ro               /data/nfs_ro    nfs     nolock  0 0
    192.168.10.2:/data/nfs_rw               /data/nfs_rw    nfs     nolock  0 0 

  • 确认无误保存退出,重新挂载   mount -a

Linux NFS 网络文件共享