国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
drbd heartbeat(v1) mysql搭建高可用數(shù)據(jù)庫(kù)并保留原有硬盤數(shù)據(jù)(第2版...

drbd+heartbeat(v1)+mysql搭建高可用數(shù)據(jù)庫(kù)并保留原有硬盤數(shù)據(jù)(第2版)

本文作者:深夜的蚊子
本文鏈接:http://www.wenzizone.com/2009/11/01/drbd_heartbeat_v1_mysql_v2.html

DRBD是一種塊設(shè)備的實(shí)現(xiàn),與heartbeat的搭配,被廣泛用于linux下的高可用(HA)方案中,蚊子的這篇文章是建立在上一篇《drbd+heartbeat(v1)+mysql搭建高可用數(shù)據(jù)庫(kù)并保留原有硬盤數(shù)據(jù)》之上的,對(duì)于上一篇中不足和潛在問(wèn)題予以改正。如果有需要在線操作的請(qǐng)以這篇為準(zhǔn)。

此篇文章還是介紹如何在已經(jīng)含有數(shù)據(jù)的分區(qū)或硬盤上搭建drbdheartbeat高可用mysql服務(wù)。

在對(duì)含有數(shù)據(jù)的分區(qū)或硬盤建立drbd高可用的時(shí)候,請(qǐng)確認(rèn)以下三件事。

1,所在分區(qū)或硬盤可以擴(kuò)容,比如使用lvm
2,所在分區(qū)或硬盤上的文件系統(tǒng)支持shrinking
3,如果以上兩條都不能滿足,請(qǐng)使用外部metadata

蚊子這里使用的是第一種方法,具體請(qǐng)接著往下看

測(cè)試環(huán)境:

Vmware6.0
             linux01 192.168.211.128  /dev/VG/data分區(qū),存放數(shù)據(jù)庫(kù)文件,320M
             linux02 192.168.211.129 /dev/VG/data分區(qū),存放數(shù)據(jù)庫(kù)文件,320M

mysql數(shù)據(jù)路徑/data/mysql
因?yàn)闆](méi)有合適的mysql數(shù)據(jù)所以使用wordpress的數(shù)據(jù),wordpress2.8.5
nginx version: nginx/0.8.20
PHP 5.2.11 (cli) (built: Oct 23 2009 21:01:40)

一,準(zhǔn)備工作

linux01上完成的內(nèi)容

1,heartbeat的安裝

yum –y install heartbeat heartbeat-devel

2,drbd的安裝

tar zxvf drbd-8.3.4.tar.gz
cd drbd-8.3.4
make all
make install
make install-tools

3,準(zhǔn)備一個(gè)含有mysql數(shù)據(jù)的硬盤分區(qū)

蚊子這里沒(méi)有現(xiàn)成的mysql數(shù)據(jù),就使用wordpress的數(shù)據(jù)庫(kù)內(nèi)容了,mysql的版本不限,可以是二進(jìn)制解壓用的,也可以是源碼編譯的,蚊子這里是用的二進(jìn)制的,操作如下

清空分區(qū)內(nèi)容
[root@linux01 ~]# mkfs.ext3 /dev/VG/data

掛載分區(qū)
[root@linux01 ~]# mount /dev/VG/data  /data/

初始化數(shù)據(jù)庫(kù)

[root@linux01 mysql]# /usr/local/mysql/scripts/mysql_install_db –user=mysql –datadir=/data/mysql
Installing MySQL system tables…
091025 19:33:53 [Warning] option ‘thread_stack’: unsigned value 65536 adjusted to 131072
OK
Filling help tables…
091025 19:33:53 [Warning] option ‘thread_stack’: unsigned value 65536 adjusted to 131072
OK

在此處安裝wordpress,將wordpress數(shù)據(jù)庫(kù)安裝到blog庫(kù)中,如下
[root@linux01 mysql]# ll /data/mysql/
total 20572
drwx—— 2 mysql mysql     4096 Oct 27 17:26 blog
-rw-rw—- 1 mysql mysql 10485760 Oct 27 17:25 ibdata1
-rw-rw—- 1 mysql mysql  5242880 Oct 27 17:25 ib_logfile0
-rw-rw—- 1 mysql mysql  5242880 Oct 27 17:25 ib_logfile1
-rw-rw—- 1 mysql root      1247 Oct 27 17:25 linux01.err
-rw-rw—- 1 mysql mysql        5 Oct 27 17:25 linux01.pid
drwx—— 2 mysql root      4096 Oct 27 17:25 mysql
drwx—— 2 mysql root      4096 Oct 27 17:25 test

卸載/data分區(qū)
[root@linux01 ~]# umount /data/

4,備份分區(qū)前1M空間

[root@linux01 mysql]# dd if=/dev/VG/data of=/root/back bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.049084 seconds, 21.4 MB/s

5,計(jì)算metadata容量并擴(kuò)展分區(qū),計(jì)算近似值如下公式

計(jì)算出來(lái)的近似值是1M左右,因?yàn)槲米迎h(huán)境的lvm最小PE-size就是32Mb,所以擴(kuò)展一個(gè)pe就行了

lvextend –l +1 /dev/VG/data

6,清空分區(qū)前1M空間

[root@linux01 mysql]# dd if=/dev/zero of=/dev/VG/data bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0131647 seconds, 79.7 MB/s

7,創(chuàng)建drbd.conf文件,內(nèi)容如下

global {

    usage-count yes;
}

common {
  syncer { rate 10M; }
}

resource r0 {

  protocol C;

  handlers {
    pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

    pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

    local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";

    fence-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";

  }

  disk {
    on-io-error   detach;
  }

  net {

    after-sb-0pri disconnect;

    after-sb-1pri disconnect;

    after-sb-2pri disconnect;

    rr-conflict disconnect;

  }

  syncer {
    rate 10M;
    al-extents 257;

  }

  on linux01 {
    device     /dev/drbd0;
    disk       /dev/VG/data;
    address    192.168.211.128:7788;
    flexible-meta-disk  internal;
  }

  on linux02 {
    device    /dev/drbd0;
    disk      /dev/VG/data;
    address   192.168.211.129:7788;
    meta-disk internal;
  }
}

8,初始化drbd磁盤

[root@linux01 mysql]# drbdadm create-md r0
Writing meta data…
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success

[root@linux01 mysql]# /etc/init.d/drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].

確認(rèn)drbd是否啟動(dòng)
[root@linux01 mysql]# cat /proc/drbd
version: 8.3.4 (api:88/proto:86-91)
GIT-hash: 70a645ae080411c87b4482a135847d69dc90a6a2 build by root@linux01, 2009-10-22 21:01:53
0: cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown C r—-
    ns:0 nr:589768 dw:589768 dr:0 al:0 bm:36 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

將當(dāng)前機(jī)器上的drbd設(shè)為primary
[root@linux01 mysql]# drbdsetup /dev/drbd0 primary –o

查看當(dāng)前狀態(tài)

[root@linux01 mysql]# cat /proc/drbd
version: 8.3.4 (api:88/proto:86-91)
GIT-hash: 70a645ae080411c87b4482a135847d69dc90a6a2 build by root@linux01, 2009-10-22 21:01:53
0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r—-
    ns:0 nr:589768 dw:589768 dr:0 al:0 bm:36 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

9,恢復(fù)分區(qū)第一分區(qū),這也是保證數(shù)據(jù)還在的關(guān)鍵一步

[root@linux01 mysql]# dd if=/root/back of=/dev/drbd0
2048+0 records in
2048+0 records out
1048576 bytes (1.0 MB) copied, 0.113655 seconds, 9.2 MB/s

10,重啟drbd服務(wù)

[root@linux01 mysql]# /etc/init.d/drbd restart
Restarting all DRBD resources: .

到此為止,linux01上的準(zhǔn)備工作就做好了,下面看下linux02上的操作

因?yàn)閘inux02是備份用的,基本不用怎么設(shè)置,如果分區(qū)里面含有數(shù)據(jù)的話,就直接執(zhí)行下面的操作就行

1,heartbeat的安裝

yum –y install heartbeat heartbeat-devel

2,drbd的安裝

tar zxvf drbd-8.3.4.tar.gz
cd drbd-8.3.4
make all
make install
make install-tools

3,初始化drbd

拷貝linux01上/etc/drbd.conf到linux02上的/etc下

[root@linux02 ~]# dd if=/dev/zero of=/dev/VG/data bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0141756 seconds, 74.0 MB/s

擴(kuò)展分區(qū)
[root@linux02 ~]# lvextend –l +1 /dev/VG/data

創(chuàng)建metadata
[root@linux02 ~]# drbdadm create-md r0
Writing meta data…
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success

[root@linux02 ~]# /etc/init.d/drbd start        
Starting DRBD resources: [ d(r0) ].

查看一下狀態(tài)

[root@linux02 ~]# cat /proc/drbd
version: 8.3.4 (api:88/proto:86-91)
GIT-hash: 70a645ae080411c87b4482a135847d69dc90a6a2 build by root@linux02, 2009-10-22 21:01:33
0: cs:SyncTarget ro:Secondary/Secondary ds:Inconsistent/UpToDate C r—-
    ns:0 nr:184320 dw:184320 dr:0 al:0 bm:11 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:405448
        [=====>..............] sync’ed: 32.0% (405448/589768)K
        finish: 0:00:34 speed: 11,696 (10,240) K/sec

現(xiàn)在兩臺(tái)機(jī)器上的準(zhǔn)備工作都完畢了,進(jìn)入到下面一個(gè)階段

二,drbd,Heartbeat和mysql整合工作

兩臺(tái)機(jī)器上的公共操作

編輯ha.cf文件,內(nèi)容如下

debugfile /var/log/ha-debug
logfacility     local0
keepalive 2
deadtime 5
warntime 10
initdead 10
ucast eth0 192.168.211.129    #在兩臺(tái)機(jī)器上的內(nèi)容是不一樣的,都是指向?qū)Ψ降膇p地址
auto_failback on
node    linux01
node    linux02
ping 192.168.211.2
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster

編輯authkeys文件,內(nèi)容如下

auth 1
1 crc

修改此文件權(quán)限為600

編輯haresources,內(nèi)容如下

linux01 drbddisk::r0 Filesystem::/dev/drbd0::/data 192.168.211.120 mysqld

第一個(gè)字段是主機(jī)名,是uname -n得到的
第二個(gè)字段作用是當(dāng)前主機(jī)設(shè)置為primary
第三個(gè)字段作用將/dev/drbd0 mount到/data目錄上
第四個(gè)字段作用是啟動(dòng)VIP
第五個(gè)字段啟動(dòng)mysql進(jìn)程

這個(gè)文件在啟動(dòng)的時(shí)候是由左往右啟動(dòng),停止就是相反的由右往左停止。

分配權(quán)限:

chgrp haclient /sbin/drbdsetup
chmod o-x /sbin/drbdsetup
chmod u+s /sbin/drbdsetup
chgrp haclient /sbin/drbdmeta
chmod o-x /sbin/drbdmeta
chmod u+s /sbin/drbdmeta

三,啟動(dòng)測(cè)試階段

到現(xiàn)在,全部配置就已經(jīng)完成了,可以進(jìn)行測(cè)試了

現(xiàn)在兩臺(tái)機(jī)器上都啟動(dòng)heartbeat,可以看到第一臺(tái)機(jī)器的狀態(tài)

VIP已經(jīng)啟動(dòng)
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:71:2E:11 
          inet addr:192.168.211.120  Bcast:192.168.211.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:169 Base address:0×2000

mysql已經(jīng)順利啟動(dòng)
2845 ?        S      0:00 /bin/sh ./bin/mysqld_safe –datadir=/data/mysql –pid-file=/data/mysql/linux01.pid
2945 ?        Sl     0:00 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/data/mysql –user=mysql –log-error=/data/mysql/linux01.err –pid-file=/data/mysql/linux01.pid –socket=/tmp/mysql.sock –port=3306

drbd0設(shè)備mount上了
/dev/drbd0            567M   38M  501M   8% /data

這時(shí)停止linux01上的heartbeat,看下linux02上的狀態(tài)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:50:E4:62 
          inet addr:192.168.211.120  Bcast:192.168.211.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:169 Base address:0×2000

[root@linux02 ~]# ps ax|grep mysql|grep -v grep
2582 ?        S      0:00 /bin/sh ./bin/mysqld_safe –datadir=/data/mysql –pid-file=/data/mysql/linux02.pid
2682 ?        Sl     0:00 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/data/mysql –user=mysql –log-error=/data/mysql/linux02.err –pid-file=/data/mysql/linux02.pid –socket=/tmp/mysql.sock –port=3306

[root@linux02 ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VG-root    6919612   1866388   4696056  29% /
/dev/sda1               101086     12072     83795  13% /boot
tmpfs                   127772         0    127772   0% /dev/shm
/dev/drbd0              580540     38872    512180   8% /data

這時(shí)如果在linux02上也啟動(dòng)nginx的話,使用vip是可以正常訪問(wèn)wordpress的頁(yè)面的,這里蚊子就不上圖了。到此這篇文章就全部完成了,需要的朋友可以親自去試試,切記,如果需要在正式環(huán)境中應(yīng)用并保證原有數(shù)據(jù)存在,請(qǐng)做好相應(yīng)的備份工作。

使用以上方法,蚊子已經(jīng)成功把公司線上兩臺(tái)數(shù)據(jù)庫(kù)成功做成drbd+heartbeat高可用的方式了,目前穩(wěn)定運(yùn)行一周了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Heartbeat+DRBD+MySQL高可用方案
Linux Heartbeat
Heartbeat+DRBD+NFS+Keepalived+Lnmp雙機(jī)熱備+負(fù)載均衡-線上方案
FreeSwitch + Bluebox High Availability (HA) Cluster using Heartbeat and DRBD
MySQL數(shù)據(jù)庫(kù)高可用性方案
DRBD配置過(guò)程(1)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服