DRBD 구성 · 3 min read · Jan 28, 2026

CentOS 4.5에서 DRBD 샘플 구성

CentOS 4.5에서 DRBD 샘플 구성

DRBD란?

DRBD는 분산 복제 블록 장치(Distributed Replicated Block Device)의 약자입니다. DRBD는 고가용성 클러스터를 구축하기 위해 설계된 블록 장치입니다. 이는 전체 블록 장치를 (전용) 네트워크를 통해 미러링하여 수행됩니다. 네트워크 RAID1으로 볼 수 있습니다.

사전 구성 요구 사항:

다음 시스템 설정을 가진 두 개의 노드를 사용했습니다:

  1. cnode1.rnd (호스트 이름) IP 주소 172.16.4.80. 운영 체제 CentOS 4.5, 18GB의 SCSI 하드 드라이브 두 개. 파티션에 대해 cnode1.rnd에서 다음 스킴을 사용했습니다: /dev/sda1 / 13257MB ext3 기본 /dev/sda2 4095MB 스왑 기본 /dev/sdb1 마운트 해제 128MB ext3 기본 (DRBD의 메타 데이터용) /dev/sdb2 마운트 해제 4306MB ext3 기본 (DRBD의 디스크로 사용)
  2. cnode2.rnd (호스트 이름) IP 주소 172.16.4.81. 운영 체제 CentOS 4.5 10GB의 IDE 드라이브 하나. cnode2.rnd에서 사용된 파티션 스킴은 다음과 같습니다: /dev/hda1 / 4503MB ext3 기본 /dev/hda2 769MB 스왑 기본 /dev/hda3 마운트 해제 128MB ext3 기본 (DRBD의 메타 데이터용) /dev/hda4 마운트 해제 4306MB ext3; 기본 (DRBD의 디스크로 사용)

파티션의 크기와 이름은 디스크 용량 및 사용된 하드 디스크에 따라 다를 수 있습니다. 요구 사항에 따라 파티션 스킴을 정의할 수 있습니다.

두 노드(cnode1.rnd & cnode2.rnd)의 /etc/hosts 파일은 다음과 같습니다:

127.0.0.1       localhost.localdomain       localhost
172.16.4.80     cnode1.rnd          cnode2
172.16.4.81     cnode2.rnd          cnode3

DRBD 설치:

cnode1.rnd 및 cnode2.rnd에 DRBD 소프트웨어와 DRBD의 커널 모듈을 설치합니다:

 yum install -y kmod-drbd drbd 

insmod로 DRBD의 커널 모듈을 로드합니다:

 insmod /lib/modules/2.6.9-55.0.9.EL/extra/drbd.ko 

lsmod로 모듈이 로드되었는지 확인합니다. DRBD가 보이면 샘플 구성 섹션으로 이동합니다.

DRBD 구성:

DRBD의 구성 파일은 /etc/drbd.conf입니다. 따라서 이 파일을 편집하고 다음과 같은 변경을 한 후 다른 노드에 복사합니다 (/etc/drbd.conf는 두 노드에서 동일합니다).

cnode1.rnd에서 이 파일을 편집합니다. vi를 사용하고 있습니다:

 vi /etc/drbd.conf 
resource r0 {
  protocol C;
        incon-degr-cmd "halt -f";
        startup {
    degr-wfc-timeout 120;    # 2 분.
  }
        disk {
    on-io-error   detach;
  }
        net {
  }
syncer {
        rate 3M;
        group 1;
        al-extents 257;
  }
  on cnode1.rnd {
    device    /dev/drbd0;
    disk      /dev/sdb2;
    address   172.16.4.80:7789;
    meta-disk /dev/sdb1[0];
  }
  on cnode2.rnd {
    device    /dev/drbd0;
    disk      /dev/hda4;
    address   172.16.4.81:7789;
    meta-disk /dev/hda3[0];
  }
}

변경 사항을 저장하고 다른 노드(cnode2.rnd)에 복사합니다:

 scp /etc/drbd.conf [email protected]:/etc/ 

이제 두 노드에서 DRBD 데몬을 시작하겠습니다. 하지만 이 전에 다음 부팅 시 DRBD 데몬을 시작하고 싶습니다. 이를 위해 두 노드에서 chkconfig 명령을 사용합니다.

 chkconfig --level 235 drbd on 
 /etc/init.d/drbd start 

