部署 NFS 
===========================

在执行备份操作前，如果需要使用 NFS 软件作为备份目的地，可参考本节内容部署 NFS。

背景信息 
-------------------------

一般建议使用 OSS 或者专用的 NFS 硬件设备，可以考虑使用阿里云的 NFS 硬件设备。

部署NFS 服务器端 
-------------------------------

1. 登录 NFS 服务器。

   

2. 执行以下命令，通过 YUM 包管理器安装 NFS。

   ```shell
   sudo yum install nfs-utils
   ```

   

3. 设置 Exports。

   1. 使用 `sudo vim /``etc/exports` 命令打开配置文件，设置以下信息：

      ```shell
      /data/nfs_server/ 100.xx.xx.xx/16(rw,sync,all_squash)
      ```

      

      其中，`100.``xx.xx.xx` 表示允许访问的网段。
      
   
   2. 执行以下命令，为 `nfsnobody` 赋权，确保 `nfsnobody` 有权限访问 `exports` 中指定的目录。

      ```shell
      sudo chown nfsnobody:nfsnobody -R /data/nfs_server
      ```

      
   

   

4. 配置 NFS 参数。

   1. 执行 `sudo vim /etc/sysconfig/nfs` 命令，打开配置文件。

      
   
   2. 调整如下所示参数：

      ```unknow
      RPCNFSDCOUNT=8
      RPCNFSDARGS="-N 2 -N 3 -U"
      NFSD_V4_GRACE=90
      NFSD_V4_LEASE=90
      ```

      
   
   3. 执行以下命令，重新启动 NFS。

      ```shell
      sudo systemctl restart nfs-config
      
      sudo systemctl restart nfs-server
      ```

      
   

   

5. 设置 Slot Table。

   1. 执行 `sudo vim /etc/sysctl.conf` 命令，打开 `sysctl.conf `配置文件，在文件中添加一行如下信息：

      ```xml
      sunrpc.tcp_max_slot_table_entries=128
      ```

      
   
   2. 重启机器，使配置生效。

      
   

   




部署 NFS 客户端 
--------------------------------

部署 NFS 客户端时，需要在所有 OBServer 机器上进行操作。

以下以在某一台 OBServer 上的操作为例，提供操作指导。

1. 登录 OBServer。

   

2. 执行以下命令，通过 YUM 包管理器安装 NFS。

   ```shell
   sudo yum install nfs-utils
   ```

   

3. 设置 Slot Table。

   1. 执行 `sudo vim /etc/sysctl.conf `命令，打开` sysctl.conf` 配置文件，在文件中添加一行如下信息：

      ```xml
      sunrpc.tcp_max_slot_table_entries=128
      ```

      
   
   2. 重启机器，使配置生效。

      
   

   

4. 执行以下命令，挂载 NFS。

   ```shell
   sudo mount -tnfs4 -o rw,timeo=30,wsize=1048576,rsize=1048576,namlen=512,sync,lookupcache=positive 100.xx.xx.xx:/data/nfs_server /data/nfs
   ```

   
   **说明**

   
   * 在设置 `timeo` 时，建议不要设置的过大。

     
   
   * 命令中`100.xx.xx.xx`表示 NFS 服务器的 IP 地址。

     
   

   
   

5. 挂载完成后，可执行以下命令，验证 NFS 的性能。

   ```shell
   fio -filename=/data/nfs/fio_test -direct=1  -rw=randwrite -bs=2048K -size=100G  -runtime=300 -group_reporting -name=mytest  -ioengine=libaio -numjobs=1 -iodepth=64 -iodepth_batch=8 -iodepth_low=8 -iodepth_batch_complete=8
   ```

   

   例如，执行结果如下：

   ```shell
   Run status group 0 (all jobs):
   WRITE: io=322240MB, aggrb=1074.2MB/s, minb=1074.2MB/s, maxb=1074.2MB/s, mint=300006msec, maxt=300006msec
   ```

   



