본문 바로가기
[Cloud & Infrastructure]/[Linux]

[Linux] AWS EBS 볼륨 파티션 LVM 생성하기

by 코드몽규 2022. 10. 9.
반응형

LVM (Logical Voulme Manager) 이란?

LVM이란 물리적인 디스크를 논리적 볼륨 그룹으로 구성하는 것이다. 이러한 방식을 이용하면 논리적인 볼륨 그룹 내에 사용자가 원하는 크기 만큼의 논리본륨을 할당하여 사용할 수 있으며, 여러 개의 디스크를 하나의 논리적인 볼륨 그룹(VG)으로 구성할 수 있다. 각 논리 볼륨(LV)은 독립적이므로, 하나의 디스크에도 여러 가지의 파일 시스템을 설치할 수 있다. (하나의 VG은 여러 개의 LV을 갖기 때문에 가능하다.)

 

 

 

EBS 볼륨에서 생성된 파티션에 LVM 논리 볼륨 생성하기

  1. EBS 볼륨에서 물리 볼륨(PV)을 생성합니다.
  2. 볼륨 그룹(VG)을 생성한 다음, 볼륨 그룹에 물리 볼륨을 추가합니다.
  3. 논리 볼륨(LV)을 생성한 다음, LVM에 디렉터리를 탑재합니다.
  4. 파일 시스템을 생성하고 탑재합니다.
  5. 논리 볼륨의 크기를 조정합니다.

1. AWS EBS 볼륨생성 후 인스턴스에 연결 그리고 파티션 생성하기 

- gdisk 명령어로 파티션 생성하기 

$ sudo gdisk /dev/xvdh
Command (? for help): n
Partition number (1-1218, default 1): 1
First sector (34-20971486, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8e00        
Changed type of partition to 'Linux LVM'
...
OK; writing new GUID partition table (GPT) to /dev/xvdh.
The operation has completed successfully.

- lsblk 명령어를 사용하여 파티션 생성 확인 

[ec2-user@ ~]$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   20G  0 disk
`-xvda1 202:1    0   20G  0 part /
xvdf    202:80   0  100G  0 disk
`-xvdf1 202:81   0  100G  0 part

 

2.  pvcreate 명령을 사용하여 파티션에서 물리 볼륨 (Physical Volume) 생성

[ec2-user@ ~]$ sudo pvcreate /dev/xvdf1
  Physical volume "/dev/xvdf1" successfully created.

 

3. vgcreate 명령을 사용하여 생성한 물리볼륨에 결합할 볼륨 그룹(Volume Group) 생성 

[ec2-user@ ~]$ sudo vgcreate ljkVG1 /dev/xvdf1
  Volume group "ljkVG1" successfully created

- sudo vgs 를 사용하여 볼륨 그룹 세부 정보 확인 

 

[ec2-user@~]$ sudo vgs
  VG     #PV #LV #SN Attr   VSize    VFree
  ljkVG1   1   0   0 wz--n- <100.00g <100.00g

 

4. lvcreate 명령을 사용하여 볼륨 그룹에서 논리 그룹 (Logical Volume) 생성

- 앞에 만들어놓은 ljkVG1(볼륨 그룹)에 10GB에 이름은 ljkLV1(논리 그룹) 생성

[ec2-user@ ~]$ sudo lvcreate -n ljkLV1 -L 10G ljkVG1
  Logical volume "ljkLV1" created.
[ec2-user@ ~]$ sudo lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ljkLV1 ljkVG1 -wi-a----- 10.00g

- mkdir 명령을 사용하여 탑재 디렉터리를 생성한다.

$ sudo mkdir /mnt1

 

5. 파일 시스템 생성 및 탑재 

- mkfs -t 명령을 실행하여 생성한 LV에 파일 시스템 탑재 

$sudo mkfs -t xfs /dev/ljkVG1/ljkLV1

- mount 명령을 실행하여 생성해놓은 디렉터리에 파일 시스템을 탑재한다. 

$ sudo mount /dev/ljkVG1/ljkLV1 /mnt1

 

최종

NAME              FSTYPE      LABEL UUID                                   MOUNTPOINT
xvda
`-xvda1           xfs         /                                              /
xvdf              xfs               
`-xvdf1           LVM2_member       
  `-ljkVG1-ljkLV1 xfs                                                        /mnt1

기존 EBS 볼륨의 크기 증가 

- growpart 명령을 실행하여 파티션을 확장한 다음 pvresize명령을 통해 PV의 크기를 조정한다. 나는 위에 만들어놓은 PV인 /dev/xvdf1을 확장해보겠다. 

- growpart 유틸리티 설치 

$ sudo yum install cloud-utils-growpart

 

 

- pvs (또는 pvdisplay)와 vgs(또는 vgdisplay)를 사용하여 물리 볼륨 세부 정보 및 볼륨 그룹 세부 정보 확인

[ec2-user@ ~]$ sudo pvs
  PV         VG     Fmt  Attr PSize    PFree
  /dev/sdf1  ljkVG1 lvm2 a--  <100.00g <90.00g
[ec2-user@ ~]$ sudo vgs
  VG     #PV #LV #SN Attr   VSize    VFree
  ljkVG1   1   1   0 wz--n- <100.00g <90.00g
[ec2-user@ ~]$ sudo lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ljkLV1 ljkVG1 -wi-ao---- 10.00g

 

- lvextend 명령을 실행하여 논리 볼륨 확장

$sudo lvextend -L 20G /dev/ljkVG1/ljkLV1
  Size of logical volume ljkVG1/ljkLV1 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
  Logical volume ljkVG1/ljkLV1 successfully resized.

 

- 파일 시스템을 확장 

$ sudo yum install x    rogs
$ sudo xfs_growfs /dev/ljkVG1/ljkLV1

 


볼륨 그룹 (VG)에 EBS 볼륨 추가 

- 10GB의 EBS볼륨을 생성 후 인스턴스에 연결한다. 이후 파티션을 생성한다. (생략 가능) 

- pvcreate 명령을 실행하여 PV볼륨을 추가로 생성

[ec2-user@~]$ sudo pvcreate /dev/xvdg
  Physical volume "/dev/xvdg" successfully created.

- vgextend 명령을 실행하여 볼륨 그룹을 확장하고 새 볼륨을 추가한다.

[ec2-user@ ~]$ sudo vgextend ljkVG1 /dev/xvdg
  Volume group "ljkVG1" successfully extended

- lvextend 명령을 실행하여 논리 볼륨을 확장한다. 

[ec2-user@ ~]$ sudo lvextend -L 109G /dev/ljkVG1/ljkLV1
  Size of logical volume ljkVG1/ljkLV1 changed from 20.00 GiB (5120 extents) to 109.00 GiB (27904 extents).
  Logical volume ljkVG1/ljkLV1 successfully resized.

- 파일 시스템의 크기를 조정한다. 

[ec2-user@ ~]$ sudo xfs_growfs /dev/ljkVG1/ljkLV1

 

반응형

댓글