본문 바로가기
Technical/System

1. 리눅스에서 LVM 설정 하기 (LVM 구성 및 파일시스템 생성)

by 박성규 2026. 6. 9.

리눅스 시스템을 사용하다 보면 파일시스템의 용량이 부족해 지는 상황이 종종 발생한다. 파티션을 물리 파티션으로 구성을 했다면 골치 아픈 일이겠지만 파티션을 LVM으로 구성 했다면 언제라도 용량을 늘릴 수 있다. 단 디스크에 여유 공간이 있다는 전제하에 말이다.

 

리눅스 환경에서  LVM을 구성하고 관리하는 방법을 아래와  같이 2단계로 나눠서 설명하려고 한다.

 

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

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

 

여기선 1. LVM 구성 및 파일시스템 생성에 대한 설명이다.

 

테스트 환경

OS : Rocky 9.7

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

             EMC 스토리지 디스크 300GB

 

 

1. 작업 할 디스크 확인

   EMC 스토리지에서 Rocky 서버에 300GB LUN을 하나 할당을 했고 이 디스크로 LVM을 구성할 것이다.

[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        <=== LVM 작업할 디스크

   

작업순서

pv 생성  ->  vg 생성 -> lv 생성 -> format -> 마운트

 

 

2. pvcreate 명령어로 pv 생성하기

▶ pv 만들기
[root@rocky:/]# pvcreate /dev/sdb      <=== pvcreate '디바이스명'  
Physical volume "/dev/sdb" successfully created.

만약 아래와 같은 경고문이 나온다면 y를 입력한다.
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y    <=== y 입력

  Wiping dos signature on /dev/sdb.
  Physical volume "/dev/sdb" successfully created.

▶ pv 확인
[root@rocky:/]# pvs                               <=== pv 정보 확인
  PV              VG      Fmt     Attr    PSize          PFree  
  /dev/sda3   rl         lvm2    a--     <835.75g      0 
  /dev/sdb               lvm2    ---      300.00g     300.00g     <===  300GB 디스크 /dev/sdb의 pv 생성 확인

* pv 삭제 하는 명령어는 pvremove /dev/sdb 

 

 

3. vgcreate 명령어로 vg 생성하기

▶ vg 만들기

[root@rocky:/]# vgcreate datavg /dev/sdb      <===  vgcreate 'vg이름'  'pv 디바이스'
  Volume group "datavg" successfully created

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

* vg 삭제 명령어는 vgremove datavg 

 

 

4. lvcreate 명령어로 lv 생성하기

 특정 크기의 lv를 생성할 때

▶ 100GB lv 생성하기
[root@rocky:/]# lvcreate -L 100G -n datalv datavg   <=== 100GB 크기의 LV 생성
  Logical volume "datalv" created.

▶ lv 확인
[root@rocky:/]# lvs
  LV          VG          Attr          LSize    Pool  Origin Data%  Meta%  Move Log Cpy%Sync Convert
  datalv   datavg    -wi-a-----  100.00g     <=== 100GB 크기의 lv 생성 확인                                                      
  root        rl             -wi-ao---- <827.75g                                                    
  swap      rl             -wi-ao----    8.00g       




 가용한 전체 용량 크기의  lv를 생성할 때
▶ vg에 가용한 용량 전부를 lv로 생성
[root@rocky:~]# lvcreate -l +100%FREE -n datalv2 datavg  <=== 가용한 용량 전부를 LV로 생성
  Logical volume "datalv2" created.

▶ lv 확인
[root@rocky:/]# lvs
  LV          VG          Attr          LSize    Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert
  datalv    datavg    -wi-a-----  100.00g                                                    
  datalv2 datavg   -wi-a----- <200.00g        <===  300GB 중 남은 용량 200GB 크기의 lv 생성 확인
  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      sdb 디스크에 datalv와 datalv2 가 생성되었음 
└─datavg-datalv2   253:3    0   200G      0   lvm  

* lv삭제 명령어는 lvremove /dev/mapper/datavg-datalv

 

 

5. Format 하기

일반 사용자가 디스크를 사용하기 위해선 format 작업을 해야 한다. 리눅스에서 사용 가능한 파일시스템의 종류는 ext4, ext3, xfs등 있으나 여기선 ext4와 xfs로 포맷을 했다.

▶  ext4로 포맷
[root@rocky:/]# mkfs.ext4 /dev/mapper/datavg-datalv       <=== datalv를 ext4로 포맷
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done                            
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Filesystem UUID: 5b1192d9-ad10-4c06-a80d-9a04a603c7ba
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done   

▶  xfs로 포맷
[root@rocky:/]# mkfs.xfs /dev/mapper/datavg-datalv2      <=== datalv2를 xfs로 포맷
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
Discarding blocks...Done.


▶ 파일시스템 타입 확인
[root@rocky:/]# lsblk -f
NAME                    FSTYPE               FSVER    LABEL    UUID                                                              FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                               
├─sda1                  vfat                      FAT32                   6989-746B                                                        1014.9M    1%   /boot/efi
├─sda2                  xfs                                                     7ad89c5c-f00f-429f-8147-82742342a5ae          594.7M    8%    /boot
└─sda3                  LVM2_member   LVM2 001              ftiXwa-Nxvr-31pJ-MLcu-yoPV-5yJL-OeefKu                
  ├─rl-root              xfs                                                     0be096d5-6377-49cb-a864-3bad8f8e03af         815.6G    1%    /
  └─rl-swap            swap                     1                          f18625fb-5d6c-4eed-8cc6-f0f519f0ce83             [SWAP]
sdb                         LVM2_member   LVM2 001              7Y0MuL-H3KJ-VknT-db4G-PvDd-qqUi-pMkSPL                
├─datavg-datalv    ext4                     1.0                         5b1192d9-ad10-4c06-a80d-9a04a603c7ba                  
└─datavg-datalv2  xfs                                                     5012dea2-6bd7-405b-9a49-e8673d9db1af 


 

 

6. 마운트 하기

▶ 마운트 할 디렉토리 생성
[root@rocky:/]# mkdir data
[root@rocky:/]# mkdir data2

▶ 파일시스템 마운트
[root@rocky:/]# mount /dev/mapper/datavg-datalv /data
[root@rocky:/]# mount /dev/mapper/datavg-datalv2 /data2


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

 

 

2. LVM 확장(증설) 및 파일시스템 확장 페이지로 가기

 

 

댓글