■対象製品
FileSystem Recovery Kit (LifeKeeper for Linux)
※本処理概要は LifeKeeper for Linux v9.5.0に付属するリカバリキットをもとに作成しています。
■FileSystemリソースの構成
FileSystem RecoveryKitでファイルシステムリソースの作成を行うと、LifeKeeperには以下の3つのリソースが登録されます。
[filesys]:マウントされたファイルシステムの制御/監視を行うリソース
[device] :パーティションの情報などを確認するリソース
[disk] :ディスク(LU)の制御/監視を行うリソース
これらのリソースは、以下の階層で作成されます。
[filesys] +[device] +[disk]
これにより、起動処理は[disk]=>[device]=>[filesys]の順に実行され、停止時の処理は[filesys]=>[device]=>[disk]の順に実行されることになります。
各リソースについて、起動と停止の制御と監視機能について解説します。
監視機能
[filesys]リソース
filesysリソースでは以下の項目を監視しています。
(1) /etc/mtabによるマウント状態のチェックを行います。
ファイルシステムが XFS の場合は xfs_info の状態を確認します。
(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に失敗すると、エラー終了となります。
v9.3.2 以降では NFS マウントへの対応のためタイムアウトが以下のように計算されます。
<タイムアウト計算式>
(FS_KERNEL_RETRIES * 3) + ((3 + FS_UMOUNT_RETRIES) * 3)
FS_KERNEL_RETRIES=60(標準値:秒)
FS_UMOUNT_RETRIES=1(標準値:回)
上記の式により定められた値が 30 以上の場合は、式で求められた数値がタイムアウトになります。30未満の場合は 120(秒)がタイムアウトとなります。
[device]リソース
deviceリソースを停止する場合、以下の処理が実行されます。
(1) 以下のコマンドでバッファのクリアを行います。結果に関わらずエラー終了にはなりません。
# $LKROOT/lkadm/bin/ioctl.pl -f <デバイス>
[disk]リソース
diskリソースを停止する場合、以下の処理が実行されます。
(1) SCSI RELEASEコマンドを発行し、対象LUNのロックを解除します。
回復処理
[filesys]リソース
再マウント操作を実行します。
[device]リソース
回復処理はありません。
[disk]リソース
回復処理はありません。
関連資料
[Linux] PowerPath Recovery Kit の処理概要
https://lkdkuserportal.zendesk.com/hc/ja/articles/360037352532
[Linux] HDLM Recovery Kit の処理概要
https://lkdkuserportal.zendesk.com/hc/ja/articles/360037724451
[Linux] DMMP Recovery Kit の処理概要
https://lkdkuserportal.zendesk.com/hc/ja/articles/360037352432
[Linux] LVM Recovery Kit の処理概要
https://lkdkuserportal.zendesk.com/hc/ja/articles/360037724431
[Linux] NAS Recovery Kit の処理概要
https://lkdkuserportal.zendesk.com/hc/ja/articles/360037352372
[Linux] DataKeeper for Linux の処理概要
https://lkdkuserportal.zendesk.com/hc/ja/articles/360037352252
パラメータ
FILESYSFULLWARN
単位:比率(%)
デフォルト:90
説明:
ファイルシステムの空き容量の不足を警告するための指標として、どの程度の使用率超過で警告メッセージを出すかを本パラメータで指定します。ファイルシステムの使用率が本パラメータ以上であり、FILESYSFULLERROR未満である場合、LKCHECKINTERVALの間隔で使用率の超過をログに記録します。
ファイルシステムの使用率が本パラメータ以上である場合、使用率超過を検知時にログに記録し、当該リソースのステータスをISPからISUに変更しますが、監視処理は継続され各処理への影響や処理内容の変更はありません。(ローカルリカバリ、フェイルオーバも通常通りの動作です)
0を指定した場合、本確認は無効となります。
注記:v9.0.0およびv9.0.1の場合、101を指定することで無効となります。
FILESYSFULLERROR
単位:比率(%)
デフォルト:95
説明:
ファイルシステムの空き容量の不足を警告するための指標として、どの程度の使用率超過でエラーメッセージを出すかを本パラメータで指定します。
この閾値を超えても監視処理は継続され各処理への影響や処理内容の変更はありません。
0 を指定した場合、本確認は無効となります。
注記:v9.0.0およびv9.0.1の場合、101を指定することで無効となります。
FS_KERNEL_RETRIES
単位:秒
デフォルト:60
FS_UMOUNT_RETRIES
単位:回
デフォルト:1
改訂履歴
[公開日:2011/03/11]
[更新日:2013/06/13]
[更新日:2016/12/05] 各処理で実施されるコマンドラインおよび各種情報を追加しました
[更新日:2018/03/02] 使用率超過時の説明を調整しました
[更新日:2020/05/20] filesys にv9.5.0 の仕様追加を記載。(監視の(1))
[更新日:2022/06/02] FILESYSFULLWARNの閾値を超えたときの説明を修正しました。