真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CentOS7.0中DRBD怎么用

這篇文章主要介紹了CentOS7.0中DRBD怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)化德免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一、DRBD簡(jiǎn)介 
DRBD的全稱(chēng)為:Distributed ReplicatedBlock Device(DRBD)分布式塊設(shè)備復(fù)制,DRBD是由內(nèi)核模塊和相關(guān)腳本而構(gòu)成,用以構(gòu)建高可用性的集群。其實(shí)現(xiàn)方式是通過(guò)網(wǎng)絡(luò)來(lái)鏡像整個(gè)設(shè)備。你可以把它看作是一種網(wǎng)絡(luò)RAID。它允許用戶(hù)在遠(yuǎn)程機(jī)器上建立一個(gè)本地塊設(shè)備的實(shí)時(shí)鏡像。 
1.1、DRBD是如何工作的呢? 
(DRBD Primary)負(fù)責(zé)接收數(shù)據(jù),把數(shù)據(jù)寫(xiě)到本地磁盤(pán)并發(fā)送給另一臺(tái)主機(jī)(DRBD Secondary)。另一個(gè)主機(jī)再將數(shù)據(jù)存到自己的磁盤(pán)中。目前,DRBD每次只允許對(duì)一個(gè)節(jié)點(diǎn)進(jìn)行讀寫(xiě)訪(fǎng)問(wèn),但這對(duì)于通常的故障切換高可用集群來(lái)說(shuō)已經(jīng)足夠用了。有可能以后的版本支持兩個(gè)節(jié)點(diǎn)進(jìn)行讀寫(xiě)存取。 
1.2、DRBD與HA的關(guān)系 
一個(gè)DRBD系統(tǒng)由兩個(gè)節(jié)點(diǎn)構(gòu)成,與HA集群類(lèi)似,也有主節(jié)點(diǎn)和備用節(jié)點(diǎn)之分,在帶有主要設(shè)備的節(jié)點(diǎn)上,應(yīng)用程序和操作系統(tǒng)可以運(yùn)行和訪(fǎng)問(wèn)DRBD設(shè)備(/dev/drbd*)。在主節(jié)點(diǎn)寫(xiě)入的數(shù)據(jù)通過(guò)DRBD設(shè)備存儲(chǔ)到主節(jié)點(diǎn)的磁盤(pán)設(shè)備中,同時(shí),這個(gè)數(shù)據(jù)也會(huì)自動(dòng)發(fā)送到備用節(jié)點(diǎn)對(duì)應(yīng)的DRBD設(shè)備,最終寫(xiě)入備用節(jié)點(diǎn)的磁盤(pán)設(shè)備上,在備用節(jié)點(diǎn)上,DRBD只是將數(shù)據(jù)從DRBD設(shè)備寫(xiě)入到備用節(jié)點(diǎn)的磁盤(pán)中。現(xiàn)在大部分的高可用性集群都會(huì)使用共享存儲(chǔ),而DRBD也可以作為一個(gè)共享存儲(chǔ)設(shè)備,使用DRBD不需要太多的硬件的投資。因?yàn)樗赥CP/IP網(wǎng)絡(luò)中運(yùn)行,所以,利用DRBD作為共享存儲(chǔ)設(shè)備,要節(jié)約很多成本,因?yàn)閮r(jià)格要比專(zhuān)用的存儲(chǔ)網(wǎng)絡(luò)便宜很多;其性能與穩(wěn)定性方面也不錯(cuò) 
二、DRBD復(fù)制模式 
2.1、協(xié)議A: 
異步復(fù)制協(xié)議。一旦本地磁盤(pán)寫(xiě)入已經(jīng)完成,數(shù)據(jù)包已在發(fā)送隊(duì)列中,則寫(xiě)被認(rèn)為是完成的。在一個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),可能發(fā)生數(shù)據(jù)丟失,因?yàn)楸粚?xiě)入到遠(yuǎn)程節(jié)點(diǎn)上的數(shù)據(jù)可能仍在發(fā)送隊(duì)列。盡管,在故障轉(zhuǎn)移節(jié)點(diǎn)上的數(shù)據(jù)是一致的,但沒(méi)有及時(shí)更新。這通常是用于地理上分開(kāi)的節(jié)點(diǎn) 
2.2、協(xié)議B: 
內(nèi)存同步(半同步)復(fù)制協(xié)議。一旦本地磁盤(pán)寫(xiě)入已完成且復(fù)制數(shù)據(jù)包達(dá)到了對(duì)等節(jié)點(diǎn)則認(rèn)為寫(xiě)在主節(jié)點(diǎn)上被認(rèn)為是完成的。數(shù)據(jù)丟失可能發(fā)生在參加的兩個(gè)節(jié)點(diǎn)同時(shí)故障的情況下,因?yàn)樵趥鬏斨械臄?shù)據(jù)可能不會(huì)被提交到磁盤(pán) 
2.3、協(xié)議C: 
同步復(fù)制協(xié)議。只有在本地和遠(yuǎn)程節(jié)點(diǎn)的磁盤(pán)已經(jīng)確認(rèn)了寫(xiě)操作完成,寫(xiě)才被認(rèn)為完成。沒(méi)有任何數(shù)據(jù)丟失,所以這是一個(gè)群集節(jié)點(diǎn)的流行模式,但I(xiàn) / O吞吐量依賴(lài)于網(wǎng)絡(luò)帶寬 
一般使用協(xié)議C,但選擇C協(xié)議將影響流量,從而影響網(wǎng)絡(luò)時(shí)延。為了數(shù)據(jù)可靠性,我們?cè)谏a(chǎn)環(huán)境使用時(shí)須慎重選項(xiàng)使用哪一種協(xié)議

