1. DRBD(Distributed Replicated Block Device)란?

 - HA Cluster를 구성하기 위한 Block 단위로 분산 복제하는 장치이다.

 

2. DRBD 환경 구성

 1) 환경 : CentOS 6

 2) DRBD Disk 생성

 - DRBD의 경우 동기화 대상 서버와 Disk를 Block 단위로 동기화하여 양측 서버간 동일한 데이터를 유지해주는 장치이다.

 - 이에 'Server 1', 'Server 2' 간 동일한 크기의 Disk를 생성한다.

[그림 1] DRBD 구성

 * DRBD 구성 시 OS 설치 중 파티션 구성에서 설정해주면 편하다.

   파티션 구성 시 DRBD로 사용될 파티션에는 별도 mount는 지정하지 않도록 설정한다. 

 

3. DRBD 설치

# yum install -y drbd84-utils kmod-drbd84 heartbeat

 4. Kernel에 DRBD 적용

 # modprobe drbd

5. DRBD 환경 설정 ( Server 1, Server 2 동일하게 적용 ) 

# vi /etc/drbd.d/global_common.conf

global {
        usage-count no; 

common { 
        protocol C; 
        disk { 
                on-io-error detach;        # 설정 I/O 오류 처리 위해 분리 정책
                no-disk-flushes; 
                no-md-flushes; 
        } 
        net { 
                cram-hmac-alg "sha1";         # 암호화 설정 
                shared-secret "allendrbd";    # 설정 암호화 키
                sndbuf-size 512k;
                max-buffers 8000;
                unplug-watermark 1024;
                max-epoch-size 8000;
                after-sb-0pri disconnect;
                after-sb-1pri disconnect;
                after-sb-2pri disconnect;
                rr-conflict disconnect;
        } 
        syncer { 
                rate 1024M;             # 주 노드 예비 동기 때 네트워크 속도
                al-extents 517;
        }
}

# vi /etc/drbd.d/drbd.res

resource drbd {

        on primary(hostname){
                device /dev/drbd0;                      # drbd 장치 이름
                disk /dev/mapper/vg_primary(hostname)-LogVol02;   # drbd0 논리 볼륨
                address 192.168.43.200:7789;            # ip 주소 및 포트 설정
                meta-disk internal;                     # 내부 모드 설정
        }
        
        on secondary(hostname) {
                device /dev/drbd0;
                disk /dev/mapper/vg_secondary(hostname)-LogVol02;
                address 192.168.43.201:7789;
                meta-disk internal;
        }
}

6. Heartbeat 구성

 1) Heartbeat 설정 파일

   - 경로 : /etc/ha.d/

   - ha.cf : Heartbeat 환경 설정

   - haresources : Heartbeat에서 관리할 resource 설정

 

 2) 설정

# vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug          # Debug 로그 파일 설정
logfile /var/log/ha-log                  # 로그 파일 경로
keepalive 2                                # 서버 간 HealthCheck 주기 (초 단위)
deadtime 10                              # 서버가 죽었다고 판단하는 시간(초 단위)
warntime  10                             #  Heartbeat 지연 발생 시 경고 발생 시간 (초 단위)
initdead 120                              # Heartbeat 처음 구동 시 응답 대기 시간 (초 단위)
  => 설정된 시간 이후에도 응답 없을 시 상대 측 서버가 죽었다고 판단
udpport 694                              # 서버 간 통신 Port
#bcast em2                               # 서버 간 통신 방법, 브로드캐스트의 경우 보안상 권장하지 않음
mcast eth0 225.0.0.192 694 1 0      # 서버간 통신 시 멀티 캐스트를 이용하여 통신하도록 설정
ucast (상대 서버 IP)                     # 서버간 통신 시 유니캐스트로 통신
auto_failback on                         # 장애시 자동 복구 설정
respawn hacluster /usr/lib64/heartbeat/ipfail  # Heartbeat이 모니터링할 프로그램을 지정
node (hostname, 1번 서버)           # uname -n 으로 출력되는 이름 
node (hostname, 2번 서버)           # uname -n 으로 출력되는 이름
ping (IP)                                   # HealthCheck 대상 IP



Primary# vi /etc/ha.d/haresources
primary(hostname) drbddisk::drbd Filesystem::/dev/drbd0::/home/mysql::ext4 IPaddr2::(VIP)/24/eth0:0 mysqld

Secondary#secondary(hostname) drbddisk::drbd Filesystem::/dev/drbd0::/home/mysql::ext4 IPaddr2::(VIP)/24/eth0:0 mysqld



# vi /etc/hosts
(1번 서버 IP)     (hostname)
(2번 서버 IP)     (hostname)

 

'System' 카테고리의 다른 글

Centos 7 Root 패스워드 복구  (0) 2020.04.20

+ Recent posts