1. 程式人生 > >Lvs+Keepalived+MySQL Cluster架設高可用負載均衡Mysql叢集

Lvs+Keepalived+MySQL Cluster架設高可用負載均衡Mysql叢集

一、前言

MySQL Cluster 是MySQL適合於分散式計算環境的高實用、高冗餘版本。它採用了NDB Cluster儲存引擎,允許在1個Cluster中執行多個MySQL伺服器。在MyQL5.0 及以上的二進位制版本中、以及與最新的Linux版本相容的RPM中提供了該儲存引擎。MySQL Cluster 是一種技術,該技術允許在無共享的系統中部署“記憶體中”資料庫的 Cluster。通過無共享體系結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個元件有自己的記憶體和磁碟,不存在單點故障。MySQL Cluster由一組計算機構成,每臺計算機上均執行著多種程序,包括MySQL伺服器,NDB Cluster的資料節點,管理伺服器,以及(可能)專門的資料訪問程式。

二、MySQL Cluster基本概念 

NDB是一種“記憶體中”的儲存引擎,它具有可用性高和資料一致性好的特點。MySQL  Cluster能夠使用多種故障切換和負載平衡選項配置NDB儲存引擎,但在Cluster 級別上的儲存引擎上做這個最簡單。MySQL Cluster的NDB儲存引擎包含完整的資料集,僅取決於Cluster本身內的其他資料。 

目前,MySQL Cluster的Cluster部分可獨立於MySQL伺服器進行配置。在MySQL Cluster中,Cluster

的每個部分被視為1個節點。 

管理(MGM)節點:這類節點的作用是管理MySQL  Cluster內的其他節點,如提供配置資料、啟動並停止節點、執行備份等。由於這類節點負責管理其他節點的配置,應在啟動其他節點之前首先啟動這類節點。MGM節點是用命令“ndb_mgmd”啟動的。 

資料(NDB)節點:這類節點用於儲存Cluster的資料。資料節點的數目與副本的數目相關,是片段的倍數。例如,對於兩個副本,每個副本有兩個片段,那麼就有4個數據節點。不過沒有必要設定多個副本。資料節點是用命令“ndbd”啟動的。 

客戶(SQL)節點:這是用來訪問Cluster資料的節點。對於MySQL Cluster,客戶端節點是使用NDB Cluster 儲存引擎的傳統MySQL伺服器。通常,SQL節點是使用命令“mysqld -ndbcluster”啟動的,或將“ndbcluster”新增到“my.cnf”後使用“mysqld”啟動。 

註釋:在很多情況下,術語“節點”用於指計算機,但在討論MySQL Cluster時,它表示的是程序。在單臺計算機上可以有任意數目的節點,為此,我們採用術語“Cluster主機”。 

管理伺服器(MGM節點)負責管理Cluster配置檔案和Cluster日誌。Cluster中的每個節點從管理伺服器檢索配置資料,並請求確定管理伺服器所在位置的方式。當資料節點內出現新的事件時,節點將關於這類事件的資訊傳輸到管理伺服器,然後將這類資訊寫入Cluster日誌。

三、環境

系統:CentOS6.4 32位   9臺

