corosync+pacemaker+drbd實現mysql高可用

來源:互聯網
上載者:User

標籤:mysql   corosync   pacemaker   drbd   

實驗環境:

    虛擬機器2台安裝corosync+pacemaker,使用的作業系統為CentOS6.5。

    虛擬機器IP:172.16.103.2、172.16.103.3

實驗步驟:

前提準備:兩台虛擬機器時間同步,能夠使用/etc/hosts檔案基於主機名稱進行通訊。

一、安裝corosync + pacemaker:

# yum install corosync# yum install pacemaker

二、安裝drbd軟體包:

drbd軟體包有兩部分組成:核心模組和使用者空間的管理工具,在核心版本號碼2.6.33之前的Linux系統中這兩部分都需要安裝,而之後的版本只需要安裝管理工具。實際安裝時,要注意程式包和對應的核心模組的版本要對應,實驗過程中使用的是8.4版本。

# rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm

三、配置drbd

首先在兩台虛擬機器上建立兩個容量相同的磁碟分割,假設為1G,同為/dev/sda3

編輯設定檔,在其中使用protocol C協議等。然後定義資源,資源檔在/etc/drbd.d/目錄下,資源的定義如下:

resource web {  on node1.cluster.com {    device    /dev/drbd0;    disk      /dev/sda3;    address   172.16.103.2:7789;    meta-disk internal;  } on node2.cluster.com {    device    /dev/drbd0;    disk      /dev/sda3;    address   172.16.103.3:7789;    meta-disk internal;  }}

在定義好設定檔和資源檔以後將這兩個檔案複製到另外一個節點上,這些檔案兩個節點上要保持一致。

# scp /etc/drbd.d/* node2:/etc/drbd.d

初始化資源,在node1和node2上分別執行:

# drbdadm create-md web

啟動服務,在兩個節點上分別執行:

# /etc/init.d/drbd start

使用drbd-overview命令查看資源啟動結果

# drbd-overview

初始化完成後的兩個節點都處於Secondary狀態,需要將一個節點提升為主節點,然後兩個主機的drbd資源會進行同步。

# drbdadm primary --force web

同步完成後,建立檔案系統並掛載:

# mke2fs -t ext4 /dev/drbd0# mount /dev/drbd0 /mnt

掛載之後,為了測試drbd裝置是否可以正常使用,先在該主節點複製檔案到掛載目錄中:

# cp /etc/fstab /mnt

卸載裝置,之後將該主節點的drbd狀態降級為Secondary,,由另外一個節點掛載,然後再測試:

# umount /mnt# drbdadm secondary web# drbd-overview #查看一下降級的效果,如果兩個節點的狀態都為secondary,另外一個節點才可以提升為master,

在另外一個節點操作:

# drbdadm primary web# drbd-overview# mkdir /mnt/drbd# mount /dev/drbd0 /mnt# ls /mnt  #驗證之前複製操作的檔案是否存在 。

四、在上述的驗證操作完成後,drbd的安裝及準備工作完成。進而配置叢集操作,這裡用的組態工具是crmsh,具體的配置操作如下:

crm(live)# property stonith-enabled=false   #由於是兩個節點的高可用叢集,而配置叢集時會提供需要提供stonith裝置,否則無法啟動叢集服務,所以需要設定stonith-enable這個參數為falsecrm(live)# property no-quorum-policy=ignore #設定叢集在不具備法定票數的情況下的預設操作crm(live)# primitive mydrbd ocf:linbit:drbd params drbd_resource=mydata op monitor role=Master interval=10s timeout=20s op monitor role=Slave interval=20s timeout=30s op start timeout=240s op stop timeout=100s  #定義drbd裝置的主資源crm(live)# master ms_mydrbd mydrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=True   #定義drbd主資源的複製資源,該複製資源有角色之分,只有主角色的複製資源啟動的高可用節點上,可以掛載drbd裝置,同時定義複製資源的數量以及在各節點上主、從複製資源可以啟動並執行個數crm(live)# primitive myfs ocf:heartbeat:Filesystem params device=/dev/drbd1 directory=/mydata fstype=ext4 op monitor interval=20s timeout=60s op start timeout=60s op stop timeout=60s  #定義要使用的drbd資源要掛載的具體檔案系統資訊crm(live)# primitive myip ocf:heartbeat:IPaddr params ip=172.16.103.10 op monitor interval=30s timeout=20s   #定義mysql高可用伺服器使用的VIP資訊,在兩個節點間流轉的IP地址crm(live)# primitive myserver lsb:mysqld op monitor interval=30s timeout=20s  #定義mysql服務資源以及其使用的資源代理的方式crm(live)# group myservice myfs myip myserver  #將mysql使用的ip,服務,檔案系統這些資源定義為一個組,以便啟動後這些資源會運行在一個節點上,而不是分散在不同節點。crm(live)# colocation myfs_with_ms_mydrbd_master inf: myfs ms_mydrbd:Master  #mysql使用的檔案系統drbd0要與複製資源的主資源運行在一起,這是因為drbd的特性導致,只能是狀態為主的drbd才能掛載drbd裝置並執行讀寫操作crm(live)# order myfs_after_ms_mydrbd_master mandatory: ms_mydrbd:promote myfs:start #同時檔案系統資源與複製的drbd角色為主的資源的啟動順序有先後之分,只有某節點上的drbd角色為主之後,檔案系統才能被掛載,所以定義了順序約束crm(live)# colocation myserver_with_myfs inf: myserver myfs  #檔案系統資源與mysql服務之間也有順序約束,這兩個資源要運行在一起。


corosync+pacemaker+drbd實現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.