久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

DRBD和Corosync如何實現高可用MySQL

163次閱讀
沒有評論

共計 4815 個字符,預計需要花費 13 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 DRBD 和 Corosync 如何實現高可用 MySQL,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

(1) 節點之間需要傳遞事務信息,節點之間識別節點是通過節點名稱實現,所以需要 DNS 解析,將相應 IP 對應節點名稱,但是如果依賴 DNS 服務器時,高可用集群服務又增大了風險,為了避免 DNS 服務器存在的隱患,配置解析時直接使用本地 /etc/hosts 配置文件定義

(2) 節點名稱必須要與‘uname–n’命令顯示的名稱一致

(3) 高可用集群節點的管理,比如停止某一節點時,是不能在自身這個節點停止其服務,需要在一個運行正常的節點上停止其他節點;所以,提供 ssh 互信通信(配置每個節點基于密鑰的方式與節點進行通信)

(4) 時間需要同步

節點之間網絡通信配置

test1 節點  IP 配置

test2 節點  IP 配置

配置完成重啟網絡服務

各節點節點名稱配置

test1 節點名稱配置

# vim /etc/sysconfig/network

# hostname test1.magedu.com

test2  節點名稱配置

# vim /etc/sysconfig/network

# hostname test2.magedu.com

配置完成重新登錄一下終端

主機名解析配置

RS1  主機名解析配置

# vim /etc/hosts

RS2  主機名解析配置

# vim /etc/hosts

節點之間的 ssh 互信功能配置

節點  test1(簡稱)配置

# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P

# ssh-copy-id -i .ssh/id_rsa.pub root@test2.magedu.com

測試一下

節點  test2 配置

# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P

# ssh-copy-id -i .ssh/id_rsa.pub root@test1.magedu.com

測試

時間同步

配置一臺主機為時間服務器,進行時間同步,這里直接使用的是實驗提供的時間服務器,沒有做其他配置

節點 test1 與 test2 同時同步

# ntpdate 172.16.0.1

計劃任務制定

定義一條計劃任務,時刻同步著時間

# crontab –e

*/5 * * * * ntpdate 172.16.0.1 /dev/null

本次實驗中在節點 test1 與 test2 需要安裝的 rpm 包列表

cluster-glue-1.0.6-1.6.el5.i386.rpm

cluster-glue-libs-1.0.6-1.6.el5.i386.rpm

corosync-1.4.5-1.1.i386.rpm

corosynclib-1.4.5-1.1.i386.rpm

heartbeat-3.0.3-2.3.el5.i386.rpm

heartbeat-libs-3.0.3-2.3.el5.i386.rpm

libesmtp-1.0.4-5.el5.i386.rpm

openais-1.1.3-1.6.el5.i386.rpm

openaislib-1.1.3-1.6.el5.i386.rpm

pacemaker-1.1.5-1.1.el5.i386.rpm

pacemaker-cts-1.1.5-1.1.el5.i386.rpm

pacemaker-libs-1.1.5-1.1.el5.i386.rpm

resource-agents-1.0.4-1.1.el5.i386.rpm

在節點 test1 上的操作配置

準備配置文件

# cd /etc/corosync/

# cp corosync.conf.example corosync.conf

# vim corosync.conf

修改內容如下

