drdb 구성

리눅스 2016. 3. 28. 09:54

DRBD HA


HA(High Available) : 고 가용성

- 서비스를 오랜 기간동안 지속적으로 정상운영이 가능하게 하는것.


HA Cluster

-시스템이 끊기지 않고 서비스를 가능하게 하는게 목표

클러스터로 묶인 2대중 1대에서 장애가 발생시, 다른서버가 즉시 그 업무를 대신 수행하게 한다.



DRBD(Distributed Replicated BlockDevice)

-HA cluster 구축을 위한 블럭 디바이스. Network Raid-1 동작. 네트워크를 통한 미러링.



------------------------------------------------------------------------------------------



환경 : CentOS 7


* drbd 구성을 위해서는 처음 설치부터 파티션관리가 중요하다 

  파티션을 따로 잡아줘야하기때문에 추가 HDD를 사용하거나 공간을 확보해놓고, 

  설치 후에 파티션 설정을 해주자.


* 시간동기화를 해주자




 1. drbd 설치를 위한 repo 등록

http://elrepo.org/tiki/tiki-index.php


rpm -Uvh elrepo-release-7.0-2.el7.elrepo.noarch.rpm 



 2. 패키지 설치

yum install drbd84-utils kmod-drbd84


 

 3. 호스트 설정


hostnamectl set-hostname dr1          //cent 7은 ctl 명령어를 통해 변경


/etc/hosts 변경


두대 서버는 dr1과 dr2 사용


222.236.47.230  dr1

222.236.47.231  dr2


위처럼 둘다 넣어준다.



 4. 파티션 설정


fdisk or parted


gpt인 관계로 parted로 설정



 p : 파티션 공간 확인

 mkpart : 파티션 분할 명령어

 rm 번호 : 삭제

 q : 나가기


간단하게 나눌수 있다.



 5. drdb 파일 설정


/etc/drbd/파일이름.res



resource drbddata {                 // drdbdate.res로 파일이름 지정

startup {

wfc-timeout 30;                      

degr-wfc-timeout 30;

}

net {

cram-hmac-alg sha1;

shared-secret sync_disk;

}

syncer {

rate 100M;

al-extents 257;

on-no-data-accessible io-error;

}

on dr1 {                               // 호스트 네임

device /dev/drbd0;

disk /dev/sda6;                        // 분할해서 지정한 파티션      

address 222.236.47.230:7788;           // 보통 사설 ip 쓰는 듯, 포트는 임의로...

meta-disk internal;

}

on dr2 {

device /dev/drbd0;

disk /dev/sda6;

address 222.236.47.231:7788;

meta-disk internal;

}

}



 6. meta data 생성


drbdadm create-md drbddata     // 서버 2대 순서대로 해주자



# drbdadm create-md drbddata

You want me to create a v08 style flexible-size internal meta data block.

There appears to be a v08 flexible-size internal meta data block

already in place on /dev/sda6 at byte offset 87999639552


Do you really want to overwrite the existing meta-data?

[need to type 'yes' to confirm] yes


initializing activity log

NOT initializing bitmap

Writing meta data...

New drbd meta data block successfully created.



위처럼 되면 성공!



 7. drbd 구동


systemctl start drbd           // 순차적으로 실행(1 끝나고 2 실행)


cat /proc/drbd 

version: 8.4.7-1 (api:1/proto:86-101)

GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by phil@Build64R7, 2016-01-12 14:29:40

 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----

    ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:85934492



위처럼 Secondary/Secondary 나오면 동기화 성공


Secondary/Unknown 둘다 실행했는데 이처럼 나오면 실패



 * 안될경우 방화벽을 살펴 보자. 


cent 7 경우에는 iptables 가 아니고


systemctl stop firewalld       // 요명령어로 방화벽 해제

systemctl mask firewalld       // 방화벽 다시 안올라오게 설정



 8. Master 서버 설정


drbdadm primary --force drbddata           // secondary를 primary로


cat /proc/drbd 

version: 8.4.7-1 (api:1/proto:86-101)

GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by phil@Build64R7, 2016-01-12 14:29:40

 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----

    ns:2710036 nr:0 dw:0 dr:2710948 al:8 bm:0 lo:0 pe:2 ua:0 ap:0 ep:1 wo:f oos:83224540

        [>....................] sync'ed:  3.2% (81272/83920)M

        finish: 13:04:21 speed: 1,760 (1,740) K/sec



위처럼 보이면 동기화가 진행중이다



 drbd-overview              //현재 진행 상황을 볼 수 있다.


 0:drbddata/0  SyncSource Primary/Secondary UpToDate/Inconsistent 

        [>....................] sync'ed:  3.3% (81184/83920)M       




 9. 마운트


mkfs.ext4 /dev/drbd0

mount /dev/drbd0 /data




---------------------------------------------------------------------


modprobe drbd

- 모듈 적재


drbdadm create-md drbddata

- 메타데이터 생성


dd if=/dev/zero of=/dev/sdb bs=1M

- 디스크 초기화 (필요시만 한다)


drbdadm primary --force drbddata

- 동기화전 마스터서버 첫번째로

drbdadm primary drbddata

drbdadm secondary drbddata


drbd-overview

- 동기화 진행확인


'리눅스' 카테고리의 다른 글

전체 용량/사용량  (0) 2016.06.28
heartbaet  (0) 2016.04.11
연결된 사용자 끊기  (0) 2016.01.21
커널 추가하기  (0) 2016.01.21
chattr  (0) 2016.01.19
Posted by Narusika
,

php 에러

리눅스/php 2016. 3. 10. 09:17

PHP Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given

-> date.timezone 설정 확인       (이 에러의 정확한 이유는 잘 모르겠다...)


# php -r "echo date('Y-m-d H:i:s').PHP_EOL;"

2016-03-10 09:13:30


정상적으로 한줄 출력되면 이상없음


---------------------------------------------------------------------------------


Warning: session_start(): open failed: Permission denied (13)

-> 세션 권한 문제


# vi /php.ini


session.save_path = "/var/lib/php/session"


위처럼 경로 확인 하고 경로로 가서 session 디렉토리의 권한을 확인


'리눅스 > php' 카테고리의 다른 글

php-common 설치 오류  (0) 2016.02.17
php imap 설치  (0) 2015.07.20
phpinfo.php 다운로드 될때  (0) 2015.06.30
phpinfo.php  (0) 2015.06.28
Posted by Narusika
,

yum 설치시 에러. 아마 기존설치된 common과 충돌때문인듯

Error: php53-common conflicts with php-common


삭제

yum remove php-common php-zend-optimizer-debuginfo


다시 설치

yum install php53-devel php53-gd php53-mysql

'리눅스 > php' 카테고리의 다른 글

php 에러  (0) 2016.03.10
php imap 설치  (0) 2015.07.20
phpinfo.php 다운로드 될때  (0) 2015.06.30
phpinfo.php  (0) 2015.06.28
Posted by Narusika
,