共用ストレージ・プールへのフラッシュ・アクセラレーションの追加

共用ストレージ・プール (SSP) フラッシュ・アクセラレーションを使用する Virtual I/O Server (VIOS) は、 Virtual I/O Server上でソリッド・ステート・ドライブ (SSD) またはフラッシュ・ストレージ・キャッシングを使用することにより、パフォーマンスを向上させることができます。

この機能により、各 Virtual I/O Server は、読み取り専用キャッシングのためにフラッシュ・キャッシング・デバイスを使用できるようになります。 フラッシュ・キャッシング・デバイスには以下を使用できます。
  • サーバーに接続されたデバイス (サーバーに組み込まれた SSD など)。
  • シリアル接続 SCSI (SAS) コントローラーを使用してサーバーに直接接続されたデバイス。
  • ストレージ・エリア・ネットワーク (SAN) で使用できるリソース。

VIOS は、キャッシュ・デバイスとして使用するのに適格と見なされるデバイスに対して、そのデバイスをフラッシュ・デバイスとして識別できなければなりません。 VIOS は、 「SCSI ブロック・デバイス特性 VPD」 ページ (SCSI INQUIRY ページ B1) の MEDIUM ROTATION RATE フィールドを使用して、デバイスがフラッシュ・デバイスであるかどうかを判別します。 デバイスがそのページをサポートしていない場合、または 「MEDIUM ROTATION RATE」 フィールドに 0001h Non-rotation medium 以外の値が表示される場合、そのデバイスをキャッシュ・デバイスとして使用することはできません。

ローカル接続されたフラッシュ・キャッシング・デバイスを使用することで、最大限のパフォーマンス上のメリットを得られます。

SSP フラッシュ・アクセラレーションは、Virtual I/O Server 上のキャッシングをベースとしていますが、Power フラッシュ・キャッシングまたはサーバー・サイド・キャッシングはクライアント論理区画で実行されます。 サーバー・サイド・キャッシングについて詳しくは、以下を参照してください。

両方のタイプのキャッシングを独立して使用できます。 同様のタイプのクライアント論理区画ワークロードにおけるこれらの両方のタイプのキャッシングのパフォーマンス特性は似ています。

SSP フラッシュ・アクセラレーションは、プール内のすべてのストレージ層を含む、ストレージ・プール全体に対して読み取り専用キャッシングを実行します。 プール内のユーザー・データ (データ・ブロック) のみがキャッシュされ、メタデータはキャッシュされません。 代わりに、システム層のために SAN 上で SSD ストレージを使用することで、メタデータのアクセスが加速する可能性があります。

SSP フラッシュ・アクセラレーションの概念と用語

クライアント論理区画でワークロードが実行されている間に、ストレージ・プールを動的にキャッシュに入れる (キャッシングを使用可能または使用不可にする) ことができます。 キャッシングを使用可能にするために、ワークロードを非アクティブ状態にする必要はありません。 次の表で、フラッシュ・キャッシングの概念を説明するために使用される用語について説明します。
用語 説明
キャッシュ・デバイス キャッシュ・デバイスは、キャッシングのために使用されるソリッド・ステート・ドライブ (SSD) またはフラッシュ・ディスクです。
キャッシュ・プール キャッシュ・プールは、ストレージ・キャッシングだけのために使用されるキャッシュ・デバイスのグループです。
キャッシングを使用可能にする ストレージ・プールのキャッシングを開始します。
キャッシングを使用不可にする ストレージ・プールのキャッシングを停止します。

ストレージ・プールに対してキャッシングが使用可能になっている場合、キャッシュ・プールが定義されているクラスター内のすべての Virtual I/O Server でキャッシングが開始されます。 このプロセスにより、各 Virtual I/O Serverのローカル・キャッシュ・プールから派生した論理キャッシュ・デバイス (キャッシュ・パーティションと呼ばれる) が暗黙的に作成されます。 ストレージ・プールのキャッシングが使用可能になっている場合、ストレージ・プールのユーザー・データ・ブロックに対する読み取り要求はすべて SSP キャッシング・ソフトウェアに経路指定されます。 特定のユーザー・データ・ブロックがローカル Virtual I/O Server キャッシュで検出されると、入出力要求はキャッシュ・デバイスから処理されます。 要求されたブロックがキャッシュ内に見つからない場合、または要求が書き込み要求である場合、入出力要求はストレージ・プールの SAN デバイスに直接送信されます。

