現象
スワップファイルを作成するときに、 以下のようなエラーが起きます。
swapon: /swapfile: swapon failed: Invalid argument
以下の条件で発生しました。
- CentOS 7.4
- XFS
確認方法
/var/log/message に以下のように書かれています。
localhost kernel: swapon: swapfile has holes
原因
CentOSのXFSでは、ファイルを作成するときに、fallocateを使うと、 スパースファイルになってしまうからのようです。
修正手順
fallocateの代わりに、ddコマンドでスワップファイルを作成します。
dd if=/dev/zero of=swapfile count=1024 bs=1MiB