美文网首页
存储服务 NFS

存储服务 NFS

作者: 小屁孩云熙 | 来源:发表于2021-12-02 19:42 被阅读0次

    1. NFS 介绍

    NFS 是 Network File System 的缩写,中文意思是网络文件系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS 客户端(一般为应用服务器,例如 Web )可以通过挂载(mount)的方式将NFS服务器端共享的数据挂载到 NFS 客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS 服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器目录。

    NFS 网络文件系统很像 Windows 系统的网络共享,安全功能,网络驱动器映射,这也和 Linux 系统里的 Samba 服务类似。只不过一般情况下,Windows网络共享服务或 Samba服务用于办公室局域网共享,而互联网中小型网站集群机构后端常用 NFS 进行数据共享。如果是大型网站,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS、FastDFS等。

    image-20211124124412534.png

    2. 存储服务的种类

    2.1 中小型企业

    1. FTP

    2. Samba(Windows -- Linux)

    3. NFS(Linux -- Linux)

    2.2 大型企业(分布式存储)

    1. 用于门户网站

      一个用户 -- 存储数据 至 存储服务器

      上万用户 -- 存储数据 至 存储服务器(消耗IO,会变慢)

    2. 分布式存储应用

      • Moosefs(mfs) 比较古老,落伍
      • GlusterFS
      • FastDFS 企业应用较多

    3. NFS 存储服务的作用

    1. 实现数据共享存储
    2. 便于管理
    3. 节省购买服务器磁盘开销

    4. NFS 服务部署

    4.1 扩展 - RPC

    RPC:远程过程调用服务程序

    了解 RPC 需要 学习 网络编程的知识

    image-20211125112138291.png

    4.2 服务端部署

    4.2.1 下载安装软件

    # 01. 检测是否安装
    rpm -qa|grep -E "nfs|rpc"
    
    # 02. 安装软件
    yum install nfs-utils rpcbind -y
    

    4.2.2 编写配置文件

    # 01. 编写配置文件 (/etc/exports)
    vim /etc/exports
    # 方式1
    /data  172.16.1.0/24(rw,sync)
    
    # 方式2
    /data  172.16.1.0/24(rw,sync)  10.1.1.0/24(rw,sync)
    
    # 配置文件内容解释
    # 第一部分
    设置数据存储目录
    
    # 第二部分
    设置网络白名单(允许哪些主机连接到存储服务器进行数据存储)
    
    # 第三部分
    配置存储目录的权限信息,存储目录的一些功能
    
    
    # 查看帮助
    man exports
    

    4.2.3 创建基础环境

    # 01. 创建存储(共享)目录
    mkdir /data
    
    # 02. 修改权限
    chwon -R nfsnobody.nfsnobody /data
    

    4.2.4 启服务

    # 01. 启动 rpcbind 服务(端口号为:111)
    systemctl start rpcbind
    systemctl enable rpcbind
    
    # 02. 启动 nfs 服务
    systemctl start nfs
    systemctl enable nfs
    
    # 03. 检查服务端口号
    rpcinfo -p 172.16.1.31
    
    [root@nfs01 ~]# rpcinfo -p 172.16.1.31
       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  60874  status
        100024    1   tcp  39277  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  50602  nlockmgr
        100021    3   udp  50602  nlockmgr
        100021    4   udp  50602  nlockmgr
        100021    1   tcp  36354  nlockmgr
        100021    3   tcp  36354  nlockmgr
        100021    4   tcp  36354  nlockmgr
    

    4.3 客户端部署

    4.3.1 客户端安装 nfs 软件

    yum install nfs-utils -y
    

    4.3.2 实现远程挂载共享目录

    mount -t nfs 172.16.1.31:/data /mnt
    
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# ll /mnt
    total 4
    drwxr-xr-x 2 nfsnobody nfsnobody 45 Nov 15 17:03 a
    drwxr-xr-x 2 nfsnobody nfsnobody 45 Nov 15 17:03 b
    drwxr-xr-x 2 nfsnobody nfsnobody 45 Nov 15 17:03 c
    -rw-r--r-- 1 nfsnobody nfsnobody 65 Nov 15 17:38 exclude_file.txt
    

    4.3.3 报错

    4.3.3.1 问题1
    image-20211125123924957.png
    • 解决方法
    # 原因:
    因为客户端识别不了nfs文件系统类型
    
    # 解决方法
    yum install nfs-utils -y
    

    5. NFS 服务工作原理

    5.1 服务端

    1. 启动 rpc 服务,开启 111 端口
    2. 启动 nfs 服务
    3. 实现 nfs 服务端口号的注册(只注册一次)

    5.2 客户端

    1. 建立TCP网络连接
    2. 客户端执行挂载命令
    3. 可以实现数据远程传输存储

    6. NFS 服务端详细配置说明

    6.1 实现多个网段主机可以进行挂载

    6.1.1 方法一

    /data  172.16.1.0/24(rw,sync)  10.1.1.0/24(rw,sync)
    

    6.1.2 方法二

    /data  172.16.1.0/24(rw,sync)
    /data  10.1.1.0/24(rw,sync)
    

    6.2 总结 - 共享目录的权限和哪些因素有关

    1. 和存储目录的本身权限有关
    # 目录权限为:755 
    # 属主和属组:nfsnobody
    
    1. 和 nfs 服务配置有关
    /data  172.16.1.0/24(ro,sync)
    # 只读权限
    
    1. 和客户端挂载命令参数有关
    mount -t nfs -o ro 172.16.1.31:/data /mnt 
    # 只读权限
    

    6.3 NFS 配置参数说明

    参数 功能
    rw 存储目录是否有 读写 权限
    ro 存储目录是否有 只读 权限
    sync 同步方式存储数据(直接将数据保存到磁盘,数据存储安全可靠),数据传输慢
    async 异步方式存储数据(先将数据保存在内存中,后续再保存到磁盘中,数据传输不可靠,易丢失)数据传输快
    no_root_squash 不将 root 用户身份进行转换
    root_squash 将 root 用户身份进行转换
    all_squash 将所有用户身份都进行转换
    no_all_squash 不要将普通用户身份进行转换
    anonuid 指定映射成用户的uid
    anongid 指定映射成用户组的gid

    6.4 同步方式存储数据 和 异步方式方式存储数据 的 区别

    image-20211202193756073.png

    6.3.1 实验1 -- all_squash(所有用户身份转换)

    # 服务端
    # 01. 配置服务
    [root@nfs01 ~]# vim /etc/exports
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,all_squash)
    
    # 02. 重启服务
    [root@nfs01 ~]# systemctl restart nfs
    
    # 客户端
    # 01. 卸载重新挂载
    [root@backup ~]# umount /mnt
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M   14M  473M   3% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    # 02. root 用户保存数据
    [root@backup mnt]# ll
    total 0
    [root@backup mnt]# touch root_data.txt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 root_data.txt
    
    # 03. 普通用户保存数据
    [root@backup ~]# su - yunxuan
    [yunxuan@backup ~]$ cd /mnt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 root_data.txt
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 root_data.txt
    -rw-rw-r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 yunxuan_data.txt
    

    6.3.2 实验2 -- no_all_squash(所有普通用户身份不转换,但是保存目录需要相关权限,root用户身份转换。)

    # 服务端
    # 01. 配置服务
    [root@nfs01 ~]# vim /etc/exports
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,no_all_squash)
    
    # 02. 重启服务
    [root@nfs01 ~]# systemctl restart nfs
    
    # 客户端
    # 01. 卸载重新挂载
    [root@backup ~]# umount /mnt
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M   14M  473M   3% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    # 02. root 用户保存数据
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    [root@backup mnt]# touch root_data.txt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:19 root_data.txt
    
    # 03. 普通用户保存数据
    [root@backup mnt]# su - yunxuan
    Last login: Thu Nov 25 19:10:41 CST 2021 on pts/0
    [yunxuan@backup ~]$ cd /mnt/
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:19 root_data.txt
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    touch: cannot touch ‘yunxuan_data.txt’: Permission denied
    
    6.3.2.1 解决普通用户权限阻止方法
    • 方法1
    # 服务端
    [root@nfs01 data]# ll -d /data
    drwxr-xr-x 2 nfsnobody nfsnobody 27 Nov 25 19:19 /data
    [root@nfs01 data]# chown -R yunxuan /data
    [root@nfs01 data]# ll -d /data/
    drwxr-xr-x 2 yunxuan nfsnobody 27 Nov 25 19:19 /data/
    
    
    # 客户端
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 yunxuan nfsnobody 0 Nov 25 19:19 root_data.txt
    -rw-rw-r-- 1 yunxuan yunxuan   0 Nov 25 19:21 yunxuan_data.txt
    [yunxuan@backup mnt]$ 
    
    • 方法2
    # 服务端
    [root@nfs01 data]# ll -d /data/
    drwxr-xr-x 2 nfsnobody nfsnobody 27 Nov 25 19:22 /data/
    [root@nfs01 data]# chmod o+w /data
    [root@nfs01 data]# ll -d /data/
    drwxr-xrwx 2 nfsnobody nfsnobody 27 Nov 25 19:22 /data/
    
    # 客户端
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 yunxuan nfsnobody 0 Nov 25 19:19 root_data.txt
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:19 root_data.txt
    -rw-rw-r-- 1 yunxuan   yunxuan   0 Nov 25 19:23 yunxuan_data.txt
    

    6.3.3 实验3 -- root_squash(root用户身份转换,普通用户身份不换转)

    # 服务端
    # 01. 配置服务
    [root@nfs01 ~]# vim /etc/exports
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,root_squash)
    
    # 02. 重启服务
    [root@nfs01 ~]# systemctl restart nfs
    
    # 客户端
    # 01. 卸载重新挂载
    [root@backup ~]# umount /mnt
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M   14M  473M   3% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    # 02. root 用户保存数据
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    [root@backup mnt]# touch root_data.txt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 26 17:19 root_data.txt
    
    # 03. 普通用户保存数据
    [root@backup mnt]# su - yunxuan
    Last login: Thu Nov 25 19:19:57 CST 2021 on pts/0
    [yunxuan@backup ~]$ cd /mnt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 26 17:19 root_data.txt
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    touch: cannot touch ‘yunxuan_data.txt’: Permission denied
    

    6.3.4 实验4 -- no_root_squash(所有用户不转换身份,root用户可以保存数据,其他用户权限不足)

    # 服务端
    # 01. 配置服务
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,no_root_squash)
    
    # 02. 重启服务
    [root@nfs01 ~]# systemctl restart nfs
    
    # 客户端
    # 01. 卸载重新挂载
    [root@backup ~]# umount /mnt
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M   14M  473M   3% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    # 02. root 用户保存数据
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    [root@backup mnt]# touch root_data.txt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 root root 0 Nov 26 17:25 root_data.txt
    
    # 03. 普通用户保存数据
    [root@backup mnt]# su - yunxuan
    Last login: Fri Nov 26 17:20:14 CST 2021 on pts/0
    [yunxuan@backup ~]$ cd /mnt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 root root 0 Nov 26 17:25 root_data.txt
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    touch: cannot touch ‘yunxuan_data.txt’: Permission denied
    

    7. 企业中如何配置 NFS 参数

    7.1 参数配置(以下配置为了安全考虑)

    1. no_all_squash
    2. root_squash
    3. 共享目录权限改为www (uid 一致很重要)

    7.2 实验

    7.2.1 服务端配置

    # 01. 配置服务
    [root@nfs01 ~]# vim /etc/exports
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,root_squash,no_all_squash)
    
    # 02. 重启服务
    [root@nfs01 ~]# systemctl restart nfs
    
    # 03. 创建NFS共享目录管理用户
    [root@nfs01 ~]# useradd -u 1005 www
    [root@nfs01 ~]# id www
    uid=1005(www) gid=1005(www) groups=1005(www)
    [root@nfs01 ~]# echo "123456"|passwd --stdin www
    Changing password for user www.
    passwd: all authentication tokens updated successfully.
    
    # 04. 修改共享目录属性信息
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 nfsnobody nfsnobody 27 Nov 26 17:25 /data
    [root@nfs01 ~]# chown -R www.www /data/
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 www www 27 Nov 26 17:25 /data
    

    7.2.2 客户端验证(除www用户外,任何用户没有权限操作共享目录中的数据,保证数据安全性)

    # 01. 客户端创建www用户(用户访问站点用户身份)
    [root@backup ~]# useradd -u 1005 www
    [root@backup ~]# echo "123456"|passwd --stdin www
    Changing password for user www.
    passwd: all authentication tokens updated successfully.
    
    # 02. 卸载重新挂载
    [root@backup ~]# umount /mnt
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M   14M  473M   3% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    # 03. root 用户保存删除数据
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
    [root@backup mnt]# touch root_data.txt
    touch: cannot touch ‘root_data.txt’: Permission denied
    [root@backup mnt]# rm -fr ./*
    rm: cannot remove ‘./index.html’: Permission denied
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
    
    # 04. 其他普通用户保存删除数据(模拟黑客)
    [root@backup ~]# su - yunxuan
    Last login: Fri Nov 26 17:26:28 CST 2021 on pts/0
    [yunxuan@backup ~]$ cd /mnt
    [yunxuan@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
    [yunxuan@backup mnt]$ touch yunxuan_data.txt
    touch: cannot touch ‘yunxuan_data.txt’: Permission denied
    [yunxuan@backup mnt]$ rm -fr ./*
    rm: cannot remove ‘./index.html’: Permission denied
    
    # 05. www用户保存删除数据(站点用户转换后的身份)
    [yunxuan@backup mnt]$ su - www
    Password: 
    [www@backup ~]$ cd /mnt
    [www@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
    [www@backup mnt]$ touch www_data.txt
    [www@backup mnt]$ ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    [www@backup mnt]$ rm -f index.html 
    [www@backup mnt]$ ll
    total 0
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    

    7.3 问题思考 - 为什么以上配置 root 用户无法删除保存数据

    root 用户转换后的身份为 nfsnobody 用户,共享目录属主和属组全部是 www 用户,因此无法在共享目录中删除和保存数据。

    此外,以上配置为默认配置

    7.3.1 查看 NFS 服务默认配置

    # 01. 先修改当前配置 并 重启服务
    [root@nfs01 data]# vim /etc/exports
    [root@nfs01 data]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync)
    [root@nfs01 data]# systemctl restart nfs
    
    # 02. 查看默认配置
    [root@nfs01 data]# 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)
    
    # 备注:文件 /var/lib/nfs/etab 为记录文件,类似于日志文件。修改该文件内容,不会影响 NFS 服务的默认配置。
    

    7.3.2 解决 root 用户无法存储数据的问题

    root 用户转换后的身份为 nfsnobody 用户,共享目录属主和属组全部是 www 用户,因此无法在共享目录中删除和保存数据。如何解决呢?

    • 解决方法

    将 root 用户 转换成 www 用户,而非 nfsnobody 用户。

    由参数 anonuid=65534,anongid=65534 决定。修改映射用户即可解决 root 用户无法操作数据的问题。

    • 实验
    # 服务端
    # 01. 查看 www 用户的 uid 和 gid
    [root@nfs01 ~]# id www
    uid=1005(www) gid=1005(www) groups=1005(www)
    
    # 02. 配置 NFS 服务
    [root@nfs01 ~]# vim /etc/exports
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    
    # 03. 重启服务
    [root@nfs01 ~]# systemctl restart nfs
    
    # 客户端
    # 01. 卸载重新挂载
    [root@backup ~]# umount /mnt
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M   14M  473M   3% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    # 02. root 用户操作数据
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# touch root_data.txt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 30  2021 root_data.txt
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# rm -f root_data.txt 
    [root@backup mnt]# ll
    total 0
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    

    7.4 企业中常用的配置方法

    7.4.1 通用方法

    /data    172.16.1.0/24(rw,sync)
    

    7.4.2 特殊情况 (让部分人员无法操作存储目录,但是可以看目录中的数据)

    /data    10.1.1.0/24(ro,sync)
    /data    172.16.1.0/24(rw,sync)
    

    7.4.3 修改默认的匿名用户

    /data    172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    

    8. 常见问题

    8.1 NFS 服务重启之后,客户端挂载之后,操作数据比较慢

    原因:服务重启不正确

    8.1.1 服务器重启方式

    8.1.1.1 正常重启(restart)

    restart 重启之后,之前建立网络连接的所有客户端全部强行断开。重启大约需要90s的缓冲时间,因此会出现卡顿现象。企业中不建议使用,用户使用感受不好。

    restart -- 强制断开所有连接

    8.1.1.2 平滑重启(reload)

    reload 平滑重启之后,之前建立网络连接并进行数据传输的链路不会强行断开连接,待数据传输完毕,才断开连接。提升用户感受。

    reload -- 强制断开没有数据传输连接

    9. NFS 客户端详细配置说明

    mount -t nfs 172.16.1.31:/data /mnt
    

    目前,已挂载,若是服务器重启之后,如何实现开机自动挂载?

    9.1 实现自动挂载

    9.1.1 方法1 - 使用 rc.local 文件

    [root@backup ~]# echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local
    [root@backup ~]# chmod u+x /etc/rc.d/rc.local
    [root@backup ~]# ll /etc/rc.d/rc.local
    -rwxr--r--. 1 root root 509 Nov 30 16:27 /etc/rc.d/rc.local
    [root@backup ~]# cat /etc/rc.d/rc.local
    #!/bin/bash
    # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    #
    # It is highly advisable to create own systemd services or udev rules
    # to run scripts during boot instead of using this file.
    #
    # In contrast to previous versions due to parallel execution during boot
    # this script will NOT be run after all other services.
    #
    # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    # that this script will be executed during boot.
    
    touch /var/lock/subsys/local
    mount -t nfs 172.16.1.31:/data /mnt
    

    9.1.2 方法2 - 利用 fstab 文件

    [root@backup ~]# vim /etc/fstab 
    [root@backup ~]# cat /etc/fstab
    
    #
    # /etc/fstab
    # Created by anaconda on Fri Oct 29 00:56:11 2021
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/centos-root /                       xfs     defaults        0 0
    UUID=0c216d60-d304-49af-831f-cb92577e2dc1 /boot                   xfs     defaults        0 0
    /dev/mapper/centos-swap swap                    swap    defaults        0 0
    172.16.1.31:/data       /mnt                    nfs     defaults        0 0
    

    实现自动挂载的前提是:一个特殊的服务需要启动

    CentOS 7 特殊服务:remote-fs.target

    CentOS 6 特殊服务:autofs

    9.2 无法实现网络存储服务自动挂载的原因

    9.2.1 CentOS 6(串行启动)

    根据系统服务启动顺序

    • 按照顺序依次启动
    network 服务 -- sshd 服务 -- crond 服务 -- rsync 服务 -- rpcbind 服务 -- nfs 服务
    
    先加载 /etc/fstab 文件 -- 启动 network 服务 -- 启动autofs服务
    如果此时网络服务还未正常启动,则会挂载失败。
    
    # 解决方法
    netfs,autofs服务 :设置开机自启动
    服务启动好之后,重新加载/etc/fstab文件
    

    9.2.2 CentOS 7(并行启动)

    根据系统服务启动顺序

    network 服务
    sshd 服务
    crond 服务
    rsync 服务
    rpcbind 服务
    nfs 服务
    
    先加载 /etc/fstab 文件 -- 并行启动 network 等服务
    如果此时网络服务还未正常启动,则会挂载失败。
    
    # 解决方法
    remote-fs.target 服务: 设置开机自启动
    服务启动好之后,重新加载/etc/fstab文件
    

    9.2.3 扩展 - CentOS 6 和 CentOS 7 开机启动比较

    当一台CentOS 6系统和一台CentOS 7 系统部署应用一致情况下,CentOS 7 系统启动速度要快于 CentOS 6 系统,因为CentOS 7 启动服务是并行进行,而CentOS 6 是串行进行。

    9.3 扩展 - CentOS 7 中如何查看哪些服务开机自启动

    9.3.1 方法1

    [root@backup ~]# systemctl disable sshd
    Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
    [root@backup ~]# systemctl enable sshd
    Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
    
    # 在此目录下的文件对应的服务全部是开机自启动服务: /etc/systemd/system/multi-user.target.wants/
    [root@backup ~]# ll /etc/systemd/system/multi-user.target.wants/
    total 0
    lrwxrwxrwx. 1 root root 37 Oct 29 00:57 crond.service -> /usr/lib/systemd/system/crond.service
    lrwxrwxrwx. 1 root root 42 Oct 29 00:57 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service
    lrwxrwxrwx  1 root root 46 Nov 11 02:38 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
    lrwxrwxrwx  1 root root 41 Nov 25 12:42 nfs-client.target -> /usr/lib/systemd/system/nfs-client.target
    lrwxrwxrwx  1 root root 40 Nov 30 17:48 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
    lrwxrwxrwx  1 root root 39 Nov 25 12:42 rpcbind.service -> /usr/lib/systemd/system/rpcbind.service
    lrwxrwxrwx  1 root root 38 Nov 11 17:13 rsyncd.service -> /usr/lib/systemd/system/rsyncd.service
    lrwxrwxrwx. 1 root root 39 Oct 29 00:57 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
    lrwxrwxrwx  1 root root 36 Nov 30 19:48 sshd.service -> /usr/lib/systemd/system/sshd.service
    lrwxrwxrwx. 1 root root 39 Nov 11 01:23 sysstat.service -> /usr/lib/systemd/system/sysstat.service
    

    9.3.2 方法2

    [root@backup ~]# systemctl list-unit-files | grep enable
    autovt@.service                               enabled 
    crond.service                                 enabled 
    dbus-org.freedesktop.NetworkManager.service   enabled 
    dbus-org.freedesktop.nm-dispatcher.service    enabled 
    getty@.service                                enabled 
    irqbalance.service                            enabled 
    NetworkManager-dispatcher.service             enabled 
    NetworkManager-wait-online.service            enabled 
    NetworkManager.service                        enabled 
    rpcbind.service                               enabled 
    rsyncd.service                                enabled 
    rsyslog.service                               enabled 
    sshd.service                                  enabled 
    sysstat.service                               enabled 
    rpcbind.socket                                enabled 
    nfs-client.target                             enabled 
    remote-fs.target                              enabled 
    

    9.4 mount 命令参数

    参数 功能
    -o 设置mount挂载参数
    -o rw(默认参数) 实现挂载后挂载点可读可写
    -o ro 实现挂载后挂载点只读
    -o suid(默认参数) 在共享目录中可以让 setuid 权限位生效
    -o nosuid 在共享目录中可以让 setuid 权限位失效(提高共享目录的安全性)
    -o exec(默认参数) 共享目录中的执行文件可以直接执行
    -o noexec 共享目录中的执行文件无法直接执行(提高共享目录的安全性)
    auto(默认参数) 可以实现自动挂载(defaults -- auto;mount -a实现加载fstab文件自动挂载)
    noauto 无法实现自动挂载
    -o nouser(默认参数) 禁止普通用户可以卸载挂载点
    -o user 允许普通用户可以卸载挂载点

    9.4.1 实验1(参数rw和ro)

    # 服务端
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    
    • ro 参数
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs -o ro 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# cd /mnt/
    [root@backup mnt]# ll
    total 0
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# touch root_data.txt
    touch: cannot touch ‘root_data.txt’: Read-only file system
    
    • rw 参数(rw 为默认参数,不设置会默认设置)
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs -o rw 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# touch root_data.txt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    
    # 命令 mount -t nfs -o rw 172.16.1.31:/data /mnt 可替换为 mount -t nfs 172.16.1.31:/data /mnt
    

    9.4.2 实验2(suid和nosuid参数)

    # 服务端
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    [root@nfs01 ~]# cd /data/
    [root@nfs01 data]# which cat
    /usr/bin/cat
    [root@nfs01 data]# cp /usr/bin/cat ./
    [root@nfs01 data]# ll
    total 56
    -rwxr-xr-x 1 root root 54160 Nov 30 18:41 cat
    -rw-r--r-- 1 www  www      0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www  www      0 Nov 27 21:21 www_data.txt
    [root@nfs01 data]# chmod u+s cat
    [root@nfs01 data]# ll
    total 56
    -rwsr-xr-x 1 root root 54160 Nov 30 18:41 cat
    -rw-r--r-- 1 www  www      0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www  www      0 Nov 27 21:21 www_data.txt
    
    • suid 参数(默认参数)
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 56
    -rwsr-xr-x 1 root root 54160 Nov 30 18:41 cat
    -rw-r--r-- 1 www  www      0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www  www      0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# ./cat /etc/shadow
    root:$6$tTo8N7OO$gFPMyKsTBMvj1thAik1Ay34Rt9FXmyEUC1qX1noAzZ9dda73Br1XjuZLuO49QLVQzgKL793pd3WwZfzOHPwut1:18941:0:99999:7:::
    ……
    [root@backup mnt]# su - www
    Last login: Sat Nov 27 21:20:51 CST 2021 on pts/0
    [www@backup ~]$ cd /mnt
    [www@backup mnt]$ ./cat /etc/shadow
    root:$6$tTo8N7OO$gFPMyKsTBMvj1thAik1Ay34Rt9FXmyEUC1qX1noAzZ9dda73Br1XjuZLuO49QLVQzgKL793pd3WwZfzOHPwut1:18941:0:99999:7:::
    ……
    
    • nosuid 参数
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs -o nosuid 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 56
    -rwsr-xr-x 1 root root 54160 Nov 30 18:41 cat
    -rw-r--r-- 1 www  www      0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www  www      0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# ./cat /etc/shadow
    root:$6$tTo8N7OO$gFPMyKsTBMvj1thAik1Ay34Rt9FXmyEUC1qX1noAzZ9dda73Br1XjuZLuO49QLVQzgKL793pd3WwZfzOHPwut1:18941:0:99999:7:::
    ……
    [root@backup mnt]# su - www
    Last login: Tue Nov 30 18:43:07 CST 2021 on pts/0
    [www@backup ~]$ cd /mnt
    [www@backup mnt]$ ./cat /etc/shadow
    ./cat: /etc/shadow: Permission denied
    

    9.4.3 实验3(exec和noexec参数)

    # 服务端
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    
    • exec 参数
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 4
    -rw-r--r-- 1 www  www   0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www  www   0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# echo "cat /etc/hosts" > test.sh
    [root@backup mnt]# ll
    total 4
    -rw-r--r-- 1 www www  0 Nov 30 18:38 root_data.txt
    -rw-r--r-- 1 www www 15 Nov 30 18:54 test.sh
    -rw-rw-r-- 1 www www  0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# chmod u+x test.sh 
    [root@backup mnt]# ll
    total 4
    -rw-r--r-- 1 www www  0 Nov 30 18:38 root_data.txt
    -rwxr--r-- 1 www www 15 Nov 30 18:54 test.sh
    -rw-rw-r-- 1 www www  0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# /mnt/test.sh 
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@backup mnt]# su - www
    Last login: Tue Nov 30 18:59:26 CST 2021 on pts/0
    [www@backup ~]$ cd /mnt
    [www@backup mnt]$ ll
    total 4
    -rw-r--r-- 1 www www  0 Nov 30 18:38 root_data.txt
    -rwxr--r-- 1 www www 15 Nov 30 18:58 test.sh
    -rw-rw-r-- 1 www www  0 Nov 27 21:21 www_data.txt
    [www@backup mnt]$ /mnt/test.sh 
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    • noexec 参数
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs -o noexec 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# cd /mnt
    [root@backup mnt]# ll
    total 0
    -rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
    -rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# echo "cat /etc/hosts" > test.sh
    [root@backup mnt]# chmod u+x test.sh 
    [root@backup mnt]# ll
    total 4
    -rw-r--r-- 1 www www  0 Nov 30 18:38 root_data.txt
    -rwxr--r-- 1 www www 15 Nov 30 18:58 test.sh
    -rw-rw-r-- 1 www www  0 Nov 27 21:21 www_data.txt
    [root@backup mnt]# /mnt/test.sh
    -bash: /mnt/test.sh: Permission denied
    [root@backup mnt]# su - www
    Last login: Tue Nov 30 18:45:59 CST 2021 on pts/0
    [www@backup ~]$ cd /mnt
    [www@backup mnt]$ ll
    total 4
    -rw-r--r-- 1 www www  0 Nov 30 18:38 root_data.txt
    -rwxr--r-- 1 www www 15 Nov 30 18:58 test.sh
    -rw-rw-r-- 1 www www  0 Nov 27 21:21 www_data.txt
    [www@backup mnt]$ /mnt/test.sh
    -bash: /mnt/test.sh: Permission denied
    

    9.4.4 实验4(auto和noauto参数)

    # 服务端
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    
    • auto 参数(默认)
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# cat /etc/fstab 
    ……
    172.16.1.31:/data       /mnt                    nfs     defaults        0 0
    [root@backup ~]# mount -a
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    
    • noauto 参数
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# vim /etc/fstab 
    [root@backup ~]# cat /etc/fstab
    ……
    172.16.1.31:/data       /mnt                    nfs     noauto        0 0
    [root@backup ~]# mount -a
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    

    9.4.5 实验5(nouser和user参数)

    # 服务端
    [root@nfs01 ~]# ll -d /data
    drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
    [root@nfs01 ~]# cat /etc/exports
    /data  172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
    
    • nouser 参数(默认)
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# vim /etc/fstab 
    [root@backup ~]# cat /etc/fstab
    ……
    172.16.1.31:/data       /mnt                    nfs     auto        0 0
    [root@backup ~]# mount -a
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# su - www
    Last login: Tue Nov 30 19:00:34 CST 2021 on pts/0
    [www@backup ~]$ df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [www@backup ~]$ umount /mnt
    umount: /mnt: umount failed: Operation not permitted
    
    • user 参数(操作失败待研究)
    # 客户端
    [root@backup ~]# umount /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.5M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    [root@backup ~]# mount -t nfs -o user 172.16.1.31:/data /mnt
    [root@backup ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [root@backup ~]# su - www
    Last login: Tue Nov 30 19:09:31 CST 2021 on pts/0
    [www@backup ~]$ df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   28G  1.7G   26G   7% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.6M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1                473M  125M  349M  27% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         28G  1.7G   26G   7% /mnt
    [www@backup ~]$ umount /mnt
    umount: /mnt: umount failed: Operation not permitted
    

    9.5 客户端卸载说明

    umount /mnt
    
    # 强制卸载挂载点
    umount -lf /mnt
    
    -l  不退出挂载点目录进行卸载
    -f  强制卸载
    

    10. 进程说明

    image-20211201121844938.png

    11. NFS 服务挂载不上排查方法

    11.1 服务端排查

    11.1.1 检查服务端服务是否注册

    # 服务端本地
    rpcinfo -p localhost
    
    # 远程
    rpcinfo -p 172.16.1.31
    
    • 未注册原因分析
    1. 服务启动顺序正确
    # 01. 先启动 rpc 服务
    systemctl start rpcbind
    
    # 02. 再启动 nfs 服务
    systemctl start nfs
    
    1. nfs 服务未启动
    # 启动 nfs 服务
    systemctl start nfs
    

    11.1.2 检查有没有可用的存储目录

    showmount -e localhost(172.16.1.31)
    
    • 原因分析
    1. 配置文件编写错误
    # 检查配置文件
    cat /etc/exports
    
    # 重启服务
    systemctl restart nfs
    
    1. 没有存储目录
    # 检查没有存储目录,创建对应目录,并进行授权
    mkdir /data
    chown -R nfsnobody.nfsnobody /data
    

    11.1.3 在服务端本地进行挂载测试

    # 在服务端本地进行挂载
    mount -t nfs 172.16.1.31:/data /mnt
    
    # 检查存储目录是否具有数据操作权限
    

    11.2 客户端排查

    11.2.1 检查服务端服务是否注册

    # 检查服务端服务是否注册
    rpcinfo -p 172.16.1.31
    
    • 未注册原因分析
    1. 服务端 服务启动顺序不正确
    # 01. 服务端先启动 rpc 服务
    systemctl start rpcbind
    
    # 02. 再启动 nfs 服务
    systemctl start nfs
    
    1. 服务端 nfs 服务未启动
    # 启动 nfs 服务
    systemctl start nfs
    

    11.2.2 检查有没有可用的存储目录

    showmount -e 172.16.1.31
    
    • 原因分析
    1. 检查网络是否正常
    ping 172.16.1.31
    telnet 172.16.1.31 111
    
    1. 服务端配置文件编写错误,检查配置文件并重启服务

    2. 服务端没有存储目录,创建并重新授权

    相关文章

      网友评论

          本文标题:存储服务 NFS

          本文链接:https://www.haomeiwen.com/subject/zqluxrtx.html