UNIX/유닉스 공통

LVM 상세내용 - LVM 확장 (online)

99iberty 2012. 7. 26. 16:08

 

 

http://bulgom00.tistory.com/19

요즈음의 이슈는 무중단 서비스가 이슈입니다. 그 중 에서도 사용하던 disk가 거의 다 차갈 무렵의 disk의 확장도 포함되어 있습니다. 이때에 중단 없이 볼륨을 늘려 주는 방법으로는 무엇이 있는가? 바로 LVM의 확장 기능을 사용하는 것입니다. 물론, lvm확장을 위해서는 많은 선결 조건 들이 있습니다.먼저 확장하려는 disk의 볼륨이 lvm으로 구성되어 있어야 한다는 점 또한 서버 등이 물리적으로 disk의 핫스왑의 지원 등의 여러 가지가 있습니다. 이런 조건 들만 완성 되어 있다면 lvm확장 기능을 통해 온라인 확장을 할 수 있습니다. lvm온라인 확장하는 방법을 알아보도록 하겠습니다.

 

1. df -Th로 생성되어 마운트 되어 있는 lvm볼륨을 확인

 

    Filesystem    Type    Size  Used Avail Use% Mounted on

    /dev/sda2     ext3    194G  3.0G  181G   2% /

    /dev/mapper/VolGroup03-LogVol00

                  ext3     16G  173M   15G   2% /data02

    /dev/mapper/VolGroup02-LogVol00

                  ext3     15G  165M   14G   2% /data01

    /dev/sda1     ext3     99M   12M   83M  13% /boot

    tmpfs        tmpfs    753M     0  753M   0% /dev/shm

    data02 -> 16G

    data01-> 15G

2. 생성되어 있는 볼륨 그룹을 확인

    vgdisplay

      --- Volume group ---

      VG Name               VolGroup03

      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               1

      Max PV                0

      Cur PV                1

      Act PV                1

      VG Size               16.12 GB

      PE Size               32.00 MB

      Total PE              516

      Alloc PE / Size       516 / 16.12 GB

      Free  PE / Size       0 / 0  

      VG UUID               pNp3wO-Ken2-QsRB-W9at-qlXw-cEKs-ddAeiy

  

      --- Volume group ---

      VG Name               VolGroup02

      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               1

      Max PV                0

      Cur PV                1

      Act PV                1

      VG Size               14.62 GB

      PE Size               32.00 MB

      Total PE              468

      Alloc PE / Size       468 / 14.62 GB

      Free  PE / Size       0 / 0  

      VG UUID               IaxPDt-FRsT-OA7I-e7Bk-WnfT-896p-lQSgj7

    현재의 Free PE사이즈가 2개의 볼륨 모두 0임을 확인

 

3. 피지컬 볼륨의 상태를 확인

    pvdisplay

      

      --- Physical volume ---

      PV Name               /dev/sda6

      VG Name               VolGroup03

      PV Size               16.14 GB / not usable 15.78 MB

      Allocatable           yes (but full)

      PE Size (KByte)       32768

      Total PE              516

      Free PE               0

      Allocated PE          516

      PV UUID               s8Y5Xm-3cv6-wRmQ-eEgq-fOna-ijdC-GrebZd

  

      --- Physical volume ---

      PV Name               /dev/sda3

      VG Name               VolGroup02

      PV Size               14.65 GB / not usable 22.18 MB

      Allocatable           yes (but full)

      PE Size (KByte)       32768

      Total PE              468

      Free PE               0

      Allocated PE          468

      PV UUID               VnKnTb-4Wfv-AFsQ-rzQg-BsEN-ap9S-clGMBx

 

4. 로지컬 볼륨의 상태를 확인

    lvdisplay

 

      --- Logical volume ---

      LV Name                /dev/VolGroup03/LogVol00

      VG Name                VolGroup03

      LV UUID                m3vb0C-WcYz-5d03-txd0-NGrJ-NSM2-tuthEV

      LV Write Access        read/write

      LV Status              available

      # open                 1

      LV Size                16.12 GB

      Current LE             516

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     256

      Block device           253:0

  

      --- Logical volume ---

      LV Name                /dev/VolGroup02/LogVol00

      VG Name                VolGroup02

      LV UUID                0XTmyT-CEde-byDJ-AkXD-lHfd-3FEq-iwq4dN

      LV Write Access        read/write

      LV Status              available

      # open                 1

      LV Size                14.62 GB

      Current LE             468

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     256

      Block device           253:1

 

5. lvm에 추가할 디스크를 확인

    적당히 추가할 만큼의 파티션을 2 생성  

    Disk /dev/hdb: 30.7 GB, 30736613376 bytes

    16 heads, 63 sectors/track, 59556 cylinders

    Units = cylinders of 1008 * 512 = 516096 bytes

    fdisk 통해 hdb1,hdb2 3G 생성 한다.

6. 생성된 hdb1, hdb2를 pvcreate해준다.

    (pvcreate -> lvm에서 사용할 수 있도록 피지컬 볼륨을 생성하는 작업)

    #pvcreate /dev/hdb1

    #pvcreate /dev/hdb2

7. pv를 생성 후 생성된 pv를 기존의 볼륨그룹에 추가하여준다.

    #vgextend VolGroup02 /dev/hdb1

    #vgextend VolGroup03 /dev/hdb2

