사용자 도구

사이트 도구


os:debian:lvm

문서의 이전 판입니다!


LVM

개요

  • 리눅스 설치시나 하드디스크 추가시에 파티션이라는 것을 나누고 공간을 할당한다.
  • 이 때 한번 설정한 공간을 고정이 되어 변경이나 추가가 불가능하다.
  • LVM(Logical Volume Manager)은 파티션을 원하는 대로 추가하거나 제거하고 그 크기도 조절할 수 있도록 해주는 방법이다.

관련용어

용어 설명
물리적 볼륨
(PV:Physical Volume)
실제로 나눈 파티션을 말한다.
즉 /dev/hda8, /dev/hdb1 등을 말한다.
LVM에서는 이러한 물리적 볼륨을 하나의 구성원으로 받아 들이는 형식이다.
물리적 확장
(PE:Physical Extents)
일종의 블럭같은 것으로 실제 데이터가 저장되는 공간을 말한다.
보통 1PE가 약 4MB정도 차지한다.
볼륨그룹
(VG:Volume Group)
물리적 볼륨이 모여서 하나의 VG를 이룬다.
이것은 더 크게 말하면 지정한 크기의 PE가 모여 생성되는 하나의 큰 덩어리라고 할 수 있다.
논리적볼륨
(LV:Logical Volume)
이 논리적 볼륨이 우리가 흔히 쓰는 정규파티션과 같다.
실제 만들어서 사용하는 것이 바로 이 LV이다.

LVM 설정(예제)

설명

  • /dev/hda8(약 800MB)과 /dev/hda9(약 800MB)을 lvm이라는 볼륨그룹으로 생성한다.
  • 그 중 1.2GB는 /data라는 디렉토리로 400MB는 /backup으로 구성해보자.
  • 여기서 /data는 처음에 1GB로 할당하고 추가로 영역을 200MB 확장하는 형태로 구성한다.

설정1

