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 |