drbd 소개 및 배치 방법 [속속 업데이트]

부분 전재 감사 원작자https://www.cnblogs.com/NewStudy/p/7270390.htmldrbd버전 drbd-9.0.21-1.drbd-utils 버전 drbd-utils-9.7.1.

Drbd Full Distributed Replicated Block 장치


블록 장치를 바탕으로 서로 다른 고가용 서버 쌍 간에 데이터를 동기화하고 미러링하는 소프트웨어는 이를 통해 네트워크에 있는 두 서버 간에 블록 장치를 기반으로 하기 전의 실시간 또는 비동기식 미러링이나 동기화 복제를 실현할 수 있다. 이것은 사실rsync+inotify와 같은 프로젝트 구조와 유사하다.단지drbd는 파일 시스템의 밑바닥, 즉 블록 등급 동기화를 기반으로 한다.한편rsync+inotify는 파일 기반의 동기화입니다.drbd효율이 높고 효과가 좋으며 증량 방식
위에서 언급한 블록 장치는 디스크 구역, LVM 논리 볼륨 또는 전체 디스크, 즉 디스크 블록의 복제로 네트워크raid1 기능과 같다

drbd 세 가지 동기화 프로토콜


protocol A B C 프로토콜: 비동기식 모드 프로토콜 B: 메모리 동기화(반동기식) 복제 프로토콜 C: 동기식 복제 프로토콜 C가 가장 많이 사용됨

drbd 생산 응용 모델


단일 주 모드, 주 예비 모드, 전형적인 복주 모드: 공유 cluster 파일 시스템, GFS OCFS2 사용

drbd 기업 응용 장면


고가용 서버 간의 데이터 동기화 하트비트+drbd+nfs/mfs/gfsheartbeat+drbd+mysql/oracle
특징: 주 제공 상태 읽기, 보기 불가, 파일 시스템 기반 마운트 불가

관련 데이터 동기화 도구


rsync scp nfs union 더블 컴퓨터 동기화 csync2 멀티 컴퓨터 동기화 소프트웨어 자체(mysql,oracle etc...)drbd

drbd 설치 배포


준비 단계


# 신규 파티션 추가(주 1G는 2G부터).기본 용량의 2배
두 대의 서버, 각각 두 개의 구역, 데이터 데이터와 상태 미디어 정보 구역을 준비합니다

주의점

#meda-data  
#meda-data  1~2G
# 

drbddrbd-utilse 다운로드 및 설치 의존 환경


https://www.linbit.com/en/drbd-community/drbd-download/적절한 버전의 kernel driver 및 DRBD Utilities 다운로드
# 
cat /proc/cpuinfo | grep processor | wc -l  
# 
yum -y install gcc gcc-c++ libstdc++-devel make automake autoconf kernel-devel kernel-headers flex libxslt libxslt-devel asciidoc po4a

drbd-utils-9.10.0.tar.gz 설치 절차

tar -xf  
./configure --prefix=/usr --sysconfdir=/etc/drbd --localstatedir=/var --runstatedir=/var/run/drbd
make -j `cat /proc/cpuinfo | grep processor | wc -l`
make install

drbd-9.0.19-1.tar.gz 설치 절차

tar -xf  
make -j `cat /proc/cpuinfo | grep processor | wc -l` KDIR=/usr/src/kernels/`uname -r`
make install

구성 완료 후 시스템 재부팅

# , rc.local 
#echo modprobe drbd >> /etc/rc.local
#chmod +x /etc/rc.d/rc.local
modprobe drbd
lsmod |grep drbd

프로파일


1. 정확한 / etc /hosts 정보가 추가되었는지 확인

echo 10.0.0.51 db01 >> /etc/hosts
echo 10.0.0.52 db02 >> /etc/hosts

2.vim /etc/drbd/drbd.d/global_common.confnet 모듈에procotol C 추가하기;


더 많은 유용한 매개 변수가 있습니다. 계속 업데이트하십시오.

3.vim /etc/drbd/drbd.d/data.res

#resouce  
resource data {
meta-disk internal;
# 
device /dev/drbd1;
# 
on db01 {
# 1 
disk /dev/sda1;
# 1 
address 10.0.0.51:7789;
}
on db02 {
# 2 
disk /dev/sda1;
# 2 
address 10.0.0.52:7789;
}
}
# drbd 

두 개의 결점에 있는 상기 세 개의 파일은 반드시 동일해야 하며, 두 노드는 서로 해석할 수 있어야 한다.

db01db02 실사화 작업

# 
dd if=/dev/zero of=/dev/sdb1 bs=1M count=100
drbdadm create-md data
#  /etc/init.d/drbd start , cent7 systemctl  
cp -p / /drbd /etc/init.d/

init를 사용합니다.d/또는 systemctl 방식으로 서비스 시작


서비스를 시작한 후,db01에 주 노드를 설정합니다 ()

drbdadm primary data --force

drbd 미러 상태 보기

# 1
cat /proc/drbd
# 2
 /usr/sbin   scripts/drbd-overview.pl
drbd-overview.pl

# 
1:data/0 Connected(2*) Primar/Second UpToDa/UpToDa

drbd 미러 테스트


[root@client5 drbd.d]# mkfs.xfs /dev/drbd1
# primary
[root@client5 ~]# mount /dev/drbd1 /mnt/
[root@client5 mnt]# touch file{1..5}
[root@client5 ~]# umount /mnt
[root@client5 ~]# drbdadm secondary data
[root@client6 ~]# drbdadm primary data
[root@client6 ~]# mount /dev/drbd1 /mnt/
[root@client6 mnt]# ls
file1 file2 file3 file4 file5

drbd 사용


기본 마운트에서 여러 개의 하드 드라이브를 사용하는 것과 같습니다.

drbd 질문 요약


1. 설치 후 커널을 업데이트하면 버전과 호환되지 않아 해결 방법을 컴파일할 수 없습니다:vim/etc/grub2.cfg는 새 버전의 핵 시작 매개 변수를 삭제하고 구kernel 시작을 강제합니다. 2.갱신되어yum과 컴파일로 설치되었는데 결과적으로 많은 명령 설정 경로가 해결 방법에 맞지 않습니다:find/-name "drbd*"-exec rm-rf {}\;삭제, 설치 다시 컴파일

좋은 웹페이지 즐겨찾기