亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1438 | 回復(fù): 0
打印 上一主題 下一主題

使用keepalived 實(shí)現(xiàn)MYSQL 高可用 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-22 08:53 |只看該作者 |倒序?yàn)g覽
  1. 使用keepalived 實(shí)現(xiàn)MYSQL 高可用
  2. keepalived 下載地址:http://www.keepalived.org/download.html

  3. master:192.168.215.80
  4. slave :192.168.215.28
  5. VIP :192.168.215.34

  6. 安裝 keepalived
  7. #=======================================================================
  8. 1:#wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz
  9. 2:#tar zxvf keepalived-1.1.20.tar.gz
  10. 3:#cd keepalived-1.1.20
  11. 4:#./configure
  12. 在這一步,可能看到的是如下:
  13. #========================================================================
  14. Keepalived configuration
  15. ------------------------
  16. Keepalived version : 1.1.20
  17. Compiler : gcc
  18. Compiler flags : -g -O2
  19. Extra Lib : -lpopt -lssl -lcrypto
  20. Use IPVS Framework : No
  21. IPVS sync daemon support : No
  22. Use VRRP Framework : Yes
  23. Use Debug flags : No
  24. #==========================================================================
  25. 出現(xiàn)3個(gè)NO,一個(gè)YES。解決的辦法是編譯時(shí)帶上內(nèi)核文件夾重新編譯
  26. # ./configure --with-kernel-dir=/usr/src/kernels/2.6.18-194.26.1.el5-x86_64/
  27. Keepalived configuration
  28. ------------------------
  29. Keepalived version : 1.1.20
  30. Compiler : gcc
  31. Compiler flags : -g -O2
  32. Extra Lib : -lpopt -lssl -lcrypto
  33. Use IPVS Framework : Yes
  34. IPVS sync daemon support : Yes
  35. Use VRRP Framework : Yes
  36. Use Debug flags : No
  37. #==========================================================================
  38. 5:#make && make install
  39. #=======================================================================
  40. 到這里,安裝完成。下面寫(xiě)配置文件。

  41. 配置 keepalived(master,192.168.215.80)
  42. #=======================================================================
  43. #mkdir /etc/keepalived #默認(rèn)的配置文件獲取的路徑
  44. #vi /etc/keepalived/keepalived.conf #配置文件的名稱(chēng)(把下面復(fù)制即可)
  45. ! Configuration File for keepalived
  46. global_defs { #全局定義
  47.      notification_email { #告警郵件地址組(故障發(fā)郵件在這里沒(méi)有測(cè)試,我把它放到健康檢查腳本里面了)
  48.      brucezuo@msn.cn #發(fā)生故障,發(fā)告警的郵件地址,一般不用,可以隨便寫(xiě)
  49.      }
  50.      notification_email_from brucezuo@msn.cn #郵件發(fā)送地址
  51.      smtp_server 127.0.0.1 #SMTP服務(wù)器IP
  52.      smtp_connect_timeout 30 #郵件服務(wù)器連接超時(shí)最長(zhǎng)時(shí)間
  53.      router_id MySQL-ha #路由標(biāo)識(shí)。在全局定義里只有這個(gè)是必須的,其他都可以不要。
  54.      }
  55. vrrp_script check_mysql_alived { #檢查MYSQL狀態(tài)的函數(shù)(注意這里的花括號(hào)和名稱(chēng)之間有空格)
  56.     script "/root/mysql-moniter.sh" #這里定義腳本,注意本行需要縮進(jìn),我原來(lái)沒(méi)注意,在這上面整了很長(zhǎng)時(shí)間?梢栽谶@個(gè)腳本里檢查MYSQL是否還活著,服務(wù)器的負(fù)載是否過(guò)高等,以及什么條件做什么操作。
  57.         interval 1 #運(yùn)行上面檢查腳本的時(shí)間間隔,單位為妙。keepalive的守護(hù)進(jìn)程執(zhí)行這個(gè)腳本
  58.         weight 5 #本腳本的運(yùn)行權(quán)重,權(quán)重越高的,越優(yōu)先檢查(只有一個(gè)檢查腳本,就無(wú)所謂了)
  59. }
  60. vrrp_instance VI_1 {
  61.      state BACKUP #兩臺(tái)配置此處均是BACKUP,一臺(tái)宕機(jī),另外一臺(tái)把VIP搶過(guò)去。
  62.      interface eth1 #在這里要注意,虛擬IP用的是哪個(gè)網(wǎng)卡進(jìn)行通訊。我這里機(jī)器上的eth1是內(nèi)網(wǎng)的,eth0是外網(wǎng)的。
  63.      virtual_router_id 51 #虛擬路由ID。這個(gè)標(biāo)識(shí)是同一個(gè)vrrp實(shí)例使用唯一的標(biāo)識(shí)。即同一個(gè)vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同時(shí)在整個(gè)vrrp內(nèi)是唯一的。
  64.                                         #keepalived通過(guò)發(fā)送和接受組廣播包中的同一個(gè)virtual_router_id中的成員的存活,來(lái)確定對(duì)方的不可用,一旦檢測(cè)到對(duì)方不可用,立即切換他的備份角色為主。
  65.      priority 100 #權(quán)重,數(shù)值越大,權(quán)重越大,Master必須大于Slave。另一臺(tái)改為90。
  66.      advert_int 1 #Master和Slave負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位:秒
  67.      #nopreempt #搶占,在MASTER恢復(fù)后,把VIP搶過(guò)來(lái)。在SLAVE端也一樣,如果MASTER出問(wèn)題了,SLAVE就把VIP搶過(guò)來(lái)。
  68.      authentication { #Master和Slave之間認(rèn)證的方式
  69.      auth_type PASS
  70.      auth_pass 1111 #認(rèn)證的密碼
  71.      }
  72.      track_script{ # 使用的VRRP腳本(檢查健康腳步),上面是定義,這里是使用。
  73.          check_mysql_alived
  74.      }
  75.      virtual_ipaddress { #VIP的地址
  76.          192.168.215.34
  77.      }
  78.      }
  79.    
  80. virtual_server 192.168.215.34 3306 {
  81.      lb_algo wrr #LVS算法
  82.      lb_kind DR #LVS模式
  83.      persistence_timeout 60 #會(huì)話保持時(shí)間,單位為秒,當(dāng)用戶從遠(yuǎn)程帳號(hào)過(guò)行登陸網(wǎng)站時(shí),有了這個(gè)會(huì)話保持功能,就能把用戶的請(qǐng)求轉(zhuǎn)發(fā)到同一個(gè)應(yīng)用服務(wù)器
  84.      protocol TCP
  85.      real_server 192.168.215.80 3306 { #真實(shí)IP(每臺(tái)機(jī)器必須指定各自的真實(shí)IP)
  86.      TCP_CHECK {
  87.      connect_timeout 10 #連接超時(shí)時(shí)間
  88.      nb_get_retry 3 #重連次數(shù)
  89.      delay_before_retry 3 #重連間隔時(shí)間
  90.      connect_port 3306 #健康檢查端口
  91.              }
  92.          }
  93.      }
  94. #==========================================================================
  95. MATER端配置到此結(jié)束。
  96. 編寫(xiě)健康服務(wù)檢測(cè)的腳本
  97. #==========================================================================
  98. [root@l10ntermwiki bruce]# cat mysql-moniter.sh
  99. #monitor mysql service status and server load
  100. #!/bin/bash
  101. function Send_Email() #發(fā)郵件的函數(shù)。
  102. {
  103. ADMIN="brucezuo@msn.cn"
  104. MESSAGE_FILE="/tmp/monitor.log" #郵件里面帶上本機(jī)IP地址和時(shí)間,信息更明確。
  105.         echo "VIP has been changed AT `date`,IP:`cat /etc/hosts |grep -v "127.0.0.1"|awk '{print $1}'`,please check it. Message:$1" > $MESSAGE_FILE
  106.         /bin/mail -s "VIP has been changed" $ADMIN < $MESSAGE_FILE
  107. rm -r $MESSAGE_FILE
  108. }

  109. CPU_NUMBER=`cat /proc/cpuinfo |grep processor |wc -l` #獲取CPU個(gè)數(shù)。
  110. MAX_LOAD=`echo $CPU_NUMBER*2|bc` #最大負(fù)載認(rèn)為是CPU*2。設(shè)置成CPU個(gè)數(shù)更好。

  111. if [ `service mysql status |awk '{print $2}'` = 'running' ] #檢查mysql是否活著,這里用mysql作為服務(wù)名稱(chēng),有些用mysqld作為服務(wù)名稱(chēng)。
  112. then
  113.    LOAD=`uptime`
  114.    LOAD=${LOAD##* }
  115. # if [ `expr $LOAD \< $CPU_LOAD` = 1 ] # another method,compare integer and decimal
  116.    if [ `echo "$LOAD > $MAX_LOAD" | bc` = 1 ] #如果負(fù)載過(guò)高。
  117.    then
  118.       pkill keepalived # if load is greater than max load then kill keepalived,take VIP point to another server.
  119.       Send_Email "Mysql is alived,Average load is busy,so kill keepalived"
  120.    fi
  121. else #mysql服務(wù)掛了,VIP漂移走。
  122.    pkill keepalived # if mysql service is not running ,then kill keepalived,take VIP point to another server.
  123.    Send_Email "Mysql service is not alived,so kill keepalived."
  124. fi
  125. echo `date`>>/tmp/pk.log #這里只是為了檢查腳本是否被正常執(zhí)行,實(shí)際使用刪除掉。
  126. #健康檢查腳本完畢。
  127. #chmod +x /home/bruce/MySQL.sh #分配執(zhí)行權(quán)限

  128. #==========================================================================
  129. 啟動(dòng)keepalvice
  130. #==========================================================================
  131. [root@ldc2095 keepalived-1.1.20]# keepalived -D #-D參數(shù),會(huì)把日志記錄到/var/log/message里面
  132. [root@ldc2095 keepalived-1.1.20]# ps aux |grep keep
  133. root 10862 0.0 0.0 35844 624 ? SNs 21:34 0:00 keepalived -D
  134. root 10863 0.0 0.0 37936 1548 ? SN 21:34 0:00 keepalived -D
  135. root 10864 0.0 0.0 37936 1016 ? SN 21:34 0:00 keepalived -D
  136. root 24121 0.0 0.0 61180 776 pts/0 SN+ 21:40 0:00 grep keep

  137. #===========================================================================
  138. 另外一個(gè)機(jī)器的配置和上面的一樣。除了修改修改的幾個(gè)地方。
  139. 健康檢查腳本也一致。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP