Rocky Linux 루트파티션 크기 조절하기

2025. 1. 23. 11:38·Homeserver
728x90
반응형

개요

워커 노드로 사용하는 VM의 디스크를 64기가로 할당했지만, 파티셔닝을 자동으로 하는 바람에 홈 파티션이 약 20기가가 잡혀있었습니다.

df -h | grep /dev/mapper

처음엔 별 불편함을 느끼지 못했으나 파드가 늘어날수록 80%를 넘어가는 워커들의 디스크 사용량을 보며 홈 디렉토리를 줄이기로 했습니다..

근데 역시 한방에 되는게 없네요.

의식의 흐름대로 기술하겠습니다.

 

Home 파티션 백업 및 삭제….가 안되네?

사실 어려울 작업은 아니었습니다. 일단 현재 홈 디렉토리를 루트에 백업합니다.

tar -zcvf /root/home.tar.gz -C /home .

그리고 홈디렉토리를 언마운트합니다.

umount /home

안되면 제가 사랑하는 lazy, force를 사용합니다.

umount -lf /home
lvremove /dev/mapper/rl-home

그런데, 아래와 같은 문구가 출력되며 막혔습니다.

Logical volume rl/home contains a filesystem in use.

 

Home 파티션 사용중인 프로세스 찾기

원래 맨 처음 오류 문구로 구글링을 했을 땐, lsof | grep /home 으로 홈 파티션 사용중인 프로세스를 찾아서 kill하라고 되어있었지만,

제 경우 어마무시한 출력량에도 불구하고 /home 파티션을 사용중인 프로세스는 없었습니다.

조금 해맸는데, serverfault에서 답을 찾았습니다.

먼저, 아래명령을 사용해 home 논리볼륨에 대해 디바이스 정보 중 major, minor번호를 찾습니다.

dmsetup info -c | grep home

그러면 아래와 같이 253과 2라는 숫자를 얻을 수 있습니다.

rl-home          253   2 L--w    1    1      0 LVM-wPi7oFcvvcqdeLDVQAzr8cnCxRK1Q5yzapF6ohUobUkXFqBrDlpZE51cAvQa7L0E

해당 숫자로 프로세스를 검색합니다.

lsof | grep "253,2"

그러면 아래와 같이 엄청난 출력 로그 중, 253,2에 해당하는 프로세스가 출력됩니다.

이후 아래 명령어를 이용해 해당 프로세스들을 kill합니다.

kill -9 5610
kill -9 5640
kill -9 6121

그러나, 사실 위에 있는 명령어 3개는 제가 SSH에 root가 아닌 사용자 계정으로 접속하면서 발생한 프로세스들입니다.

bash쉘, 쉘에서 수행한 sudo, 그리고 SSH를 서빙하기 위한 SFTP이죠.

따라서 5610프로세스든 뭐 하나든 kill하는 순간 SSH가 종료되게 됩니다.

root로 바로 로그인을 해서 프로세스를 찾은 뒤 검색해서 kill해주어야 합니다.

 

Home 파티션 삭제 및 재생성

문제의 원인을 모두 제거했기 때문에, 이제 논리볼륨 삭제에 문제가 없을 겁니다.

lvremove /dev/mapper/rl-home
Do you really want to remove active logical volume rl/home? [y/n]: y
  Logical volume "home" successfully removed.

만일, 여기서도 안되면 이 땐, -f를 사용하면 듣습니다.

lvremove -f /dev/mapper/rl-home
Logical volume "home" successfully removed.

잘 지워졌습니다. 이제 용량을 축소해서 다시 한 번 생성해 줍니다.

lvcreate -L 5GB -n home rl
WARNING: xfs signature detected on /dev/rl/home at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/rl/home.
  Logical volume "home" created.

Rocky Linux Home파티션은 xfs였으니까, xfs파일시스템으로 만들어 줍니다.

mkfs.xfs /dev/rl/home
meta-data=/dev/rl/home           isize=512    agcount=4, agsize=327680 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=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.

mount해줍니다. 타겟은 /etc/fstab에 기록되어 있기 때문에 필요없습니다.

mount /dev/mapper/rl-homedf -h | grep home
/dev/mapper/rl-home                               5.0G   68M  4.9G   2% /home

 

Root 파티션 용량 확장

이제 루트 파티션을 확장합니다.

lvextend -r -l +100%FREE /dev/mapper/rl-root
Size of logical volume rl/root changed from 37.63 GiB (9634 extents) to <51.01 GiB (13058 extents).
File system xfs found on rl/root mounted at /var/lib/kubelet/pods/de22b8af-0a88-4b29-92c3-f1cd6829ba46/volume-subpaths/nextcloud-phpconfig/nextcloud-cron/10.
Extending file system xfs to <51.01 GiB (54769221632 bytes) on rl/root...
xfs_growfs /dev/rl/root
meta-data=/dev/mapper/rl-root    isize=512    agcount=4, agsize=2466304 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=9865216, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9865216 to 13371392
xfs_growfs done
  Extended file system xfs on rl/root.
  Logical volume rl/root successfully resized.

최종적으로 용량을 확인합니다.

df -h | grep /dev/mapper

이제서야 원하던 파티션 배분이 완료되었네요.

맨 처음 백업했던 홈 파티션 내용물의 압축을 해제하고, 내용물을 확인합니다.

tar -zxvf /root/home.tar.gz -C /home
ls -lah /home/better0101

조금 돌아왔지만, 정상적으로 파티셔닝을 수행했습니다.

 


 

출처

1. https://velog.io/@zeesoo/LinuxRHEL7-%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%9A%A9%EB%9F%89-%EC%B6%95%EC%86%8C-%EB%B0%8F-%ED%99%95%EC%9E%A5

 

[Linux][RHEL7] 리눅스 시스템에서 디스크 용량 축소 및 확장

/home 디렉토리의 용량을 줄이고 남는 용량을 /root 디렉토리에 적용하여 확장하는 방법이다. 현재 사용중인 시스템의 디스크 정보 확인 명령어 3가지 : 옵션은 human readable format으로, 사람이 읽기

velog.io

2. https://serverfault.com/questions/266697/cant-remove-open-logical-volume

 

Can't remove open logical volume

When I try to remove a logical volume I get the message #lvremove /dev/my-volumes/volume-1 Can't remove open logical volume "volume-1" #lvchange -an -v /dev/my-volumes/volume-1 Using logical vo...

serverfault.com

 

728x90
반응형
'Homeserver' 카테고리의 다른 글
  • Supabase database 백업하기
  • Rocky Linux 9에 Docker 설치하기
  • Rocky Linux 9.4에 TigerVNC Server 설치하기
  • 우분투 23에서 24로 업그레이드 하기
펜타네스트
펜타네스트
하라는 일은 안하고 월급루팡하고 싶은 직장인의 취미 기록장
    반응형
    250x250
  • 펜타네스트
    월급루팡의 꿈
    펜타네스트
  • 전체
    오늘
    어제
    • 분류 전체보기 (65)
      • Apps (17)
      • Homeserver (8)
      • Kubernetes (5)
      • Nextcloud (7)
      • Proxmox (4)
      • TrueNAS (12)
      • Torrent (7)
      • ETC (5)
  • 블로그 메뉴

    • 홈
  • 링크

    • 월급루팡의 꿈
    • 월급루팡의 일상
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
펜타네스트
Rocky Linux 루트파티션 크기 조절하기
상단으로

티스토리툴바