軟體包(可以去mysql官網下載http://dev.mysql.com/downloads/cluster/):

MGM:

MySQL-Cluster-gpl-management-7.1.31-1.el6.i686.rpm

MySQL-Cluster-gpl-tools-7.1.31-1.el6.i686.rpm

SQL節點:

MySQL-Cluster-gpl-client-7.1.31-1.el6.i686.rpm

MySQL-Cluster-gpl-server-7.1.31-1.el6.i686.rpm

NDB節點:

MySQL-Cluster-gpl-storage-7.1.31-1.el6.i686.rpm

拓撲圖:

wKiom1OFwSTzvSc9AAGGtl899xs417.jpg

IP規劃:

wKioL1OFw-Gwy2L8AAGxWiLB-iU586.jpg

四、配置(請先解除安裝掉與mysql有關的所有RPM包

1.LB-Master及LB-Backup配置

(1)LB-Master及LB-Backup安裝keepalived和ipvsadm

  1. # yum groupinstall "Additional Development"         //安裝開發工具 
  2. # yum groupinstall "Development tools" 
  3. # tar -zxvf keepalived-1.2.1.tar.gz -C /usr/local/src/ 
  4. # cd /usr/local/src/keepalived-1.2.1 
  5. # ./cnfigure 
  6. Keepalived configuration   
  7. ------------------------   
  8. Keepalived version       : 1.2.1
  9. Compiler                 : gcc   
  10. Compiler flags           : -g -O2   
  11. Extra Lib                : -lpopt -lssl -lcrypto    
  12. Use IPVS Framework       : No    //配置出現錯誤   
  13. IPVS sync daemon support : No   
  14. Use VRRP Framework       : Yes   
  15. Use Debug flags          : No   
  16. 解決方法:   
  17. # yum install kernel-devel ipvsadm 
  18. # ln -s /usr/src/kernels/2.6.32-358.el6.i686/ /usr/src/linux 
  19. # ./cnfigure                    //再次配置環境 
  20. # make                          //編譯 
  21. # make install                  //安裝 
  22. # cd /usr/local/etc             //keepalived預設安裝路徑 
  23. # ll 
  24. drwxr-xr-x. 3 root root 4096 May 2400:37 keepalived   
  25. drwxr-xr-x. 3 root root 4096 May 2400:29 rc.d   
  26. drwxr-xr-x. 2 root root 4096 May 2400:29 sysconfig   
  27. 配置以系統方式service啟動   
  28. # cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/  
  29. # cp /usr/local/etc/sysconfig/keepalived  /etc/sysconfig/ 
  30. # mkdir /etc/keepalived 
  31. # cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 
  32. # cp /usr/local/sbin/keepalived /usr/sbin/

(2)LB-Master及LB-Backup的keepalived主配置文件

  1. # cat /etc/keepalived/keepalived.conf 
  2. #guration File for keepalived 
  3. #global define 
  4. global_defs {   
  5.         router_id HaMySQL_1   
  6.         }   
  7. vrrp_sync_group VGM {   
  8.         group {   
  9.         VI_MYSQL   
  10.         }   
  11. }   
  12. vrrp_instance VI_MYSQL {   
  13.         state MASTER             //LB-Backup設定為BACKUP   
  14.         interface eth0   
  15.         lvs_sync_daemon_inteface eth0   
  16.         virtual_router_id 55
  17.         priority 100             //LB-Backup設定為90
  18.         advert_int 5
  19.         authentication {   
  20.                 auth_type PASS   
  21.                 auth_pass 123456
  22.         }   
  23.         virtual_ipaddress {   
  24. 192.168.2.200/24 dev eth0   
  25.         }   
  26. }   
  27. ##########  LVS  MySQL Start   ########### 
  28. virtual_server 192.168.2.2003306 {   
  29.         delay_loop 6
  30.         lb_algo rr   
  31.         lb_kind DR   
  32.         persistence_timeout 6
  33.         protocol TCP   
  34.         real_server 192.168.2.503306 {   
  35.                 weight 100
  36.                 TCP_CHECK {   
  37.                         connect_timeout 3
  38.                         nb_get_retry 3
  39.                         delay_before_retry 3
  40.                         connect_port 3306
  41.                 }   
  42.         }   
  43.         real_server 192.168.2.603306 {   
  44.                 weight 100
  45.                 TCP_CHECK {   
  46.                         connect_timeout 3
  47.                         nb_get_retry 3
  48.                         delay_before_retry 3
  49.                         connect_port 3306
  50.                 }   
  51.         }   
  52. }   
  53. ##########  LVS MySQL END   #############

2.MGM配置

(1)安裝管理節點

  1. # rpm -ivh MySQL-Cluster-gpl-management-7.1.31-1.el6.i686.rpm 
  2. # rpm -ivh MySQL-Cluster-gpl-tools-7.1.31-1.el6.i686.rpm  
  3. # mkdir /etc/mysql-cluster

(2)配置管理節點

  1. # vim /etc/mysql-cluster/config.ini     //新增以下內容 
  2. [ndbd default]   
  3. NoOfReplicas=2
  4. DataMemory=80M
  5. IndexMemory=18M
  6. # TCP/IP options: 
  7. [tcp default]   
  8. portnumber=2202
  9. # Management process options: 
  10. [ndb_mgmd]   
  11. id=1
  12. hostname=192.168.2.10
  13. datadir=/var/lib/mysql-cluster  
  14. # Options for data node 
  15. [ndbd]   
  16. id=2
  17. hostname=192.168.2.30
  18. datadir=/var/lib/mysql  
  19. [ndbd]   
  20. id=3
  21. hostname=192.168.2.40
  22. datadir=/var/lib/mysql  
  23. [mysqld]   
  24. id=4
  25. hostname=192.168.2.50
  26. [mysqld]   
  27. id=5
  28. hostname=192.168.2.60

(3)啟動管理節點

  1. # mkdir /var/lib/mysql-cluster 
  2. # ndb_mgmd -f /etc/mysql-cluster/config.ini  
  3. MySQL Cluster Management Server mysql-5.1.73 ndb-7.1.31
  4. # netstat -tupln 
  5. tcp     000.0.0.0:11860.0.0.0:*   LISTEN     17629/ndb_mgmd 

3.資料節點(NDB1和NDB2)配置

(1)安裝資料節點

    相關推薦

    Lvs+Keepalived+MySQL Cluster架設可用負載均衡Mysql叢集

    一、前言 MySQL Cluster 是MySQL適合於分散式計算環境的高實用、高冗餘版本。它採用了NDB Cluster儲存引擎,允許在1個Cluster中執行多個MySQL伺服器。在MyQL5.0 及以上的二進位制版本中、以及與最新的Linux版本相容的RPM中提供了該儲存引擎。MySQ

    公司nginx keepalived tomcat cxf 搭建可用負載均衡實戰系列1- keepalived安裝配置

    技術分享 cnblogs start ges idt def auth div .cn 1,ip說明 vip 10.50.13.67 server1 10.50.13.68 server2 10.50.13.140 2

    keepalived+httpd+tomcat實現可用負載均衡

    一、環境 centos 6.5 keepalived keepalived-1.2.19.tar.gz httpd httpd-2.4.12.tar.gz tomcat apache-tomcat-7.0.63.tar.gz 二、部署 安裝 http

    Kubernetes可用負載均衡叢集外服務訪問實踐_Kubernetes中文社群

    Kubernetes在設計之初就充分考慮了針對容器的服務發現與負載均衡機制,提供了Service資源,並通過kube-proxy配合cloud provider來適應不同的應用場景。隨著kubernetes使用者的激增,使用者場景的不斷豐富,產生了一些新的負載均衡機制。 一、Kubernete

    LVS-DR+keepalived 搭建web可用負載均衡

    lvs-dr+keepalived配置實驗環境 redhat6.5 2.6.32-431.el6.x86_64 keepalived-1.2.16版本ipvsadm-1.26-2.el6.x86_64所有的虛擬機 都 關閉防火墻和selinux 配置好了本地yum源搭建要求是對LVS-DR模式的原理熟

    LVS+Keepalived實現可用負載均衡

    lvs+keepalived 高可用 負載均衡 用LVS+Keepalived實現高可用負載均衡,簡單來說就是由LVS提供負載均衡,keepalived通過對rs進行健康檢查、對主備機(director)進行故障自動切換,實現高可用。1. LVS NAT模式配置準備三臺服務器,一臺director, 兩

    LVS+keepalived可用負載均衡集群部署(二)---LAMP網站服務器與LVS服務器

    虛擬機l 系統環境: RHEL7 l 硬件環境:虛擬機l 項目描述:為解決網站訪問壓力大的問題,需要搭建高可用、負載均衡的 web集群。 l 架構說明:整個服務架構采用功能分離的方式部署。後端采用2臺mysql 數據庫,實現主從結構以及讀寫分離。中間LAMP網站服務器共有2臺, 前端 2臺LVS服務

    (2)LVS+Keepalived可用負載均衡架構原理及配置

    LVS Keepalived1、keepalived 介紹2、keepalived 優缺點3、keepalived 應用場景4、keepalived 安裝配置5、keepalived+lvs 高可用6、keepalived+nginx 高可用7、keepalived 切換原理8、性能優化9、常見故障 一、k

    lvs+keepalived 可用負載均衡模式分析

    lvs 高可用 keepalived nginx 1. 前言 在《keepalived 雙機熱備》這篇文章中,我寫了利用keepalived 這個開源軟件實現高可用的功能,以及keepalived 高可用所使用的協議——利用vrrp 協議,在高可用網絡組內廣播自己的優先級,優先級最高的就能搶占

    keepalived lvs 可用負載均衡

    keepalived lvs 高可用 負載均衡 主分發器設置 安裝keepalived和nginxyum install -y keepalivedyum install -y nginx關閉防火墻和SELinuxsystemctl stop firewalldsetenforce 0配置網卡

    keepalived+lvs實現可用負載均衡集群

    keepalived+lvs實現高可用LVS實戰篇第1章 環境準備1.1 系統環境1.1.1 系統版本[root@lb01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@lb01 ~]# uname -r 2.6.32-696.el6

    LVS+Keepalived 實現可用負載均衡叢集

    LVS+Keepalived  實現高可用負載均衡叢集     隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可

    Keepalived + LVS + LAMP 可用負載均衡叢集實現

    一、Keepalived 簡介           Keepalived 是一個用 C 語言編寫的路由軟體。它最初是專門為 LVS 負載均衡軟體設計的,用來管理並監控 LVS 集群系統中各個服務節點的狀態,後來又加

    MySQL-Cluster三機叢集+HA可用+負載均衡配置手冊

    本文中的配置已經在實驗室進行過效能測試、可靠性測試驗證。 一、介紹 這篇文件旨在介紹如何安裝配置基於3臺伺服器的MySQL叢集。並且實現任意一臺伺服器出現問題或宕機時MySQL叢集依然能夠繼續執行。 1. MySQL-Cluster簡介 MySQL-Cluster主要有三種

    LVS+Keepalived搭建MyCAT可用負載均衡叢集

    LVS+Keepalived 介紹 LVS LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR),十種

    LVS+Keepalived+Squid+Nginx可用負載均衡快取配置

    隨著網際網路IT行業的發展,越來越多的企業開始使用開源軟體搭建自己的web架構,主流的LVS也得到了廣泛的應用,在保證高可用的同時,使用者對網站的體驗速度也有了很高的要求,這時候需要我們在我們的架構既要滿足高併發同時還要求高速度。 今天我們來搭建主流架構Lvs+Keepalived+Sq

    搭建LVS-DR負載均衡叢集Keepalived-LVS可用負載均衡叢集

    LVS DR模式搭建準備工作三臺機器, 三臺機器均有公網IP。排程器(director)IP:192.168.8.133real server1(real1)IP:192.168.8.134real server2(real2)IP:192.168.8.135VIP:192.

    centos部署lvs+keepalived+apache/tomcat實現高效能可用負載均衡

    前言: 常用的負載均衡軟體有lvs、haproxy、nginx,一般lvs和keeplavied一起使用 lvs是實現負載均衡作用的,即將客戶端的需求採用特定的負載均衡演算法分發到後端的web應用伺服器上,keepalived是用來實現高可用的,即保證主lvs宕機後,從lv

    利用keepalived和haproxy配置mysql可用負載均衡

    轉載http://www.cnblogs.com/tae44/p/4717334.html 實驗系統:CentOS 6.6_x86_64(2.6.32-504.30.3.el6.x86_64) 實驗前提:防火牆和selinux都關閉 實驗說明:本實驗共有4臺主機,I

    Keepalived+LVS可用負載均衡配置

    說明 LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。 目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);十