• NFS部署过程


    课前回顾 及 NFS

    NFS部署过程

    1)安装服务端

    yum install -y nfs-utils rpcbind

    2)修改配置文件

    vim /etc/exports
    #共享目录       IP网段           参数
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

    3)nfs自带用户:nfsnobody 65534,自己创建用户

    groupadd www -g 666
    useradd www -u 666 -g 666 -s /sbin/nologin -M

    4)创建共享目录

    mkdir /data
    chown -R www.www /data

    5)启动服务

    systemctl start rpcbind nfs-server

    客户端部署

    1)安装rpcbind和nfs

    yum install -y rpcbind nfs-utils

    2)启动rpcbind

    systemctl start rpcbind

    3)查看可挂载点

    showmount -e 172.16.1.31

    4)挂载

    mount -t nfs 172.16.1.31:/data /var/www/html/tupian

    5)开机挂载

    vim /etc/fstab
    172.16.1.31:/data /var/www/html/tupian nfs defaults 0 0

    6)使用mount -a 检测

    [root@backup ~]# mount -a

    7)卸载

    umount /var/www/html/tupian
    #强制卸载
    umount -lf /var/www/html/tupian

    8)nfs挂载文件

    [root@nfs01 ~]# cat /var/lib/nfs/etab

    9)增加挂载的安全性

    #通过mount -o指定挂载参数,禁止使用suid,exec,增加安全性能
    [root@nfs-client ~]# mount -t nfs -o nosuid,noexec,nodev 172.16.1.31:/data /mnt

    nfs配置参数

    rw:共享目录的权限是 可读 可写

    sync:同时将数据写入内存和磁盘,增强数据的安全性,保证数据不丢失

    all_squash:无论使用什么用上传或者访问,一律压缩成 nfs的匿名用户

    anonuid:指定一个匿名用户,必须是系统存在的uid

    anongid:指定一个匿名用户组,必须是系统存在的gid

    ----------------------------------------------不常用--------------------------------------------

    root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
    no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
    no_all_squash无论NFS客户端使用什么账户访问,都不进行压缩
    async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
    ro只读权限
       

     

    NFS存储小结

    • NFS存储优点

      • 1)NFS文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。

        2)NFS文件系统内存放的数据都在文件系统之上,所有数据都是能看得见。

       

      • NFS存储局限

        • 1)存在单点故障, 如果构建高可用维护麻烦web->nfs()->backup

        • 2)NFS数据明文, 并不对数据做任何校验。

        • 3)客户端挂载NFS服务没有密码验证, 安全性一般(内网使用)

           

    3.NFS应用建议 1)生产场景应将静态数据尽可能往前端推, 减少后端存储压力

    2)必须将存储里的静态资源通过CDN缓存jpgpngmp4avicssjs

    3)如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用

    rsync+nfs实战,解决nfs的单点故障

    服务器系统角色IP
    CentOS 7.5 NfsServer(A) 172.16.1.31
    CentOS 7.5 NfsClient(B) 172.16.1.41
    CentOS 7.5 NfsClient(C) 172.16.1.7

    1)安装服务端

    yum install -y rpcbind nfs-utils

    2)编辑服务端的配置文件

    vim /etc/exports
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

    3)创建用户

    groupadd www -g 666
    useradd www -u 666 -g 666 -s /sbin/nologin -M

    4)创建目录并授权

    mkdir /data
    chown -R www.www /data

    5)启动服务

    systemctl start rpcbind nfs-server

    6)检查

    cat /var/lib/nfs/etab
    /data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)

    配置客户端

    1)安装客户端服务

    yum install -y rpcbind nfs-utils

    2)启动rpc

    systemctl start rpcbind
    

    3)查看挂载点

    showmount -e 172.16.1.31
    

    4)挂载

    mount -t nfs 172.16.1.31:/data /var/www/html/tupian
    

    结合rsync

    1)NFS安装rsync

    yum install -y rsync
    

    2)客户端与服务端的关系

     

    3)使用免密的方式

    export RSYNC_PASSWORD=123456
    

     

    rsync服务端操作(backup)

    1)创建www用户

    groupadd www -g 666
    useradd www -u 666 -g 666 -s /sbin/nologin -M
    

    2)统一rsync服务的用户和用户组(修改配置文件)

    vim /etc/rsyncd.conf
    uid = www
    gid = www
    port = 873
    fake super = yes
    use chroot = no
    max connections = 200
    timeout = 600
    ignore errors
    read only = false
    list = false
    auth users = rsync_backup
    secrets file = /etc/rsync.passwd
    log file = /var/log/rsyncd.log
    #####################################
    [zls]
    comment = welcome to oldboyedu backup!
    path = /backup
    
    [nfs]
    comment = welcome to oldboyedu nfs!
    path = /data
    

    3)创建目录并授权

    [root@backup ~]# mkdir /data
    [root@backup ~]# chown -R www.www /data/
    

    4)编写备份脚本

    vim rsync.sh 
    #!/bin/bash
    
    PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin'
    H=`hostname`
    I=`ifconfig eth1|awk 'NR==2{print $2}'`
    D=`date +%F`
    S=${H}_${I}_${D}
    BD=/backup
    export RSYNC_PASSWORD=123456
    
    mkdir -p ${BD}/${S}
    
    tar zcf ${BD}/${S}/conf.tar.gz /etc/passwd &>/dev/null
    
    md5sum ${BD}/${S}/conf.tar.gz  > /backup/${I}.txt
    
    rsync -az ${BD}/ rsync_backup@172.16.1.41::zls
    rsync -az --delete /data/ rsync_backup@172.16.1.41::nfs
    find ${BD} -type d -mtime +7|xargs rm -fr
    

    5)安装nfs服务端

    [root@backup ~]# yum install -y rpcbind nfs-utils
    

    6)编辑配置文件

    [root@backup ~]# vim /etc/exports
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
    

    7)启动服务

    [root@backup ~]# systemctl start rpcbind nfs-server
    [root@backup ~]# systemctl enable rpcbind nfs-server
    

    web01客户端写脚本

    #!/bin/bash
    
    check_nfs=`df -h|grep '/var/www/html/tupian'|wc -l`
    if [ $check_nfs -eq 0 ];then
            showmount -e 172.16.1.31 &>/dev/null
            if [ $? -eq 0 ];then
                    mount -t nfs 172.16.1.31:/data /var/www/html/tupian
            else
                    mount -t nfs 172.16.1.41:/data /var/www/html/tupian
            fi
    fi
    

     

    5.录视频

  • 相关阅读:
    使用pycharm调用模块后字体变灰
    spring注解驱动开发
    spring注解驱动开发
    spring注解驱动开发
    Centos6.5 防火墙开放端口
    fastJson一些补充
    springboot使用hibernate validator校验
    swagger的使用
    rabbitmq的vhost与用户管理
    解决mysql中只能通过localhost访问不能通过ip访问的问题
  • 原文地址:https://www.cnblogs.com/223zhp/p/11372880.html
Copyright © 2020-2023  润新知