三、 DRBD工作原理圖 
DRBD是Linux的內(nèi)核的存儲(chǔ)層中的一個(gè)分布式存儲(chǔ)系統(tǒng),可用使用DRBD在兩臺(tái)Linux服務(wù)器之間共享塊設(shè)備,共享文件系統(tǒng)和數(shù)據(jù)。類(lèi)似于一個(gè)網(wǎng)絡(luò)RAID-1的功能,如圖所示:

CentOS7.0中DRBD怎么用 
四、安裝配置 (節(jié)點(diǎn)1上操作) 
4.1、準(zhǔn)備: 
兩個(gè)節(jié)點(diǎn)ha-node1和ha-node2均按照centos7.0系統(tǒng),每個(gè)節(jié)點(diǎn)兩塊磁盤(pán),一塊用作根分區(qū)一塊用作drbd

192.168.8.51 ha-node1
192.168.8.52 ha-node2
  • 修改主機(jī)名: 

節(jié)點(diǎn)1

# hostnamectl set-hostname ha-node1
# su -l
  • 節(jié)點(diǎn)2

# hostnamectl set-hostname ha-node2
# su -l
  • 4.2、磁盤(pán)分區(qū)如下

[root@ha-node2 corosync]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0   20G  0 disk 
sr0              11:0    1 1024M  0 rom  
[root@ha-node1 corosync]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0   20G  0 disk 
sr0              11:0    1 1024M  0 rom
  • 4.3、創(chuàng)建lvm(每個(gè)節(jié)點(diǎn)都需執(zhí)行)

# pvcreate /dev/sdb
# vgcreate data /dev/sdb
# lvcreate --size 2G --name MySQL data
  • 4.4、關(guān)閉防火墻(每個(gè)節(jié)點(diǎn)都需執(zhí)行)

setenforce 0
sed -i.bak "s/SELINUX=enforcing/SELINUX=permissive/g">
  • 4.5、配置hosts文件

echo '192.168.8.51 ha-node1 ' >>/etc/hosts
echo '192.168.8.52 ha-node2 ' >>/etc/hosts
  • 4.6、配置ntp(10.239.44.128為ntp服務(wù)器)每個(gè)節(jié)點(diǎn)都需執(zhí)行

# chkconfig chronyd off
# chkconfig ntpd on  
# sed -i "/^server\ 3.centos.pool/a server\ 10.239.44.128 " /etc/ntp.conf 
# service ntpd start
# ntpq -p
  • 4.6、配置互信(每個(gè)節(jié)點(diǎn)都需執(zhí)行)

# ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
# ssh-copy-id ha-node1
# ssh-copy-id ha-node2
  • 4.7、安裝drbd

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# yum install -y kmod-drbd84 drbd84-utils
  • 4.8、配置文件介紹 

/etc/drbd.conf #主配置文件 
/etc/drbd.d/global_common.conf #全局配置文件 
a、/etc/drbd.conf說(shuō)明 
主配置文件中包含了全局配置文件及”drbd.d/”目錄下以.res結(jié)尾的文件

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
  • b、/etc/drbd.d/global_common.conf說(shuō)明

global {
    usage-count no;  #是否參加DRBD使用統(tǒng)計(jì),默認(rèn)為yes。官方統(tǒng)計(jì)drbd的裝機(jī)量
    # minor-count dialog-refresh disable-ip-verification
}
common {
    protocol C;      #使用DRBD的同步協(xié)議
    handlers {
        # These are EXAMPLE handlers only.
        # They may have severe implications,
        # like hard resetting the node under certain circumstances.
        # Be careful when chosing your poison.
        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/drbd/crm-fence-peer.sh";
        # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
        # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";

        # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
        # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
    }
    startup {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
    }
    options {
        # cpu-mask on-no-data-accessible
    }
    disk {
        on-io-error detach; #配置I/O錯(cuò)誤處理策略為分離
        # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes
        # disk-drain md-flushes resync-rate resync-after al-extents
        # c-plan-ahead c-delay-target c-fill-target c-max-rate
        # c-min-rate disk-timeout
    }
    net {

        # protocol timeout max-epoch-size max-buffers unplug-watermark
        # connect-int ping-int sndbuf-size rcvbuf-size ko-count
        # allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri
        # after-sb-1pri after-sb-2pri always-asbp rr-conflict
        # ping-timeout data-integrity-alg tcp-cork on-congestion
        # congestion-fill congestion-extents csums-alg verify-alg
        # use-rle
    }
    syncer {
        rate 1024M;    #設(shè)置主備節(jié)點(diǎn)同步時(shí)的網(wǎng)絡(luò)速率
    }
}
  • 注釋?zhuān)?on-io-error 策略可能為以下選項(xiàng)之一 

detach 分離:這是默認(rèn)和推薦的選項(xiàng),如果在節(jié)點(diǎn)上發(fā)生底層的硬盤(pán)I/O錯(cuò)誤,它會(huì)將設(shè)備運(yùn)行在Diskless無(wú)盤(pán)模式下 
pass_on:DRBD會(huì)將I/O錯(cuò)誤報(bào)告到上層,在主節(jié)點(diǎn)上,它會(huì)將其報(bào)告給掛載的文件系統(tǒng),但是在此節(jié)點(diǎn)上就往往忽略(因此此節(jié)點(diǎn)上沒(méi)有可以報(bào)告的上層) 
-local-in-error:調(diào)用本地磁盤(pán)I/O處理程序定義的命令;這需要有相應(yīng)的local-io-error調(diào)用的資源處理程序處理錯(cuò)誤的命令;這就給管理員有足夠自由的權(quán)力命令命令或是腳本調(diào)用local-io-error處理I/O錯(cuò)誤 
定義一個(gè)資源 
c、創(chuàng)建/etc/drbd.d/MySQL.res并寫(xiě)入

resource mysql { #資源名稱(chēng)
protocol C; #使用協(xié)議
meta-disk internal;
device /dev/drbd1; #DRBD設(shè)備名稱(chēng)
syncer {
verify-alg sha1;# 加密算法
}
net {
allow-two-primaries;
}
on ha-node1 {
disk /dev/data/mysql; drbd1使用的磁盤(pán)分區(qū)為"mysql"
address 192.168.8.51:7789; #設(shè)置DRBD監(jiān)聽(tīng)地址與端口
}
on ha-node2 {
disk /dev/data/mysql;
address 192.168.8.52:7789;
}
}
  • 4.9、將配置文件拷貝到node2上

# scp -rp  /etc/drbd.d/* ha-node2:/etc/drbd.d/
  • 4.10、啟用drbd

# drbdadm create-md mysql
# modprobe drbd
# drbdadm up mysql
# drbdadm -- --force primary mysql
  • 查看狀態(tài)

# cat /proc/drbd
  • 4.11、配置對(duì)端節(jié)點(diǎn)

ssh ha-node2 “drbdadm create-md mysql”
ssh ha-node2 “modprobe drbd”
ssh ha-node2 “drbdadm up mysql”
  • 4.12、格式化設(shè)備并掛載

