RHEL 9 SWAP 확장
[Prolog]
RHEL 9 에서 SWAP 메모리를 확장하는 방법에 대해 설명합니다. SWAP 메모리는 메모리가 부족할 때 디스크를 메모리처럼 사용하는 영역입니다. 물리 메모리 증설이 불가한 상황에서 메모리 여유 공간이 부족하다면 프로세스 동작에 문제가 있을 수 있기 때문에 SWAP 메모리 확장을 통해 문제를 해결할 수 있습니다.
본문에서는 아래와 같은 3가지 방법으로 진행합니다.
- 파티션으로 확장
- LV 으로 확장
- Swapfile 로 확장
-
파티션으로 확장
기존 사용하던 디스크에 새로운 파티션을 생성해 사용할 수 있거나, 디스크를 새로 하나 장착하여 사용할 경우에 해당하는 방법입니다. 아래 설명에서는 디스크를 새로 하나 장착하여 진행합니다.
1.1. 디스크 추가 및 파티션 설정
디스크를 새로 하나 장착합니다.(/dev/sdg)
# lsblk
![]()
파티션을 설정합니다.(Hex code : 82 Linux swap)
# fdisk /dev/sdg

# lsblk
![]()
1.2. mkswap(swap 영역으로 셋업)
확장 전 swap 크기를 확인합니다.
# free -m
swap 2G

Swap 으로 사용할 파티션을 swap 영역으로 셋업합니다.
# mkswap /dev/sdg1

셋업한 swap 영역을 활성화시킵니다. 활성화를 시켜야 swap 확장이 완료됩니다.
# swapon /dev/sdg1
![]()
확장 후 swap 크기를 확인합니다.
# free -m
swap 2G -> 7G(2G + 5G)

1.3. /etc/fstab 등록
재부팅 후에도 /dev/sg1 파티션이 swap 영역으로 잡힐 수 있게 /etc/fstab 에 등록합니다.
# vi /etc/fstab

-
LV 으로 확장
SWAP 을 LVM 으로 관리하는 경우에 기존 사용하던 VG 의 여유 용량이 있거나, 디스크를 새로 하나 장착하여 VG 를 확장한 후 기존 swap LV 를 확장하는 경우에 해당하는 방법입니다.
아래 설명에서는 디스크를 새로 하나 장착하고 VG 를 확장한 후 기존 swap LV 를 확장하여 진행합니다.
2.1. VG 확장, LV 확장
VG 를 확장 한 후 swap LV 를 확장합니다. (디스크 추가, 파티션 설정 부분은 설명 생략 – /dev/sdh)
확장하기에 앞서 기존 정보를 확인합니다.
확장할 VG : rhel
# vgs

확장할 LV : swap
# lvs

PV 를 생성합니다.
# pvcreate /dev/sdh1
![]()
VG 를 확장합니다.
# vgextend rhel /dev/sdh1
![]()
VG 확장 후 여유 공간을 확인합니다.
# vgs

Swap LV 를 확장합니다.
2G -> 7G(2G + 5G)
# lvextend -l +100%FREE /dev/rhel/swap
![]()
LV 확장 후 용량을 확인합니다.
# lvs

2.2. mkswap(swap 영역 다시 셋업)
확장 전 swap 크기를 확인합니다.
# free -m
swap 7G => “1. 파티션으로 확장” 이 후

확장한 LV 를 swap 영역으로 다시 셋업하기 전 swap 을 비활성화해야 합니다.
※ 주의할 점은 swap 을 비활성화 할 때, swap 영역을 사용하고 있던 용량만큼 메모리 공간이 있어야 합니다.
# swapoff /dev/rhel/swap
![]()
확장한 LV 를 swap 영역으로 다시 셋업합니다.
# mkswap /dev/rhel/swap

다시 셋업한 swap 영역을 활성화시킵니다. 활성화를 시켜야 swap 확장이 완료됩니다.
# swapon /dev/rhel/swap
![]()
확장 후 swap 크기를 확인합니다.
# free -m
7G -> 12G(7G + 5G)

-
Swap file 로 확장
Swap file 을 생성하여 swap 을 확장하는 경우에 해당하는 방법입니다.
아래 설명은 디스크를 새로 하나 장착하고 임의의 디렉토리에 마운트한 후, swapfile 을 생성하여 swap 을 확장합니다.
3.1. Swap file 생성
마운트한 디렉토리로 이동 후 swapfile 을 생성합니다. (디스크 추가, 마운트 부분 설명 생략 – /dev/sdi)
# cd /newswap
# dd if=/dev/zero of=/swapfile bs=1M count=5120
1MB 데이터 블록을 5120개 복사하여 5G 데이터를 처리

3.2. mkswap(swap 영역으로 셋업)
확장 전 swap 크기를 확인합니다.
# free -m
swap 12G => “2. LV 으로 확장” 이 후

swap 영역으로 셋업합니다.
# mkswap /swapfile

Swapfile 권한을 수정해줍니다.
# chmod 0600 /swapfile
![]()
셋업한 swap 영역을 활성화시킵니다. 활성화를 시켜야 swap 확장이 완료됩니다.
# swapon /swapfile
![]()
확장 후 swap 크기를 확인합니다.
# free -m
12G -> 17G(12G + 5G)

3.3. /etc/fstab 등록
재부팅 후에도 /swapfile 로 swap 영역이 잡힐 수 있게 /etc/fstab 에 등록합니다.
# vi /etc/fstab

-
의견
메모리를 사용하는 것보다 디스크에 접근을 해야하기 때문에 성능적인 부분에서 약간 떨어질 수 있지만 시스템을 안정적으로 운영하기 위해 swap 확장은 충분히 고려할 수 있는 부분이라고 생각됩니다. 여러 Swap 확장 방법을 시스템에 설정된 swap 환경을 고려해서 적용하는 것이 중요할 것 같습니다.
자유롭게 댓글을 달아주세요! 언제나 환영합니다.
기타 문의: info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr
