...
Info | ||||
---|---|---|---|---|
수동절체 수동 절체를 위한 절차는 다음과 같습니다.
|
리소스 중지
bsradm down 명령을 통해 리소스를 중지할 수 있습니다. down 은 앞서 설명한 리소스 up 과정의 역순에 따라 중지가 수행하고 만약 리소스가 승격된 상태 였다면 강등을 먼저 수행하고 중지합니다. 즉 리소스 강등, 복제 단절, 볼륨 분리(detach), 리소스 해제의 순으로 down 합니다.
...
Info |
---|
복제 프로토콜 변경 운영 중 복제 프로토콜을 변경하기 위해서 프로토콜, 송신버퍼, 혼잡제어 설정을 같이 변경해야 합니다.
|
...
운영 노드를 Primary 상태로 두고 양 노드의 볼륨의 크기를 LVM을 통해 늘린 후 한 노드에서 다음의 과정을 통해 새롭게 늘어난 크기를 bsr 에 인식시킵니다. 아래는 LV 로 구성된 580MB 크기로 구성된 볼륨을 확장하는 예 입니다.
LV 구성. 기존 사이즈는 580M로 구성되어 있는 상태
Code Block [root@bsr01 /]# lvs /dev/local/r0 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert r0 local -wi-ao---- 580.00m
conf 구성. /dev/local/r0 가 /dev/bsr0의 backing device로 구성된 상태
Code Block volume 0 { device /dev/bsr0; disk /dev/local/r0; meta-disk /dev/loop3 /bsr_meta/r0_meta; }
LV 볼륨 확장을 위해 PV 추가 생성
Code Block [root@bsr01 /]# pvcreate /dev/sdf1 Physical volume "/dev/sdf1" successfully created.
VG 확장
Code Block [root@bsr01 /]# vgs local VG #PV #LV #SN Attr VSize VFree local 3 1 0 wz--n- 588.00m 8.00m [root@bsr01 /]# vgextend local /dev/sdf1 Volume group "local" successfully extended [root@bsr01 /]# vgs local VG #PV #LV #SN Attr VSize VFree local 4 1 0 wz--n- 1.52g 980.00m
LV를 1.5GB 로 확장
Code Block [root@bsr01 /]# lvextend -L 1.5G /dev/local/r0 Size of logical volume local/r0 changed from 580.00 MiB (145 extents) to 1.50 GiB (384 extents). Logical volume local/r0 successfully resized. [root@bsr01 /]# lvs /dev/local/r0 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert r0 local -wi-ao---- 1.50g
3~5번 단계를 모든 노드에서 동일하게 수행
확장된 size 를 resize 명령을 사용하여 bsr 에게 알림 (primary 노드에서 수행)
Code Block [root@bsr01 /]# bsrsetup status --v --s r0 r0 node-id:0 role:Primary suspended:no write-ordering:drain req-pending:0 volume:0 minor:0 disk:UpToDate size:593920 read:1129876 written:248320 al-writes:23 bm-writes:0 upper-pending:0 lower-pending:0 al-suspended:no al-pending-changes:0 al-used:0 blocked:no bsr02 node-id:1 connection:Connected role:Secondary congested:no volume:0 replication:Established peer-disk:UpToDate resync-suspended:no received:0 sent:588328 out-of-sync:0 pending:0 unacked:0 bsr03 node-id:2 connection:Connected role:Secondary congested:no volume:0 replication:Established peer-disk:UpToDate resync-suspended:no received:0 sent:588704 out-of-sync:0 pending:0 unacked:0 [root@bsr01 /]# bsradm resize r0
resize 명령 실행 후 확장된 영역에 대해 부분 동기화가 진행되며, size 값이 593920에서 1572864으로 증가된 것을 확인할 수 있음
Code Block [root@bsr01 /]# bsrsetup status --v --s r0 r0 node-id:0 role:Primary suspended:no write-ordering:drain req-pending:0 volume:0 minor:0 disk:UpToDate size:1572864 read:1582588 written:248320 al-writes:31 bm-writes:0 upper-pending:0 lower-pending:2 al-suspended:no al-pending-changes:0 al-used:0 blocked:no bsr02 node-id:1 connection:Connected role:Secondary congested:yes volume:0 replication:SyncSource peer-disk:Inconsistent done:47.46 resync-suspended:no received:0 sent:762944 out-of-sync:826368 pending:35 unacked:80 bsr03 node-id:2 connection:Connected role:Secondary congested:yes volume:0 replication:SyncSource peer-disk:Inconsistent done:49.15 resync-suspended:no received:0 sent:786064 out-of-sync:799744 pending:27 unacked:68
LV 확장과 resize 명령까지 성공하였다면 resize2fs 명령을 사용하여 filesystem을 확장시켜 주어야 한다. (primary 노드에서 실행)
Code Block [root@bsr01 /]# df -h Filesystem Size Used Avail Use% Mounted on ... /dev/bsr0 555M 544M 0 100% /mnt0 [root@bsr01 /]# resize2fs /dev/bsr0 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/bsr0 is mounted on /mnt0; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/bsr0 is now 393216 blocks long. [root@bsr01 /]# df -h ... /dev/bsr0 1.5G 545M 878M 39% /mnt0
볼륨의 늘어난 영역에 대한 새로운 동기화가 수행됩니다.
Info | ||||||
---|---|---|---|---|---|---|
연결이 disconnect 된 상태에서 볼륨 크기를 조정하려면 다음의 과정을 따릅니다.
% 재 연결시 주의 사항
|
...
새로운 Current UUID를 생성하고 Bitmap UUID를 지워서 초기 동기화를 건너 뛰는 데 사용할 수 있습니다. 이 사용 예는 지금 막 생성된 메타 데이터에서만 작동합니다.
양 노드에서, 메타를 초기화 하고 장치를 구성합니다. bsradm -- --force create-md res
양 노드의 리소스를 기동하고 초기 핸드쉐이크 시점에 서로의 볼륨 크기를 인식합니다. bsradm up res
양 노드가 Secondary/Secondary, Inconsistent/Inconsistent 로 연결된 상태에서 새로운 UUID를 생성하고 비트맵을 클리어 합니다. bsradm new-current-uuid --clear-bitmap res
이제 양노드는 Secondary/Secondary, UpToDate/UpToDate 상태가 되고 한 쪽을 Primary 로 승격한 후 파일시스템을 생성합니다. bsradm primary res mkfs -t fs-type $(bsradm sh-dev res)
이러한 방식을 사용했을 때 명백한 부작용 중 하나는 다른 방법을 써서 양측을 동일하게 만들지 않는 한 복제본에 이전 가비지 데이터가 가득차 있다는 것입니다. 여기서 온라인 검사를 하게되면 동기화되지 않은 블록들을 많이 찾게 될 것입니다. 볼륨에 이미 데이터가 있는 상황에서는 이 방식을 절대 사용해선 안됩니다. 언뜻보기에는 작동하는 것처럼 보일 수 있지만 다른 노드로 스위치오버 하면 이미 있던 데이터는 복제되지 않았으므로 데이터가 깨집니다.
...