日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
通過LVS + Keepalived 部署MySQL高可用

LVS是Linux Virtual Server的簡稱,也就是Linux虛擬服務(wù)器, 是一個由章文嵩博士發(fā)起的自由軟件項目,它的官方站點是www.linuxvirtualserver.org?,F(xiàn)在LVS已經(jīng)是 Linux標準內(nèi)核的一部分,在Linux2.4內(nèi)核以前,使用LVS時必須要重新編譯內(nèi)核以支持LVS功能模塊,但是從Linux2.4內(nèi)核以后,已經(jīng)完全內(nèi)置了LVS的各個功能模塊,無需給內(nèi)核打任何補丁,可以直接使用LVS提供的各種功能。

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計,衛(wèi)東網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:衛(wèi)東等地區(qū)。衛(wèi)東做網(wǎng)站價格咨詢:028-86922220

keepalived簡單來講就是,Keepalived是一個專門為lvs提供高可用功能的機制,它可以實現(xiàn)當有兩個主從lvs,而且主lvs損壞的時候,將其IP地址以及l(fā)vs轉(zhuǎn)移至備份lvs上。其高可用主要基于VRRP協(xié)議實現(xiàn),VRRP是一個“選舉”協(xié)議,它能夠動態(tài)地將一個虛擬路由器的責任指定至同一個VRRP組中的其它路由器上,從而消除了靜態(tài)路由配置的單點故障。如果一個VRRP設(shè)備將虛擬路由器IP地址作為真實的接口地址,則該設(shè)備被稱為IP地址擁有者。如果IP地址擁有者是可用的,通常它將成為Master。

1.架構(gòu)圖

注意

(一) MySQL需要把bind-address的配置去掉,否則無法實現(xiàn)虛擬ip訪問

(二) 關(guān)閉所有l(wèi)inux防火墻:/sbin/iptables –F(可能沒用)

(三) 重啟networking:sudo /etc/init.d/networking restart(可能沒用)

2. 架構(gòu)

Mysql:

master

10.24.6.5:3306(system !System)

LB

10.24.6.4 Master

10.24.6.7 BACKUP

VIP:

10.24.6.2

3.LVS負載均衡配置

3.1. Lvs模塊檢測

Ipvs 具體實現(xiàn)是由ipvsadm 這個程序來完成,因此判斷一個系統(tǒng)是否具備ipvs 功能,只需要察看ipvsadm 程序是否被安裝。察看ipvsadm 程序最簡單的辦法就是在任意路徑執(zhí)行命令ipvsadm。表6-1 為安裝ipvsadm 及未安裝ipvsadm 的輸出對比。

執(zhí)行 ipvsadm 后的輸出
未安裝ipvsadmbash: /sbin/ipvsadm: 沒有那個文件或目錄
安裝ipvsadmIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags ->RemoteAddress:Port Forward Weight ActiveConn InActConn

顯示詳細信息

表6-1 ipvsadm 輸出對比

a) 通過系統(tǒng)命令比較簡單:apt-get install ipvsadm

b) 檢驗ipvsadm 是否被正確安裝

? i. 執(zhí)行ipvsadm,看是否有表6-1 第2 欄的輸出。

? ii. 檢查當前加載的內(nèi)核模塊,看是否存在ip_vs 模塊。

modprobe -l |grep ipvs

或lsmod | grep ip_vs

img

Ubuntu9.10已經(jīng)用了2.6的內(nèi)核,所以不需要再編譯內(nèi)核了

3.2.配置

LVS默認不需要配置

4.KeepAlived高可用配置

4.1. 安裝

4.2. MASTER配置(/etc/keepalived/keepalived.conf)

global_defs {

router_id HaMySQL_1

}

vrrp_instance VI_MYSQL {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.24.6.2

}

}

virtual_server 10.24.6.2 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

persistence_timeout 60

protocol TCP

real_server 10.24.6.5 3306 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

real_server 10.24.6.6 3306 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

4.3. SLAVE配置(/etc/keepalived/keepalived.conf)

global_defs {

router_id HaMySQL_1

}

vrrp_instance VI_MYSQL {

state BACKUP

interface eth0

virtual_router_id 51

priority 50

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.24.6.2

}

}

virtual_server 10.24.6.2 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

persistence_timeout 60

