(57)【要約】  本発明の実施例は、ノード間のメモリアクセス及びノード間のキャッシュアクセスを回避し、ノード間の高速帯域幅を保持し、システム性能を改善するために、プロセッサの分野に関するリソースマイグレーションのための方法及び装置を開示する。本発明は、ノードが除去された場合、ノードのプロセスを取得し、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードを判定し、ノードのプロセスとプロセスに対応するメモリとを宛先ノードにマイグレーションすることを含む。本発明の実施例は、主にリソースマイグレーション手順に適用される。
2014522033.tif 000002
【特許請求の範囲】
【請求項１】
リソースマイグレーションのための方法であって、
ノードが除去された場合、プロセスと前記プロセスに対応するメモリとの間のマッピング及び前記プロセスのアフィニティを有する前記ノードのプロセス情報を取得するステップと、
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピング及び前記プロセスの前記アフィニティに従って、前記プロセスと前記プロセスに対応する前記メモリとがマイグレーションされる宛先ノードを判定するステップと、
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップと
を有する方法。
【請求項２】
前記宛先ノードは、移入対象のノードであり、前記ノードは、移出対象のノードであり、前記移入対象のノードと前記移出対象のノードとは同じノードではない、請求項１に記載のリソースマイグレーションのための方法。
【請求項３】
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピング及び前記プロセスの前記アフィニティに従って、前記プロセスと前記プロセスに対応する前記メモリとがマイグレーションされる宛先ノードを判定するステップは、
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピングを分析するステップと、
前記対応するメモリが複数のプロセスに使用されることを検出した場合、前記複数のプロセスを１つのグループにグループ化するステップと、
１つのグループにグループ化された複数のプロセスのアフィニティを満たすノードを探索し、１つのグループにグループ化された前記複数のプロセスと前記対応するメモリとがマイグレーションされる宛先ノードとして前記ノードを判定するステップと
を有する、請求項１に記載のリソースマイグレーションのための方法。
【請求項４】
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピングを分析した後に、
複数のプロセスに対応する前記メモリが前記ノードではなく他のノードに位置する場合、前記複数のプロセスを１つのグループにグループ化するステップと、
前記他のノードが１つのグループにグループ化された前記複数のプロセスのアフィニティを満たす場合、１つのグループにグループ化された前記複数のプロセスがマイグレーションされる宛先ノードとして前記他のノードを判定するステップと、
前記他のノードが１つのグループにグループ化された前記複数のプロセスのアフィニティを満たさない場合、１つのグループにグループ化された前記複数のプロセスのアフィニティを満たすノードを探索し、１つのグループにグループ化された前記複数のプロセスと前記対応するメモリとがマイグレーションされる宛先ノードとして前記ノードを判定するステップと
を更に有する、請求項３に記載のリソースマイグレーションのための方法。
【請求項５】
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップは、
前記プロセスで伝達される優先度に従って、前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップを有する、請求項１に記載のリソースマイグレーションのための方法。
【請求項６】
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップは、
前記ノードの前記プロセスも前記プロセスに対応する前記メモリも前記宛先ノードに位置しない場合、まず、前記ノードの前記プロセスに前記対応するメモリを前記宛先ノードにマイグレーションし、次に、前記ノードの前記プロセスを前記宛先ノードにマイグレーションするステップと、
前記ノードの前記プロセスに対応する前記メモリが前記宛先ノードに位置する場合、前記ノードの前記プロセスを前記宛先ノードにマイグレーションするステップと
を有する、請求項１に記載のリソースマイグレーションのための方法。
【請求項７】
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションした後に、
前記ノードの全てのメモリをスキャンし、未処理のメモリを取得するステップと、
前記メモリと前記メモリに対応する前記プロセスとのマッピングに従って、前記未処理のメモリに対応するプロセスの動作状況を取得するステップと、
前記動作状況が処理中である場合、前記未処理のメモリがマイグレーションされる宛先ノードとして前記未処理のメモリに対応する前記プロセスが位置するノードを判定するステップと、
前記動作状況が中断中である場合、前記未処理のメモリに対応する前記プロセスのアフィニティを満たすノードを探索し、前記未処理のメモリがマイグレーションされる宛先ノードとして前記ノードを判定するステップと、
前記未処理のメモリを前記宛先ノードにマイグレーションするステップと
を更に有する、請求項１ないし６のうちいずれか１項に記載のリソースマイグレーションのための方法。
【請求項８】
リソースマイグレーションのための装置であって、
ノードが除去された場合、プロセスと前記プロセスに対応するメモリとの間のマッピング及び前記プロセスのアフィニティを有する前記ノードのプロセス情報を取得するように構成された第１の取得ユニットと、
前記第１の取得ユニットにより取得された前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピング及び前記プロセスの前記アフィニティに従って、前記プロセスと前記プロセスに対応する前記メモリとがマイグレーションされる宛先ノードを判定するように構成された第１の判定ユニットと、
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記第１の判定ユニットにより判定された前記宛先ノードにマイグレーションするように構成された第１のマイグレーションユニットと
を有する装置。
【請求項９】
前記ノードの全てのメモリをスキャンし、未処理のメモリを取得するように構成された第２の取得ユニットと、
前記第２の取得ユニットにより取得された前記未処理のメモリと前記未処理のメモリに対応するプロセスとのマッピングに従って、前記第２の取得ユニットにより取得された前記未処理のメモリに対応するプロセスの動作状況を取得するように構成された第３の取得ユニットと、
前記第３の取得ユニットにより取得された前記動作状況が処理中である場合、前記未処理のメモリがマイグレーションされる宛先ノードとして前記未処理のメモリに対応する前記プロセスが位置するノードを判定するように構成された第２の判定ユニットと、
前記第３の取得ユニットにより取得された前記動作状況が中断中である場合、前記未処理のメモリに対応する前記プロセスのアフィニティを満たすノードを探索し、前記未処理のメモリがマイグレーションされる宛先ノードとして前記ノードを判定するように構成された第３の判定ユニットと、
前記未処理のメモリを前記第２の判定ユニット又は前記第３の判定ユニットにより判定された前記宛先ノードにマイグレーションするように構成された第２のマイグレーションユニットと
を更に有する、請求項８に記載のリソースマイグレーションのための装置。
【請求項１０】
リソースマイグレーションのためのシステムであって、
各ノードがCPUとメモリとを有する複数のノードを有し、
前記複数のノードは、移入対象のノードと、移出対象のノードと、制御ノードとを有し、
前記制御ノードのCPUは、前記移出対象のノードが除去された場合、前記移出対象のノードのプロセス情報を取得し、前記プロセス情報に従って、プロセスと前記プロセスに対応するメモリとがマイグレーションされる移入対象のノードを判定し、前記移出対象のノードの前記プロセスと前記プロセスに対応する前記メモリとを前記移入対象のノードにマイグレーションするように構成され、
前記プロセス情報は、前記プロセスと前記プロセスに対応する前記メモリとの間のマッピング及び前記プロセスのアフィニティを有するシステム。
【請求項１１】
前記制御ノードの前記CPUは、前記移出対象のノードの全てのメモリをスキャンし、未処理のメモリを取得し、前記未処理のメモリと前記未処理のメモリに対応するプロセスとのマッピングに従って、前記未処理のメモリに対応するプロセスの動作状況を取得し、前記動作状況が処理中である場合、前記未処理のメモリがマイグレーションされる移入対象のノードとして前記未処理のメモリに対応する前記プロセスが位置するノードを判定し、前記動作状況が中断中である場合、前記未処理のメモリに対応する前記プロセスのアフィニティを満たすノードを探索し、前記未処理のメモリがマイグレーションされる移入対象のノードとして前記ノードを判定し、前記未処理のメモリを前記移入対象のノードにマイグレーションするように更に構成される、請求項１０に記載のリソースマイグレーションのためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ技術の分野に関し、特にリソースマイグレーション（resource  migration）のための方法、装置及びシステムに関する。
【背景技術】
【０００２】
サーバシステムが実行している状況で、デバイス又はノード（node）がシステムに挿入された場合又はシステムから除去された（取り外された）場合、システムの通常動作は影響を受け得ない。現在では、Linux（登録商標）カーネルは、論理CPUにおいて挿入又は除去動作を実現し、セクション（section）を単位として取り、メモリでの挿入又は除去を実行する。現在では、ノードが除去される手順に２つの技術的対策が適用されており、ノードが除去された場合、ノードのメモリ情報は、セクションを単位として取ることにより他のアイドルのメモリにマイグレーションされる。同時に、ノードの論理CPUのプロセスは、他の論理CPUにマイグレーションされる。メモリ情報及びプロセスは別々にマイグレーションされる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
リソースマイグレーションのための方法、装置及びシステムを実施するプロセスにおいて、発明者は、従来技術が少なくとも以下の問題を有することを見出した。現在では、ノードが除去される手順において、ノードのプロセスと、ノードのメモリ情報とは別々にマイグレーションされるため、ノード間のメモリアクセス及びノード間のキャッシュ（cache）アクセスを行わせるために、ノードのプロセスと、ノードの中に存在してプロセスに対応するメモリ情報とは、異なるノードにマイグレーションされる。これにより、ノード間の高速帯域幅を占有し、システム性能を低減する。
【０００４】
本発明の実施例は、ノード間のメモリアクセス及びノード間のキャッシュアクセスを回避し、ノード間の高速帯域幅を保持し、システム性能を改善するために、リソースマイグレーションのための方法、装置及びシステムを提供する。
【課題を解決するための手段】
【０００５】
前述の目的を解決するため、本発明の実施例は、以下の技術的対策を採用する。
【０００６】
リソースマイグレーションのための方法は、ノードが除去された場合、プロセスと対応するメモリとの間のマッピング及びプロセスのアフィニティを含むノードのプロセス情報を取得し、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードを判定し、ノードのプロセスとプロセスに対応するメモリとを宛先ノードにマイグレーションすることを含む。
【０００７】
リソースマイグレーションのための装置は、ノードが除去された場合、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティを含むノードのプロセス情報を取得するように構成された第１の取得ユニットと、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードを判定するように構成された第１の判定ユニットと、ノードのプロセスとプロセスに対応するメモリとを宛先ノードにマイグレーションするように構成された第１のマイグレーションユニットとを含む。
【０００８】
リソースマイグレーションのためのシステムは、各ノードがCPUとメモリとを含む複数のノードを含み、複数のノードは、移入対象のノードと、移出対象のノードと、制御ノードとを含み、制御ノードのCPUは、移出対象のノードが除去された場合、移出対象のノードのプロセス情報を取得し、プロセス情報に従って、プロセスとプロセスに対応するメモリとがマイグレーションされる移入対象のノードを判定し、移出対象のノードのプロセスとプロセスに対応するメモリとを移入対象のノードにマイグレーションするように構成され、プロセス情報は、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティを有する。
【０００９】
本発明の実施例で提供されるリソースマイグレーションのための方法、装置及びシステムでは、ノードが除去された場合、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードは、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って判定され、ノードのプロセスとプロセスに対応するメモリとは、宛先ノードにマイグレーションされる。これにより、ノードのプロセスとプロセスに対応するメモリとが同じ宛先ノードにマイグレーションされることが可能になることで、ノード間のメモリアクセス及びノード間のキャッシュアクセスを回避し、ノード間の高速帯域幅を保持し、システム性能を改善する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１により提供されるリソースマイグレーションのための方法のフローチャート
【図２】本発明の実施例２により提供されるリソースマイグレーションのための方法のフローチャート
【図３】本発明の実施例２により提供されるリソースマイグレーションのための他の方法のフローチャート
【図４】本発明の実施例２により提供されるリソースマイグレーションのための他の方法のフローチャート
【図５】本発明の実施例２により提供されるリソースマイグレーションのための方法の例の概略図
【図６】本発明の実施例３により提供されるリソースマイグレーションのための他の装置の構成のブロック図
【図７】本発明の実施例３により提供されるリソースマイグレーションのための他の装置の構成のブロック図
【図８】本発明の実施例３により提供されるリソースマイグレーションのための他の装置の構成のブロック図
【図９】本発明の実施例３により提供されるリソースマイグレーションのための他の装置の構成のブロック図
【図１０】本発明の実施例３により提供されるリソースマイグレーションのための他の装置の構成のブロック図
【図１１】本発明の実施例３により提供されるリソースマイグレーションのためのシステムの構成のブロック図
【発明を実施するための形態】
【００１１】
本発明の実施例又は従来技術における技術的対策を明瞭に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面について簡単に紹介する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、依然として添付図面から他の図面を導くことができる。
【００１２】
以下に、本発明の実施例の添付図面を参照して、本発明の実施例の技術的対策を明瞭且つ完全に説明する。明らかに、記載の実施例は、本発明の実施例の全てではなく、単なる一部に過ぎない。創造的取り組みを行うことなく、本発明の実施例に基づいて当業者により得られる全ての他の実施例も本発明の保護範囲内に入るものとする。
【００１３】
＜実施例１＞
本発明の実施例は、リソースマイグレーション（resource  migration）のための方法を提供する。図１に示すように、この方法は以下のステップを含む。
【００１４】
101：ノードが除去された場合、プロセスと対応するメモリとの間のマッピング及びプロセスのアフィニティを含むノードのプロセス情報を取得する。プロセスは、VMA（Virtual  Memory  Area）マッピングに従ってプロセスに対応するメモリを見つけることができ、アフィニティ（affinity）は、プロセスが或る特定のノードの或る特定のCPUで強制的に実行されるという特性である。
【００１５】
102：プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードを判定する。
【００１６】
103：ノードのプロセスとプロセスに対応するメモリとを宛先ノードにマイグレーションする。
【００１７】
ノードのプロセスとプロセスに対応するメモリとが宛先ノードにマイグレーションされる場合、マイグレーションは、以下の方法で実施されてもよいが、以下の方法に限定されない点に留意すべきである。プロセスで伝達される優先度に従って、ノードのプロセスとプロセスに対応するメモリとを宛先ノードにマイグレーションし、優先度が高いプロセスを優先的にマイグレーションする。本発明の実施例は、これに対する限定はなく、ユーザは特定の要件に従って設定を実行してもよい。
【００１８】
本発明の実施例により提供されるリソースマイグレーションのための方法では、ノードが除去された（取り外された）場合、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードは、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って判定され、ノードのプロセスとプロセスに対応するメモリとは、宛先ノードにマイグレーションされる。これにより、ノードのプロセスとプロセスに対応するメモリとが同じ宛先ノードにマイグレーションされることが可能になることで、ノード間のメモリアクセス及びノード間のキャッシュアクセスを回避し、ノード間の高速帯域幅を保持し、システム性能を改善する。
【００１９】
＜実施例２＞
本発明の実施例は、リソースマイグレーションのための方法を提供する。図２に示すように、特に図５を説明のための例として挙げることにより、この方法は以下のステップを含む。
【００２０】
201：ノードが除去された場合、プロセスと対応するメモリとの間のマッピング及びプロセスのアフィニティを含むノードのプロセス情報を取得する。
【００２１】
特に、図５では、ノード6が除去されるノードであり、プロセス1000、1001、1005、2001、2003、2004及び2006がノード内のプロセスである。
【００２２】
202：プロセスとプロセスに対応するメモリとの間のマッピングを分析する。
【００２３】
特に、図５では、プロセス1000、1001及び1005に対応するメモリは、メモリ1に位置し、プロセス2000及び2003に対応するメモリは、メモリ1に位置し、プロセス2004及び2006に対応するメモリは、ノード1のメモリに位置する。
【００２４】
203：対応するメモリが複数のプロセスに使用されることを検出した場合、複数のプロセスを１つのグループにグループ化する。
【００２５】
複数のプロセスは以下の方法に従ってグループにグループ化されてもよいが、以下の方法に限定されない点に留意すべきである。この方法は、同じ識別子を各グループの複数のプロセスに割り当てる。本発明の実施例は、これに対する限定はなく、特にユーザは実際の状況に従って設定を実行してもよい。
【００２６】
特に図５では、メモリ1においてメモリの一部は、プロセス1000、1001及び1005により使用されるため、プロセス1000、1001及び1005は１つのグループにグループ化され、グループ1として識別される。メモリ1においてメモリの一部は、プロセス2000及び2003により使用されるため、プロセス2001及び2003は１つのグループにグループ化され、グループ2として識別される。
【００２７】
204：１つのグループにグループ化された複数のプロセスのアフィニティを満たすノードを探索し、１つのグループにグループ化された複数のプロセスと対応するメモリとがマイグレーションされる宛先ノードとしてそのノードを判定する。
【００２８】
特に図５では、ノード6及びノード5は、グループ1のプロセス1000、1001及び1005のアフィニティを満たすノードであり、ノード6及びノード4は、グループ2のプロセス2001及び2003のアフィニティを満たすノードである。
【００２９】
優先的に、ノード6のプロセスとプロセスに対応するメモリとがノード6にマイグレーションされることを回避するために、ノード5は、グループ1のプロセス1000、1001及び1005のアフィニティを満たすノードとして選択され、グループ1のプロセスがマイグレーションされる宛先ノードとして判定される。ノード4は、グループ2のプロセス2001及び2003のアフィニティを満たすノードとして選択され、グループ2のプロセスがマイグレーションされる宛先ノードとして判定される。
【００３０】
205：まず、ノードのプロセスに対応するメモリを宛先ノードにマイグレーションし、次に、ノードのプロセスを宛先ノードにマイグレーションする。
【００３１】
特に図５では、グループ2のプロセス2001及び2003はノード4にマイグレーションされる。まず、グループ1のプロセス1000、1001及び1005に対応するメモリ1におけるメモリの一部がノード5にマイグレーションされ、次に、グループ1のプロセス1000、1001及び1005がノード5にマイグレーションされる。
【００３２】
プロセスとプロセスに対応するメモリとの間との間のマッピング及びプロセスのアフィニティに従って判定された宛先ノードは、当該ノードを含まない。これにより、プロセスとプロセスに対応するメモリとが当該ノードにマイグレーションされることを回避し、ノードが除去される時間を短縮する。
【００３３】
更に、不要なメモリのマイグレーションを低減し、ノードが除去される時間を短縮するために、図３に示すように、特に図５を説明のための例として挙げることにより、この方法は以下のステップを更に含む。
【００３４】
301：複数のプロセスに対応するメモリがノードではなく他のノードに位置することを検出した場合、複数のプロセスを１つのグループにグループ化する。
【００３５】
特に図５では、プロセス2004及び2006に対応するメモリがノード1に位置するため、プロセス2004及び2006は１つのグループにグループ化され、グループ3として記される。
【００３６】
302：他のノードが１つのグループにグループ化された複数のプロセスのアフィニティを満たす場合、ステップ303を実行し、そうでない場合、ステップ305を実行する。
【００３７】
303：１つのグループにグループ化された複数のプロセスがマイグレーションされる宛先ノードとして他のノードを判定する。
【００３８】
特に図５では、ノード1がプロセス2004及び2006のアフィニティを満たす場合、ノード1は、グループ3のプロセスがマイグレーションされる宛先ノードとして判定される。
【００３９】
304：１つのグループにグループ化された複数のプロセスを宛先ノードにマイグレーションする。
【００４０】
特に図５では、グループ3のプロセス2004及び2006は、ノード4にマイグレーションされる。
【００４１】
305：１つのグループにグループ化された複数のプロセスのアフィニティを満たすノードを探索し、１つのグループにグループ化された複数のプロセスと対応するメモリとがマイグレーションされる宛先ノードとしてそのノードを判定する。
【００４２】
特に図５では、ノード1がプロセス2004及び2006のアフィニティを満たさない場合、当該ノードを除き、グループ3のプロセスのアフィニティを満たすノードが探索され、当該ノードが、グループ3のプロセスがマイグレーションされる宛先ノードとして判定されう。
【００４３】
306：１つのグループにグループ化された複数のプロセスと対応するメモリとを宛先ノードにマイグレーションする。
【００４４】
特に図５では、まず、ノード1に存在してグループ3のプロセス2004及び2006に対応するメモリが宛先ノードにマイグレーションされ、次に、グループ3のプロセス2004及び2006が宛先ノードにマイグレーションされる。
【００４５】
当該ノードを除く他のノードにおける対応するメモリの複数のプロセスは、１つのグループにグループ化され、複数のプロセスが他のノードにマイグレーションされるため、不要なメモリマイグレーションが低減され、ノードが除去される時間が短縮される。
【００４６】
更に、ノードが除去された場合、ノードの全てのプロセス及びメモリが移出（emigrate）されることを確保するため、ノードの全てのプロセスとプロセスに対応するメモリとのマイグレーションが終了した後に、図４に示すように、特に図５を説明のための例として挙げることにより、この方法は以下のステップを更に含む。
【００４７】
401：ノードの全てのメモリをスキャンし、未処理のメモリを取得する。
【００４８】
特に図５では、メモリ2及びメモリ3が未処理のメモリである。
【００４９】
402：未処理のメモリとメモリに対応するプロセスとのマッピングに従って、未処理のメモリに対応するプロセスの動作状況を取得し、動作状況が処理中である場合、ステップ403を実行し、動作状況が中断中（being  obstructed）である場合、ステップ405を実行する。
【００５０】
403：未処理のメモリがマイグレーションされる宛先ノードとして未処理のメモリに対応するプロセスが位置するノードを判定する。
【００５１】
特に図５では、メモリ3に対応するプロセスがノード3で処理中であり、ノード2は、メモリ3がマイグレーションされる宛先ノードとして判定される。
【００５２】
404：未処理のメモリを宛先ノードにマイグレーションする。
【００５３】
特に図５では、メモリ3は、ノード2にマイグレーションされる。
【００５４】
405：未処理のメモリに対応するプロセスのアフィニティを満たすノードを探索し、未処理のメモリがマイグレーションされる宛先ノードとしてそのノードを判定する。
【００５５】
特に図５では、メモリ2に対応するプロセスは、中断状態にあり、メモリ2に対応するプロセスのアフィニティを満たすノードが探索される。ノード3がメモリ2に対応するプロセスのアフィニティを満たすノードとして探索された場合、ノード3は、メモリ2がマイグレーションされる宛先ノードとして判定される。
【００５６】
406：未処理のメモリを宛先ノードにマイグレーションする。
【００５７】
特に図５では、メモリ2は、ノード3にマイグレーションされる。
【００５８】
ノードの全てのプロセスとプロセスに対応するメモリとが完全にマイグレーションされた後に、ノードがスキャンされ、未処理のメモリが取得され、未処理のメモリがマイグレーションされる宛先ノードが判定され、マイグレーションが実行される。これにより、ノードが除去された場合に情報が失われないことを確保するように、ノードが除去された場合、ノードの全てのプロセスとメモリとが完全に移出される。
【００５９】
本発明の実施例により提供されるリソースマイグレーションのための方法では、ノードが除去された場合、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードは、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って判定され、ノードのプロセスとプロセスに対応するメモリとは、宛先ノードにマイグレーションされる。これにより、ノードのプロセスとプロセスに対応するメモリとが同じ宛先ノードにマイグレーションされることが可能になることで、ノード間のメモリアクセス及びノード間のキャッシュアクセスを回避し、ノード間の高速帯域幅を保持し、システム性能を改善する。
【００６０】
＜実施例３＞
本発明の実施例は、リソースマイグレーションのための装置を提供する。図６に示すように、この装置は、第１の取得ユニット51と、第１の判定ユニット52と、第１のマイグレーションユニット53とを含む。
【００６１】
第１の取得ユニット51は、ノードが除去された場合、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティを含むノードのプロセス情報を取得するように構成される。
【００６２】
第１の判定ユニット52は、第１の取得ユニット51により取得されたプロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードを判定するように構成される。宛先ノードは、当該ノードを含まない。
【００６３】
第１のマイグレーションユニット53は、ノードのプロセスとプロセスに対応するメモリとを第１の判定ユニット52により判定された宛先ノードにマイグレーションするように構成される。
【００６４】
ノードのプロセス及びプロセスに対応するメモリが宛先ノードにマイグレーションされる場合、マイグレーションは、以下の方法により実施されてもよいが、以下の方法に限定されない点に留意すべきである。プロセスで伝達される優先度に従って、ノードのプロセスとプロセスに対応するメモリとを第１の判定ユニット52により判定された宛先ノードにマイグレーションし、優先度が高いプロセスを優先的にマイグレーションする。本発明の実施例は、これに対する限定はなく、ユーザは特定の要件に従って設定を実行してもよい。
【００６５】
本発明の実施例は、リソースマイグレーションのための装置を提供する。図７に示すように、第１の判定ユニット52は、第１の分析モジュール521と、第１のグループ化モジュール522と、第１の判定モジュール523とを含む。
【００６６】
第１の分析モジュール521は、プロセスとプロセスに対応するメモリとの間のマッピングを分析するように構成される。
【００６７】
第１のグループ化モジュール522は、対応するメモリが複数のプロセスに使用されることを第１の分析モジュール521が検出した場合、複数のプロセスを１つのグループにグループ化するように構成される。
【００６８】
第１の判定モジュール523は、第１のグループ化モジュール522により１つのグループにグループ化された複数のプロセスのアフィニティを満たすノードを探索し、第１のグループ化モジュール522により１つのグループにグループ化された複数のプロセスと対応するメモリとがマイグレーションされる宛先ノードとしてそのノードを判定するように構成される。
【００６９】
本発明の実施例は、リソースマイグレーションのための装置を提供する。図８に示すように、第１の判定ユニット52は、第２のグループ化モジュール524と、第２の判定モジュール525と、第３の判定モジュール526とを更に含む。
【００７０】
第２のグループ化モジュール524は、複数のプロセスに対応するメモリがノードを除く他のノードに位置することを第１の分析モジュール521が検出した場合、複数のプロセスを１つのグループにグループ化するように構成される。
【００７１】
第２の判定モジュール525は、他のノードが複数のプロセスのアフィニティを満たす場合、第２のグループ化モジュール524により１つのグループにグループ化された複数のプロセスがマイグレーションされる宛先ノードとして他のノードを判定するように構成される。
【００７２】
第３の判定モジュール526は、他のノードが複数のプロセスのアフィニティを満たさない場合、第２のグループ化モジュール524により１つのグループにグループ化された複数のプロセスのアフィニティを満たすノードを探索し、第２のグループ化モジュール524により１つのグループにグループ化された複数のプロセスと対応するメモリとがマイグレーションされる宛先ノードとしてそのノードを判定するように構成される。
【００７３】
本発明の実施例は、リソースマイグレーションのための装置を提供する。図９に示すように、第１のマイグレーションユニット53は、第１のマイグレーションモジュール531と、第２のマイグレーションモジュール532とを含む。
【００７４】
第１のマイグレーションモジュール531は、ノードのプロセスもプロセスに対応するメモリも第１の判定ユニット52により判定された宛先ノードに位置しない場合、まず、ノードのプロセスに対応するメモリを第１の判定ユニット52により判定された宛先ノードにマイグレーションし、次に、ノードのプロセスを第１の判定ユニット52により判定された宛先ノードにマイグレーションするように構成される。
【００７５】
第２のマイグレーションモジュール532は、ノードのプロセスに対応するメモリが第１の判定ユニット52により判定された宛先ノードに位置する場合、ノードのプロセスを第１の判定ユニット52により判定された宛先ノードにマイグレーションするように構成される。
【００７６】
本発明の実施例は、リソースマイグレーションのための装置を提供する。図１０に示すように、この装置は、第２の取得ユニット54と、第３の取得ユニット55と、第２の判定ユニット56と、第３の判定ユニット57と、第２のマイグレーションモジュール58とを更に含む。
【００７７】
第２の取得ユニット54は、ノードの全てのメモリをスキャンし、未処理のメモリを取得するように構成される。
【００７８】
第３の取得ユニット55は、第２の取得ユニット54により取得された未処理のメモリと未処理のメモリに対応するプロセスとのマッピングに従って、第２の取得ユニット54により取得された未処理のメモリに対応するプロセスの動作状況を取得するように構成される。
【００７９】
第２の判定ユニット56は、第３の取得ユニット55により取得された動作状況が処理中である場合、未処理のメモリがマイグレーションされる宛先ノードとして未処理のメモリに対応するプロセスが位置するノードを判定するように構成される。
【００８０】
第３の判定ユニット57は、第３の取得ユニット55により取得された動作状況が中断中である場合、未処理のメモリに対応するプロセスのアフィニティを満たすノードを探索し、未処理のメモリがマイグレーションされる宛先ノードとしてそのノードを判定するように構成される。
【００８１】
第２のマイグレーションユニット58は、未処理のメモリを第２の判定ユニット56又は第３の判定ユニット57により判定された宛先ノードにマイグレーションするように構成される。
【００８２】
本発明の実施例は、リソースマイグレーションのためのシステムを提供する。このシステムは、複数のノードを含み、各ノードは、CPUとメモリとを含む。図１１に示すように、このシステムは、移入対象のノード（to-be-immigrated  node）61と、移出対象のノード（to-be-emigrated  node）62と、制御ノード63とを含む。
【００８３】
制御ノード63のCPUは、移出対象のノード62が除去された場合、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティを含む移出対象のノード62のプロセス情報を取得し、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って、プロセスとプロセスに対応するメモリとがマイグレーションされる移入対象のノード61を判定し、移出対象のノード62のプロセスとプロセスに対応するメモリとを移入対象のノード61にマイグレーションするように構成される。
【００８４】
制御ノード63のCPUは、移出対象のノード62の全てのメモリをスキャンし、未処理のメモリを取得し、未処理のメモリと未処理のメモリに対応するプロセスとのマッピングに従って、未処理のメモリに対応するプロセスの動作状況を取得し、動作状況が処理中である場合、未処理のメモリに対応するプロセスが位置するノードが、未処理のメモリがマイグレーションされる移入対象のノード61であることを判定し、動作状況が中断中である場合、未処理のメモリに対応するプロセスのアフィニティを満たすノードを探索し、未処理のメモリがマイグレーションされる移入対象のノード61としてそのノードを判定し、未処理のメモリを移入対象のノード61にマイグレーションするように更に構成される。
【００８５】
制御ノード63のCPUがこの技術的対策を実行する特定の方法については、リソースマイグレーションのための装置がこの技術的対策を実行する方法の説明に参照が行われてもよく、ここでは再び詳細は繰り返されない点に留意すべきである。
【００８６】
本発明の実施例により提供されるリソースマイグレーションのための装置及びシステムでは、ノードが除去された場合、プロセスとプロセスに対応するメモリとがマイグレーションされる宛先ノードは、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って判定され、ノードのプロセスとプロセスに対応するメモリとは、宛先ノードにマイグレーションされる。これにより、ノードのプロセスとプロセスに対応するメモリとが同じ宛先ノードにマイグレーションされることが可能になることで、ノード間のメモリアクセス及びノード間のキャッシュアクセスを回避し、ノード間の高速帯域幅を保持し、システム性能を改善する。
【００８７】
更に、当該ノードを除く他のノードにおいて、対応するメモリの複数のプロセスは１つのグループにグループ化され、複数のプロセスが他のノードにマイグレーションされるため、不要なメモリマイグレーションが低減される。一方、プロセスとプロセスに対応するメモリとの間のマッピング及びプロセスのアフィニティに従って判定された宛先ノードは、当該ノードを含まない。これにより、プロセスと想定される対応するメモリが当該ノードにマイグレーションされることを回避する。不要なメモリマイグレーションが低減され、ノードでのマイグレーションが回避されるため、ノードが除去される時間が短縮される。
【００８８】
更に、ノードの全てのプロセスとプロセスに対応するメモリとが完全にマイグレーションされた後に、ノードがスキャンされ、未処理のメモリが取得され、未処理のメモリがマイグレーションされる宛先ノードが判定され、マイグレーションが実行される。これにより、ノードが除去された場合に情報が失われないことを確保するように、ノードが除去された場合、ノード全てのプロセスとメモリとが完全に移出される。
【００８９】
実施例の前述の説明を通じて、本発明がソフトウェアに必要なユニバーサルハードウェアを加えたもので実施されてもよく、また、明らかにハードウェアにより実施されてもよいことが、当業者に明らかになる。しかし、多くの場合に、ソフトウェアでの実施が好まれる。このような理解に基づいて、従来技術に対して本質的に又は部分的に寄与する本発明の技術的対策は、ソフトウェアプロダクトの形式で実装されてもよい。コンピュータソフトウェアプロダクトは、可読記憶媒体（例えば、コンピュータのフロッピー（登録商標）ディスク、ハードディスク又は光ディスク）に格納され、コンピュータデバイス（パーソナルコンピュータ、サーバ又はネットワークデバイス）に対して本発明の実施例に記載の方法を実行するように命令する複数の命令を含む。
【００９０】
前述の説明は、単に本発明の特定の実施例についてのものであり、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術的範囲内で当業者により容易に考えられる如何なる変更又は置換も、本発明の保護範囲内に入るものとする。従って、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【図１】
2014522033.tif 000003
【図２】
2014522033.tif 000004
【図３】
2014522033.tif 000005
【図４】
2014522033.tif 000006
【図５】
2014522033.tif 000007
【図６】
2014522033.tif 000008
【図７】
2014522033.tif 000009
【図８】
2014522033.tif 000010
【図９】
2014522033.tif 000011
【図１０】
2014522033.tif 000012
【図１１】
2014522033.tif 000013
【手続補正書】
【提出日】平成26年1月24日(2014.1.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リソースマイグレーションのための方法であって、
ノードが除去された場合、プロセスと前記プロセスに対応するメモリとの間のマッピング及び前記プロセスのアフィニティを有する前記ノードのプロセス情報を取得するステップと、
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピング及び前記プロセスの前記アフィニティに従って、前記プロセスと前記プロセスに対応する前記メモリとがマイグレーションされる宛先ノードを判定するステップと、
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップと
を有する方法。
【請求項２】
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピング及び前記プロセスの前記アフィニティに従って、前記プロセスと前記プロセスに対応する前記メモリとがマイグレーションされる宛先ノードを判定するステップは、
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピングを分析するステップと、
前記対応するメモリが複数のプロセスに使用されることを検出した場合、前記複数のプロセスを１つのグループにグループ化するステップと、
１つのグループにグループ化された複数のプロセスのアフィニティを満たすノードを探索し、１つのグループにグループ化された前記複数のプロセスと前記対応するメモリとがマイグレーションされる宛先ノードとして前記ノードを判定するステップと
を有する、請求項１に記載のリソースマイグレーションのための方法。
【請求項３】
前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピングを分析した後に、
複数のプロセスに対応する前記メモリが前記ノードではなく他のノードに位置する場合、前記複数のプロセスを１つのグループにグループ化するステップと、
前記他のノードが１つのグループにグループ化された前記複数のプロセスのアフィニティを満たす場合、１つのグループにグループ化された前記複数のプロセスがマイグレーションされる宛先ノードとして前記他のノードを判定するステップと、
前記他のノードが１つのグループにグループ化された前記複数のプロセスのアフィニティを満たさない場合、１つのグループにグループ化された前記複数のプロセスのアフィニティを満たすノードを探索し、１つのグループにグループ化された前記複数のプロセスと前記対応するメモリとがマイグレーションされる宛先ノードとして前記ノードを判定するステップと
を更に有する、請求項２に記載のリソースマイグレーションのための方法。
【請求項４】
前記宛先ノードは、移入対象のノードであり、前記ノードは、移出対象のノードであり、前記移入対象のノードと前記移出対象のノードとは同じノードではない、請求項１に記載のリソースマイグレーションのための方法。
【請求項５】
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップは、
前記プロセスで伝達される優先度に従って、前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップを有する、請求項１に記載のリソースマイグレーションのための方法。
【請求項６】
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションするステップは、
前記ノードの前記プロセスも前記プロセスに対応する前記メモリも前記宛先ノードに位置しない場合、まず、前記ノードの前記プロセスに前記対応するメモリを前記宛先ノードにマイグレーションし、次に、前記ノードの前記プロセスを前記宛先ノードにマイグレーションするステップと、
前記ノードの前記プロセスに対応する前記メモリが前記宛先ノードに位置する場合、前記ノードの前記プロセスを前記宛先ノードにマイグレーションするステップと
を有する、請求項１に記載のリソースマイグレーションのための方法。
【請求項７】
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記宛先ノードにマイグレーションした後に、
前記ノードの全てのメモリをスキャンし、未処理のメモリを取得するステップと、
前記メモリと前記メモリに対応する前記プロセスとのマッピングに従って、前記未処理のメモリに対応するプロセスの動作状況を取得するステップと、
前記動作状況が処理中である場合、前記未処理のメモリがマイグレーションされる宛先ノードとして前記未処理のメモリに対応する前記プロセスが位置するノードを判定するステップと、
前記動作状況が中断中である場合、前記未処理のメモリに対応する前記プロセスのアフィニティを満たすノードを探索し、前記未処理のメモリがマイグレーションされる宛先ノードとして前記ノードを判定するステップと、
前記未処理のメモリを前記宛先ノードにマイグレーションするステップと
を更に有する、請求項１ないし６のうちいずれか１項に記載のリソースマイグレーションのための方法。
【請求項８】
リソースマイグレーションのための装置であって、
ノードが除去された場合、プロセスと前記プロセスに対応するメモリとの間のマッピング及び前記プロセスのアフィニティを有する前記ノードのプロセス情報を取得するように構成された第１の取得ユニットと、
前記第１の取得ユニットにより取得された前記プロセスと前記プロセスに対応する前記メモリとの間の前記マッピング及び前記プロセスの前記アフィニティに従って、前記プロセスと前記プロセスに対応する前記メモリとがマイグレーションされる宛先ノードを判定するように構成された第１の判定ユニットと、
前記ノードの前記プロセスと前記プロセスに対応する前記メモリとを前記第１の判定ユニットにより判定された前記宛先ノードにマイグレーションするように構成された第１のマイグレーションユニットと
を有する装置。
【請求項９】
前記ノードの全てのメモリをスキャンし、未処理のメモリを取得するように構成された第２の取得ユニットと、
前記第２の取得ユニットにより取得された前記未処理のメモリと前記未処理のメモリに対応するプロセスとのマッピングに従って、前記第２の取得ユニットにより取得された前記未処理のメモリに対応するプロセスの動作状況を取得するように構成された第３の取得ユニットと、
前記第３の取得ユニットにより取得された前記動作状況が処理中である場合、前記未処理のメモリがマイグレーションされる宛先ノードとして前記未処理のメモリに対応する前記プロセスが位置するノードを判定するように構成された第２の判定ユニットと、
前記第３の取得ユニットにより取得された前記動作状況が中断中である場合、前記未処理のメモリに対応する前記プロセスのアフィニティを満たすノードを探索し、前記未処理のメモリがマイグレーションされる宛先ノードとして前記ノードを判定するように構成された第３の判定ユニットと、
前記未処理のメモリを前記第２の判定ユニット又は前記第３の判定ユニットにより判定された前記宛先ノードにマイグレーションするように構成された第２のマイグレーションユニットと
を更に有する、請求項８に記載のリソースマイグレーションのための装置。
【請求項１０】
リソースマイグレーションのためのシステムであって、
各ノードがCPUとメモリとを有する複数のノードを有し、
前記複数のノードは、移入対象のノードと、移出対象のノードと、制御ノードとを有し、
前記制御ノードのCPUは、前記移出対象のノードが除去された場合、前記移出対象のノードのプロセス情報を取得し、前記プロセス情報に従って、プロセスと前記プロセスに対応するメモリとがマイグレーションされる移入対象のノードを判定し、前記移出対象のノードの前記プロセスと前記プロセスに対応する前記メモリとを前記移入対象のノードにマイグレーションするように構成され、
前記プロセス情報は、前記プロセスと前記プロセスに対応する前記メモリとの間のマッピング及び前記プロセスのアフィニティを有するシステム。
【請求項１１】
前記制御ノードの前記CPUは、前記移出対象のノードの全てのメモリをスキャンし、未処理のメモリを取得し、前記未処理のメモリと前記未処理のメモリに対応するプロセスとのマッピングに従って、前記未処理のメモリに対応するプロセスの動作状況を取得し、前記動作状況が処理中である場合、前記未処理のメモリがマイグレーションされる移入対象のノードとして前記未処理のメモリに対応する前記プロセスが位置するノードを判定し、前記動作状況が中断中である場合、前記未処理のメモリに対応する前記プロセスのアフィニティを満たすノードを探索し、前記未処理のメモリがマイグレーションされる移入対象のノードとして前記ノードを判定し、前記未処理のメモリを前記移入対象のノードにマイグレーションするように更に構成される、請求項１０に記載のリソースマイグレーションのためのシステム。
【国際調査報告】
2014522033.tif 000014
2014522033.tif 000015
2014522033.tif 000016
2014522033.tif 000017