nfs服务器搭建

一、理论知识

1.NFS概念

       NFS是Network File System(网络文件系统)。
       主要功能是通过网络让不同的服务器之间可以共享文件或者 目录。
       NFS客户端一般是应用服务器(比如web,负载均衡等),可以通过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下 。

2.NFS工作原理

         启动RPC服务
         启动NFS服务
         客户端请求NFS服务
          RPC把端口和IP地址给客户端

3.NFS协议

       NFS在文件传送过程中依赖与RPC(远程过程调用)协议。
       NFS本身是没有提供信息传送的协议和功能的,但是能够用过网络进行图片,视频,附件等分享功能。
       只要用到NFS的地方都需要启动RPC服务,不论是NFS的服务端还是客户端

4.NFS端口:

          TCP  111   2049

二、nfs环境搭建
 

1、服务器地址

         服务端 :192.168.26.131   test2

         客户端:192.168.26.133   test4

         客户端:192.168.26.134   test3

2、安装NFS服务器

  2.1、查看是否安装nfs、rpc

            rpm -qa nfs-utils rpcbind

   2.2 、安装nfs、rpc

           yum install rpcbind nfs-utils -y

3、配置NFS服务端

    3.1、创建NFS共享目录

    [root@server ~]# mkdir /data1

    [root@server ~]# chmod -Rf 777 /data1

 

  3.2、NFS服务的主配置文件

    [root@server ~]# vi /etc/exports
    /data1  192.168.26.133/134(rw,sync,root_squash)  #IP可以是网段也可以是客户端的IP地址。
                
 #exports配置常用参数 
 #ro 只读 
 #rw 读写 
 #root_squash    当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
 #no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 
 #all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 
 #sync   同时将数据写入到内存与硬盘中,保证不丢失数据 
 #async  优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

   参数                           说明
    ro                             该共享目录的权限是只读(read-only)
   rw                             该共享目录的权限是可读写(read-write)
   hide                          隐藏文件系统。
   noaccess                  阻止访问这个目录及其子目录
   wdelay                      为合并多次更新而延迟写入磁盘
   no_wdelay                尽可能快地把数据写入磁盘
  sync                           将数据同步写入内存缓冲区与磁盘中(同步模式)
  async                         将数据线暂存在内存缓冲区中,而非直接写入磁盘(非同步模式)
  subtree_check           验证每个被请求的文件都在导出的目录树中
  no_subtree_check     只验证涉及被导出的文件系统的文件请求
  all_squash                 将所有本地和远程账户映射到匿名用户
  root_squash              将根用户及所属组都映射为匿名用户或用户组(nfsnobody),为默认设置
  no_root_squash        将远程根用户当成本地根用户,即不压制root
  anonuid                    为匿名用户账户指定组ID
  anongid                    为匿名用户账户指定用户ID

 

 

 

 

   使配置文件生效:exportfs  -r

 

3.3、启动NFS服务

    第一步:先启动rpc服务
       

[root@server init.d]# service rpcbind start
正在启动 rpcbind:                                         [确定]
[root@server init.d]# service rpcbind status
rpcbind (pid  2041) 正在运行...

注意:

  centos系统在6版本和7版本的命是不同的7版本的命令的守护进程不是init而是systemctl。所以只有7版本的命令是systemctl,但是6版本的是service。

第二步:启动NFS服务

[root@server init.d]# service nfs start
启动 NFS 服务: exportfs: Invalid prefix `134' for 192.168.26.133/134
exportfs: Invalid prefix `134' for 192.168.26.133/134
                                                           [确定]
关掉 NFS 配额:                                            [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[root@server init.d]# service nfs status
rpc.svcgssd 已停
rpc.mountd (pid 2089) 正在运行...
nfsd (pid 2104 2103 2102 2101 2100 2099 2098 2097) 正在运行...
rpc.rquotad (pid 2085) 正在运行...

  必须要先启动rpc服务,然后再启动NFS服务,如果先启动NFS服务,启动服务时会失败。

3.4、管理共享目录

    使用exportfs命令可以共享、显示或不共享/etc/exports中定义的目录

    语法格式:exportfs 选项 [目录]

选项 说明
-a 共享或不共享/etc/exports中定义的共享目录,常与r或u一起使用
-r 重新共享指定目录
-u 不共享指定目录
-o 可以指定导出选项(后面所跟的目录可以不是/etc/exports中的目录)
-v 查看共享的目录及其导出选项

 

4、客户端挂载

4.1、客户端启动rpcbind、nfs

  •     service rpcbind start

  •     service nfs start

4.2、创建挂载目录: 

mkdir /root/data

4.3、查看服务器抛出的共享目录信息:

     showmount -e 192.168.26.131

[root@localhost data]# showmount -e 192.168.26.131
Export list for 192.168.26.131:
/data1 *

如果显示:rpc mount export: RPC: Unable to receive; errno = No route to host,则需要在服务端关闭防火墙。

4.4、设置挂载

     mount -t nfs 192.168.26.131:/data1 /root/data

为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议:

     mount -t nfs 192.168.26.131:/data1  /root/data  -o proto=tcp -o nolock

挂载成功后即可访问共享的NFS文件系统了。

4.5、卸载已挂在的NFS

        umount  /root/data

4.6、查看挂载目录的信息:

         fuser  -m  -v  /root/data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux)