swapon時に「swapon: /dev/xxxxx/xxxxxxxxxx: swapon failed: Device or resource busy」発生

CentOS
スポンサーリンク

概要

Swap使用率増えてメモリ解放をする必要があったが「swapoff -a」後に「swapon -a 」をしたとき「swapon: /dev/xxxxx/xxxxxxxxxx: swapon failed: Device or resource busy」のエラーがでてしまったので確認した内容をまとめる。

swaponが成功している場合

swapon -a 実行後 /var/log/messagesに下記のようなログが出力されている。

swap on /dev/xxxxx/xxxxxxxxxx.  Priority:xx extents:1 across:xxxxxxxxxx FS

swapon -sでマッピングされている。

# swapon -s
Filename                                Type            Size       Used    Priority
/dev/dm-xx                              partition       xxxxxxxxxx 0       xx

swaponとは?

swapon は、ページング (paging) やスワッピング (swapping) を行うデバイスを 指定するために用いられます。

オプション 内容
-a /etc/fstab 中で swap マークが付いているスワップデバイスをすべて有効にする。 ただし noauto オプションが付いているものは除く。 スワップとして既に動作しているデバイスは、黙ってスキップされる。
-e swapon に -a オプションが指定されている場合、 -e オプションが指定されると、存在しないデバイスを黙ってスキップする。
-L label 指定された label のパーティションを使う。 (これを使用するためには /proc/partitions にアクセスする必要がある。)
-p priority swapon の優先度 (priority) を指定する。 このオプションは swapon が 1.3.2 以降のカーネル下でコンパイルされ、かつ使用される場合にのみ有効である。 priority は 0 から 32767 の間の数値である。 数値が大きいほど優先度が高い。 スワップ優先度の詳細な説明に関しては swapon (2) 見ること。 /etc/fstab のオプションフィールドに pri= value を記述すれば、 “swapon -a” の際にその値が用いられる。
-s スワップの使用状況をデバイス毎に表示する。 “cat /proc/swaps” と等しい。 Linux 2.1.25 より前では利用できない。
-U uuid 指定された uuid のパーティションを使う。 (これを使用するためには /proc/partitions にアクセスする必要がある。)>

swapoffとは?

スワップ領域を無効にするために利用します。
swapoff コマンドを実行してスワップ領域を解放できるが、このコマンドを実行した時点で物理メモリにページアウトされたページを元に戻すだけの余裕があればすぐに物理メモリにページが戻る。しかし、物理メモリに余裕がない場合、ページアウトされたページが戻る場所がないので、そのページに関連したプロセスがダウンするといった問題が発生することもあるので運用しているときは注意が必要。

オプション 内容
-a /etc/fstabでスワップとして指定されているデバイス(ただしnoautoオプション付きのものは除く)および/proc/swapsで認識されている領域をすべて無効にする

※基本-aぐらいしか使わない

今回の原因確認

swapon -a は/etc/fstabに記載している、swapの箇所をmountするため「/etc/fstab」の設定を確認したところ同じswap領域(LV)が2つ記載されていたので先に1つのswap領域をmountして次のmountが同じであったためすでに利用しているといった「swapon: /dev/xxxxx/xxxxxxxxxx: swapon failed: Device or resource busy」のメッセージが発生した。

swapon -s を実施するとswapが利用されているのが確認できたため、エラーとしては対処の必要なし!

そもそもswapって?

コチラ の記事にまとめてみました。(概要レベル)

参考リンク

swapon – システム管理コマンドの説明 – Linux コマンド集 一覧表

ありがとうございます

CentOSInfra
スポンサーリンク
インフラエンジニア|パイナップル星人 ブログ

コメント

タイトルとURLをコピーしました