Logical Volume Manager
1. 기본 용어
PV, PE : Physical Volume, Physical Extend
VG : Volume Group
LV, LE: Logical Volume, Logical Extend
2. 용어 설명
PV : pv는 물리적인 window계열의 물리적 Partition에 mapping되는 개념이다.
Disk하나를 PV로 선택할 수도 있고 나뉘어진 여러 partition을 개별 PV로 선택할 수 도 있다.
PE : PV를 만들때 -s 옵션을 주게 되면 effective size of physical volume (즉 효율적 블럭 단위)를 생성하는데 이때 개별 block이 PE가 된다.
ex) 1G disk를 1M단위의 블럭을 만들경우 pe00000 ~ pe00999까지의 PE가 생성됨
확인 #> lvdisplay -v /dev/~
#> pvdisplay -v /dev/~
VG : 물리적인 PV들을 묶어 하나의 거대한 logical volume Group을 만든다.
ex) PV1 :1G PV2 :2G PV3:3G 일때 VG가 PV1~3까지를 포함하면 6G의 VG가 생성됨.
VL : VG 안에서 사용자가 원하는 크기대로 나누어 놓은 Logical Volume
ex) 위의 6G를 사용자가 5G / 0.5G/ 0.5G LV1~3까지와 같이 편의 대로 만들 수 있다.
LE : VL을 생성 될때 만들어지는 effective size of Logical volume 을 말한다.
3. 실습을 통한 정리
전제 )
oracle의 기본 dir : /oracle
파티션 3개를 만드시오
vg이름 : vgora1
table : 4G : 4096MB /oracle/table
index : 2G : 2048MB /oracle/index
log : 2G : 2048MB /oracle/log
/dev/disk/disk01
/dev/disk/disk02
/dev/disk/disk03
=============== 1. 생성 시작 ==============
작업 순서 : 공간확보 -> PV -> DSF -> VG -> LV -> fs -> 마무리
1. 공간확보
위의 /dev/disk/disk01~03 까지를 이용
#>lvlnboot -v (부팅 disk확인 -> 피할것)
#> ioscan -m dsf (사용중인 disk확인)
or
#> strings /etc/lvmtab*
2. PV생성
pvcreate -f(force이므로 필요하면 쓸것) /dev/disk/disk01
pvcreate -f /dev/disk/disk02
pvcreate -f /dev/disk/disk03
3. DSF생성
#> mkdir /dev/vgora01
#> mknod /dev/vgora01/group c 128 0x001000 <- c는 device type임 128은 lvm driver임(lsdev 로 확인)
뒤의 0x001000은 vgora01의 h/w주소 값으로 앞의 3자리까지 중복없이 사용하도록
4. VG생성
#>vgcreate -s 64 -p 20000 vgora01 /dev/disk/disk01 /dev/disk/disk02 /dev/disk/disk03
<- s는 pe size p는 max pe count (max는 max일뿐이니 직접적으로 size연산과 관련없음)
#>vgdisplay vgora01
#>strings /etc/lvmtab*
#>lvmadm -l
5.LV생성
#> lvcreate -L 4096 -n table vgora01 <- L은 lv_size 뒤는 MB단위 n은 name
#> lvcreate -L 2048 -n index vgora01
#> lvcreate -L 2048 -n log vgora01
6.fs생성
#> newfs -F vxfs -o largefiles /dev/vgora01/rtable <- block말고 character device를 format /
-o largefiles는 2G이상 크기에 필요한 옵션
#> newfs -F vxfs -o largefiles /dev/vgora01/rindex
#> newfs -F vxfs -o largefiles /dev/vgora01/rlog
7. 마무리
#> mkdir -fR /oracle /oracle/table /oracle/index /oracle/log
#>vi /etc/fstab
/dev/vgora01/table /oracle/table vxfs default 0 2
/dev/vgora01/index /oracle/index vxfs default 0 2
/dev/vgora01/log /oracle/log vxfs default 0 2
#> mount -a
------------끝!---------
#> bdf (확인!!)
================= 생성 끝!~ =-==================
================= 2. 수정시작 ===================
/oracle/table 4096 -> 6000으로 확장!!!!!!!!
#> lvextend -L 6000 /dev/vgora01/table
#> fsadm -F vxfs -b 6000M /oracle/table
================= 수정 끝!~ =-==================
================= 3. 삭제시작 ===================
#> bdf | grep vgora01
#> umount /oracle/table
#> umount /oracle/index
#> umount /oracle/log
#> vgchange -a n vgora01
#> lvmadm -l or strings /etc/lvmtab* 으로 vgora01에 소속된 disk 이름 확인!!!!!!
#>vgexport vgora01 (등록취소)
(disk내의 lvm흔적 삭제)
#>pvcreate -f /dev/rdisk/disk01
#>pvcreate -f /dev/rdisk/disk02
#>pvcreate -f /dev/rdisk/disk03
/etc/fstab에서 흔적 삭제
================= 삭제 끝!~ =-==================