専用Plexサーバーと共有アプリホスト:どちらがより早く復旧する?

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

データベース、メタデータ、設定、ID、マウント、権限を、家庭が許容するダウンタイムとデータ損失の範囲内で、文書化された1つの単位として復元できるなら、Plexは共有アプリホスト上で運用してください。時間を計った訓練で、共有ホストの再構築、無関係なサービスの復元、共有依存関係の再作成によってPlexの復旧が遅すぎる、または不確実すぎると分かった場合は、専用Plexサーバーを選びます。2台目のマシンに価値があるのは、「専用」という言葉によってではなく、独立した復旧経路を短縮できるからです。

これはトランスコード性能のベンチマークではなく、復旧の比較です。メディアファイル、クライアント、ネットワーク、計算能力を同じ条件に保ちます。両方の構成で、Plexの更新失敗、ライブラリデータベースの破損、起動デバイスの喪失、物理ホストの喪失という同じ4つの事象をテストしてください。そのうえで、経過時間、最後に利用可能だったバックアップ以降に失われた状態、文書化されていない判断、停止した無関係なサービスを数えます。

ハードウェアを選ぶ前にPlexの復旧単位を定義する

映画や音楽のファイルだけが対象レイヤーではありません。Plexのアプリケーション状態はメディアファイルとは別に存在します。データベース、視聴履歴、ユーザー、ポスターやアートワーク、設定、サーバー設定こそが、家庭で慣れ親しんだ利用体験を維持します。Plexプログラムの再インストールは簡単ですが、何年分もの状態を再構築するのは簡単ではありません。

ホストを比較する前に、復旧単位を明文化してください。そこには、Plexのデータディレクトリまたはマッピングされた設定ボリューム、サービスまたはコンテナの定義、環境変数とシークレット、インスタンスの再要求に必要なサーバーID、メディアマウントの定義、使用している場合はハードウェアデバイスのマッピング、そしてPlexに読み書きを許可するユーザーまたはグループの所有権を含める必要があります。メディアライブラリは独自のストレージとバックアップ計画で保護し、Plexの復元が数テラバイト規模のメディア復元まで兼ねるかのように扱わないでください。

データベースの整合性は、完全性の一部です。バックアップアーカイブ内にファイルが存在していても、それが利用可能な時点を表しているとは限りません。整合性のあるデータベーススナップショットには、データベースを認識した処理、またはアプリケーションの停止が必要です。稼働中のファイルを無条件にコピーすると、書き込みの途中という扱いにくい瞬間を捉える可能性があります。どのツールを使う場合でも、リリーステストで確認すべきなのは、データベースが開き、想定したライブラリとユーザーが表示され、復元後に新しい変更を受け付けることです。

復旧レイヤー 復旧時に戻すべきもの 復旧を証明しないもの
Plexの状態 データベース、視聴状態、メタデータ、設定、ID 空のPlexを新規インストールした状態
サービス定義 パッケージバージョンまたはイメージ、ポート、デバイス、変数、シークレット 保存された構成のないイメージタグ
ストレージアクセス 安定したメディアパス、トランスコードパス、書き込み可能な状態パス、権限 Plexが読み取りも更新もできないマウント済み共有
メディアファイル 独立したストレージの可用性と保護 メディアを含まないPlex状態のバックアップ

RTOとRPOはハードウェアではなく家庭単位で設定する

復旧時間目標(RTO)を許容できる最長停止時間、復旧時点目標(RPO)を許容できる復旧状態の最も古い時点として定義します。家庭によっては、Plexが明日まで利用できなくても許容できる一方、数週間分の視聴履歴や手動マッチングを失うことは受け入れられないでしょう。別の家庭では、最近の状態を作り直すことは受け入れられても、夕方までに再生を復旧する必要があるかもしれません。数値は各自で決めます。重要なのは、構成、認証情報、ACL、ソフトウェア、ハードウェア、検証済みの復元を含む依存関係全体を、RTOとRPOに照らして測定することです。

これらの目標を、4種類の異なる障害に適用します。アプリケーションの更新に失敗した場合、既知の正常なイメージまたはパッケージと、以前の状態のスナップショットだけで済むことがあります。データベースが破損した場合は、整合性のある以前のデータベースと、それを検証する方法が必要です。起動デバイスを失った場合は、Plexを復元する前に実行環境を再構築しなければなりません。物理ホストを失った場合は、交換用ハードウェア、ストレージ接続、ネットワークID、デバイスマッピングも計測時間に加わります。