# mkfs.xfs /dev/drbd1
# mount /dev/drbd1 /mnt
  • 五、相關(guān)配置操作 

6.1、資源的連接狀態(tài)詳細(xì)介紹 
如何查看資源連接狀態(tài)?

[root@ha-node1 ~]# drbdadm cstate mysql  #mysql為資源名稱(chēng)
WFConnection
  • 資源的連接狀態(tài);一個(gè)資源可能有以下連接狀態(tài)中的一種 

StandAlone 獨(dú)立的:網(wǎng)絡(luò)配置不可用;資源還沒(méi)有被連接或是被管理斷開(kāi)(使用 drbdadm disconnect 命令),或是由于出現(xiàn)認(rèn)證失敗或是腦裂的情況 
Disconnecting 斷開(kāi):斷開(kāi)只是臨時(shí)狀態(tài),下一個(gè)狀態(tài)是StandAlone獨(dú)立的 
Unconnected 懸空:是嘗試連接前的臨時(shí)狀態(tài),可能下一個(gè)狀態(tài)為WFconnection和WFReportParams 
Timeout 超時(shí):與對(duì)等節(jié)點(diǎn)連接超時(shí),也是臨時(shí)狀態(tài),下一個(gè)狀態(tài)為Unconected懸空 
BrokerPipe:與對(duì)等節(jié)點(diǎn)連接丟失,也是臨時(shí)狀態(tài),下一個(gè)狀態(tài)為Unconected懸空 
NetworkFailure:與對(duì)等節(jié)點(diǎn)推動(dòng)連接后的臨時(shí)狀態(tài),下一個(gè)狀態(tài)為Unconected懸空 
ProtocolError:與對(duì)等節(jié)點(diǎn)推動(dòng)連接后的臨時(shí)狀態(tài),下一個(gè)狀態(tài)為Unconected懸空 
TearDown 拆解:臨時(shí)狀態(tài),對(duì)等節(jié)點(diǎn)關(guān)閉,下一個(gè)狀態(tài)為Unconected懸空 
WFConnection:等待和對(duì)等節(jié)點(diǎn)建立網(wǎng)絡(luò)連接 
WFReportParams:已經(jīng)建立TCP連接,本節(jié)點(diǎn)等待從對(duì)等節(jié)點(diǎn)傳來(lái)的第一個(gè)網(wǎng)絡(luò)包 
Connected 連接:DRBD已經(jīng)建立連接,數(shù)據(jù)鏡像現(xiàn)在可用,節(jié)點(diǎn)處于正常狀態(tài) 
StartingSyncS:完全同步,有管理員發(fā)起的剛剛開(kāi)始同步,未來(lái)可能的狀態(tài)為SyncSource或PausedSyncS 
StartingSyncT:完全同步,有管理員發(fā)起的剛剛開(kāi)始同步,下一狀態(tài)為WFSyncUUID 
WFBitMapS:部分同步剛剛開(kāi)始,下一步可能的狀態(tài)為SyncSource或PausedSyncS 
WFBitMapT:部分同步剛剛開(kāi)始,下一步可能的狀態(tài)為WFSyncUUID 
WFSyncUUID:同步即將開(kāi)始,下一步可能的狀態(tài)為SyncTarget或PausedSyncT 
SyncSource:以本節(jié)點(diǎn)為同步源的同步正在進(jìn)行 
SyncTarget:以本節(jié)點(diǎn)為同步目標(biāo)的同步正在進(jìn)行 
PausedSyncS:以本地節(jié)點(diǎn)是一個(gè)持續(xù)同步的源,但是目前同步已經(jīng)暫停,可能是因?yàn)榱硗庖粋€(gè)同步正在進(jìn)行或是使用命令(drbdadm pause-sync)暫停了同步 
PausedSyncT:以本地節(jié)點(diǎn)為持續(xù)同步的目標(biāo),但是目前同步已經(jīng)暫停,這可以是因?yàn)榱硗庖粋€(gè)同步正在進(jìn)行或是使用命令(drbdadm pause-sync)暫停了同步 
VerifyS:以本地節(jié)點(diǎn)為驗(yàn)證源的線(xiàn)上設(shè)備驗(yàn)證正在執(zhí)行 
VerifyT:以本地節(jié)點(diǎn)為驗(yàn)證目標(biāo)的線(xiàn)上設(shè)備驗(yàn)證正在執(zhí)行 
5.2、資源角色 
查看資源角色命令

