1.haproxy+keepalived负载均衡之主备切换
2.MySQL实现三节点高可用集群方案mysql三台高可用
3.Keepalivedå·¥ä½åç
haproxy+keepalived负载均衡之主备切换
VIP: ..1.Master: ..1.
Slave: ..1.
真实IP:
RIP1: ..1.
RIP2: ..1.
以下为安装步骤
第一步:安装haproxy
下载f,源码在mysqld部分添加以下选项:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydb
接下来重启MySQL服务:
sudo systemctl restart mysql
然后在剩余节点上重复以上步骤,源码但这里的源码server-id值需要分别设置为2和3,并且不需要执行GRANT命令。源码
4. 启用复制
接下来需要在第一个节点上启动复制,源码性格测试 源码后端将日志流复制到其他节点。源码源码在线浏览工具首先要查看MASTER状态:
SHOW MASTER STATUS;
记录下File和Position的源码值,然后切换到第二个节点并执行以下命令:
CHANGE MASTER TO
MASTER_HOST=’..1.1′,源码
MASTER_USER=’replica’,
MASTER_PASSWORD=’password’,
MASTER_LOG_FILE=’binlog.′,
MASTER_LOG_POS=;
这里MASTER_HOST设置为第一个节点的IP地址,MASTER_LOG_FILE和MASTER_LOG_POS来自SHOW MASTER STATUS命令的源码输出。
然后启动从节点的源码复制:
START SLAVE;
在第三个节点上重复以上步骤,将MASTER_HOST改为第一个节点的源码IP地址并执行START SLAVE命令。
现在,源码所有节点都可以相互复制。源码口红机源码漏洞可以通过在任何一个节点上进行更改,源码然后查看其他节点是源码否成功复制来进行测试。
5. 配置故障转移
当一个节点宕机时,需要将其网址替换为一个其他节点的lda 困惑度源码网址。这可以通过使用keepalived实现。在此假设使用..1.4作为虚拟IP地址,第一台服务器将作为负载均衡器。
在第一台服务器上安装keepalived:
sudo apt-get update
sudo apt-get install keepalived
然后编辑/etc/keepalived/keepalived.conf以设置虚拟IP地址和权重:
global_defs {
router_id YOUR_ROUTER_ID
}
vrrp_instance VI_1 {
interface eth0
virtual_router_id 1
priority
advert_int 1
authentication {
auth_type PASS
auth_pass YOUR_AUTH_PASS
}
virtual_ipaddress {
..1.4
}
}
在第二和第三台服务器上安装keepalived并使用相同的任务销售站源码keepalived.conf文件。在此之前,要确保每个节点都有不同的router_id。
6. 测试故障转移
现在可以测试负载平衡器的故障恢复功能。在第一个节点上停止MySQL服务:
sudo systemctl stop mysql
然后检查虚拟IP是否已转移到另一个节点:
ip addr show
应该看到虚拟IP地址已从第一个节点转移到了另一个节点。
7. 总结
通过使用上述步骤,可以创建一个可靠的、高可用性的MySQL集群,以确保应用程序在任何情况下都始终可用。同时,还可以使用其他一些工具和技术来进一步加强MySQL的高可用性,例如Galera Cluster和Pacemaker。
Keepalivedå·¥ä½åç
Keepalived软件起åæ¯ä¸ä¸ºLVSè´è½½å衡软件设计çï¼ç¨æ¥ç®¡ç并çæ§LVSé群系ç»ä¸å个æå¡èç¹çç¶æï¼åæ¥åå å ¥äºå¯ä»¥å®ç°é«å¯ç¨çVRRPåè½ãå æ¤ï¼Keepalivedé¤äºè½å¤ç®¡çLVS软件å¤ï¼è¿å¯ä»¥ä½ä¸ºå ¶ä»æå¡ï¼ä¾å¦ï¼NginxãHaproxyãMySQLçï¼çé«å¯ç¨è§£å³æ¹æ¡è½¯ä»¶ã
Keepalivedéç¨æ¯æ¨¡åå设计ï¼ä¸å模åå®ç°ä¸åçåè½ã
keepalived主è¦æä¸ä¸ªæ¨¡åï¼åå«æ¯coreãcheckåvrrpã
core ï¼æ¯keepalivedçæ ¸å¿ï¼è´è´£ä¸»è¿ç¨çå¯å¨åç»´æ¤ï¼å ¨å±é ç½®æ件çå 载解æç
check ï¼ è´è´£healthchecker(å¥åº·æ£æ¥)ï¼å æ¬äºåç§å¥åº·æ£æ¥æ¹å¼ï¼ä»¥å对åºçé ç½®ç解æå æ¬LVSçé 置解æï¼å¯åºäºèæ¬æ£æ¥å¯¹IPVSå端æå¡å¨å¥åº·ç¶åµè¿è¡æ£æ¥
vrrp ï¼VRRPDåè¿ç¨ï¼VRRPDåè¿ç¨å°±æ¯æ¥å®ç°VRRPåè®®ç
keepalived é ç½®æ件ï¼
Keepalived é ç½®æ件为ï¼keepalived.confï¼
主è¦æä¸ä¸ªé ç½®åºåï¼åå«æ¯ï¼å ¨å±é ç½®(Global Configuration)ãVRRPDé ç½®ãLVSé ç½®
å ¨å±é ç½®åå æ¬ä¸¤ä¸ªåé ç½®ï¼ å ¨å±å®ä¹(global definition) éæIPå°å/è·¯ç±é ç½®(static
ipaddress/routes)
Keepalivedæå¡VRRPçå·¥ä½åçï¼
Keepalivedé«å¯ç¨å¯¹ä¹é´æ¯éè¿ VRRPè¿è¡éä¿¡çï¼ VRRPæ¯éè¿ç«éæºå¶æ¥ç¡®å®ä¸»å¤çï¼ä¸»çä¼å 级é«äºå¤ï¼å æ¤ï¼å·¥ä½æ¶ä¸»ä¼ä¼å è·å¾ææçèµæºï¼å¤èç¹å¤äºçå¾ ç¶æï¼å½ä¸»å®æºçæ¶åï¼å¤èç¹å°±ä¼æ¥ç®¡ä¸»èç¹çèµæºï¼ç¶å顶æ¿ä¸»èç¹å¯¹å¤æä¾æå¡
å¨Keepalivedæå¡å¯¹ä¹é´ï¼åªæä½ä¸ºä¸»çæå¡å¨ä¼ä¸ç´åé VRRP广æå ,åè¯å¤å®è¿æ´»çï¼æ¤æ¶å¤ä¸ä¼æ¢å 主ï¼å½ä¸»ä¸å¯ç¨æ¶ï¼å³å¤çå¬ä¸å°ä¸»åéç广æå æ¶ï¼å°±ä¼å¯å¨ç¸å ³æå¡æ¥ç®¡èµæºï¼ä¿è¯ä¸å¡çè¿ç»æ§.æ¥ç®¡é度æå¿«
åºç°èè£çåå ï¼
é«å¯ç¨æå¡å¨å¯¹ä¹é´å¿è·³çº¿é¾è·¯åçæ éï¼å¯¼è´æ æ³æ£å¸¸éä¿¡ã
å å¿è·³çº¿åäºï¼å æ¬æäºï¼èåï¼ã
å ç½å¡åç¸å ³é©±å¨åäºï¼ipé ç½®åå²çªé®é¢ï¼ç½å¡ç´è¿ï¼
å å¿è·³çº¿é´è¿æ¥ç设å¤æ éï¼ç½å¡å交æ¢æºï¼
å 仲è£çæºå¨åºé®é¢ï¼éç¨ä»²è£çæ¹æ¡ï¼
é«å¯ç¨æå¡å¨ä¸å¼å¯äº iptablesé²ç«å¢é»æ¡äºå¿è·³æ¶æ¯ä¼ è¾ã
é«å¯ç¨æå¡å¨ä¸å¿è·³ç½å¡å°åçä¿¡æ¯é ç½®ä¸æ£ç¡®ï¼å¯¼è´åéå¿è·³å¤±è´¥
å ¶ä»æå¡é ç½®ä¸å½çåå ï¼å¦å¿è·³æ¹å¼ä¸åï¼å¿è·³å¹¿æå²çªã软件Bugçã
å¦ä½è§£å³èè£ï¼
â åæ¶ä½¿ç¨ä¸²è¡çµç¼å以太ç½çµç¼è¿æ¥ï¼åæ¶ç¨ä¸¤æ¡å¿è·³çº¿è·¯ï¼è¿æ ·ä¸æ¡çº¿è·¯åäºï¼å¦ä¸ä¸ªè¿æ¯å¥½çï¼ä¾ç¶è½ä¼ éå¿è·³æ¶æ¯ã
â¡ å½æ£æµå°è£èæ¶å¼ºè¡å ³éä¸ä¸ªå¿è·³èç¹ï¼è¿ä¸ªåè½éç¹æ®è®¾å¤æ¯æï¼å¦Stonithãfeyceï¼ãç¸å½äºå¤èç¹æ¥æ¶ä¸å°å¿è·³æ¶æ£ï¼éè¿åç¬ç线路åéå ³æºå½ä»¤å ³é主èç¹ççµæºã
⢠å好对è£èççæ§æ¥è¦ï¼å¦é®ä»¶åææºçä¿¡çæå¼çï¼.å¨é®é¢åçæ¶äººä¸ºç¬¬ä¸æ¶é´ä»å ¥ä»²è£ï¼éä½æ失ã管çåå¯ä»¥éè¿ææºåå¤å¯¹åºæ°åæç®åçå符串æä½è¿åç»æå¡å¨.让æå¡å¨æ ¹æ®æ令èªå¨å¤çç¸åºæ éè¿æ ·è§£å³æ éçæ¶é´æ´çã
ä¸ãå®éªç¯å¢
æä½ç³»ç»ï¼CentOS7.2 Minial
###################
serverAï¼
eno ..1.
eno ..1.
##########################
serverBï¼
eno ..1.
eno ..1.
###########################
vip:..1.
vipï¼..1.
äºã设置é²ç«å¢
/usr/bin/firewall-cmd --direct
--permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination ${ ç»æå°å} --protocol vrrp -jACCEPT
/usr/bin/firewall-cmd --reload
ä¸ã软件å®è£
å¨serverAåserverBä¸
# rpm -ivh --force libnl3-3.2.-4.el7.x_.rpm
# rpm -ivh --forcelm_sensors-libs-3.4.0-4.gitfe5.el7.x_.rpm
# rpm -ivh --force net-snmp-agent-libs-5.7.2-.el7.x_.rpm
# rpm -ivh --force net-snmp-libs-5.7.2-.el7.x_.rpm
# rpm -ivh --force ipset-libs-6.-3.el7_6.x_.rpm
# rpm -ivh --force keepalived-1.3.5-6.el7.x_.rpm
åãé ç½®keepalived
å¦æä¸ä½¿ç¨ VRRP Sync Groups å¦ækeepalived 主æºæ两个ç½æ®µï¼æ¯ä¸ªç½æ®µå¼å¯ä¸ä¸ªVRRP å®ä¾ï¼å¦æ对å¤çç½æ®µåºç°é®é¢ï¼VRRPD认为èªå·±ä»ç¶è®¤ä¸ºå¥åº·ï¼å æ¤ MasteråBackup ç¸äºåæ¢ï¼ä»è导è´æå¡ä¸è½æ£å¸¸ä½¿ç¨ï¼åæ¶é«å¯ç¨é群ä¹ä¸è½æ£å¸¸è¿è¡ï¼Sync group å°±æ¯ä¸ºäºè§£å³è¯¥é®é¢ï¼å¯ä»¥æ两个å®ä¾æ¾è¿åä¸ä¸ªSync Group ä¸ï¼
serverA
# vim /etc/keepalived/keepalived.conf
######################################
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_sync_group VG1 {
group {
VI_1
VI_2
}
}
vrrp_instance VI_1 {
state BACKUP
interface eno
virtual_router_id
priority
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass
}
track_interface {
eno
eno
}
virtual_ipaddress {
..1.
}
}
vrrp_instance VI_2 {
state BACKUP
interface eno
virtual_router_id
priority
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass
}
track_interface {
eno
eno
}
virtual_ipaddress {
..1.
}
}
serverB
# vim /etc/keepalived/keepalived.conf
######################################
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_sync_group VG1 {
group {
VI_1
VI_2
}
}
vrrp_instance VI_1 {
state BACKUP
interface eno
virtual_router_id
priority
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass
}
track_interface {
eno
eno
}
virtual_ipaddress {
..1.
}
}
vrrp_instance VI_2 {
state BACKUP
interface eno
virtual_router_id
priority
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass
}
track_interface {
eno
eno
}
virtual_ipaddress {
..1.
}
}
äºãæµè¯
å¨serverA å serverBä¸
# systemclt start keepalived
å¨serverA