Apple Qmaster 分散処理システムの基本的なコンポーネント

いくつかのアプリケーションから成る Apple Qmaster ソフトウェアですが(「Apple Qmaster 分散処理システムのインターフェイス」を参照)、全体としては以下の基本的なコンポーネントを持つネットワーク化されたシステムの一部です。

メモ: 分散処理システム内の Compressor、QuickTime、Mac OS のバージョンはすべて同一である必要があります。

多くの場合、クライアントコンピュータ、サービスノード、およびクラスタコントローラは、潜在的に最大の処理スピードを得るために別々の(しかしネットワークでつながった)コンピュータ上に置かれます。ただし、クラスタコントローラはクライアントコンピュータやサービスノード上に置くこともできます。詳細については、「2 種類の分散処理タスクに 1 台のコンピュータを使用する」を参照してください。

以下は、Apple Qmaster システムにおけるより詳しい各コンポーネントの役割です。

クライアント

バッチの分散処理を実行するのがクライアントコンピュータです。「Compressor」をインストールした、クラスタコントローラと同じネットワーク(サブネット)上にあるコンピュータなら、どのコンピュータでもクライアントコンピュータにできます。複数のクライアントコンピュータを同じクラスタを使って同じサブネットに置き、さまざまなアプリケーション用の処理を行わせることができます。

クライアントで処理するバッチは、アプリケーション「Compressor」または「Apple Qmaster」を使って実行します。これらのアプリケーションの使いかたについて詳しくは、「トランスコードの基本的なワークフロー」および「 Apple Qmaster ユーザーズマニュアル 」を参照してください。

クラスタ

クライアントがバッチを Apple Qmaster 分散処理システムに送る場合、処理およびその後の出力ファイルの移動をすべて実行するのが、クラスタと呼ばれる「Apple Qmaster」によって構成されたコンピュータのグループです。クラスタ 1 つあたりに 1 つのクラスタコントローラを設定し、サービスノードの 1 つまたは複数のクラスタを作成できます。あるクラスタ内のコンピュータは、クラスタ内のほかのコンピュータとネットワーク経由で接続されています。

Figure. Diagram showing the Apple Qmaster cluster including one cluster controller and three service nodes.

メモ: この図は簡単なクラスタの一例を示します。このほかの構成例については、「分散処理ネットワークの例」を参照してください。

サービスノード

サービスノードとは、処理を実行する場所です。サービスノードのグループをクラスタに割り当てると、リソースを共有できるようになるためにグループ全体が 1 台の強力なコンピュータとして機能します。1 つのサービスノードが過負荷またはアクセス不可能な状態になると、別のサービスノードが使用されます。

あるコンピュータをサービスノードとして使用可能にするには、そのコンピュータを「Apple Qmaster 共有」ウインドウで設定します。このウインドウは、「Compressor」で「Apple Qmaster」メニューから「このコンピュータを共有」を選択すると開きます。

最低限必要な知識

以下は分散処理ネットワーク設定に関する基本的なルールです:

  • クラスタはクラスタコントローラとして機能するコンピュータを 1 台(1 台のみ)と、サービスノードとして機能するコンピュータを最低 1 台含む必要があります。(クラスタコントローラとサービスノードは、「2 種類の分散処理タスクに 1 台のコンピュータを使用する」に示すように 1 台のコンピュータで兼用させることもできます。)

  • クライアントコンピュータ、およびクライアントコンピュータをサポートするクラスタ内のすべてのコンピュータは、同じネットワーク上にある必要があります。

  • ネットワークは Mac OS X に組み込まれた Apple のネットワーキングテクノロジーをサポートしている必要があります。

  • クラスタ内のすべてのコンピュータには、ファイルの出力先として指定したすべてのコンピュータ(またはストレージデバイス)で読み書きできるアクセス権が必要です。

分散処理ネットワークの例

最も簡単な分散処理ネットワークは 2 台のコンピュータから構成できます:

  • クライアントに接続され、サービスノードとクラスタコントローラの両方として機能するように設定されたコンピュータ 1 台

  • クライアントコンピュータ 1 台

    Figure. Diagram showing the client computer and the computer acting as both the service node and the cluster controller.

非常に簡単ですが、この構成はクライアントコンピュータの負荷を大幅に削減できるので、小規模な環境では大変役立ちます。

2 種類の分散処理タスクに 1 台のコンピュータを使用する

リソースを最大限に活用するために、複数の分散処理機能に複数のコンピュータを使用したい場合があります。

  • サービスノードとクラスタコントローラ: 小規模の構成では、クラスタ内のあるサービスノードをクラスタコントローラとして機能させて、両方の役割を兼用させることができます。ただし、多くのサービスノードを含むクラスタの場合、クラスタコントローラに必要な処理能力が非常に大きくなるため、サービスノードとクラスタコントローラを 1 台のコンピュータに兼用させると効率的でないことがあります。
  • クライアントコンピュータとクラスタコントローラまたはサービスノード: クライアントコンピュータを、クラスタのクラスタコントローラまたはサービスノードとして機能させることも可能ですが、コンピュータの処理能力が高いほど、高速でジョブの管理と処理ができることを忘れないでください。

以下の構成は、デスクトップコンピュータを使う環境用です。これは、各コンピュータをワークステーションとして使用しつつ、同時に分散処理クラスタの一部としても使用するため、「パートタイム」処理と呼ばれます。1 日の最後にジョブをまとめて「Compressor」または「Apple Qmaster」で実行させれば、ワークステーションユーザの帰宅後にコンピュータを占有して分散処理バッチの大きなキューを処理できます。(サービスノード稼働率のスケジューリングに関する詳細は、「「Apple Qmaster 共有」ウインドウの詳細設定について」および「動作スケジュール設定用ダイアログでのサービスの使用可能状態のスケジュール設定」を参照してください。)

