월간 인기 게시물

게시물 120건
   
DRBD(Distributed Replicated Block Device) 설치 및 설정
글쓴이 : 최고관리자 날짜 : 2010-01-25 (월) 10:49 조회 : 13879
글주소 :
                          

참고 :  http://www.drbd.org

기본환경 : - 리눅스 서버 2대 (CentOS release 5.4 / 2.6.18-164.11.1.el5xen  x86_64)


아래와 같이 RedHat 계열에서는 CentOS 파일을 이용하라고 했지만... Fedora Core8_386 버전에서는 먼지모르는데 자꾸 에러가 뜬다.
그냥 깔끔히 CentOS 로 밀고 설정을 잡았다.

RedHat

RedHat does not provide DRBD® packages for RHEL although such are available in the → CentOS extras repository. Since CentOS is a binary compatible clone of RedHat, you can use the CentOS packages on RedHat as well.

1. RPM 설치
Centos 에서는 yum 이 지원을 한다.
http://mirror.centos.org/centos/5/extras/x86_64/RPMS/

[root@localhost drbd]# yum install *-drbd83*

[root@localhost drbd]# rpm -qa |grep drbd
kmod-drbd83-8.3.2-6.el5_3
drbd83-8.3.2-6.el5_3
kmod-drbd83-xen-8.3.2-6.el5_3


2. 환경설정 (/etc/drbd.conf)
 - 설정파일은 /etc/drbd.conf 이며 기본파일에 아래 내용을 추가해주면 된다.
 - /dev/hda5  와 /dev/sda9 파티션을 동기화 시킬것이다.

# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
global { usage-count yes; }
common { syncer { rate 10M; } }
resource r0 {
        protocol C;
        disk { on-io-error detach; }
        syncer {
        }

        on node1 {                                     # Master 서버
                device /dev/drbd0;
                disk /dev/hda5;                      
                address 218.236.115.225:7791;
                meta-disk internal;
                }

        on node2 {                                      # Secondary 서버
                device /dev/drbd0;
                disk /dev/sda9;
                address 218.236.115.226:7791;
                meta-disk internal;
                }
        }


 - Hostname 변경

[root@node1 ~]# cat /etc/hosts

218.236.115.225         node1
218.236.115.226         node2


- Meta Data 를 생성한다. (Master /  Secondary 서버 두대에서 모두진행)

Meta Data ???
데이터에 관한 구조화된 데이터로, 다른 데이터를 설명해 주는 데이터로 속성정보라고도 한다.
대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터이다. 여기에는 콘텐츠의 위치와 내용, 작성자에 관한 정보, 권리 조건, 이용 조건, 이용 내력 등이 기록되어 있다. 컴퓨터에서는 보통 메타데이터를 데이터를 표현하기 위한 목적과 데이터를 빨리 찾기 위한 목적으로 사용하고 있다. 

컴퓨터에서 정보의 인덱스(Index) 구실을 한다. 우리가 많이 사용하는 데이타베이스도 이러한 메타데이터가 잘 구성되어 있기 때문에 데이터를 빨리 찾을 수 있다.  




위와같은 에러메시지가 발생할것이다.
파일시스템을 이미 사용중이라서 아래 세가지 방법중 하나를 선택하라는 의미이다.
   * use external meta data (recommended)
   * shrink that filesystem first
   * zero out the device (destroy the filesystem)


나는 /dev/hda5 에 이미 ext3 파일시스템이 마운트된 상태로 존재해서 나타나는 에러로 확인하고
umount 하고 디스크를 초기화 시켰다. zero out the device를 해버린다.

간단하게 dd 로 밀어 버리고 다시 meta data 를 만들어 보자. 
예전에 만들었던 흔적이 있다면 overwirte 할것인지 물어 보지만 처음 만든다면 바로 만들어진다.

[root@node1 ~]# vim /etc/fstab

[root@node1 ~]# umount /dev/hda5

[root@node1 ~]# dd if=/dev/zero of=/dev/hda5 bs=1M count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 0.333406 seconds, 403 MB/s

[root@node1 ~]# drbdadm create-md all
v08 Magic number not found
v07 Magic number not found
v07 Magic number not found
v08 Magic number not found
Writing meta data...
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully 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 completely anonymous. A random number gets created for
this device, and that randomer number and the devices size will be sent.
http://usage.drbd.org/cgi-bin/insert_usage.pl?nu=2977384434883995994&ru=1067486578812435670&rs=9245214720
Enter ’no’ to opt out, or just press [return] to continue:
success

※ dd 옵션
       if=FILE
              read from FILE instead of stdin
              표준입력대신 지정한 파일에서 불러들인다.
       of=FILE
              write to FILE instead of stdout
              표준출력대신 지정한 파일에 작성한다.
       bs=BYTES
              force ibs=BYTES and obs=BYTES
              지정한 사이즈만큼 읽고 쓴다.
       count=BLOCKS
              copy only BLOCKS input blocks
              지정한 블록의 ibs 크기만큼 복사한다.



3. 데몬 시작 (두대 모두에 데몬을 올린다)

[root@node1 ~]# /etc/init.d/drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].

[root@node2 ~]# /etc/init.d/drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].


4. 디스크 SYNC
현재는 두 서버 모두 데이타가 없지만 동기화작업은 마스터와 보조서버를 다시한번 확인하고 작업을 해야된다..
먼저 양쪽 노드간의 HDD의 메타정보를 가지고 디스크 SYNC 작업을 해준다.
 /proc/drbd 에서 살펴 볼수 있으며, 나는 node1 서버는 마스터로 두고 node2를 백업서버로 설정할것이다.
양쪽디스크에 씽크를 맞추는 작업이 진행되는게 확인이 될것이고 시간이 조금 걸린다.

[root@node1 ~]# drbdadm -- --overwrite-data-of-peer primary all




5. 확인 
해당장치를 원하는 곳으로 마운트를 걸고 미러링이 잘되고있는지 확인을 해보자... 용량이 좀 큰걸로.....

[root@node1 ~]# mkfs -t ext3 -j /dev/drbd0

[root@node1 ~]# mount /dev/drbd0 /test

[root@node1 test]# du -sh *
861M    TestFile
0       aaa
0       bbb
0       ccc
16K     lost+found

[root@localhost /]# umount /test/
[root@localhost /]# drbdsetup /dev/drbd0 secondary

[root@node2 home]# drbdsetup /dev/drbd0 primary
[root@node2 home]# mount /dev/drbd0 /home/
[root@node2 home]# du -sh *
861M    TestFile
0       aaa
0       bbb
0       ccc
16K     lost+found

1기가가량 되는 데이타가 순간 동기화되어있다.
데이타 동기화 과정은 /proc/drbd 를 통해서 모니터링하시면 됩니다.
아래는 800메가 데이타를 업로드 하면서 캡쳐뜬거 입니다.




 


최고관리자 2011-12-21 (수) 15:36
[root@CLOUD_STORAGE ~]# mount /dev/drbd0 /CLOUD_R/
 행걸릴시...주의사항
 primary / second 를 하기전에 먼저 씽크를 잡아줘야함!!

drbdsetup /dev/drbd0 primary
mount /dev/drbd0 /CLOUD/
이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.