美文网首页
linux学习--week11--综合架构备份服务

linux学习--week11--综合架构备份服务

作者: 亮仔_c1b5 | 来源:发表于2019-09-24 21:36 被阅读0次

    老男孩教育64期--week11--综合架构备份服务

    1. 综合架构知识概述说明

      1. 备份服务企业应用
      2. 备份服务常见问题
      3. 全网备份项目 ***
      4. 存储服务概念 NFS FTP samba
      5. 存储数据原理
      6. 存储服务进行部署
      7. 存储服务配置参数
      8. 存储服务客户端配置参数
    2. 综合架构课程回顾:

      1. 综合架构组成部分
        防火墙设备 : iptables firewalld
        负载均衡设备 : nginx Lvs haproxy
        网站服务web : nginx apache tomcat/php
        数据库服务 : mysql oracle
        存储服务 : NFS ftp samba 分布式存储
        备份服务 : rsync
        缓存服务 : redis mongodb
        vpn服务器 : pptpvpn openvpn
        跳板机服务 : jumpserver
        批量管理服务 : ansible saltstack
        监控服务 : zabbix

      2. 综合架构环境准备:

        1. 虚拟主机网络配置
        2. 虚拟主机克隆操作 (克隆前/克隆后 -- 快照)
      3. 部署备份服务

        1. rsync备份服务概念作用
        2. rsync备份服务命令语法 (本地备份 rsync=cp/远程备份rsync=scp/ 守护进程)
        3. rsync守护进程部署方式
          rsync服务端部署: 安装-->配置-->创建虚拟用户-->创建密码文件(授权600)-->创建备份目录(授权 rsync.rsync管理备份目录)
          rsync客户端部署: 创建密码文件--> 免交互备份数据
        4. rsync命令参数说明: -avzP
    1. 备份服务企业应用

      1. 备份服务多模块配置
        配置信息:
        [backup_sa]
        comment = "backup dir by oldboy"
        path = /backup
        [backup_dev]
        comment = "backup dir by oldboy"
        path = /backup_dev
        [backup_db]
        comment = "backup dir by oldboy"
        path = /backup_db

      环境准备:
      mkdir /backup_dev
      mkdir /backup_db
      chown rsync.rsync /backup_dev
      chown rsync.rsync /backup_db

      1. 备份服务数据筛选功能
        环境准备
        [root@nfs01 ~]# mkdir /oldboy/{a..c}
        [root@nfs01 ~]# touch /oldboy/{a..c}/{01..03}.txt
        [root@nfs01 ~]# tree /oldboy/
        /oldboy/
        ├── a
        │?? ├── 01.txt
        │?? ├── 02.txt
        │?? └── 03.txt
        ├── b
        │?? ├── 01.txt
        │?? ├── 02.txt
        │?? └── 03.txt
        └── c
        ├── 01.txt
        ├── 02.txt
        └── 03.txt

      3 directories, 9 files

      需求

      1. 不要将a目录所有数据进行备份 不要将b目录中03.txt文件进行备份
        [root@nfs01 ~]# rsync -avz /oldboy/ --exclude=a/ --exclude=b/03.txt rsync_backup@172.16.1.41::backup_sa --password-file=/etc/rsync.password
        sending incremental file list
        ./
        b/
        b/01.txt
        b/02.txt
        c/
        c/01.txt
        c/02.txt
        c/03.txt

      sent 374 bytes received 134 bytes 338.67 bytes/sec
      total size is 0 speedup is 0.00

      1. 不要将a目录01.txt数据进行备份 不要将b目录中02.txt文件进行备份 不要将c目录中03.txt文件进行备份
        [root@nfs01 /tmp]# vim exclude.txt
        a/01.txt
        b/02.txt
        c/03.txt

      [root@nfs01 ~]# rsync -avz /oldboy/ --exclude-from=/tmp/exclude.txt rsync_backup@172.16.1.41::backup_sa --password-file=/etc/rsync.password
      sending incremental file list
      ./
      a/
      a/02.txt
      a/03.txt
      b/
      b/01.txt
      b/03.txt
      c/
      c/01.txt
      c/02.txt

      sent 448 bytes received 157 bytes 1,210.00 bytes/sec
      total size is 0 speedup is 0.00

      1. 客户端创建多级备份目录
        运维部门: 三个员工
        张三 --- backup_sa/zhangsan
        李四 --- backup_sa/lisi
        王五 --- backup_sa/wangwu

      oldboy oldboy数据 ---> rsync数据
      oldgirl oldgirl数据 ---> rsync数据
      root root数据 ---> rsync数据

      rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup_sa/zhangsan/ --password-file=/etc/rsync.password
      创建备份目录子目录

      1. 备份服务策略控制功能
        hosts allow = 172.16.1.0/24 --- 白名单配置
        hosts deny = 0.0.0.0/32 --- 黑名单配置
        情况一: 只有白名单配置
        hosts allow = 172.16.1.0/24
        说明: 白名单允许的可以进行备份数据/白名单不允许阻止访问

      情况二: 只有黑名单配置
      hosts deny = 10.0.0.0/24
      说明: 黑名单阻止的网段不能备份/黑名单没有阻止的可以进行访问

      请求三: 有白名单配置,也有黑名单配置
      白名单信息匹配: 允许进行备份数据
      黑名单信息匹配: 阻止进行备份数据
      白名单和黑名单都没有匹配上: 默认也是可以进行备份数据

      补充: 配置文件说明:
      全局配置: 都有模块都会加载全局配置
      局部配置: 只是影响指定模块配置信息
      局部配置优先于全局配置

      1. 数据无差异同步功能 (用户数据做备份)
        备份服务器上数据和源存储设备上数据信息保持高度一致
        rsync -avz /oldboy/ --delete rsync_backup@172.16.1.41::backup_sa --password-file=/etc/rsync.password

      2. 显示存储模块列表功能
        list = false --- 可以让客户端查看服务端所有模块信息
        [root@nfs01 /oldboy]# rsync rsync_backup@172.16.1.41::
        backup_sa "backup dir by oldboy"
        backup_dev "backup dir by oldboy"
        backup_db "backup dir by oldboy"

    2. 备份服务常见企业应用

    1. 企业全网备份项目说明 编写脚本
      ? 1) 所有服务器的备份目录必须都为/backup
      ? 2) 要备份的系统配置文件包括但不限于:
      a) 定时任务服务的配置文件 (/var/spool/cron/root) (适合web和nfs服务器)。
      b) 开机自启动的配置文件 (/etc/rc.local) (适合web和nfs服务器)。
      c) 日常脚本的目录 (/server/scripts)。
      d) 防火墙iptables的配置文件 (/etc/sysconfig/iptables-config)。
      e) 自己思考下还有什么需要备份呢?
      ? 3) Web服务器站点目录假定为 (/var/html/www)。
      ? 4) Web服务器访问日志路径假定为 (/app/logs)
      ? 5) 服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
      ? 6) 备份服务器上,不仅保留最近7天的备份数据,同时保留6个月内; 6个月之外每周一的所有数据副本保留
      ? 7) 备份服务器上,要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。
      ? 8) 需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中。

      确认有自己的邮箱: 163 qq 企业

    image.png image.png image.png
    全网备份项目完成说明
    备份客户端操作说明
    1) 所有服务器的备份目录必须都为/backup    
    mkdir /backup/172.16.1.31/ -p
    
    2) 进行重要数据本地备份(压缩)
    cd /
    tar zcvhf /backup/172.16.1.31/system_backup_$(date +%F_week%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts/ ./etc/sysconfig/iptables-config
    tar zcvhf /backup/172.16.1.31/web_www_$(date +%F_week%w).tar.gz  ./var/html/www/
    tar zcvhf /backup/172.16.1.31/web_app_$(date +%F_week%w).tar.gz  ./app/logs/
    
    3) 将本地压缩包数据进行远程备份
    方式一:
    rsync -avz /backup/ rsync_backup@172.16.1.41::backup_sa/172.16.1.31/ --password-file=/etc/rsync.password
    方式二:
    rsync -avz /backup/ rsync_backup@172.16.1.41::backup_sa --password-file=/etc/rsync.password
    
    4) 将本地7天以前的数据进行删除
    find /backup -type f -name "*.tar.gz"  -mtime +7 -delete 
    
    5) 创建指纹文件信息(用于验证数据完整性)
    find /backup/ -type f -name "*$(date +%F).tar.gz"|xargs md5sum >/backup/172.16.1.31/finger.txt
    
    备份服务端配置说明:
    1) 需要验证数据完整性:
    find /backup/ -type f -name "finger.txt"|xargs md5sum -c
    find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check_backup.txt 2>/dev/null
    
    2) 需要进行系统发送邮件配置
    foxmail 邮件客户端软件   ---> 企业邮件服务器 ---> 发送或接受
    linux系统                ---> 企业邮件服务器 ---> 发送
    
    第一个历程: 修改企业邮件服务器配置信息:
    pkxmynvtgmkgbied  --- 获取授权码信息
    smtp.qq.com       --- 获取发送邮件服务器域名信息
    
    第二个历程: 编写系统邮件服务配置信息
    vi /etc/mail.rc 
    set from=330882721@qq.com                --- 连接的邮箱信息
    set smtp=smtp.qq.com                     --- 邮箱服务器域名信息
    set smtp-auth-user=330882721@qq.com      --- 邮箱登录用户名称信息
    set smtp-auth-password=pkxmynvtgmkgbied  --- 邮箱登录用户授权码信息
    set smtp-auth=login                      --- 进行邮箱登录操作
    systemctl restart postfix.service
    
    第三个历程: 检查是否可以发送邮件
    echo test_oldboy |mail -s "test" 330882721@qq.com
    mail -s "check_data 2019-09-09" 330882721@qq.com </tmp/check_backup.txt 
    
    3) 备份服务器保留6个月以内数据, 6个月之前数据周一的也要保留
    方式一: 
    find /backup -type f -name "*.tar.gz" -mtime +180 ! -name "*_week1.tar.gz" -delete
    方式二: 
    0 1 * * 1   sh save_week1.sh
    cat save_week1.sh
    find /backup -type f -name "*.tar.gz" -mtime -1 | xargs mv -t /tmp
    
    编写脚本文件
    备份服务客户端脚本文件
    [root@nfs01 ~]# cat /server/scripts/nfs_backup.sh 
    #!/bin/bash
    
    backup_dir="/backup"
    IP_info="$(hostname -i)"
    
    
    # 01. local backup dir
    mkdir $backup_dir/$IP_info/ -p
    mkdir /var/html/www/ -p
    mkdir /app/logs/ -p
    
    # 02. backup system data
    cd /
    tar zchf $backup_dir/$IP_info/system_backup_$(date +%F_week%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts/ ./etc/sysconfig/iptables-config
    tar zchf $backup_dir/$IP_info/web_www_$(date +%F_week%w).tar.gz  ./var/html/www/
    tar zchf $backup_dir/$IP_info/web_app_$(date +%F_week%w).tar.gz  ./app/logs/
    
    # 03. create finger file
    find $backup_dir/ -type f -name "*$(date +%F_week%w).tar.gz"|xargs md5sum >$backup_dir/$IP_info/finger.txt
    
    # 04. push date to backup_server
    rsync -az $backup_dir/  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    
    # 05. delete 7day ago
    find /backup -type f -name "*.tar.gz"  -mtime +7 -delete
    
    备份服务服务端脚本文件 
    [root@backup /backup]# cat /server/scripts/backup_server.sh 
    #!/bin/bash
    backup_dir="/backup"
    
    
    # 01. check date info
    find $backup_dir/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check_backup.txt 2>/dev/null
    
    # 02. send mail info
    mail -s "check_data $(date +%F)" 330882721@qq.com </tmp/check_backup.txt
    
    # 03. delete data 180 ago
    find $backup_dir -type f -name "*.tar.gz" -mtime +180 ! -name "*_week1.tar.gz" -delete 
    
    编写定时任务:
    客户端定时任务编写:
    0 0 * * *  /bin/sh  /server/scripts/nfs_backup.sh  &>/dev/null 
    
    9-8  周日   9-9   0点做数据备份 数据日期信息-9-9-week1    -d "-1 day"  --> 09-08 周日
    9-9  周一   9-10  0点做数据备份 数据日期信息-9-10-week2     -d "-1 day"  --> 09-09 周一
    
    
    服务端定时任务编写:
    0 6 * * *  /bin/sh  /server/scripts/backup_server.sh  &>/dev/null
    
    1. 存储服务概念介绍
      作用什么:

      1. 实现网站数据统一存储
      2. 降低服务硬盘采购成本
        实现方式:
        硬件方式: IBM v5000 v7000 dsxxx/ EMC
        软件方式:
        NFS(不能部署在windows) FTP(配置复杂) samba(部署在windows linux 配置复杂) --- 中小型企业
        分布式存储 mfs glusterfs(
        ) fastdfs --- 数据丢失/不容易进行数据恢复
        用户A浏览器(10M) -- lb --- web01 ---> 存储服务器A 存储服务器A A-10m
        用户B浏览器(10M) -- lb --- web01 ---> 存储服务管理端 存储服务器B A-3M 存储服务器B A-10m
        用户C浏览器(10M) -- lb --- web01 ---> 存储服务器C A-3M

      NFS实现数据存储原理
      用户浏览器 -- lb --- web01(/mnt) -mount 网络挂载方式-> NFS 存储服务器 /data

    image.png image.png image.png
    1. 存储服务部署过程:
      预备知识说明:
      RPC服务: 远程过程调用程序 (中介)

      服务端部署过程:
      第一个历程: 安装软件程序
      yum install -y rpcbind nfs-utils

      第二个历程: 编写配置文件
      vi /etc/exports
      定义存储数据目录 允许存储数据白名单(存储服务参数信息)
      /data 172.16.1.0/24(rw,sync)

      第三个历程: 创建存储数据目录/修改存储目录属主或属组信息
      mkdir /data
      chown nfsnobody.nfsnobody /data

      第四个历程: 启动存储服务
      systemctl start rpcbind
      systemctl start nfs
      centos7 先启动nfs 后启动rpcbind nfs进程和端口信息也可以进行注册

      第五个历程: 检查存储目录是否可以正常使用
      showmount -e 172.16.1.31
      Export list for 172.16.1.31:
      /data 172.16.1.0/24

      客户端部署过程:
      第一个历程: 安装软件程序
      yum install -y nfs-utils

      第二个历程: 进行网络挂载操作
      mount -t nfs 172.16.1.31:/data /mnt

      第三个历程: 进行存储数据测试
      在客户端创建 删除 修改数据 == 服务端存储目录中 创建 删除 修改数据

    2. 存储服务配置参数信息:
      rw --- 指定让存储目录可读可写
      ro --- 指定让存储目录为只读模式
      sync --- 同步方式存储数据 用户存储数据 -数据-> web服务数据目录 --> nfs服务器 /data (磁盘中)
      async --- 异步方式存储数据 用户存储数据 -数据-> web服务数据目录 --> nfs服务器 --- 内存 --- /data (磁盘里)
      all_squash --- 将所有普通用户做身份映射转换 oldboy用户(数据) -oldboy - nfsnobody-> nfs服务端 /data(nfsnobody)
      no_all_squash --- 不会将普通用户身份做映射转换 oldboy用户(数据) -oldboy - oldboy -> nfs服务端 /data(nfsnobody)
      root_squash --- 会将root用户身份做映射转换 root用户(数据) -root - nfsnobody-> nfs服务端 /data(nfsnobody)
      no_root_squash --- 不会将root用户身份做映射转换 root用户(数据) -root - root -> nfs服务端 /data(nfsnobody)
      anonuid --- 设置指定映射的用户信息
      anongid --- 设置指定映射的用户组信息

      补充: reload 平滑重启 restart 重启
      reload: 已经建立的连接/连接上有数据传输时, 在重启服务时, 不会影响这些链接
      restart: 服务器在重启时, 会将所有连接断开, 进行重新建立

    image.png image.png
    总结: 存储目录是否可以存储数据, 目录权限有什么有关系
    01. 配置文件的权限参数配置有关
    02. 目录本身权限有关系  755 属主属组是否正确
    

    预习:

    1. nfs剩余课程
    2. sersync实时同步服务(用户上传数据)
    3. SSH远程服务 / ansible批量管理服务

    相关文章

      网友评论

          本文标题:linux学习--week11--综合架构备份服务

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