[root@ha-node ~]# drbdadm role  mysql
Secondary/Secondary
[root@ha-node1ha-node1 ~]# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2103412
  • 注釋?zhuān)?nbsp;

Parimary 主:資源目前為主,并且可能正在被讀取或?qū)懭?,如果不是雙主只會(huì)出現(xiàn)在兩個(gè)節(jié)點(diǎn)中的其中一個(gè)節(jié)點(diǎn)上 
Secondary 次:資源目前為次,正常接收對(duì)等節(jié)點(diǎn)的更新 
Unknown 未知:資源角色目前未知,本地的資源不會(huì)出現(xiàn)這種狀態(tài) 
5.3、硬盤(pán)狀態(tài) 
查看硬盤(pán)狀態(tài)命令

[root@ha-node1ha-node1 ~]# drbdadm dstate mysql
Inconsistent/Inconsistent
  • 本地和對(duì)等節(jié)點(diǎn)的硬盤(pán)有可能為下列狀態(tài)之一: 

Diskless 無(wú)盤(pán):本地沒(méi)有塊設(shè)備分配給DRBD使用,這表示沒(méi)有可用的設(shè)備,或者使用drbdadm命令手工分離或是底層的I/O錯(cuò)誤導(dǎo)致自動(dòng)分離 
Attaching:讀取無(wú)數(shù)據(jù)時(shí)候的瞬間狀態(tài) 
Failed 失敗:本地塊設(shè)備報(bào)告I/O錯(cuò)誤的下一個(gè)狀態(tài),其下一個(gè)狀態(tài)為Diskless無(wú)盤(pán) 
Negotiating:在已經(jīng)連接的DRBD設(shè)置進(jìn)行Attach讀取無(wú)數(shù)據(jù)前的瞬間狀態(tài) 
Inconsistent:數(shù)據(jù)是不一致的,在兩個(gè)節(jié)點(diǎn)上(初始的完全同步前)這種狀態(tài)出現(xiàn)后立即創(chuàng)建一個(gè)新的資源。此外,在同步期間(同步目標(biāo))在一個(gè)節(jié)點(diǎn)上出現(xiàn)這種狀態(tài) 
Outdated:數(shù)據(jù)資源是一致的,但是已經(jīng)過(guò)時(shí) 
DUnknown:當(dāng)對(duì)等節(jié)點(diǎn)網(wǎng)絡(luò)連接不可用時(shí)出現(xiàn)這種狀態(tài) 
Consistent:一個(gè)沒(méi)有連接的節(jié)點(diǎn)數(shù)據(jù)一致,當(dāng)建立連接時(shí),它決定數(shù)據(jù)是UpToDate或是Outdated 
UpToDate:一致的最新的數(shù)據(jù)狀態(tài),這個(gè)狀態(tài)為正常狀態(tài) 
5.4、啟用和禁用資源 
手動(dòng)啟用資源

手動(dòng)啟用資源
drbdadm up 
手動(dòng)禁用資源
drbdadm down 
  • 注釋?zhuān)?nbsp;

resource:為資源名稱(chēng);當(dāng)然也可以使用all表示[停用|啟用]所有資源 
5.5、升級(jí)和降級(jí)資源

升級(jí)資源
drbdadm primary 
降級(jí)資源
drbdadm secondary 
  • 注釋?zhuān)涸趩沃髂J较碌腄RBD,兩個(gè)節(jié)點(diǎn)同時(shí)處于連接狀態(tài),任何一個(gè)節(jié)點(diǎn)都可以在特定的時(shí)間內(nèi)變成主;但兩個(gè)節(jié)點(diǎn)中只能一為主,如果已經(jīng)有一個(gè)主,需先降級(jí)才可能升級(jí);在雙主模式下沒(méi)有這個(gè)限制 

