1. 程式人生 > >在Linux上配置DRBD部署

在Linux上配置DRBD部署

start build 分區 出現 ack sector ice sbin bytes

drbd 工作原理
DRBD是一種塊設備,能夠被用於高可用(HA)之中.它相似於一個網絡RAID-1功能.當你將數據寫入本地 文件系統時,數據還將會被發送到網絡中還有一臺主機上.以同樣的形式記錄在一個文件系統中。

本地(主節點)與遠程主機(備節點)的數據能夠保證實時同步.當本地系統出現問題時,遠程主機上還會 保留有一份同樣的數據,能夠繼續使用.在高可用(HA)中使用DRBD功能,能夠取代使用一個共享盤陣.
由於數據同一時候存在於本地主機和遠程主機上,切換時,遠程主機僅僅要使用它上面的那份備份數據,
就能夠繼續進行服務了。
兩臺機器的環境例如以下:
hostname:srv5.localdomain
192.168.8.5
hostname:srv6.localdomain
192.168.8.6

準備環境

在兩臺機器上各新加一塊磁盤
fdisk -l 列出全部的磁盤和分區的情況
在實驗中能夠看到新加的磁盤還沒有分區
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

對新加的磁盤分區
[[email protected]

/* */ ~]# fdisk /dev/sdb

Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l

First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
載入磁盤信息
partprobe /dev/sdb
cat /proc/partions

安裝和配置DRBD

1。兩臺機器上分別安裝drbd
yum -y install kmod-drbd83 drbd83
檢查是否成功安裝
[[email protected]
/* */ yum.repos.d]# modprobe -l | grep -i drbd
/lib/modules/2.6.18-53.el5/weak-updates/drbd83/drbd.ko
安裝完畢後再/sbin 文件夾下有drbd的命令文件。 在/etc/init.d/文件夾下有drbd啟動腳本
[[email protected] yum.repos.d]# ls /sbin/drbd*
/sbin/drbdadm /sbin/drbdmeta /sbin/drbdsetup

2,配置drbd
2.1,在兩臺機器的hosts文件裏加入例如以下的內容:
192.168.8.5 srv5.localdomain
192.168.8.6 srv6.localdomain

2.2,DRBD運行的時候要讀取/etc/drbd.conf文件,
將文件的內容保存為例如以下內容:
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

改動global_common.conf文件內容例如以下:

global {
	usage-count no;
}
common {
	protocol C;
	startup {
		wfc-timeout 15;  
		degr-wfc-timeout 15;  
		outdated-wfc-timeout 15;  
	}
	disk {
		on-io-error detach;  
		fencing resource-only;  
	}
	net {
		cram-hmac-alg sha1;  
		shared-secret "123456";   
	}
	syncer {
		rate 100M;  
	}
}
創建一個xserver.res文件內容例如以下:
resource xserver {   
	meta-disk internal;   
	device /dev/drbd0; #device指定的參數最後必須有一個數字,用於global的minor-count,
	#否則會報錯。device指定drbd應用層設備。 
	on srv5.localdomain{    #註意:drbd配置文件裏。機器名大寫和小寫敏感。
		address 192.168.8.5:7789;   
		disk /dev/sdb5;    
	}   
	on srv6.localdomain {   
		address 192.168.8.6:7789;   
		disk /dev/sdb5;  
	}   
}


2.3,如果上面的配置是在92.168.8.5上做的。拷貝上面配置好的3個文件到92.168.8.6上
scp /etc/drbd.conf 192.168.8.6:/etc/drbd.conf
scp /etc/drbd.d/* 192.168.8.6:/etc/drbd.d/

3,在兩臺機器上創建drbd元數據信息:
[[email protected] ~]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.

4。啟動服務。
4.1,在主節點92.168.8.5上
service drbd start
在備份節點92.168.8.6上
service drbd start
在兩臺機器上用以下的命令drbd-overview或者cat /proc/drbd查看,發現都是Secondary 備份狀態
[[email protected] ~]# drbd-overview
0:xserver Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[[email protected] ~]# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by [email protected], 2013-03-27 16:04:08
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:b oos:1044092

4.2,在主節點92.168.8.5上運行以下的命令讓其成為主節點
drbdadm -- --overwrite-data-of-peer primary all
然後再看狀態:
[[email protected] ~]# drbd-overview
0:xserver SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
[=============>......] sync‘ed: 70.6% (310268/1044092)K
[[email protected] ~]# drbd-overview
0:xserver SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
[================>...] sync‘ed: 89.1% (117372/1044092)K
[[email protected] ~]# drbd-overview
0:xserver Connected Primary/Secondary UpToDate/UpToDate C r-----

4.3,將/dev/drbd0格式化並掛載
在主節點192.168.8.5上運行以下的命令
mkfs.ext3 /dev/drbd0
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
4.4,測試同步
在主節點192.168.8.5上運行以下的命令
cd /xserver-storage
echo "a file created in server5" > testfile
在備份節點192.168.8.6上運行以下的命令
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
#mount 會出錯,由於mount僅僅能在Primary一端使用
在主節點192.168.8.5上運行以下的命令變成備份節點
umount /xserver-storage
drbdadm secondary all
在備份節點192.168.8.6上運行以下的命令變為主節點,能夠看到192.168.8.5同步過來的內容
drbdadm primary all
mount /dev/drbd0 /xserver-storage
less /xserver-storage/testfile
能夠查看到文件的內容為"a file created in server5"
在192.168.8.6新建一個文件
echo "a file created in server6" > testfile2
再將192.168.8.5變為主節點後mount能夠看到testfile2的內容也同步了。

在Linux上配置DRBD部署