次の方法で共有


サーバーの仮想化: パーティショニング攻略

動的なハードウェア パーティショニングを使用してサーバーを積極的にメンテナンスすると、仮想サーバーのワークロードを調整するうえで役立ちます。

William Stanek

サーバーの仮想化は、今日のエンタープライズ データセンターにおける主要テクノロジの 1 つです。サーバーの仮想化により、1 台の物理ハードウェアを共有する複数の仮想マシン (VM) を作成できます。各 VM では、ハイパーバイザー (VM マネージャー) によって割り当てられたハードウェア リソースを使用して、個別のオペレーティング システム (OS) インスタンスを実行します。

VM を使用して、使用率の低いサーバーを統合できるのが理想的です。何台もの使用率の低いサーバーを、複数の VM を実行する少数のサーバーに置き換えることができます。このようにサーバーを統合すると、設備にかかるコストと消費電力を削減して経費削減に役立つだけでなく、管理オーバーヘッドを削減して、サーバー メンテナンスを簡略化することもできます。

現在、サーバーの仮想化は大流行していますが、サーバーの使用率が高い場合は必ずしも最適な選択肢であるとは限りません。サーバーのワークロードが大幅に拡大した場合には、ワークロードの拡大に合わせて大幅に拡張するサーバー ソリューションが必要になります。このような場合に役立つのがハードウェア パーティショニングです。

ハードウェア パーティショニングでは、1 台のサーバーに複数の分離されたハードウェア パーティションを作成します。各ハードウェア パーティションでは、個別の OS インスタンスを実行し、サービス プロセッサによって、プロセッサ、メモリ、I/O ホスト ブリッジのリソースが割り当てられます。

Partition Manager では、サービス プロセッサと通信して、ハードウェア パーティションの構成管理をサポートします。ハードウェア パーティションは相互に分離されているので、ハードウェア パーティショニングされているサーバーで発生したハードウェア障害は、障害が発生したハードウェアを含むパーティションにしか影響しません。そのため、全体的な安定性と可用性が向上します。

上記のようなメリットがあるにもかかわらず、ハードウェア パーティションと VM は共存できます。この 2 つのテクノロジは、ハードウェア パーティションに VM マネージャーをインストールし、そのハードウェア パーティションに VM を作成することで併用できます。この 2 つのテクノロジを組み合わせて使用すると、エンタープライズ クラスのサーバー ハードウェアの使用を大幅にスケール アップおよびスケール アウトすることが可能になります。使用率の高いシナリオに対応する場合はスケール アップし、使用率の低いシナリオに対応する場合はスケール アウトします。その結果、両方のハードウェア管理アプローチのいいとこ取りをすることができます。

動的なアプローチ

ハードウェア パーティショニングは、静的な方法または動的な方法で実行できます。静的なハードウェア パーティショニング環境では、システムの実行中は、リソースの割り当てが固定されます。構成を変更するには、OS インスタンスの電源を切って、OS を再起動する必要があります。

動的なハードウェア パーティショニング環境では、システムの実行中に、リソースの割り当てを調整することができます。つまり、ハードウェア パーティションで実行中の OS を再起動することなく、リソースを追加または置換できます。そのため、可用性とサービス性が大幅に向上します。

動的なハードウェア パーティショニングで最適な結果を得るには、OS によるサポートが必要です。Windows Server 2008 R2 では、図 1 に示す動的なハードウェア パーティショニングの機能がサポートされていますが、現時点では、ホットリムーブ (hot-remove) はサポートされていません。Windows Server 2008 の RTM 版では、同じレベルのサポートが提供されていますが、ホットアド メモリとホットアド I/O ホスト ブリッジは x86 ベースのシステムで実行している Datacenter Edition でしかサポートされていません。OS のネイティブな PCI Express のサポートにより、ネットワーク アダプターやホスト バス アダプターなどの PCI デバイスのホットプラグ (hot-plug) が可能になります。

  ホットアド メモリ ホットアド プロセッサ ホットアド I/O ホスト ブリッジ ホットリプレース メモリ ホットリプレース プロセッサ
Standard x64        
Enterprise x64      
Datacenter x64
Itanium-based

 

図 1 各 Windows Server 2008 エディションの動的なハードウェア パーティションのサポート状況

動的なリソースの割り当てをサポートするために、Windows Server 2008 では、I/O ブリッジ、プロセッサ、およびメモリをプラグ アンド プレイ デバイスとしてモデル化しています。そのため、これらのリソースを追加または置換することが可能になっています。また、デバイス ドライバーと実行中のアプリケーションが、関連する通知に登録して、リソースを割り当てたり、遷移できるようにしています。各リソース (メモリ、プロセッサ、または I/O ホスト ブリッジ) は、パーティション単位と呼ばれる個別の単位として処理されます。

