이제 정상적으로 생성된 LVM을 관리하는 방법에 대해서 알아보도록 하자.
앞에서 설명했지만 LVM은 효과적인 디스크 관리를 위한 시스템이다.
어떻게 볼륨들을 관리하는지에 대해서 알아보도록 하자.
앞에서 설명했지만 LVM은 효과적인 디스크 관리를 위한 시스템이다.
어떻게 볼륨들을 관리하는지에 대해서 알아보도록 하자.
VG 용량 조절하기
처음에 나왔던 그림을 잘 이해했다면 VG위에 LV를 만든다는것을 알것이다.
만약에 3G짜리 볼륨그룹(VG)이 있다고 가정하자. 거기에 3G 짜리 LV를 만들어서 사용중이라면
LV을 더 늘리는 것은 불가능하다. 따라서 이때는 VG를 먼저 늘리고 그다음에 LV를 늘려줘야 한다.
VG를 늘리는것은 PV만 추가해 주면 된다. 즉 물리적인 파티션이나 디스크를 VG에 포함시켜주면 된다.
먼저 현재 VG상태를 보도록 하자.
만약에 3G짜리 볼륨그룹(VG)이 있다고 가정하자. 거기에 3G 짜리 LV를 만들어서 사용중이라면
LV을 더 늘리는 것은 불가능하다. 따라서 이때는 VG를 먼저 늘리고 그다음에 LV를 늘려줘야 한다.
VG를 늘리는것은 PV만 추가해 주면 된다. 즉 물리적인 파티션이나 디스크를 VG에 포함시켜주면 된다.
먼저 현재 VG상태를 보도록 하자.
[root@linuxstudy ~]# vgdisplay --- Volume group --- VG Name VG0 System ID Format lvm2 Metadata Areas 2 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 2 Act PV 2 VG Size 2.81 GB PE Size 4.00 MB Total PE 719 Alloc PE / Size 384 / 1.50 GB Free PE / Size 335 / 1.31 GB VG UUID Xyye0d-VZGJ-gFfX-KLhU-LSe4-KK6r-2HkGP1 [root@linuxstudy ~]#
총 2.81GB 의 VG에 남은 용량은 1.31GB 이다.
용량을 늘리기 위해서는 PV가 있어야 한다.
새로운 하드 디스크를 추가했다고 가정해 보겠다.(/dev/sdc)
먼저 PV를 생성해 준다. 이번에는 파티션 작업을 하지 않고 바로 디스크를 통째로 PV로 만들어 본다.
pvcreate /dev/sdc
정상적으로 생성이 되었다면 만들어둔 VG를 확장해 보겠다.
vgextend VG0 /dev/sdc
VG가 정상적으로 늘어났는지 vgdisplay 명령으로 살펴보도록 하자.
[root@linuxstudy ~]# vgdisplay --- Volume group --- VG Name VG0 System ID Format lvm2 Metadata Areas 3 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 3 Act PV 3 VG Size 10.80 GB PE Size 4.00 MB Total PE 2766 Alloc PE / Size 384 / 1.50 GB Free PE / Size 2382 / 9.30 GB VG UUID Xyye0d-VZGJ-gFfX-KLhU-LSe4-KK6r-2HkGP1 [root@linuxstudy ~]#
남아있는 용량이 9.3GB로 늘어났다..^^;
반대로 VG용량을 줄이고자 한다면 vgreduce 명령을 이용하면 된다.
vgreduce VG명 PV장치명
LV용량 조절하기
LV를 늘리거나 줄이고자 한다면 lvextend ,lvreduce 명령을 이용하면 된다.
예제) /dev/VG0/lvm_home 의 용량을 1G를 추가하는 과정이다.
예제) /dev/VG0/lvm_home 의 용량을 1G를 추가하는 과정이다.
[root@linuxstudy ~]# lvdisplay --- Logical volume --- LV Name /dev/VG0/lvm_home VG Name VG0 LV UUID VOfpxj-oF6N-bSZ8-TW7c-15GZ-1tSX-DAa8bd LV Write Access read/write LV Status available # open 1 LV Size 1.50 GB Current LE 384 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 [root@linuxstudy ~]# lvextend -L +1g /dev/VG0/lvm_home Extending logical volume lvm_home to 2.50 GB Logical volume lvm_home successfully resized [root@linuxstudy ~]# lvdisplay --- Logical volume --- LV Name /dev/VG0/lvm_home VG Name VG0 LV UUID VOfpxj-oF6N-bSZ8-TW7c-15GZ-1tSX-DAa8bd LV Write Access read/write LV Status available # open 1 LV Size 2.50 GB Current LE 640 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
1.5Gdptj 2.5G로 용량이 늘어났다.
주의
LV의 용량을 늘였다고 바로 사용이 가능한것은 아니다.
이미 마운트 시켜둔 /home 에 대해서 한번 살펴보도록 하자.
/dev/VG0/lvm_home 은 /home에 마운트가 되어 있었다.
아래를 보도록 하자.
LV의 용량을 늘였다고 바로 사용이 가능한것은 아니다.
이미 마운트 시켜둔 /home 에 대해서 한번 살펴보도록 하자.
/dev/VG0/lvm_home 은 /home에 마운트가 되어 있었다.
아래를 보도록 하자.
[root@linuxstudy ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 6.7G 976M 5.4G 16% / tmpfs 125M 0 125M 0% /dev/shm /dev/mapper/VG0-lvm_home 1.5G 2.3M 1.4G 1% /home [root@linuxstudy ~]#
LV를 늘렸음에도 불구하고 아직도 1.5G 이다.
파일시스템 레벨에서의 resize가 이루어지지 않았기 때문이다.
아래와 같이 resize를 해주도록 하자.
[root@linuxstudy ~]# umount /dev/VG0/lvm_home [root@linuxstudy ~]# resize2fs /dev/VG0/lvm_home resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/VG0/lvm_home to 655360 (4k) blocks. The filesystem on /dev/VG0/lvm_home is now 655360 blocks long. [root@linuxstudy ~]# mount /dev/VG0/lvm_home /home [root@linuxstudy ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 6.7G 976M 5.4G 16% / tmpfs 125M 0 125M 0% /dev/shm /dev/mapper/VG0-lvm_home 2.5G 2.3M 2.4G 1% /home [root@linuxstudy ~]#
주의
ext2 파일시스템인 경우에는 online resize가 안된다. 따라서 resize 하기 전에 반드시 umount 시켜줘야 한다. 커널2.6대의 ext3 파일시스템은 online 확장이 가능하다. 즉 mount 가 되어 있더라도 바로 사이즈를 조절할 수 있다. ext2,ext3가 아닌 경우에는 각각의 파일시스템의 특성이 있으니 확인하고 작업을 하도록 하자.
LV용량을 줄이기 위해서 lvreduce 명령을 사용하도록 하자.
예제) 만들어진 LV 에서 1G를 줄인다.
예제) 만들어진 LV 에서 1G를 줄인다.
lvreduce -L -1G /dev/VG0/lvm_home
스냅샷
LVM의 재미난 기능중에 하나인 snapshot 을 사용해 보도록 하자.
snapshot이란 디스크 상태를 고정시켜 주는 기능이다. 어렵게 들릴지 모르겠지만 예를 들어보도록 하겠다.
리눅스 시스템은 다중 사용자 시스템이다. 그래서 항상 시스템은 변경 사항이 많다.
관리자는 중요 데이터에 대해서 백업 작업을 한다. 그런데 백업하는 시점에서 변경사항이 발생한다면?
그 백업은 완벽한 백업이 될 수가 없을 것이다. 원하는 데이터가 포함이 안되어 있을 수도 있으니깐..^^;
이런 경우에 유용하게 사용할수 있는것이 바로 LVM의 snapshot 기능이다.
스냅샷을 만드는 과정을 살펴보도록 하자. 생성하는 과정은 LV생성과정과 거의 비슷하다.
snapshot이란 디스크 상태를 고정시켜 주는 기능이다. 어렵게 들릴지 모르겠지만 예를 들어보도록 하겠다.
리눅스 시스템은 다중 사용자 시스템이다. 그래서 항상 시스템은 변경 사항이 많다.
관리자는 중요 데이터에 대해서 백업 작업을 한다. 그런데 백업하는 시점에서 변경사항이 발생한다면?
그 백업은 완벽한 백업이 될 수가 없을 것이다. 원하는 데이터가 포함이 안되어 있을 수도 있으니깐..^^;
이런 경우에 유용하게 사용할수 있는것이 바로 LVM의 snapshot 기능이다.
스냅샷을 만드는 과정을 살펴보도록 하자. 생성하는 과정은 LV생성과정과 거의 비슷하다.
lvcreate -L 3.5G -s -n homesnap /dev/VG0/lvm_home
이미 만들어진 LV /dev/VG0/lvm_home 에 대한 스냅샷을 만드는 과정이다.
스냅샷 볼륨의 사이즈는 보통 타겟 LV 사이즈와 동일하게 해주는것이 좋다.
물론 실제로는 많은 사이즈가 필요한 것은 아니다
제대로 만들어 졌는지 lvdisplay 명령으로 확인해 보도록 하자.
[root@linuxstudy home]# lvdisplay --- Logical volume --- LV Name /dev/VG0/lvm_home VG Name VG0 LV UUID VOfpxj-oF6N-bSZ8-TW7c-15GZ-1tSX-DAa8bd LV Write Access read/write LV snapshot status source of /dev/VG0/homesnap [active] LV Status available # open 1 LV Size 3.50 GB Current LE 896 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Name /dev/VG0/homesnap VG Name VG0 LV UUID I9rdO2-axrE-9ymP-8LvK-7Y9h-j73m-Xz6UWU LV Write Access read/write LV snapshot status active destination for /dev/VG0/lvm_home LV Status available # open 0 LV Size 3.50 GB Current LE 896 COW-table size 3.50 GB COW-table LE 896 Allocated to snapshot 0.00% Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 [root@linuxstudy home]#
만들어진 snapshot 을 마운트 해보자.
mount /dev/VG0/homesnap /mnt
/home 과 동일한 내용이 있는지 확인해 보자.
snapshot은 명령을 내린 시점의 /home 을 정확하게 기록을 하고 있고 변경되지 않는다.
따라서 완벽한 백업을 원한다면 snapshot을 만들어서 마운트한 /mnt 을 백업을 해주면 된다.
Pages: 1 2