Home Assistantのアプリデータ、キャッシュ、バックアップを分離する方法

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

Home Assistantのアプリデータ、キャッシュ、バックアップを分離するには、まず障害後も残す必要があるもの、自動的に再構築できるもの、Home Assistantホストの外部に保管すべきものを判断します。永続的な設定とデータベースの状態には安定したストレージとバックアップが必要です。使い捨てのキャッシュや一時ファイルには同じ保持ルールを適用せず、バックアップは復旧対象のディスクに依存させないでください。

最も安全なレイアウトは、フォルダー名ではなく役割を基準にします。急速に増えるからといって、ディレクトリを単に「キャッシュストレージ」へ移動しないでください。データを使い捨てとして扱う前に、Home Assistantまたは関連サービスが、そのデータを履歴、識別情報、ペアリング、認証情報、復旧のために必要としていないか確認します。

データを正本、再構築可能、復旧用コピーに分類する

正本となるアプリデータには、Home Assistantの設定、シークレット、連携状態、自動化の定義、保持したいデータベースやその他の状態が含まれます。再構築可能なデータには、サービスが家庭の設定を失わずに再作成できる、ダウンロード済みイメージ、一時ファイル、パッケージキャッシュ、トランスコードデータ、インデックスなどが含まれます。復旧用コピーは、障害後に正本の状態を再構築するためのバックアップやエクスポートです。

この分類はサービスごとに行う必要があります。Home Assistant、MQTT、データベース、リバースプロキシ、Zigbee2MQTTでは、それぞれ永続化すべき状態が異なる場合があります。管理インターフェースがスタック定義を記憶していても、ワークロードデータ自体が含まれているとは限りません。コンテナ管理のバックアップからワークロードの状態が除外される理由は、「Dockerをバックアップした」という言葉が、期待する内容よりはるかに少ない可能性があることを示しています。

Home Assistantの設定とアクティブなデータベースを安定したストレージに置く

コンテナ環境では、Home Assistantの設定パスをコンテナイメージとは独立して永続化する必要があります。Recorderデータベースがその設定ツリー内にある場合、それはキャッシュではなく、アクティブなアプリケーション状態です。この状態は、通常のデータベース処理と復旧作業に十分な空き容量を備えた、信頼性の高いSSDなどの低遅延ストレージに置いてください。

特に多くのエンティティが頻繁に変化する環境では、Recorderによって小さな書き込みが継続的に発生することがあります。Home Assistantコミュニティの長期的なRecorderの保持期間がデータベースの増加に与える影響に関する議論は、設定ツリー全体を一時ストレージへ移してデータベースの書き込みを隠すのではなく、不要な履歴を減らすことに焦点を当てているため役立ちます。

本当に使い捨てにできるキャッシュと一時作業だけを移動する

キャッシュや一時ストレージは、別の高速なスクラッチデバイス、容量を制限したメモリバックドファイルシステム、またはクリーンアップルールを設定した専用ディレクトリに置けます。ただし、失っても問題がない場合に限ります。テスト用コピーを消去した後に関連サービスを再起動し、必要なデータが再構築されることを確認してください。ペアリング、履歴、ユーザー、認証情報、設定が失われるなら、そのデータは使い捨てではありません。

書き込みの集中を分離すれば、書き込み量を減らし、バックアップを小さくできる場合があります。しかし、マウントポイントの下に必要なファイルを隠したり、見えないRAM依存を作ったりしてはいけません。ZimaSpaceのHome Assistantのキャッシュと一時ストレージを分離する方法では、マウントを変更する前に再構築可能なデータを特定するための手順を確認できます。

バックアップを別の障害ドメインに置く

ライブ設定の隣に保存したバックアップは、誤った編集からは保護できますが、SSDの故障、ホストの盗難、ファイルシステムの破損、ストレージコントローラーの故障からは保護できません。想定する障害に応じて、Home AssistantのバックアップをNAS、別のサーバー、リムーバブルストレージ、またはオフサイトの保存先へコピーしてください。Home Assistant自体が停止している場合でもアクセスできる場所に、復旧キーや認証情報を保管します。

バックアップは内部的にも一貫していなければなりません。ボリュームアーカイブは便利ですが、状態を持つサービスでは、調整済みのダンプ、スナップショット、またはサービスを停止した状態でのコピーが必要になる場合があります。永続ボリュームのバックアップと復元のパターンでは移植性の問題を説明しており、バックアップが使用可能であることを証明する復元テストでは、そこから有用な状態を復元できて初めてバックアップジョブが検証済みになると強調しています。

削除、再起動、復元の訓練でレイアウトをテストする

パスを分離したら、それぞれの役割に応じたテストを行います。使い捨てキャッシュを消去し、再構築されることを確認します。Home Assistantコンテナを再作成し、永続的な設定が残っていることを確認します。ホストを再起動し、依存するサービスの起動前にマウントが有効になることを確認します。最近のバックアップを一時的な保存先へ復元し、ユーザー、自動化、連携、代表的な履歴や関連サービスの状態を確認します。

その後、所有権と権限を文書化します。ディスク上で完全に分離されていても、移行先のコンテナUID/GIDが読み取れなければ失敗します。マウントポイント、ファイルシステムの所有権、バックアップ対象、保持期間、各ディレクトリの削除を許可されたサービスを記録してください。

データの役割 一般的な保存先 復旧ルール
Home Assistantの設定/データベース 安定したSSD/アプリデータプール 永続化し、バックアップする
使い捨てキャッシュ/一時データ スクラッチSSDまたは容量制限付き一時ストレージ 安全に再構築できること
バックアップ 別ホスト/別メディア/オフサイトの保存先 復元テストを行う
大容量アーカイブ 容量重視のストレージ 価値に応じて保護する

キャッシュを削除してもHome Assistantを破壊せず、コンテナを再作成してもアプリの状態を消去せず、プライマリアプリデータデバイスを失っても唯一の復旧用コピーを失わないなら、分離は成功です。ストレージの役割によって、障害が発生する前から障害時の動作を明確にしておく必要があります。

NAS&サーバー設定

もっと読む

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.