构建NFS远程共享存储

文件系统级别共享(NAS存储)

NFS

NFS全称 Network File System 网络文件系统

和其他文件系统一样,是在Linux内核中实现的,因此NFS很难做到和Windows兼容。NFS共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用

NFS文件系统仅支持基于IP的用户访问控制

NFS的客户端主要为Linux

因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。

那RPC和NFS之间又是如何之间相互通讯的?

首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。

构建实战

实验环境准备

服务端:nfs-server 192.168.60.131
客户端:nfs-client 192.168.60.132

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

NFS-server操作

  • 安装rpc协议的包

    yum install -y rpcbind
    
  • 安装nfs服务

    yum -y install nfs-utils
    
  • 启动服务

    systemctl start nfs
    systemctl start rpcbind
    
  • 创建存储目录

    mkdir /nfs-dir
    
  • 制作test文件

    echo "nfs-test" >> /nfs-dir/index.html
    
  • 编辑共享文件

    vim /etc/exports
    	/nfs-dir 192.168.60.0/24(rw,no_root_squash,sync)
    
    可选参数注释:
    ro:只读
    rw:读写
    *:表示共享给所有网段。
    sync:所有数据在请求时写入共享
    root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
    no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。
    

nfs001-tuya.png

  • 重启服务并制作开机启动

    systemctl restart nfs-server
    systemctl enable nfs-server
    

NFS-client操作

  • 安装rpc协议的包

    yum install -y rpcbind
    
  • 安装nfs服务

    yum install -y nfs-utils
    
  • 创建挂载点

    mkdir /nfs-dir-test
    
  • 挂载

    mount -t nfs 192.168.60.131:/nfs-dir /nfs-dir-test
    

    -t 指定文件类型

  • 查看挂载

    df -hT
    
  • 查看挂载目录

    [root@nfs-client ~]# ls /nfs-dir-test/
    	index.html
    #可以发现已经挂载成功
    
  • 取消挂载

    umount /nfs-dir/test
    
  • 制作开机挂载

    vim /etc/fstab
    

    写入一下内容

    192.168.60.131:/nfs-dir /nfs-dir-test   nfs     defaults        0 0
    

    然后

    mount -a
    

    发现挂载已经生效