본문 바로가기
Technical/System

2. 리눅스에서 LVM 설정 하기 (LVM 확장(증설) 및 파일시스템 확장)

by 박성규 2026. 6. 11.

이전에 올린 리눅스에서 LVM 설정 하기 (LVM 구성 및 파일시스템 생성) 에 이이서 이번엔  LVM 확장(증설) 및 파일시스템 확장하는 방법에 대한 내용이다.

 

1. LVM 구성 및 파일시스템 생성

2. LVM 확장(증설) 및 파일시스템 확장

 

 

LVM으로 구성된 환경에서 디스크를 추가하여 vg 및 lv의 용량을 늘리고 아울러 파일시스템의 용량까지 증설해 보자

 

지난 글에 이어서 진행 하는 거라 테스트 환경은 이전과 동일하다.

 

테스트 환경

OS : Rocky 9.7

디스크 : 로컬디스크 900GB (OS영역)

             EMC 스토리지 디스크 300GB

 

 

1. 현재 디스크 정보 확인

  스토리지에서 할당한 디스크 300GB를 100GB와 200GB로 나누어 파일시스템을 구성하였다.

▶ pv 확인
[root@rocky:/]# pvs                         
  PV              VG           Fmt     Attr    PSize          PFree  
  /dev/sda3   rl              lvm2    a--     <835.75g      0 
 /dev/sdb    datavg        lvm2    a--      300.00g       0

                    
▶ vg 확인
[root@rocky:/]# vgs
  VG        #PV   #LV   #SN    Attr   VSize         VFree   
datavg      1       2       0 wz   --n-   <300.00g      0   
  rl             1       2       0 wz   --n-   <835.75g      0 


▶ lv 확인
[root@rocky:/]# lvs
  LV          VG          Attr          LSize    Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert
  datalv    datavg    -wi-ao----  100.00g                                                    
  datalv2  datavg    -wi-ao---- <200.00g
  root        rl            -wi-ao---- <827.75g                                                    
  swap      rl            -wi-ao----    8.00g       


[root@rocky:/]# 
lsblk
NAME                  MAJ:MIN RM   SIZE    RO TYPE MOUNTPOINTS
sda                               8:0    0     837.8G  0   disk 
├─sda1                        8:1    0     1G         0   part     /boot/efi
├─sda2                        8:2    0     1G         0   part     /boot
└─sda3                        8:3    0     835.7G  0   part 
  ├─rl-root                 253:0    0    827.7G  0   lvm      /
  └─rl-swap              253:1    0     8G         0   lvm      [SWAP]
sdb                              8:16   0    300G     0   disk
├─datavg-datalv     253:2    0   100G      0   lvm 
└─datavg-datalv2   253:3    0   200G      0   lvm  


[root@rocky:/]# df -h
Filesystem                                Size     Used      Avail   Use%      Mounted on
devtmpfs                                  4.0M         0        4.0M     0%         /dev
tmpfs                                         63G         0         63G     0%         /dev/shm
tmpfs                                         26G      9.9M      26G     1%         /run
efivarfs                                       64K       60K       0     100%         /sys/firmware/efi/efivars
/dev/mapper/rl-root                  828G      12G    816G     2%         /
/dev/sda2                                 960M    366M    595M   39%         /boot
/dev/sda1                               1022M     7.1M  1015M     1%         /boot/efi
tmpfs                                          13G       52K      13G     1%         /run/user/42
tmpfs                                          13G       36K      13G     1%         /run/user/0
/dev/mapper/datavg-datalv      98G      24K      93G     1%         /data
/dev/mapper/datavg-datalv2  200G     1.5G    199G     1%          /data2

 

 

2. EMC 스토리지에서 서버로 100GB를 추가로 할당

  신규로 할당한 100GB 디스크는 sdc로 인식 되었다.

[root@rocky:/]# lsblk
NAME                  MAJ:MIN RM   SIZE    RO TYPE MOUNTPOINTS
sda                               8:0    0     837.8G  0   disk 
├─sda1                        8:1    0     1G         0   part     /boot/efi
├─sda2                        8:2    0     1G         0   part     /boot
└─sda3                        8:3    0     835.7G  0   part 
  ├─rl-root                 253:0   0    827.7G   0   lvm      /
  └─rl-swap              253:1    0     8G         0   lvm      [SWAP]
sdb                               8:16  0    300G      0   disk
├─datavg-datalv      253:2    0   100G       0   lvm 
└─datavg-datalv2    253:3    0   200G       0   lvm  
sdc                               8:32  0   100G       0   disk

 

 

