FreeBSD Daily Topics

2010年4月16日ZFSにスワップ領域を作成する方法

tips

ZFS swap

zfs - FreeBSDのスワップは主記憶メモリの2倍のサイズのときに性能を発揮できると言われています。従来のインストール手順であれば、インストール時にスワップ用のパーティションを作成し、スワップ領域として使ってきました。

この方法はいくつかの面で検討すべき部分があります。まず、静的にパーティションを作成することになるため、主記憶メモリを増設したり、または減らした場合に簡単にスワップパーティションのサイズ変更ができないという点です。また、十分なサイズの主記憶メモリがある場合はスワップが使われるケースがないこともあり、使われてないディスク領域を保持し続けるという効率のよくない状況が生まれます。

こうした状況に対する1つの方法として、スワップ領域にZFSを使うという方法があります。ZFSを使うとスワップ領域の作成もリサイズも簡単に実施できます。たとえば主記憶メモリが8GBの場合、次のように16GBのスワップ領域を作成できます。

リスト1 ZFSに16GBのスワップ領域を作成する例
# zfs create -V 16G tank/swap
# zfs set org.freebsd:swap=on tank/swap
# zfs set checksum=off tank/swap

作成したスワップ領域はswapinfo(8)コマンドやzfs(1)コマンドから確認できます。

リスト2 swapinfo(8)でスワップ情報を表示 - 作成したZFSの領域が使われていることがわかる
# swapinfo -h
Device          1K-blocks     Used    Avail Capacity
/dev/zvol/tank/swap  16777216       0B      16G     0%
#
リスト3 zfs(1)でスワップに割り当てたポイントをチェック
# zpool list  
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
tank    213G  62.8G   150G    29%  ONLINE  -
tank2   928G   113G   815G    12%  ONLINE  -
# zfs list | grep swap
tank/swap               16G   147G   821M  -
# 

ZFSのもたらす柔軟性や高い性能、高度な機能はさまざまな面で利点をもたらしてくれます。2TBを越えないHDDを使うのであれば、従来のsysinstall(8)からのインストールで最小限のサイズのスライスを切ってUFS2+SoftupdateでFreeBSDシステムをインストールし、残りの領域はすべてZFSにあてるという方法が手軽です。ZFSの領域をアプリケーションやホームディレクトリ、スワップ領域として使います。

おすすめ記事

記事・ニュース一覧