CentOS 7에서 LVM ROOT(centos-root) 파티션을 확장하는 방법(XFS)
운영 중인 시스템에서 LVM으로 구성된 ROOT 파일시스템(/)을 디스크 증설 후 확장하는 방법입니다.
- 순서 요약
- 디스크 추가
- LVM 파티션 생성 (8e)
- pvcreate
- vgextend
- lvextend
- xfs_growfs
1. 테스트 환경
운영체제 정보
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
초기 디스크 구성
$ df -Th | egrep -v tmpfs
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 8.0G 1.6G 6.5G 19% /
/dev/sda1 xfs 1014M 167M 848M 17% /boot
- ROOT(/)는 LVM Logical Volume (centos-root)
- 파일시스템은 XFS
- 현재 ROOT 용량은 8GB
2. 물리 디스크 증설
- 10GB 디스크 1개 추가
- 새 디스크 장치명 : /dev/sdb
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 9G 0 part
├─centos-root 253:0 0 8G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
3. 기존 LVM 구성 확인
Logical Volume 확인
lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID trWXTj-Kz8t-FsW5-kYUz-vjlf-Vf0L-KyFdtD
LV Write Access read/write
LV Creation host, time backup, 2021-08-12 07:33:13 -0400
LV Status available
# open 2
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID 2sEmk2-uP1V-XFQ3-Nplu-fwaH-UzKq-BeM2IU
LV Write Access read/write
LV Creation host, time backup, 2021-08-12 07:33:14 -0400
LV Status available
# open 1
LV Size <8.00 GiB
Current LE 2047
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
Volume Group 상태
vgdisplay
VG Name centos
VG Size <9.00 GiB
Free PE 0
4. 신규 디스크 파티셔닝(LVM용)
물리 디스크 확인
fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c1034
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 20971519 9436160 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
fdisk로 /dev/sdb 파티션 설정
fdisk /dev/sdb
- Primary partition 생성
- 전체 용량 사용
- 파티션 타입 : 8e (Linux LVM)
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb4b13c6f.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
결과 확인
fdisk -l /dev/sdb
Device Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 8e Linux LVM
blkid 명령으로 LVM2_member로 지정되어 있는지 확인
blkid
/dev/sda1: UUID="4702fde8-6f7e-411c-8564-3fb0fcf53609" TYPE="xfs"
/dev/sda2: UUID="YlzqyR-j3zj-UIph-Zwd8-X7aU-sgqF-Ea27B7" TYPE="LVM2_member"
/dev/sdb1: UUID="ef0kFO-W00J-vyCy-cQ6b-OL4T-oHAe-L0ti3R" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="da42f4e0-c733-4228-9a4b-5ad601a13926" TYPE="xfs"
/dev/mapper/centos-swap: UUID="dfea2579-f2a4-4a63-b10c-f0c3a78ab6a0" TYPE="swap"
5. Physical Volume 생성
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
PV 상태 확인
pvscan
PV /dev/sda2 VG centos lvm2 [<9.00 GiB / 0 free]
PV /dev/sdb1 lvm2 [<10.00 GiB]
Total: 2 [<19.00 GiB] / in use: 1 [<9.00 GiB] / in no VG: 1 [<10.00 GiB]
vgdisplay 명령으로 'VG Name' 확인
vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <9.00 GiB
PE Size 4.00 MiB
Total PE 2303
Alloc PE / Size 2303 / <9.00 GiB
Free PE / Size 0 / 0
VG UUID V6A7Aa-Uq5g-Foqu-VoIl-Fvq3-ccnT-9jE60g
pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <9.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2303
Free PE 0
Allocated PE 2303
PV UUID YlzqyR-j3zj-UIph-Zwd8-X7aU-sgqF-Ea27B7
"/dev/sdb1" is a new physical volume of "<10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ef0kFO-W00J-vyCy-cQ6b-OL4T-oHAe-L0ti3R
6. Volume Group 확장
기존 VG(centos)에 신규 PV 추가
vgextend centos /dev/sdb1
Volume group "centos" successfully extended
확인
vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 18.99 GiB
PE Size 4.00 MiB
Total PE 4862
Alloc PE / Size 2303 / <9.00 GiB
Free PE / Size 2559 / <10.00 GiB
VG UUID V6A7Aa-Uq5g-Foqu-VoIl-Fvq3-ccnT-9jE60g
VG에 약 10GB의 여유 공간 확보
root(/dev/mapper/centos-root) 파일시스템 확인
df -Th | egrep -v tmpfs
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 8.0G 1.6G 6.5G 19% /
/dev/sda1 xfs 1014M 167M 848M 17% /boot
7. Logical Volume(ROOT) 확장
확보된 Free PE 전체를 ROOT LV에 할당
lvextend /dev/centos/root -l +2559
Size of logical volume centos/root changed from <8.00 GiB (2047 extents) to 17.99 GiB (4606 extents).
Logical volume centos/root successfully resized.
8. XFS 파일시스템 확장
XFS는 온라인 확장만 가능하며 resize2fs가 아닌 xfs_growfs 명령을 사용해야 한다.
xfs_growfs /dev/centos/root
정상 확장 메시지 확인
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=524032 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2096128, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal 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 2096128 to 4716544
9. 최종 확인
df -h | egrep -v tmpfs
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 1.6G 17G 9% /
/dev/sda1 1014M 167M 848M 17% /boot
ROOT(/) 파일시스템이 8GB → 18GB로 정상 확장됨
'리눅스' 카테고리의 다른 글
| [draft] 우분투 22.04에서 LVM ROOT(vg0-lv-0) 파티션을 확장하는 방법 (0) | 2026.01.27 |
|---|---|
| [draft] 우분투에서 IPv6를 영구적으로 비활성화하는 방법 (0) | 2026.01.27 |
| [draft] fuser 명령어 (0) | 2026.01.27 |
| [draft] dd 명령어 (0) | 2026.01.27 |
| [draft] dd를 사용하여 디스크의 읽기/쓰기 속도를 측정하는 방법 (1) | 2026.01.27 |