문제 상황
CentOS 기본 설치 시 루트(/) 볼륨은 50GB로 제한되고, /home은 약 957GB나 할당되는 경우가 많습니다. 대부분의 애플리케이션과 패키지는 /home이 아닌 루트 경로에 설치되므로, 이 공간 분배는 실무 환경에서 비효율적입니다. 본 문서에서는 /home 논리 볼륨을 제거하고 해당 공간을 루트 볼륨에 통합하는 방법을 설명합니다.
현재 스토리지 구조 확인
먼저 전체 디스크 및 볼륨 구성을 파악합니다.
[root@server01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 2.1G 48G 5% /
/dev/mapper/centos-home 957G 40M 957G 1% /home물리적 디스크와 LVM 계층 구조를 lsblk로 확인합니다.
[root@server01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 1022.8G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 15.8G 0 lvm [SWAP]
└─centos-home 253:2 0 957G 0 lvm /home데이터 보관 및 서비스 중지
/home 내 모든 데이터를 임시 경로로 복사합니다. -a 옵션으로 권한과 속성을 그대로 유지합니다.
[root@server01 ~]# mkdir -p /var/tmp/home_archive
[root@server01 ~]# cp -a /home/* /var/tmp/home_archive/해당 경로를 참조할 가능성이 있는 서비스를 중지합니다.
[root@server01 ~]# systemctl stop crond
[root@server01 ~]# systemctl stop atd || echo "atd not installed"파일 시스템 언마운트
사용 중인 프로세스가 없는지 확인 후 강제 언마운트를 수행합니다.
[root@server01 ~]# umount -l /home
[root@server01 ~]# lsof /home 2>/dev/null || echo "No active processes on /home"논리 볼륨 제거
기존 centos-home 논리 볼륨을 삭제하여 볼륨 그룹 내 여유 공간을 확보합니다.
[root@server01 ~]# lvremove /dev/centos/home
Do you really want to remove active logical volume centos/home? [y/n]: y
Logical volume "home" successfully removed루트 볼륨 확장
볼륨 그룹에서 남은 모든 여유 공간(extent)을 centos-root에 할당합니다.
[root@server01 ~]# lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 1007.05 GiB (257805 extents).
Logical volume centos/root successfully resized.파일 시스템 확장
XFS 파일 시스템의 경우 온라인 확장이 가능하며, xfs_growfs를 실행해야 실제 파일 시스템 크기가 반영됩니다.
[root@server01 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
...
data blocks changed from 13107200 to 263992320부팅 설정 수정
/etc/fstab에서 /home에 대한 마운트 항목을 제거하거나 주석 처리합니다. 미수정 시 부팅 시 오류가 발생할 수 있습니다.
[root@server01 ~]# sed -i '/\/home/s/^/# /' /etc/fstab
[root@server01 ~]# grep -v '^#' /etc/fstab | grep -v '^$'
/dev/mapper/centos-root / xfs defaults 0 0
UUID=29b0e279-9b23-46ed-9271-31726f790177 /boot xfs defaults 0 0
UUID=F141-4160 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/centos-swap swap swap defaults 0 0설정 검증 및 데이터 복원
mount -a로 fstab 문법 오류 여부를 확인합니다.
[root@server01 ~]# mount -a오류가 없으면 백업한 데이터를 원래 위치로 이동합니다.
[root@server01 ~]# mkdir -p /home
[root@server01 ~]# cp -a /var/tmp/home_archive/* /home/
[root@server01 ~]# ls -la /home/
drwx------. 2 admin admin 83 Aug 26 10:12 admin
drwxr-xr-x. 2 root root 26 Aug 26 09:55 scripts최종 상태 확인
확장된 루트 볼륨이 정상적으로 마운트되었는지 검증합니다.
[root@server01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 1022.8G 0 part
├─centos-root 253:0 0 1007.1G 0 lvm /
└─centos-swap 253:1 0 15.8G 0 lvm [SWAP]
[root@server01 ~]# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 1008G 2.1G 1006G 1% /시스템을 재부팅하여 변경 사항이 영구적으로 적용되는지 최종 확인합니다.
[root@server01 ~]# reboot