8. 볼륨그룹을 확장 후 볼륨그룹의 상태를 확인

    vgdisplay

       Device Boot      Start         End      Blocks   Id  System

 

      --- Volume group ---

      VG Name               VolGroup03

      System ID            

      Format                lvm2

      Metadata Areas        2

      Metadata Sequence No  3

      VG Access             read/write

      VG Status             resizable

      MAX LV                0

      Cur LV                1

      Open LV               1

      Max PV                0

      Cur PV                2

      Act PV                2

      VG Size               18.91 GB

      PE Size               32.00 MB

      Total PE              605

      Alloc PE / Size       516 / 16.12 GB

      Free  PE / Size       89 / 2.78 GB

      VG UUID               pNp3wO-Ken2-QsRB-W9at-qlXw-cEKs-ddAeiy

  

      --- Volume group ---

      VG Name               VolGroup02

      System ID            

      Format                lvm2

      Metadata Areas        2

      Metadata Sequence No  3

      VG Access             read/write

      VG Status             resizable

      MAX LV                0

      Cur LV                1

      Open LV               1

      Max PV                0

      Cur PV                2

      Act PV                2

      VG Size               17.41 GB

      PE Size               32.00 MB

      Total PE              557

      Alloc PE / Size       468 / 14.62 GB

      Free  PE / Size       89 / 2.78 GB

      VG UUID               IaxPDt-FRsT-OA7I-e7Bk-WnfT-896p-lQSgj7

    확장 후의 vgdisplay 확인해 보면 2개의 볼륨그룸의 Free PE 사이즈가 89 늘어나 있는 것을 확인 수 있다.

 

9. 확장된 볼륨 그룹의 나머지 사이즈를 로지컬 볼륨에 확장하여준다.

    #lvextend -l +89 /dev/VolGroup02/LogVol00

    #lvextend -l +89 /dev/VolGroup03/LogVol00

    이때에 옵션에 따라 위와 같이 - 옵션을 주어 PE 사이즈로 lv 확장할 수도 있고 -L옵션을 주어 PE사이즈가 아닌 +500M

    와 같이 용량 단위로도 확장이 가능하다.

 

10. 다시한번 vgdisplay하여 vg의 상태르 확인하면 Free PE 사이즈가 0으로 바뀌어 있고 모든 용량이 할당 되었음을 수 있다.

    

     정확한 변화를 보기 원한다면 lvdisplay 확인해서 lv값이 늘어나 있는지를 확인하면 확실히 알 수 있다.

  

      --- Volume group ---

      VG Name               VolGroup03

      System ID            

      Format                lvm2

      Metadata Areas        2

      Metadata Sequence No  4

      VG Access             read/write

      VG Status             resizable

      MAX LV                0

      Cur LV                1

      Open LV               1

      Max PV                0

      Cur PV                2

      Act PV                2

      VG Size               18.91 GB

      PE Size               32.00 MB

      Total PE              605

      Alloc PE / Size       605 / 18.91 GB

      Free  PE / Size       0 / 0  

      VG UUID               pNp3wO-Ken2-QsRB-W9at-qlXw-cEKs-ddAeiy

  

      --- Volume group ---

      VG Name               VolGroup02

      System ID            

      Format                lvm2

      Metadata Areas        2

      Metadata Sequence No  4

      VG Access             read/write

      VG Status             resizable

      MAX LV                0

      Cur LV                1

      Open LV               1

      Max PV                0

      Cur PV                2

      Act PV                2

      VG Size               17.41 GB

      PE Size               32.00 MB

      Total PE              557

      Alloc PE / Size       557 / 17.41 GB

      Free  PE / Size       0 / 0  

      VG UUID               IaxPDt-FRsT-OA7I-e7Bk-WnfT-896p-lQSgj7

  

11. 그럼 df -Th를 해서 용량이 늘어나 있는 지를 확인해보자.

     ..... 용량이 변화하지 않은 것을 있을 것이다...

    OS 약간 멍청한 면이있어서 볼륨이 확장 돠었지만 알려주지 않으면 모른다. (멍청한녀석....)

    그래서

    #resize2fs /dev/VolGroup02/LogVol00

    #resize2fs /dev/VolGroup03/LogVol00

   해주어 볼륨의 사이즈가 변경 되어 있다는 것을 알려 주어야 합니다.

   이렇게 한다면 볼륨을 umount 하지 않고 온라인 상에서 볼륨을 확장 해줄 수 있습니다.

    ps: 상기의 방법은 RHEL5에 최적화 되어 있습니다.

         RHEL4에서는 resize2fs명령이 볼륨이 마운트 된 상태에서는 지원되지 않습니다. (온라인 확장 불가)

         확장할 볼륨의 마운트를 풀고 작업을 해 주어야 합니다. 하지만 마운트를 풀지 않고 ext2online란 명령어로 온라인 확장이

         가능합니다. ext2online 사용방법은 resize2fs 같은 방밥으로 사용하시면 됩니다.

'UNIX > 유닉스 공통' 카테고리의 다른 글

서비스 포트 확인명령 (# netstat -nlpt)  (0) 2013.04.15
LVM 상세내용 - 복구방법  (0) 2012.07.26
FIND 명령어 사용방법  (0) 2012.07.25
syslogd 관리  (0) 2012.07.25
리눅스 at 명령  (0) 2012.07.25