部署NFS存储服务(下)

2.1 服务端有关的配置

2.1.1 练习题:共享不同的俩个目录,分别赋予读和写权限

服务端部署过程:

第一个里程:编写nfs配置文件

vim /etc/exports

/data/w  172.16.1.0/24(rw,sync,all_squash)

/data/r  172.16.1.0/24(ro,sync,all_squash)

注:服务端配置文件中,尽量避免继承权限的发生(因权限大的会生效)

 

第二个里程:创建配置文件中指定的共享目录,并进行授权

mkdir /data/{w,r} -p

chown -R nfsnobody.nfsnobody /data/{w,r}


第三个里程:重启nfs服务(平滑重启)

/etc/init.d/nfs reload


第四个里程:检查是否生成新的共享目录信息

showmount -e 172.16.1.31

Export list for 172.16.1.31:

    /data/r 172.16.1.0/24

    /data/w 172.16.1.0/24

 

客户端部署过程:


第一个里程:确认是否安装好了nfs服务相关软件

yum install -y nfs-utlis rpcbind

 

第二个里程:进行网络挂载

客户端web01:

mkdir /data/w -p

mount -t nfs 172.16.1.31:/data/w  /data/w


客户端backup:

mkdir /data/r -p

mount -t nfs 172.16.1.31:/data/r  /data/r


第三个里程:检查测试

条件:web01:对共享目录有读写权限

条件:backup:对共享目录只有只读权限

