(57)【特許請求の範囲】
【請求項１】
論理的にパーティション化された複数のデータ処理システムが含まれるプール内に配置された複数のプロセッサ・ノードのコレクションを含むコンピューティング環境において電力消費を管理する方法であって、
前記コンピューティング環境における電力消費を最適化するために、前記複数のデータ処理システムの前記プールに複数の論理パーティションを割り当てることと、
前記複数の論理パーティションを割り当てた後、前記複数のデータ処理システムの前記プール内で実行されている複数の論理パーティションに保証される有使用資格容量を変更する動作に応答して通知されるシステム・イベントについて、前記複数のデータ処理システムの前記プールを自律的に監視することと、
前記複数のデータ処理システムの前記プールの監視に基づいて、前記複数のデータ処理システムの前記プール内で実行されている前記複数の論理パーティションに保証される有使用資格容量の変更にかかる第１のシステム・イベントを検出することと、
前記第１のシステム・イベントの検出に応答して、前記最適化のために割り当てられた複数の論理パーティションのうちの少なくとも１つを含むサブセットを、前記複数のプロセッサ・ノードのコレクション内で動的に再割り当てし、かつ、前記複数のデータ処理システムの前記プール内に配置された前記コレクション内の前記複数のプロセッサ・ノードの少なくとも１つの電力状態を動的に修正することによって、前記コンピューティング環境における電力消費を再最適化することと、
を含む、方法。
【請求項２】
前記複数のデータ処理システムは、それぞれ、プロセッサ・ノードの集合を含み、前記コレクションは、前記プール中の前記複数のデータ処理システムそれぞれのプロセッサ・ノードの集合を含み、前記コンピューティング環境における電力消費を再最適化することは、各データ処理システム内での総有使用資格容量および各論理パーティションの有使用資格容量に基づいて、データ処理システム間で移動させる論理パーティションのセットを判断することを含む、請求項１に記載の方法。
【請求項３】
前記プロセッサ・ノードのコレクションは、前記複数のデータ処理システムの前記プールの第１のデータ処理システム内に配置された第１のプロセッサ・ノードを含み、前記第１のシステム・イベントは前記複数のデータ処理システムの前記プール内で実行されている複数の論理パーティションに保証される有使用資格容量を減少させる動作に基づくものであり、前記コンピューティング環境における電力消費を再最適化することは、前記第１のプロセッサ・ノードの前記電力状態を低下させること、及び、前記第１のプロセッサ・ノードに割り当てられた少なくとも１つの論理パーティションを、前記第１のデータ処理システムとは異なるデータ処理システム内の１つ又は複数の異なるプロセッサ・ノードに移動することを含む、請求項１または２に記載の方法。
【請求項４】
前記第１のシステム・イベントは、論理パーティション・パワーオフ・イベント、論理パーティション・ハイバーネーション・サスペンド・イベント、プールからのアクティブ論理パーティション・マイグレーション・イベント、論理パーティションからの動的プロセッサ容量除去イベント、又は論理パーティションからの動的メモリ容量除去イベントである、請求項３に記載の方法。
【請求項５】
前記プロセッサ・ノードのコレクションは、前記複数のデータ処理システムの前記プールの第１のデータ処理システム内に配置された第１のプロセッサ・ノードを含み、前記第１のシステム・イベントは前記複数のデータ処理システムの前記プール内で実行されている複数の論理パーティションに保証される有使用資格容量を増大させる動作に基づくものであり、前記再割り当ては、少なくとも各データ処理システム内での総有使用資格容量に基づいて行われ、前記コンピューティング環境における電力消費を再最適化することは、前記第１のプロセッサ・ノードの前記電力状態を増大させること、及び、増大した前記総有使用資格容量を満たすために前記第１のプロセッサ・ノードの電力レベルを増大させることによって得られる容量を用いることを含む、請求項１または２に記載の方法。
【請求項６】
前記第１のシステム・イベントは、論理パーティション・パワーオン・イベント、論理パーティション・ハイバーネーション・レジューム・イベント、プールへのアクティブ論理パーティション・マイグレーション・イベント、論理パーティションへの動的プロセッサ容量付加イベント、又は論理パーティションへの動的メモリ容量付加イベントである、請求項５に記載の方法。
【請求項７】
前記複数のデータ処理システムの前記プールの第１のデータ処理システムは、前記プロセッサ・ノードのコレクションからの第１及び第２のプロセッサ・ノードを含み、前記電力状態を動的に修正することは、前記第２のプロセッサ・ノードの電力状態を維持しながら、前記第１のプロセッサ・ノードをパワーダウン又はパワーアップすることを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記複数のデータ処理システムの前記プールの第１のデータ処理システムは、前記プロセッサ・ノードのコレクションからの複数のプロセッサ・ノードを含み、前記複数のデータ処理システムの前記プールの第２のデータ処理システムは、前記プロセッサ・ノードのコレクションからの単一のプロセッサ・ノードを含み、前記電力状態を動的に修正することは、前記第１のデータ処理システム内の前記複数のプロセッサ・ノードの各々の電力状態を維持しながら、前記第２のデータ処理システムをパワーダウン又はパワーアップすることを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項９】
論理的にパーティション化された複数のデータ処理システムが含まれるプール内に配置された複数のプロセッサ・ノードのコレクションを含むコンピューティング環境において電力消費を管理する方法であって、
前記プールに割り当てられ該プール内で実行されている複数の論理パーティションに保証される有使用資格容量を減少させる動作に応答して通知されるイベントを検知するステップと、
前記イベントを検知したことに応答して、前記プール内に配置された前記コレクション内の前記プロセッサ・ノードの少なくとも１つの電力状態を低下させるように、当該複数のデータ処理システムそれぞれに割り当てられた論理パーティションを当該複数のデータ処理システム間で再配置するステップと、
を含む方法。
【請求項１０】
請求項１乃至９の何れか一項に記載の方法の全てのステップを実行する手段を含むシステム。
【請求項１１】
請求項１乃至９の何れか一項に記載の方法の全てのステップをコンピュータに実行させるための命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ及びコンピュータ・ソフトウェアに関し、具体的には、論理的にパーティション化されたコンピューティング環境に関する。
【背景技術】
【０００２】
コンピューティング技術は、驚くべき速度で進歩してきており、その後にコンピューティング・システムが生成されるたびに、多くの場合は低減したコストで、性能、機能及びストレージ容量が向上している。さらに、エネルギー・スター（Energy Star）・コンプライアンス、並びに「グリーン（green）」コンピュータ・システム及びデータ・センタの概念の出現からも明らかなように、データ・センタにおける電力管理（パワーマネージメント）は、近年、ますます重要になってきている。電力コスト及び環境問題は、特に、大規模データ・センタを有する企業にとって重要な問題である。従って、エネルギー効率の良いシステム及び解決法を構築するコンピュータ及びソフトウェア製造業者は、市場において明白な利点を有し得る。
【０００３】
電力管理技術は、多くの場合、ワークロード及び環境要因を監視し、システム又はシステムのプール内の計算リソースの間でワークロードを、電力管理に関連した何らかの利点を達成するような方法で移動することを含む。この利点は、システム又はシステム内のコンポーネントをパワーダウンする（低電力状態（low power state）にする又は完全にシャットオフ（電源遮断）する）こと、又はデータ・センタ内のホット・スポットを回避すること、又は高電力コスト領域若しくは時間を回避することを通じて得ることができる。シフトされるワークロードは、通常、プロセッサ及びメモリ・フォールディング（folding）を容易にするためにプロセッサ・コア間でワークロードを移動する際のディスパッチ・ユニット、又はデータ・センタ内のシステム間でワークロードを移動する際のアプリケーション／ジョブのいずれかである。
【０００４】
多くのデータ・センタは、論理パーティション化を利用し、これにより、コンピュータを用いて、幾つかの動作環境又はオペレーティング・システムを一度に実行することが可能になる。典型的な実施形態においては、単一の論理的にパーティション化されたコンピュータ又はデータ処理システムは、仮想マシン（ＶＭ）とも呼ばれる、対応する複数の論理パーティション（ＬＰＡＲ）において複数のオペレーティング・システムを実行することが可能であきる。各オペレーティング・システムは、それぞれの論理パーティション内にあり、各論理パーティションは、コンピュータから、物理プロセッサの一部、物理プロセッサ全体、又は複数の物理プロセッサに割り当てられる。さらに、コンピュータのメモリの一部は、各論理パーティションに割り当てられる。ハイパーバイザ又は仮想マシン・モニタ（ＶＭＭ）と呼ばれることが多い基礎となるパーティション・マネージャは、論理パーティションを管理し、制御する。ハイパーバイザは、一般に、システム・ファームウェアの一部であり、オペレーティング・システム及び論理パーティションへのリソースの割り当てを管理する。従って、１つの論理的にパーティション化されたコンピュータは、１つ又は複数の論理パーティションを実行することができ、よって、アプリケーション、オペレーティング・システム及びそれらの論理パーティション内で動作するように構成された他のプログラム・コードにより使用される基礎となるハードウェア・リソースを仮想化することができる。
【０００５】
大規模データ・センタにおいては、一般に、十分な処理容量が存在し、データ・センタのワークロード全体をデータ・センタ内の利用可能なハードウェア・リソースのサブセットにのみ配置することが可能であり、それにより、ハードウェア・リソースの一部をパワーダウンし、電力消費全体を低減させることが可能である。しかしながら、多くのワークロードの動的性質を考えると、データ・センタ内のハードウェア・リソースへの論理パーティションの最適な割り当ては、時間の経過と共に変化することがあり、場合によっては、準最適な（sub-optical）論理パーティションの割り当てに対処するための管理者アクションを必要とすることがある。場合によっては、準最適な割り当てが容易に明らかでないことさえあり、データ・センタ内の過度の電力消費及び／又は性能の低下をもたらすことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理的にパーティション化されたコンピューティング環境において電力消費を管理する方法、システム及びコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明は、イベント駆動型再最適化を用いて、論理的にパーティション化されたコンピューティング環境内にある論理パーティションの集合的リソース需要を増大又は減少させる可能性が高いシステム・イベントの検出に応答して、論理的にパーティション化されたデータ処理システムのプール内の１つ又は複数の論理パーティションを再割り当てする、請求項１に請求されるような方法、及び対応する、請求されるようなシステム及びコンピュータ・プログラムを提供することにより、従来技術と関連したこれら及び他の問題に対処する。場合によっては、例えば、再最適化を用いて、論理パーティションをより少ないプロセッサ・ノードに統合し、ハードウェア・リソースをパワーダウンする可能性を改善し、それにより電力消費を低減することができる。
【０００８】
従って、本発明の１つの態様と整合して、論理的にパーティション化されたデータ処理システムのプール内に配置されたプロセッサ・ノードのコレクションを含む論理的にパーティション化されたコンピューティング環境において、電力消費を管理することができる。論理的にパーティション化されたコンピューティング環境における電力消費を最適化するために、論理的にパーティション化されたデータ処理システムのプールに複数の論理パーティションを割り当てること、複数の論理パーティションを割り当てた後、論理的にパーティション化されたデータ処理システムのプールに割り当てられた論理パーティションのリソース需要を変更するシステム・イベントについて、論理的にパーティション化されたデータ処理システムのプールを自律的に監視すること、論理的にパーティション化されたデータ処理システムのプールの監視に基づいて、論理的にパーティション化されたデータ処理システムのプールに割り当てられた論理パーティションのリソース需要を変更する第１のシステム・イベントを検出すること、及び第１のシステム・イベントの検出に応答して、複数の論理パーティションの少なくともサブセットをプロセッサ・ノードのコレクションに動的に再割り当てし、かつ、論理的にパーティション化されたデータ処理システムのプール内に配置されたプロセッサ・ノードのコレクションのプロセッサ・ノードの少なくとも１つの電力状態を動的に修正することにより、論理的にパーティション化されたコンピューティング環境における電力消費を再最適化することができる。
【０００９】
本発明を特徴付けるこれら及び他の利点及び特徴は、本明細書に添付され、さらに別の部分を形成する特許請求の範囲内に示される。しかしながら、本発明並びにその利点及びその使用により達成される目的をより良く理解するために、本発明の例示的な実施形態を説明する図面及び付随の記述事項を参照されたい。
【図面の簡単な説明】
【００１０】
【図１】本発明と整合する論理的にパーティション化されたコンピューティング環境を実装するのに適した例示的なハードウェア環境のブロック図である。
【図２】本発明と整合する論理的にパーティション化されたコンピューティング環境を実装するのに適した例示的なソフトウェア環境のブロック図である。
【図３】本発明と整合する１つの実施形態においてイベント駆動型再最適化を実施するために使用されるモデルのブロック図である。
【図４】有使用資格（使用資格のある、entitled）容量減少システム・イベントに応答して、論理的にパーティション化されたコンピューティング環境による電力消費を再最適化するために、図１のオーケストレータ・コンポーネントにより実施することができる例示的な再最適化ルーチンを示すフローチャートを示す。
【図５】有使用資格容量減少システム・イベントに応答して、論理的にパーティション化されたコンピューティング環境による電力消費を再最適化するために、図１のオーケストレータ・コンポーネントにより実施することができる例示的な再最適化ルーチンを示すフローチャートを示す。
【図６】有使用資格容量増大システム・イベントに応答して、論理的にパーティション化されたコンピューティング環境による電力消費を再最適化するために、図１のオーケストレータ・コンポーネントにより実施できる例示的な再最適化ルーチンを示すフローチャートを示す。
【図７】有使用資格容量増大システム・イベントに応答して、論理的にパーティション化されたコンピューティング環境による電力消費を再最適化するために、図１のオーケストレータ・コンポーネントにより実施できる例示的な再最適化ルーチンを示すフローチャートを示す。
【図８】有使用資格容量増大システム・イベントに応答して、論理的にパーティション化されたコンピューティング環境による電力消費を再最適化するために、図１のオーケストレータ・コンポーネントにより実施できる例示的な再最適化ルーチンを示すフローチャートを示す。
【図９】有使用資格容量増大システム・イベントに応答して、論理的にパーティション化されたコンピューティング環境による電力消費を再最適化するために、図１のオーケストレータ・コンポーネントにより実施できる例示的な再最適化ルーチンを示すフローチャートを示す。
【発明を実施するための形態】
【００１１】
本発明と整合する実施形態は、イベント駆動型再最適化を用いて、論理的にパーティション化されたコンピューティング環境内にある論理パーティションの集合的リソース需要を増大又は減少させる可能性が高いシステム・イベントの検出に応答して、論理的にパーティション化されたコンピューティング環境における論理的にパーティション化されたデータ処理システムのプール内の１つ又は複数の論理パーティションを再割り当てする。場合によっては、例えば、再最適化を用いて、論理パーティションをより少ないプロセッサ・ノードに統合し、ハードウェア・リソースをパワーダウンする可能性を改善し、それにより電力消費を低減することができる。
【００１２】
この点で、論理的にパーティション化されたコンピューティング環境は、論理パーティション化（又は、仮想化）をサポートする１つ又は複数のデータ処理システムを含むと考えることができ、データ処理システムの少なくとも一部は、１つ又は複数の論理パーティションをホストすることが可能なハードウェア・リソースを表す複数のプロセッサ・ノードを組み込む。本発明と整合する論理的にパーティション化されたコンピューティング環境は、一般に、パーティション・モビリティ（パーティション・モビリティ以外の名前で呼ばれることもある）の概念をサポートし、これにより、実行時に、１つの論理的にパーティション化されたデータ処理システム上にホストされる論理パーティションを、サービスの中断が殆どない又は全くない状態で、異なる論理的にパーティション化されたデータ処理システムに移動することができる。
【００１３】
この点で、プロセッサ・ノードは、データ処理システム内の利用可能なハードウェア・リソースのいずれかのサブセットを含むと考えることができ、一般に、必ずしもではないが、１つ又は複数のプロセッサ、１つ又は複数のメモリ・デバイス、及び場合によっては、入力／出力（Ｉ／Ｏ）リソース、ネットワーク・リソース、又は論理パーティションに割り当てることができる他のタイプのリソースのような付加的なハードウェア・リソースを含む。幾つかの実施形態において、プロセッサ・ノードは、マルチチップ・モジュール、回路基板若しくはカード、ブック、ドロワー、ラック、スロット、シャーシ、又はさらにそれらの組み合わせとして実装することができる。幾つかの実施形態において、プロセッサ・ノードはまた、自己完結型（self-contained）コンピュータ・システムとすることもできる。電力消費を最適化するためにイベント駆動型再最適化を用いる実施形態において、プロセッサ・ノードはまた、電力消費を増大又は減少させるために、別個にパワーオン、パワーオフすること、又は他の方法で制御することができるハードウェア・リソースのグループ化に基づいて定めることもできる。従って、本明細書で説明される実施形態の観点から、プロセッサ・ノードは、他のプロセッサ・ノードとは別個に、パワーダウンし、完全にパワーオフすることができるプロセッサ及びメモリの少なくともコレクションを含む。
【００１４】
本発明の幾つかの実施形態において、電力消費は、論理的にパーティション化されたデータ処理システムのプール内に配置されたプロセッサ・ノードのコレクションを含む論理的にパーティション化されたコンピューティング環境において管理することができる。論理的にパーティション化されたコンピューティング環境における電力消費を最適化するために、論理的にパーティション化されたデータ処理システムのプールに複数の論理パーティションを割り当てること、複数の論理パーティションを割り当てた後、論理的にパーティション化されたデータ処理システムのプールに割り当てられた論理パーティションのリソース需要を変更するシステム・イベントについて、論理的にパーティション化されたデータベース処理システムのプールを自律的に監視すること、論理的にパーティション化されたデータ処理システムのプールの監視に基づいて、論理的にパーティション化されたデータ処理システムのプールに割り当てられた論理パーティションのリソース需要を変更する第１のシステム・イベントを検出すること、及び第１のシステム・イベントの検出に応答して、複数の論理パーティションの少なくともサブセットをプロセッサ・ノードのコレクションに動的に再割り当てし、かつ、論理的にパーティション化されたデータ処理システムのプール内に配置されたプロセッサ・ノードのコレクション内のプロセッサ・ノードの少なくとも１つの電力状態を動的に修正することによって、電力消費を管理することができる。
【００１５】
幾つかの実施形態において、プロセッサ・ノードのコレクションは、論理的にパーティション化されたデータ処理システムのプールの第１の論理的にパーティション化されたデータベース処理システム内に配置された第１のプロセッサ・ノードを含み、第１のシステム・イベントは、リソース需要を減少させ、論理的にパーティション化されたコンピューティング環境における電力消費を再最適化することは、プロセッサ・ノードのコレクション内の第１のプロセッサ・ノードの電力状態を低下させること、及び、第１のプロセッサ・ノードに以前に割り当てられた少なくとも１つの論理パーティションを、論理的にパーティション化されたデータ処理システムのプールの第１の論理的にパーティション化されたデータ処理システム又は異なる論理的にパーティション化されたデータ処理システム内の１つ又は複数の異なるプロセッサ・ノードに移動することを含む。幾つかの実施形態において、第１のシステム・イベントは、論理パーティション・パワーオフ・イベント、論理パーティション・ハイバーネーション（hibernation）・サスペンド・イベント、プールからのアクティブ論理パーティション・マイグレーション・イベント、論理パーティションからの動的プロセッサ容量除去イベント、又は論理パーティションからの動的メモリ容量除去イベントである。
【００１６】
幾つかの実施形態において、プロセッサ・ノードのコレクションは、論理的にパーティション化されたデータ処理システムのプールの第１の論理的にパーティション化されたデータ処理システム内に配置された第１のプロセッサ・ノードを含み、第１のシステム・イベントは、リソース需要を増大させ、論理的にパーティション化されたコンピューティング環境における電力消費を再最適化することは、第１のプロセッサ・ノードの電力状態を上昇させること、及びプロセッサ・ノードの電力レベルを上昇させることによって得られる容量を用いて、増大したリソース需要を満たすことを含む。幾つかの実施形態において、第１のシステム・イベントは、論理パーティション・パワーオン・イベント、論理パーティション・ハイバーネーション・レジューム・イベント、プールへのアクティブ論理パーティション・マイグレーション・イベント、論理パーティションへの動的プロセッサ容量付加イベント、又は論理パーティションへの動的メモリ容量付加イベントである。
【００１７】
幾つかの実施形態において、論理的にパーティション化されたデータ処理システムのプールの第１の論理的にパーティション化されたデータ処理システムは、プロセッサ・ノードのコレクションからの第１及び第２のプロセッサ・ノードを含み、プロセッサ・ノードのコレクション内のプロセッサ・ノードの少なくとも１つの電力状態を動的に修正することは、第２のプロセッサ・ノードの電力状態を維持しながら、第１のプロセッサ・ノードをパワーダウン又はパワーアップすることを含む。幾つかの実施形態において、論理的にパーティション化されたデータ処理システムのプールの第１の論理的にパーティション化されたデータ処理システムは、プロセッサ・ノードのコレクションからの複数のプロセッサ・ノードを含み、論理的にパーティション化されたデータ処理システムのプールの第２の論理的にパーティション化されたデータ処理システムは、プロセッサ・ノードのコレクションからの単一のプロセッサ・ノードを含み、プロセッサ・ノードのコレクション内のプロセッサ・ノードの少なくとも１つの電力状態を動的に修正することは、第１の論理的にパーティション化されたデータ処理システム内の複数のプロセッサ・ノードの各々の電力状態を維持しながら、第２の論理的にパーティション化されたデータ処理システムをパワーダウン又はパワーアップすることを含む。
【００１８】
以下の説明から明らかになるように、当業者には、種々の変形及び修正が明らかであろう。従って、本発明は、本明細書に記載される特定の実施に限定されるものではない。
【００１９】
ハードウェア及びソフトウェア環境
幾つかの図の全体を通して同様の部品が同様の番号を示す図面を参照すると、図１〜図２は、本発明と整合する、論理的にパーティション化されたコンピューティング環境内の主要なハードウェア及びソフトウェア・コンポーネント又は装置１０を示す。図１に示されるように、装置１０は、物理ハードウェアが複数のコンピュータ又はデータ処理システム１６内に配置された複数の物理プロセッサ・ノード１４に分散され、データ処理システム１６が１つ又は複数のプール１８内に配置されている、マルチノード・システムとして構成することができる。各プロセッサ・ノード１４は、１つ又は複数のプロセッサ２０、１つ又は複数のメモリ・デバイス２２、及び幾つかの実施形態においては、入力／出力（Ｉ／Ｏ）ハードウェア２４（例えば、１つ又は複数の入力／出力（Ｉ／Ｏ）アダプタ）及び／又はネットワーキング・ハードウェア２６のような付加的なハードウェアを含む。適切なネットワーキング機能（図示せず）を用いて、種々のプロセッサ・ノード１４及びシステム１６、並びに他の外部システム間のデータ通信を与えることもできる。
【００２０】
装置１０は、論理的にパーティション化された環境を実装するのに適した多数の異なるアーキテクチャのいずれかを用いて実装することができる。例えば、１つの実施形態において、装置１０は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なＰｏｗｅｒ  ７７０、７８０、又は７９５システムとして実装することができ、その構成は、本開示の利点を有する当業者には明らかであろう。しかしながら、本発明の他の実施形態において、論理的にパーティション化された環境を実行するのに適した他のアーキテクチャを使用することもでき、従って、本発明は、本明細書に開示される特定のアーキテクチャに限定されるものではないことが理解されるであろう。
【００２１】
各プロセッサ２０は、単一の又はマルチスレッド・プロセッサ及び／又は単一の又はマルチコア・プロセッサとして実装することができ、一方、各メモリ２２は、例えば、ＤＲＡＭベースの主ストレージなどの１つ又は複数のレベルのメモリ・デバイス、並びに、１つ又は複数のレベルのデータ、命令、及び／又は当技術分野において周知のように、個々のプロセッサ又は複数のプロセッサにサービスする特定のキャッシュを有するコンビネーション・キャッシュを含むと考えることができる。さらに、装置１０のメモリは、例えば、プロセッサ内のいずれかのキャッシュ・メモリなど、装置１０内のどこかに物理的に位置するメモリ・ストレージ、並びに、大容量ストレージ・デバイス上又は装置１０に結合された別のコンピュータ上に格納されるような、仮想メモリとして使用されるいずれかのストレージ容量を含むと考えることができる。
【００２２】
以下により詳細に説明されるように、装置１０は、１つ又は複数のカーネル、ハイパーバイザ、オペレーティング・システム等の制御の下で動作し、種々のコンピュータ・ソフトウェア・アプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、データ構造等を実行し、又は他の方法でこれらに依存する。さらに、種々のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール等はまた、例えば分散型又はクライアント−サーバ・コンピューティング環境において、ネットワークを介して装置１０に結合された別のコンピュータ内の１つ又は複数のプロセッサ上で実行することもでき、それにより、コンピュータ・プログラムの機能を実施するために必要とされる処理をネットワーク上で複数のコンピュータに割り当てることができる。
【００２３】
例えば、図２は、装置１０のシステム１６内に常駐できる種々のソフトウェア・コンポーネント２８〜４２を示す。ハイパーバイザ２８は、１つ又は複数の論理パーティション（ＬＰＡＲ）３０をホストすることができ、各論理パーティション３０に、ここでは１つ又は複数の仮想プロセッサ（ＶＰ）３２、仮想メモリ３４及び仮想入力／出力（Ｖ／Ｏ）リソース３６により表される、システム１６の物理ハードウェア・リソースの部分（例えば、プロセッサ、メモリ、及び／又は１つ又は複数のプロセッサ・ノード１４と関連したＩＯリソース）を割り当てることができる。次に、各論理パーティション３０は、順に、オペレーティング・システム３８、随意的にミドルウェア４０、並びに１つ又は複数のジョブ及び／又はアプリケーション４２をホストすることができる。各論理パーティション３０は、仮想マシン又は仮想コンピュータと呼ばれることもあり、別個の物理コンピュータをエミュレートする方法で動作することができ、従って、事実上、コンピュータによりホストされ得るあらゆるソフトウェア・コンポーネントをホストすることができることが理解されるであろう。
【００２４】
例えば大容量ストレージ・ハードウェア、プリンタ若しくはディスプレイのような外部入力／出力デバイス、並びに管理者により装置のハードウェア及び／又はソフトウェア構成を管理することができる、例えばハードウェア管理コンソール（ＨＭＣ）などの管理ハードウェア及び／又はソフトウェアなど、付加的なハードウェア及び／又はソフトウェア・コンポーネントが、装置１０内にあってもよい。論理的にパーティション化された環境は、無数の方法で実装することができ、無数のハードウェア及び／又はソフトウェア変形を含むことができ、従って、本明細書は、本明細書に開示される特定の実装に限定されるものではない。
【００２５】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができることが理解されるであろう。コンピュータ・プログラム製品は、１つ又は複数のプロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００２６】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストとして、以下のもの：即ち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピーディスク、パンチ・カード又は命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って伝送される電気信号などの、一時的な信号自体として解釈されるべきではない。
【００２７】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び／又は無線ネットワークなどのネットワークを介して、外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【００２８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語、又は、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述されるいずれかのソース・コード若しくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによってコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【００２９】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００３０】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。
【００３１】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００３２】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【００３３】
さらに、本明細書ではその１つ又は複数をまとめて「プログラム・コード」と呼ぶことができる、コンピュータ可読プログラム命令は、本明細書では、本発明の特定の実施形態においてこうした命令を実施するアプリケーションに基づいて識別することができる。しかしながら、以下のいずれの特定のプログラム名も、便宜上使用されるものに過ぎず、従って、本発明は、こうした命名により識別される及び／又は暗示されるいずれかの特定のアプリケーションのみに限定されるものではない。さらに、一般的に、コンピュータ・プログラムをルーチン、手順、方法、モジュール、オブジェクト等に編成することができる無数の方法、並びに、プログラム機能を、一般的なコンピュータ内に常駐する種々のソフトウェア層（例えば、オペレーティング・システム、ライブラリ、ＡＰＩのアプリケーション、アプレット）の間で割り当てることができる種々の方法を考えると、本発明は、本明細書で説明されるプログラム機能の特定の編成及び割り当てに限定されるものではないことを理解されたい。
【００３４】
当業者であれば、図１〜図２に示される例示的な環境は、本発明を限定することを意図しないことを認識するであろう。実際に、当業者であれば、本発明の範囲から逸脱することなく、他の代替的なハードウェア及び／又はソフトウェア環境を使用できることを認識するであろう。
【００３５】
電力管理のための論理的にパーティション化された環境のイベント駆動型再最適化
エネルギー・スター・コンプライアンス、並びに「グリーン」コンピュータ・システム及びデータ・データ・センタの概念の出現からも明らかなように、データ・センタにおける電力管理は、近年、ますます重要になってきている。電力コスト及び環境問題は、特に、大規模データ・センタを有する企業にとって重要な問題である。従って、エネルギー効率の良いシステム及び解決法を構築するコンピュータ及びソフトウェア製造業者は、市場において明白な利点を有し得る。
【００３６】
電力管理技術は、従来、ワークロード及び環境要因を監視し、電力管理に関連した何らかの利点を達成するような方法で、システム又はシステムのプール内の計算リソースの間でワークロードを移動することを含む。この利点は、システム又はシステム内のコンポーネントをパワーダウンする（低電力状態にする又は完全にシャットオフする）こと、又はデータ・センタ内のホット・スポットを回避すること、又は高電力コスト領域若しくは時間を回避することを通じて、得ることができる。シフトされるワークロードは通常、プロセッサ及びメモリ・フォールディングを容易にするためにプロセッサ・コア間でワークロードを移動するときのディスパッチ・ユニット、又はデータ・センタ内のシステム間でワークロードを移動するときにアプリケーション／ジョブのいずれかである。
【００３７】
本発明と整合する実施形態は、パーティションの統合（consolidation）を通じて電力を節約し、使用されていないプール内のシステム又はプール内のシステムのコンポーネントをオフにする可能性を最適化するような方法で、単一のモジュラー・システム又はシステムのプールにわたって論理パーティションを動的に配置するためのフレームワークを利用することによって、例えばデータ・センタ内のさらなる電力管理を行う。処理容量を解放し、それにより多くのハードウェア・リソースのパワーダウンを潜在的に可能にするシステム・イベント、又は処理容量を増大させて、それによりハードウェア・リソースのパワーオンを潜在的に要求するシステム・イベントのいずれかに基づいて、論理パーティションを動的に移動させることができる。
【００３８】
示される実施形態において、システム・イベントの動的及び自律的監視を用いて、システムのプール内で実行されている論理パーティションの有使用資格処理容量を増大又は減少させるシステム・イベントを検出することができる。こうしたシステム・イベントに応答して、システムのプールにおける統合を最適化し、ハードウェア・リソースをパワーダウンする可能性を最適化するように、論理パーティションの配置を調整することができる。幾つかの実施形態において、例えば、システムのプール内で実行されている論理パーティションの有使用資格処理容量及び／又はメモリ容量は、論理パーティションのリソース需要と呼ぶことができる。従って、有使用資格容量を増大させるシステム・イベントは、プール内で実行されている論理パーティションのリソース需要を増大させると考えることができ、一方、有使用資格容量を減少させるシステム・イベントは、プール内で実行されている論理パーティションのリソース需要を減少させると考えることができる。
【００３９】
ディスパッチ・レベルのワークロード・シフトに優るこうした手法の１つの利点は、電力節約の可能性が通常大きくなり得るということである。プロセッサ・フォールディングは、個々のプロセッサ・コア及びチップ、及び場合によって関連したメモリを低電力状態にすることを可能にし、そのことは、場合によっては、より低いシステム・ファン速度ももたらし得る。しかしながら、プロセッサ・フォールディング手法のパワーオン待ち時間要件は、一般に、リソースが完全パワーオフするのを防止する。しかしながら、本明細書で説明される論理パーティション・ベースの手法は、処理フォールディング、並びにプール内のシステムの完全なパワーオフ、又はプロセッサ・ブック又はプロセッサ・ドロワーのような、別個に電力供給可能な（powerable）プロセッサ及びメモリ・ドメイン（すなわち、プロセッサ・ノード）を組み込むシステムの部分的なパワーダウンを可能にする。本明細書で説明されるような論理パーティション・ベースの手法はまた、有使用資格容量をあきらめず、従って、一般に、パワーオン待ち時間要件はあまり厳格ではなく、一般に、さらなるディープ・パワーダウンが可能である。
【００４０】
アプリケーション／ジョブ・レベルのワークロード・シフトに優るこうした手法の１つの利点は、この手法が、一般に、アプリケーション／ジョブ・レベルのシフトが一般に要求するクラスター化及び高可用性（ＨＡ）構成によって引き起こされるＯＳ及びアプリケーションの複雑さを回避することである。本明細書で説明される手法は、ハードウェア及び／又はソフトウェア保守のような他の目的のために既に使用できる論理パーティション・モビリティ（ＬＰＭ）能力を利用することができる。従って、このような論理パーティション・モビリティの電力管理への拡張は、幾つかの場合において、クラス化又はＨＡ能力における付加的な投資を必要としない。
【００４１】
本明細書で説明される手法はまた、その各々を静止状態から別個にパワーオフ及びオンすることができる、マルチノードを組み込む上述のＰｏｗｅｒ  ７７０、７８０及び７９５システム（例えば、Ｐｏｗｅｒ  ７９５システムのプロセッサ・ブック、Ｐｏｗｅｒ  ７７０及びＰｏｗｅｒ  ７８０システムのＣＥＣドロワー）のようなモジュラー方式の企業クラス・システムにおける利点も有し得る。ノード・レベルの電力管理は、一般に、それらがサポートできる論理パーティションが多数であり、システム上の全てのパーティションを他のシステムに再配置し、システムをパワーオフできるように、十分な未使用の容量をプール内の他の場所で見つける困難さのために、企業クラスのシステムにとって重要である。従って、本明細書で説明されるシステム及び容量モデリング及び論理パーティション配置アルゴリズムは、システム全体の、並びにこうしたモジュラー方式システムで利用されるような個々のノードのパワーオン／オフをサポートすることができるのに対して、他の手法は、一般に、システム・レベルのパワーオフ／オンに制限される。
【００４２】
本発明の１つの実施形態においては、例えば、イベント駆動型再最適化をコンピュータ・システムのプール上で実行することができ、それらの間で、論理パーティションを移動させて、プール内のコンピュータ・システムの１つ又は複数における十分な容量を解放して、マルチノード・コンピュータ・システムにおける１つ又は複数のノード、又はコンピュータ・システム全体を、例えば低電力状態に移行するなどパワーダウンすることを可能にすることができる。本実施形態のために、コンピュータ・システムのセット又はプールは、電力管理プールと呼ばれる。
【００４３】
同じく本実施形態において、電力管理プール内のコンピュータ・システムは、個別にパワーアップ及びパワーダウンすることができる複数のプロセッサ・ノードを有する企業クラス・システム（例えば、上述のＰｏｗｅｒ  ７７０、７８０及び７９５システム）及び複数の別個に電力供給可能なプロセッサ・ノードを有さないローエンド・システムのいずれか又は両方として実装することができる。
【００４４】
一例として、図１は、複数のプール１８を示す、ここで各プール１８は、幾つかの点で、各々が１つ又は複数のプロセッサ・ノード１４を含む１つ又は複数のコンピュータ・システム１６を含む電力管理プールと考えることができる。本実施形態のために、各プロセッサ・ノード１４は、別個に電力供給可能であるが、他の実施形態においては、本発明はそのように限定されない。
【００４５】
イベント駆動型再最適化を実施するために、幾つかの実施形態において、例えばシステム管理アプライアンス４６上などで実行されているオーケストレータ（orchestrator）コンポーネント４４を用いることができる。１つの実施形態において、例えば、オーケストレータ・コンポーネントは、パーティション配置ユーティリティと共に働くエネルギー管理ユーティリティを含むことができる。１つの適切な実装は、例えば、Ａｃｔｉｖｅ  Ｅｎｅｒｇｙ  Ｍａｎａｇｅｒエネルギー管理ユーティリティ及びＶＭＣｏｎｔｒｏｌパーティション配置ユーティリティ（全て、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能である）を実行しているＳｙｓｔｅｍ  Ｄｉｒｅｃｔｏｒシステム管理アプライアンスを用いて、オーケストレータ・コンポーネントの機能を実施する。システム管理アプライアンスは、本明細書で述べられる機能を実装するプログラム・コードを実行するための、１つ又は複数のプロセッサ、メモリ及び他のコンピュータ・コンポーネントを含むことができ、幾つかの実施形態においては、本明細書で説明されるイベント駆動型再最適化と共に、システム管理アプライアンスによって、データ処理システム１０内にある付加的なプログラム・コード及び／又はハードウェア・コンポーネントにアクセスできることが理解されるであろう。さらに、幾つかの実施形態において、オーケストレータ・コンポーネントの機能は、例えば、論理パーティション内、ハイパーバイザ内、ミドルウェア内、オペレーティング・システム内、システム・ファームウェア内、ハードウェア管理コンソール内など、装置１０の１つ又は複数のシステム１６内に完全に常駐してもよい。従って、本発明は、主として、示される実施形態において以下に説明されるようなシステム管理アプライアンス内でのイベント駆動型再最適化の特定の実施に限定されないことが理解されるであろう。
【００４６】
示される実施形態におけるシステム管理アプライアンス４６は、論理パーティションの有使用資格容量を変更することができる、電力管理プール１８内のシステム１６と関連したシステム・イベントについて自律的に監視する。この点で、自律的監視は、（幾つかの実施形態において、監視の可能化（enabling）及び不能化（disabling）をサポートできるが）管理者の指示外の管理と考えることができる。システム管理アプライアンス４６はまた、論理パーティションを電力が最適化される方法で配置し、１つ又は複数のプロセッサ・ノード又はシステム全体をパワーダウンするのに十分な１つ又は複数のシステム１６の利用を減らすように、論理パーティションを１つのシステム１６から１つ又は複数の他のシステム１６に動的にシフトする。プロセッサ・ノードがパワーダウンされると、ホスト・システム１６上のハイパーバイザ２８は、そのプロセッサ・ノード上で実行されているあらゆる論理パーティション３０を、同じシステム１６上の他のプロセッサ・ノード１４の利用可能な容量に再配置することができる。さらに、システム管理アプライアンス４６は、容量を再びパワーオンする必要があるイベントについて監視し、必要に応じて、そうした容量をパワーオンする。他の実施形態においては、システム管理アプライアンスは、プロセッサ・ノード上への論理パーティションの配置を直接管理することができる。
【００４７】
次に、図３は、本発明の１つの実施形態で用いられる電力管理プール５２、システム５４、ノード５６及び論理パーティション（ＬＰＡＲ）５８の１つの例示的なデータ・モデル５０を示し、プール５２が１つ又は複数のシステム５４を含み、各システム５４は１つ又は複数のプロセッサ・ノード５６を有し、かつ、ある特定の時にこれに割り当てられる１つ又は複数のＬＰＡＲ５８を有することができることを示す。モデル５０は、例えば、本発明と整合する方法でイベント駆動型再最適化を実施するために、オーケストレータ及び／又はシステム管理アプライアンスにより用いることができる。
【００４８】
以下の表Ｉ〜ＩＶは、モデル５０内で定めることができるプール５２、システム５４、ノード５６及びＬＰＡＲ５８の各々についての例示的な属性を提供する。
【表１】
0006679146.tif 000002
【表２】
0006679146.tif 000003
【表３】
0006679146.tif 000004
【表４】
0006679146.tif 000005
【００４９】
示される実施形態において、電力管理プール内の論理パーティション及び電力消費の再最適化を開始するために、以下のシステム・イベントを自律的に監視し、それをシステム管理アプリケーションからオーケストレータ・コンポーネントに知らせることができる。：
−論理パーティション・パワーオフ（＊）
−論理パーティション・パワーオン
−論理パーティション・ハイバネーション・サスペンド（＊）
−論理パーティション・ハイバネーション・レジューム
−プールからのアクティブ論理パーティション・マイグレーション（＊）
−プールへのアクティブ論理パーティション・マイグレーション
−動的プロセッサ除去（ＤＬＰＡＲ）（＊）
−動的プロセッサ付加（ＤＬＰＡＲ）
−動的メモリ除去（ＤＬＰＡＲ）（＊）
−動的メモリ付加（ＤＬＰＡＲ）
【００５０】
上記の（＊）で示されるイベントは、一般に、パーティションの有使用資格容量減少に起因して、プロセッサ及び／又はメモリ容量を解放させ、パーティションの統合及びプロセッサ・ノード及び／又はシステムのパワーダウン（非アクティブ化）を潜在的に可能にする、有使用資格容量減少システム・イベントと呼ぶことができる。示される実施形態において、これらの有使用資格容量減少システム・イベントは、それが発生した後に、オーケストレータ・コンポーネントに知らせることができる。動的プロセッサ／メモリ除去イベントは、実行されている論理パーティションからプロセッサ／メモリ容量を動的に除去することが理解されるであろう。
【００５１】
上記の（＊）で示されていないイベントは、一般に、パーティションの有使用資格容量増大に起因して、付加的なプロセッサ及び／又はメモリ容量を消費させる、有使用資格容量増大システム・イベントと呼ぶことができる。プロセッサ・ノード及び／又はシステムが電力節約の措置としてパワーダウンされる場合、付加的なプロセッサ及び／又はメモリ容量の要件を満たすために、それらの一部又は全てを再びパワーオンする（アクティブ化）ことが望ましい又は必要な場合がある。一般に、示される実施形態において、これらの有使用資格容量増大システム・イベントは、それが発生する前にオーケストレータ・コンポーネントに知らせることができる。動的プロセッサ／メモリ付加イベントは、プロセッサ／メモリ容量を実行中の論理パーティションに動的に付加することが理解されるであろう。
【００５２】
本明細書で検討される実施形態において、有使用資格容量減少システム・イベント又は有使用資格容量増大システム・イベントに応答して、少なくとも１つのノード及び／又はシステムの電力状態を変更することができる。電力状態を変更することは、一般に、電力状態を上昇又は低下させることを含むことができる。電力状態の上昇は、例えば、ノード及び／又はシステムをオフ状態からパワーオンすること、低電力モードから高電力モードに切り替えること、又は、一般にノード又はシステムの処理容量の増大と同時に発生する、ノード又はシステムの電力消費を増大させる他のあらゆる変更を含むことができる。反対に、電力状態の低下は、例えば、ノード及び／又はシステムをオン状態からパワーオフすること、高電力モードから低電力モードに切り替えること、又は一般にノード又はシステムの処理容量の減少と同時に発生するノード又はシステムの電力消費を減少させる他のあらゆる変更を含むことができる。
【００５３】
さらに、有使用資格容量減少又は有使用資格容量増大システム・イベントに応答して、かつ、一般的にノード又はシステムの電力状態の変更と関連して、１つ又は複数の論理パーティションをノード及び／又はシステム間で移動させ、電力管理プール内のノード及び／又はシステム間での論理パーティションの割り当てを効率的に再最適化する（例えば、電力管理の観点から）ことができる。システム・イベントに応答したプール内の論理パーティション割り当てのいずれの再最適化も、論理パーティション割り当ての従来の最適化の再最適化と考えることができることが理解されるであろう。幾つかの実施形態において、本明細書で検討される方法での論理パーティション割り当ての最適化は、手動で又は自動的に実行され得るが、具体的には、例えば最初のシステム・セットアップ後又は管理者により有用と考えられる別の時に、上述のシステム・イベントの１つに応答して実行され得ることも理解されるであろう。
【００５４】
図４〜図５は、有使用資格容量減少システム・イベントが伝えられたとき、及び、上述のように、概ねイベントと関連した動作（例えば、パーティション・パワーオフ、パーティション・ハイバネーション・サスペンド、プールからのアクティブ・パーティション・マイグレーション、動的プロセッサ除去又は動的メモリ除去動作など）が実行された後、オーケストレータ・コンポーネント内で行うことができる処理を示す例示的な再最適化ルーチン１００を示す。幾つかの実施形態において、ルーチン１００を管理者により手動で開始して、パーティション配置を最適化し、潜在的にはプロセッサ・ノード及び／又はシステムをパワーダウンすることができる。
【００５５】
ルーチン１００は、電力管理プールについての上述のモデルを入力として受け取り、ブロック１０２において、ｔａｒｇｅｔＦｏｕｎｄフラグを真に設定することから開始することができる。ブロック１０４は、ｔａｒｇｅｔＦｏｕｎｄが偽になるまで実行するＷＨＩＬＥループを開始する。ブロック１０４は、制御をブロック１０６に渡し、例えば、プール内の各システムについて、そのシステムがパワーオンされ、そのシステムについての有使用資格プロセッサ容量及びメモリ容量（ｅｎｔｉｔｌｅｄＰｒｏｃ及びｅｎｔｉｔｌｅｄＭｅｍ）の両方とも０であるかどうかを判断することによって、プール内のいずれのシステムも、パワーオフ基準を満たすかどうかを判断する。両方とも０である場合、システムをパワーオフすることができる。
【００５６】
次に、ブロック１０８において、ｔａｒｇｅｔＦｏｕｎｄが偽に設定され、ブロック１１０は、プール内の各パワーオン・システムを処理するためのＦＯＲループを開始する（幾つかの実施形態においては、パワーオフ・システムはスキップされ得る）。各々のこうしたシステムにおいて、ブロック１１２は、ＬＰＡＲアレイ、システム・アレイ、ターゲット・ノード変数及びターゲット・システム変数の各々をヌルに初期化し、ブロック１１４は、ＦＯＲループを開始して、システム内の各パワーオン・ノードを処理する（幾つかの実施形態においては、パワーオフ・ノードはスキップされ得る）。
【００５７】
図５を参照すると、現在のシステム内の各々のパワーオンされたノードについて、ブロック１１６は、現在のノードをパワーダウンするために、有使用資格プロセッサ及びメモリ容量をどれくらい減少させる必要があるかを判断し、現在のノードのパワーダウンを可能にするための、現在のシステムからマイグレートすべきパーティション（ＬＰＡＲ）のセットを判断する。１つの実施形態において、例えば、現在のシステム（Ｓ）上の現在のノード（Ｎ）をパワーダウンするために減少させる必要がある有使用資格プロセッサ及びメモリ容量は、次のように計算することができる。：
【数１】
0006679146.tif 000006
【００５８】
さらに、幾つかの実施形態において、計算結果が０を下回る場合、これらの値の各々を０に設定することができる。
【００５９】
１つの実施形態において、現在のシステムからマイグレートすべきパーティションのセットを判断するために、検索を行って、その有使用資格容量の合計が要求される減少に最も近いが依然としてそれを上回るか又はそれに等しいパーティションのセットを決定することができる。こうした決定の入力は、移動すべきパーティションのセットが計算されるシステム、要求される有使用資格プロセッサ容量の減少、及び要求される有使用資格メモリ容量の減少を含むことができ、出力は、現在のシステムからマイグレートすべき１つ又は複数の論理パーティションのアレイである。
【００６０】
次に、ブロック１１８は、いずれかの適切な論理パーティションが見つかったかどうかを判断し、見つかった場合には、ブロック１２０は、論理パーティションをマイグレートすべき、宛先システムのセットを判断する。１つの実施形態において、例えば、判断は、ＬＰＡＲアレイを入力として受け取り、マイグレートする論理パーティションを受け取るための十分な余分の有使用資格容量を有する、プール内の他のシステムについて検索し、次に、宛先システムのセットとして結果を出力することができる。１つの実施形態において、ＬＰＡＲアレイ内の各論理パーティションについて、１つの宛先システムを選択することができるが、幾つかの実施形態においては、複数の論理パーティションを特定のシステムに移動することができる。潜在的な宛先システムが十分な容量を有し得るかどうかの判断は、システムについてのｉｎｓｔａｌｌｅｄＰｒｏｃ、ｉｎｓｔａｌｌｅｄＭｅｍ、ａｃｔｉｖｅＰｒｏｃ、ａｃｔｉｖｅＭｅｍ、ｅｎｔｉｔｌｅｄＰｒｏｃ、ｅｎｔｉｔｌｅｄＭｅｍ、ｕｔｉｌｉｚａｔｉｏｎＬｉｍｉｔＰｒｏｃ、及び／又はｕｔｉｌｉｚａｔｉｏｎＬｉｍｉｔＭｅｍ属性に基づくことができ、例えば、十分な余分のインストール容量を有するシステムに優る十分な余分のアクティブ容量を有するシステムの方を好み、システムの利用制限セットに留意する。
【００６１】
次に、ブロック１２２は、宛先システムのいずれかの適切なセットが見つかったかどうかを判断し、見つかった場合には、制御をブロック１２４に渡し、現在のノードが、ターゲット・ノード変数内に格納されるあらゆる以前に識別されたノードに比べて、パワーダウンすべき「より良い」選択であるかどうかを判断する。チェックを行って、他のノードがターゲット・ノード変数内にまだ格納されていないかどうかを判断することもでき、これにより、ターゲット・ノード変数により現在のノードが識別される。この点で、１つの実施形態において、ターゲット・ノードの代わりに現在のノードをパワーオフすることにより、潜在的に大きい電力節約を得ることができるので、現在のノードが、ターゲット・ノード変数により識別されるノードより高いパワー要件（ｐｏｗｅｒＲａｔｉｎｇ）を有する場合、より良い選択が示され得る。他の実施形態においては、他の基準を用いて、例えば、予想されるパワーダウン時間又は要因の組み合わせに基づいて、１つのノードが別のものに比べてより良い選択であるかどうかを判断することができる。
【００６２】
現在のノードがより良い選択であると考えられる場合、ブロック１２４は、制御をブロック１２６に渡し、ターゲット・ノード変数を、現在のノードを識別するように設定し、ターゲット・システム変数を、現在のシステムを識別するように設定し、ＬＰＡＲアレイをブロック１１６において判断されたＬＰＡＲのセットに設定し、システム・アレイをブロック１２０において識別されたシステムのセットに設定し、ｔａｒｇｅｔＦｏｕｎｄを真に設定して、パワーダウンすべき適切なノードが見つかったことを示す。ブロック１２６の完了時、又はブロック１１８、１２２、又は１２４のいずれかにおける否定の判断に応答して、制御は、ブロック１１４（図４）に戻り、引き続き現在のシステム内のノードを繰り返す。ひとたび現在のシステム内の全てのノードが処理されると、ブロック１１４は、制御をブロック１１０に戻し、引き続きプール内の他のシステムを繰り返す。
【００６３】
ひとたび全てのシステムが処理されると、ブロック１１０は、制御をブロック１２８に渡し、ｔａｒｇｅｔＦｏｕｎｄが真に設定されたかどうかを判断する。真に設定された場合、制御はブロック１３０に渡り、ＬＰＡＲアレイ内の論理パーティションをシステム・アレイ内のシステムにマイグレートさせ、ターゲット・ノード及びターゲット・ノード変数により識別されたノードをパワーオフする。ブロック１３０の完了時、又はブロック１２８において、ｔａｒｇｅｔＦｏｕｎｄが偽であると判断された場合、制御はブロック１０４に戻り、最後の繰り返しによりパワーダウンすべき適切ターゲット・ノードが識別された（ｔａｒｇｅｔＦｏｕｎｄが真である）場合、別の繰り返しを実行する。ひとたび更なるパワーダウンの機会が識別されると、ブロック１０４はルーチン１００を終了する。
【００６４】
次に、図６〜図９は、有使用資格容量増大システム・イベントが伝えられたとき、オーケストレータ・コンポーネントにおいて行い得る処理を示す例示的な再最適化ルーチン１５０を示す。幾つかの実施形態において、ルーチン１５０は、管理者により手動で開始することもできる。
【００６５】
ルーチン１５０は、一般に、イベントと関連した動作（例えば、パーティション・パワーオン、パーティション・ハイバネーション・レジューム、プールへのアクティブ・パーティション・マイグレーション、動的プロセッサ付加又は動的メモリ付加動作など）が行われる前に呼び出すことができる。ルーチン１５０は、電力管理プールのモデル、並びに増大イベントに対応するのに必要なプロセッサ及びメモリ容量を入力として受け取ることができる。幾つかの実施形態において、必要なプロセッサ及びメモリ容量ではなく、パワーオン／レジューム／マイグレートすべきパーティションの識別を与えることができ、モデルから、必要とされるプロセッサ及びメモリ容量を得ることができる。
【００６６】
ルーチン１５０は、ブロック１５２において、ターゲット・システム変数をヌルに設定することから始まる。この変数は、要求される容量を用いることができるシステムを示すために、ルーチンの結果として戻される。次に、ブロック１５４は、ＦＯＲループを開始し、既にパワーオンしているリソースから、パーティションを移動することなく、要求される容量を満たすことができるかどうかを判断する。プール内の各パワーオン・システムについて、ターゲット・システム変数がヌルの間、ブロック１５６は、要求されるアクティブ・プロセッサ及びメモリ容量を判断する。例えば、１つの実施形態において、要求される容量は、現在のシステム（Ｓ）について、以下のように求めることができる。：
【数２】
0006679146.tif 000007
【００６７】
次にブロック１５８は、現在のシステム（Ｓ）が十分にアクティブ・プロセッサ及びメモリ容量を有するかどうか（例えば、Ｓ．ａｃｔｉｖｅＰｒｏｃ≧ｒｅｑｕｉｒｅｄＡｃｔｉｖｅＰｒｏｃ及びＳ．ａｃｔｉｖｅＭｅｍ≧ｒｅｑｕｉｒｅｄＡｃｔｉｖｅＭｅｍ）を判断する。有する場合、ターゲット・システムは現在のシステムに設定され、制御はブロック１５４に戻り、これにより、ターゲット・システムはもはやヌルではないので、ブロック１５４は制御をブロック１６２に渡す。同様にブロック１５８が、現在のシステムは十分なアクティブ容量を有していないと判断した場合、ブロック１５８は制御をブロック１５４に渡し、プール内の付加的なパワーオン・システムを処理する。
【００６８】
次にブロック１６２は、ターゲット・システム変数が依然としてヌルかどうか（従って、要求される容量にまだ対応していないこと）を判断し、ヌルである場合、制御をブロック１６４に渡し、別のＦＯＲループを開始して、プール内の各々のパワーオン・システムを処理し、１つ又は複数のパーティションを移動することによって、既にパワーオンしているリソースから要求される容量に対応できるかどうかを判断する。各々のパワーオン・システムについて、ブロック１６４は、制御をブロック１６６（図７）に渡し、ＬＰＡＲ及びシステム・アレイを最初にヌルに設定する。
【００６９】
次にブロック１６８は、要求される容量に対応するために、現在のシステムにおいて、どれだけの有使用資格プロセッサ及びメモリ容量を減少させる必要があるかを判断し、要求される容量の減少を達成するために、現在のシステムからマイグレートすべきパーティションのセットを判定する。次に、判定したパーティションのセットをＬＰＡＲアレイ内に格納する。１つの実施形態において、例えば、減少させる必要がある有使用資格プロセッサ及びメモリ容量は、ｒｅｑｕｅｓｔｅｄＰｒｏｃＣａｐａｃｉｔｙ及びｒｅｑｕｅｓｔｅｄＭｅｍＣａｐａｃｉｔｙを用いて、以下のように計算することができる。：
【数３】
0006679146.tif 000008
【００７０】
１つの実施形態において、検索を行って、現在のシステムからマイグレートすべきパーティションのセットを判定し、その有使用資格容量の合計が要求される容量の減少に最も近く、しかし依然としてそれより大きいか又はそれに等しいパーティションのセットを判定することができる。こうした判定の入力は、移動すべきパーティションのセットが計算されるシステム、要求される有使用資格プロセッサ容量減少、及び要求される有使用資格メモリ容量減少を含むことができ、出力は、現在のシステムからマイグレートすべき１つ又は複数の論理パーティションのアレイである。
【００７１】
次に、ブロック１７０は、いずれかの適切な論理パーティションが見つかったかどうか（すなわち、ＬＰＡＲアレイがヌルではないこと）を判断し、見つかった場合には、ブロック１７２は、ＬＰＡＲアレイ内の論理パーティションをマイグレートすべき宛先システムのセットを判定し、その結果をシステム・アレイに格納する。１つの実施形態において、例えば、判定は、図５のブロック１２０について上述したものと同様の方法で行うことができる。
【００７２】
次に、ブロック１７４は、宛先システムのいずれかの適切なセットが見つかったかどうか（すなわち、ＬＰＡＲアレイがヌルではないこと）を判断し、見つかった場合には、制御をブロック１７６に渡し、ＬＰＡＲアレイ内のパーティションをシステム・アレイ内のシステムにマイグレートし、ターゲット・システムを現在のシステムに設定する。
【００７３】
ブロック１７６の完了時、又はブロック１７０若しくは１７４のいずれかにおける否定の判断に応答して、制御はブロック１６４（図４）に戻り、引き続きプール内の他のシステムを繰り返す。ひとたび全てのシステムが処理されると、ブロック１６４は、制御をブロック１７８に渡し、ターゲット・システム変数が依然としてヌルかどうか（従って、要求される容量にまだ対応していないこと）を判断する。
【００７４】
依然としてヌルである場合、制御はブロック１８０に渡り、プール内のパワーオン・システム上のノードをパワーオンすることにより、要求される容量に対応できるかどうかを確認しようと試みる。具体的には、ブロック１８０は、最適ノード・アレイ及び最適システム変数をヌルに設定する。最適ノード・アレイは、要求される容量に対応するためにパワーオンするのに適していると判断された１つ又は複数のノードを格納する。最適システム変数は、最適ノード・アレイ内のノードが常駐するシステムを示す。
【００７５】
次に、ブロック１８２はＦＯＲループを開始し、プール内の各パワーオン・システムを処理する。各々のそうしたシステムについて、ブロック１８２は、制御をブロック１８４（図８）に渡し、要求されるアクティブ・プロセッサ及びメモリ容量の増大を判断し、要求される増大に対応するために、パワーオフ・ノードのセットをパワーオンするかどうかを判断する。１つの実施形態において、例えば、以下の値を計算して、システム（Ｓ）についての要求されるアクティブ・プロセッサ及びメモリ容量の増大を求めることができる。：
【数４】
0006679146.tif 000009
【００７６】
パワーオンすべきパワーオフ・ノードの判断は、ノードの電力定格を考慮に入れることができる、選択されたセットは、全ての有資格（eligible）セットの間で最小量の電力を使用する。
【００７７】
次に、ブロック１８６は、パワーオンすべきパワーオフ・ノードのセットが見つかったかどうかを判断し、見つかった場合には、そのセットが、現在の最適ノード・アレイ内に格納されたセット（あるとすれば）に比べて「より良い」かどうかを判断する。例えば、判断されたセット及び最適ノード・アレイの総電力定格の間で比較を行うことができ、判断されたセットがより低い総電力定格を有する場合、制御はブロック１８８に渡り、最適ノード・アレイを判断されたセットに設定し、最適システムをノードの判断されたセットが常駐する現在のシステムに設定する。
【００７８】
ブロック１８８の完了時、又はブロック１８６が、最適ノード・アレイが依然として最適であると判断した場合、制御はブロック１８２（図６）に戻り、プール内の残りのパワーオン・システムを処理する。ひとたび全てのシステムが処理されると、ブロック１８２は次に、制御をブロック１９０（図９）に渡し、最適ノードのセットが見つかったかどうか（すなわち、最適ノード・アレイがヌルではないこと）を判断する。見つかった場合、制御はブロック１９２に渡り、最適ノード・アレイ内の各ノードをパワーオンし、ターゲット・システムを判断された最適システムに設定する。
【００７９】
ブロック１９２の完了時、又はブロック１９０において最適なノードが見つからなかった場合、制御はブロック１９４に渡り、ターゲット・システム変数が依然としてヌルであるかどうか（従って、要求される容量にまだ対応していないこと）を再び判断する。依然としてヌルである場合、次に制御はブロック１９６に移り、システム全体をパワーオンすることにより、要求される容量に対応できるかどうかを判断するためのプロセスを開始する。具体的には、ブロック１９６は、一時的ターゲット・システム変数をヌルに設定し、ブロック１９８は、ＦＯＲループを開始して、プール内の各々のパワーオフ・システムを処理する。各々のこうしたシステムについて、ブロック２００は、例えば、要求される容量を、システムの利用制限（例えば、ｕｔｉｌｉｚａｔｉｏｎＬｉｍｉｔＰｒｏｃ及びｕｔｉｌｉｚａｔｉｏｎＬｉｍｉｔＭｅｍ）で割ることにより、システムの要求されるアクティブ容量を求める。
【００８０】
次に、ブロック２０２は、システムのインストール済み容量（ｉｎｓｔａｌｌｅｄＰｒｏｃ及びｉｎｓｔａｌｌｅｄＭｅｍ）が要求されるアクティブ容量を満たすかどうか（例えば、それより大きい又はそれに等しいこと）を判断する。満たす場合、ブロック２０２はまた、現在のシステムのインストールされた容量が、一時的ターゲット・システム変数により識別されるシステムのもの（もしあれば）を下回るかどうかも判断する。下回る場合、制御はブロック２０４に渡り、一時的ターゲット・システム変数を現在のシステムに設定する。ブロック２０４の完了時、又はブロック２０２が、現在のシステムが適正であると判断しなかった場合、制御はブロック１９８に戻り、プール内のあらゆる残りのパワーオフ・システムを処理する。
【００８１】
ひとたび全てのパワーオフ・システムが処理されると、ブロック１９８は、制御をブロック２０６に渡し、一時的ターゲット・システム変数がヌルでないかどうか（すなわち、パワーオンするのに適したシステムを識別すること）を判断する。ヌルでない場合、制御はブロック２０８に渡り、一時的ターゲット・システム変数により識別されるシステムをパワーオンし、ターゲット・システム変数をパワーオン・システムに設定する。次に、制御はブロック２１０に渡り、ターゲット・システム変数を戻し、ルーチンを終了する。
【００８２】
ブロック２０６が、一時的ターゲット・システム変数がヌルであると判断した場合、ブロック２０８が迂回され、制御はブロック２１０に進み、ルーチンを終了する。さらに、ターゲット・システム変数が非ヌル値に設定され、それにより要求される容量に対応したことが示されるや否や、ブロック１６２、１７８及び１９４の各々は、制御をブロック２１０に有効に渡すことも理解されるであろう。
【００８３】
本発明と整合する例証される実施形態に対して種々の変更をなすことができる。従って、本発明は、以下の添付の特許請求の範囲内にある。
【符号の説明】
【００８４】
１０：論理的にパーティション化されたコンピューティング環境、装置
１４：プロセッサ・ノード
１６：データ処理システム
１８、５２：プール
２０：プロセッサ
２２：メモリ
２４：入力／出力（Ｉ／Ｏ）ハードウェア
２６：ネットワーキング
２８：ハイパーバイザ
３０、５８：論理パーティション（ＬＰＡＲ）
３８：オペレーティング・システム
４０：ミドルウェア
４２：ジョブ／アプリケーション
４４：オーケストレータ・コンポーネント
４６：システム管理アプライアンス
５０：データ・モデル
５２：電力管理プール
５４：システム
５６：ノード
１００、１５０：ルーチン
【図１】
0006679146.tif 000010
【図２】
0006679146.tif 000011
【図３】
0006679146.tif 000012
【図４】
0006679146.tif 000013
【図５】
0006679146.tif 000014
【図６】
0006679146.tif 000015
【図７】
0006679146.tif 000016
【図８】
0006679146.tif 000017
【図９】
0006679146.tif 000018