D30-综合架构备份服务
一、服务学习技巧
1.安装部署
yum、rpm(一解决软件之间的依赖关系;二知晓软件属于哪个安装包)、编译(在nginx时详解)、二进制包
需要清楚知道软件包的安装位置
2.如何配置
任何一个服务均需配置相关文件,才能生效,而不同服务的配置内容也不尽相同,要清楚知道服务配置文件中的相关内容的含义
3.如何运行
在CentOS7中大多数服务软件均可以通过systenmctl命令进行启动,常见参数“systemctl start/stop/restart/status/enable 服务”即开启、关闭、重启、当前状态、每次开机自行加载;而在CentOS6中不同的服务由不同的命令完成,或者通过不同的脚本来实现
4.如何应用
在综合架构中大多数服务均可通过单独的命令加参数就可以完成,如:rsync;而像数据库相关服务,就需要多个命令配合参数共同完成,如:mysql、mysqldump、mysqladmin、mysqlinstalldb、mysqlsafe等多个命令,共同完成相应服务;在或者像监控相关服务zabbix,则需要web页面图形化来完成
5.排错优化
前四步骤属于基础步骤,队学习的服务有了初步认识及一些基础操作,但想真正掌握一个服务,就要知道一些常见错误和如何优化服务,建议经常总结学习过程中出现的错误,反思错误原因的同时还可以在下次出现新的错误的同时提供排错思路
二、系统模板主机克隆说明
1.主机克隆准备工作
虚拟主机网络配置(添加一块内网网卡)
虚拟主机系统优化
2.主机克隆过程说明
链接克隆:利用模板主机作为克隆主机,生成链接克隆主机
优点:节省克隆之后的占用资源,克隆主机效率更高
缺点:模板主机消失,链接克隆主机将不能正常操作,及其依赖模板主机,安全性低
完整克隆:利用模板主机作为克隆主机,生成完整克隆主机(企业常用)
优点:克隆主机与模板主机相互独立,属于独立新主机,不受模板主机的影响,安全性高
缺点:浪费克隆之后的资源,占用空间大,克隆主机的效率低
3.克隆主机初始化脚本
作用:优化修改主机名称和配置网卡信息效率
vim/server/scripts/init.sh
#!/bin/bashHost_name=$1
Host_ip=$2# 修改主机名称
hostnamectl set-hostname $Host_name
# 修改网卡地址
sed -ri "s#200#$Host_ip#g;
/UUID|HWADDR/d" /etc/sysconfig/network-scripts/ifcfg-eth[01]
# 重启网络服务
sleep 2
systemctl restart network
注:$1代表传参即将执行命令后的参数传递给设置好的变量 三、备份服务概念介绍 a 对网站服务器数据进行备份存储 (恢复丢失数据 恢复误修改数据)
b 对网站服务器数据进行对比分析 (修改前和修改后的配置文件对比)
c 对网站服务器数据进行统一管理
例:在备份服务器上统一读取web服务集群上的web日志文件,而不用再上不同的web服务器上挨个读取
备份服务器应该有几台合适: 同一机房要有多个备份服务器
不同机房要有多个备份服务器
不同地理位置有多个备份服务器
PS: 中石油备份数据架构解决方案---两地三中心
两地三中心,其中三中心是指两个生产中心和一个灾备中心,两地是指生产中心为同一城,灾备中心为另一城,而两个生产中心其数据时相互同步实时复制,而再将两个生产中心所产生的数据上传到云端,再有云端异步的传输到被宰中心,从而进行备份,当其中一台生产中心出现问题,同城的另一台生产中心,依然可以保证所有用户及服务正常运行且数据不丢失,并因为同城,传输速率影响不大,而当生产中心的区域遭到不可抗力因素时,异地的备灾中心就可以及时通过云端传输数据,保证服务器正常运转。
文章图片
image.png 备份服务器备份什么数据
- 内部人员产生数据: 如复杂脚本文件 、开发人员代码信息 、配置文件(ansible) 数据库文件 日志文件 --- 定时任务备份
- 外部人员产生数据: 图片信息 附件信息 视频信息 --- 实时数据备份
rsync软件: a fast, versatile, remote (and local) file-copying tool
一个快速的、多功能的、远程(及本地)文件的备份工具
官网: https://rsync.samba.org/
2.rsync软件实现快速备份: 全量备份数据: 将所有数据进行完整备份传输 备份传输数据效率较低
增量备份数据: 将变化数据进行备份传输 备份传输数据效率较高
增量备份数据原理
1.比较数据属性信息:在数据备份到备份服务器时,系统会自行比对,备份数据和已有数据之间的属性信息,只有文件属性信息不同时,才会判定为新的数据,从而进行备份
默认rsync增量传输数据利用属性信息做比较
2.比较数据指纹信息:在数据产生的过程中,系统会生成一个与其对应的指纹信息,而在数据备份过程中,一旦数据发生更改,则会再次生成一个新的对应的指纹信息,这是备份服务器则将这个数据认定成新的数据
使用rsync -c (-c, --checksum:skip based on checksum, not mod-time & size) 基于指纹信息判断文件的变化
文章图片
image.png
文章图片
image.png 3.rsync软件使用方法 A.实现本地备份
在本地备份时作用和cp基本保持一致
B.实现远程备份(全量备份)
远程备份文件就是本地数据通过目标主机的IP地址进行定向传输
方式一:scp
scp 备份文件路径 备份服务器IP地址:备份服务器存储路径
(如备份的是目录信息则需要-rp参数,r为递归备份; p为保持备份数据属性保持一致)
方式二:rsync
rsync 备份文件路径 备份服务器IP地址:备份服务器存储路径
(如备份的是目录信息则需要-vrp的参数,r为递归备份;p为保持备份数据属性保持一致;v为在源主机显示备份过程)
注:当使用rsync备份目录数据时在输入备份文件路径时后加/(如路径信息:/oldboy/)则表示为不备份该目录,只备份目录下的所有数据;(如路径信息:/oldboy)则表示为备份所有,包括目录本身
C.远程备份目录的两种方式
a.拉的方式:从目标服务器备份到源服务器,由远及近的过程
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
[OPTION...] ---参数
[USER@] --- 登录远程主机用户信息 (默认不指定用户使用当前登录系统用户进行连接)
HOST --- 远程主机IP地址信息或者主机名称信息
SRC --- 远程主机上要备份传输到本地主机数据信息
DEST --- 将数据保存本地主机路径信息
b.推的方式:从源服务器备份到目标服务器,由近及远的过程
Push: rsync [OPTION...] SRC..[USER@]HOST:DEST
[OPTION...] ---参数
[USER@] --- 登录远程主机用户信息 默认不指定用户使用当前登录系统用户进行连接
HOST --- 远程主机IP地址信息或者主机名称信息
SRC --- 本地主机上要备份传输到远程主机数据信息
DEST --- 将数据保存远程主机路径信息
文章图片
image.png
参照服务器即为操作服务器
D.采用rsync守护进程方式实现数据远程备份
此方式能解决的问题:
问题一: 如何免交互备份数据信息
问题二: 如何实现增量备份数据
问题三: 如何限制进行传输连接数
问题四: 如何实现认证备份数据
rsync守护进程推的方式备份文件
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
SRC: 本地主机上要备份推送数据信息
[USER@] 备份服务认证用户信息
HOST:: 备份服务器IP地址信息或者主机名称信息
DEST 备份服务器模块名称信息
五、rsync守护进程方式部署流程 服务器部署过程 第一个里程: 确认软件是否安装/安装软件程序
检查软件是否安装:rpm -qa rsync
安装软件:yum install -y rsync
第二个里程: 编写配置文件
vi /etc/rsyncd.conf --- 配置rsync文件路径信息
uid = rsync --- 管理备份目录的属主信息
gid = rsync --- 管理备份目录的属组信息
port = 873 --- 指定rsync守护进程服务端口信息 默认端口为 873
fake super = yes --- 让指定虚拟用户伪装成管理员用户, 可以强行修改文件属主属组权限信息
use chroot = no --- 和远程传输安全有关参数
max connections = 200 --- 设置最大连接数
timeout = 300 --- 连接超时时间(默认秒) 没有数据传输的时间
pid file = /var/run/rsyncd.pid --- 记录服务进程号码文件==pid文件以及判断服务是否开启或关闭 l
lock file = /var/run/rsync.lock --- 当max connection(最大连接数)达到上限, 利用锁文件阻止新的连接建立
log file = /var/log/rsyncd.log --- 程序日志文件(排错)
ignore errors --- 忽略错误信息 提升传输数据效率
read only = false --- 设置备份目录权限为可读可写
list = false --- 显示模块列表信息
hosts allow = 172.16.1.0/24 --- 设置访问策略 白名单
hosts deny = 0.0.0.0/32 --- 设置访问策略 黑名单
auth users = rsync_backup(,第二个认真用户信息) --- 认证用户信息; 如有多个用户,则在前一个用户信息后添加,再添加认证用户信息
secrets file = /etc/rsync.password --- 认证用户密码文件 用户信息:密码信息
[backup] --- 模块信息
comment = "backup dir by oldboy" --- 模块注释说明信息
path = /backup/ --- 指定备份目录
ps:使用vim编辑文件内容时,中间某一行为带#号的注释行时,则复制内容到该文件时从注释行到最后一行都将改为注释行;vi命令则不会。 第三个里程:创建rsync服务虚拟用户
useradd -M -s /sbin/nologin rsync
第四个里程:创建认证用户密码文件;修改文件权限为600
echo rsync_backup(认证用户):123456(该用户密码) > /etc/rsync.password
echo 新认证用户名称:该用户密码 >> /etc/rsync.password ==>添加新用户密码信息
chmod 600 /etc/rsync.password
第五个里程:创建备份目录;修改属主属组信息
mkdir /dackup(模块指定的存储目录)
chown rsync.rsync /dackup(模块指定的存储目录)
第六个里程:开启或重启服务
systemctl start/stop rsyncd ==>启动/关闭服务
systemctl status rsync ==>查看服务状态
systemctl restart rsync ==>重启服务
systemctl enable rsync ==>开机自动启动服务
客户端部署过程 第一个里程:测试服务端配置是否成功
rsync -avz 需要备份数据 认证用户信息@备份服务器私网IP地址::模块信息
password
第二个里程: 创建生成密码文件;修改密码文件权限600
echo 认证用户的相应密码 >/etc/rsync.password
chmod 600 /etc/rsync.password
第二个里程: 实现免交互传输数据
【D30-综合架构备份服务】rsync -avz 需要备份的数据 认证用户信息@备份服务器私网IP地址::模块信息
如:rsync -avz /oldboy/oldboy.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
推荐阅读
- 科塔德综合征
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- 20180322【w4复盘日志】
- 暑期综合症
- 礼仪是一门综合应用学科
- 年薪30万的Java架构师必会的springboot面试题
- EdgeDB 架构简析
- 脊柱漫游之脊柱综合篇(五)
- 大众点评(redux架构)
- 2018总结(投资方面综合(实际)收益率-11.08%(二))