본문 바로가기

넋두리/linux 이야기

리눅스 LV 설정

# LV 설정하기

1  vgscan (lvm2 에서는 자동으로 이루어짐)
2  df -k
3  fdisk /dev/sdb
4  pvcreate /dev/sdb1 (pvcreate /dev/sda1)
5  vgcreate VolGroup00 /dev/sdb1 (/dev/sda1)
6  vgdisplay -v
7  lvcreate -L 4000 -n LogVol00 VolGroup00
8  lvscan / vgdisplay -v
9 mkfs -t ext3 /dev/VolGroup00/LogVol00
10 mkdir /Mountpint
11  mount -t ext3 /dev/VolGroup00/LogVol00 /Mountpoint


# 설정된 LV 확장하기

1  fdisk /dev/hdb
2  pvscan
3  pvcreate /dev/hdb1
4  vgextend VolGroup00 /dev/hdb1
5  vgdisplay -v
6  lvextend -L +8000 /dev/VolGroup00/LogVol00
7  ext2online /dev/VolGroup00/LogVol00
8  lvscan
9  lvreduce -L -8000 /dev/VolGroup00/LogVol00
10 vgreduce VolGroup00 /dev/hdb1
11 vgdisplay -v
12 ext2online /dev/VolGroup00/LogVol00
13 vgdisplay -v

1. RHEL 4와 LVM
(1) 개요
RedHat Linux 9 및 RHEL 3 까지는 LVM 구성시 lvm 1 버전을 사용하였으나, RHEL 4는 lvm 2
버전을 사용한다.
(2) LVM2가 LVM1과 비교해서 변화된 점
1) LVM에 처음 생성시 사용하던 vgscan은 사용하지 않는다. LVM2에서는 자동적으로 이뤄진다.
2) LV의 크기를 줄이거나 늘려주고, fsck 및 resize2fs 명령까지 수행하는 e2fsadm이라는 명령이
없어지고 ext2online이라는 명령을 사용한다.

2. LVM 설정하기
(1) 설명: 약 1000MB씩 할당되어 있는 /dev/hda11, /dev/hda12을 lvm0이라는 볼륨그룹으로
생성하고, 약 1200MB는 /ldata로 할당하고, 나머지 800MB는 /ldata2로 구성한다.
(2) 설정1: 1200MB의 /ldata 로 구성
1) fdisk를 이용하여 파티션 생성 및 속성 변경
fdisk /dev/hda 실행후 파티션을 생성하고, 파티션을 LVM 속성으로 변경하기 위하여
t, 해당 파티션 선택, 8e, w을 누르고 재부팅한다.
2) 물리적 볼륨(PV:Physical Volume) 생성
[root@linux33 ~]# pvcreate /dev/hda11
Physical volume “/dev/hda11″ successfully created
[root@linux33 ~]# pvcreate /dev/hda12
Physical volume “/dev/hda12″ successfully created
3) 생성된 PV를 특정한 볼륨그룹(lvm)에 추가시키기
[root@linux33 ~]# vgcreate lvm0 /dev/hda11 /dev/hda12
Volume group “lvm0″ successfully created
4) 생성된 볼륨그룹 검사
[root@linux33 ~]# vgdisplay -v
Finding all volume groups
Finding volume group “lvm0″
— Volume group —
VG Name               lvm0
System ID
Format                lvm2
Metadata Areas        2
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                2
Act PV                2
VG Size               1.88 GB
PE Size               4.00 MB
Total PE              482
Alloc PE / Size       0 / 0
Free  PE / Size       482 / 1.88 GB
VG UUID               pET6FH-n82q-ytwF-sdid-FnFj-9S9I-qM9yff

— Physical volumes —
PV Name               /dev/hda11
PV UUID               6cuR47-E2hA-3dL4-DixC-gGEg-zxzx-n0qfQg
PV Status             allocatable
Total PE / Free PE    241 / 241

