[Linux] FileSystem Recovery Kit の処理概要

■対象製品
FileSystem Recovery Kit (LifeKeeper for Linux)
※本処理概要は LifeKeeper for Linux v9.0.0に付属するリカバリキットをもとに作成しています。

■FileSystemリソースの構成
FileSystem RecoveryKitでファイルシステムリソースの作成を行うと、LifeKeeperには以下の3つのリソースが登録されます。

[filesys]:マウントされたファイルシステムの制御/監視を行うリソース
[device] :パーティションの情報などを確認するリソース
[disk] :ディスク(LU)の制御/監視を行うリソース

これらのリソースは、以下の階層で作成されます。

[filesys]
  +[device]
    +[disk]

これにより、起動処理は[disk]=>[device]=>[filesys]の順に実行され、停止時の処理は[filesys]=>[device]=>[disk]の順に実行されることになります。
各リソースについて、起動と停止の制御と監視機能について解説します。

監視機能
[filesys]リソース

filesysリソースでは以下の項目を監視しています。
(1) /etc/mtabによるマウント状態のチェックを行います。
(2) df -Pkでファイルシステムの使用量を取得して、/etc/default/LifeKeeperファイルの以下パラメータと比較します。
   ==========
   FILESYSFULLWARN
   FILESYSFULLERROR
   ==========
  実使用量が上回っていた場合はlogに警告を出力しますが、これは障害とは判断されません。

[device]リソース
deviceリソースには特に監視するべき要素が無いため、監視は行っていません。

[disk]リソース
diskリソースの監視は、リカバリキットには含まれておりません。diskの監視機能はLifeKeeperのlkscsidによって行われています。
(1) /etc/default/LifeKeeperファイルの以下パラメータで定義された間隔で、ディスクのチェックを行っています。初期値では5秒に一度のチェックが行われています。
   ==========
   FAILFASTTIMER=5
   ==========
(2) lkscsidにより、SCSI RESERVEコマンドが実行されます。RESERVEコマンドが成功すれば、ディスクは正常であると判断します。

起動処理
[filesys]リソース
filesysリソースを起動する場合、以下の処理が実行されます。

(1) ファイルシステムに対して、fsckを実行します。ファイルシステムがext3の場合は以下のコマンドとなります。fsckにエラーが発生した場合は、エラー終了となります。
 ※fsckは必ず実行されます。fsckを実行しないように設定することはできません。
   ==========
   # fsck.ext3 -y <デバイス>
   ==========

(2) mountコマンドでファイルシステムをマウントします。マウント情報としては、現在マウントされている状態(ファイルシステムのタイプやオプションなど)がLifeKeeperに保持されます。
 ※以下はファイルシステムがext3の例です。
   ==========
   # mount -t ext3 -o<マウントオプション> <デバイス> <マウントディレクトリ>
   ==========

[device]リソース
deviceリソースを起動する場合、以下の処理が実行されます。
(1) /proc/partitionsから、該当するパーティションの情報があるかを確認します。失敗時はパーティションテーブルの再読み込みを行い、再度チェックを実行します。
   ==========
   # grep -w -q <デバイス> /proc/partitions
   ==========

(2) 対象デバイスがブロックデバイスであることを確認します。失敗した場合はエラー終了となります。
   ==========
   # test -b <デバイス>
   ==========

[disk]リソース
diskリソースを起動する場合、以下の処理が実行されます。
(1) SCSI RESERVEコマンドを用いて、対象となるLUNをロックします。
(2) パーティションテーブルを読み込みます。これは失敗してもエラー終了にはなりません。

停止処理
[filesys]リソース
filesysリソースを停止する場合、以下の処理が実行されます。
(1) umountコマンドを実行します。成功すればこの時点で処理は終了します。
   ==========
   # umount <マウントディレクトリ>
   ==========
(2) umountに失敗した場合は、以下のコマンドでマウントポイントにアクセスしているプロセスを停止します。
   ==========
   # fuser -k -m <デバイス>
   ==========
(3) 改めてumountを実行します。失敗した場合は、更にfuser->umountを後2回を限度に繰り返します。
(4) 上記の処理に失敗した場合は、更に5秒待ってからumountを実行します。最後のumountに失敗すると、エラー終了となります。

[device]リソース
deviceリソースを停止する場合、以下の処理が実行されます。
(1) 以下のコマンドでバッファのクリアを行います。結果に関わらずエラー終了にはなりません。
   ==========
   # $LKROOT/lkadm/bin/ioctl.pl -f <デバイス>
   ==========

[disk]リソース
diskリソースを停止する場合、以下の処理が実行されます。
(1) SCSI RELEASEコマンドを発行し、対象LUNのロックを解除します。

回復処理
[filesys]リソース
再マウント操作を実行します。

[device]リソース
回復処理はありません。

[disk]リソース
回復処理はありません。

関連資料
[Linux] PowerPath Recovery Kit の処理概要
http://lk.sios.com/?p=4387

[Linux] HDLM Recovery Kit の処理概要
http://lk.sios.com/?p=4631

[Linux] DMMP Recovery Kit の処理概要
http://lk.sios.com/?p=5295

[Linux] LVM Recovery Kit の処理概要
http://lk.sios.com/?p=4660

[Linux] NAS Recovery Kit の処理概要
http://lk.sios.com/?p=5665

[Linux] DataKeeper for Linux の処理概要
http://lk.sios.com/?p=5302

パラメータ
FILESYSFULLWARN
 単位:比率(%)
 デフォルト:90
 説明:
  ファイルシステムの空き容量の不足を警告するための指標として、どの程度の使用率超過で警告メッセージを出すかを本パラメータで指定します。
  ファイルシステムの使用率が本パラメータ以上であり、FILESYSFULLERROR未満である場合、LKCHECKINTERVALの間隔で使用率の超過をログに記録します。
  0を指定した場合、本確認は無効となります。
 注記:v9.0.0およびv9.0.1の場合、101を指定することで無効となります。

FILESYSFULLERROR
 単位:比率(%)
 デフォルト:95
 説明:
  ファイルシステムの空き容量の不足を警告するための指標として、どの程度の使用率超過でエラーメッセージを出すかを本パラメータで指定します。
  ファイルシステムの使用率が本パラメータ以上である場合、使用率超過を検知時にログに記録し、当該リソースのステータスをISPからISUに変更します。
  このステータス変更による各処理への影響や処理内容の変更はありません。
  0を指定した場合、本確認は無効となります。
 注記:v9.0.0およびv9.0.1の場合、101を指定することで無効となります。


改訂履歴
[公開日 : 2011/03/11]
[更新日 : 2013/06/13]
[更新日 : 2016/12/05] 各処理で実施されるコマンドラインおよび各種情報を追加しました
[更新日 : 2018/3/2] 使用率超過時の説明を調整しました

return top