ハードウェア コンポーネントで障害が発生すると、イベント ログに記録されたハードウェア エラーによる警告を受けます。また、サーバーの使用率が高くなりすぎると、パフォーマンス カウンターなどのリソース監視指標によって通知されます。どのインスタンスでも、リソースを動的に追加したり、問題のあるリソースを動的に置換することで、サーバーを積極的にメンテナンスできます。サーバーのメンテナンス方法には、次の 2 種類あります。

  • 手動: ベンダーが提供している Partition Manager を使用して、サービス プロセッサと変更内容を通信します。
  • 自動: ハードウェア パーティションに適用するトリガーの条件をベンダーが提供しているシステム管理アプリケーションで構成します。サーバーが条件を満たすと、アプリケーションでは、自動的にサービス プロセッサを呼び出して変更を反映します。

サービス プロセッサは手動で呼び出された場合も、自動的に呼び出された場合も、追加または置換の要求を 1 つの原子動作として処理します。つまり、置換は、(ホットリムーブを使用して) リソースを削除して、(ホットアドを使用して) 同じ種類の新しいリソースを追加することとは異なります。サービス プロセッサでは、動的な追加操作に次のように対応しています。

  1. 利用可能で未使用のリソースを選択する
  2. リソースの電源を投入して初期化する
  3. 指定のリソースを指定のハードウェア パーティションに追加する
  4. 新しいリソースが使用できるようになったことを Windows Server 2008 に通知する

Windows Server 2008 では、動的なリソースの追加に関する通知を受け取ると、次の操作を実行します。

  1. リソースを起動し、利用可能なリソースのプールに追加する
  2. 通知に登録しているデバイスとアプリケーションにリソース関する通知を送信し、リソースの割り当てを調整できるようにする
  3. プロセッサの場合: システム全体で関連するデバイス ドライバーのリソース調整を行い、ハードウェアの Interrupt ハンドラーを切断および再接続して、新しいリソースを使用できるようにする (関連がないデバイス ドライバーはリソース調整の対象に含まれないので、この再割り当てによってサービスが中断されることはありません)
  4. I/O ホスト ブリッジの場合: 新しい I/O バスにアタッチされたデバイスをスキャンして、リソースの再調整を行う
  5. 手順 1. ~ 4. が完了したら、ホットアドが完了したことをサービス プロセッサに通知する

ホットリプレースは、メモリとプロセッサでのみ利用できる機能です (また、利用できるのは、置換されるリソースが置換するリソースと完全に同じ場合に限られます)。サービス プロセッサでは、置換操作に次のように対応します。

  1. 利用可能で未使用のリソースを選択する。
  2. リソースの電源を投入して初期化する。メモリの場合は、古いメモリ モジュールの状態が新しいメモリ モジュールにコピーされます。
  3. 置換操作が差し迫っていることを Windows Server 2008 に通知する。OS は擬似 S4 スリープ状態に入ります。プロセッサの場合は、OS とシステム ファームウェアによって、古いプロセッサの状態が新しいプロセッサにコピーされます。メモリの場合は、状態の変更が新しいメモリ モジュールにコピーされます。
  4. 置換リソースをハードウェア パーティションにマップし、古いリソースを削除する
  5. 置換操作が完了したことを Windows Server 2008 に通知する。OS のスリープ状態は解除され、通常の操作が再開します。
  6. 古いリソースの電源を切って、サービス マネージャーとシステム管理アプリケーションに置換が完了したことを通知する。

ホットリプレースは、パーティションの OS で実行されているアプリケーションが、置換操作を認識しないように設計されています。擬似 S4 スリープ状態は、通常の S4 スリープ状態と同じですが、OS で休止ファイルが保存または無効にされない点のみが異なります。スリープ状態の間、OS では、すべての処理と I/O 操作が中断され、パーティションにあるデバイスは、低電力状態になります。OS の使用率が高い場合、ホットリプレース中に OS へのネットワーク接続でタイムアウトが発生し、再接続が必要になることがあります。

動的なパーティショニングのしくみと、データセンター環境で関連機能を使用して積極的にサーバーをメンテナンスする方法についての説明は以上です。使用率の高いサーバーでは、ハードウェア RAID を使用できる場合にソフトウェア RAID を使用しないのと同様に、使用率の高いサーバーで動的なハードウェア パーティショニングが使用できる場合には、VM を使用しない可能性が高いことを覚えておいてください。

ですが、不変なものはありません。これらのテクノロジを組み合わせて使用して、迅速にスケール アップおよびスケール アウトできるようにするメリットを享受するのが望ましい場合もあります。

Joshua Hoffman

William R. Stanek は、先駆者的なテクノロジの専門家で、優秀なトレーナーや 100 冊以上もの優れた書籍の著者としても活躍しています。[twitter.com/WilliamStanek (英語)]https://(twitter.com/williamstanek) で Stanek をフォローしてみてください。

 

関連コンテンツ