KWMBLOG
DB 이중화 작업(HA 구성) 1편 본문
이거 하면서 얼마나
개고생 + 삽질을 해댔나 모르겠다.
미래의 나를 위해 혹은 관심이 있는 사람들을
위해서 일단 작성한다.
1편에서는 기본설정, DRBD 설치,
DRBD 테스트 까지만 작성한다.
DB 이중화 작업에는 여러 종류가 있다.
여기서는 DRBD + HeartBeat + mon 을 이용하여
구성해 볼 것이다.
이것도 원래 안하고 있다가
예전에 회사 DB서버가 터지는 바람에
밤 열한신가에 겨우 퇴근한 기억이 있어서
바로 건의했고, 작업을 하게됐다.
우선 설치한 서버 환경이다.
active server : 192.168.1.2
stanby server : 192.168.1.5
virtual ip : 192.168.1.10
서버 OS : CentOS 6.5 64bit
mysql : 5.0.77
mysql 버전이 좀 많이 낮다.
1.1 hostname 변경
/etc/sysconfig/network 를 열어
아래와 같이 수정해 준다.
active 설정
stanby 설정
HOSTNAME은 저대로 해도 되고,
다르게 해도 된다.
/etc/hosts를 열어
아래와 같이 수정해 준다.
양쪽 다 동일하게 해도 되고,
stanby가 위로 가게 해도 된다.
1.2 시간동기화
rdate -s time.bora.net
을 active, stanby 서버 두대 다 필수로 진행해준다.
crontab에 넣어두는 것을 추천한다.
1.3 selinux 설정
setforce 0
을 입력하여 selinux를 끈다.
끄지 않는편이 좋긴 하지만 방해가 될꺼 같아서 그냥 껏다.
2. DRBD 설치
여기서 active 서버만 작업하라거나
stanby 서버만 작업하라거나 하는
내용이 없으면
양측 서버 다 작업해야한다.
2.1 epel repo 설치
6.5버전은 없어서 그냥 6.8로 설치했다.
rpm -Uvh http://elrepo.org/elrepo-relase-6-8.el6.elrepo.noarch.rpm
를 입력해서 설치할 수도 있다.
2.2 drbd 설치
yum install kmod-drbd84 drbd84-utils
만약 yum에서 나오지 않는다면
아래 파일을 이용하여 설치한다.
drbd84-utils-9.0.0-1.el6.elrepo.x86_64.rpm
kmod-drbd84-8.4.10-1.el6.elrepo.x86_64.rpm
2.3 모듈 적재
modeprob drbd
를 입력하여 커널에 모듈을 적재한다.
2.4 drbd 설정
/etc/drbd.d/data.res
를 생성한다.
data.res가 아닌 다른 이름으로 해도 무관하다.
이미지와 같이 내용을 입력해준다.
data.res 로 하지 않았다면
resource data에서 data부분을
파일이름으로 수정해준다.
여기서
on node1, on node2 부분은 앞에서 설정한 HOSTNAME을 적어주고,
disk는 active서버와 stanby서버가 같이 사용할 파티션을 적어준다.
address에는 각각의 ip를 적어준다.
2.6 DRBD 시작
/etc/init.d/drbd start 혹은 service drbd start
여기서 발생하는 오류!
오류 메시지에 degr-wfc-timeout이 포함된 에러가 있다면
위에 써놓은 양측 다 작업해야된다는 것을 안봤다는 뜻이기도 하고,
서버 중 한대가 drbd가 실행중이 아니라는 뜻!
둘 중 한대가 실행되지 않아 기다리다 지쳐 종료되는 것이므로
반드시 두대 다 실행 해 준다.
2.7 primary 서버 지정 - active 서버에서만 작업
drbdadm primary -force data
여기서 data는 예상하다시피
data.res 의 resource data
이 data 이다.
이 작업은 디스크(혹은 파티션)을 동기화 하는 작업이고,
시간이 제법 걸린다.
(나같은 경우 30분 걸렸다.)
명령어를 입력하면 아무것도 안보이지만
백그라운드에서 열심히 작업중이니
참고 기다려 준다.
active 화면
stanby 화면
drbd-overview 혹은 cat /proc/drbd
로 확인 가능하고,
primary/secondary
가 반드시 보여야 한다.
2.8 fail-over 테스트
이제 설정은 끝났으니 장애발생 시
조치가 되는지를 테스트해본다.
'리눅스 > 운영참고' 카테고리의 다른 글
ATA, ACHI 확인방법 (0) | 2018.12.12 |
---|---|
DB 이중화 작업(HA 구성) 2편 (0) | 2018.12.06 |
프로세스의 메모리 사용량 확인 (0) | 2018.12.04 |
Device is busy (0) | 2018.12.01 |
프로세스들의 기능이 갑자기 멈췄을 때 (0) | 2018.12.01 |