アクティブなバックアップを中断せずに古いResticロックを解除する方法

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

一覧にあるすべてのホストとプロセスが非アクティブであることを確認した後にのみ、古いResticロックを解除してください。この修復は通常の古いロックの解除であり、すべてのロックを強制的に削除するものではありません。

複数のホームサーバーが1つのリポジトリを共有している場合、古く見えるロックは、動作の遅いリモートジョブ、再起動されたコンテナ、またはオペレーターのマシンと時刻が異なるプロセスに属している可能性があります。まず新しいスケジュールを停止し、ロックのメタデータを保存して、指定されたホストとすべてのメンテナンスコントローラーを確認してから、標準のクリーンアップ手順を使用してください。所有者を確認できない場合は、作業を中止してロックを保持します。

新しいジョブを停止し、すべてのロック所有者を特定する

リポジトリ上でResticを起動できるタイマー、cronエントリ、コンテナスケジュール、オーケストレーションジョブを無効にします。現在のロック一覧と直近のサービスログを保存します。各ロックについて、ホスト、プロセスID、ユーザー、タイムスタンプ、排他的ロックかどうかを記録し、指定されたプロセスをその正確なホスト上で確認します。

排他的なリポジトリチェックは他の作業をブロックする可能性があり、中断されたチェックのロックは、操作と所有者が一致するまで、放棄されたバックアップロックのように見えることがあります。

プロセスが動作中である場合、またはログが進行している場合は、サービスマネージャーを通じて待機するか、正常に停止します。ホストに接続できない場合、そのロックが古いものであるとは証明できません。関連するすべてのプロセスが存在せず、スケジューラーが再起動できず、リポジトリに書き込みが行われていないことを確認してから先に進みます。

ロックの経過時間だけでなく、古いロックであることを確認する

短い観察期間を置いてから、もう一度ロックを一覧表示します。古いロックの候補とは、稼働中の所有者、進行中のログ、更新、リポジトリへの書き込みアクティビティがないものです。時刻を比較し、リポジトリがリモートにある場合は、信頼できる別のクライアントから同じバックエンドを確認します。

完全なResticリポジトリのワークフローでは、ロック解除はバックアップ、チェック、保持、復元に並ぶ管理操作の1つとして扱われます。リポジトリを現在も所有している相手を特定する代わりにはなりません。

ロックが更新された場合、ログが進んだ場合、またはクライアント間でバックエンドの見え方が一致しない場合は、作業を中止します。ロックに変化がなく、所有者が確実に停止している場合にのみ先へ進みます。経過時間は判断材料にはなりますが、それだけで古いロックだとは判断できません。動作の遅い処理は、オペレーターの予想より長時間経過していることがあります。

まず標準の古いロックのクリーンアップを使用する

Resticの通常のロック解除動作を使用し、アクティブと判断されたロックを保持したまま、古いロックを削除します。全削除オプションを追加したり、ロックをかけずに次のコマンドを実行したりしないでください。コマンドの出力を保存し、直後に新しいロック一覧を取得します。

標準のロック解除コマンドは古いロック専用に設計されています。一方、強制削除はよりリスクの高い別の操作であり、通常の修復手順に含めるべきではありません。

古いエントリが消え、アクティブなロックが削除されていない場合は、検証に進みます。アクティブなロックが残っている場合は、それを尊重して所有者の確認に戻ります。ロックが直ちに再表示された場合は、タイマー、コンテナ、またはリモートホストが作業を開始したということです。その発生源を無効にし、新しい所有者を把握するまでロック解除を繰り返さないでください。

元のバックアップと次回のスケジュール実行を検証する

ブロックされていたバックアップを正確に実行し、開始時刻、進行状況、終了ステータス、ロックのライフサイクルを記録します。Resticの動作中にロックが表示され、正常終了後に消えることを確認します。新しいスナップショットを一覧表示し、自動化を再有効化する前に、小さなサンプルを別の場所へ復元します。

リポジトリが読み取り専用のように動作する場合や、メンテナンスが完了しない場合は、プルーン中断状態を古いロックのクリーンアップとは別に扱ってください。

通常のスケジュールを1サイクルだけ再有効化します。両方の実行が完了し、ロックが正常に解除され、復元したサンプルが一致すれば、修復は成功です。正常なプロセス終了後に古いロックが再発する場合、バックエンドの表示が一致しない場合、またはリポジトリのチェック結果と復元結果が食い違う場合は、エスカレーションしてください。再発対策として強制ロック解除を自動化しないでください。

サポートとヒント

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.