5.6、初始化設(shè)備同步 
選擇一個(gè)初始同步源;如果是新初始化的或是空盤(pán),這個(gè)選擇可以是任意的,但是如果其中的一個(gè)節(jié)點(diǎn)已經(jīng)在使用并包含有用的數(shù)據(jù),那么選擇同步源是至關(guān)重要的;如果選錯(cuò)了初始化同步方向,就會(huì)造成數(shù)據(jù)丟失,因此需要十分小心 
啟動(dòng)初始化完全同步,這一步只能在初始化資源配置的一個(gè)節(jié)點(diǎn)上進(jìn)行,并作為同步源選擇的節(jié)點(diǎn)上;命令如下:

[root@ha-node1 ~]# drbdadm -- --overwrite-data-of-peer primary mysql
[root@ha-node1 ~]# cat /proc/drbd     #查看同步進(jìn)度
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:1897624 nr:0 dw:0 dr:1901216 al:0 bm:115 lo:0 pe:3 ua:3 ap:0 ep:1 wo:f oos:207988
    [=================>..] synced: 90.3% (207988/2103412)K
    finish: 0:00:07 speed: 26,792 (27,076) K/sec
######當(dāng)同步完成時(shí)如以下?tīng)顟B(tài)
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:2103412 nr:0 dw:0 dr:2104084 al:0 bm:129 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
  • 注釋?zhuān)?drbd:為資源名稱(chēng) 

查看同步進(jìn)度也可使用以下命令

drbd-overview
  • 5.7、創(chuàng)建文件系統(tǒng) 

文件系統(tǒng)只能掛載在主(Primary)節(jié)點(diǎn)上,因此在設(shè)置好主節(jié)點(diǎn)后才可以對(duì)DRBD設(shè)備進(jìn)行格式化操作 
格式化文件系統(tǒng)

[root@ha-node1 ~]# mkfs.ext4 /dev/drbd1
  • 掛載文件系統(tǒng)

[root@ha-node1 ~]# mount /dev/drbd1 /mnt/
  • 查看掛載

[root@ha-node1 ~]# mount |grep drbd1
/dev/drbd1 on /mnt type ext4 (rw)
  • 注釋?zhuān)?nbsp;

“/dev/drbd1”為資源中定義已定義的資源名稱(chēng) 
查看DRBD狀態(tài)

[root@ha-node1 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r-----
  • 注釋?zhuān)?nbsp;

Primary:當(dāng)前節(jié)點(diǎn)為主;在前面為當(dāng)前節(jié)點(diǎn) 
Secondary:備用節(jié)點(diǎn)為次 
5.8、切換主備節(jié)點(diǎn) 
先把當(dāng)前主節(jié)點(diǎn)降級(jí)為次

[root@ha-node1 ~]# drbdadm secondary mysql
  • 查看DRBD狀態(tài)

[root@ha-node1 ~]# drbd-overview
  0:drbd/0  Connected Secondary/Secondary UpToDate/UpToDate C r-----
  • 在HA-NODE2節(jié)點(diǎn)升級(jí)

[root@ha-node2 ~]# drbdadm primary mysql
  • 查看DRBD狀態(tài)

[root@ha-node2 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r-----
  • 5.9、掛載設(shè)備并驗(yàn)證文件是否存在

[root@ha-node2 ~]# mount /dev/drbd1 /mnt/
[root@ha-node2 ~]# ls /mnt/
lost+found  test
  • 六、DRBD腦裂的模擬及修復(fù) 

注釋?zhuān)何覀冞€接著上面的實(shí)驗(yàn)繼續(xù)進(jìn)行,現(xiàn)在HA-NODE2為主節(jié)點(diǎn)而HA-NODE1為備節(jié)點(diǎn) 
6.1、斷開(kāi)主(parmary)節(jié)點(diǎn); 
關(guān)機(jī)、斷開(kāi)網(wǎng)絡(luò)或重新配置其他的IP都可以;這里選擇的是斷開(kāi)網(wǎng)絡(luò) 
6.2、查看兩節(jié)點(diǎn)狀態(tài)

[root@ha-node2 ~]# drbd-overview
  0:drbd/0  WFConnection Primary/Unknown UpToDate/DUnknown C r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@ha-node1 ~]# drbd-overview
  0:drbd/0  StandAlone Secondary/Unknown UpToDate/DUnknown r-----
  • 由上可以看到兩個(gè)節(jié)點(diǎn)已經(jīng)無(wú)法通信;HA-NODE2為主節(jié)點(diǎn),HA-NODE1為備節(jié)點(diǎn) 

