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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 7286 | 回復: 10
打印 上一主題 下一主題

CentOS5系統(tǒng)安裝和配置HA+DRBD+MySQL筆記 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-08-29 22:57 |只看該作者 |倒序瀏覽
DRBD(Distributed Replicated Block Device),分布式復制塊設備,是一種通過TCP/IP網(wǎng)絡實現(xiàn)塊設備數(shù)據(jù)實時鏡像的方案。利用這種方案,單一主節(jié)點模式(single primary mode)雙機系統(tǒng)能夠?qū)崟r地將業(yè)務數(shù)據(jù)保存在主備節(jié)點的磁盤中,正常情況下兩個節(jié)點的數(shù)據(jù)是一模一樣的。
HeartBeat在此是用來做熱備切換的,兩節(jié)點間通過心跳線連接,如果主節(jié)點死機的話,可以通過HA將DRBD快速切換到另外一個節(jié)點,同時搶占虛擬IP,并啟動MySQL,對MySQL客戶端來說,只有很短時間的中斷。此模式能有效提高MySQL的可用性。

此文檔參考了DRBD(http://www.drbd.org), HA(http://linux-ha.org), MySQL的相關官方文檔。安裝筆記由魚漂(ipaddr)原創(chuàng),最新版本可以在http://www.eit.name/找到,轉載請注明。

--------------------------------
一.環(huán)境
--------------------------------
OS: CentOS 5.5 32位
MySQL: 系統(tǒng)自帶
DRBD: 8.3.8.1編譯安裝 (http://www.drbd.org/)
HeartBeat: 3.0.3編譯安裝 (http://linux-ha.org/)

====Node1====
Hostname: db_node1.systemadmin.cn
Ip: 192.168.0.201
====Node2====
Hostname: db_node2.systemadmin.cn
Ip: 192.168.0.202

HB的虛IP: 192.168.0.200

用來做DRBD的分區(qū):/dev/sdb1
掛載點:/data/dbdata

--------------------------------
二. 編譯安裝DRBD
--------------------------------
www.drbd.org下載drbd-8.3.8.1.tar.gz,分別在兩個節(jié)點上編譯安裝:
注意,DRBD需要內(nèi)核模塊支持,2.6.33后的Linux內(nèi)核已內(nèi)置DRBD的支持,在此版本前,安裝時需要kernel-devel包,同時編譯drbd時要帶上--with-km。

#./configure --prefix=/ --with-km
#make
#make install
#chkconfig --add drbd
#chkconfig drbd on

檢查安裝是否成功:
#drbdadm
看是否以執(zhí)行成功?
#cat /proc/drbd
是否可以看到版本信息

重啟后再次檢查cat /proc/drbd

--------------------------------
三. 配置DRBD
--------------------------------
注意,新版本的DRBD的配置文件已拆分成多個,全部放在/etc/drbd.d/目錄,具體可參考/etc/drbd.conf中的配置.
如果開了iptables防火墻,需要打開對應的7789端口。

在主節(jié)點配置/etc/drbd.d/dbdata.res:
=========dbdata.res begin===========
resource dbdata {
  on db_node1.systemadmin.cn {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   192.168.0.201:7789;
    meta-disk internal;
  }
  on db_node2.systemadmin.cn {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   192.168.0.202:7789;
    meta-disk internal;
  }
}
=========dbdata.res end===========

創(chuàng)建drbd設備
#drbdadm create-md all
#/etc/init.d/drbd restart

查看是否有相應的塊設備:
#ls -l /dev/drbd1
#cat /proc/drbd

設置當前節(jié)點為主節(jié)點并進行格式化:
#drbdadm -- --overwrite-data-of-peer primary all
#mkfs.ext3 /dev/drbd1
#mount /dev/drbd1 /data/dbdata
#mkdir /data/dbdata/etc
#mkdir /data/dbdata/data

在從節(jié)點做如下配置:
復制dbdata.res到從節(jié)點的/etc/drbd.d/
#drbdadm create-md all
#/etc/init.d/drbd restart
通過cat /prod/drbd查看是否開始復制,以及兩節(jié)點的狀態(tài)。

此時開始同步兩個節(jié)點的磁盤,需要一定時間,在同步完成前,請不要重啟,否則會重新同步。

同步完成后,如果兩個節(jié)點都是Secondary/Secondary,并且已經(jīng)UpToDate了,可以挑一個節(jié)點設置為主節(jié)點:
#drbdadm primary all

DRDB的一些常規(guī)操作:
切換主從節(jié)點前,要注意umount
主從切換: drbdadm primary all, drbdadm secondary all
節(jié)點間連接:drbdadm connect|disconnect all

DRBD腦裂后的處理:
腦裂后,兩個節(jié)點間數(shù)據(jù)不同步,主從關系失效,需要按下面的步驟修復:
a.在從節(jié)點如下操作:
#drbdadm secondary dbdata
#drbdadm -- --discard-my-data connect dbdata
b.在主節(jié)點上,通過cat /proc/drbd查看狀態(tài),如果不是WFConnection狀態(tài),需要再手動連接:
#drbdadm connect dbdadta

--------------------------------
四. 遷移MySQL到DRBD磁盤
--------------------------------
確保drbd當前工作正常,將/data/dbdata加載,再在主節(jié)點按如下步驟操作。
a. 關閉MySQL: /etc/init.d/mysqld stop
b. #mv /etc/my.cnf /data/dbdata/etc/
c. #ln -s /data/dbdata/etc/my.cnf /etc/my.cnf
d. 修改my.cnf,將數(shù)文件文件指向 /data/dbdata/data
e. 將原來的數(shù)據(jù)文件移動到 /data/dbdata/data
f. 再啟動MySQL

從節(jié)點只需要刪除/etc/my.cnf,同時,建立鏈接到/data/dbdata/etc/my.cnf即可。

現(xiàn)在已完成MySQL+DRBD的配置,但切換時仍然是手動進行,假設主節(jié)點從node1轉到node2,手動操作如下:
a. 在node1上停止MySQL
b. 在node1上unmout /data/dbdata
c. 在node1上執(zhí)地drbdadm secondary all,兩個節(jié)點都是secondary狀態(tài)后,才可以將node2設置為primary
d. 在node2上執(zhí)行drbdadm primary all,將node2變成主節(jié)點
e. 觀察兩個節(jié)點的/proc/drbd是否正常
f. 在node2上mount /dev/drbd1 /data/dbdata
g. 在node2上面啟動MySQL

建議:據(jù)說MyISAM在DRBD上容易造成數(shù)據(jù)丟失,或表文件損壞,所以此模式下最好用InnoDB,打開Binlog,同時,innodb_flush_log_at_trx_commit=1可以保證數(shù)據(jù)完整,但會嚴重影響性能。設置為2的話性能約有10倍提升,不過故障時可能會丟失1秒的數(shù)據(jù)。

--------------------------------
五. 安裝配置HA
--------------------------------
需分別下載和安裝:
* Cluster Glue 1.0.6: glue-1.0.6.tar.bz2
* Resource Agents 1.0.3: agents-1.0.3.tar.bz2
* Heartbeat 3.0.3: Heartbeat-3-0-STABLE-3.0.3.tar.bz2
魚漂特別提醒,編譯安裝過程中,還會連接網(wǎng)絡下載文件和校驗xml,請在安裝前確保網(wǎng)絡連接和DNS解析正常。

A. 先安裝glue
1. 從linux-ha.org下載 glue-1.0.6.tar.bz2
2. 解壓
3. 編譯安裝:
./autogen.sh
./configure
打開lib/stonith/main.c,將version相關的注釋掉,否則編譯不過,有點詭異。
1、找到其64行,將其注釋掉。
2、找到其76到81行全部注釋掉。
3、找到其390行,將其注釋

groupadd haclient
useradd -g haclient hacluster
make
make install

B. 安裝Cluster agent
#./autogen.sh
#./configure
#make
#make install


C. 安裝HA3.0.3
下載HA3.0.3解壓并進入到源代碼目錄:
#./bootstrap
#./ConfigureMe configure
#make
#make install

D. 配置/etc/ha.d/ha.cf
=========ha.cf begin==============
logfacility local0
keepalive 500ms
deadtime 10
warntime 5
initdead 60
mcast eth0 225.0.0.1 694 1 0
auto_failback off
node db_node1.systemadmin.cn
node db_node2.systemadmin.cn
=========ha.cf end==============
注意,防火墻需要打開端口為694,目標Ip為225.0.0.1的udp通信

E. 配置/etc/ha.d/haresources
========haresource begin===========
db_node1.systemadmin.cn drbddisk Filesystem::/dev/drbd1::/data/dbdata::ext3 IPaddr::192.168.0.200/24/eth0 mysql
========haresource end===========

F.生成/etc/ha.d/authkeys
#( echo -ne "auth 1\n1 sha1 "; \
  dd if=/dev/urandom bs=512 count=1 | openssl md5 ) \
  > /etc/ha.d/authkeys
#chmod 0600 /etc/ha.d/authkeys


G. 編寫MySQL啟動腳本/etc/ha.d/resource.d/mysql
=========mysql begin============
#!/bin/bash
#
# Author: ipaddr ( admin.net [#] 163.com )
#
. /etc/ha.d/shellfuncs
case "$1" in
    start)
         res=`/etc/init.d/mysqld start`
         ret=$?
         ha_log $res
         exit $ret
         ;;
     stop)
         res=`/etc/init.d/mysqld stop`
         ret=$?
         ha_log $res
         exit $ret
         ;;
     status)
         if [[ `ps -ef | grep '[m]ysqld'` > 1 ]] ; then
             echo "running"
         else
             echo "stopped"
         fi
         ;;
     *)
         echo "Usage: mysql {start|stop|status}"
         exit 1
         ;;
