Plexを1つのコンテナから耐障害性の高いサービススタックに移行する方法

Eva Wong は テクニカルライター であり、 生粋の技術好き としてZimaSpaceで活動しています。ホームラボやオープンソースソフトウェア をこよなく愛する生粋のギークで、複雑な技術概念をわかりやすく、実践的なガイド にまとめることを得意としています。Evaは、セルフホスティングは難しいものではなく、楽しむものだと考えています。チュートリアルを通じて、初めてのNAS構築からDockerコンテナの使いこなしまで、コミュニティがハードウェアのセットアップをわかりやすく理解できるよう 支援しています。、初めてのNAS構築からDockerコンテナの習得まで。

まず状態を保護し、その後、すべてを一度に切り替えるのではなく、役割と依存関係を1つずつ分離して、Plexをサービススタックへ移行します。

移行では、稼働中のサーバーを維持しながら、役割分担を明確にします。分割する前に、Plexのデータ、メディアパス、プロキシ、GPUアクセス、自動化、バックアップを把握しましょう。切り出す各サービスには、専用の状態保存パス、ヘルスチェック、ロールバック手順が必要です。また、共有メディアのマウント方法を統一し、サービスを1つ移すだけで不要なコピーが発生しないようにします。

単一コンテナ構成の取り決めを把握する

サービスを分割する前に、現在のコンテナが暗黙のうちに担っているものをすべて記録します。ポート、マウント、UID/GID、GPUデバイス、環境変数、起動順序は、正常に動作している構成の取り決めの一部です。

複数サービスで構成するメディアスタックでは、メディアパス、ストレージ、ワークフローのタイミングを共有する他のサービスと並べてPlexを配置できます。

現在のコンテナ構成をエクスポートし、各依存関係をPlex、プロキシ、自動化、監視、共有ストレージのいずれかに割り当てます。明確な担当先がない入力は、依存関係が把握できるまでPlexに含めておきます。

永続化パスと識別情報を標準化する

堅牢なスタックでは、サービスを入れ替えても状態が維持され、権限がずれないことが重要です。ホストパスと数値の識別情報を統一すれば、コンテナの再作成や移動時に予期せぬ問題が起こりにくくなります。

コンテナのUIDとGIDのマッピングによって、バインドマウント時のサービスの識別情報が、ホストファイルシステム上の数値による所有権と結び付けられます。

Plexの状態と共有メディア用に安定したホスト側のルートパスを選び、移行前に各書き込みサービスのUID/GIDの要件を確認してください。複数のサービスで同じ状態パスに異なる所有権が必要な場合は、作業を続ける前にパスの境界を再設計してください。

周辺の役割を1つずつ切り出す

プロキシ、監視、リクエスト管理、メディアの自動化は、通常、同じ日にPlexのデータベースを移動せずに移行できます。これにより、障害の影響範囲を小さく抑え、ロールバックも容易になります。

Docker Composeのサービス定義を使うと、ボリューム、永続パス、サービス境界が明確になります。

役割を1つ移行したら、ヘルスチェックと統合テストを実行し、通常の利用サイクルを通じて安定するまで次の役割を切り出さないでください。移行した役割がPlexの状態に隠れた変更を加える必要がある場合は、先にそのインターフェースを文書化して安定させてください。場当たり的なコンテナ内の状態ではなく、すべてのサービスで永続的なアプリデータのレイアウトを使うと、ホストのパスや識別情報を維持しやすくなります。

起動の成功だけでなく、障害の分離も検証する

重要度の低いサービスが1つ停止または更新しても、Plexが停止したり共有状態が破損したりしないなら、移行は成功です。スタックを複雑にする以上、それに見合う耐障害性を実現する必要があります。

複数コンテナのComposeデプロイで重要なのは、コンテナの数だけではなく、サービス間の依存関係を明示することです。

コンパニオンサービスを1つ意図的に停止し、Plexの再生、状態の書き込み、復旧が想定どおりに動作することを確認します。サービスが1つ失敗するたびにスタック全体の再起動が必要なら、移行の耐障害性を評価する前に、サービス間の結合を減らしてください。

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.