3. vg 확장

 기존 300GB 크기의 datavg에 100GB 디스크를 추가하여 400GB짜리 datavg로 확장

▶ vgextend 명령어로 vg 확장하기
[root@rocky:/]# vgextend datavg /dev/sdc                       <=== datavg에 /dev/sdc 디스크를 추가하여 vg를 확장 함
  Physical volume "/dev/sdc" successfully created.      <=== pvcreate /dev/sdc 가 자동으로 실행됨
  Volume group "datavg" successfully extended 

* 만약에 오래된 버전의 OS를 사용중이면 pvcreate /dev/sdc를 먼저 수행 후 vgextend를 진행해야 한다.

▶ 변경된 디스크 정보 확인
[root@rocky:/]# pvs                         
  PV              VG           Fmt     Attr    PSize          PFree  
 /dev/sda3   rl               lvm2    a--     <835.75g      0 
 /dev/sdb    datavg        lvm2    a--      300.00g       0
 /dev/sdc   datavg       lvm2    a--    <100.00g <100.00g    <=== /dev/sdc 디스크가 datavg에 포함됨



                    
▶ vg 확인
[root@rocky:/]# vgs
  VG        #PV   #LV   #SN    Attr      VSize         VFree   
datavg      2       2       0 wz   --n-     399.99g  <100.00g      <=== datavg의 PV가 2개로 늘어났고 Size 및 Free도 늘어남
  rl             1       2       0 wz   --n-   <835.75g        0 

 

 

4. lv 확장

  늘어난 100GB의 용량을 datalv에 20GB를 추가 하고 datalv2에 남은 모든 용량을 추가해 보자

  datalv : 100GB -> 120GB

  datalv2 : 200GB -> 약280GB  (200GB + 남은 용량)

 

* 주위 : LVM은 언제든지 용량을 늘릴 수 있지만 줄이는 것은 불가능하다. 한번 늘린 용량은 절대 회수가 안되니 용량을 설정할 때

            신중한 판단을 하기 바란다.

 

lv를 확장하기 전에 알아 둬야 할 옵션이 있는데 바로 -r 옵션이다.

-r 옵션은 resizefs 명령어로 파일시스템을 늘어난 용량 만큼 resize 해주는 옵션이다.

단순히 lv를 늘린다고 해당 파일시스템의 용량도 늘어 나는 것이 아니다.

 

lv를 확장하고 파일시스템을 늘려주는 작업의 구체적인 순서를 보면

1) lvextend 명령어로 lv 늘리기

     => lvextend -L +20G /dev/mapper/datavg-datalv 명령어 실행

     => datalv의 용량이 20GB만큼 늘어남 (100GB => 120GB)

     => 하지만 datalv를 사용하는 /data 파일시스템의 용량은 아직 그대로 임 (/data 100GB)

 

2) 늘어난 lv의 크기 만큼 파일리스템 용량 늘리기

     => resize2fs /dev/mapper/datavg-datalv 명령어 실행

     => datalv를 사용하는 /data 파일시스템의 용량 늘어남 (/data 120GB)

 

이때 lvextend 할때 -r 옵션을 주면 resize2fs 명령어를 한번에 실행 할수 있다.

 3) -r 옵션을 사용하여 lv 늘리기

      => lvextend -rL +20G /dev/mapper/datavg-datalv 명령어 실행

     => datalv의 용량이 20GB만큼 늘어남 (100GB => 120GB)

     => datalv를 사용하는 /data 파일시스템의 용량도 같이 늘어남 (/data 100GB => 120GB)

 

즉, -r 옵션을 사용하면 단순히 lv만 확장해 주는게 아니고 해당 파일시스템의 용량까지 한번에 늘려 준다.

 * 파일시스템의 타입이 ext4 이면 resize2fs 명령어를 xfs이면 xfs_growfs 명령어를 사용한다.

▶ datalv의 용량을 20GB 늘리기
[root@rocky:/]# lvextend -L +20G /dev/mapper/datavg-datalv         <=== -r 옵션 x
  Size of logical volume datavg/datalv changed from 100.00 GiB (25600 extents) to 120.00 GiB (30720 extents).
  Logical volume datavg/datalv successfully resized.

