美文网首页中小规模架构
课堂笔记day34——NFS企业级网络存储服务

课堂笔记day34——NFS企业级网络存储服务

作者: 劉歓 | 来源:发表于2019-04-17 20:01 被阅读0次

    1.什么是NFS?

    1)NFS全称:network file system(网络文件系统)

         通过网络存储和组织文件的一种方法或机制。

    2)为什么要用它?

         前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一的放到后端的存储上。

    3)为什么要共享?

         所有节点服务器都需要将内容存到存储服务器上,取得时候统一来取。

    4)共享存储的种类:

         单点存储系统就是NFS,适用于中小型企业,比如:阿里云服务的NAS服务以及OSS对象存储,但是NFS性能不太高。

        大型企业会用分布式存储FastDFS、Ceph、GlsterFS、Mfs。

    5)举例:

    大型存储厂商:EMC、Netapp(几十万)。

    艺龙旅行网:存储用的EMC,传统企业。

    硬件存储:传统企业==>稳定、2台、双主机头、几十块硬盘RAID10。

    2.NFS工作原理

    2.1NFS网络文件系统

    启动NFS服务,而且还要启动很多端口

    NFS功能:需要很多服务。每个服务都有端口,而且经常变化

    如何让客户端找到这些端口呢?就需要一个经纪人(rpc服务)

    2.1NFS服务:

    NFS服务(有很多进程和端口)

    RPC服务(对外固定端口111)

    客户端请求NFS服务,先找RPC 111,查找NFS的端口,发给客户。

    2.3原理图:


    3.NFS企业级存储服务搭建

    3.1nfs01中(服务端)

    1)安装服务:

    [root@nfs01 /]# yuminstall nfs-utils rpcbind -y

    [root@nfs01 /]# rpm-qa nfs-utils rpcbind

    rpcbind-0.2.0-47.el7.x86_64

    nfs-utils-1.3.0-0.61.el7.x86_64

    2)开启服务并设置开启自启动:

    [root@nfs01 /]#systemctl start rpcbind.service

    [root@nfs01 /]#systemctl enable rpcbind.service

    [root@nfs01 /]#rpcinfo -p 127.0.0.1

       programvers 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

    [root@nfs01 /]#systemctl start nfs

    [root@nfs01 /]#systemctl enable nfs

    [root@nfs01 /]#rpcinfo -p 127.0.0.1

       program vers proto   port service

      100000    4   tcp   111  portmapper

      ……

      ……

      100003    3   tcp  2049  nfs

      100021    4   tcp 20579  nlockmgr

    [root@nfs01 /]#netstat -lnup|egrep "rpc|nfs"

    udp        0     0 0.0.0.0:53301          0.0.0.0:*                          7893/rpc.statd     

    udp        0     0 0.0.0.0:20048          0.0.0.0:*                           7946/rpc.mountd    

    udp        0     0 0.0.0.0:821              0.0.0.0:*                           7854/rpcbind       

    udp        0     0 127.0.0.1:863          0.0.0.0:*                          7893/rpc.statd     

    udp6       0     0 :::20048                  :::*                                   7946/rpc.mountd    

    udp6       0     0 :::821                      :::*                                   7854/rpcbind       

    udp6       0     0 :::26458                  :::*                                    7893/rpc.statd

    3)添加配置文件:

    [root@nfs01 /]# vim/etc/exports

    [root@nfs01 /]# tail-1 /etc/exports

    /data 172.16.1.0/24(rw,sync)

    [root@nfs01 /]#mkdir -p /data

    [root@nfs01 /]# ls-ld /data

    drwxr-xr-x 2 root root 6 4月  16 09:32 /data

    [root@nfs01 /]#chown -R nfsnobody.nfsnobody /data

    [root@nfs01 /]# ls-ld /data

    drwxr-xr-x 2 nfsnobody nfsnobody 6 4月  16 09:32 /data

    4)重启服务:(任选一个即可)

    [root@nfs01 /]#systemctl reload nfs        <==生产场景必须要实现平滑重启

    [root@nfs01 /]#exportfs -r

    5)检查:

    [root@nfs01 /]#showmount -e 172.16.1.31

    Export list for 172.16.1.31:

    /data 172.16.1.0/24

    3.2切换到web01(客户端)

    1)安装

    yum install nfs-utils rpcbind -y

    rpm -qa nfs-utils rpcbind

    2)启动服务并设置开机自启动

    [root@web01 ~]#systemctl start rpcbind

    [root@web01 ~]#systemctl enable rpcbind

    3)检查端口

    [root@web01 ~]#netstat -lntup|grep rpc

    udp        0     0 0.0.0.0:875            0.0.0.0:*                          7908/rpcbind       

    udp6       0     0 :::875                 :::*                               7908/rpcbind       

    [root@web01 ~]# ps-ef|grep rpcbind

    rpc       7908      1  0 12:17 ?        00:00:00 /sbin/rpcbind -w

    root      7932   7523  0 12:18 pts/0    00:00:00 grep --color=auto rpcbin

    4)查看NFS服务器提供的共享目录

    [root@web01 ~]#showmount -e 172.16.1.31

    Export list for 172.16.1.31:

    /data 172.16.1.0/24

    5)挂载:

    [root@web01 ~]#mount -t nfs 172.16.1.31:/data /data

    [root@web01 ~]# df-h|tail -1

    文件系统                 容量  已用  可用已用% 挂载点

    172.16.1.31:/data         18G 2.0G   16G   11% /data

    [root@web01 ~]#touch /data/liuhuan.txt

    [root@web01 ~]# ls/data

    liuhuan.txt

    6)切换到backup下:和web01下的操作完全一样

    7)开机自动挂载:

    方法一、nfs01、web01、backup下分别执行如下命令就实现了开机自动挂载:

    注意:如果将命令添加到/etc/rc.local中重启后不挂载的话记得给/etc/rc.d/rc.local加执行权限。

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

    方法二、/etc/fstab中添加文件

    [root@nfs01 /]# vim/etc/fstab

    172.16.1.31:/data       /data                    nfs     defaults        0 0

    3.3项目实战

    1)NFS下面共享/backup ,允许web01 backup客户端(/backup)可读写,且web01上传图片,backup上可以删除web01上传的图片

    第一步:服务端

    yum install nfs-utils rpcbind -y

    rpm -qa nfs-utils rpcbind

    systemctl start rpcbind.service 

    systemctl enable rpcbind.service 

    systemctl start nfs 

    systemctl enable nfs 

    rpcinfo 127.0.0.1 

    netstat lnup|egrep "nfs|rpc" 

    echo "/backup 172.16.1.0/24(rw,sync)">>/etc/exports 

    tail -1 /etc/exposts 

    mkdir -p /backup 

    chown -R nfsnobody.nfsnobody /backup

    ll -ld /backup 

    systemctl reload nfs 

    showmount -e 172.16.1.31 

    第二步:web01和backup(客户端)中执行如下命令

    yum install nfs-utils rpcbind -y 

    rpm -qa nfs-utils rpcbind 

    systemctl start rpcbind.service 

    systemctl enable rpcbind.service 

    netstat -lntup|grep rpc 

    mkdir -p /backup 

    showmount -e 172.16.1.31

    mount -t nfs 172.16.1.31:/backup /mnt 

    df -h|tail -1 

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

    tail -1 /etc/rc.local

    2)NFS下面共享/data1,允许 web01 backup客户端10网段只读(data1)

    第一步:服务端

    yum install nfs-utils rpcbind -y 

    rpm -qa nfs-utils rpcbind 

    systemctl start rpcbind.service 

    systemctl enable rpcbind.service 

    systemctl start nfs 

    systemctl enable nfs 

    rpcinfo 127.0.0.1 

    netstat -lnup|egrep "rpc|nfs" 

    echo "/data1 10.0.0.0/24(ro)" >>/etc/exports 

    mkdir -p /data1 

    chown -R nfsnobody.nfsnobody /data1 

    ls -ld /data1 

    systemctl reload nfs 

    showmount -e 172.16.1.31

    第二步:客户端

    yum install nfs-ntils rpcbind -y

    rpm -qa nfs-utils rpcbind

    systemctl start rpcbind.service

    systemctl enable spcbind.service

    netstat -lntup|grep nfs

    mkdir -p /data1

    showmount -e 172.16.1.31

    mount -t nfs 10.0.0.31:/data1 /opt

    df -h|tail -1

    echo "mount -t nfs 10.0.0.31:/data1 /opt" >>/etc/rc.local

    tail -1 /etc/rc.local

    相关文章

      网友评论

        本文标题:课堂笔记day34——NFS企业级网络存储服务

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