클러스터 설정 · 3 min read · Jan 29, 2026

GFS 및 DRBD를 사용한 Active/Active Samba CTDB 클러스터 설정 (CentOS 5.5) - 페이지 2

이 문서에서는 GFS 및 DRBD를 사용하여 Active/Active Samba CTDB 클러스터를 설정하는 방법을 설명합니다. BRLink 리눅스 팀의 Rafael Marangoni가 준비했습니다.

3. 필수 패키지 및 클러스터 패키지 설치

설치해야 할 몇 가지 패키지가 있습니다:

yum -y install drbd82 kmod-drbd82 samba

Red Hat Cluster Suite를 설치합시다:

yum -y groupinstall "Cluster Storage" "Clustering"

4. DRBD 구성

먼저, 두 노드 모두에서 /etc/drbd.conf를 구성해야 합니다:

vi /etc/drbd.conf 
global {
    usage-count yes;
}

common {
  syncer {
                rate 100M;
                al-extents 257;
         }
}

resource r0 {

  protocol C;

  startup {
    become-primary-on both;              ### For Primary/Primary ###
    degr-wfc-timeout 60;
    wfc-timeout  30;
  }

  disk {
    on-io-error   detach;
  }

  net {
    allow-two-primaries;                 ### For Primary/Primary ###
    cram-hmac-alg sha1;
    shared-secret "mysecret";
    after-sb-0pri discard-zero-changes;
    after-sb-1pri violently-as0p;
    after-sb-2pri violently-as0p;
  }

  on node1.clustersmb.int {
    device     /dev/drbd0;
    disk       /dev/sdb;
    address    172.16.0.1:7788;
    meta-disk  internal;
  }

  on node2.clustersmb.int {
    device     /dev/drbd0;
    disk       /dev/sdb;
    address    172.16.0.1:7788;
    meta-disk  internal;
  }
}  

구성의 주요 포인트는: resource: DRBD가 관리할 리소스를 나타내며, “r0”라고 호출했습니다. disk: DRBD가 사용할 장치(디스크 또는 파티션)를 나타냅니다. address: DRBD가 사용할 IP 주소/포트(크로스오버 인터페이스를 가리킴). syncer: 노드 간의 전송 속도(기가비트 카드가 있으므로 100M 사용). 의문이 있으시면 DRBD 사용자 가이드를 참조하십시오: www.drbd.org/users-guide-emb/

그 구성 후, r0 리소스에서 메타데이터를 생성할 수 있습니다. 두 노드에서 다음을 수행하십시오:

drbdadm create-md r0

다음으로, DRBD 서비스를 시작하여 initdb를 생성해야 합니다. 두 노드에서(거의 동시에) 다음을 수행하십시오:

/etc/init.d/drbd start

두 노드를 기본으로 설정하려면, 두 노드에서 다음을 수행하십시오:

drbdsetup /dev/drbd0 primary -o

동기화 진행 상황과 DRBD 리소스 상태를 확인하려면 /proc/drbd를 확인하십시오:

cat /proc/drbd

이제 동기화가 끝날 때까지 기다려야 합니다. 이는 디스크의 크기와 성능에 따라 오랜 시간이 걸릴 수 있습니다. 물론, 크로스오버 케이블로 사용되는 클러스터 네트워크 인터페이스의 속도에 따라 다릅니다).

동기화 프로세스가 끝나면, 리소스 r0의 상태를 확인할 수 있습니다:

node1:

[root@node1 ~]# cat /proc/drbd

[root@node1 ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
0: cs:Connected st:Primary/Primary ds:UpToDate/UpToDate C r—
ns:2097052 nr:0 dw:0 dr:2097052 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 oos:0

node2:

[root@node2 ~]# cat /proc/drbd

[root@node2 ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
0: cs:Connected st:Primary/Primary ds:UpToDate/UpToDate C r—
ns:0 nr:2097052 dw:2097052 dr:0 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 oos:0

두 서버가 모두 최신 상태(UpToDate/UpToDate)이며 기본(Primary/Primary)임을 주목하는 것이 중요합니다. 상태 정보의 의미를 배우려면 다음을 참조하십시오: www.drbd.org/users-guide-emb/ch-admin.html#s-proc-drbd

부팅 시 DRBD 서비스가 자동으로 시작되도록 설정해야 합니다:

chkconfig --level 35 drbd on

5. GFS 구성

이제 DRBD와 함께 사용할 클러스터 파일 시스템인 GFS(레드햇 글로벌 파일 시스템)를 구성해야 합니다:

먼저, 두 노드 모두에서 /etc/cluster/cluster.conf를 구성해야 합니다:

vi /etc/cluster/cluster.conf 







        
                
                        
                
        



        
                
                        
                
        






        


다음으로, 두 노드에서 cman 서비스를 시작해야 합니다(동시에):

/etc/init.d/cman start

그 후, 두 노드에서 다른 서비스를 시작할 수 있습니다:

/etc/init.d/clvmd start
/etc/init.d/gfs start
/etc/init.d/gfs2 start

모든 서비스가 초기화 시 활성화되도록 해야 합니다.
두 노드에서 다음을 수행하십시오:

chkconfig –level 35 cman on
chkconfig –level 35 clvmd on
chkconfig –level 35 gfs on
chkconfig –level 35 gfs2 on

다음으로, 장치를 포맷합니다. 단 하나의 노드에서:

gfs_mkfs -p lock_dlm -t cluster1:gfs -j 2 /dev/drbd0

이제 마운트 포인트를 만들고 두 노드에서 drbd 장치를 마운트합니다:

mkdir /clusterdata
mount -t gfs /dev/drbd0 /clusterdata

두 노드에서 fstab에 장치를 삽입합시다:

vi /etc/fstab

다음 줄을 삽입하십시오:

/dev/drbd0          /clusterdata               gfs    defaults        0 0 

다음으로, 클러스터 파일 시스템이 작동하는지 확인하는 것이 좋습니다:
node1에서만 다음을 수행하십시오:

tar -zcvf /clusterdata/backup-test.tgz /etc/

이제 node2에서 파일이 존재하는지 확인합니다.
node2에서만 다음을 수행하십시오:

ls -l /clusterdata/ 

[root@node2 ~]# ls -l /clusterdata
total 12576
-rw-r–r– 1 root root 12844520 Jul 23 16:01 backup-test.tgz

이제 node2가 쓸 수 있는지 테스트해 봅시다.
node2에서만 다음을 수행하십시오:

tar -zcvf /clusterdata/backup-test2.tgz /etc/

이제 두 파일이 node1에 존재하는지 확인합니다.
node1에서만 다음을 수행하십시오:

ls -l /clusterdata/ 

[root@no2 ~]# ls -l /clusterdata/
total 25160
-rw-r–r– 1 root root 12850665 Jul 23 16:03 backup-test2.tgz
-rw-r–r– 1 root root 12844520 Jul 23 16:01 backup-test.tgz

모든 것이 괜찮다면, 물론 테스트 파일을 삭제할 수 있습니다.
단 하나의 노드에서 다음을 수행하십시오:

rm -f /clusterdata/backup* 
Share: X/Twitter LinkedIn

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

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