Linux中如何部署nfs服务

NFS:Network File System,网络文件系统,通过网络(一般指局域网)让不同主机可以共享文件或目录。NFS是使用C/S架构,由一个或多个客户端和一个服务端组成。服务端向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在服务端存储设备上的数据。

1. NFS的优点

  实现数据的共享服务

  便于管理相关数据

  节省服务器磁盘开销

2. 部署流程

  2.1 服务端部署

  2.1.1 软件安装,检查是否安装 nfs-utils 和 rpcbind 软件,若未安装,进行安装

[root@template ~]# rpm -qa | grep -E "nfs|rpcbind"  #<==== 检查发现未安装
libnfsidmap-0.25-19.el7.x86_64
[root@template ~]# yum install nfs-utils rpcbind -y  #<==== 安装软件

  2.1.2 编写配置文件

[root@template ~]# vim /etc/exports
[root@template ~]# cat /etc/exports
/data    172.16.1.0/24(rw,sync)

  2.1.3 创建存储目录,并修改属主和属组信息

[root@template ~]# mkdir /data
[root@template ~]# chown -R nfsnobody.nfsnobody /data
[root@template ~]# ll -d /data
drwxr-xr-x 2 nfsnobody nfsnobody 6 Nov  8 18:04 /data

  2.1.4 启动服务程序,先启动rpc服务,在启动nfs服务

[root@template ~]# systemctl start rpcbind
[root@template ~]# systemctl enable rpcbind
[root@template ~]# systemctl start nfs
[root@template ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

  2.2 客户端部署

  2.2.1 安装软件

[root@oracle12c ~]# rpm -qa | grep nfs
libnfsidmap-0.25-19.el7.x86_64
[root@oracle12c ~]# yum install nfs-utils -y

  2.2.2 客户端进行挂载

[root@oracle12c ~]# mkdir /data
[root@oracle12c ~]# mount -t nfs 172.16.1.210:/data /data
[root@oracle12c ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
172.16.1.210:/data               141G   46G   96G  33% /data

 

3. NFS服务工作原理

  3.1 服务端

    步骤一:启动rpc服务,开启111端口

    步骤二:启动nfs服务

    步骤三:实现nfs服务进程和端口信息的注册

  3.2 客户端

    步骤一:执行挂载命令进行远程挂载

    步骤二:可以实现数据远程传输存储

  补充:如何查看nfs服务进程和端口注册信息

[root@template ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  35964  status
    100024    1   tcp  35527  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  34187  nlockmgr
    100021    3   udp  34187  nlockmgr
    100021    4   udp  34187  nlockmgr
    100021    1   tcp  45097  nlockmgr
    100021    3   tcp  45097  nlockmgr
    100021    4   tcp  45097  nlockmgr

4. 企业中如何配置NFS配置文件的权限参数

  4.1 查看NFS默认参数

[root@template ~]# cat /var/lib/nfs/etab 
/data    172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

  4.2 企业中一般如何设置访问权限参数

  为保障存储服务器的安全性,"root_squash" 和 "no_all_squash" 参数需要配置,此配置亦为默认配置。

  root_squash   root用户访问存储服务器是转换为默认用户nfsnobody身份进行操作存储服务器共享目录中的数据

  no_all_squash  普通用户访问存储服务器身份不进行转换,也就是说除了nfsnobody用户可以在存储服务器上存储数据外,其余普通用户无权操作。

   4.3 如何修改映射用户(即访问nfs服务器转换后的用户,默认为nfsnobody)

  anonuid=xxx(uid)

  anongid=xxx(gid)

  以上两个参数可以设置映射用户

修改映射用户:www=1002
vim /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1002,anongid=1002)
5. 如何实现自动挂载(centos7)
  5.1 方法一
echo "mount -t nfs 172.16.1.x:/data /mnt" >> /etc/rc.local
chmod u+x /etc/rc.d/rc.local

   5.2 方法二

  编辑/etc/fstab文件,利用fstab文件进行开机自动挂载

6. NFS服务重启后,为什么客户端操作时会显得速度很慢?

  原因:nfs服务重启方式不正确

  restart 和 reload 的区别:

    restart:强制全开所有用户连接,用户感受不太好,不建议

    reload:平滑重启,强制断开没有数据传输的连接,推荐

posted @ 2020-11-08 18:52  小屁孩云轩  阅读(442)  评论(0编辑  收藏  举报