전산쟁이의 기억노트

DRBD 기술노트 본문

storage

DRBD 기술노트

잘나가는전산쟁이 2022. 7. 24. 00:20
728x90
반응형
SMALL

 

Opensource 정보 : DRBD / DRBDutils (https://www.linbit.com/en/drbd-oss-distribution/)

DRBD Stack (Active / Passive 구성임)

작업 절차중 나오는 용어들은 Mantec 을 참고해도 좋을듯 : https://mantech.jira.com/wiki/spaces/WDRBDV9/pages/170098908/1.

Mantech에 MCCS라는 솔루션이 DRBD을 기반으로 상품화되었음

DRBD통신방향

대표사진 삭제

사진 설명을 입력하세요.

DRBD설치하기

  • DRBD 모듈 설치 (8.x, 9.x 설치 방법 동일함)
> tar -zxvf drbd-8.4.5.tar.gz
> cd drbd-8.4.5
> make;make install
> echo "modprobe drbd" > /etc/sysconfig/modules/drbd.modules
> chmod +x /etc/sysconfig/modules/drbd.modules
> modprobe drbd
> lsmod | grep drbd
drbd                  568788  0
libcrc32c              12644  4 xfs,drbd,nf_nat,nf_conntrack
 
  • DRBD Util 설치 (8.x, 9.x 설치 방법 동일함)
> yum install -y libxslt libxml2
> tar -zxvf drbd-utils-8.9.1.tar.gz
> cd drbd-utils-8.9.1
> ./configure --prefix=/usr/local/drbd --sysconfdir=/etc/ --with-initscripttype=sysv
> ./configure --sysconfdir=/etc/ --with-initscripttype=systemd --with-pacemaker (Centos7)
> make; make install
> mkdir -p /usr/local/drbd/var/run
 

DRBD구성하기

  • Target 파티션 구성하기
># fdisk /dev/xvdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xcce44d25.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
\\Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
\\WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
\\Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p (입력)
Partition number (1-4): 1 (입력)
First cylinder (1-2080500, default 1):
Using default value 1 (입력)
Last cylinder, +cylinders or +size{K,M,G} (1-2080500, default 2080500):
Using default value 2080500
\\Command (m for help): w (입력)
The partition table has been altered!
\\Calling ioctl() to re-read partition table.
Syncing disks.
 
  • DRBD구성하기
># cat /etc/drbd.d/drbd.res
resource drbd0
{
  startup {
    wfc-timeout 30;
    outdated-wfc-timeout 20;
    degr-wfc-timeout 30;
 }
\\  syncer {
    rate 1000M;
    verify-alg sha1;
 }
\\  on web1 {
    device drbd0;
    disk /dev/xvdb1;
    address {노드1번IP}:7789;
    meta-disk internal;
 }
\\  on web2 {
    device drbd0;
    disk /dev/xvdb1;
    address {노드2번IP}:7789;
    meta-disk internal;
 }
}
 
  • DRBD 메타 데이터 구성 후 서비스 시작
># drbdadm create-md drbd0
># /etc/init.d/drbd start
 
  • Disk Sync 시작 (1번 서버에서 수행) (DRBD 8.x 해당)
># drbdadm -- --overwrite-data-of-peer primary drbd0
 
  • drbd 실행 후 primary 지정 (1번서버에서 수행)
># drbdadm invalidate drbd0
># drbdadm  primary --force drbd0
 
  • 데이터 동기화 상태 확인DRBD 서비스 시작 (DRBD 8.x 해당)
># cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@web2, 2015-03-09 14:49:34
0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:491520 dw:487424 dr:0 al:0 bm:0 lo:16 pe:0 ua:16 ap:0 ep:1 wo:f oos:9986956
       [>....................] sync'ed:  4.7% (9752/10228)M
        finish: 0:04:05 speed: 40,616 (40,616) want: 102,400 K/sec
 

DRBD 기능 테스트

  • DRBD의 Primary 선언 (master 노드수행)
$> drbdadm primary drbd0
$> cat /proc/drbd    *Primary/Secondary으로 표기되어 있으면 됨
version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@techtx-base-dev02, 2019-04-26 17:54:37
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:664 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 
  • 파일시스템 생성 (master 노드수행)
># mkfs.ext4 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310595 blocks
65529 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
       32768, 98304, 163840, 229376, 294912, 819200, 884736
\\Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
\\This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
  • 마운트 후 파일 생성 (master 노드수행)
$> mount /dev/drbd0 /mnt/
$> df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/drbd0      4.8G   10M  4.6G   1% /mnt
 
  • 임의 파일 생성 (master 노드수행)
$> touch 123
$> ls -l 123
-rw-r--r-- 1 root root 0 Apr 29 13:04 123
 
  • 마운트 해제 및 DRBD의 secondary 선언 (master 노드수행)
$> umount /mnt
$> drbdadm secondary drbd0
$> cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@techtx-base-dev02, 2019-04-26 17:54:37
0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:1235836 nr:0 dw:1235836 dr:1409 al:307 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 
  • DRBD의 Pimary 선언 (slave 노드 수행)
$> drbdadm primary drbd0
$> cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@techtx-base-dev05, 2019-04-26 17:54:29
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:4 nr:1235836 dw:1235840 dr:1017 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 
  • 파일시스템 마운트 후 master노드에서 생성한 파일 확인 (slave 노드 수행)
># mount /dev/drbd0 /mnt/
># ls -l /mnt/
total 1000020
-rw-r--r-- 1 root root          0 Apr 29 13:04 123
 

DRBD장애로 인한 데이터 동기화 실패대응

  • 슬레이브 선언 (Standby 서버에서 수행)
$> drbdadm secondary all
$> drbdadm disconnect all
$> drbdadm -- --discard-my-data connect all
 
  • 마스터 선언 (Active 서버에서 수행)
$> drbdadm primary all
$> drbdadm disconnect all
$>drbdadm connect all
 
  • 데이터 강제 동기화 (마스터에서 작업 수행)
$> drbdadm invalidate drbd0
 
DRBD 기술노트 | igoni.kr

Opensource 정보 : DRBD / DRBDutils (https://www.linbit.com/en/drbd-oss-distribution/) DRBD Stack (A...

igoni.kr

 

 

728x90
반응형
LIST

'storage' 카테고리의 다른 글

RHEL환경의 VDO 구축 / 운영  (0) 2022.07.24
RHEL환경에서 VDO 사용하기  (0) 2022.07.24
centos6.x drbd설치  (0) 2022.07.24
Ceph 스토리지 구축  (0) 2022.07.24
Glusterfs rpm 설치  (0) 2022.07.24
Comments