障害が宣言された時点から計測を開始し、バックアップコピーの転送開始時点からではありません。クライアントで想定したサーバーを開き、正しいユーザーとライブラリが表示され、ダイレクトプレイの項目を1つ再生し、トランスコードを使用する場合は強制トランスコードを1つ開始し、視聴状態を更新し、サービスの再起動を1回行っても正常に動作することを確認するまでを完了とします。コンテナの起動は途中のイベントであり、結果ではありません。

共有アプリホストでも、Plexを独立して復元可能にできる

物理的な統合に、分割不可能な単一のバックアップは必要ありません。コンテナ化されたホストでは、Plexの状態を明示的なボリュームまたはバインドマウントしたディレクトリに保持し、デプロイ定義は実行中のコンテナの外部に保持します。使い捨てのコンテナレイヤーとは独立して、マッピングされたボリュームのバックアップと復元を行います。その状態に、固定または記録されたイメージバージョン、Composeまたはrunの定義、シークレット、マウントマップを組み合わせ、障害が発生したホストから制御できない場所に復旧用コピーを保管します。

残る依存関係は、共有プラットフォームです。ブートデバイスを失うと、Plexを起動する前に、ホストOS、ストレージクライアント、コンテナランタイム、ネットワーク設定、デバイスアクセスが必要になる場合があります。カーネル、GPUドライバー、ランタイムの更新によって、Plex自身のイメージが変わっていなくても影響を受けることがあります。これらの層があるからといって、共有方式が自動的に悪いわけではありません。単に、それらを測定した復旧時間に含める必要があるということです。

共有ホスト方式が適しているのは、クリーンな復旧先を用意し、Plexだけを復元し、メディアパスを接続し、Home Assistant、写真のインデックス作成、ダウンロード自動化、その他のサービスを先に復元しなくてもクライアントを検証できる場合です。この方法なら、UPS、監視経路、予備デバイスがそれぞれ1つで済み、アイドル状態のハードウェアも少なくなります。Plexの復元用ユニットが本当に独立しているなら、物理マシンを追加しても、復旧時間を左右する工程は何も省けない可能性があります。

専用Plexサーバーは依存関係を減らす一方で、システムを1つ追加する

専用のPlexサーバーを用意すると、再起動、更新、障害のドメインを分離できます。一般的なアプリホストを再構築してからでなければPlexを復旧できない、という状況がなくなり、別のサービスを試す作業によってPlexの実行環境が失われることもありません。アプリホストを頻繁に変更する場合、複数人が夜間の再生に依存している場合、またはホームラボ全体を理解していない別の人が復旧手順に従う必要がある場合、これは実質的な利点です。

2台目のマシンも、故障する可能性のあるシステムです。OSの構成定義、Plexの状態バックアップ、ストレージのマウント、認証情報、更新、監視、交換計画が必要になります。アイドル時の消費電力は、プロセッサーに表示された熱設計電力の数値ではありません。ドライブを接続し、通常のスリープ設定にした状態で、コンセント側の実消費電力を測定し、年間稼働時間と電気料金を掛け合わせてください。さらに、パッチ適用やテスト、最終的に追加したブートデバイスを交換するための時間も加算します。

専用化の価値があるのは、共有ホストとの依存関係をなくすことで、測定可能な結果が変わる場合だけです。どちらの方法でも、同じオフホストの状態コピーから復元し、同じNASを待ち、同じIDを再作成し、同じ未文書化のコマンドを必要とするなら、専用筐体を追加しても、書類上の分離が得られるだけで、RTOは改善しません。アプリホストが壊れたままでも専用マシンを再イメージ化して検証できるなら、その分離境界には測定可能な役割があります。

ストレージパスと権限が、通常は復元を左右する

パスやIDが変わっている場合、プロセスが復旧してもサービスが復旧したとは言えません。コンテナ化したPlexでは、設定マウントと実行時UID/GIDを一貫した形で復元し、再作成したコンテナが同じ設定と書き込み可能なパスを認識できるようにする必要があります。サービスを復旧したと判断する前に、同じメディアマウント、権限、シークレット、デバイス、ネットワーク前提条件を復元します。

境界の両側にあるすべてのパスを文書化します。ホスト側のパス、Plexから見えるパス、読み取り専用か書き込み可能か、ネットワークストレージをマウントする順序、アクセスに使用するアカウントです。クレーム情報やID情報、シークレットは保存しますが、ランブックで公開してはいけません。ハードウェアトランスコードが重要な場合は、デバイスパスとドライバーの前提条件を記録します。ただし、家庭のRTOがトランスコードも明示的に必要としていない限り、GPUテストによって基本的なダイレクトプレイ復旧を妨げないでください。

大容量メディアとPlexの状態を、別々の復旧ジョブとして扱います。メディア共有が利用できなければ、専用Plexホストでも共有Plexホストでも、実用的な復旧を完了できません。メディアが正常にマウントされても、Plexのユーザー、視聴履歴、アートワーク、または書き込み権限が失われるなら、アプリケーション状態の復旧手順が不完全です。この境界を設けることで、ストレージ障害を別のPlexサーバーが必要な証拠と誤診するのを防げます。

分離する前に、時間を測った復旧訓練を1回実行する

稼働中のサーバーに隠れた状態を含まない、予備の起動デバイス、使い捨てVM、またはその他のクリーンなターゲットを用意します。バックアップポイントを1つ選び、その経過期間を書き留めます。実際に復旧を担当する可能性が最も高い人にランブックを渡すか、少なくとも自分がシェル履歴や記憶したパスを使うことを禁止します。この訓練では、文書化されていない選択を隠すのではなく、明らかにする必要があります。

5つの結果を記録します。合計経過時間、復旧した状態の経過期間、推測または文書化されていなかった判断の数、復旧または停止が必要になった無関係なサービスの数、初回起動後の検証失敗数です。代替レイアウトに対しても、同じ障害範囲を紙上または予備ハードウェアで実行します。公平な比較では、専用構成にはクリーンなイメージを与え、共有構成では無関係なアプリケーションをすべて再構築させるようなことはしません。

最小の失敗した依存関係から先に修正します。欠落したシークレット、古いマウント先、整合性のないデータベースコピー、誤ったUIDは、Plexを専用サーバーへ移しても付いてきます。修正後、同じ手順をもう一度実行します。共有経路では、専用ホストなら実際に取り除けるレイヤーの再構築や待機が必要なため目標に到達できない場合にのみ、分離します。

  1. 障害内容を明確にします。Plexの不適切な更新、データベースの破損、起動デバイスの喪失、またはホスト全体の喪失です。
  2. 既知のバックアップポイントを選択し、調査する前にその経過時間を記録します。
  3. 記述されたOS、パッケージまたはイメージ、ネットワーク、デバイス定義に基づいて、クリーンな復元先を構築します。
  4. 無関係なアプリケーションを復元せずに、Plexの状態を復元します。
  5. メディアをマウントし、パス、ID、権限、シークレット、オプションのハードウェアデバイスを確認します。
  6. ライブラリ、ユーザー、視聴状態、ダイレクト再生、必要なトランスコード1件、新しい状態変更、再起動を検証します。
  7. 経過時間と復元された状態の経過時間を、定義済みのRTOおよびRPOと比較します。
実施した復旧訓練の結果 判断
共有ホストがRTO/RPOを満たし、Plex単体で復元できる 共有ホストを維持する
両方のルートが同じ欠落した状態またはメディア依存関係で失敗する まずバックアップまたはストレージを修復する
無関係なプラットフォーム層を先に復旧する必要があるため、共有ホストがRTOを満たせない 専用Plexホストをテストする
専用ルートは高速化せず、アイドル時の電力消費と保守負担が増える 共有ホストを維持する
復旧は成功するが、ピーク時の再生に失敗する 停止して、性能と競合を診断する

目標を満たす最小の復旧境界を選ぶ

Plexの状態が分離され、デプロイとIDを再現でき、バックアップがホスト外にあり、無関係なアプリを復元せずにクリーンな復元で両方の目標を満たせるなら、共有アプリホストにPlexを置きます。アイドル状態のハードウェアを再利用でき、電源投入、パッチ適用、監視が必要なシステム数を少なく保てるため、通常はこちらがより効率的な最初の設計です。

Plexが、頻繁に変更されるオペレーティングシステム、コンテナプラットフォーム、デバイススタック、または無関係なサービスチェーンを待つ必要があるため、時間計測した共有ホストでの訓練がRTOを満たせない場合、あるいはPlexに、ホスト上の他のサービスと安全に共有できない更新および再起動スケジュールが必要な場合は、専用Plexサーバーを選びます。専用構成の手順によって実際にそれらの工程がなくなること、そして家庭が、2台目のシステムによる電力消費と管理負担よりも短縮される復旧時間を重視することを確認してください。

同じデータベースコピー、シークレット、マウント、権限、メディアバックアップの欠落が原因で両方のルートが失敗している場合は、分割しないでください。その依存関係を修正して、復旧訓練を再実行します。復旧に成功したにもかかわらず、同時負荷時に再生が依然として失敗する場合、次に確認すべきなのは共有リソースの余裕、スケジューリング、または物理的な性能分離です。これはアプリケーション復旧とは別の判断です。

製品比較

もっと読む

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.