서버의 고가용성을 목적으로 Data Replication 관련 DRDB 패키지 설치
DRBD와 heartbeat 혹은 keepalived 이용해 active-standby를 구성
OS : ubuntu 14.04 (64bit)
NIC :
- node01 : public(eth0, 192.168.100.101), heartbeat(eth2, 172.27.0.101 mtu 9000)
- node02 : public(eth0, 192.168.100.102), heartbeat(eth2, 172.27.0.102 mtu 9000)
DISK : sdb1(Replication DISK 10G), sdc1(META DISK 1GB)
1. 사전 준비
1) ntp 설치(nodeo01, node02)
# apt-get install ntp -y
# /etc/init.d/ntp start
# ntpq -p
# date
2) iptables 해제
# iptables -F
3) /etc/hosts file 설정
master/slave 서버 호스트명 기재
# cat /etc/hosts
127.0.0.1 localhost
# 127.0.1.1 node01
192.168.100.101 node01 node01
192.168.100.102 node02 node02
172.27.0.101 node01-private
172.27.0.102 node02-private
4) DISK 파티셔닝
# fdisk /dev/sdb, /dev/sdc
2, DRDB 패키지 설치
# apt-get install drbd8-utils
# root@node02:/etc# cat drbd.conf
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
# /etc/drbd.conf
# cat /etc/drbd.d/nfs.res
resource nfs { # nfs라는 리소스 정의
protocol C; # DATA 전송 프로토콜 A 비동기식 빠른속도 <=> C 동기식
startup {
wfc-timeout 30;
outdated-wfc-timeout 20;
degr-wfc-timeout 30;
#become-primary-on both; # Active-Active 설정시
}
disk {
on-io-error detach; // This is the recommended option. On the occurrence of a lower-level I/O error, the node drops its backing device, and continues in diskless mode.
fencing resource-only; //If a node becomes a disconnected primary, it tries to fence the peer's disk.
}
net {
cram-hmac-alg sha1;
shared-secret sync_disk;
#allow-two-primaries yes; # Active-Active 구성시 옵션으로 아래 4줄
#after-sb-0pri discard-zero-changes;
#after-sb-1pri discard-secondary;
#after-sb-2pri disconnect;
}
syncer { # resynchroniztion 에서 사용하는 대역폭
rate 100M; # 초당 100M
verify-alg sha1;
al-extents 257;
}
on node01 { # 호스트 별로 리소스 정의 (uname -n 값과 반드시 일치)
device /dev/drbd0; # drbd의 논리 블록 디바이스명. mkfs,mount 수행해야됨
disk /dev/sdb1; # 미러링 하고자 하는 물리 디스크 디바이스명
address 172.27.0.101:7788; # 데이타 동기화를 위한 수신 IP/포트
meta-disk /dev/sdc1; # 자체 메타 공간 사용 meta-disk internal;
}
on node02 {
device /dev/drbd0;
disk /dev/sdb1;
address 172.27.0.102:7788;
meta-disk /dev/sdc1;
}
}
3. 실행
메타데이터 생성 - master/slave 모두
# drbdadm create-md nfs #meta
# dd if=/dev/zero of=/dev/sdb bs=1M <=오류 시 dd로 disk 초기화
# /etc/init.d/drbd start #drbd 서비스 시작, wfc-timeout 시간 이내에 두서버를 모두 on
# drbdadm -- --overwrite-data-of-peer primary nfs #active 서버 지정 한쪽에서만 수행
# drbdadm primary --force nfs #active 서버 지정
# drbd-overview #확인
# mkfs.ext4 /dev/drbd0 #primary 에서 지정
# mkdir /data
# mount /dev/drbd0 /data/
4. drbdadm CLI
# drbdadm primary nfs
# drbdadm secondary nfs
# drbd-overview
# drbdadm -- --overwrite-data-of-peer primary all
primary로 부터 데이터 동기화
'리눅스-Linux' 카테고리의 다른 글
DNS 서버 bind9 설정 관련 (0) | 2015.10.11 |
---|---|
[Linux] iptables 사용 (0) | 2015.10.11 |
[리눅스] 유용한 find , grep 사용법 (1) | 2015.10.11 |
[Linux] iscsi.conf timeout 관련 (0) | 2015.06.10 |
[리눅스] 파일 무결성 검증 (1) | 2014.11.18 |