linux DRBD編譯安裝與配置方法
DRBD介紹
DRBD是一個(gè)用軟件實(shí)現(xiàn)的、無(wú)共享的、服務(wù)器之間鏡像塊設(shè)備內(nèi)容的存儲(chǔ)復(fù)制解決方案。 DRBD Logo數(shù)據(jù)鏡像:實(shí)時(shí)、透明、同步(所有服務(wù)器都成功后返回)、異步(本地服務(wù)器成功后返回)。DBRD的核心功能通過(guò)Linux的內(nèi)核實(shí)現(xiàn),最接近系統(tǒng)的IO棧,但它不能神奇地添加上層的功能比如檢測(cè)到EXT3文件系統(tǒng)的崩潰。DBRD的位置處于文件系統(tǒng)以下,比文件系統(tǒng)更加靠近操作系統(tǒng)內(nèi)核及IO棧。
DRBD編譯安裝
安裝所需依賴:
yum -y install gcc kernel-devel kernel-headers flex
開始安裝drbd,下載地址:http://oss.linbit.com/drbd/
安裝用戶空間工具:
cd /tmp wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz tar xzf drbd-8.4.1.tar.gz cd drbd-8.4.1 ./configure --prefix=/usr/local/drbd --with-km make KDIR=/usr/src/kernels/2.6.18-274.18.1.el5-i686/ make install mkdir -p /usr/local/drbd/var/run/drbd cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d chkconfig --add drbd chkconfig drbd on
安裝drbd模塊:
cd drbd make clean make KDIR=/usr/src/kernels/2.6.18-274.18.1.el5-i686/ cp drbd.ko /lib/modules/`uname -r`/kernel/lib/ depmod
注:usr/src/kernels/2.6.18-274.18.1.el5-i686/這個(gè)內(nèi)核源碼樹路徑需要根據(jù)自己的系統(tǒng)修改。
DRBD配置
建立分區(qū)
假如現(xiàn)在有第二塊硬盤hdb,兩個(gè)node都要分區(qū)。
#fdisk /dev/hdb //準(zhǔn)備為 hdb 建立分區(qū)
The number of cylinders for this disk is set to 20805.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n //鍵入 n 表示要建立分區(qū)
Command action
e extended
p primary partition (1-4)
p //鍵入 p 表示建立主要分區(qū)
Partition number (1-4): 1 //鍵入 1 為此主要分區(qū)代號(hào)
First cylinder (1-20805, default 1): //開始磁柱值,按下 enter 即可
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-20805, default 20805): //結(jié)束磁柱值,按下 enter 即可
Using default value 20805
Command (m for help): w //鍵入 w 表示確定執(zhí)行剛才設(shè)定
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@node1 yum.repos.d]# partprobe //使剛才的 partition table 變更生效
建立分區(qū)完成后使用指令 fdisk -l 確定 partition talbe 狀態(tài)
#fdisk -l
Disk /dev/hda: 21.4 GB, 21474754560 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 2610 20860402+ 8e Linux LVM
Disk /dev/hdb: 10.7 GB, 10737377280 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 20805 10485688+ 83 Linux
建立分區(qū)完成后請(qǐng)建立 /db 目錄。 (Node1 及 Node2 都必須建立)
#mkdir /db
建立Drbd配置文件
主要定義兩塊global和resource。
vi /usr/local/drbd/etc/drbd.conf
寫入:
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
vi /usr/local/drbd/etc/drbd.d/global_common.conf
寫入
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
vi /usr/local/drbd/etc/drbd.d/r0.res
寫入
resource r0 {
on node1 {
device /dev/drbd1;
disk /dev/hdb1;
address 192.168.1.101:7789;
meta-disk internal;
}
on node2 {
device /dev/drbd1;
disk /dev/hdb1;
address 192.168.1.103:7789;
meta-disk internal;
}
設(shè)置Hostname
根據(jù)上面的resource配置文件,需要對(duì)192.168.1.101和192.168.1.103分別設(shè)置hostname為node1和node2,設(shè)置方法如下:
vi /etc/sysconfig/network 修改HOSTNAME為node1
vi /etc/hosts 寫入 192.168.1.101 node1 192.168.1.103 node2
使node1 hostnmae臨時(shí)生效
hostname node1
node2機(jī)器設(shè)置類似。
設(shè)置Resource
以下操作需要在node1和node2操作。
#modprobe drbd //載入 drbd 模塊 #lsmod|grep drbd //確認(rèn) drbd 模塊是否載入 drbd 228528 0 #dd if=/dev/zero of=/dev/hdb1 bs=1M count=100 //把一些資料塞到 hdb 內(nèi) (否則 create-md 時(shí)有可能會(huì)出現(xiàn)錯(cuò)誤) #drbdadm create-md r0 //建立 drbd resource #drbdadm up r0 //啟動(dòng) resource r0
查看node1和node2的狀態(tài)應(yīng)該類似下面的:
cat /proc/drbd version: 8.4.1 (api:1/proto:86-100) GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2012-02-12 06:05:36 m:res cs ro ds p mounted fstype 0:r0 Connected Secondary/Secondary Inconsistent/Inconsistent C
表明現(xiàn)在已經(jīng)啟動(dòng)服務(wù),但還沒有設(shè)置同步(即需要設(shè)置Primary Node)
設(shè)置Primary Node
以下操作僅在node1執(zhí)行。
設(shè)置node1為primary node:
drbdadm primary --force r0
drbdadm primary --force r0
再次查看node1的狀態(tài):
#cat /proc/drbd
version: 8.4.1 (api:1/proto:86-100)
GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2012-02-12 06:47:37
1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:52892 nr:0 dw:0 dr:52892 al:0 bm:10 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
我們看到狀態(tài)已經(jīng)變成Primary/Secondary,即設(shè)置primary node成功。
創(chuàng)建DRBD文件系統(tǒng)
以下操作僅在node1執(zhí)行。
上面已經(jīng)完成了/dev/drbd1的初始化,現(xiàn)在來(lái)把/dev/drbd1格式化成ext3格式的文件系統(tǒng)。
#mkfs.ext3 /dev/drbd1
然后將/dev/drbd1掛載到之前創(chuàng)建的/db目錄。
#mount /dev/drbd1 /db
現(xiàn)在你只要把數(shù)據(jù)寫入/db目錄,drbd即會(huì)立刻把數(shù)據(jù)同步到備機(jī)192.168.1.103的/dev/hdb1分區(qū)上。
Drbd同步測(cè)試
當(dāng)在備機(jī)node2啟動(dòng)drbd時(shí),它是無(wú)法掛載/dev/hdb1分區(qū)的,我們可以嘗試寫些數(shù)據(jù)到node1的目錄/db上,然后停止node2的drbd。
drbdadm down r0
之后就可以把node2的/dev/hdb1掛載到目錄/db
mount -t ext3 /dev/hdb1 /db
我們就可以查看node2的/db目錄是否有node1的數(shù)據(jù)。
手動(dòng)切換主備機(jī)
我們可以把node1改變?yōu)閭錂C(jī),而node2改變?yōu)橹鳈C(jī)。
在node1上操作:
umount /dev/drbd1 drbdadm secondary r0
在node2上操作:
drbdadm primary r0
此時(shí)應(yīng)該已經(jīng)切換成功。
相關(guān)文章

集成系統(tǒng)級(jí)Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內(nèi)測(cè)成果,在 AI 能力、內(nèi)核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進(jìn)行了更新2026-04-13
又一代老硬件退場(chǎng)! Linux 內(nèi)核正式放棄Intel 486 CPU
在過(guò)去的幾十年間,CPU 的架構(gòu)已經(jīng)經(jīng)歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個(gè),當(dāng)前,i486 的CPU處理器已經(jīng)夠老,從 Linux 7.1 開始將不再有對(duì)2026-04-09
趕緊收藏! 全網(wǎng)最全 Linux 命令總結(jié)
我把 Linux 中最常用、最實(shí)用、最常被問到的命令按照實(shí)際使用場(chǎng)景分類整理,方便你快速查閱和記憶,內(nèi)容覆蓋日常運(yùn)維、開發(fā)調(diào)試、性能分析、文件處理、網(wǎng)絡(luò)、安全、系統(tǒng)管2026-04-08
一分鐘內(nèi)檢查L(zhǎng)inux服務(wù)器性能? 9個(gè)性能檢測(cè)常用的基本命令
今天我們來(lái)看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機(jī)器的負(fù)載情況,詳細(xì)請(qǐng)看下文介紹2026-03-18
從零基礎(chǔ)到精通! 適合高級(jí)用戶的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領(lǐng)域靈活性和可定制性的基石,提供了大量滿足不同用戶需求的發(fā)行版,今天分享適合高級(jí)用戶的15款Linux發(fā)行版2026-03-10
開箱即用? 這4個(gè)高手級(jí)Linux發(fā)行版遠(yuǎn)沒你想象的那么安全易用
如果你正在糾結(jié)用哪個(gè)發(fā)行版?零基礎(chǔ)新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進(jìn)階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個(gè)SSH客戶端,今天整理找到的8 款 SSH / 終端工具,從免費(fèi)開源到企業(yè)級(jí)商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對(duì)比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶,即高級(jí)用戶root,普通用戶,高級(jí)用戶root可以在系統(tǒng)中做任何事情,普通用戶僅可在Linux系統(tǒng)中做有限的事情,下面我們就來(lái)看看切換方法2026-02-28
揭秘當(dāng)前登錄用戶的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個(gè)簡(jiǎn)單但強(qiáng)大的工具,它能幫助我們輕松獲取當(dāng)前登錄用戶的用戶名,今天,我們就來(lái)深入探索一下這個(gè)命令的工作原理、使用方法和最佳實(shí)踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關(guān)系緩存在本地的機(jī)制,可以加快域名解析速度,并減輕 DNS 服務(wù)器的負(fù)載2026-02-26



