2013. 12. 16. 15:47

[Linux/Ubuntu 파일 시스템 관리] swap 파티션 관리하기

swap 파티션은 시스템의 부족한 RAM으로 부터 Linux 시스템이 필요로하는 공간이다. 만일 설치된 linux에 swap 파티션이 생성되지 않았다면, mkswap 명령을 실행할 수 있다. 일반적인 디스크의 파티션 혹은 단일 file을 swap 파티션으로 만들수 있다.

~$ sudo mkswap /dev/sda1

Setting up swapspace version 1, size = 41933188 KiB

no label, UUID=438615c0-1f94-4c6e-b1d2-621fddcb9947

~$

위와 같이 mkswap 을 이용하여 swap 공간으로 사용할 수 있다.

~$ sudo mkswap -c /dev/sda1

Setting up swapspace version 1, size = 41933188 KiB

no label, UUID=32779636-1911-4783-a533-36e7f448715f

~$

-c 옵션을 사용하여 bad block을 검사할 수 있다.

~$ sudo dd if=/dev/zero of=/tmp/swap.bin count=65536

65536+0 records in

65536+0 records out

33554432 bytes (34 MB) copied, 0.181225 s, 185 MB/s

~$ sudo chmod 600 /tmp/swap.bin

~$ sudo mkswap /tmp/swap.bin

mkswap: /tmp/swap.bin: warning: don't erase bootbits sectors

        on whole disk. Use -f to force.

Setting up swapspace version 1, size = 32764 KiB

no label, UUID=ef99ff5c-4c61-4162-b62f-c8c2de714532

~$

dd를 이용하여 32MB 크기의 파일을 만든뒤, chmod를 호출하여 permission을 제거한다.  그리고 mkswap을 호출하여 해당 파일을 swap 파티션으로 생성한다.

만일 swap 파티션 혹은 file을 생성하였다면, swapon 명령을 호출하여 시스템에게 "사용하겠다"를 알려줘야 한다. 이는 부팅시 발생하는 작업과 유사하다.

~$ sudo swapon /dev/sda1

~$ sudo swapon -v /dev/sda1

swapon on /dev/sda1

swapon: /dev/sda1: found swap signature: version 1, page-size 4, same byte order

swapon: /dev/sda1: pagesize=4096, swapsize=42939588608, devsize=42939588608

swapon: /dev/sda1: swapon failed: Device or resource busy

~$ sudo swapon -v /tmp/swap.bin

swapon on /tmp/swap.bin

swapon: /tmp/swap.bin: found swap signature: version 1, page-size 4, same byte order

swapon: /tmp/swap.bin: pagesize=4096, swapsize=33554432, devsize=33554432

~$ swapon -s

Filename Type Size Used Priority

/dev/sdb6                               partition 522236 3292 -1

/dev/sda1                               partition 33554428 0 -2

/tmp/swap.bin                           file 32764 0 -3

~$

즉, swapon으로 등록하고, -v 옵션을 이용하여 보다 자세한 정보를 구하도록 한다. -s 옵션을 이용하면 시스템의 swap 파티션과 file을 출력한다. 만일 이와 반대로, 등록 하제하려면 swapoff를 호출한다.

~$ sudo swapoff -v /tmp/swap.bin

swapoff on /tmp/swap.bin

~$ swapon -s
Filename Type Size Used Priority
/dev/sdb6                               partition 522236 3292 -1
/dev/sda1                               partition 33554428 0 -2
~$

swap 공간은 우선순위 정책에 따라 동작한다. 높은 우선순위(high priorities)를 가지면 먼저 사용된다. 다음과 같이 -p 옵션을 이용하여 swap 공간의 우선순위를 조절할 수 있다.

~$ sudo swapon -v -p 1 /dev/sda1

swapon on /dev/sda1

swapon: /dev/sda1: found swap signature: version 1, page-size 4, same byte order

swapon: /dev/sda1: pagesize=4096, swapsize=42939588608, devsize=42939588608

swapon: /dev/sda1: swapon failed: Device or resource busy

~$