PV Name               /dev/hda12
PV UUID               0uHbHb-MVyr-n8N1-q4L7-jNpm-LSy6-MhhGoJ
PV Status             allocatable
Total PE / Free PE    241 / 241
5) 논리적 볼륨(LV:Logical Volume) 생성
[root@linux33 ~]# lvcreate -L 1200M -n ldata lvm0
Logical volume “ldata” created
=> 관련 디바이스 파일명이 /dev/mapper/lvm0-ldata로 생성되고, 추가로 /dev/lvm0/ldata로
심볼릭 링크파일이 생성된다.
6) LV생성확인
[root@linux33 ~]# lvscan
ACTIVE            ‘/dev/lvm0/ldata’ [1.17 GB] inherit
7) VG 확인
[root@linux33 ~]# vgdisplay -v
Finding all volume groups
Finding volume group “lvm0″
— Volume group —
VG Name               lvm0
System ID
Format                lvm2
Metadata Areas        2
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                2
Act PV                2
VG Size               1.88 GB
PE Size               4.00 MB
Total PE              482
Alloc PE / Size       0 / 0
Free  PE / Size       482 / 1.88 GB
VG UUID               pET6FH-n82q-ytwF-sdid-FnFj-9S9I-qM9yff

— Logical volume —
LV Name                /dev/lvm0/ldata
VG Name                lvm0
LV UUID                HVbvnV-MDS7-yrqy-ijn6-fPSu-xabk-ujIAhA
LV Write Access        read/write
LV Status              available
# open                 0
LV Size                1.17 GB
Current LE             300
Segments               2
Allocation             inherit
Read ahead sectors     0
Block device           253:0

— Physical volumes —
PV Name               /dev/hda11
PV UUID               6cuR47-E2hA-3dL4-DixC-gGEg-zxzx-n0qfQg
PV Status             allocatable
Total PE / Free PE    241 / 0

PV Name               /dev/hda12
PV UUID               0uHbHb-MVyr-n8N1-q4L7-jNpm-LSy6-MhhGoJ
PV Status             allocatable
Total PE / Free PE    241 / 182
=> Logical volume이 나타나고, Physical volumes에서 /dev/hda11은 모두 사용중이고,
/dev/hda12도 일부 사용중이다.
8) 파일시스템 생성
[root@linux33 ~]# mkfs -t ext3 /dev/lvm0/ldata
9) 마운트할 디렉토리 생성
[root@linux33 ~]# mkdir /ldata
10) 마운트
[root@linux33 ~]# mount -t ext3 /dev/lvm0/ldata /ldata
(3) 설정 확인 및 등록
1) 개요: 제대로 설정되었는지 확인하려면 mount, df 명령을 이용하여 확인하고, 이상이 없으면
시스템 재부팅시에도 계속적으로 사용하기 위해 /etc/fstab에 등록한다.
2) 설정의 확인
ㄱ. mount 명령을 이용한 확인
[root@linux33 ~]# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda5 on /home type ext3 (rw)
/dev/hda2 on /usr type ext3 (rw)
/dev/hda3 on /var type ext3 (rw)
/dev/md0 on /raiddata type ext3 (rw)
/dev/md1 on /raiddata1 type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/lvm0-ldata on /ldata type ext3 (rw)            // 이 부분이다.
ㄴ. df 명령을 이용한 확인
[root@linux33 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             2.9G  191M  2.6G   7% /
none                  252M     0  252M   0% /dev/shm
/dev/hda5             2.0G   36M  1.8G   2% /home
/dev/hda2             9.7G  5.8G  3.5G  63% /usr
/dev/hda3             2.0G  191M  1.7G  11% /var
/dev/md0              1.9G   35M  1.8G   2% /raiddata
/dev/md1              950M   18M  885M   2% /raiddata1
/dev/mapper/lvm0-ldata
1.2G   34M  1.1G   4% /ldata
=> 참고로 RHEL 4에서는 나타나는 디바이스 파일명이 RHEL 3 이전버전과 다른 것을 알 수 있다.
3) /etc/fstab에 등록
ㄱ. 설명: LVM을 시스템 재부팅후에도 사용하려면 /etc/fstab파일에 등록하면 된다.
ㄴ. 예
/dev/lvm0/ldata              /ldata                ext3    defaults        0 0
(4) 설정2: 남은 공간인 약 800MB를 /ldata2로 구성하기
1) 설명: 남은 공간을 확인하려면 vgdisplay -v 명령을 내려 Free PE값을 확인하고 해당 PE값을
할당하는 것이 좋다. lvcreate 로 남은 PE값을 지정하고 Logical Volume을 생성한다.
2) 방법
ㄱ. [root@linux33 ~]# vgdisplay -v
=> Free PE값을 확인한다.
ㄴ. [root@linux33 ~]# lvcreate -l 182 -n ldata2 lvm0
Logical volume “ldata2″ created
=> lvm0이라는 볼륨그룹에 ldata2 이라는 Logical Volume을 생성하고 크기는 182PE
(약 728MB)를 할당한다.
ㄷ. [root@linux33 ~]# mkfs.ext3 /dev/lvm0/ldata2
=> 파일시스템을 생성한다.
ㄹ. [root@linux33 ~]# mkdir /ldata2
=> /ldata2를 생성한다.
ㅁ. [root@linux33 ~]# mount -t ext3 /dev/lvm0/ldata2 /ldata2
=> 마운트한다.
ㅂ. mount 및 df 명령을 이용하여 확인한다.
ㅅ. 재부팅후에도 사용하려면 /etc/fstab에 등록한다.

