DRBD 운영
1. 파일 시스템으로 포맷하고 mount 하기
primary 노드에서 디바이스를 ext3 로 포맷팅하고 mount
* 주의 : /dev/sdb 를 포맷팅하는 것이 아니라 이를 대신 처리해주는 drbd 논리 디바이스인 /dev/drbd0에 수행해야한다.
$ sudo mkfs.ext3 /dev/drbd0
$ sudo mount /dev/drbd0 /mnt
* 주의 : secondary 노드의 블록 디바이스는 mirroring 만 되는 것이다. mount 되지 않는다. secondary 노드의 블록 디바이스를 mount 하기 위해서는 primary를 secondary 로 만들고 secondary 를 primary 로 만들어야한다.
2. mirroring 확인
primary 노드에서 마운트 진행하였고 여기에 파일을 하나 만든다.
drbd-1$ sudo touch /mnt/test
secondary 에 mirroring 되는지 확인하기 위해 secondary를 primary로 만들 것이다.
primary 노드는 하나밖에 지정못하므로 primary 를 우선 secondary 로 만들어야한다. secondary 로 만들기 전에 우선 umount 해야한다.
# primary를 secondary 만들기
drbd-1$ sudo umount /mnt
drbd-1$ sudo drbdadm secondary test01 #test01은 resource_name이다.
# secondary를 primary 만들기
drbd-2$ sudo drbdadm primary test01
# secondary 노드 였던 drbd-2에서 마운트하여 확인하기
drbd-2$ sudo mount /dev/drbd0 /mnt
drbd-2$ ls -al /mnt
확인해보면 drbd-1에서 생성했던 test 란 파일이 보일 것이다.
3. secondary를 primary 만들기
secondary를 primary 로 만드는 경우는 primary 노드가 죽었을 때 이다.
primary 노드가 죽었다면 secondary를 primary 로 만들어 서비스를 지속시켜야한다.
secondary 노드에서 아래의 명령을 통해 확인하면 primary 노드의 연결이 끊긴것을 확인할 수 있다.
drbd-2$ cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
srcversion: 88927CDF07AEA4F7F2580B2
0: cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown C r-----
ns:0 nr:43 dw:43 dr:1456 al:0 bm:2 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
drbd-2$ sudo service drbd status
drbd driver loaded OK; device status:
version: 8.4.3 (api:1/proto:86-101)
srcversion: 88927CDF07AEA4F7F2580B2
m:res cs ro ds p mounted fstype
0:r0 WFConnection Secondary/Unknown UpToDate/DUnknown C
secondary 를 primary 로 만든다.
drbd-2 $ sudo drbdadm primary {resource_name}
예) resource_name 이 test01일때
drbd-2 $ sudo drbdadm primary test01
secondary 를 primary로 만들었는지 확인
drbd-2$ cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
srcversion: 88927CDF07AEA4F7F2580B2
0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:0 nr:43 dw:43 dr:2912 al:0 bm:2 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
drbd-2$ sudo service drbd status
drbd driver loaded OK; device status:
version: 8.4.3 (api:1/proto:86-101)
srcversion: 88927CDF07AEA4F7F2580B2
m:res cs ro ds p mounted fstype
0:r0 WFConnection Primary/Unknown UpToDate/DUnknown C
4. secondary 노드를 교체
위의 상황처럼 primary 가 죽거나 secondary 가 죽거나 하여 mirroring 할 경로를 바꾸어야할 때
예를 들어 secondary 였던 drbd-2 의 장애로 drbd-3 에 mirroring 을 해야할 경우이다.
우선 primary 의 설정파일을 drbd-3로 바꾼다.
drbd-1 $ sudo vi /etc/drbd.d/{name}.res
예)
drbd-1 $ sudo vi /etc/drbd.d/test.res
resource "test01"
{
protocol C;
disk {on-io-error detach;}
syncer {
}
on drbd-1 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.3.11:7791;
meta-disk internal;
}
on drbd-3 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.3.13:7791;
meta-disk internal;
}
}
그리고 secondary 로 사용할 drbd-3 에도 동일하게 설정하고 drbd를 실행시킨다. 실행시키면 primary 의 연결을 대기한다.
drbd-3 $ sudo service drbd start
그리고 drbd-1 에서 drbd-3 로 연결하는 명령을 수행한다.
drbd-1 $ sudo drbdadm connect test01 # test01은 .res 파일 내의 resource_name 이다.

댓글목록
등록된 댓글이 없습니다.