web-dev-qa-db-ja.com

スワップとしてのZFSパーティション

私はnative-zfsを使用していますが、SWAPにZFSパーティションを使用する方法があるかどうか疑問に思っていました。サーバーをサムドライブから実行しているので、少し高速化するのに良い方法だと思いました。

6
Dan

スワップにZFSを使用することは、SolarisおよびFreeBSDの場合とまったく同じように機能します。

zfs create pool/swap -V 1G -b 4K
mkswap -f /dev/pool/swap
swapon /dev/pool/swap
2
jlliagre

zfsonlinux wiki からコピーした、より詳細なガイドを次に示します。

手順1:スワップデバイスとして使用するボリュームデータセット(zvol)を作成する

zfs create -V 4G -b $(getconf PAGESIZE) -o compression=zle \
      -o logbias=throughput -o sync=always \
      -o primarycache=metadata -o secondarycache=none \
      -o com.Sun:auto-snapshot=false rpool/swap

必要に応じてサイズ(4G部分)を調整できます。

最も安価なアルゴリズムであるため、圧縮アルゴリズムはzleに設定されます。 ashift=12(ディスク上の4 kiBブロック)では、4 kiBページサイズの一般的なケースは、圧縮アルゴリズムがI/Oを削減できないことを意味します。例外はすべてゼロのページで、ZFSによって削除されます。ただし、この動作を実現するには、何らかの形式の圧縮を有効にする必要があります。プールでashift=9を使用している場合、compression=lz4を使用できます。

手順2:スワップデバイスをフォーマットする

mkswap -f /dev/zvol/rpool/swap

/etc/fstabを更新

echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab

警告:構成ファイルでは常に長い/dev/zvolエイリアスを使用してください。短い/dev/zdXデバイス名を使用しないでください。

ステップ4:スワップデバイスを有効にする

swapon -av
1
mzuther