0. 시스템 정보
A] icluster.kobic.kr[10.1.1.1]
B] icluster2.kobic.kr[10.1.2.1]
1. DRBD 설치
1.1 패키지 설치
A,B] # yum -y install gcc make automake autoconf flex rpm-build kernel-devel
A,B] # cd /usr/local/src/
A,B] # wget http://oss.linbit.com/drbd/drbd-latest.tar.gz
A,B] # tar zxvf drbd-latest.tar.gz
A,B] # cd drbd-8.4.2
A,B] # mkdir -p /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
A,B] # ./configure
A,B] # make rpm
A,B] # make km-rpm
A,B] # cd /root/rpmbuild/RPMS/x86_64
A,B] # rpm -Uvh drbd-utils-8.3.11-1.el6.x86_64.rpm drbd-km-2.6.32_220.13.1.el6.x86_64-8.3.11-1.el6.x86_64.rpm
1.2 YUM 설치
# yum install drbd83 kmod-drbd83
2. LVM 파티션 생성
A,B] # fdisk /dev/sdb
n->p->Partition number (1-4):1->t->Hex code (type L to list codes): 8e->w
A,B] # pvcreate /dev/sdb1
Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created
A,B] # vgcreate vg_opt /dev/sdb1
Volume group "vg_opt" successfully created
A,B] # lvcreate -l 100%FREE -n lv_opt vg_opt
Logical volume "lv_opt" created
3. DRBD 설정
A,B] # vi /etc/drbd.d/global_common.conf
disk {
on-io-error detach;
}
syncer {
rate 300M;
}
A,B] # vi /etc/drbd.d/opt.res
resource opt { ### 리소스 이름 정의
protocol A; ### protocol A : Active에 쓰기 후 Backup으로 데이터 전송완료(성능)
### protocol B : Active에 쓰기 후 Backup으로 데이터 전송 후 Backup에서 수신완료
### protocol C : Active, Backup 모두 쓰기 완료(신뢰성)
device /dev/drbd0; ### DRBD 논리 블록 디바이스 정의
disk /dev/vg_opt/lv_opt; ### 물리 디바이스 지정
meta-disk internal; ### 메타 데이터를 저장 할 디바이스 지정
### internal:/dev/vg_opt/lv_opt에 128MB 메타 정보 저장용으로 할당
on icluster.kobic.kr { ### 호스트 리소스 정의, 호스트명 입력
address 10.1.1.1:7788; ### IP 및 포트번호 지정
}
on icluster2.kobic.kr {
address 10.1.2.1:7788;
}
}
4. DRBD 서비스 활성화
A,B] # modprobe drbd
A,B] # drbdadm create-md opt ### 메타데이터 저장소 생성
A,B] # /etc/rc.d/init.d/drbd start
A,B] # chkconfig drbd on
A,B] # echo "/sbin/modprobe drbd" >> /etc/rc.local
A] # drbdsetup /dev/drbd0 primary -o ### primary로 변경
A] # mkfs -t ext4 /dev/drbd0
A] # cd /opt
A] # tar zcvfp opt.tgz *
A] # mv opt.tgz /tmp
A] # mount -t ext4 /dev/drbd0 /opt
A] # cd /opt
A] # tar zxvfp /tmp/opt.tgz
5. 확인
A] # cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@icluster.kobic.kr, 2012-07-05 02:29:58
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:10199920 nr:0 dw:2366956 dr:10209145 al:0 bm:622 lo:1 pe:13 ua:64 ap:0 ep:1 wo:b oos:10764380
[========>...........] sync'ed: 48.7% (10512/20468)M
finish: 0:01:02 speed: 171,712 (169,968) K/sec
B] # cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@icluster2.kobic.kr, 2012-07-05 02:54:42
0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
ns:0 nr:8850048 dw:8850048 dr:0 al:0 bm:539 lo:2 pe:7494 ua:0 ap:0 ep:1 wo:b oos:12112604
[=======>............] sync'ed: 42.3% (11828/20468)M
finish: 0:01:32 speed: 130,452 (163,888) want: 307,200 K/sec
6. DRBD 장애처리
- DRBD는 마스터 문제 발생 시 자동적으로 백업이 서비스가 되지 않는다.
1) 수동으로 전환하기
1.1) A를 secondary로 전환
A # umount /opt
A # drbdadm secondary opt ### 모든 장치 secondary로 전환 : drbdadm secondary all
A # cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@icluster.kobic.kr, 2012-07-05 02:29:58
0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate 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:0
1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:21512412 nr:0 dw:3168852 dr:20706830 al:235 bm:1280 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:
B # drbdadm primary opt ### opt 장치를 primary로 전환
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@icluster2.kobic.kr, 2012-07-05 02:54:42
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:0 nr:0 dw:0 dr:672 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:21512412 dw:21512412 dr:0 al:0 bm:1280 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
B # mount /dev/drbd0 /opt
7. 기타
※ 참조 : 서버/인프라를 지탱하는 기술
최근댓글