totem {

secauth:on

interface{

bindnetaddr:172.16.0.0

mcastaddr:239.151.51.51

添加的內容

service {

ver: 0

name: pacemaker

}

aisexec {

user: root

group: root

}

創建日志文件目錄

# mkdir /var/log/cluster

# ssh test2 mkdir /var/log/cluster

生成一對密鑰

# corosync-keygen

復制密鑰文件與配置文件到 test2 節點

# scp -p authkey corosync.conf test2:/etc/corosync/

啟動 corosync

查看節點狀態信息
 

開始 crm 配置

說明:因為沒有 stonith 設備并且只有兩個節點所以需要禁用 stonith 功能,并更改節點默認屬性

crm(live)configure#property stonith-enabled=false

crm(live)configure#verify

crm(live)configure#property no-quorum-policy=ignore

crm(live)configure#verify

crm(live)configure#commit

定義資源粘性,配置在當前節點 test1 粘性

crm(live)configure#rsc_defaults resource-stickiness=100

crm(live)configure#verify

crm(live)configure#commit

全局資源配置信息查看

資源配置

(1)將 drbd 配置為基本資源

(2) 將 drbd 配置為克隆類資源

資源代理查看

crm(live)# ra

crm(live)ra#providers drbd

查看元數據信息

crm(live)ra# metaocf:heartbeat:drbd

定義一個主資源與一個主從類資源

crm(live)#configure

crm(live)configure#primitive mydrbdservice ocf:heartbeat:drbd params drbd_resource=mydrbd op starttimeout=240 op stop timeout=100 op monitor role=Master interval=20 timeout=30op monitor role=Slave interval=30 timeout=30

crm(live)configure#ms ms_mydrbd mydrbdservice meta master-max=1 master-node-max=1 clone-max=2clone-node-max=1 notify=true

crm(live)configure#verify

crm(live)configure#commit

狀態信息查看

DRBD 和 Corosync 如何實現高可用 MySQL

主從轉換驗證

crm(live)# node

crm(live)node#standby

crm(live)node#online test1.magedu.com

DRBD 和 Corosync 如何實現高可用 MySQL

配置資源,通過 NFS 使其能夠實現自動掛載

Filesystem 資源添加

crm(live)configure#primitive mystore ocf:heartbeat:Filesystem params device=/dev/drbd0directory=/mydata fstype=ext3 op start timeout=60 op stop timeout=60

定義排列 colocation 使 Filesystem 必須跟主節點在一起

crm(live)configure#colocation mystore_with_ms_mydrbd inf: mystore ms_mydrbd:Master

定義排列 order 約束

crm(live)configure#order mystore_after_ms_mydrbd mandatory: ms_mydrbd:promote mystore:start

節點狀態信息查看

DRBD 和 Corosync 如何實現高可用 MySQL

在節點 test2 上查看是否成功掛載

DRBD 和 Corosync 如何實現高可用 MySQL

主備節點切換驗證

crm(live)# node

crm(live)node#standby test2.magedu.com

狀態信息查看

DRBD 和 Corosync 如何實現高可用 MySQL

查看 test1 節點上 Filesystem 是否成功掛載

DRBD 和 Corosync 如何實現高可用 MySQL

準備 mysql 服務

現在的主節點是 test1,首先在節點 1 上配置 mysql 服務

創建 mysql 用戶與 mysql 組

# groupadd -g3306 mysql

# useradd -g 3306-u 3306 -M mysql

準備 mysql

# tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/

# ln -sv mysql-5.5.28-linux2.6-i686mysql

準備數據目錄

# cd /mydata

# mkdir data

# chownmysql.mysql data -R

更改 mysql 文件屬主屬組

# cd/usr/local/mysql

# chown root.mysql/usr/local/mysql/* -R

準備配置文件與服務腳本

# cd/usr/local/mysql

# cpsupport-files/my-large.cnf /etc/my.cnf

# cpsupport-files/mysql.server /etc/init.d/

修改配置文件

# vim /etc/my.cnf

添加以下內容 (線程數與 datadir 目錄位置)

thread_concurrency= 2

datadir=/mydata/data

設置 mysql 服務不能開機啟動

# chkconfig –addmysqld

# chkconfigmysqld off

初始化 mysql

# cd/usr/local/mysql

#scripts/mysql_install_db –user=mysql –datadir=/mydata/data

啟動 mysql

DRBD 和 Corosync 如何實現高可用 MySQL

test2 節點 mysql 服務配置與 test1 節點相同,說明流程如下

1  關閉節點 test1 的  mysql 服務

2  把節點 test2  轉換成 Master

crm(live)# node

crm(live)node#standby test1.magedu.com

crm(live)node#online test1.magedu.com

DRBD 和 Corosync 如何實現高可用 MySQL

3  開始配置 test2 的 mysql 服務流程與 test1 相同(不執行初始化操作)

 

配置 mysql 服務為高可用服務

添加 mysql 為集群資源

crm(live)configure#primitive mysqld lsb:mysqld

crm(live)configure#verify

crm(live)configure#

定義 colocation 約束(mysql 與 mystore 在一起;即與主節點在一起)

crm(live)configure#colocation mysql_with_mystore inf: mysqld mystore

crm(live)configure#verify

定義 order 約束(最后啟動 mysql 服務)

crm(live)configure#order mysqld_after_mystore mandatory: mystore mysqld

crm(live)configure#verify

crm(live)configure#commit

節點狀態信息查看

DRBD 和 Corosync 如何實現高可用 MySQL

test2 上 mysql 服務啟動狀態查看

DRBD 和 Corosync 如何實現高可用 MySQL

主從節點切換測試

crm(live)# node

crm(live)node#standby test2.magedu.com

crm(live)node#online test2.magedu.com

查看狀態信息

DRBD 和 Corosync 如何實現高可用 MySQL

查看 test1 節點是否成功運行 mysql 服務

DRBD 和 Corosync 如何實現高可用 MySQL

到這里一個基于 drbd 與 corosync 實現的高可用 mysql 就完成了,希望能為大家提供一些幫助

DRBD 和 Corosync 如何實現高可用 MySQL

關于“DRBD 和 Corosync 如何實現高可用 MySQL”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計4815字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 通榆县| 枣庄市| 冕宁县| 五河县| 星座| 井陉县| 赣州市| 仁寿县| 理塘县| 桃源县| 石城县| 东台市| 抚宁县| 江达县| 太康县| 漾濞| 青州市| 界首市| 依安县| 平谷区| 双桥区| 深水埗区| 色达县| 定边县| 秀山| 榆社县| 通许县| 曲靖市| 内丘县| 海林市| 农安县| 汉寿县| 金门县| 南康市| 沭阳县| 永昌县| 昌宁县| 友谊县| 仪陇县| 肇州县| 宜良县|