架构.md

in with 0 comment

架构

1.负载均衡

2.高可用

3.集群

4.项目

5.架构

架构环境规划

外网IP内网IP主机名
10.0.0.5172.16.1.5lb01
10.0.0.6172.16.1.6lb02
10.0.0.7172.16.1.7web01
10.0.0.8172.16.1.8web02
10.0.0.9172.16.1.9web03
10.0.0.31172.16.1.31nfs
10.0.0.41172.16.1.41backup
10.0.0.51172.16.1.51db01
10.0.0.52172.16.1.52db02
10.0.0.61172.16.1.61m01
10.0.0.71172.16.1.71zabbix

rsync 基本概述

rsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于Unix/linux/Windows等多种操作系统平台。

rsync特性

支持拷贝特殊文件,如连接文件、设备等。
可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变 –p。
可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N)。
可以使用rcp、rsh、ssh等方式来配合传输文件(rsync本身不对数据加密)。
可以通过socket(进程方式)传输文件和数据(服务端和客户端)。
支持匿名的活认证(无需系统用户)的进程模式传输,可以实现方便安全的进行数据备份和镜像。

备份的类型

全量备份

增量备份

差异备份

rsync同步模式

1.推 push

2.拉 pull

大量服务器应用场景

异地备份场景

Rsync三种传输模式

1.本地模式

#安装rsync
[root@backup ~]# yum install -y rsync

#本地拷贝数据命令
Local:  rsync [OPTION...] SRC... [DEST]
#本地拷贝数据示例
[root@backup ~]# rsync  -avz  /etc/passwd  /tmp/
rsync       #备份命令(cp)
[options]   #选项
SRC...      #本地源文件
[DEST]      #本地目标文件

2.远程模式

Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  [root@backup ~]# rsync -avz  root@172.16.1.7:/tmp /root
  [root@backup ~]# rsync -avz  root@172.16.1.7:/tmp/ /root
  
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
  [root@backup ~]# rsync -avz /etc root@172.16.1.7:/tmp
  [root@backup ~]# rsync -avz /etc/ root@172.16.1.7:/tmp

#注意:
1.推送目录加'/':推送目录下的所有文件
2.推送目录不加'/':推送目录下的所有文件及目录本身

rsync参数

#rsync参数
-a           #归档模式传输, 等于-tropgDl
-v           #详细模式输出, 打印速率, 文件数量等
-z           #传输时进行压缩以提高效率
-r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t           #保持文件时间信息
-o           #保持文件属主信息
-p           #保持文件权限
-g           #保持文件属组信息
-l           #保留软连接
-P           #显示同步的过程及传输时的进度等信息
-D           #保持设备文件信息
-L           #保留软连接指向的目标文件
-e           #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN   #指定排除不需要传输的文件模式
--exclude-from=zls.txt #文件名所在的目录文件
--bwlimit=100       #限速传输
--partial           #断点续传
--delete            #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件

3.守护进程模式daemon

环境准备

主机角色外网IP(WAN)内网IP(LAN)主机名称
Rsync服务端10.0.0.41172.16.1.41backup
Rsync客户端10.0.0.7172.16.1.7web01

部署rsync服务端

1)安装

#安装rsync
[root@backup ~]# yum install -y rsync

2)修改配置文件

#修改配置文件
[root@backup ~]# vim /etc/rsyncd.conf 
#启动服务的用户(uid)
uid = rsync
#启动服务的用户(gid)
gid = rsync
#启动服务的端口
port = 873
#推送目录不使用身份
fake super = yes
#推送目录的时候不跳出指定目录之外的目录
use chroot = no
#最大连接数200
max connections = 200
#超时时间600s
timeout = 600
#忽略错误
ignore errors
#禁用只读
read only = false
#不允许查看模块信息列表
list = false
#认证的虚拟用户
auth users = rs
#认证的虚拟用户的密码文件
secrets file = /etc/rsync.txt
#日志
log file = /var/log/rsyncd.log
#####################################
#模块(自定义)
[zls]
#注释信息
comment = 123
#备份目录
path = /backup

3)创建系统用户

[root@backup ~]# useradd rsync -s /sbin/nologin -M

4)创建虚拟用户的密码文件,并授权

#方法一:
[root@backup ~]# vim /etc/rsync.txt
rs:123456

#方法二:
[root@backup ~]# echo 'rs:123456' > /etc/rsync.txt

#授权
[root@backup ~]# chmod 600 /etc/rsync.txt 

5)创建备份目录,并授权

[root@backup ~]# mkdir /backup
#授权
[root@backup ~]# chown -R rsync.rsync /backup/

6)启动,加入开机自启

[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd

7)检测端口

[root@backup ~]# netstat -lntup  
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      17478/rsync  

部署rsync客户端

1)安装

[root@web01 ~]# yum install -y rsync

2)免密推送文件

#方法一:创建密码文件
[root@web01 ~]# vim /etc/rsync.pass
123456
#授权
[root@web01 ~]# chmod 600 /etc/rsync.pass
#推送
rsync -avz /etc/ rs@172.16.1.41::zls --password-file=/etc/rsync.pass

#方法二:使用环境变量(推荐)
export RSYNC_PASSWORD=123456
#推送
rsync -avz /etc/ rs@172.16.1.41::zls

3)查看推送语法

Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]

  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST