drbd 소개 및 배치 방법 [속속 업데이트]
4055 단어 drbd상세 정보 및 배포
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 사용
기본 마운트에서 여러 개의 하드 드라이브를 사용하는 것과 같습니다.