리눅스 시스템을 사용하다 보면 파일시스템의 용량이 부족해 지는 상황이 종종 발생한다. 파티션을 물리 파티션으로 구성을 했다면 골치 아픈 일이겠지만 파티션을 LVM으로 구성 했다면 언제라도 용량을 늘릴 수 있다. 단 디스크에 여유 공간이 있다는 전제하에 말이다.
리눅스 환경에서 LVM을 구성하고 관리하는 방법을 아래와 같이 2단계로 나눠서 설명하려고 한다.
1. 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 확장(증설) 및 파일시스템 확장 페이지로 가기
'Technical > System' 카테고리의 다른 글
| 리눅스에서 신규 디스크 인식하는 방법 (0) | 2026.06.11 |
|---|---|
| 2. 리눅스에서 LVM 설정 하기 (LVM 확장(증설) 및 파일시스템 확장) (0) | 2026.06.11 |
| [Windows] forfiles.exe를 이용하여 오래된 로그 삭제 (0) | 2025.11.27 |
| Linux 로그 수집 기간 변경하는 법 (0) | 2025.09.29 |
| tacacs 서버 설치 방법(Rocky Linux9.5) (2) | 2025.08.12 |
댓글