drbd-utils 패키지 안에는 drbdmanage가 포함되어 있지 않아서 git를 통한 개별 소스 빌드가 필요
drbdmanage 빌드에는 일반 업무 서버에는 기본 설치가 아닌 개발 패키지가 몇몇 포함 되어 있어서 사전 설치가 필요
※ 주의사항
- drbdmanage명령은 python2이상이 필요
- kernel-headers 패키지 및 일부 개발 패키지 필요
# yum groupinstall "Development Tools" # git clone --recursive http: //git.drbd.org/drbdmanage.git # make # make install |
O/S : CentOS 7 x64
DRBD : 9.0
DRBD Utils : 8.9.3
|
# yum install gcc libxslt kernel-headers kernel-devel-`uname -r` make wget rpm-build flex
|
# cd /[소스 다운로드 디렉토리]
------ 소스 파일 압축 풀기 ---------
# tar xvfz drbd-utils-8.9.3.tar.gz
# tar xvfz drbd-9.0.0.tar.gz
|
# cd /drbd9/drbd-utils-8.9.3
# ./configure --prefix=/usr --localstatedir=/var --with-initdir=/etc/init.d/ --sbindir=/usr/sbin/ --sysconfdir=/etc
# make
# make install
|
# cd /drbd9/drbd-9.0.0
# make
# make install
|
# service drbd start
|
추가:
drbd9 버전 부터는 4노드 이상의 복수 노드에 대해서 stacked 리소스의 구성 없이 N:N 구성으로 복제 리소스를 구성 할 수 있다.
|
global {
usage-count no;
disable-ip-verification;
}
common {
startup {
wfc-timeout 1;
}
}
resource r0 {
protocol B;
on hostA {
address 10.10.10.1:7788; ----------------> 1
disk /dev/sdb1;
flexible-meta-disk internal;
device /dev/drbd0;
}
on hostB{
address 10.10.10.2:7788;
disk /dev/sdb1;
flexible-meta-disk internal;
device /dev/drbd0;
}
}
resource r0_1 {
protocol A;
meta-disk internal;
stacked-on-top-of r0 {
device /dev/drbd10; ----------------> 2
address 10.10.10.1:7789;
}
on hostC {
device /dev/drbd10;
disk /dev/sdb1;
address 10.10.10.3:7789;
meta-disk internal; ----------------> 3
}
}
}
|
추가:
실제 구성에서는 호스트 B가 primary 가 될경우 10.10.10.1이라는 주소가 없기 때문에 데이터를 보낼 수 없다.
다라서 Stacked된 대상 리소스 ( 여기서는 r0) 의 리소스는 완전히 분리되어야 하며
호스트 A와 호스트 B에서 동시에 사용할수 있는 가상 IP(VIP) 여야 한다.
|
추가:
일반 복제 리소스 r0와 stacked리소스 r0_1 에 대해 두번 풀싱크를 별도로 해줘야 한다.
또한 Stacked 리소스가 primary가 되기 위해서는 r0리소스가 primary여야 한다.
|
[root@left ~]# fdisk -l
…........................... (middle part Omission) ...............
Disk /dev/sdc: 268 MB, 268435456 bytes
64 heads, 32 sectors/track, 256 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 256 262128 83 Linux
[root@left ~]#
|
kmod-drbd83-8.3.13-1.el5.centos.x86_64.rpm
drbd83-8.3.13-2.el5.centos.x86_64.rpm
|
kernel-2.6.18-308.el5.x86_64.rpm
|
[root@right Download]# rpm -ivh drbd83-8.3.13-2.el5.centos.x86_64.rpm
warning: drbd83-8.3.13-2.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:drbd83 ########################################### [100%]
[root@right Download]# rpm -ivh kmod-drbd83-8.3.13-1.el5.centos.x86_64.rpm
warning: kmod-drbd83-8.3.13-1.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:kmod-drbd83 ########################################### [100%]
|
resource r0
{
protocol C;
on left
{
device /dev/drbd1;
disk /dev/sdc1;
address 10.10.10.101:7789;
meta-disk internal;
}
on right
{
device /dev/drbd1;
disk /dev/sdc1;
address 10.10.10.102:7789;
meta-disk internal;
}
}
|
[root@right ~]# drbdadm create-md r0
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
--== Creating metadata ==--
As with nodes, we count the total number of devices mirrored by DRBD at
at http://usage.drbd.org.
The counter works anonymously. It creates a random number to identify
the device and sends that random number, along with
DRBD's version number, to usage.drbd.org.
http://usage.drbd.org/cgi-bin/insert_usage.pl?nu=7994833865736912708&ru=5179791256307207409&rs=268419072
* If you wish to opt out entirely, simply enter 'no'.
* To continue, just press [RETURN]
success
|
[root@right ~]# service drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ]..........
***************************************************************
DRBD's startup script waits for the peer node(s) to appear.
- In case this node was already a degraded cluster before the
reboot the timeout is 120 seconds. [degr-wfc-timeout]
- If the peer was available before the reboot the timeout will
expire after 0 seconds. [wfc-timeout]
(These values are for resource 'r0'; 0 sec -> wait forever)
To abort waiting enter 'yes' [ 20]:
|
[root@left ~]# drbdadm -- --overwrite-data-of-peer primary all
|
[root@left ~]# drbdadm role all
Primary/Secondary
[root@left ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by mockbuild@builder10.centos.org, 2012-05-07 11:56:36
^[[A^[[Am:res cs ro ds p mounted fstype
1:r0 Connected Primary/Secondary UpToDate/UpToDate C
[root@left ~]# cat /proc/drbd
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by mockbuild@builder10.centos.org, 2012-05-07 11:56:36
1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:0 nr:16 dw:16 dr:0 al:0 bm:1 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
[root@left ~]#
|