Figure. Diagram showing a network of five computers in which each computer acts as both a client and a service node.

上に示したサンプル構成では、5 台のコンピュータが、クライアント(ジョブをクラスタに送って分散処理を開始させるユーザワークステーション)とクラスタ(実際に分散処理を行うコンピュータ)の両方として機能しています。各コンピュータには FireWire ドライブなどの追加ボリュームがあり、レンダリング前およびレンダリング後のメディアや関連ファイルの格納に使用できます。

さらにレンダリング処理能力を高めるには、LAN 上の多数のクライアントコンピュータを高速スイッチを使ってクラスタに接続することをお勧めします。クラスタとして機能するラックにセットしたサーバ群は、非常に強力なレンダリングエンジンとなります。それぞれのサービスノードは、レンダリングのジョブを処理できるように、適切なクライアントアプリケーションのコピーをローカルに持ちます。

Figure. Diagram showing client computers, high-speed switches, and a rack of servers containing the cluster controller and service nodes.

Apple Qmaster システムはどのようにバッチを分散するか

「Apple Qmaster」のクラスタコントローラは、クラスタ内のリソースを最も効率的に使用できる方法を決定します。この決定は、各サービスノードの稼働率およびバッチをいくつに分割できるか(次で説明します)に基づいて行われます。

「Apple Qmaster」は個々のバッチを別々のサービスノードに分割するため、作業は共有され、より短時間で完了します。また、この方法ではすべてのサービスノードを可能な限り活用するので、リソースが無駄になりません。

クラスタコントローラは、以下の方法のいずれか、またはその両方によって、バッチをクラスタに分散します。(「Apple Qmaster」は、最も効率的な処理方法を個々のバッチに合わせて臨機応変に決定します。)

  • バッチをデータセグメントに分割する: たとえば、レンダリングのバッチでは、クラスタコントローラはフレームをグループ(セグメント)に分割します。それぞれのセグメントはクラスタ内のサービスノードで並列処理されます。
  • バッチをタスクに分割する: たとえば、レンダリングのバッチでは、クラスタコントローラはレンダリングの作業をさまざまな処理タスクに分割します。異なるタスクは、それぞれ異なるサービスノードで実行されます。

「Apple Qmaster」は、直接セグメントを移動するのではなく、ネットワーク経由でどのセグメントを読むか、目的のセグメントの場所はどこか、そしてどんな処理を行うかとサービスノードに伝えます。以下の例では、あるバッチが Apple Qmaster システムでどのように処理されるかを示します。

Figure. Diagram showing the batch, the cluster controller, instructions to individual service nodes, and the processed output file.

バッチを分散する場合、「Apple Qmaster」は Mac OS X に組み込まれたテクノロジーを使って IP サブネット上のクラスタでサービスを検索し、情報の共有と受領を動的に行います。コンピュータは処理の稼動状況を常に提示できるので、「Apple Qmaster」は作業をクラスタ全体にでも分散(ロードバランス)できます。

使う可能性があるその他の分散処理ネットワークコンポーネント

小規模の分散処理ネットワークは 1、2 台のコンピュータから構成できますが、大容量ネットワークになると、何台ものコンピュータ、ラックにセットした Xserve システムや Xserve クラスタノード、そして高速ネットワーキング用のインフラストラクチャなどが構成に加わっていることがあります。分散処理システムは、システムをサポートするネットワークに機能やデバイスを追加することで、仕事の要求量に応じて拡張することが可能です。

分散処理ネットワークの能力を拡張する方法はさまざまです。分散処理ネットワークには以下のすべてを含めることができます。

  • 高速スイッチおよび高速ケーブル: LAN 内で最大のスピードでデータ送信するための、100Base-T Ethernet または Gigabit Ethernet スイッチおよび対応のケーブルです。
  • 複数のクライアント: 複数のクライアントコンピュータは同じクラスタのサービスを使用できます。また、同じクラスタを使って、同じクライアントコンピュータ上で複数のクライアントアプリケーションを使用できます。
  • 複数のクラスタ: ネットワークの範囲の広さ、および含まれるクライアントの数に応じて、使用可能なコンピュータを分割して異なるクライアント用に複数のクラスタを作成することができます。(ユーザはバッチの実行時に、バッチを送りたいクラスタを選択します。)
  • 複数のサービスノード: 一般的に、サービスノードが増えれば処理能力も向上します。クラスタ内のサービスノードの数を決定する際は、計算時間に対するデータ転送時間を考慮します。目的がレンダリングのような作業で、処理に対する要求が、クラスタ内でジョブのセグメントを送信するために必要なネットワーク要求より大きい場合、サービスノードの数を増やすことをお勧めします。ジョブあたりの処理にかかる負荷がネットワークの負荷に近い場合、クラスタ内のサービスノード数が少ない方が効率的です。Apple Qmaster 分散処理システムを「Shake」または「Compressor」以外のアプリケーションで使用する場合、サービスノードの数の最適化については各アプリケーションのユーザーズマニュアルを参照してください。
  • ストレージデバイス: リモートディスクやディスクアレイのグループといったストレージデバイスは、クラスタコントローラ、クライアント、およびサービスノードが生成した一時データの短期的な置き場所となる、クラスタ取り込み先ディスクとして使用できます。(スクラッチストレージの位置は、「Compressor」の「Apple Qmaster 共有」ウインドウで設定できます。詳細については、「「Apple Qmaster 共有」ウインドウの詳細設定について」および「クラスタストレージを使用する」を参照してください。)ストレージデバイスは、処理が完了したファイルの最終的な保存先としても使用できます。

詳細については、「分散処理ネットワークの例」を参照してください。