▶ datalv2의 용량을 남은 공간 모두로 늘리기
[root@rocky:/]# lvextend -rl +100%FREE /dev/mapper/datavg-datalv2       <=== -r 옵션 적용
  File system xfs found on datavg/datalv2 mounted at /data2.
  Size of logical volume datavg/datalv2 changed from <200.00 GiB (51199 extents) to 279.99 GiB (71678 extents).
  Extending file system xfs to 279.99 GiB (300639322112 bytes) on datavg/datalv2...
xfs_growfs /dev/datavg/datalv2                                       <===  파일시스템 resize 작업 진행
meta-data=/dev/mapper/datavg-datalv2 isize=512    agcount=16, agsize=3276736 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=52427776, imaxpct=25
         =                       sunit=2      swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=25600, version=2
         =                       sectsz=512   sunit=2 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 52427776 to 73398272
xfs_growfs done
  Extended file system xfs on datavg/datalv2.
  Logical volume datavg/datalv2 successfully resized.


▶ vg 확인
[root@rocky:/]# vgs
  VG        #PV   #LV   #SN    Attr      VSize         VFree   
datavg      2       2       0 wz   --n-     399.99g       0           <=== datavg의 PV가 2개로 늘어났고 Size 및 Free도 늘어남
  rl             1       2       0 wz   --n-   <835.75g        0 


▶ lv 확인
[root@rocky:/]# lvs
  LV          VG          Attr          LSize    Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert
  datalv    datavg    -wi-ao----  120.00g          <=== Size가 120GB로 늘어남                                          
  datalv2  datavg    -wi-ao---- <279.99g         <=== Size가 약 279.99GB로 늘어남
  root        rl            -wi-ao---- <827.75g                                                    
  swap      rl            -wi-ao----    8.00g   


▶ df -h 확인
[root@rocky:/]# df -h
Filesystem                                Size     Used      Avail   Use%      Mounted on
devtmpfs                                  4.0M         0        4.0M     0%         /dev
tmpfs                                         63G         0         63G     0%         /dev/shm
tmpfs                                         26G      9.9M      26G     1%         /run
efivarfs                                       64K       60K       0     100%         /sys/firmware/efi/efivars
/dev/mapper/rl-root                  828G      12G    816G     2%         /
/dev/sda2                                 960M    366M    595M   39%         /boot
/dev/sda1                               1022M     7.1M  1015M     1%         /boot/efi
tmpfs                                          13G       52K      13G     1%         /run/user/42
tmpfs                                          13G       36K      13G     1%         /run/user/0
/dev/mapper/datavg-datalv         98G      24K       93G    1%         /data         <=== -r 옵션 미사용으로 파일시스템 용량 변동 없음
/dev/mapper/datavg-datalv2     280G     2.0G     278G    1%         /data2       <=== -r 옵션 사용으로 파일시스템 용량이 늘어남

 

 

5. 파일시스템 늘리기

  lvextend 명령어를 실행 할때 -r 옵션을 주지 않았다면 파일시스템을 늘려주는 작업을 해줘야 한다.

  사용중인 파일시스템의 타입이 ext4 이면 resize2fs 명령어를 사용해야 하고 xfs이면 xfs_growfs 명령어를 사용한다.

타입 명령어 예시
ext4, ext3 resize2fs # resize2fs /dev/mapper/datavg-datalv
xfs xfs_gorwfs # xfs_growfs /dev/mapper/datavg-datalv2

 

▶ /data 파일시스템 용량 늘리기 (ext4)
[root@rocky:/]# resize2fs /dev/mapper/datavg-datalv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/datavg-datalv is mounted on /data; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 15
The filesystem on /dev/mapper/datavg-datalv is now 31457280 (4k) blocks long.



▶ df -h 확인
[root@rocky:/]# df -h
Filesystem                                Size     Used      Avail   Use%      Mounted on
devtmpfs                                  4.0M         0        4.0M     0%         /dev
tmpfs                                         63G         0         63G     0%         /dev/shm
tmpfs                                         26G      9.9M      26G     1%         /run
efivarfs                                       64K       60K       0     100%         /sys/firmware/efi/efivars
/dev/mapper/rl-root                  828G      12G    816G     2%         /
/dev/sda2                                 960M    366M    595M   39%         /boot
/dev/sda1                               1022M     7.1M  1015M     1%         /boot/efi
tmpfs                                          13G       52K      13G     1%         /run/user/42
tmpfs                                          13G       36K      13G     1%         /run/user/0
/dev/mapper/datavg-datalv     118G      24K     112G    1%         /data         <=== 파일시스템 용량이 늘어남
/dev/mapper/datavg-datalv2   280G     2.0G     278G    1%         /data2       

 

 

 

댓글