ストレージ・プールに対してキャッシングが使用不可になっている場合、クラスター内のすべての Virtual I/O Server のキャッシングが停止します。 このプロセスでは、各サーバー上のローカル・キャッシュ・プールから論理キャッシュ・デバイスが暗黙的にクリーンアップされます。

SSP フラッシュ・アクセラレーションのアーキテクチャーおよびコンポーネント

SSP フラッシュ・アクセラレーションのコンポーネントには、 VIOS、キャッシュ管理とキャッシュ・エンジン、およびストレージ・プールが含まれます。 次の表で、これらのコンポーネントについて説明します。
コンポーネント 説明
ヴィオス キャッシングの管理は、 VIOS コマンド行インターフェースから sspcache コマンドを使用して実行します。
ストレージ・プール (プール・ドライバー) ストレージ・プールはキャッシングのターゲットであり、プール・ドライバーはクラスター・キャッシュのコヒーレンシーを管理します。
キャッシュ管理およびキャッシュ・エンジン キャッシュ管理は、低水準のキャッシュ構成コマンドを提供します。キャッシュ・エンジンは、ストレージ・プールにどのブロックがキャッシュされているかを判別するために、ローカル・キャッシング・ロジックを実行します。
SSP フラッシュ・アクセラレーションは、次の方法で、Virtual I/O Server 間の分散キャッシュのコヒーレンシーを実行します。
  • ストレージ・プール・ドライバーは、クラスター全体で分散キャッシュのコヒーレンシーを調整します。
  • キャッシュ・エンジンは、ノード・レベルのキャッシングを管理し (キャッシュ・エントリーのプロモートまたはデモート)、ストレージ・プール・ドライバーと対話してキャッシュのコヒーレンシーを維持します。 このコンポーネントは、Power ® フラッシュ・キャッシングまたはサーバー・サイド・キャッシングと同じローカル・キャッシング方式を使用します。
  • キャッシュ・エンジンは、すべてのストレージ・プール入出力操作に使用されます。 このタイプのキャッシングは、ルックアサイド・キャッシング と呼ばれます。

次の図で、キャッシングが使用可能になっているときの各種の入出力操作のフローを説明します。

このイメージは、SSP フラッシュ・アクセラレーションのアーキテクチャーに関する情報を含む VIOS ファイルです。
図に示されている入出力操作の詳細については、下記の表で説明します。
入出力操作 説明
キャッシュ読み取りヒット
  • VIOS は、クライアント論理区画からストレージ・プール・ドライバーに I/O 読み取り要求を渡します。
  • ストレージ・プール・ドライバーは、キャッシュ・エンジンを検査して、エクステントがローカル・キャッシュ・デバイスにキャッシュされていることを検出します。
  • 入出力要求全体がキャッシュ内で処理され、クライアント論理区画に戻されます。
キャッシュ読み取りミス
  • VIOS は、クライアント論理区画からストレージ・プール・ドライバーに I/O 読み取り要求を渡します。
  • ストレージ・プール・ドライバーは、キャッシュ・エンジンを検査して、エクステントがローカル・キャッシュ・デバイスにキャッシュされていないことを検出します。
  • ストレージ・プール・ドライバーは、SAN から要求を処理して、クライアント論理区画に戻します。
書き込み操作
  • VIOS は、クライアント論理区画からストレージ・プール・ドライバーに入出力書き込み要求を渡します。
  • キャッシュのコヒーレンシーを確保するために、エクステントがキャッシュされているクラスター内のどのノードでもエクステントは無効になります。
  • ストレージ・プール・ドライバーは、SAN に対する書き込み要求を実行します。

SSP フラッシュ・アクセラレーションにおけるキャッシングの属性

SSP フラッシュ・アクセラレーションにおけるキャッシングの属性は以下のとおりです。
アプリケーションに対する透過性
クラスター・アプリケーションをクライアント論理区画で使用できます。
クライアント・オペレーティング・システムからの独立
キャッシングは、 AIX®、 IBM® i、および Linux® オペレーティング・システムでサポートされます。
ノードに固有の読み取り専用のキャッシュ
書き込み操作の結果は、キャッシュの無効化が行われた後に SAN に送信されます。
並行およびコヒーレントの共用データ・アクセス
SSP ランドスケープ全体の完全なコヒーレンシーにより、並行共用データ・アクセスをサポートします。
ストレージのタイプからの独立
SSP のキャッシングおよび SAN ストレージについて、フラッシュ・ストレージのタイプに対する依存関係はありません。

