Linux叢集-負載平衡lvs-dr實現mysql

來源:互聯網
上載者:User

標籤:lvs   https   lvs-dr   mysql   

上一篇關於負載平衡lvs介紹的文章中已經講解了lvs-dr的原理,這篇文章主要介紹其在mysql應用上的實現過程:

測試環境:4台虛擬機器都是centos6的作業系統,使用系統內建的mysql包安裝測試:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/4E/wKioL1YY3QbTEdf8AAFbNDovCbk650.jpg" title="QQ20151010173656.png" alt="wKioL1YY3QbTEdf8AAFbNDovCbk650.jpg" />

如所示,vip和rip在同一網段中的情況下使用lvs-dr模型來實現mysql叢集服務

director

#!/bin/bash#!/bin/bash# auto install lvm-dr# date 2015-10-10#close selinux and iptablessed -i "s/SELINUX=.*/SELINUX=permissive/" /etc/sysconfig/selinux      //關閉selinuxchkconfig iptables off            service iptables stop &> /dev/null        //停止iptables服務# ip_forward=1sed -i "[email protected]_forward = [email protected]_forward = [email protected]" /etc/sysctl.conf && sysctl -p &>/dev/null           //開啟轉寄功能# install ipvsadm rpm -q ipvsadm &> /dev/null                 //安裝ipvsadm命令列工具if [ $? -eq 1 ]; then    yum install -y ipvsadm &> /dev/nullfi# define variableIPVSADM=`which ipvsadm`VIP=172.16.16.2RS1=172.16.16.3RS2=172.16.16.4#ifconfig eth0:0 vipifconfig eth0:0 $VIP/32 broadcast $VIP up# define lvs-dr$IPVSADM -C            //清空規則$IPVSADM -A -t $VIP:3306 -s lblc          //定義mysql叢集服務$IPVSADM -a -t $VIP:3306 -r $RS1:3306 -g      //將node加入mysql叢集服務的dr模型中$IPVSADM -a -t $VIP:3306 -r $RS2:3306 -g$IPVSADM -L -n


node1

#!/bin/bash# lvs-nat node define# # define hostnamename=node1                   //定義主機名稱hostname $namesed -i "s/HOSTNAME=localhost/HOSTNAME=$name/" /etc/sysconfig/network# define ip echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/eth0/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announcevip=172.16.16.2ifconfig lo:0 $vip/32 broadcast $vip up          //定義viproute add -host $vip dev lo:0# yum install mysql-server                  rpm -q mysql-server &> /dev/null             //安裝mysql   if [ $? -eq 1 ];then    yum install -y mysql-server &> /dev/nullfichkconfig mysqld onservice mysqld start &> /dev/null && ss -tanl | grep 3306 &> /dev/null    //啟動mysql服務if [ $? -eq 0 ]; then   echo -e "mysqld start \033[32m[OK]\033[0m" else   echo -e "mysqld start \033[31m[fail]\033[0m"   exit 2fi
mysql> create database node1;          //建立node1資料庫mysql> grant all on *.* to [email protected]‘172.16.%.%‘ identified by ‘123456‘;  //授權遠程登入使用者mysql> flush privileges;


node2

#!/bin/bash# lvs-nat node define# # define hostnamename=node2                  //定義主機名稱hostname $namesed -i "s/HOSTNAME=localhost/HOSTNAME=$name/" /etc/sysconfig/network# define ip echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore   echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/eth0/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announcevip=172.16.16.2ifconfig lo:0 $vip/32 broadcast $vip up          //定義viproute add -host $vip dev lo:0# yum install mysql-server             rpm -q mysql-server &> /dev/null              //安裝mysql   if [ $? -eq 1 ];then    yum install -y mysql-server &> /dev/nullfichkconfig mysqld onservice mysqld start &> /dev/null && ss -tanl | grep 3306 &> /dev/null  //啟動mysql服務if [ $? -eq 0 ]; then   echo -e "mysqld start \033[32m[OK]\033[0m" else   echo -e "mysqld start \033[31m[fail]\033[0m"   exit 2fi
mysql> create database node2;      //建立node2資料庫mysql> grant all on *.* to [email protected]‘172.16.%.%‘ identified by ‘123456‘;  //授權遠程登入使用者mysql> flush privileges;


lvs在DR模式下需要關閉arp:arp_announce和arp_ignore  用來屏蔽arp請求  

arp_ignore

定義對目標地址為本地IP的ARP詢問不同的接聽模式0 

0 - (預設值): 回應任何網路介面上對任何本地IP地址的arp查詢請求 

1 - 只回答目標IP地址是來訪網路介面本地地址的ARP查詢請求 

2 -只回答目標IP地址是來訪網路介面本地地址的ARP查詢請求,且來訪IP必須在該網路介面的子網段內 

3 - 不回應該網路介面的arp請求,而只對設定的唯一和串連地址做出回應 

4-7 - 保留未使用 

8 -不回應所有(本地地址)的arp查詢

arp_ignore 設定為1,這個比較好理解,當別人的arp請求過來的時候,如果接收的裝置上面沒有這個ip,就不響應,預設是0,只要這台機器上面任何一個裝置上面有這個ip,就響應arp請求,並發送mac地址應答。   


arp_announce

對網路介面上,本地IP地址的發出的,ARP回應,作出相應層級的限制: 確定不同程度的限制,宣布對來自本地源IP地址發出Arp請求的介面 

0 - (預設) 在任意網路介面(eth0,eth1,lo)上的任何本地地址 

1 -盡量避免不在該網路介面子網段的本地地址做出arp回應. 當發起ARP請求的源IP地址是被設定應該經由路由達到此網路介面的時候很有用.此時會檢查來訪IP是否為所有介面上的子網段內ip之一.如果改來訪IP不屬於各個網路介面上的子網段內,那麼將採用層級2的方式來進行處理. 

2 - 對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP資料包的源地址並嘗試選擇與能與該地址通訊的本地地址.首要是選擇所有的網路介面的子網中外出訪問子網中包含該目標IP地址的本地地址. 如果沒有合適的地址被發現,將選擇當前的發送網路介面或其他的有可能接受到該ARP回應的網路介面來進行發送.


測試

[[email protected] ~]# mysql -uroot -h172.16.16.2 -p123456      Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.1.73 Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || node2              || test               |+--------------------+4 rows in set (0.00 sec)[[email protected] ~]# mysql -uroot -h172.16.16.2 -p123456   //再測試一次mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || node2              || test               |+--------------------+4 rows in set (0.00 sec)

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/50/wKioL1YZG5iDoufGAAEZu0M7444628.jpg" title="QQ20151010220649.png" alt="wKioL1YZG5iDoufGAAEZu0M7444628.jpg" />

測試完成!!!


本文出自 “bengbengtu” 部落格,請務必保留此出處http://bengbengtu.blog.51cto.com/9505633/1701745

Linux叢集-負載平衡lvs-dr實現mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.