DRBD가 동기화 프로세스를 시작했음을 알 수 있습니다. 실행 중인 것을 확인할 수 있습니다:

 /etc/init.d/drbd status 

또는

 cat /proc/drbd 

drbd.conf 구성 기술 세부정보:

프로토콜:

  1. A 쓰기 작업은 데이터가 디스크에 기록되고 네트워크로 전송되면 완료됩니다.
  2. B 쓰기 작업은 수신 확인이 도착하면 완료됩니다.
  3. C 쓰기 작업은 쓰기 확인이 도착하면 완료됩니다.

호스트 이름:

정확히 다음의 출력을 일치해야 합니다.

 uname -n 

장치:

사용할 장치 노드: /dev/drbd0 - DRBD 블록 장치.

주소, 포트:

로컬에 바인딩할 inet 주소와 포트 또는 파트너 노드에 연결할 주소와 포트.

메타 디스크:

메타 데이터를 저장할 디스크. DRBD는 실제 사용 가능한 생산 데이터를 저장하는 동일한 백업 장치에 메타 데이터를 배치하거나 별도의 블록 장치에 배치할 수 있습니다. 외부 메타 데이터 블록 장치에 대해 메타 데이터에 128MB를 할당했습니다. 그러나 아래 표를 참조하여 메타 데이터 크기를 추정할 수 있습니다.

블록 장치 크기DRBD 메타 데이터
1 GB2 MB
100 GB5 MB
1 TB33 MB
4 TB128 MB

incon-degr-cmd:

클러스터가 저하된 모드로 시작되지만 일관성이 없는 데이터를 알고 있는 경우 수행해야 할 작업입니다 (하위 수준 장치가 io-error를 보고함).

on-io-error detach:

하위 수준 장치가 io-error를 보고하면 노드는 백업 스토리지 장치를 드롭하고 디스크 없는 모드로 계속 진행합니다.

degr-wfc-timeout:

이 노드가 저하된 클러스터인 경우 연결 시간 초과를 기다립니다. 이는 wfc-timeout(클러스터 시간 초과 대기) 대신 사용됩니다.

Syncer:

재동기화 프로세스에서 사용되는 대역폭을 제한합니다.

group:

하나의 그룹에 있는 모든 장치는 병렬로 재동기화됩니다. 그룹의 재동기화는 오름차순으로 직렬화됩니다.

Al-extents:

자동으로 핫 영역 감지를 수행합니다. 이 매개변수를 사용하여 핫 영역이 얼마나 커질 수 있는지 제어합니다. 각 익스텐트는 4M의 백업 스토리지를 표시합니다 (=하위 수준 장치). 기본 노드가 예기치 않게 클러스터를 떠날 경우 활성 세트가 포함된 영역은 실패한 노드가 다시 참여할 때 재동기화되어야 합니다. 데이터 구조는 메타 데이터 영역에 저장되므로 활성 세트의 각 변경은 메타 데이터 장치에 대한 쓰기 작업입니다. 더 높은 익스텐트 수는 더 긴 재동기화 시간을 제공하지만 메타 데이터에 대한 업데이트는 적습니다.

해야 할 일과 하지 말아야 할 일:

DRBD를 보조 상태로 마운트하려고 하지 마십시오. DRBD를 설정한 후에는 절대 우회하거나 기본 장치에 직접 액세스하지 마십시오!

DRBD 테스트:

cnode1.rnd를 기본으로 만들고 기본 노드(cnode1.rnd)의 블록 장치를 /mnt/disk에 마운트합니다:

 drbdsetup /dev/drbd0 primary --do-what-I-say 
 mount /dev/drbd0 /mnt/disk 

파일과 폴더를 복사합니다:

 cp -r /root/documents /mnt/disk 

이제 DRBD의 블록 장치를 마운트 해제하고 기본 노드를 “보조”로 만듭니다:

 umount /mnt/disk/ 
 drbdadm secondary all 

cnode2.rnd를 기본으로 만들고 블록 장치를 /mnt/disk에 마운트합니다:

 drbdsetup /dev/drbd0 primary --do-what-I-say 
 mount /dev/drbd0 /mnt/disk

cnode2.rnd에 문서가 존재하는 것을 확인할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.