LVS+keepalived的安裝部署完成mysql的負載均衡
試驗環境:
LVS1:192.168.9.27
LVS2:192.168.9.28
keepalived 的VIP:192.168.9.230
要分發的mysql1: 192.168.9.29
要分發的mysql2:192.168.9.30
具體安裝步驟:
#下載ipvsadm (也就是LVS程式包)
#解壓
[root@lvs-a ~]# tar -zxf ipvsadm-1.24.tar.gz
#進入該ipvsadm目錄
[root@lvs-a ~]# cd /usr/local/ipvsadm-1.24
#安裝開發包及庫檔案
[root@lvs-a ipvsadm-1.24]# # yum install zlib-devel gcc gcc-c++ openssl-devel pcre-devel libtool kernel-devel ncurses-devel -y
#建立核心連線
[root@lvs-a ipvsadm-1.24]# ln -sv /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux #(2.6.18-194.el5-i686)根據系統版本修改。
#編譯安裝
[root@lvs-a ipvsadm-1.24]# make;make install
#進入目錄
[root@lvs-a ~]# cd /usr/local/
#下載keepalived
wget
#解壓
[root@lvs-a ipvsadm-1.24]# tar -zxf keepalived-1.2.12.tar.gz
#進入該keepalived目錄
[root@lvs-a ~]cd keepalived-1.2.12
#編譯安裝
[root@lvs-a keepalived-1.2.12]#./configure --prefix=/usr/local/keepalived #這裡編譯完後面顯示三個yes,說明編譯成功,否則安裝不成功。
#以下為1.2.12版本./configure結果如下
#如果為1.1.17版本./configure結果如下
[root@lvs-a keepalived-1.2.12]#make
[root@lvs-a keepalived-1.2.12]#make install
#複製啟動檔案
[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ ##這樣才能用service keepalived 的命令。
#複製命令檔案
[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#複製【配置檔案
[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#新建主配置檔案目錄
[root@lvs-a keepalived-1.2.12]#mkdir -p /etc/keepalived
#編輯配置檔案LVS1
[root@lvs-a sysconfig]#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs
}
vrrp_sync_group http { #設定vrrp組,隨便起名字,
group {
mysql ###隨便起的名字
}
}
vrrp_instance apache { ###定義一個vrrp例項
state MASTER #設定lvs的狀態, MASTER和BACKUP兩種,必須大寫,主節點master,從節點backup
interface eth0 #設定對外服務的介面,也就是/LVS監控的網路介面
virtual_router_id 01 #設定lvs監聽的介面,同一例項下virtual_router_id必須相同 ,隨便起名字
priority 500 # #設定優先順序,數值越大,優先順序越高 ,也就是主節點的這個值大
advert_int 1 ## //MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒
authentication { #設定驗證型別和密碼
auth_type PASS
auth_pass aabb ##密碼
}
virtual_ipaddress { ##設定keepalived的VIP
192.168.9.230 #如果有多個,往下加就行了
#192.168.9.231
#192.168.9.232
virtual_server 192.168.9.230 3306 { ##定義虛擬伺服器
delay_loop 6 #健康檢查時間,單位是秒。
lb_algo rr #負載排程演算法,這裡設定為rr,即輪詢演算法
lb_kind DR #LVS實現負載均衡的機制,可以有NAT、TUN和DR三個模式可選
nat_mask 255.255.255.0 #可以不填寫這個引數,
# persistence_timeout 50
protocol TCP
real_server 192.168.9.29 3306 { ##要分發的目標伺服器IP,
weight 1 #設定權重,也就是分發的次數,這裡表示每個分發一次,
TCP_CHECK { #透過tcpcheck判斷RealServer的健康狀態
connect_timeout 3 ##連線超時時間
#nb_get_retry 3 #重連次數 ,有預設值
#delay_before_retry 3 #重連間隔時間 有預設值
connect_port 3306
}
}
real_server 192.168.9.30 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}
#配置完成重啟keepalived
[root@lvs-a sysconfig]#service keepalived restart
#新增自己的閘道器
[root@lvs-a network-scripts]# route add -host 192.168.9.254 dev eth0
#安裝keepalived同lvs1相同
#安裝keepalived後配置LVS2,配置如下:
[root@lvs-b ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs
}
vrrp_sync_group http {
group {
mysql
}
}
vrrp_instance apache {
state BACKUP
interface eth0
virtual_router_id 01
priority 400
advert_int 1
# nopreempt
authentication {
auth_type PASS
auth_pass aabb
}
virtual_ipaddress {
192.168.9.230
}
}
virtual_server 192.168.9.230 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
# persistence_timeout 50
protocol TCP
real_server 192.168.9.29 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
real_server 192.168.9.30 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}
#配置完成重啟keepalived
service keepalived restart
#新增自己的閘道器
route add -host 192.168.9.254 dev eth0
#檢視
route -n
#檢視分發結果
Ipvsadm -ln
#清除分發
Ipvsadm -C
#檢視虛擬ip(VIP)
Ip addr
#配置 mysql-realserver1 在192.168.9.29上執行:
[root@lvs-a ~]# ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast 192.168.9.230 up ##設定的一個臨時的IP
設定到主機的路由
[root@lvs-b ~]# route add -host 192.168.9.230 dev lo:0
設定預設路由
[root@lvs-b ~]#route add default gw 192.168.9.137
保證arp協議在連線過程中,路由器上,只知道網路中192.168.9.230對應的是分發器
[root@lvs-b ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@lvs-b ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
#配置 mysql-realserver2 在192.168.9.30上執行:
[root@lvs-a ~]# ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast 192.168.9.230 up設定到主機的路由
[root@lvs-a ~]#route add -host 192.168.9.230 dev lo:0
設定預設路由
[root@lvs-a ~]#route add default gw 192.168.153.137
保證arp協議在連線過程中,路由器上,只知道網路中192.168.9.230對應的是分發器
[root@lvs-a ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@lvs-a ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
Service mysqld start
LVS分發測試:
1,在 mysql-realserver1(192.168.9.29) 建立一個名字叫做slave1的資料庫:
mysql> create database slave1;
Query OK, 1 row affected (0.00 sec)
2,在mysql-realserver2 (192.168.9.30)上建立一個名字叫做slave2的資料庫:
mysql> create database slave2 ;
Query OK, 1 row affected (0.00 sec)
3,在一臺能ping通mysql-realserver1和mysql-realserver2的機器上執行(注意不要在正在用著的lvs機器上執行,例如我現在lvs用著[root@lvs-a ~]#這個機器,如果你在這裡執行他會報錯
[root@lvs-a ~]# mysql -uroot -pliuwenhe -h192.168.9.230 -e'show databases';
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.9.230' (111)
You have new mail in /var/spool/mail/root
[root@lvs-b ~]# mysql -uroot -pliuwenhe -h192.168.9.230 -e'show databases';
+--------------------+
| Database |
+--------------------+
| information_schema |
| he |
| liuwenhe |
| mysql |
| performance_schema |
| slave1 |
| test |
+--------------------+
[root@lvs-b ~]# mysql -uroot -pliuwenhe -h192.168.9.230 -e'show databases';
+--------------------+
| Database |
+--------------------+
| information_schema |
| he |
| liuwenhe |
| mysql |
| performance_schema |
| slave2 |
| test |
+--------------------+
說明lvs分發成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496894/viewspace-2018309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LVS+Keepalived負載均衡配置部署負載
- LVS+keepalived負載均衡負載
- 負載均衡 LVS+Keepalived負載
- lvs+keepAlived→效率最高的負載均衡負載
- 在docker中haproxy的安裝以及mysql的負載均衡配置DockerMySql負載
- 基於MySQL雙主複製架構下部署LVS+KeepAlived負載均衡MySql架構負載
- LVS+KEEPALIVED負載均衡實驗負載
- LVS+Keepalived實現負載均衡負載
- HAProxy負載均衡器的安裝及配置負載
- LVS+Keepalived 實現高可用負載均衡負載
- 負載均衡是什麼?怎麼理解負載均衡的部署方式和工作原理負載
- Nginx反向代理負載均衡的容器化部署Nginx負載
- Linux CentOs叢集LVS+Keepalived負載均衡的實現LinuxCentOS負載
- mysql負載均衡搭建(haproxy)MySql負載
- LVS+Keepalived高可用負載均衡叢集架構負載架構
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- 負載均衡的迷惑負載
- HaProxy 實現 MySQL 負載均衡MySql負載
- LVS+keepalived DR模式配置高可用負載均衡叢集模式負載
- 【Nginx】Nginx反向代理和負載均衡部署Nginx負載
- Kuberntes部署MetalLB負載均衡器負載
- Amoeba實現MySQL的負載均衡、故障轉移MySql負載
- LVS負載均衡群集概念、NAT模式LVS負載均衡實戰部署負載模式
- 負載均衡的種類負載
- 4.8 負載均衡的概念負載
- 負載均衡原理的解析負載
- 負載均衡的那些事?負載
- 配置IIS的負載均衡負載
- [zt] RAC的負載均衡負載
- gRPC的負載均衡RPC負載
- 負載均衡負載
- nginx部署基於http負載均衡器NginxHTTP負載
- 負載均衡器部署方式和工作原理負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- Mycat實現mysql的負載均衡讀寫分離MySql負載
- Ubuntu 下安裝 keepalived 和 Nginx負載均衡 轉發UbuntuNginx負載
- OceanBase 負載均衡的魅力負載