차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

drbd_에서_lvm_사용시_파일시스템_및_디스크_확장_방법 [2016/06/02 11:05] (현재)
koov 만듦
줄 1: 줄 1:
 +====== DRBD 에서 LVM 사용시 파일시스템 및 디스크 확장 방법 ======
 +
 +원본링크 : https://​mantech.jira.com/​wiki/​pages/​viewpage.action?​pageId=130777162
 +
 +===== 용어 설명 =====
 +
 +<WRAP center round box 90%>
 +DRBD on LVM은 DRBD가 Backing Device로 LVM(Logical Volume Manager)의 LV(Logical Volume)을 사용하는 경우를 말합니다. ​
 +LVM on DRBD은 DRBD가 Backing Device로 Hard Disk Device(예, sda# 등)를 사용하고,​ DRBD를 LVM의 PV(Physical Volume)로 구성하는 경우를 말합니다. ​
 +</​WRAP>​
 + 
 +DRBD가 Backing Device로 LVM의 LV를 사용(DRBD on LVM)할 경우, resize명령을 이용하여 볼륨 사이즈를 확장하게되면 DRBD 입장에서는 Backing Device의 사이즈가 늘어나게 됩니다. 이는 복제되고 있는 볼륨에 복제영역이 추가되는 것을 의미합니다.
 +DRBD의 meta data에는 DRBD device의 사이즈 정보도 포함되어 있기 때문에, DBRD의 meta data 갱신이 필요하고 drbdadm resize는 meta data를 늘어난 LV 사이즈로 갱신합니다. Secondary Node도 마찬가지의 이유로 동일 작업(lvextend , drbdadm resize)이 수행되어야 합니다. ​
 + 
 +이 장에서는 LVM 의 LV를 Backing Device 로 사용하는 DRBD 환경에서 온라인 중에 파일시스템을 확장하는 방법에 대해 다음의 예제에서 상세하게 설명합니다. ​
 +(다음 예제에서 운영 서버는 '​DRBD1',​ 대기 서버는 '​DRBD2',​ 리소스 이름은 r1 이란 이름으로 MCCS에 등록되어 있습니다. LV 사이즈를 1G에서 2G로 증가시키고,​ 동일사이즈를 DRBD에 인식시키는 예시입니다. )
 + 
 +예시된 /​etc/​drbd.conf 파일 정보 입니다. ​
 +<WRAP prewrap>
 +<code vim /​etc/​drbd.conf>​
 +resource r1 {
 +protocol C;
 +disk {
 +on-io-error detach;
 +
 +on DRBD1 { 
 +device /dev/drbd0;
 +disk /​dev/​vg1/​lv1;​
 +address 100.100.110.1:​7791;​
 +flexible-meta-disk internal;
 +}
 +on DRBD2 { 
 +device /dev/drbd0;
 +disk /​dev/​vg1/​lv1;​
 +address 100.100.110.2:​7791;​
 +flexible-meta-disk internal;
 +}
 +}
 +</​code>​
 +</​WRAP>​
 + 
 +예시된 LVM 구성정보 입니다. ​
 +
 +LVM 구성정보
 +<WRAP prewrap>
 +<code bash>
 +--- Volume group ---
 +VG Name vg1
 +System ID 
 +Format lvm2
 +Metadata Areas 1
 +Metadata Sequence No 2
 +VG Access read/write
 +VG Status resizable
 +MAX LV 0
 +Cur LV 1
 +Open LV 0
 +Max PV 0
 +Cur PV 1
 +Act PV 1
 +VG Size 3.00 GiB
 +PE Size 4.00 MiB
 +Total PE 767
 +Alloc PE / Size 256 / 1.00 GiB
 +Free PE / Size 511 / 2.00 GiB
 +VG UUID a4AlxN-1MPk-lAJ0-0JJH-tTDz-QlFv-he1TpI
 +
 +--- Logical volume ---
 +LV Name /​dev/​vg1/​lv1
 +VG Name vg1
 +LV UUID kwmHaH-bOdX-w3D2-Ktcq-CuZ8-u944-37NCNc
 +LV Write Access read/write
 +LV Status available
 +# open 0
 +LV Size 1.00 GiB
 +Current LE 256
 +Segments 1
 +Allocation inherit
 +Read ahead sectors auto
 +- currently set to 256
 +Block device 253:3
 +
 +--- Physical volumes ---
 +PV Name /​dev/​sdb ​
 +PV UUID FdalSR-ckDD-xk1J-5g0t-7pKU-f18N-IM7oyT
 +PV Status allocatable
 +Total PE / Free PE 767 / 511
 +</​code>​
 +</​WRAP>​
 +
 +1.  DRBD Device가 LV 를 Backing Device로 사용하고 있으므로,​ 사이즈를 늘려주기 위해서는 LV의 사이즈를 늘려주어야 합니다. 이때, 양쪽 노드에서 LV 사이즈를 늘려주어야 합니다. ​
 +
 +2. DRBD1 노드에서 Online 중에 LV의 사이즈를 1G에서 2G로 늘립니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD1 ~]# lvextend -L 2G /​dev/​vg1/​lv1
 +</​code>​
 +</​WRAP>​
 +
 +3. DRBD1 노드에서 늘어난 LV 사이즈를 확인합니다. ​                                                                 ​
 +<WRAP prewrap>
 +<code bash>
 + ​[root@DRBD1 ~]# lvdisplay /​dev/​vg1/​lv1
 +  --- Logical volume ---
 +  LV Name                /​dev/​vg1/​lv1
 +  VG Name                vg1
 +  LV UUID                kwmHaH-bOdX-w3D2-Ktcq-CuZ8-u944-37NCNc
 +  LV Write Access ​       read/write
 +  LV Status ​             available
 +  # open                 0
 +  LV Size                2.00 GiB
 +  Current LE             512
 +  Segments ​              1
 +  Allocation ​            ​inherit
 +  Read ahead sectors ​    auto
 +  - currently set to     256
 +  Block device ​          253:3
 +</​code>​
 +</​WRAP>​
 +
 +4. DRBD2 노드에서 LV의 사이즈를 1G에서 2G로 늘립니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD2 ~]# lvextend -L 2G /​dev/​vg1/​lv1
 +</​code>​
 +</​WRAP>​
 +
 +5. DRBD2 노드에서 늘어난 LV 사이즈를 확인합니다.
 +<WRAP prewrap>
 +<code bash>
 + ​[root@DRBD2 ~]# lvdisplay /​dev/​vg1/​lv1
 +  --- Logical volume ---
 +  LV Name                /​dev/​vg1/​lv1
 +  VG Name                vg1
 +  LV UUID                c8h9wm-mSiC-Jhq8-i9BT-0Bd8-fuc6-DtJ3IY
 +  LV Write Access ​       read/write
 +  LV Status ​             available
 +  # open                 0
 +  LV Size                2.00 GiB
 +  Current LE             512
 +  Segments ​              1
 +  Allocation ​            ​inherit
 +  Read ahead sectors ​    auto
 +  - currently set to     256
 +  Block device ​          253:3
 +</​code>​
 +</​WRAP>​
 +
 +6. DRBD1노드에서 DRBD에게 늘어난 LV의 사이즈를 인식시켜 주는 작업을 진행합니다.  ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD1 ~]# drbdadm resize r1
 +</​code>​
 +</​WRAP>​
 +
 +7. DRBD 메타데이터에도 LV의 사이즈가 늘어난 상태로 인식이 되고, 증가된사이즈 만큼 resync가 진행됩니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD2 ~]# cat /​proc/​drbd ​
 +version: 8.3.13 (api:​88/​proto:​86-96)
 +GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by dag@Build64R6,​ 2012-05-07 11:52:13
 + 0: cs:​SyncSource ro:​Primary/​Secondary ds:​UpToDate/​Inconsistent C r-----
 +    ns:365400 nr:0 dw:0 dr:374512 al:0 bm:22 lo:1 pe:29 ua:64 ap:0 ep:1 wo:b oos:1735324
 +        [==>​.................] sync'​ed:​ 17.4% (1735324/​2097052)K
 +        finish: 0:01:27 speed: 19,872 (17,224) K/sec
 +</​code>​
 +</​WRAP>​
 +
 +8. Resync가 완료되면,​ DRBD2노드(Target)에서도 동일하게 DRBD의 meta data 갱신을 진행합니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD2~]#​ drbdadm resize r1
 +</​code>​
 +</​WRAP>​
 +
 +9. 양쪽 노드 모두에 ​ LV의 사이즈가 증가되고,​ DBRD가 ​ Resize된 정보 까지 모두 인식이 되었지만,​ 파일시스템에서는 2G로 인식하지 않고, 여전히 1G로 인식됩니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD1 ~]# df -h
 +Filesystem ​           Size  Used Avail Use% Mounted on
 +/​dev/​mapper/​vg_drbd1-lv_root
 +                       ​15G ​ 4.7G  9.0G  35% /
 +tmpfs                 ​499M ​  ​88K ​ 499M   1% /dev/shm
 +/​dev/​sda1 ​            ​485M ​  ​33M ​ 428M   7% /boot
 +/​dev/​drbd0 ​ 1008M   ​34M ​ 924M   4% /test
 +</​code>​
 +</​WRAP>​
 +
 +10. DRBD1노드에서 resize2fs 명령을 이용하여,​ 파일시스템에 늘어난 사이즈를 인식시킵니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD1 ~]# resize2fs /dev/drbd0
 +resize2fs 1.41.12 (17-May-2010)
 +Filesystem at /dev/drbd0 is mounted on /test; on-line resizing required
 +old desc_blocks = 1, new_desc_blocks = 1
 +Performing an on-line resize of /dev/drbd0 to 524288 (4k) blocks.
 +The filesystem on /dev/drbd0 is now 524288 blocks long.
 +</​code>​
 +</​WRAP>​
 +
 +11. DRBD1 노드에서 파일시스템 사이즈를 최종 확인합니다. ​
 +<WRAP prewrap>
 +<code bash>
 +[root@DRBD1 ~]# df -h
 +Filesystem ​           Size  Used Avail Use% Mounted on
 +/​dev/​mapper/​vg_drbd1-lv_root
 +                       ​15G ​ 4.7G  9.0G  35% /
 +tmpfs                 ​499M ​  ​88K ​ 499M   1% /dev/shm
 +/​dev/​sda1 ​            ​485M ​  ​33M ​ 428M   7% /boot
 +/​dev/​drbd0 ​  ​2.0G ​  ​34M ​ 1.9G   2% /test
 +</​code>​
 +</​WRAP>​
  
  • drbd_에서_lvm_사용시_파일시스템_및_디스크_확장_방법.txt
  • 마지막으로 수정됨: 2016/06/02 11:05
  • 저자 koov