메뉴 건너뛰기

Korea Oracle User Group

OS

Linux Linux에서 LVM 사용

명품관 2020.11.10 10:21 조회 수 : 81

Linux에서 LVM 사용

LVM(Logical Volume Manager)는 OS 커널단에서 스토리지 레이어에 대해서 논리적인 구조로 사용하기 편하게 하기 위한 관리용 모듈이다.

현재 최근 리눅스에는 LVM2 버전이 사용되고 있으면 LVM1과 몇몇 기능을 제외하고 하위 호환이 가능하다.

 

예로 LVM을 사용하지 않을 경우 스토리지 하드웨어에 파일 시스템을 구성해 장치마다 구분해서 쓰는 방식이라면

LVM을 사용할 경우 스토리지 하드웨어를 관리자 편의로 묶어 가상의 그룹을 구성해 편의에 맞게 나누거나 묶어서 사용할 수 있게 된다.

 

LVM을 사용할 경우 개별적인 하드웨어를 사용하는 것 보다 유연한 구조로 사용 가능하며 여러 기능 및 관리의 편의성을 갖게 된다.

 

0. 신규 추가한 H/W Disk 확인 및 파티션 작업

300G 사이즈로 추가한 HDD를 확인한다.

 

[root@kwanst ~]# fdisk -l
...
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 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

 

물리 디스크의 경우 파티션 작업으로 여러개로 쪼갤 수 있으나 하나의 파티션으로 사용하고자 한다.

아래와 같이 파티션 생성 작업을 수행한다. LVM 타입으로 사용할 수 있게 system id 변경 작업을 반드시 해줘야 한다.

 

[root@kwanst ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2aa9fb92.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-629145599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): 
Using default value 629145599
Partition 1 of type Linux and of size 300 GiB is set

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@kwanst ~]# 

 

1. pv 생성

LVM이 사용할 수 있도록 블럭 디바이스나 파티션을 PV(Physical Volume)으로 초기화 해줘야 한다.

[root@kwanst ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@kwanst ~]# pvdisplay
  ...
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <300.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               ZKu9en-Zw0d-Dxg8-62bX-ndO1-mLOV-3Use9j
   
[root@kwanst ~]# pvscan
  PV /dev/sda2   VG centos_kwanst   lvm2 [<29.00 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [<300.00 GiB]
  Total: 2 [<329.00 GiB] / in use: 1 [<29.00 GiB] / in no VG: 1 [<300.00 GiB]
[root@kwanst ~]# 

 

2. vg 생성

하나이상의 PV들을 묶어 VG(Volume Group)으로 구성해 일종의 스토리지 풀을 구성한다.

LVM은 VG를 원하는 사이즈로 쪼개서 명칭을 달아 LV(Logical Volume)으로 만든다. 

[root@kwanst ~]# vgcreate vgrac /dev/sdb1
  Volume group "vgrac" successfully created
[root@kwanst ~]# vgdisplay
  --- Volume group ---
  VG Name               vgrac
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               <300.00 GiB
  PE Size               4.00 MiB
  Total PE              76799
  Alloc PE / Size       0 / 0   
  Free  PE / Size       76799 / <300.00 GiB
  VG UUID               j9XGxq-qXM1-0qTo-9oCa-Wbhd-R002-fxOkp9
...   
[root@kwanst ~]# vgscan
  Reading volume groups from cache.
  Found volume group "vgrac" using metadata type lvm2
  Found volume group "centos_kwanst" using metadata type lvm2
[root@kwanst ~]# 

 

3. lv 생성

[root@kwanst ~]# lvcreate -n crs1 -L 5GB vgrac
  Logical volume "crs1" created.
[root@kwanst ~]# lvcreate -n crs2 -L 5GB vgrac 
  Logical volume "crs2" created.
[root@kwanst ~]# lvcreate -n crs3 -L 5GB vgrac 
  Logical volume "crs3" created.
[root@kwanst ~]# lvcreate -n fra -L 50GB vgrac     
  Logical volume "fra" created.
[root@kwanst ~]# lvcreate -n data -L 50GB vgrac
  Logical volume "data" created.
[root@kwanst ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vgrac/crs1
  LV Name                crs1
  VG Name                vgrac
  LV UUID                VAU8MQ-Ja0c-okZ6-QxF0-nMRD-fcwg-f0acKq
  LV Write Access        read/write
  LV Creation host, time kwanst.localdomain, 2020-11-02 17:44:09 +0900
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/vgrac/crs2
  LV Name                crs2
  VG Name                vgrac
  LV UUID                neSUU2-BWKf-kcRv-5oG5-sx5u-nd1D-a7TBGd
  LV Write Access        read/write
  LV Creation host, time kwanst.localdomain, 2020-11-02 17:44:17 +0900
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
   
  --- Logical volume ---
  LV Path                /dev/vgrac/crs3
  LV Name                crs3
  VG Name                vgrac
  LV UUID                z54ff0-RaWm-lfzk-glij-VmDG-Hk1Y-D7M2jk
  LV Write Access        read/write
  LV Creation host, time kwanst.localdomain, 2020-11-02 17:44:23 +0900
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4
   
  --- Logical volume ---
  LV Path                /dev/vgrac/fra
  LV Name                fra
  VG Name                vgrac
  LV UUID                6Y62qu-cjp8-dFvE-pPd1-VFBr-1nUO-Ijlqfi
  LV Write Access        read/write
  LV Creation host, time kwanst.localdomain, 2020-11-02 17:44:56 +0900
  LV Status              available
  # open                 0
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:5
   
  --- Logical volume ---
  LV Path                /dev/vgrac/data
  LV Name                data
  VG Name                vgrac
  LV UUID                LLw8Ls-1oUK-VIxN-GAPL-iTHA-epJL-pgcUix
  LV Write Access        read/write
  LV Creation host, time kwanst.localdomain, 2020-11-02 17:45:02 +0900
  LV Status              available
  # open                 0
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:6
... 
   
[root@kwanst ~]# lvscan
  ACTIVE            '/dev/vgrac/crs1' [5.00 GiB] inherit
  ACTIVE            '/dev/vgrac/crs2' [5.00 GiB] inherit
  ACTIVE            '/dev/vgrac/crs3' [5.00 GiB] inherit
  ACTIVE            '/dev/vgrac/fra' [50.00 GiB] inherit
  ACTIVE            '/dev/vgrac/data' [50.00 GiB] inherit
...
[root@kwanst ~]# 

 

4. Lv 삭제 방법

정확한 작업을 위해 먼저 lv 확인. 삭제하고자 하는 lv가 정확히 확인되면 삭제 수행 

[root@lnxtest ~]# lvscan
  ACTIVE            '/dev/vgrac/crs1' [5.00 GiB] inherit
  ACTIVE            '/dev/vgrac/crs2' [5.00 GiB] inherit
  ACTIVE            '/dev/vgrac/crs3' [5.00 GiB] inherit
  ACTIVE            '/dev/vgrac/fra' [30.00 GiB] inherit
  ACTIVE            '/dev/vgrac/data' [30.00 GiB] inherit
...
[root@lnxtest ~]# lvremove /dev/vgrac/crs1
Do you really want to remove active logical volume vgrac/crs1? [y/n]: y
  Logical volume "crs1" successfully removed
[root@lnxtest ~]# lvremove /dev/vgrac/crs2
Do you really want to remove active logical volume vgrac/crs2? [y/n]: y
  Logical volume "crs2" successfully removed
Do you really want to remove active logical volume vgrac/crs3? [y/n]: y
  Logical volume "crs3" successfully removed
[root@lnxtest ~]# lvremove /dev/vgrac/fra
Do you really want to remove active logical volume vgrac/fra? [y/n]: y
  Logical volume "fra" successfully removed
[root@lnxtest ~]# lvremove /dev/vgrac/data
Do you really want to remove active logical volume vgrac/data? [y/n]: y
  Logical volume "data" successfully removed
[root@lnxtest ~]# lvscan
...
[root@lnxtest ~]# 

 

5. VG 삭제

[root@lnxtest ~]# vgscan
  Found volume group "vgrac" using metadata type lvm2
...
[root@lnxtest ~]# vgdisplay
  --- Volume group ---
  VG Name               vgrac
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <200.00 GiB
  PE Size               4.00 MiB
  Total PE              51199
  Alloc PE / Size       0 / 0   
  Free  PE / Size       51199 / <200.00 GiB
  VG UUID               O1850N-vFCo-q3bb-6oZA-mre0-GLeQ-lIJ77R
...
[root@lnxtest ~]# vgremove /dev/vgrac
  Volume group "vgrac" successfully removed
[root@lnxtest ~]# vgscan
...
[root@lnxtest ~]# 

 

6. Disk 삭제

[root@lnxtest ~]# fdisk -l
...
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 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
Disklabel type: dos
Disk identifier: 0x1e84843e

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdb1        2048 419430399 419428352  200G 83 Linux
...
[root@lnxtest ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): p
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 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
Disklabel type: dos
Disk identifier: 0x1e84843e

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@lnxtest ~]# fdisk -l
...
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 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
Disklabel type: dos
Disk identifier: 0x1e84843e

[root@lnxtest ~]# 

 

 

번호 제목 글쓴이 날짜 조회 수
22 bpytop 모니터링 툴 file 명품관 2021.01.18 53
21 iscsi 서버/클라이언트 설정하기(with targetcli) 명품관 2020.11.14 120
20 RAC SCAN 사용을 위한 DNS 서버 설정하기 명품관 2020.11.10 730
» Linux에서 LVM 사용 명품관 2020.11.10 81
18 Oracle Linux 8.2 버전 chrony 설정하기 명품관 2020.09.17 206
17 [7.x] hostname 변경하는 hostnamectl 사용법 [1] 우뽕 2020.02.05 208
16 실시간으로 TCP와 UDP 포트를 감시하는 방법 명품관 2020.02.05 84
15 top logging script Talros 2020.01.17 101
14 59 Linux Networking commands and scripts 명품관 2019.11.18 1234
13 Installing RedHat Enterprise Linux 8.0 with screenshots 명품관 2019.09.26 380
12 Step by Step Installing CentOS Linux 8 with Screenshots 명품관 2019.09.26 206
11 "리눅스에 대한 마이크로소프트의 사랑", WSL 2의 이해와 시작하기 명품관 2019.09.23 326
10 Memory Usage 확인용 스크립트 [2] 명품관 2019.04.15 256
9 Swap File 생성하기 명품관 2019.04.15 207
8 리눅스 Free 메모리의 이해 file 명품관 2018.08.08 835
7 절대 경로가 포함된 스크립트 생성 하기 Talros 2016.10.10 326
6 HP-UX Glance adviser를 활용하여 모니터링 데이터 수집 명품관 2016.04.08 8618
5 find 사용하기 명품관 2016.03.04 435
4 sudo 사용시 is not in the sudoers file. This incident will be reported 에러 해결법 명품관 2016.02.19 2686
3 strace 사용법 명품관 2016.02.18 5176
위로