Atlas+keepalived+mysql(实现HA+主从同步)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A tlas+lvs+keepalived +mysql+主从复制负载均衡搭建
部署文档
2015-8-31
(V1.0)
一、部署背景信息
基于mysql的负载均衡有很多种方式,如haproxy,前面一篇博客有介绍,还可以用更高效lvs 做负载均衡,下面是基于percona xtradb cluster的三个节点的多主复制+atlas的lvs负载均衡,其
实这里是不需要用atlas的,因为atlas是用来做连接池和读写分离的,而多主架构是不需要读写分离的(如果是基于mysql replication的就需要atlas做负载均衡了),但为了测试atlas能不能用lvs做负载均衡,就顺便做了下实验。
1.节点规划
1.1 mysql数据节点:
db169
db172
db173
三个节点为xtradb cluster节点。
1.2 keepalived节点:
db162
db163
虚拟ip为192.168.1.201
haproxy节点(仅为了对比lvs的性能才安装的):db169(部署在xtradb cluster的一个节点上)
1.3 atlas节点:和xtradb cluster节点部署在一起,也为三个节点
注意:atlas和mysql要部署在一个节点上,如果不在一个节点上则不能用lvs dr模式负载均衡
1.4 客户端测试节点:db55
ip地址为192.168.1.* ,节点名为db+ip地址末位
2.安装lvs及keepavlied(db162、db163上)
2.1安装依赖包
yum -y install kernel-devel make gcc openssl-devel libnl*
下载并连接linux kernel文件,注意版本要一致(uname -a)
[root@db163 ~]# ln -s /usr/src/kernels/2.6.32-358.el6.x86_64/ /usr/src/linux
安装keepalived、lvs
[root@db162 ~]# yum install ipvsadm
[root@db162 ~]# yum install keepalived
[root@db163 ~]# yum install ipvsadm
[root@db163 ~]# yum install keepalived
2.2.配置keepavlied,注意lvs不需要单独配置,在keepalived里配置就行了
[root@db162 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id MySQL_LB1
}
vrrp_sync_group VSG {
group {
MySQL_Loadblancing
}
}
vrrp_instance MySQL_Loadblancing { state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.201
}
}
virtual_server 192.168.1.201 1234 { delay_loop 6
lb_algo rr
lb_kind DR
# nat_mask 255.255.255.0
#persistence_timeout 50
protocol TCP
real_server 192.168.1.169 1234 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 1234
}
}
real_server 192.168.1.172 1234 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 1234
}
}
real_server 192.168.1.173 1234 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 1234
}
}
}
备机上的keepalived配置
[root@db163 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived
global_defs {
router_id MySQL_LB2
}
vrrp_sync_group VSG {
group {
MySQL_Loadblancing
}
}
vrrp_instance MySQL_Loadblancing {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.201
}
}
virtual_server 192.168.1.201 1234 {
delay_loop 6
lb_algo rr