protocol TCP

real_server 10.24.6.5 3306 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

real_server 10.24.6.6 3306 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

4.4. 日志

Ubuntu下面是/var/log/syslog

All daemon messages are logged through the Linux syslog. If you start Keepalived with the “dump

configuration data” option, you should see in your /var/log/messages (on Debian this may be

/var/log/daemon.log depending on your syslog configuration) something like this :

4.5. 負載均衡服務(wù)的啟用和驗證

Lvs 客戶端的啟用和驗證在前面的有過詳細的說明,此處略過。前面我們也提過,keepalived 啟動過程不會檢查配置文件的語法,因此在啟動keepalived 以前,需要人工對/etc/keepalived/keepalived.conf 文件做全面的語法檢查。一個比較容易犯的錯誤就是把花括號“}”寫漏了,不成對!當lvs 客戶端都正常啟動并且配置文件經(jīng)檢查無誤后(當然有錯誤也無妨,隨時可以修改嘛?。瑘?zhí)行命令 /usr/local/keepalived/sbin/keepalived –D ,然后我們查看系統(tǒng)進程,看是否是3 個keepalived 進程。如果配置文件的路徑不是/etc/keepalived/keepalived.conf 則需要在啟動時用選項-f 指定。

最能反映keepalived 啟動情況的地方當屬系統(tǒng)日志。手動執(zhí)行啟動操作后,使用命令 tail –f /var/log/syslog 滾動查看輸出,就能詳細了解其運行情況。圖6-3 為某個lvs 環(huán)境的keepalived 啟動輸出:

另外一個反映keepalived 正常運行狀態(tài)的地方是網(wǎng)絡(luò)接口vip 的啟用。通過執(zhí)行ip add 即可看見vip 已經(jīng)被綁定在制定的網(wǎng)絡(luò)接口(注意:ifconfig 不能顯示 vip)。需要注意的是,BACKUP 的vip 暫時不綁定。如下圖所示:

4.6. Vip驗證

Master

Slave

4.7. IPVSADM驗證

Master

Clave

4.8. 測試驗證

實體mysql

img

Vip mysql

4.9. 高可用測試結(jié)果

LB:

10.24.6.4 Master關(guān)閉以后,10.24.6.7 BACKUP啟用接管

MYSQL:

10.24.6.5:3306

10.24.6.6:3306

任意一個mysql異常之后,可連接到其他mysql

5. 遇到問題

5.1. Mysql連接不上(錯誤碼111)分析

1.Mysql連接vip

2.Mysql連接vip的抓包情況

通過抓包可知,10.24.6.2:3306是可以連上的,它有回包,只不過回包的狀態(tài)為R

3.TCP連接出現(xiàn)RST的情況分析:

? @1端口未打開

? @2請求超時

? @3提前關(guān)閉

? @4在一個已關(guān)閉的socket上收到數(shù)據(jù)

4.在結(jié)合mysql返回值為111可以知道應(yīng)該是mysql服務(wù)提前關(guān)閉了,

Google了下mysql111的解決辦法:

QT鏈接Mysql的時候出現(xiàn)QSqlError(2003, “QMYSQL: Unable to connect”, “Can’t connect to MySQL server on ‘172.18.186.244’ (111)”)錯誤,google之后發(fā)現(xiàn)是mysql為了安全,對hostname進行了綁定。

解決辦法:修改/etc/mysql/my.cnf(不同Linux發(fā)行版位置可能不同,我用的是Ubuntu 11.04,windows是my.ini文件),里面有一句:bind-address = 127.0.0.1用#注釋掉,重啟mysql服務(wù)就OK了。

原文地址:http://stackoverflow.com/questions/1420839/cant-connect-to-mysql-server-error-111

\5. 解決方案(去掉bind-address):

修改在10.24.6.5的mysql配置:

修改在10.24.6.6的mysql配置:

****

6. 總結(jié)

主mysql和從mysql可以同時存在服務(wù)
Keepalive從可用的服務(wù)列表里面選擇一??服務(wù)訪問
主mysql和從mysql隨機選擇
適合做負載均衡,主從備份
share nothing架構(gòu)

本文題目:通過LVS + Keepalived 部署MySQL高可用
網(wǎng)站地址:http://www.5511xx.com/article/coohhog.html