시스템-> 관리 -> 논리적 볼륨 관리 를 실행해서 본 화면 입니다 설면한것처럼 구성이 되어있습니다
그다음은 디스크를 하나 장착후 VG에 추가한후 새로운 LV를 생성 하는것과
생성된 LV를
줄이고 다른쪽을 늘리는 테스트를 해보겠습니다
터미널에서
[root@fedora12 oracle]#
vgdisplay -v
를하면 vg에
관한 정보를 상세히 볼수 있습니다
[root@fedora12
oracle]# lvscan
ACTIVE '/dev/vg_fedora12/LogVol01' [9.77
GB] inherit
ACTIVE
'/dev/vg_fedora12/LogVol00' [3.91 GB] inherit
ACTIVE
'/dev/vg_fedora12/LogVol02' [3.46 GB] inherit
lvscan 을치면 현재 LV상태를
알수있습니다
[root@fedora12
oracle]# fdisk -l
Disk /dev/sdd:
3221 MB, 3221225472 bytes
255 heads, 63
sectors/track, 391 cylinders
Units =
cylinders of 16065 * 512 = 8225280 bytes
Disk
identifier: 0x00000000
fdisk
-l 를해서보면 중간에 /dev/sdd 라고 4번째 디스크가 보이네요 파티션도 않되어있고요
파티션을 잡아보겠습니다
[root@fedora12
oracle]# fdisk /dev/sdd
Command (m for
help): n
Command action
e
extended
p
primary partition (1-4)
p
Partition
number (1-4): 1
First cylinder
(1-391, default 1): (엔터)
Using default
value 1
Last cylinder,
+cylinders or +size{K,M,G} (1-391, default 391): (엔터)
Using default
value 391
Command (m for
help): w
The partition
table has been altered!
Calling ioctl()
to re-read partition table.
Syncing disks.
파티션이 생성 되었고 생성된 파티션 타입을 변경
하겠습니다
[root@fedora12
oracle]# fdisk /dev/sdd
Command (m for
help): t
Selected
partition 1
Hex code (type L
to list codes): 8e
Changed system
type of partition 1 to 8e (Linux LVM)
Command (m for
help): p
Disk /dev/sdd:
3221 MB, 3221225472 bytes
255 heads, 63
sectors/track, 391 cylinders
Units =
cylinders of 16065 * 512 = 8225280 bytes
Disk
identifier: 0x11d06658
Device Boot Start End Blocks
Id System
/dev/sdd1 1 391
3140676 8e Linux LVM
Command (m for
help): w
The partition
table has been altered!
Calling ioctl()
to re-read partition table.
Syncing disks.
8e는 Linux
LVM 타입의 ID입니다
[root@fedora12
oracle]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1"
successfully created
pvcreate 로 PV를
생성 합니다
[root@fedora12
oracle]# vgextend vg_fedora12 /dev/sdd1
Volume group "vg_fedora12"
successfully extended
vgextend 로 기존 vg 에
새로훈 pv 를 추가합니다
vgextend 기존vg명
추가할pv 입니다
LV를 만들어야 하는데요 용량지정에는 2가지가 있습니다 용량으로 지정하는것과
PE로 지정할수 있는데요
[root@fedora12
~]# vgdisplay -v | grep "PE Size"
Finding all volume
groups
Finding volume group
"vg_fedora12"
PE
Size
4.00 MB
를 해보면 PE
Size가 4메가씩 활당 되었다는걸 알수있으며
vgdisplay -v 를 해서 보면
밑에쪽에 새로추가한 /dev/sdd1 의 정보중에
Total PE / Free PE 766 / 766
PE의 갯수를 알수있습니다
일단 용량은 지정은 PE사이즈 * 갯수 입니다
766 * 4 = 3064
[root@fedora12
oracle]# lvcreate -L 3064M vg_fedora12 -n LogVol03
로 만들수 있습니다
lvcreate
-L(용량지정) 용량MB 기존VG명 -n 생성할LV이름
PE지정법은 갯수로 지정하는것입니다 사이즈는 4MB 임으로 위의 용량이 알아서 계산되서 생성됩니다
[root@fedora12
oracle]# lvcreate -l 766 vg_fedora12 -n LogVol03
-l(소문자 엘) PE갯수 입니다
[root@fedora12
oracle]# lvscan
ACTIVE
'/dev/vg_fedora12/LogVol01' [9.77 GB] inherit
ACTIVE '/dev/vg_fedora12/LogVol00' [3.91
GB] inherit
ACTIVE '/dev/vg_fedora12/LogVol02' [3.46
GB] inherit
ACTIVE '/dev/vg_fedora12/LogVol03' [2.99
GB] inherit
LogVol03 에 3기가
용량이 LV로 추가 된것을 확인할수 있습니다
이제 원하는 파일시스템으로 만든후 마운팅할 디렉토리
생성한다음 마운트 하겠습니다
[root@fedora12
oracle]# mkfs.ext4 /dev/vg_fedora12/LogVol03
[root@fedora12
oracle]# mkdir /data2
[root@fedora12
oracle]# mount /dev/vg_fedora12/LogVol03 /data2
다음부팅때도 마운팅되도록 fstab에 기록하겠습니다 현재 시스템에서 마운트 된 정보는 /etc 아래에
있는 mtab
에 기록되어 있습니다
cat /etc/mtab |
grep data2 >> /etc/fstab
위와같이 리다이렉션 을 이용해서 추가해도 되고
mtab의 마운트 된 정보를 그대로 복사해서 fstab에 추가 해도 됩니다
[root@fedora12
~]# df -h
/dev/mapper/vg_fedora12-LogVol03
2.0G 69M 1.99G 4% /data2
df -h 로 확인해보면
/data2 에 마운트가 되어있는걸 확인할수 있습니다
이제는
/data2 에 해당하는 LV를 용량을 줄이고 /home을
늘리도록 하겠습니다
1200MB로 줄이고 800MB정도를 다시 VG에 반납합니다.
[root@fedora12
oracle]# umount /data2
[root@fedora12
oracle]# e2fsck -f /dev/vg_fedora12/LogVol03
[root@fedora12
~]# resize2fs /dev/vg_fedora12/LogVol03 1200M
[root@fedora12
~]# lvreduce -L 1200M /dev/vg_fedora12/LogVol03
WARNING:
Reducing active logical volume to 1.17 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol03? [y/n]: y
Reducing logical volume LogVol03 to 1.17 GB
Logical volume LogVol03 successfully resized
-l 옵션을 사용시에는
PE 개수를 써주시면 됩니다.
-L 과 –l 둘다
반환할 만큼의 용량(PE개수)이 아닌 원하는 줄여진 용량(PE개수)를 써주셔야 합니다.
2000MB에서 1500으로
변경하고자 할 때 –L 500M 하게 되면 2000-500 해서 1500 이 아닌
500MB로 줄어듭니다.
줄일때는
resize2fs 에서 MB 용량으로 줄이게 되니
lvreduce 에서도 동일하게 –L 로 MB용량을
지정하여 줄이는 것이 좋을 듯 합니다.
진행 과정은 반드시 umount -> e2fsck -> resize2fs-> lvreduce 순으로 해야합니다.
온라인으로 줄이고 남은 1.81G 를 /home에 붙이겠습니다
[root@fedora12
oracle]# umount /home
[root@fedora12
~]# lvextend -L +1.81G /dev/vg_fedora12/LogVol00
+ 는 해당용량만큼 이라는 의미이며, +없이 –L 1.81G 를 쓰면
1.81GB 로 늘려라 라는 의미입니다.
여기 까지 진행하면 LV는 늘어났지만 실제 파일시스템은 늘어나지 않았기에 resize2fs 로
파일시스템을 늘려주겠습니다.
RHEL기준으로 3버전은
LVM 버전1 을 사용함으로서 온라인 파일시스템 증가가 불가하고
4부터는 가능하며,
RHEL4는 ext2online 명령어를 사용하면 되며,
RHEL5는 resize2fs 를 사용하면 됩니다.
사용방법은
resize2fs 와 동일합니다.
# ext2online
/dev/vg_fedora12/LogVol00
[root@fedora12
~]# resize2fs /dev/vg_fedora12/LogVol00
lvscan 으로 확인해보면
/LogVol03 은 줄어들고 /LogVol00 은 늘어났음을 알수있습니다
[root@fedora12
~]# lvscan
ACTIVE
'/dev/vg_fedora12/LogVol01' [9.77 GB] inherit
ACTIVE
'/dev/vg_fedora12/LogVol00' [5.72 GB] inherit
ACTIVE
'/dev/vg_fedora12/LogVol02' [3.46 GB] inherit
ACTIVE
'/dev/vg_fedora12/LogVol03' [1.17 GB] inherit
unmount 한 2개의 LV를 마운트하고 df -h 를 하면
[root@fedora12
~]# mount /dev/vg_fedora12/LogVol00 /home/
[root@fedora12
~]# mount /dev/vg_fedora12/LogVol03 /data2/
[root@fedora12
~]# df -h
Filesystem
Size Used Avail Use% Mounted on
/dev/sda1
5.8G 3.0G 2.6G 54% /
tmpfs
293M 0 293M 0% /dev/shm
/dev/mapper/vg_fedora12-LogVol01
9.7G 150M 9.0G 2% /data
/dev/mapper/vg_fedora12-LogVol02
3.5G 338M 2.9G 11% /var
/dev/mapper/vg_fedora12-LogVol00
5.7G 74M 5.3G 2% /home
/dev/mapper/vg_fedora12-LogVol03
1.2G 34M 1.1G 4% /data2
/home 은 늘어나고
/data2는 줄어든것을 확인할수 있습니다
Redhat 에서는 왠만하면 파일시스템을 umount 한 후에 정상적인 상황에서 resize하는 것을 권장하는
부분이 있으며,
Redhat 문서를 몇 개를 살펴보더라도 umount 후 resize하는 부분이 많이 보이며 온라인중 증가후에도 umount 한후에
e2fsck등으로 파일시스템을 체크 하는 부분이 나옵니다.
순서는
umount => lvextend => e2fsck –f => resize2fs 로 하면 되겠습니다.
이상으로 포스팅을 맞치며
시나리오상 나오지않았던 VG 조정부분은 따로 올려드리겠습니다
# vgcreate -s 16m new_vg /dev/hda /dev/hdb
위의 명령은 두 개의 스크를 합쳐서 new_vg라는 VG를 만든다는 것이다.
옵션 ‘-s 16m’은 PE(Physical Extent)의 크기를 16MB로 정하는 것인데,
만약 옵션 ‘-s’가 생략되면 기본적으로 PE의 크기는 4MB가 된다.
VG가 만들어지면 /dev/VolumeGroupName라는 형식으로 디렉토리가 생기게 된다.
위의 예에서는 /dev/new_vg 가 될 것이다.
VG(Volume Group)명 변경 또는 삭제방법
1. 변경방법
# vgrename new_vg vg00
2. 삭제방법
VG에 LV가 남아있지 않고 비활성화되어 있으면 vgremove로 지울 수 있다.
비활성화시키는 방법은 vgchange -a n vg_name 이고, 다음의 명령을 통해 지워진다.
# vgremove vg00
VG(Volume Group) 확장방법
VG의 확장과 축소는 PV의 추가, 제거로
이루어진다.
VG에 PV를 추가하는 명령은
vgextend인데, vg00이라는 VG에 PV인
/dev/hda2를 추가하려면 다음과 같이 실행해야 한다.
# vgextend vg00 /dev/hda2
VG(Volume Group) 축소방법
PV를 VG에서 제거하는 명령은
vgreduce이다. 그러나 PV의 PE가 사용되어지고 있다면
있으면 제거되지 않는다. 그 할당된 PE를
다른 PV로 옮겨야 제거될 것이다.
PE를 옴길때는 pvmove 를 사용한다.
# pvmove –n /dev/vg00/data /dev/sda2
/dev/sdc1
-n
/경로/볼륨그룹명/LV명 제거하고자하는PV 옴겨질PV
위 명령어는
data라는 LV중 /dev/sdb1에 해당하는 PE를 /dev/sdc1로 옴기라는 의미이다.
비어있는 PV(혹은 pvmove로 비워진
PV) 인 /dev/hda2를 vg00에서 제거하려면,
# vgreduce vg00 /dev/hda2
PV 삭제
위에서
/dev/hda2 를 VG상에서 제외시켰다 해당 hda2
를 일반파티션이나 다른용도로 상용하려면 PV를 지워야 할 것이다.
#
pvremove /dev/hda2
LV 변경방법
# lvrename /dev/vg00/data /dev/vg00/db
LV 삭제방법
# lvremove /dev/vg00/db
0