怎么搭建LVS+Keepalived+MySQL

48次阅读
没有评论

共计 4005 个字符,预计需要花费 11 分钟才能阅读完成。

本篇内容主要讲解“怎么搭建 LVS+Keepalived+MySQL”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么搭建 LVS+Keepalived+MySQL”吧!

LVS 负责负载均衡转发请求,keepalived 负责检查 LVS 的 realserver 状态,及时 remove 失效节点、add 复活节点。
本实验主要功能测试,所以只准备了两台 MySQL 服务器,仅为简单说明问题。
vm1 10.0.0.11     master   server_id 11
vm2 10.0.0.12     slave       server_id 12

Director:
vm3 10.0.0.14 

VIP: 10.0.0.20

1 在 Directory server vm3 上安装 ipvsadm 和 keepalived
yum install ipvsadm
安装 keepalived
yum install libnfnetlink*
tar -zxvf keepalived-1.2.7.tar.gz
./configure –prefix=/usr/local/keepalived
make make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived

2 vm1 vm2 上,执行以下操作.
echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore 
echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce 
echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore 
echo 2 /proc/sys/net/ipv4/conf/all/arp_announce 

ifconfig lo:0 10.0.0.20 netmask 255.255.255.255

3 在 Directory server vm3 上编辑 /etc/keepalived/keepalived.conf 文件,内容如下:

点击 (此处) 折叠或打开

global_defs {

router_id HaMySQL_1

}

vrrp_sync_group VGM {

group {

VI_MYSQL

}

}

vrrp_instance VI_MYSQL {

state MASTER

interface eth0

virtual_router_id 100

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.0.20

}

}

virtual_server 10.0.0.20 3306 {

delay_loop 6

lb_algo rr

lb_kind DR

protocol TCP

nat_mask 255.255.255.0

persistence_timeout 10

real_server 10.0.0.11 3306 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

real_server 10.0.0.12 3306 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

4 启动 MySQL 和 keepalived。
vm1:
/usr/local/mysql/bin/mysqld_safe –defaults-file=/data/mysql3306/my.cnf

vm2:
/usr/local/mysql/bin/mysqld_safe –defaults-file=/data/mysql3306/my.cnf

vm3:
/etc/init.d/keepalived start

5 验证
vm3:
[root@vm3 keepalived]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 – RemoteAddress:Port       Forward Weight ActiveConn InActConn
TCP 10.0.0.20:3306 rr persistent 2
 – 10.0.0.11:3306           Route   3     1        0
 – 10.0.0.12:3306           Route   3     1        0

可以看到负载均衡已启动,vm2 vm3 都已加进来了。
从客户端连接 VIP 10.0.0.20:3306
C:\mysql-5.7.11-winx64\mysql-5.7.11-winx64\bin mysql.exe -uroot -pmysql -h20.0.0.20 -P3306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 90
Server version: 5.6.27-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type help; or \h for help. Type \c to clear the current input statement.

mysql select @@server_id;exit;
+————-+
| @@server_id |
+————-+
|        11 |
+————-+
1 row in set (0.00 sec)

从 server_id 可以看出客户端连接的是 vm1。

关掉 vm1 上的 MySQL 服务。
[root@vm3 keepalived]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 – RemoteAddress:Port       Forward Weight ActiveConn InActConn
TCP 10.0.0.20:3306 rr persistent 2
 – 10.0.0.12:3306           Route   3     1        0

LVS 规则已经更新,remove 了 vm1,再次从客户端连接。
C:\mysql-5.7.11-winx64\mysql-5.7.11-winx64\bin mysql.exe -uroot -pmysql -h20.0.0.20 -P3306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 61
Server version: 5.6.27-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type help; or \h for help. Type \c to clear the current input statement.

mysql select @@server_id;exit;
+————-+
| @@server_id |
+————-+
|        12 |
+————-+
1 row in set (0.00 sec)

重新启动 vm1 上的 MySQL 服务。
[root@vm3 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 – RemoteAddress:Port       Forward Weight ActiveConn InActConn
TCP 10.0.0.20:3306 rr persistent 2
 – 10.0.0.11:3306           Route   3     1        0
 – 10.0.0.12:3306           Route   3     1        1

LVS 规则已自动刷新,vm1 重新被加入。

到此,相信大家对“怎么搭建 LVS+Keepalived+MySQL”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计4005字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)