3. 설정된 LVM 확장하기
(1) 개요: 기존의 설정된 Logical Volume을 확장하려면 Volume Group의 공간이 남아 있어야 한다.
만약 VG의 공간이 없으면 새로운 디스크 파티션을 PV로 생성하고 해당 파티션을 VG로
확장한 뒤에 LV를 늘릴 수 있다.
(2) VG확장하기
1) 설명: LV를 늘리기 위해서는 새로운 파티션을 생성한 후에 PV로 만든 후 해당 PV를 VG에
속하게 해야 한다. 약 2000MB인 /dev/hda13을 VG에 속하게 해본다.
2) 방법
ㄱ. 파티션 생성: ‘fdisk /dev/hda’ 실행후 파티션을 2000MB로 생성하고, 속성을 LVM으로
변경하기 위하여 t, 해당 파티션 선택, 8e, w을 누르고 재부팅한다.
ㄴ. PV 생성
[root@linux33 ~]# pvcreate /dev/hda13
Physical volume “/dev/hda13″ successfully created
ㄷ. VG 확장
[root@linux33 ~]# vgextend lvm0 /dev/hda13
Volume group “lvm0″ successfully extended
ㄹ. 확인
[root@linux33 ~]# vgdisplay -v
=> 늘어난 Physical volumes를 확인한다.
(3) LV확장하기
1) 설명: 약 1200MB가 할당된 /ldata를 1000MB를 추가하여 크기를 2200MB로 늘린다.
2) 방법
ㄱ. 마운트가 되어 있으면 umount 한다.
[root@linux33 ~]# umount /ldata
ㄴ. lvextend 명령을 이용하여 확장한다.
[root@linux33 ~]# lvextend -L +1000M /dev/lvm0/ldata
Extending logical volume ldata to 2.15 GB
Logical volume ldata successfully resized
ㄷ. lvscan이나 lvdisplay 명령을 이용하여 확장된 내용을 확인한다.
[root@linux33 ~]# lvscan
ACTIVE            ‘/dev/lvm0/ldata’ [2.15 GB] inherit
ACTIVE            ‘/dev/lvm0/ldata2′ [728.00 MB] inherit
ㄹ. ext2online 명령을 이용하여 파일시스템의 크기를 늘린다.
[root@linux33 ~]# ext2online /dev/lvm0/ldata
ext2online v1.1.18 – 2001/03/18 for EXT2FS 0.5b
=> 이전 버전의 fsck 및 resize2fs 대체하는 명령으로 마운트된 상태에서도 사용가능하나
안정성을 위해 언마운트상태에서 사용하도록 한다.
ㅁ. df명령을 이용하여 확인한다.