SSP フラッシュ・アクセラレーションの利点

以下に、SSP フラッシュ・アクセラレーションのいくつかのメリットを挙げます。
  • 分析ワークロードやトランザクション・ワークロードなどの一部のワークロードとオンライン・トランザクション処理で、遅延とスループットが改善されます。
  • アクセラレーションは、クライアント論理区画が Virtual I/O Server 上のキャッシングを認識しないように透過的に行われます。
  • パフォーマンスに影響を与えることなく、仮想マシン (VM) の密度が向上します。
  • SAN インフラストラクチャーの使用効率とスケーリングを効率化できます。 SAN からの読み取り要求のオフロードにより、輻輳している SAN での書き込みスループットが向上する可能性があります。
  • 共通ブロックが既にキャッシュされている場合に、複製された仮想論理装置 (LU) に基づく VM 間でのブロックの共用からメリットを得られます。
  • Live Partition Mobility (LPM) と互換性があります。

SSP フラッシュ・アクセラレーションのキャッシングの制限

以下に、SSP フラッシュ・アクセラレーションのキャッシングの制限をいくつか挙げます。
  • SSP キャッシング・ソフトウェアは読み取り専用キャッシュとして構成されます。つまり、フラッシュ・ソリッド・ステート・ドライブ (SSD) では読み取り要求のみが処理されます。 書き込み要求はすべて、ストレージ・プールのみによって処理され、SAN に直接送信されます。
  • ストレージ・プールに書き込まれるデータは、自動的にキャッシュに取り込まれるわけではありません。 キャッシュ内のブロックに対して書き込み操作が実行される場合、キャッシュ内の既存のデータは無効としてマークされます。 ブロックがアクセスされる頻度と、いつ最後にアクセスされたかに基づいて、キャッシュで同じブロックが再表示されます。
  • キャッシュ・デバイスを Virtual I/O Server 間で共用することはできません。
  • パフォーマンス上のメリットは、アプリケーション作業セットのサイズと、SAN ディスク・コントローラー・キャッシュのタイプおよびサイズによって異なります。 通常、パフォーマンスの大幅な向上を実現するには、作業セットの集合が SAN ディスク・コントローラー・キャッシュよりも大きくなければなりません。

SSP フラッシュ・アクセラレーションのキャッシングの構成

キャッシングを有効にするには、 VIOS コマンド行インターフェースから以下の手順を実行する必要があります。
  1. cache_mgt コマンドを使用して、クラスター内の各 VIOS 上にキャッシュ・プールを作成します。
  2. sspcache コマンドを使用して、単一の VIOS ノードから SSP クラスター上のストレージ・プールのキャッシングを有効にします。
VIOS でのキャッシュ・プールの作成は、一回限りのステップです。 このコマンドの構文は次のとおりです。
cache_mgt pool create –d <devName>[,<devName>,…] -p <poolName>
例えば、クラスター内の各 VIOS に 1024 MB のキャッシュを作成してから、ストレージ・プールでキャッシングを有効にするには、以下の手順を実行します。
  1. 1024 MB のキャッシュを作成するには、次のコマンドを入力します。
    cache_mgt pool create –d /dev/hdisk11 –p cmpool0     
    このコマンドは、クラスター内のすべての Virtual I/O Server で実行する必要があります。
  2. 単一の VIOS ノードから SSP クラスター上のストレージ・プールのキャッシングを有効にするには、次のコマンドを入力します。
    sspcache -enable -sp -size 1024
    このコマンドは、クラスター内の単一の VIOS で実行する必要があります。

SSP フラッシュ・アクセラレーションのキャッシングの管理

キャッシングが構成された後、時間と共にキャッシング要件が変化することがあります。 キャッシュする必要があるワークロードを新規に追加する必要が生じる場合があります。 変化する要件に対応するために、必要に応じてキャッシュ・デバイスをさらに追加することで、キャッシュ・プールを拡張できます。 このようにして、キャッシュ・サイズを増やすことができます。

以下の例を利用して、キャッシング構成を管理できます。
  1. キャッシュ・プールにキャッシュ・デバイスを追加するには、クラスター内の各 VIOS で以下のコマンドを入力します。
    > cache_mgt pool extend -p cmpool0 -d hdisk12 –f
  2. キャッシュ・サイズを 2048 MB に拡大するには、1 つのノードで次のコマンドを入力します。
    > sspcache –resize –sp –size 2048