NFS搭建

作者: chenxuyuan123 | 来源:发表于2021-02-25 14:45 被阅读0次

    一:什么是NFS

    NFS既网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应该可以透明的读写位于远端NFS服务器上的文件,就向访问本地文件一样

    没有使用NFS

    image.png

    使用NFS之后


    image.png

    二:工作原理

    NFS在文件传送或者信息传送过程中依赖于RPC协议.RPC是能使客户端执行其他系统中程序的一种机制.NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议,而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输

    三:部署NFS服务端

    3.1 安装NFS

    搜索安装包
    [root@nfs-31 cxy_shell]# yum search nfs
    nfs-utils.x86_64 : NFS utilities and supporting clients and daemons for the kernel NFS server
    
    
    安装NFS服务
    [root@nfs-31 cxy_shell]# yum install nfs-utils.x86_64 -y
    当安装这个服务之后,系统会默认增加一个nfsnobody用户和组
    

    3.2 创建www用户

    [root@nfs-31 ~]# groupadd -g 666 www
    [root@nfs-31 ~]# useradd -M -s /sbin/nologin -u 666 -g 666 www
    

    3.3 配置NFS

    修改配置文件
    [root@nfs-31 cxy_shell]# vim /etc/exports
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
    
    NFS配置文件参数说明
    rw 读写权限
    ro 只读权限
    root_squash:当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户(不常用)
    no_root_squash:当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员(不常用)
    all_squash:无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户(常用)
    no_all_squash:无论 NFS 客户端使用什么账户访问,都不进行压缩
    sync:同时将数据写入到内存与硬盘中,保证不丢失数据
    async:优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
    anonuid:配置 all_squash 使用,指定 NFS 的用户 UID,必须存在系统
    anongid:配置 all_squash 使用,指定 NFS 的用户 UID,必须存在系统
    

    3.4 创建/data/目录并且修改权限

    [root@nfs-31 ~]#mkdir /data
    [root@nfs-31 ~]# chown www:www /data
    
    注意:如果配置文件没有指定uid,gid,会使用软件默认的账户nfsnobody
    例如这种配置文件:   /data 172.16.1.0/24(rw,sync,all_squash)
    就需要修改/data目录的所属用户为nfsnobody
    [root@nfs-31 ~]# chown nfsnobody:nfsnobody /data
    

    3.5 启动服务

    rpc要优于nfs先启动
    [root@nfs-31 ~]#systemctl start rpcbind nfs-server.service 
    [root@nfs-31 ~]#systemctl enable rpcbind nfs-server.service 
    
    查看服务是否运行正常
    [root@nfs-31 ~]# showmount -e
    Export list for nfs-31:
    /data 172.16.1.0/24
    

    四:NFS客户端

    4.1 安装NFS

    [root@backup-41 ~]# yum install nfs-utils.x86_64 -y
    

    4.2 启动rpc服务

    客户端只需要启动rpc服务就可以了
    [root@backup-41 ~]# systemctl start rpcbind.service 
    [root@backup-41 ~]# systemctl enable rpcbind.service
    

    4.3 查看nfs是否正常

    [root@backup-41 ~]# showmount -e 172.16.1.31
    Export list for 172.16.1.31:
    /data 172.16.1.0/24
    

    4.4 将nfs服务器上的data目录挂载到本地的data目录上

    [root@backup-41 /]# mount -t nfs 172.16.1.31:/data /data
    注意:如果没有创建www用户,在backup这个主机上看到的文件所属用户和组都是666,所以建议在客户端也创建www用户
    [root@backup-41 ~]# groupadd -g 666 www
    [root@backup-41 ~]# useradd -M -s /sbin/nologin -u 666 -g 666 www
    
    查看是否挂载成功
    [root@backup-41 /]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   17G  1.6G   16G  10% /
    devtmpfs                 476M     0  476M   0% /dev
    tmpfs                    488M     0  488M   0% /dev/shm
    tmpfs                    488M  7.7M  480M   2% /run
    tmpfs                    488M     0  488M   0% /sys/fs/cgroup
    /dev/sda1               1014M  130M  885M  13% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    172.16.1.31:/data         17G  1.6G   16G  10% /data
    

    4.5 开机自动挂载

    [root@backup-41 data]# cat /etc/fstab 
    172.16.1.31:/data                        /data  nfs     defaults        0 0
    

    相关文章

      网友评论

          本文标题:NFS搭建

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