mysql主從配置參考個人上篇博客mysql
主主配置就是互爲主從web
環境算法
準備應用sql
keepalived-2.0.2.tar.gz openssl-devel-1.0.2k-12.el7.x86_64.rpm
安裝vim
rpm -ivh openssl-devel-1.0.2k-12.el7.x86_64.rpm tar -zxvf keepalived-2.0.2.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/ mkdir -p /etc/keepalived cd /etc/keepalived
配置主keepalivedbash
vim keepalived.conf
global_defs { notification_email { } } vrrp_instance VI_1 { state MASTER #備服務器上改成 BACKUP interface ens33 #網卡 virtual_router_id 11 priority 100 #備用服務器上改成99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.11 #VIP } } virtual_server 192.168.10.132 3306 { delay_loop 6 #每隔6秒檢查一次real_server狀態 lb_algo rr #負載調度算法rr|wrr|lc|wlc|lblc|sh|dh lb_kind NAT #負載均衡轉發規則NAT|DR|RUN nat_mask 255.255.255.0 persistence_timeout 50 #回話保持時間 protocol TCP real_server 192.168.10.132 3306 { weight 2 notify_down "/etc/keepalived/mysql.sh" #新建這個mysql.sh文件,輸入 pkill keepalived TCP_CHECK { connect_timeout 3 connect_port 3306 } } }
備keepalived配置服務器
vim keepalived.conf
global_defs { notification_email { } } vrrp_instance VI_1 { state BACKUO #主服務器上改成 master interface ens33 #網卡 virtual_router_id 11 priority 99 #主服務器設置比備服務器數大 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.11 #VIP } } virtual_server 192.168.10.200 3306 { delay_loop 6 #每隔6秒檢查一次real_server狀態 lb_algo rr lb_kind NAT nat_mask 255.255.255.0 persistence_timeout 50 #回話保持時間 protocol TCP real_server 192.168.10.200 3306 { weight 1 notify_down "/etc/keepalived/mysql.sh" #新建這個mysql.sh文件,輸入 pkill keepalived TCP_CHECK { connect_timeout 3 connect_port 3306 } } }
建立mysql檢測腳本網絡
vim mysql.sh #!/bin/bash pkill keepalived #檢測到mysql關閉後自動關閉keepalived
以上keepalived+mysql配置完成。能夠經過關閉主的mysql查看VIP是否漂移到備,關閉主的keepalived查看VIP是否漂移到備,關閉主VIP機器是否漂移到備。負載均衡
關於keepalived算法說明
rr 輪詢算法,它將請求依次分配給不一樣的rs節點,也就是RS節點中均攤分配。這種算法簡單,但只適合於RS節點處理性能差很少的狀況
wrr 加權輪訓調度,它將依據不一樣RS的權值分配任務。權值較高的RS將優先得到任務,而且分配到的鏈接數將比權值低的RS更多。相同權值的RS獲得相同數目的鏈接數。
Wlc 加權最小鏈接數調度,假設各臺RS的全職依次爲Wi,當前tcp鏈接數依次爲Ti,依次去Ti/Wi爲最小的RS做爲下一個分配的RS
Dh 目的地址哈希調度(destination hashing)以目的地址爲關鍵字查找一個靜態hash表來得到須要的RS
SH 源地址哈希調度(source hashing)以源地址爲關鍵字查找一個靜態hash表來得到須要的RS
Lc 最小鏈接數調度(least-connection),IPVS表存儲了全部活動的鏈接。LB會比較將鏈接請求發送到當前鏈接最少的RS.
Lblc 基於地址的最小鏈接數調度(locality-based least-connection):未來自同一個目的地址的請求分配給同一臺RS,此時這臺服務器是還沒有滿負荷的。不然就將這個請求分配給鏈接數最小的RS,並以它做爲下一次分配的首先考慮。
LVS調度算法的生產環境選型: 一、通常的網絡服務,如http,mail,mysql等經常使用的LVS調度算法爲: a.基本輪詢調度rr b.加權最小鏈接調度wlc c.加權輪詢調度wrc 二、基於局部性的最小鏈接lblc和帶複製的給予局部性最小鏈接lblcr主要適用於web cache和DB cache 三、源地址散列調度SH和目標地址散列調度DH能夠結合使用在防火牆集羣中,能夠保證整個系統的出入口惟一。
實際適用中這些算法的適用範圍不少,工做中最好參考內核中的鏈接調度算法的實現原理,而後根據具體的業務需求合理的選型。
負載均衡轉發工做模式
一、DR模式:
經過改寫請求報文的目標MAC地址,將請求發送給真實服務器,而真實服務器將相應後的處理結果直接返還給客戶端用戶。極大地提升集羣的伸縮性,但LB與RS必須在同一局域網環境。
二、NAT模式:
經過網絡地址轉換,LB重寫請求報文的目標地址,根據預設的調度算法,將請求分派給後端的真實服務器,真實服務器的響應報文處理以後,返回時必須經過LB,通過LB時報文的源地址被重寫,再返回給客戶。
三、隧道模式:
LB把請求的報文經過IP隧道轉發至真實服務器,而真實服務器將響應處理後直接返回給客戶端用戶。
四、FULLNAT模式:數據包進入時,除了作DNAT,還作SNAT,從而實現LVS-RealServer間能夠跨vlan通信,RealServer只須要鏈接到內網。