[파일] LVM(Logical Volume Manager) 설정하기
=======================================================
LVM(Logical Volume Manager) 설정하기
=======================================================
LVM(Logical Volume Manager)은 기존에 있는 여러개의 파티션을 논리적으로 다시 재구성할 수 있는 기능이다. 예를 들어 /dev/hda1과 /dev/hda2를 합쳐서 묶고 다시 그안에서 파티션을 나누는 것이 가능하며 또한 이렇게 구성된 파티션의 크기를 온라인 상태에서도 조정할 수 있다. (그런데 이경우에는 파티션의 자료는 백업을 받아야 하는 듯하다.
redhat의 경우 배포판에 있는 lvm rpm을 설치한다. redhat 7.3의 경우는 lvm-1.0.3-4 이다.
ㅇ 참고자료
LVM 사이트 http://www.sistina.com/products_lvm.htm
LVM HOWTO http://tldp.org/HOWTO/LVM-HOWTO/
Linux@Work 2001. 09 엔터프라이즈환경을 위한 소프트웨어 RAID와 LVM(정진호)
http://kldp.org/HOWTO/html/LVM-HOWTO/index.html
http://tunelinux.pe.kr/bbs/read.php?table=linuxinfo&no=62
The Logical Volume Manager (incl. Raw I/O tips) : http://www.suse.com/en/business/certifications/certified_software/oracle/docs/lvm_whitepaper.pdf
1. PV(Physical Volume) 만들기
사전에 fdisk를 이용하여 파티션을 만들어야한다.
pvcreate /dev/sda6
pvcreate /dev/sda7
pvcreate /dev/sda8
pvcreate /dev/sda9
** 기존에 pv가 있는지는 pvscan 으로 확인
** pvdisplay를 이용하여 현재 상태 확인할 수 있다
2. VG(Volume Group) 만들기
vgcreate racvg /dev/sda6 /dev/sda7
** vgscan 이용하여 볼륨그룹 확인
** vg 정보보기 : vgdisplay
** vg 비활성화되어 있을때 활성화하기 : vgchange -a y racvg (반대는 vgchange -a n racvg)
** vg 삭제하기 : 먼저 비활성화하고나서 vgremove racvg
** 특정 파티션을 볼륨그룹에서 빼기 : 먼저 pvmode /dev/sda6 실행하여 sda6의 내용을 racvg 내부에서 자동으로 옮긴다. 그러고나서 vgreduce /dev/sda6 을 하면 racvg 에 속해있던 /dev/sda6이 이제 어떤 vg에도 속하지 않게 된다.
3. 로지컬 파티션 만들기
lvcreate -L 100M -n system racvg (/dev/racvg/system 100M)
lvcreate -L 500M -n user racvg (/dev/racvg/user 500M)
** lvscan을 이용하여 만들어진 것을 확인할 수 있다.
** lvremove /dev/racvg/system 을 이용하여 삭제
이제 만들어진 로지컬 파티션에 파일시스템(ext2, ext3, reiserfs 등)을 생성하여 이용하면 된다.
4. 기타
ㅇ 기존 볼륨 그룹에 파티션 추가하기
vgextend racvg /dev/sda8 (racvg 볼륨그룹에 /dev/sda8 추가)
vgdisplay로 확인한다
ㅇ 로지컬 볼륨 사이즈 변경
lvextend -L+50 /dev/racvg/system (/dev/racvg/system 50M 추가)
lvreduce -L-50 /dev/racvg/system (/dev/racvg/system 50M 삭제)
ㅇ 로지컬 볼륨 이름 바꾸기
lvrename /dev/racvg/system /dev/racvg/mydata
** 참고자료 : http://vitro.pe.kr/ez2000/ezboard.cgi?db=tech&action=read&dbf=6&page=0&depth=2
아래는 여기 참고자료에서 필요한 부분 발췌. 용량을 변경하는 경우와 스냅샷으로 백업하는 경우.
여기서 스냅샷이란 일정 시점의 이미지를 만들어 백업하는 경우에 사용합니다. 스냅샷을 이용하는 동안에는 변경되는 자료들은 별도로 관리를 하고 스냅샷 백업을 마치면 자동으로 복구하는 방식을 이용하는 듯 합니다. DB등을 백업하는 경우나 자료에 계속 엑세스하는 경우 필요합니다.
– 로지컬 볼륨 확장
(1) ext3일 경우
# umount /var/lib/mysql
# lvextend -L +10g /dev/databases/mysql
# resize2fs /dev/databases/mysql
# mount /dev/databases/mysql /var/lib/mysql
# e2fsadm -L +10g /dev/databases/mysql (위의 lvextend와 resize2fs를 대신)
(2) reiserfs일 경우(언마운트 안하고도 가능)
# lvextend -L +5g /dev/devel/cvs
# resize_reiserfs -f /dev/devel/cvs
– 로지컬 볼륨 축소
(1) ext3 : e2fsadm 을 쓰는 것이 간단
# umount /home
# e2fsadm -L -2g /dev/vg00/home
# mount /dev/vg00/home /home
(2) reiserfs : 크기를 늘릴 때와는 달리 마운트 된 상태에서는 줄일 수 없다.
# umount /usr
# resize_reiserfs -s -1g /dev/vg00/usr
# lvreduce -L -1g /dev/vg00/usr
# mount /dev/vg00/usr /usr
##############################
### lv 스냅샵 만들어 백업 ####
##############################
lvcreate -s -L 400m -n snap /dev/vg/lvol1
-s 스냅샵으로 만든다(/dev/vg/lvol1 보다 크게 잡는다.)
mount /dev/vg/lvol1 /snap(읽기전용으로 마운트됨)
이제 백업하면 된다.