문서의 이전 판입니다!
LVM(Logical Volumn Manager)
LVM은 물리적 스토리지 이상의 추상적 레이어를 생성해서 논리적 스토리지(가상의 블록 장치)를 생성할 수 있게 해준다. 직접적으로 물리적 스토리지를 사용하는 것보다 다양한 측면에서 유연성을 제공한다.
장점
- 유연한 용량
- 크기 조정 가능한 스토리지 풀(Pool)
- 온라인 데이터 재배치
- 편의에 따라 장치 이름 지정
- 디스크 스트라이핑
- 미러 볼륨
- 볼륨 스냅샷
개념
나에게 보여지는 디스크가 하드웨어와 1:1 대응이 되는 것이 아니기 때문에 기본 개념을 이해하고 있는 것이 좋다.
기존 파일시스템이 블록 장치에 직접 접근해서 읽고/쓰기를 했다면 LVM을 사용하면 파일 시스템이 LVM이 만든 가상의 블록 장치에 읽고/쓰기를 하게 된다.
이 관계를 이해해야 한다. 각 물리볼륨은 그룹을 통해서 묶이고, 논리볼륨을 구성하게 된다. (자세한 설명은 여기를 참조한다)
Mounting a Linux LVM volume You do not mount a partition of type "Linux LVM" the same way you mount a partition using a standard Linux file system (e.g. ext2, ext3).
vgconvert 명령어로 LVM1 포멧에서 LVM2 포멧으로 변환이 가능하다.
$ fdisk -l /dev/hda Disk /dev/hda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 19457 156183930 8e Linux LVM
mount /dev/hda2 /tmp/mnt mount: /dev/hda2 already mounted or /tmp/mnt busy
First, let's determine the volume group containing the physical volume /dev/hda2.
$ pvs PV VG Fmt Attr PSize PFree /dev/hda2 VolGroup01 lvm2 a- 148.94G 32.00M /dev/hdb2 VolGroup00 lvm2 a- 114.94G 96.00M
Next, let's list the logical volumes in VolGroup01.
$ lvdisplay /dev/VolGroup01 --- Logical volume --- LV Name /dev/VolGroup01/LogVol00 VG Name VolGroup01 LV UUID zOQogm-G8I7-a4WC-T7KI-AhWe-Ex3Y-JVzFcR LV Write Access read/write LV Status available # open 0 LV Size 146.97 GB Current LE 4703 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:2 --- Logical volume --- LV Name /dev/VolGroup01/LogVol01 VG Name VolGroup01 LV UUID araUBI-4eer-uh5L-Dvnr-3bI6-4gYg-APgYy2 LV Write Access read/write LV Status available # open 0 LV Size 1.94 GB Current LE 62 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:3
The logical volume I would like to "mount" (in purely the computing-related sense) is /dev/VolGroup01/LogVol00. The other logical volume is a swap partition.
$ mount /dev/VolGroup01/LogVol00 /tmp/mnt
LVM logical volume 확장
vg 볼륨이 1000M 남아있고, lv 볼륨이 현재 100M 이다. 이때 lv 볼륨을 200M 로 확장할려고 한다. 현재 lvm 볼륨은 mount 되어 사용중이다. 온라인 상태에서 확장을 할려고 하는거다.
lvextend -L +100M /dev/vg_data/lv_data ( 볼륨을 확장할 device 이름)
resize2fs /dev/vg_data/lv_data ( 온라인 상태에서 확장할 수 있는 명령어, RHEL 5 에서 사용가능)
df -h 명령어로 확인해 보면 mount 된 볼륨이 확장된걸 확인할 수 있다.
용량이 아니라 클러스터 숫자로 확장하려면
-l
옵션을 사용하면 된다.
$ sudo lvextend -l +257 /dev/backup/data Size of logical volume backup/data changed from 2.73 TiB (715017 extents) to 2.73 TiB (715274 extents). Logical volume data successfully resized.