4. LVM 관련명령어
(1) pvcreate
1) 설명: 물리적 볼륨(PV:Physical Volume)을 생성하는 명령어이다. fdisk를 이용하여 파티션을
분할하고 LVM 속성으로 지정한 뒤에 해당 파티션을 PV로 만들 때 사용하는 명령이다.
2) 사용법
pvcreate [option] 디바이스명
3) option
-ff : 강제로 생성할 때 쓴다.
4) 사용예
ㄱ. [root@www root]# pvcreate /dev/hdb1
=> /dev/hdb1을 물리적 볼륨으로 생성한다.
ㄴ. [root@www root]# pvcreate -ff /dev/hdb2
=> /dev/hdb2를 오류 등을 무시하고 물리적 볼륨으로 생성한다.
(2) vgcreate
1) 설명: 볼륨그룹을 생성하는 명령어로 생성된 PV를 지정한 볼륨그룹에 포함시키면서 생성한다.
2) 사용법
vgcreate [option] 볼륨그룹명 디바이스명 디바이스명
3) option
-s 사이즈[kKmMgGtT]: PE(물리적확장:Physical Extends]의 크기를 지정한다.
4) 사용예
ㄱ.[root@www root]# vgcreate lvm00 /dev/hda7 /dev/hdb1
=> lvm00 이라는 볼륨그룹을 생성하고 /dev/hda7, /dev/hdb1 이라는 PV를 포함시킨다.
ㄴ.[root@www root]# vgcreate -s 16M lvm00 /dev/hda7 /dev/hdb1
=> lvm00 이라는 볼륨그룹을 생성하고, PE의 크기를 16MB로 지정하면서 /dev/hda7,
/dev/hdb1 이라는 PV를 포함시킨다.
(3) vgdisplay
1) 설명: 볼륨그룹의 속성과 정보를 보여주는 명령어이다.
2) 사용법
vgdisplay [option] [볼륨그룹명]
3) option
-v: 좀 더 자세히 보여주는 옵션으로 Volume Group이외에 Logical Volume과 Physical Volume도
같이 보여준다.
4) 사용예
ㄱ. [root@www root]# vgdisplay
=> Volume Group의 내용을 보여준다.
ㄴ. [root@www root]# vgdisplay -v lvm00
=> lvm이라는 볼륨그룹의 내용을 자세히 보여준다.
(4) lvcreate
1) 설명: 볼륨그룹안에 LV(Logical Volume)을 생성하는 명령이다.
2) 사용법
lvcreate 옵션 볼륨그룹명
3) option
-L: LV의 사이즈를 지정하는 옵션으로 K(kilobytes), M(megabytes), G(gigabytes), T(terabyt
es) 단위를 붙여 지정가능하다.
-l: LV의 사이즈를 지정하는 옵션으로 pe의 개수로 용량을 지정한다. 참고로 보통 1pe당 4MB
이다. (참고로 소문자 L임)
-n: LV의 이름을 지정하는 옵션이다.
-i: RAID 0같은 stripe 사용시 볼륨이름을 지정하는 옵션이다.
-I stripe_size: 스트라이프되는 크기를 지정한다. 기본단위가 kilobytes이고 크기는 반드시
2의 배수(2^n: n값은 2부터 9)로 지정해야 한다.
-s: 유동적인 디렉토리 백업에 유용한 snapshot LV를 생성하는 옵션이다.
4) 사용예
ㄱ. [root@www root]# lvcreate -L 2000M -n backup lvm00
=> lvm00이라는 볼륨그룹에 backup라는 이름으로 2Gigabytes 용량으로 LV을 생성한다.
이 경우 /dev/lvm00/backup이라는 디바이스파일이 생성된다.
ㄴ. [root@www root]# lvcreate -l 250 -n data lvm00
=> lvm00이라는 볼륨그룹에 data라는 이름으로 250pe(약 1GB)용량으로 LV을 생성한다.
이 경우 /dev/lvm00/data라는 디바이스파일이 생성된다.
ㄷ. [root@www root]# lvcreate -i 2 -L 1G -n striped_lv lvm00
=> /dev/lvm00/striped_lv 라는 디바이스파일을 생성하고 볼륨 2를 부여한다.
ㄹ. [root@www root]# lvcreate -s -L 500M -n snap /dev/lvm00/lvmdata4
=> /dev/lvm00/lvmdata4의 snapshot LV인 /dev/lvm00/snap를 500MB 크기로 생성한다.
5) 참고: LV와 디바이스파일명
RHEL 4버전에서 생성되는 디바이스 파일명은 “/dev/mapper/VG이름-LV이름”이다. 즉, VG명이
lvm0이고 LV명이 ldata이면 /dev/mapper/lvm0-ldata로 생성된다. RHEL 3 이전버전에서는
/dev/lvm0/ldata형태로 디바이스파일이 생성되는데, RHEL 4에서는 이 파일을 심볼릭 링크 파일로
추가로 생성시켜주므로 이 파일을 사용해도 된다.
(5) lvscan
1) 설명: 디스크에 있는 Logical Volume을 찾아준다.
2) 사용법
lvscan [option]
3) option
-v: 정보를 자세히 보여준다.
4) 사용예
lvscan
(6) lvdisplay
1) 설명: Logical Volume의 정보를 보여준다.
2) 사용법
lvdisplay [option] LV명
3) option
-v: 정보를 자세히 보여준다.
4) 사용예
[root@www root]# lvdisplay -v /dev/lvm00/data
=> /dev/lvm00/data라는 LV의 정보를 자세히 보여준다.
(7) vgextend
1) 설명: 미리 생성된 Volume Group에 추가로 Phycical Volume을 추가할 때 사용한다.
2) 사용법
vgextend 볼륨그룹명 새PV명
3) 사용예
[root@www root]# vgextend lvm00 /dev/hdc1
=> lvm00이라는 볼륨그룹에 /dev/hdc1을 추가한다.
(8) vgreduce
1) 설명: 볼륨그룹에 있는 Physical Volume을 삭제하는 명령이다. 물론 해당 PV의 PE가 할당되어
있으면 제거되지 않는다.
2) 사용법
vgreduce [option] 볼륨그룹명 PV명
3) option
-a : 특별한 PV명이 없을 경우에 비어있는 PV를 모두 제거한다.
4) 사용예
[root@www root]# vgreduce lvm00 /dev/hdc1
=> lvm00이라는 볼륨그룹에서 /dev/hdc1을 삭제한다.
(9) lvextend
1) 설명: Logical Volume의 용량을 확장하는 명령이다.
2) 사용법
lvextend 옵션 [볼륨그룹명] LV명
3) option
-l +사이즈: 지정한 PE수만큼 용량을 늘린다.
-L +사이즈[kmgt]: 지정한 사이즈만큼 용량을 늘린다. 단위를 표시하지 않으면 기본 Megabytes
단위이다.
4) 사용예
[root@www root]# lvextend -L +200M /dev/lvm00/data
=> 기존의 용량에 추가로 200MB를 할당한다.
(10) lvreduce
1) 설명: Logical Volume의 용량을 줄이는 명령이다. 늘이는 경우와는 다르게 줄이는 경우에는
데이터가 파괴되므로 주의해야 하고, 파괴된 경우에는 다시 mkfs해서 사용해야 한다.
2) 사용법
lvreduce 옵션 [볼륨그룹병] LV명
3) option
-l -사이즈: 지정한 PE수만큼 용량을 줄인다.
-L -사이즈: 지정한 사이즈만큼 용량을 줄인다. 단위를 표시하지 않으면 기본 단위는 Megabytes
이고, 사이즈단위로는 kKmMgGtT를 사용할 수 있다.
4) 사용예
[root@www root]# lvreduce -L -500 /dev/lvm00/data
=> /dev/lvm00/data의 용량을 500MB 줄인다.
(11) lvrename
1) 설명: 논리적 볼륨의 이름을 변경하는 명령이다.
2) 사용법
lvrename 원_논리적볼륨_절대경로 새로운_논리적볼륨_절대경로
lvrename 볼륨그룹명 원_논리적볼륨명 새로운_논리적볼륨명
3) 사용예
ㄱ. [root@www root]# lvrename /dev/lvm00/lvmdata3 /dev/lvm00/data3
=> /dev/lvm00/lvmdata3 라는 논리적 볼륨의 이름을 /dev/lvm00/data3로 바꾼다.
ㄴ. [root@www root]# lvrename lvm00 lvmdata3 data3
=> /dev/lvm00/lvmdata3 라는 논리적 볼륨의 이름을 /dev/lvm00/data3로 바꾼다. 결과적으
로 바로 위의 ㄱ번 예제와 같다.
(12) lvremove
1) 설명: 논리적 볼륨을 제거하는 명령이다. 사용중인 경우에는 제거되지 않으므로 미리 umount를
해야 한다.
2) 사용법
lvremove 논리적볼륨_절대경로
3) 사용예
[root@www root]# lvremove /dev/lvm00/lvmdata3
=> /dev/lvm00/lvmdata3라는 논리적 볼륨을 제거한다.
(13) vgchange
1) 설명: 볼륨그룹을 속성을 변경하는 명령으로 볼륨그룹을 사용가능여부, 최대 LV 갯수등을 변경
할 수 있다.
2) 사용법
vgchange 옵션 볼륨그룹명
3) option
-a y|n : 볼륨그룹의 사용여부를 지정한다.
-l 갯수: 해당 볼륨그룹에 생성할 수 있는 최대 Logical Volume수를 지정한다.
4) 사용예
ㄱ. [root@www root]# vgchange -a y lvm00
=> lvm00이라는 볼륨그룹을 활성화시킨다.
ㄴ. [root@www root]# vgchange -a n lvm00
=> lvm00이라는 볼륨그룹을 비활성화시킨다. 사용중이면 중지시킬 수 없다.
ㄷ. [root@www root]# vgchange -l 100 lvm00
=> lvm00이라는 볼륨그룹을 최대 Logical Volume수를 100개로 지정한다.
(14) vgremove
1) 설명: 볼륨그룹을 제거하는 명령이다. 사용중이면 제거가 되지 않는 umount하고 속해있는 LV를
전부 제거해야 한다.
2) 사용법
vgremove 볼륨그룹명
3) 사용예
[root@www root]# vgremove lvm00
=> lvm00이라는 볼륨그룹을 삭제한다.
(15) pvmove
1) 설명: 물리적확장인 PE를 이동시키는 명령이다.
2) 사용법
pvmove [option] 장치명 [장치명]
3) option
-v: 해당 장치의 정보를 보여준다.
4) 사용예
ㄱ. pvmove -v /dev/hda15
=> /dev/hda15의 정보를 보여준다.
ㄴ. pvmove /dev/hda14 /dev/hda15
=> /dev/hda15의 PE의 내용을 /dev/hda15에 그대로 이동한다.
(16) ext2online
1) 설명: 바뀐 파일시스템의 크기를 조정하는 명령으로 예전 버전의 resize2fs 명령의 기능을
한다. resize2fs보다 더 나아진 점으로는 기본적으로 fsck를 수행하고, 또한 mount된
상태에서 사용가능하다.
2) 사용법
ext2online 디바이스 파일명
3) 사용예
[root@linux33 ~]# ext2online /dev/lvm0/ldata
=> /dev/lvm0/ldata의 바뀐 파일시스템의 크기를 확인하여 조정해준다.

 

'넋두리 > linux 이야기' 카테고리의 다른 글

heartbeat 설치 및 설정  (0) 2013.10.01
DRBD 설정  (0) 2013.10.01
DNS Delegation  (0) 2013.10.01
후지쯔 서버 IRMC 네트워크 부팅  (0) 2013.10.01
부트서버(CentOS6.4 이용)  (0) 2013.10.01