6.3、將HA-NODE1節(jié)點(diǎn)升級(jí)為主(primary)節(jié)點(diǎn)并掛載資源

[root@ha-node1 ~]# drbdadm primary mysql
[root@ha-node1 ~]# drbd-overview
  0:drbd/0  StandAlone Primary/Unknown UpToDate/DUnknown r-----
[root@ha-node1 ~]# mount /dev/drbd1 /mnt/
[root@ha-node1 ~]# mount | grep drbd1
/dev/drbd1 on /mnt type ext4 (rw)
  • 6.4、假如原來(lái)的主(primary)節(jié)點(diǎn)修復(fù)好重新上線(xiàn)了,這時(shí)出現(xiàn)了腦裂情況

[root@ha-node2 ~]# tail -f /var/log/messages
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: Terminating drbd_a_drbd
Sep 19 01:56:06 ha-node2 kernel: block drbd1: helper command: /sbin/drbdadm initial-split-brain minor-0 exit code 0 (0x0)
Sep 19 01:56:06 ha-node2 kernel: block drbd1: Split-Brain detected but unresolved, dropping connection!
Sep 19 01:56:06 ha-node2 kernel: block drbd1: helper command: /sbin/drbdadm split-brain minor-0
Sep 19 01:56:06 ha-node2 kernel: block drbd1: helper command: /sbin/drbdadm split-brain minor-0 exit code 0 (0x0)
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: conn( NetworkFailure -> Disconnecting )
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: error receiving ReportState, e: -5 l: 0!
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: Connection closed
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: conn( Disconnecting -> StandAlone )
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: receiver terminated
Sep 19 01:56:06 ha-node2 kernel: d-con drbd: Terminating drbd_r_drbd
Sep 19 01:56:18 ha-node2 kernel: block drbd1: role( Primary -> Secondary )
  • 6.5、再次查看兩節(jié)點(diǎn)的狀態(tài)

[root@ha-node1 ~]# drbdadm role drbd
Primary/Unknown
[root@ha-node2 ~]# drbdadm role mysql
Primary/Unknown
  • 6.6、查看HA-NODE1與HA-NODE2連接狀態(tài)

root@ha-node1 ~]# drbd-overview
  0:mysql/0  StandAlone Primary/Unknown UpToDate/DUnknown r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@ha-node2 ~]# drbd-overview
  0:mysql/0  WFConnection Primary/Unknown UpToDate/DUnknown C r----- /mnt ext4 2.0G 68M 1.9G 4%
  • 由上可見(jiàn),狀態(tài)為StandAlone時(shí),主備節(jié)點(diǎn)是不會(huì)通信的 

6.7、在HA-NODE1備用節(jié)點(diǎn)處理辦法

[root@ha-node1 ~]# umount /mnt/
[root@ha-node1 ~]# drbdadm disconnect drbd
drbd: Failure: (162) Invalid configuration request
additional info from kernel:
unknown connection
Command 'drbdsetup disconnect ipv4:192.168.137.225:7789 ipv4:192.168.137.222:7789' terminated with exit code 10
[root@ha-node1 ~]# drbdadm secondary drbd
[root@ha-node1 ~]# drbd-overview
  0:drbd/0  StandAlone Secondary/Unknown UpToDate/DUnknown r-----
[root@ha-node1 ~]# drbdadm connect --discard-my-data drbd
  • 執(zhí)行完以上三步后,你查看會(huì)發(fā)現(xiàn)還是不可用

[root@ha-node1 ~]# drbd-overview
  0:drbd/0  WFConnection Secondary/Unknown UpToDate/DUnknown C r-----
  • 6.8、需要在HA-NODE2節(jié)點(diǎn)上重新建立連接資源

[root@ha-node2 ~]# drbdadm connect drbd
  • 查看節(jié)點(diǎn)連接狀態(tài)

[root@ha-node2 ~]# drbd-overview
  0:mysql/0  Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@ha-node1 ~]# drbd-overview
  0:mysql/0  Connected Secondary/Primary UpToDate/UpToDate C r-----

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“CentOS7.0中DRBD怎么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!


網(wǎng)站欄目:CentOS7.0中DRBD怎么用
本文URL:http://weahome.cn/article/gdhghe.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部