NFS文件共享服务搭建步骤说明

一、NFS概述

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。

NFS 也是 NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输,安全性很差,所以一般只能在局域网中使用。

二、实验步骤

  1. 服务端安装nfs和rpcbind软件

1) rpm -q rpcbind nfs-utils #查询是否安装
2) yum install -y nfs-utils rpcbind #安装nfs和rpc的软件包
  1. 设置共享目录

NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。

在exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)。

例如,将文件夹/opt/web 共享给 192.168.109.0/24网段使用,允许读写操作,配置如下:

1) mkdir /nfs/web #创建共享文件夹;
2) vim /etc/exports #进入exports文件添加如下配置:
   /nfs/web 172.11.12.135(rw,sync,no_root_squash);
3) sudo exportfs -rv #配置后进行刷新,无需重启
  • 常用选项:

  1. rw 表示允许读写

  1. ro 表示为只读

  1. sync 表示同步写入到内存与硬盘中

  1. no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限

  1. root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户

  • 其它常用选项:

all_squash 所有访问用户都映射为匿名用户或用户组

async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据

subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限

no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

举例:

其中客户机地址可以是主机名 ID 地址、网段地址,允许使用 “*” “?” 通配符;权限选项中的 rw 表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash,将为 nfsnobody 用户降权对待)。

当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格隔指定多个“客户机(权限选项)”即可。

例如,以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读、读写权限。

vim /etc/exports#进入文件配置如下

/var/ftp/public 192.168.109.11(ro) 192.168.109.12(rw)

sudo exportfs -rv #配置后进行刷新,无需重启

  1. 启动NFS服务

1)systemctl start nfs      #开启nfs服务
2)systemctl start rpcbind   #开启rpcbind服务
3)systemctl enable nfs     #开机自启nfs服务
4)systemctl enable rpcbind   #开机自启rpcbind服务
  1. 客户机如上进行安装并设置挂载路径,访问NFS 共享资源

(1) yum install -y nfs-utils rpcbind
(2) 如步骤3进行启动
(3) vim /etc/exports #进入exports文件添加如下配置:
    /nfs/web 172.31.185.17(rw,sync,no_root_squash);
(4) sudo exportfs -rv #配置后进行刷新,无需重启
(5) showmount -e 172.31.184.240   #客户端验证共享
(6) mount -t nfs 172.31.184.240:/nfs/web   /nfs/web  #将服务端共享目录挂载当前客户端目录,客户端文件将     消失不见
(7) mkdir /nfs/web/file #在客户端/nfs/web2目录下创建file文件夹,则在服务端的/nfs/web目录下会有file文件     夹,相反亦然;
(8) umount /nfs/web #取消挂载,还原为原来的文件目录
  1. 代码上传与下载

常规方式上传至nfs客户端或服务端其中一端挂载的目录下,两端即可进行共享

你可能感兴趣的:(NFS文件共享,目录文件,linux)