[root@backup r]# touch test.txt

    touch: cannot touch `test.txt': Read-only file system

    说明强调:在nfs服务端配置共享目录时,会遵循目录的继承条件

              当上一级共享目录为读写时,下一级共享目录就算为只读模式,也会继承上一级目录的权限为读写


2.1.3 NFS出现错误排查思路:

分为两部

1. 排除NFS服务端是否存在问题

rpcinfo -p 172.16.1.31    #向rpc服务进行发送注册信息

showmount -e 172.16.1.31   #查看可以通过网络进行挂载的目录

mount -t nfs 172.16.1.31:/data /mnt #在本地先测试一下挂载,进行创建文件,删除文件测试


2. 排查NFS客户端是否存在问题

rpcinfo -p 172.16.1.31    #向rpc服务进行发送注册信息

showmount -e 172.16.1.31   #查看可以通过网络进行挂载的目录

mount -t nfs 172.16.1.31:/data /mnt #进行挂载使用

 

2.1.4 服务端重点知识梳理

1. 多个客户端访问NFS服务端的读写文件时,需要以下权限:

NFS服务器/etc/exports设置需要开放可写入的权限,即服务器端的共享权限。

NFS服务器实际要共享的NFS目录权限具有可写入w的权限,即服务器端本地目录的安全权限。

③ 每台机器中需要存在和NFS默认配置文件中对应的UID用户相同 (确保所有客户端的访问权限统一,否则每个机器需要同时建立相同UID的用户,并覆盖NFS的默认用户配置)

 

2. /usr/sbin/exportfs  #可以管理nfs服务运行状态

/usr/sbin/exportfs   -r #平滑重启

/usr/sbin/exportfs   -v #显示共享详细信息

注:一般组合用expostfs -rv

exportfs  -o  rw,sync 172.16.1.31/24:/data #临时加载一条配置文件,即使生效

 

2.2 客户端有关的配置

2.2.1 NFS客户端开机启动挂载

①. 利用/etc/rc.local文件实现自动挂载

echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local


②. 利用/etc/fstab文件实现自动挂载

  vim /etc/fstab

挂载什么         挂载到哪                  类型    挂载参数             是否备份  是否检查磁盘

172.16.1.31:/data    /mnt         nfs     defaults    0(dump)  0(fsck)


需要加一步chkconfig netfs on

说明:netfs服务作用:在网络服务启动之后,让系统重新读取加载/etc/fstab文件(因为默认情况     /etc/fstab会先启动,network服务会后启动,导 致网络自动挂载不上,所以需要让netfs服务在network服务后启动一下)

查看一下命令的启动顺序:

[root@backup ~]# head /etc/init.d/netfs

        # chkconfig: 345 25 75

        # description: Mounts and unmounts all Network File System (NFS), \

[root@backup ~]# head /etc/init.d/network

        # network       Bring up/down networking

        # chkconfig: 2345 10 90

[root@backup ~]# ll /etc/rc.d/rc3.d/|grep local   ---网络服务启动后加载rc.local文件

        lrwxrwxrwx. 1 root root 11 Dec  8 12:38 S99local -> ../rc.local

        注:S99表示最后加载这个配置文件



2.2.2 NFS客户端挂载参数深入

▲. 共享目录权限总结:

    1)与服务端配置文件中权限参数设置有关

    2)本地共享目录本身权限有关

    3)与客户端挂载参数有关

▲. 查看客户端挂载历史记录与默认参数

    cat /proc/mounts

3.  mount -t nfs -o fg 172.16.1.31:/data  /mnt    --- 前台挂载(默认)

  mount -t nfs -o bg 172.16.1.31:/data  /mnt    --- 后台挂载


 

4. soft 软挂载 :一直常识挂载,超时后退出(timeout后有可能丢失数据,不推荐使用)

     hard 硬挂载:一直常识挂载,不停止(一般配合intr参数使用),默认为head


 

5. hard+intr =soft软挂载


6. rsizewsize的作用:设置大一点,提升NFS传输的能力(设置的值为2的倍数,centos6默认为130721)

    类似于缓存区,会影响客户端和服务端缓存数据的存储量,最大传输速率越快,根据网络传输带宽决定大小,不要超过带宽


7. suid的作用:让普通用户执行命令时相当于root用户,一般用于脚本(默认值)

    如目录和目录下的文件都是suidroot和普通用户都可以访问,其他的情况普通用户都不能访问。

                部署NFS存储服务(下)_第1张图片

                

8.execnoexec的作用:相当于x权限,如果是noexec,用户则没有执行权限


9.usernouser的作用:是否允许普通用户挂载或卸载文件系统(默认不允许,root才行)

 

10.autonoauto的作用:执行mount -a 时,是否自动挂载(默认为auto)


11. atime noatime、nodiratime的作用:每次访问数据时,会同步更新访问文件的Inode时间戳。

                   高并发环境使用noatimenodiratime,提升系统I/O性能

 

12. remount的作用:重新挂载,针对于已经挂载的设备或目录

  例:mount -t nfs -o remount,ro 172.16.1.31:/data /mnt


2.2.3 NFS客户端优化挂载的参数

   Centos6优化参数:  mount -t nfs -o noatime,nodiratime,nosuid,noexec,nodevp,rsize=131072,wsize=131072                   172.16.1.31:/data/ mnt

   默认参数性能也不错:mount -t nfs 172.16.1.31:/data /mnt

2.2.4 NFS系统应用的优点

    1.    简单,易操作

    2.    NFS内的数据是在文件系统之上的,可以看得见的。

    3.    部署方便,可控制,配置文件一条命令即可搞定,

    4.    可靠性高

    5.    服务非常稳定

2.2.5 NFS系统应用缺点

 1. 存在单点故障(NFS服务器宕机了,其他用户都不能访问了)

 2. 不适用于高并发(2千万以上访问量)

 3. 没有认证(基于IP和主机名),安全性低

 4. NFS数据是明文的(一般内网通信)

 5. 其他与架构有关,比如客户端与服务端的耦合性(实时同步可解耦)

  

建议:NFS适用于中小型企业(2000万/日PV以下),尽量通过缓存服务器或/CND,不然NFS服务器扛不住压力,用户体验会很差。

            注:PV  访问量

 

 

小伙伴们可以关注我的微信公众号:linux运维菜鸟之旅

部署NFS存储服务(下)_第2张图片

关注“中国电信天津网厅”公众号,首次绑定可免费领2G流量,为你的学习提供流量! 

部署NFS存储服务(下)_第3张图片