태그 보관물: PV

linux LVM(PV, VG, LV) (Create, delete, query, add) method

Linux에서 파티션 중 우리가 가장 흔히 사용하는 것이 바로 File System이다. File System에 워낙 익숙
해지기도 했고 디스크 추가 후 사용이 간편하여 가장 널리사용한다는게 필자 생각이다.
Linux File System은 흔히 우리가 알고 있는 ext1부터시작하여 현재 ext4까지 사용중이며 그 기능과
성능이 버전이 업그레이드되면서 함께 발전해왔다.
하지만 이런 ext file system을 사용할 경우 공간이 꽉 찼을 경우 더 큰 file system으로 교체하거나 심
지어는 새로운 파티션 조정을 위한 Linux 재설치까지 가는 경우가 있을 수 있다.
LVM 이런 수고를 덜 수 있는 강력한 기능을 덜 수 있는 녀석이다. 즉, LVM을 사용하면 유동적인 공간
할당을 통하여 Mount Point 관리를 더 효율적으로 할 수 있다고 하겠다.
 Oracle에서 ASM Disk를 생성할 때에도 이 LVM을 사용하여 Disk를 던져줄 수 있다. 오늘은 LVM 관리
방법에 대하여 이야기해본다.
 Step 1. LVM에 사용될 Disk 추가
일단 이번 테스트에 사용될 디스크는
20G * 2 = 40G
40G * 1 = 40G
총 80G Disk를 사용할 예정이다.
 Step 2. Disk Format & PV / VG / LV 생성
[root@localhost ~]# fdisk -l

추가된 3개의 Disk를 확인할 수 있다. 위에 언급한데로 20G * 2, 40G 하나를 추가하여 총 80G 용량의 하디드스크를 추가하였다. fdisk 명령을 통해 확인이 가능하다.

[root@localhost ~]# fdisk /dev/sdb       // sdc, sdd 까지 진행
 

여기서 주의 할 것은 Hex code는 Linux에서 사용되는 Linux LVM file system으로 사용하기 위한 코드명은 8e가 된다.

[root@localhost ~]# fdisk -l /dev/sdb     // sdc, sdd도 확인가능

위와 같이 사용 가능한 포멧으로 생성됐읗며 System이 Linux LVM인 것을 확인할 수 있다.

 

* LVM을 통한 Disk 생성
 – PV(Physical Volume)을 생성한다.
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
  Physical volume “/dev/sdb1” successfully created.
  Physical volume “/dev/sdc1” successfully created.
  Physical volume “/dev/sdd1” successfully created.
 – VG(Volume Group)을 생성한다.
[root@localhost ~]# vgcreate ASMDISK /dev/sdb1 /dev/sdc1 /dev/sdd1
  Volume group “ASMDISK” successfully created

 

 – LV(Logical Volume)을 생성한다.
[root@localhost ~]# lvcreate -L 40g -n DATA01 ASMDISK
  Logical volume “DATA01” created.
[root@localhost ~]# lvcreate -L 39.5g -n DATA02 ASMDISK
  Logical volume “DATA02” created.
 Step 3. PV / VG / LV 조회
 생성구문의 create 대신 display 명령을 붙여주면 조회가 가능하다.
[root@localhost ~]# pvdisplay
  — Physical volume —
  PV Name               /dev/sdb1
  VG Name               ASMDISK
  PV Size               <20.00 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               125
  Allocated PE          4994
  PV UUID               Y16fLb-fmBl-Qga0-Vt0Q-xYGm-0YfF-L2HRz2
  — Physical volume —
  PV Name               /dev/sdc1
  VG Name               ASMDISK
  PV Size               <20.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               0
  Allocated PE          5119
  PV UUID               eyCU5C-Bzuj-DXBg-qVZX-uhM2-y7Hc-5AxKlZ
  — Physical volume —
  PV Name               /dev/sdd1
  VG Name               ASMDISK
  PV Size               <40.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              10239
  Free PE               0
  Allocated PE          10239
  PV UUID               ODoaFo-qV2G-T2EE-28mT-S1Sh-DGou-2IZcZz
[root@localhost ~]# vgdisplay
  — Volume group —
  VG Name               ASMDISK
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <79.99 GiB
  PE Size               4.00 MiB
  Total PE              20477
  Alloc PE / Size       20352 / 79.50 GiB
  Free  PE / Size       125 / 500.00 MiB
  VG UUID               LzMB5j-IChS-RByT-pFNR-OJZk-opt8-hz6rdf
[root@localhost ~]# lvdisplay
  — Logical volume —
  LV Path                /dev/VG01/oracle
  LV Name                oracle
  VG Name                VG01
  LV UUID                02j5sM-lYwm-jOWj-Koc3-nprv-Y4TT-S1HGE0
  LV Write Access        read/write
  LV Creation host, time localhost, 2017-12-11 12:15:01 -0500
  LV Status              available
  # open                 1
  LV Size                <79.98 GiB
  Current LE             20474
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  – currently set to     8192
  Block device           249:0
  — Logical volume —
  LV Path                /dev/ASMDISK/DATA01
  LV Name                DATA01
  VG Name                ASMDISK
  LV UUID                HBQT0M-VEzf-XjPm-ZH05-MrRT-AK8V-NaMNwq
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-12-11 16:09:06 -0500
  LV Status              available
  # open                 0
  LV Size                40.00 GiB
  Current LE             10240
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  – currently set to     8192
  Block device           249:1
  — Logical volume —
  LV Path                /dev/ASMDISK/DATA02
  LV Name                DATA02
  VG Name                ASMDISK
  LV UUID                S7eJc5-nQQ0-6vn7-yVis-zC7J-AK8r-AlcbQB
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-12-11 16:09:33 -0500
  LV Status              available
  # open                 0
  LV Size                39.50 GiB
  Current LE             10112
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  – currently set to     8192
  Block device           249:2
 Step 4. PV / VG / LV 삭제
create, display 명령 대신 remove를 붙여 사용가능하다.
[root@localhost sbin]# pvremove /dev/sdb1
  Labels on physical volume “/dev/sdb1” successfully wiped.
[root@localhost sbin]# pvremove /dev/sdc1
  Labels on physical volume “/dev/sdc1” successfully wiped.
[root@localhost sbin]# pvremove /dev/sdd1
  Labels on physical volume “/dev/sdd1” successfully wiped.
[root@localhost sbin]# vgremove ASMDISK
Do you really want to remove volume group “ASMDISK” containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume ASMDISK/DATA1? [y/n]: y
  Logical volume “DATA1” successfully removed
  Volume group “ASMDISK” successfully removed
 vg 삭제시에는 삭제하겠느냐는 물음과 함께 vg에 포함된 lv도 삭제되니 유의하도록 하자.
 Step 5. 기존 VG에 PV 추가
 기존에 사용하던 Volume Group이 공간이 부족해 추가를 원할때 사용이 가능하다. 일단 해당 Virture Machine에 Disk를 추가하고 포멧을 진행한다. 포멧은 Step 2의 절차를 따라하면 된다.
[root@localhost ~]# fdisk -l /dev/sde1
Disk /dev/sde: 128.8 GB, 128849018880 bytes, 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x625d1896
   Device Boot      Start         End      Blocks   Id  System
/dev/sde1            2048   251658239   125828096   8e  Linux LVM
 – VG에 추가 될 해당 Disk를 PV를 생성해준다.
[root@localhost ~]# pvcreate /dev/sde1
  Physical volume “/dev/sde1” successfully created.
 
 – 생성된 PV를 VG에 추가 할당 해준다.
[root@localhost sbin]# vgextend ASMDISK /dev/sde1
  Volume group “ASMDISK” successfully extended
 – 추가할당 해준 VG을 확인한다.
[root@localhost sbin]# vgdisplay
VG Name               ASMDISK
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                8
  Open LV               4
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               199.98 GiB
  PE Size               4.00 MiB
  Total PE              51196
  Alloc PE / Size       20352 / 79.50 GiB
  Free  PE / Size       30844 / 120.48 GiB
  VG UUID               1M7FrH-e23z-216o-Hf5n-Ad8g-nJXk-WRF1Uf
 VG의 Size가 기존 80G에서 200G가 됐음을 확인할 수 있다.