RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'LVM2'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

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의 바뀐 파일시스템의 크기를 확인하여 조정해준다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31