esac
exit 0
=========mysql end============


F. 拷貝一些常用腳本
1. 從Heartbeat-3-0源碼目錄的heartbeat/lib/復制hb_standby, hb_takeover到/usr/lib/heartbeat 并設置為可執(zhí)行.
2. 將Cluster agent的一些文件拷到/etc/ha.d/:
cp /usr/etc/ha.d/shellfuncs /etc/ha.d/
cp -rf /etc/ha.d/* /usr/etc/ha.d/
(這個操作很奇怪,Cluster Agent與HA使用不同的目錄,但又要共用文件,不知在編譯agent時是否可以使用--prefix=/來解決,由于編譯時間實在太長,所有沒有測試)

G. 使用:
1. 設置為自啟動:
chkconfig mysqld off
chkconfig --add heartbeat
chkconfig heartbeat on

2. 手動切換兩個節(jié)點:
/usr/lib/heartbeat/hb_takeover 將當前節(jié)點設為主節(jié)點
/usr/lib/heartbeat/hb_standby 將當前節(jié)點設為從節(jié)點

論壇徽章:
59
2015七夕節(jié)徽章
日期:2015-08-24 11:17:25ChinaUnix專家徽章
日期:2015-07-20 09:19:30每周論壇發(fā)貼之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38榮譽版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年紀念徽章
日期:2015-07-20 11:05:27IT運維版塊每日發(fā)帖之星
日期:2015-07-20 11:05:34操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:36程序設計版塊每日發(fā)帖之星
日期:2015-07-20 11:05:40數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-07-20 11:05:432015年辭舊歲徽章
日期:2015-07-20 11:05:44
2 [報告]
發(fā)表于 2010-08-30 10:35 |只看該作者
學習了。謝謝。

論壇徽章:
0
3 [報告]
發(fā)表于 2010-08-30 16:26 |只看該作者
沒人關注嗎?

折騰了一周末寫出來的筆記哦。

論壇徽章:
0
4 [報告]
發(fā)表于 2010-08-31 17:04 |只看該作者
謝謝分享

論壇徽章:
0
5 [報告]
發(fā)表于 2010-09-01 14:17 |只看該作者
必須頂

論壇徽章:
0
6 [報告]
發(fā)表于 2010-09-02 09:05 |只看該作者
貌似今年的架構師大會 有此篇,莫非就是您?

論壇徽章:
0
7 [報告]
發(fā)表于 2010-09-03 11:21 |只看該作者
回復 1# ipaddr


    能對DRBD詳細的介紹下嗎?可以通過拓撲來說明

論壇徽章:
0
8 [報告]
發(fā)表于 2010-09-06 12:56 |只看該作者
回復 6# haokanwk

肯定不是我,

論壇徽章:
0
9 [報告]
發(fā)表于 2010-09-06 12:57 |只看該作者
回復  ipaddr


    能對DRBD詳細的介紹下嗎?可以通過拓撲來說明
flb_2001 發(fā)表于 2010-09-03 11:21



官方首頁有一個很直觀的拓撲圖:

http://www.drbd.org/

論壇徽章:
0
10 [報告]
發(fā)表于 2012-03-03 19:47 |只看該作者
,有時間加我qq 729976541   有問題聯(lián)系你
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP