RHEL 에서 LVM Logical Volume 생성 및 확장

Red Hat Enterprise LinuxBeginner
지금 연습하기

소개

이 랩에서는 Red Hat Enterprise Linux 시스템에서 LVM (Logical Volume Manager) 스토리지를 생성하고 관리하는 기본적인 과정을 배우게 됩니다. 먼저 물리 디스크를 준비하고, parted를 사용하여 파티션을 생성한 다음, pvcreate를 사용하여 LVM Physical Volume (PV) 으로 초기화하는 것으로 시작합니다. 그 다음, 이 PV 를 vgcreate를 사용하여 Volume Group (VG) 으로 풀링하고, lvcreate를 사용하여 해당 그룹에서 유연한 Logical Volume (LV) 을 생성합니다. 초기 설정은 새로운 LV 를 XFS 파일 시스템으로 포맷하고 시스템 사용을 위해 영구적으로 마운트하는 것으로 마무리됩니다.

초기 구성을 기반으로, LVM 의 주요 장점 중 하나인 스토리지를 동적으로 크기 조정하는 기능을 탐구합니다. vgextend를 사용하여 새로운 Physical Volume 을 추가하여 기존 Volume Group 을 확장하는 방법을 배우게 됩니다. 그 후, lvextend를 사용하여 이 새로운 공간을 활용하도록 Logical Volume 을 확장하고, xfs_growfs를 사용하여 XFS 파일 시스템을 온라인으로 크기 조정하여 추가 용량을 시스템에 즉시 사용할 수 있도록 합니다. 다운타임은 발생하지 않습니다.

partedpvcreate 를 사용하여 Physical Volume 준비

이 단계에서는 Logical Volume Manager (LVM) 과 함께 사용할 물리 디스크를 준비하여 스토리지를 관리하기 시작합니다. 여기에는 두 가지 주요 단계가 포함됩니다. 첫째, parted 유틸리티를 사용하여 디스크를 파티션하고, 둘째, pvcreate 명령을 사용하여 이러한 파티션을 LVM Physical Volume (PV) 으로 초기화합니다.

Logical Volume Manager (LVM) 개요

LVM 은 Linux 에서 물리적 스토리지 장치 위에 유연한 계층을 제공하는 강력한 스토리지 관리 도구입니다. 디스크와 파티션을 직접 사용하는 대신, LVM 을 사용하면 하나 이상의 물리적 장치에서 추상적인 "볼륨 그룹"을 생성한 다음, 해당 풀링된 공간에서 "논리적 볼륨"을 분할할 수 있습니다. 이를 통해 스토리지를 쉽게 크기 조정하고, 디스크를 교체하며, 시스템의 스토리지를 다운타임 없이 관리할 수 있습니다.

LVM 의 가장 기본적인 구성 요소는 **Physical Volume (PV)**입니다. PV 는 하드 디스크 파티션 또는 전체 디스크와 같이 LVM 에서 사용할 수 있도록 초기화된 물리적 스토리지 장치입니다.

1. LVM 용 파티션 생성

디스크를 LVM 에서 사용하기 전에, 디스크에 파티션을 생성하고 해당 유형을 "LVM"으로 설정해야 합니다. 이 연습에서는 /dev/vdb 장치를 사용합니다. 디스크 파티션을 수정하려면 sudo 권한이 필요합니다.

먼저, /dev/vdb 장치에 새로운 GUID Partition Table (GPT) 를 생성합니다. GPT 는 물리적 스토리지 장치에서 파티션 테이블의 레이아웃에 대한 최신 표준입니다.

sudo parted /dev/vdb mklabel gpt

다음으로, 크기가 512 MiB 인 단일 파티션을 생성합니다. 이 파티션의 이름을 lvm-part1이라고 지정합니다.

sudo parted /dev/vdb mkpart lvm-part1 1MiB 513MiB

이제 파티션 유형을 lvm으로 설정합니다. 이 플래그는 이 파티션이 Logical Volume Manager 와 함께 사용하기 위한 것임을 시스템에 알립니다.

sudo parted /dev/vdb set 1 lvm on

커널이 새 파티션을 즉시 인식하도록 하려면 udevadm settle 명령을 실행합니다. 이 명령은 udev 데몬이 모든 장치 이벤트를 처리할 때까지 기다려 새 파티션 /dev/vdb1을 사용할 수 있도록 합니다.

sudo udevadm settle

마지막으로, 파티션 테이블을 인쇄하여 파티션이 올바르게 생성되었는지 확인합니다.

sudo parted /dev/vdb print

다음과 유사한 출력이 표시되어야 하며, lvm 플래그가 활성화된 하나의 파티션이 표시됩니다.

Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name       Flags
 1      1049kB  538MB  537MB               lvm-part1  lvm

2. 파티션을 Physical Volume 으로 초기화

파티션이 생성되고 올바르게 유형이 지정되었으므로, 다음 단계는 pvcreate 명령을 사용하여 이를 LVM Physical Volume 으로 초기화하는 것입니다. 이 명령은 LVM 메타데이터를 파티션에 기록하여 공식적으로 LVM 시스템의 일부로 만듭니다.

/dev/vdb1을 초기화하려면 다음 명령을 실행합니다.

sudo pvcreate /dev/vdb1

성공적인 작업은 다음 메시지를 생성합니다.

  Physical volume "/dev/vdb1" successfully created.
  Creating devices file /etc/lvm/devices/system.devices

3. Physical Volume 정보 표시

이제 새로 생성된 Physical Volume 을 검사할 수 있습니다. pvs 명령은 시스템의 모든 PV 에 대한 간략한 요약을 제공하고, pvdisplay는 보다 자세한 보기를 제공합니다.

pvs를 사용하여 빠른 요약을 확인합니다.

sudo pvs

출력에는 새 PV 가 나열됩니다. 아직 Volume Group (VG) 에 속하지 않음에 유의하십시오.

  PV         VG Fmt  Attr PSize   PFree
  /dev/vdb1     lvm2 ---  512.00m 512.00m

자세한 내용은 pvdisplay를 사용합니다.

sudo pvdisplay /dev/vdb1

이 명령은 PV 이름, 크기 및 고유 식별자 (UUID) 를 포함한 자세한 정보를 표시합니다.

  "/dev/vdb1" is a new physical volume of "512.00 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb1
  VG Name
  PV Size               512.00 MiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

이제 LVM 용 물리적 파티션을 성공적으로 준비했습니다. 다음 단계에서는 이 PV 를 사용하여 Volume Group 을 생성합니다.

vgcreate 를 사용하여 Physical Volume 에서 Volume Group 생성

이 단계에서는 이전 단계에서 준비한 Physical Volume (PV) 을 사용하여 Volume Group (VG) 을 생성합니다. Volume Group 은 LVM 의 핵심 구성 요소로, Logical Volume 을 생성할 수 있는 단일하고 관리 가능한 디스크 공간 풀 역할을 합니다.

Volume Group 및 Physical Extents 이해

**Volume Group (VG)**은 하나 이상의 Physical Volume 을 단일 스토리지 풀로 집계합니다. 여러 개의 작은 물통을 하나의 큰 탱크로 결합하는 것으로 생각할 수 있습니다. 이러한 추상화가 LVM 에 유연성을 제공합니다.

이 스토리지 풀은 **Physical Extents (PE)**라고 하는 작고 고정된 크기의 청크로 나뉩니다. 기본적으로 PE 는 4 MiB 입니다. 나중에 Logical Volume 을 생성할 때, 본질적으로 Volume Group 에서 이러한 PE 의 특정 수를 할당하는 것입니다.

1. Volume Group 생성

이제 /dev/vdb1 Physical Volume 을 사용하여 my_vg라는 Volume Group 을 생성합니다. 이 명령은 vgcreate입니다.

sudo vgcreate my_vg /dev/vdb1

명령이 성공하면 확인 메시지가 표시됩니다.

  Volume group "my_vg" successfully created

이 명령은 /dev/vdb1에서 사용 가능한 모든 공간을 포함하는 my_vg라는 새로운 스토리지 풀을 생성했습니다.

2. Volume Group 정보 표시

Physical Volume 과 마찬가지로, 새 Volume Group 에 대한 정보를 표시할 수 있습니다. vgs 명령은 요약을 제공하고, vgdisplay는 자세한 보기를 제공합니다.

시스템의 모든 Volume Group 에 대한 간략한 요약을 얻으려면 다음을 실행합니다.

sudo vgs

출력에는 새 VG, 크기 및 사용 가능한 공간의 양이 표시됩니다.

  VG    #PV #LV #SN Attr   VSize   VFree
  my_vg   1   0   0 wz--n- 508.00m 508.00m

특정 Volume Group 에 대한 자세한 보고서를 보려면 vgdisplay를 사용합니다.

sudo vgdisplay my_vg

이 출력은 PE 크기, 총 PE 수 및 아직 사용 가능한 PE 수를 포함한 포괄적인 세부 정보를 제공합니다.

  --- Volume group ---
  VG Name               my_vg
  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               508.00 MiB
  PE Size               4.00 MiB
  Total PE              127
  Alloc PE / Size       0 / 0
  Free  PE / Size       127 / 508.00 MiB
  VG UUID               xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

PE Size가 4.00 MiB 이고 127 개의 Free PE가 있음을 확인하십시오. 이는 Volume Group 에서 사용 가능한 총 공간에 해당합니다. 이제 Volume Group 을 성공적으로 생성했으며 Logical Volume 을 생성할 준비가 되었습니다.

lvcreatemkfs.xfs 를 사용하여 Logical Volume 생성 및 포맷

이 단계에서는 생성한 Volume Group 에서 Logical Volume (LV) 이라고 하는 사용 가능한 블록 장치를 분할합니다. LV 가 생성되면 아직 원시 스토리지 공간일 뿐입니다. 파일를 저장하려면 파일 시스템으로 포맷해야 합니다.

Logical Volume 및 파일 시스템 이해

**Logical Volume (LV)**은 기존 디스크 파티션에 해당하는 LVM 입니다. Volume Group 내의 사용 가능한 공간에서 생성되며 운영 체제에 표준 블록 장치로 제공됩니다. LV 에 파일 시스템을 생성하고, 마운트하고, 데이터를 저장하는 데 사용할 수 있습니다. 주요 장점은 LV 의 크기를 쉽게 조정할 수 있다는 것입니다. 이는 물리적 파티션에서는 훨씬 더 어렵습니다.

파일 시스템은 운영 체제가 데이터를 저장하고 검색하는 방식을 제어하는 데 사용하는 데이터 구조입니다. LV 와 같은 장치의 원시 공간을 파일과 디렉토리로 구성합니다. 이 랩에서는 Red Hat Enterprise Linux 의 기본값인 고성능 저널링 파일 시스템인 XFS를 사용합니다.

1. Logical Volume 생성

이제 my_vg Volume Group 에서 256 MiB Logical Volume 인 my_lv를 생성합니다. 이 명령은 lvcreate입니다.

  • -n my_lv: 새 LV 의 이름을 지정합니다.
  • -L 256M: LV 의 크기를 256 메가바이트로 설정합니다.
  • my_vg: LV 를 생성할 Volume Group 의 이름입니다.

다음 명령을 실행합니다.

sudo lvcreate -n my_lv -L 256M my_vg

성공적인 명령은 다음 출력을 생성합니다.

  Logical volume "my_lv" created.

2. Logical Volume 생성 확인

lvslvdisplay 명령을 사용하여 새 LV 를 검사할 수 있습니다.

모든 LV 의 요약을 보려면 다음을 실행합니다.

sudo lvs

출력에는 my_vg 그룹 내의 새 LV 인 my_lv가 표시됩니다.

  LV    VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  my_lv my_vg -wi-a----- 256.00m

자세한 보기를 보려면 LV 의 전체 경로를 지정할 수 있습니다. LV 의 경로는 일반적으로 /dev/VG_NAME/LV_NAME입니다.

sudo lvdisplay /dev/my_vg/my_lv

이것은 다음 단계에 필요한 LV Path 를 포함한 자세한 정보를 제공합니다.

  --- Logical volume ---
  LV Path                /dev/my_vg/my_lv
  LV Name                my_lv
  VG Name                my_vg
  LV UUID                xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  LV Write Access        read/write
  LV Creation host, time host, 2023-10-27 10:30:00 +0000
  LV Status              available
  ## open                 0
  LV Size                256.00 MiB
  Current LE             64
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

3. XFS 파일 시스템으로 Logical Volume 포맷

이제 mkfs.xfs 명령을 사용하여 my_lv Logical Volume 을 XFS 파일 시스템으로 포맷합니다. 이렇게 하면 볼륨이 파일을 저장할 준비가 됩니다.

sudo mkfs.xfs /dev/my_vg/my_lv

이 명령은 생성하는 파일 시스템에 대한 세부 정보를 출력합니다.

meta-data=/dev/my_vg/my_lv       isize=512    agcount=4, agsize=16384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=65536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

이제 Logical Volume 이 포맷되었으며 마운트하여 사용할 준비가 되었습니다. 다음 단계에서 이 작업을 수행합니다.

/etc/fstab을 사용하여 Logical Volume 영구 마운트 설정

이 단계에서는 생성하고 포맷한 Logical Volume 을 시스템에서 액세스할 수 있도록 합니다. 여기에는 두 가지 작업이 포함됩니다. "마운트 지점" 역할을 할 디렉토리를 생성한 다음, 부팅할 때마다 Logical Volume 을 이 디렉토리에 자동으로 연결하도록 시스템을 구성합니다.

마운트 및 /etc/fstab 이해

포맷된 블록 장치 (예: my_lv Logical Volume) 는 마운트될 때까지 직접 사용할 수 없습니다. 마운트는 파일 시스템을 주 파일 시스템 트리의 특정 디렉토리에 연결하는 프로세스입니다. 마운트되면 해당 디렉토리로 이동하여 장치에서 파일을 읽고 쓸 수 있습니다.

재부팅 후 파일 시스템이 자동으로 마운트되도록 하려면 /etc/fstab (파일 시스템 테이블) 파일에 해당 항목을 추가해야 합니다. 이 파일에는 부팅 시 시스템이 마운트해야 하는 모든 디스크 및 파티션 목록이 포함되어 있습니다.

1. 마운트 지점 생성

마운트 지점은 새 파일 시스템의 루트 역할을 할 빈 디렉토리입니다. 이 목적으로 /data라는 디렉토리를 생성합니다.

sudo mkdir /data

2. 영구 마운트를 위해 /etc/fstab에 항목 추가

이제 시스템에 /data 디렉토리에 LV 를 자동으로 마운트하도록 지시해야 합니다. /etc/fstab 파일에 새 줄을 추가합니다. 이 파일의 각 줄에는 6 개의 필드가 있습니다.

  1. Device: 마운트할 장치입니다. 이 경우 /dev/my_vg/my_lv입니다.
  2. Mount Point: 마운트할 디렉토리입니다. 여기서는 /data입니다.
  3. Filesystem Type: 파일 시스템 유형으로, xfs입니다.
  4. Mount Options: 마운트 옵션입니다. defaults는 대부분의 경우에 적합한 표준 옵션 집합입니다.
  5. Dump: dump 유틸리티에서 파일 시스템을 백업할지 여부를 결정하는 데 사용됩니다. 0은 비활성화를 의미합니다.
  6. Pass: fsck에서 부팅 시 파일 시스템을 확인하는 순서를 결정하는 데 사용됩니다. 0은 확인하지 않음을 의미합니다.

텍스트 편집기가 필요 없이 echo 명령과 sudo tee -a를 결합하여 /etc/fstab에 올바른 줄을 추가합니다.

echo '/dev/my_vg/my_lv /data xfs defaults 0 0' | sudo tee -a /etc/fstab

파일의 내용을 확인하여 줄이 올바르게 추가되었는지 확인할 수 있습니다.

cat /etc/fstab

3. 파일 시스템 마운트

이제 /etc/fstab에 항목이 있으므로 mount 명령을 사용하여 즉시 마운트할 수 있습니다. 마운트 지점 /data/etc/fstab에 나열되어 있으므로 디렉토리 이름만 제공하면 됩니다.

sudo mount /data

시스템은 /etc/fstab을 읽고 /data에 대한 항목을 찾아 해당 장치를 마운트합니다.

4. 마운트 확인

파일 시스템이 성공적으로 마운트되었는지 확인하려면 -h (사람이 읽을 수 있는) 옵션과 함께 df (디스크 여유 공간) 명령을 사용할 수 있습니다.

df -h /data

출력에는 총 크기와 사용 가능한 공간이 있는 /data에 마운트된 Logical Volume 이 표시됩니다.

Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/my_vg-my_lv     251M   28M  224M  11% /data

쓰기 권한이 있는지 확인하기 위해 테스트 파일을 만들 수도 있습니다.

echo "My LVM is working!" | sudo tee /data/test.txt

그런 다음 파일을 다시 읽어 쓰여졌는지 확인합니다.

cat /data/test.txt
My LVM is working!

이제 Logical Volume 이 마운트되었으며 시스템이 시작될 때마다 자동으로 사용할 수 있습니다.

vgextendlvextend 를 사용하여 Volume Group 및 Logical Volume 확장

이 단계에서는 LVM 의 가장 강력한 기능 중 하나인 스토리지 크기를 동적으로 늘리는 기능을 경험하게 됩니다. 기존 Volume Group 에 새 물리적 디스크 파티션을 추가하여 총 용량을 늘린 다음, 해당 새 공간의 일부를 사용하도록 Logical Volume 을 확장합니다.

스토리지 확장 이해

LVM 을 사용하는 주요 이유 중 하나는 유연성입니다. 공간이 부족해지면 복잡한 데이터 마이그레이션을 수행할 필요가 없습니다. 대신, 다른 물리적 디스크 (또는 파티션) 를 Volume Group 에 추가한 다음 필요에 따라 Logical Volume 을 늘릴 수 있습니다. 이 모든 작업은 파일 시스템을 마운트 해제하지 않고 온라인으로 수행할 수 있습니다.

  • vgextend: 이 명령은 하나 이상의 Physical Volume 을 기존 Volume Group 에 추가하여 총 크기를 늘립니다.
  • lvextend: 이 명령은 Logical Volume 의 크기를 늘려 Volume Group 내의 사용 가능한 익스텐트에서 공간을 가져옵니다.

1. 새 Physical Volume 준비

Volume Group 을 확장하려면 먼저 새 Physical Volume 이 필요합니다. 첫 번째 단계에서 했던 것처럼 /dev/vdb 장치에 두 번째 파티션을 생성합니다.

먼저, 새 512 MiB 파티션을 생성합니다. 첫 번째 파티션 바로 뒤에 배치합니다.

sudo parted /dev/vdb mkpart lvm-part2 513MiB 1025MiB

다음으로, 파티션 유형을 lvm으로 설정합니다.

sudo parted /dev/vdb set 2 lvm on

커널이 새 파티션 /dev/vdb2를 인식하는지 확인합니다.

sudo udevadm settle

마지막으로, 이 새 파티션을 Physical Volume 으로 초기화합니다.

sudo pvcreate /dev/vdb2

성공 메시지가 표시됩니다.

  Physical volume "/dev/vdb2" successfully created.

2. Volume Group 확장

이제 vgextend 명령을 사용하여 새 Physical Volume (/dev/vdb2) 을 기존 Volume Group (my_vg) 에 추가합니다.

sudo vgextend my_vg /dev/vdb2

확인 메시지는 성공을 나타냅니다.

  Volume group "my_vg" successfully extended

vgs 명령으로 변경 사항을 확인할 수 있습니다. VSizeVFree가 크게 증가했음을 확인하십시오.

sudo vgs my_vg
  VG    #PV #LV #SN Attr   VSize    VFree
  my_vg   2   1   0 wz--n- 1022.00m 766.00m

my_vg Volume Group 은 이제 두 개의 물리적 파티션을 포함하며 더 많은 사용 가능한 공간을 갖습니다.

3. Logical Volume 확장

Volume Group 에 더 많은 공간이 있으므로 이제 Logical Volume 을 확장할 수 있습니다. my_lv의 크기를 256 MiB 에서 새로운 총 크기인 400 MiB 로 늘려 보겠습니다.

-L 옵션이 있는 lvextend 명령은 볼륨의 새로운 절대 크기를 설정합니다.

sudo lvextend -L 400M /dev/my_vg/my_lv

출력은 크기 조정 작업을 확인합니다.

  Size of logical volume my_vg/my_lv changed from 256.00 MiB (64 extents) to 400.00 MiB (100 extents).
  Logical volume my_vg/my_lv successfully resized.

lvs를 사용하여 Logical Volume 의 새 크기를 확인합니다.

sudo lvs /dev/my_vg/my_lv
  LV    VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  my_lv my_vg -wi-ao---- 400.00m

중요: Logical Volume(블록 장치) 을 성공적으로 확장했지만, 해당 볼륨에 있는 XFS 파일 시스템은 아직 이 새 공간을 인식하지 못합니다. 마운트된 파일 시스템의 크기를 확인하면 이전 크기가 계속 보고됩니다.

df -h /data
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/my_vg-my_lv     251M   28M  224M  11% /data

다음 단계에서는 파일 시스템의 크기를 조정하여 Logical Volume 에서 새로 사용 가능한 공간을 채웁니다.

xfs_growfs 를 사용하여 XFS 파일 시스템 크기 조정

이 마지막 단계에서는 XFS 파일 시스템의 크기를 조정하여 기본 Logical Volume 에 할당한 추가 공간을 인식하도록 함으로써 스토리지 확장 프로세스를 완료합니다. 이는 새 공간을 파일을 저장하는 데 사용할 수 있도록 하는 중요한 마지막 단계입니다.

파일 시스템 크기 조정 이해

Logical Volume 을 확장하면 컨테이너 (블록 장치) 의 크기만 늘리는 것입니다. 해당 컨테이너 내부의 파일 시스템은 원래 크기를 유지하며 장치 끝에 있는 새롭고 사용되지 않은 공간을 인식하지 못합니다.

XFS 파일 시스템의 경우, xfs_growfs 명령을 사용하여 파일 시스템을 확장하여 기본 장치를 채웁니다. XFS 의 주요 장점은 이 작업을 파일 시스템이 마운트되어 사용 중인 상태에서 중단 없이 온라인으로 수행할 수 있다는 것입니다.

1. XFS 파일 시스템 확장

xfs_growfs 명령은 파일 시스템의 마운트 지점을 인수로 사용합니다. 이 경우 마운트 지점은 /data입니다.

파일 시스템을 확장하려면 다음 명령을 실행합니다.

sudo xfs_growfs /data

이 명령은 변경 사항에 대한 정보를 출력하여 이전 및 새 데이터 블록 수를 나타냅니다.

meta-data=/dev/mapper/my_vg-my_lv isize=512    agcount=4, agsize=16384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=65536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 65536 to 102400

핵심 줄은 data blocks changed from 65536 to 102400이며, 이는 파일 시스템이 확장되었음을 확인합니다.

2. 새 파일 시스템 크기 확인

이제 df -h 명령을 다시 실행하여 파일 시스템 크기가 변경 사항을 반영하는지 확인합니다.

df -h /data

이제 출력에 새롭고 더 큰 크기 (약 400 MiB) 가 표시됩니다.

Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/my_vg-my_lv     395M   29M  367M   8% /data

이전에 생성한 테스트 파일이 여전히 그대로 있는지 확인할 수도 있습니다.

cat /data/test.txt
My LVM is working!

축하합니다! 물리적 디스크 파티션 분할 및 Physical Volume 생성부터 Volume Group 구축, Logical Volume 생성, 포맷 및 마운트, 마지막으로 데이터 손실 없이 동적으로 온라인으로 확장하는 것까지 전체 LVM 워크플로우를 성공적으로 완료했습니다.

요약

이 랩에서는 RHEL 에서 Logical Volume Manager (LVM) 를 사용하여 스토리지를 설정하는 기본적인 워크플로우를 배웠습니다. 먼저 parted를 사용하여 lvm 플래그가 설정된 파티션을 생성하고, pvcreate를 사용하여 Physical Volume (PV) 으로 초기화하여 물리적 디스크를 준비하는 것으로 시작했습니다. 그 다음, vgcreate를 사용하여 PV 를 새 Volume Group (VG) 으로 풀링했습니다. 이 VG 에서 lvcreate를 사용하여 Logical Volume (LV) 을 생성하고, mkfs.xfs를 사용하여 XFS 파일 시스템으로 포맷했으며, /etc/fstab에 항목을 추가하여 영구 마운트를 구성했습니다.

또한 이 랩에서는 기존 Logical Volume 을 확장하는 과정을 안내하여 LVM 의 유연성을 보여주었습니다. 여기에는 새 Physical Volume 을 준비하고, vgextend를 사용하여 Volume Group 에 추가하여 총 사용 가능한 공간을 늘린 다음, lvextend를 사용하여 Logical Volume 자체를 확장하는 작업이 포함되었습니다. 마지막으로, xfs_growfs를 사용하여 XFS 파일 시스템의 크기를 온라인으로 조정하여 추가 스토리지 공간을 운영 체제에서 사용할 수 있도록 함으로써 동적 스토리지 관리의 엔드 투 엔드 프로세스를 완료했습니다.