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; } }
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