1000MB의 /data 로 구성

  1. fdisk를 이용하여 파티션 속성을 변경 : fdisk /dev/hda 실행후에 t, 해당 파티션 선택, 8e, w 을 누르고 재부팅한다.
  2. 디스크에 있는 볼륨그룹을 검색하고 /etc/lvmtab 파일 생성
     # vgscan 
  3. 물리적 볼륨(PV:Physical Volume) 생성
    # pvcreate /dev/hda8
    pvcreate -- physical volume "/dev/hda5" successfully created
    
    # pvcreate /dev/hda9
    pvcreate -- physical volume "/dev/hda8" successfully created
  4. 생성된 PV를 특정한 볼륨그룹(lvm)에 추가시킨다.
    # vgcreate lvm /dev/hda8 /dev/hda9
    vgcreate -- INFO: using default physical extent size 4 MB
    vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte
    vgcreate -- doing automatic backup of volume group "lvm"
    vgcreate -- volume group "lvm" successfully created and activated
  5. 생성된 볼륨그룹 검사한다.
    # vgdisplay -v lvm
    --- Volume group ---
    VG Name               lvm
    VG Access             read/write
    VG Status             available/resizable
    VG #                  0
    MAX LV                256
    Cur LV                0
    Open LV               0
    MAX LV Size           255.99 GB
    Max PV                256
    Cur PV                2
    Act PV                2
    VG Size               1.66 GB
    PE Size               4 MB
    Total PE              424
    Alloc PE / Size       0 / 0
    Free  PE / Size       424 / 1.66 GB
    VG UUID               RBimFr-2W6o-O6Wr-E4Ox-egs1-z87V-cha1DA
    
    --- No logical volumes defined in "lvm" ---
    
    
    --- Physical volumes ---
    PV Name (#)           /dev/hda8 (1)
    PV Status             available / allocatable
    Total PE / Free PE    212 / 212
    
    PV Name (#)           /dev/hda9 (2)
    PV Status             available / allocatable
    Total PE / Free PE    212 / 212
  6. 논리적 볼륨(LV:Logical Volume) 생성
    # lvcreate -L 1000M -n data lvm
    lvcreate -- doing automatic backup of "data"
    lvcreate -- logical volume "/dev/lvm/data" successfully created
  7. LV생성확인
    # lvscan
    lvscan -- ACTIVE            "/dev/lvm/data" [1000 MB]
    lvscan -- 1 logical volumes with 1000 MB total in 1 volume group
    lvscan -- 1 active logical volumes
  8. VG 확인
    # vgdisplay -v lvm
    --- Volume group ---
    VG Name               lvm
    VG Access             read/write
    VG Status             available/resizable
    VG #                  0
    MAX LV                256
    Cur LV                1
    Open LV               0
    MAX LV Size           255.99 GB
    Max PV                256
    Cur PV                2
    Act PV                2
    VG Size               1.66 GB
    PE Size               4 MB
    Total PE              424
    Alloc PE / Size       250 / 1000 MB
    Free  PE / Size       174 / 696 MB
    VG UUID               RBimFr-2W6o-O6Wr-E4Ox-egs1-z87V-cha1DA
    
    --- Logical volume ---
    LV Name                /dev/lvm/data
    VG Name                data
    LV Write Access        read/write
    LV Status              available
    LV #                   1
    # open                 0
    LV Size                1000 MB
    Current LE             250
    Allocated LE           250
    Allocation             next free
    Read ahead sectors     1024
    Block device           58:0
    
    
    --- Physical volumes ---
    PV Name (#)           /dev/hda8 (1)
    PV Status             available / allocatable
    Total PE / Free PE    212 / 0
    
    PV Name (#)           /dev/hda9 (2)
    PV Status             available / allocatable
    Total PE / Free PE    212 / 174
    • ⇒ 논리적 볼륨부분이 나타나고 물리적 볼륨에서 /dev/hda8은 모두 사용중인 것으로 나타난다.
  9. 파일시스템 생성
    # mkfs -t ext3 /dev/lvm/data
  10. 마운트하여 사용한다.
    # mount -t ext3 /dev/lvm/data /data

참고

  • LVM을 시스템 재부팅후에도 사용하려면 /etc/fstab파일에 등록하면 된다.
    # cat /etc/fstab
    ...
    /dev/lvm/data              /data                ext3    defaults        0 0
    ...

설정2

/data 디렉토리 200MB 추가하기

  1. 설명
    1. lvextend 명령을 이용하여 공간을 늘리고 lvscan명령으로 확인하도록 한다.
  2. 방법
    1. # lvextend -L +200M /dev/lvm/data
      • ⇒ 기존의 용량에 추가로 200MB를 할당한다.
    2. # lvscan

설정3

남은 공간(약 400MB)를 /backup 디렉토리로 사용하기

  1. 설명
    1. 남은 공간을 확인하려면 vgdisplay -v 명령을 내려서 Free PE값을 확인하고 해당 PE값을 할당하는 것이 좋다.
    2. lvcreate 로 남은 PE값을 지정하고 Logical Volume을 생성한다.
  2. 방법
    1. # lvcreate -l 124 -n backup lvm
      • ⇒ lvm이라는 볼륨그룹에 backup 이라는 Logical Volume을 생성하고 크기는 약 124PE(약 496MB)를 할당한다.
    2. # mkfs -t ext3 /dev/lvm/backup
      • ⇒ 파일시스템을 생성한다.
    3. # mount -t ext3 /dev/lvm/backup /backup
      • ⇒ 마운트하여 사용한다.

활용팁

LVM 활성화 시키기

  1. fstab 에 설정되어 있지 않은 LVM 활성화 시키기
    debian:~# pvscan
      PV /dev/sdb1   VG lvm   lvm2 [372.61 GB / 0    free]
      PV /dev/sdc1   VG lvm   lvm2 [372.61 GB / 0    free]
      Total: 2 [745.21 GB] / in use: 2 [745.21 GB] / in no VG: 0 [0   ]
    
    debian:~# lvscan
      inactive          '/dev/lvm/pds' [745.21 GB] inherit
    
    debian:~# vgscan
      Reading all physical volumes.  This may take a while...
      Found volume group "lvm" using metadata type lvm2
    
    debian:~# vgchange -a y lvm
      1 logical volume(s) in volume group "lvm" now active
    
    debian:/home/starlits# lvscan
      ACTIVE            '/dev/lvm/pds' [745.21 GB] inherit

LVM command

vgscan

설명 디스크에 있는 볼륨그룹(VG:Volume Group)를 검색하여 /etc/lvmtab 파일을 생성한다.
fdisk를 이용하여 파티션을 속성을 LVM으로 지정한 후에 이 명령을 사용한다.
사용법 # vgscan

pvcreate

설명 물리적 볼륨(PV:Physical Volume)을 생성하는 명령어이다.
fdisk를 이용하여 파티션을 분할하고 LVM 속성으로 지정한 뒤에 해당 파티션을 PV로 만들 때 사용하는 명령이다.
사용법 pvcreate 디바이스명
사용예 # pvcreate /dev/hdb1

vgcreate

설명 볼륨그룹을 생성하는 명령어로 생성된 PV를 지정한 볼륨그룹에 포함시키면서 생성한다.
사용법 vgcreate 볼륨그룹명 디바이스명 디바이스명
사용예 # vgcreate lvm /dev/hda7 /dev/hdb1
⇒ lvm 이라는 볼륨그룹을 생성하고 /dev/hda7, /dev/hdb1 이라는 PV를 포함시킨다.

vgdisplay

설명 볼륨그룹의 속성과 정보를 보여주는 명령어이다.
사용법 vgdisplay [option] [볼륨그룹명]
option -v: 좀 더 자세히 보여주는 옵션으로 Volume Group이외에 gical Volume과 Physical Volume도 같이 보여준다.
사용예 1. # vgdisplay
⇒ Volume Group의 내용을 보여준다.
2. # vgdisplay -v lvm
⇒ lvm이라는 볼륨그룹의 내용을 자세히 보여준다.

lvcreate

설명 볼륨그룹안에 LV(Logical Volume)을 생성하는 명령이다.
사용법 lvcreate 옵션 볼륨그룹명
option -L: LV의 사이즈를 지정하는 옵션으로 K(kilobytes), M(megabytes), G(gigabytes), T(terabytes) 단위를 붙여 지정가능하다.
-l: LV의 사이즈를 지정하는 옵션으로 pe의 개수로 용량을 지정한다. 참고로 보통 1pe당 4MB이다.
-n: LV의 이름을 지정하는 옵션이다.
사용예 1. # lvcreate -L 2000M -n backup lvm
⇒ lvm이라는 볼륨그룹에 backup라는 이름으로 2Gigabytes 용량으로 LV을 생성한다.
2. # lvcreate -l 250 -n data lvm
⇒ lvm이라는 볼륨그룹에 data라는 이름으로 250pe(약 1GB)용량으로 LV을 생성한다.

lvscan

설명 디스크에 있는 Logical Volume을 찾아준다.
사용법 lvscan [option]
option -v: 정보를 자세히 보여준다.
사용예 # lvscan

lvdisplay

설명 Logical Volume의 정보를 보여준다.
사용법 lvdisplay [option] LV명
option -v: 정보를 자세히 보여준다.
사용예 # lvdisplay -v /dev/lvm/data
⇒ /dev/lvm/data라는 LV의 정보를 자세히 보여준다.

vgextend

설명 미리 생성된 Volume Group에 추가로 Phycical Volume을 추가할 때 사용한다.
사용법 vgextend 볼륨그룹명 새PV명
사용예 # vgextend lvm /dev/hdc1
⇒ lvm이라는 볼륨그룹에 /dev/hdc1을 추가한다.

vgreduce

설명 볼륨그룹에 있는 Physical Volume을 삭제하는 명령이다.
사용법 vgreduce 볼륨그룹명 PV명
사용예 # vgreduce lvm /dev/hdc1
⇒ lvm이라는 볼륨그룹에서 /dev/hdc1을 삭제한다.

lvextend

설명 Logical Volume의 용량을 확장하는 명령이다.
사용법 lvextend option [볼륨그룹명] LV명
option -l +사이즈 : 지정한 PE수만큼 용량을 늘린다.
-L +사이즈[kmgt]: 지정한 사이즈만큼 용량을 늘린다. 단위를 표시하지 않으면 기본 Megabytes단위이다.
사용예 # lvextend -L +200M /dev/lvm/data
⇒ 기존의 용량에 추가로 200MB를 할당한다.

lvreduce

설명 Logical Volume의 용량을 줄이는 명령
사용법 lvreduce option [볼륨그룹병] LV명
option -l -사이즈 : 지정한 PE수만큼 용량을 줄인다.
-L -사이즈 : 지정한 사이즈만큼 용량을 줄인다. 단위를 표시하지 않으면 기본 단위는 Megabytes 이다.
사용예 # lvreduce -L -500 /dev/lvm/data
⇒ /dev/lvm/data의 용량을 500MB 줄인다.

vgchange

설명 볼륨그룹을 속성을 변경하는 명령으로 볼륨그룹을 사용가능여부, 최대 LV 갯수등을 변경 할 수 있다.
사용법 vgchange option 볼륨그룹명
option -a y (or) n : 볼륨그룹의 사용여부를 지정
-l 갯수 : 해당 볼륨그룹에 생성할 수 있는 최대 Logical Volume수 지정
사용예 # vgchange -a y lvm
⇒ lvm이라는 볼륨그룹을 활성화시킨다.
# vgchange -a n lvm
⇒ lvm이라는 볼륨그룹을 비활성화시킨다.
# vgchange -l 100 lvm
⇒ lvm이라는 볼륨그룹을 최대 Logical Volume수를 100개로 지정한다.

vgremove

설명 볼륨그룹을 제거하는 명령
사용법 vgremove 볼륨그룹명
사용예 # vgremove lvm
⇒ lvm이라는 볼륨그룹을 삭제한다
os/debian/lvm.1175529009.txt.gz · 마지막으로 수정됨: 2007/04/03 00:50 저자 starlits