(58)【調査した分野】(Int.Cl.,DB名)
前記第1のエージェント装置によって、前記ミラー関係キャンセリング指示を受信し、かつ前記第2のエージェント装置との前記ミラー関係をキャンセルする前記ステップの後に、
前記第1のメモリモジュールを取り除くために、前記プロセッサによって、前記第1のメモリモジュールの電源をオフにするステップ
をさらに含む、請求項1または2に記載の方法。
前記ユーザのメモリモジュール追加要求を受信したとき、前記プロセッサによって、追加されたメモリモジュールに電力を供給し、かつ前記追加されたメモリモジュールがアイドル状態に入ることができるように前記追加されたメモリモジュールを初期化するステップをさらに含む、請求項1〜3のいずれか一項に記載の方法。
プロセッサと、前記プロセッサに接続された第1のエージェント装置および第2のエージェント装置と、前記第1のエージェント装置に接続された第1のメモリモジュールと、前記第2のエージェント装置に接続された第2のメモリモジュールとを備えるサーバであって、
前記プロセッサが前記第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、前記プロセッサは、前記第2のメモリモジュールを探索し、かつミラー関係確立指示を前記第1のエージェント装置に送信するように構成され、前記第1のメモリモジュールは実行状態であり、かつ前記第2のメモリモジュールはアイドル状態であり、
前記第1のエージェント装置は、前記ミラー関係確立指示を受信し、かつ前記ミラー関係確立指示を受信した後に前記第2のエージェント装置とのミラー関係を確立するように構成され、
前記プロセッサは、前記ミラー関係の前記確立が完了した後に、データ読み込み指示を前記第1のエージェント装置に送信するようにさらに構成され、
前記第1のエージェント装置は、前記データ読み込み指示を受信し、
かつ前記データ読み込み指示を受信した後に前記第1のメモリモジュール内のデータを前記第2のエージェント装置に送信するようにさらに構成され、
前記第2のエージェント装置は、前記第1のエージェント装置によって送信された前記データを受信し、かつ前記データを前記第2のメモリモジュールに書き込むように構成され、
前記プロセッサは、前記データのマイグレーションが完了した後に、ミラー関係キャンセリング指示を前記第1のエージェント装置に送信し、かつ、前記ミラー関係キャンセリング指示を送信した後に前記第1のメモリモジュールおよび前記第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定するようにさらに構成され、かつ
前記第1のエージェント装置は、前記ミラー関係キャンセリング指示を受信した後に、前記第2のエージェント装置との前記ミラー関係をキャンセルするようにさらに構成され、
前記第1のエージェント装置は、前記データ読み込み指示を受信し、かつ前記データ読み込み指示を受信した後に前記第1のメモリモジュール内のデータを前記第2のエージェント装置に送信するようにさらに構成されることは、
前記第1のエージェント装置は、前記プロセッサによって送信されたデータ読み込み指示を受信し、前記データ読み込み指示を受信した後に前記第1のメモリモジュール内の前記データを読み込み、かつ前記第1のメモリモジュール内の前記データを前記プロセッサに戻すようにさらに構成され、かつ
前記第1のエージェント装置は、前記プロセッサにより書き込まれる前記第1のメモリモジュール内の前記データを受信し、かつ前記第1のメモリモジュール内の前記データを前記第2のエージェント装置に送信するようにさらに構成される
ことを含む、サーバ。
前記プロセッサは、前記データの前記マイグレーションが完了した後に、かつ前記ミラー関係キャンセリング指示を送信した後に、前記第1のメモリモジュールを取り除くために、前記第1のメモリモジュールの電源をオフにするようにさらに構成される、請求項5または6に記載のサーバ。
前記プロセッサは、前記ユーザのメモリモジュール追加要求を受信したとき、追加されたメモリモジュールに電力を供給し、かつ前記追加されたメモリモジュールを初期化するようにさらに構成され、次いで、前記追加されたメモリモジュールはアイドルメモリモジュールに入る、請求項5〜7のいずれか一項に記載のサーバ。
前記第1のエージェント装置によって、前記ミラー関係キャンセリング指示を受信し、かつ前記第2のエージェント装置との前記ミラー関係をキャンセルする前記ステップの後に、
前記第1のメモリモジュールを取り除くために、前記プロセッサによって、前記第1のメモリモジュールの電源をオフにするステップ
をさらに含む、請求項11に記載の方法。
ユーザのメモリモジュール追加要求を受信したとき、前記プロセッサによって、追加されたメモリモジュールに電力を供給し、かつ前記追加されたメモリモジュールを初期化するステップであって、次いで前記追加されたメモリモジュールはアイドル状態に入る、ステップ
をさらに含む、請求項10に記載の方法。
【発明の概要】
【課題を解決するための手段】
【0006】
このような事情を鑑みて、本発明の実施形態は、サーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバを提供し、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【0007】
第1の態様によれば、サーバ内のメモリモジュールに対するデータマイグレーション方法が提供され、方法は、
第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したときプロセッサによって、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信するステップであって、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である、ステップと、
第1のエージェント装置によって、ミラー関係確立指示を受信し、かつ第2のエージェント装置とのミラー関係を確立するステップと、
プロセッサによってデータマイグレーション指示を、第1のエージェント装置に送信するステップと、
第1のエージェント装置によってデータマイグレーション指示を受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するステップと、
第2のエージェント装置によって、第1のメモリモジュール内のデータを、第2のメモリモジュールに書き込むステップと、
プロセッサによって、ミラー関係キャンセリング指示を、第1のエージェント装置に送信し、かつ第1のメモリモジュールおよび第2のメモリモジュールを、アイドル状態および実行状態にそれぞれ設定するステップと、
第1のエージェント装置によって、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルするステップと
を含む。
【0008】
第1の可能な実施方式では、
第1のエージェント装置によって、データマイグレーション指示を受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するステップは、
第1のエージェント装置によって、プロセッサにより送信されたデータ読み込み指示を受信し、第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻すステップと、
第1のエージェント装置によって、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するステップと
を含む。
【0009】
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、
プロセッサによって、ミラー関係キャンセリング指示を第1のエージェント装置に送信するステップの前に、方法は、
プロセッサによって、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込むステップと、
第1のエージェント装置によって、第1のデータを受信し、かつ第1のデータを第2のエージェント装置に転送するステップと
第2のエージェント装置によって、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込むステップと
をさらに含む。
【0010】
第1の態様、第1の態様の第1の可能な実施方式、または第1の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、
第1のエージェント装置によって、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルするステップの後に、方法は、
第1のメモリモジュールを取り除くために、プロセッサによって、第1のメモリモジュールの電源をオフにするステップ
をさらに含む。
【0011】
第1の態様、第1の態様の第1の可能な実施方式、第1の態様の第2の可能な実施方式、第1の態様の第3の可能な実施方式を参照すると、第4の可能な実施方式では、方法は、
ユーザのメモリモジュール追加要求を受信したとき、プロセッサによって、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化するステップであって、次いで、追加されたメモリモジュールはアイドル状態に入る、ステップ
をさらに含む。
【0012】
第2の態様によれば、サーバが提供され、サーバは、
プロセッサと、プロセッサに接続された第1のエージェント装置および第2のエージェント装置と、第1のエージェント装置に接続された第1のメモリモジュールと、第2のエージェント装置に接続された第2のメモリモジュールとを備え、
プロセッサが第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信するように構成され、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態であり、
第1のエージェント装置は、ミラー関係確立指示を受信し、かつミラー関係確立指示を受信した後に第2のエージェント装置とのミラー関係を確立するように構成され、
プロセッサは、ミラー関係の確立が完了した後に、データマイグレーション指示を第1のエージェント装置に送信するようにさらに構成され、
第1のエージェント装置は、データマイグレーション指示を受信し、かつデータマイグレーション指示を受信した後に第1のメモリモジュール内のデータを第2のエージェント装置に送信するようにさらに構成され、
第2のエージェント装置は、第1のエージェント装置によって送信されたデータを受信し、かつデータを第2のメモリモジュールに書き込むように構成され、
プロセッサは、データのマイグレーションが完了した後に、ミラー関係キャンセリング指示を第1のエージェント装置に送信し、かつ、ミラー関係キャンセリング指示を送信した後に第1のメモリモジュールおよび第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定するようにさらに構成され、かつ
第1のエージェント装置は、ミラー関係キャンセリング指示を受信した後に、第2のエージェント装置とのミラー関係をキャンセルするようにさらに構成される。
【0013】
第1の実施方式では、
第1のエージェント装置は、データマイグレーション指示を受信し、かつデータマイグレーション指示を受信した後に第1のメモリモジュール内のデータを第2のエージェント装置に送信するようにさらに構成されることは、
第1のエージェント装置は、プロセッサによって送信されたデータ読み込み指示を受信し、データ読み込み指示を受信した後に第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻すようにさらに構成され、かつ
第1のエージェント装置は、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するようにさらに構成される
ことを含む。
【0014】
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、
プロセッサは、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込むようにさらに構成され、
第1のエージェント装置は、第1のデータを受信した後に、第1のデータを第2のエージェント装置に転送するようにさらに構成され、かつ
第2のエージェント装置は、第2のエージェント装置によって転送された第1のデータを受信した後に、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込むようにさらに構成される。
【0015】
第2の態様、第2の態様の第1の可能な実施方式、または第2の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、
プロセッサは、データのマイグレーションが完了した後に、かつミラー関係キャンセリング指示を送信した後に、第1のメモリモジュールを取り除くために、第1のメモリモジュールの電源をオフにするようにさらに構成される。
【0016】
第2の態様、第2の態様の第1の可能な実施方式、第2の態様の第2の可能な実施方式、または第2の態様の第3の可能な実施方式を参照すると、第4の可能な実施方式では、
プロセッサは、ユーザのメモリモジュール追加要求を受信したとき、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化するようにさらに構成され、かつ、追加されたメモリモジュールはアイドルメモリモジュールになる。
【0017】
本発明において提供されるサーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバの技術的解決策に基づいて、2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、プロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【発明を実施するための形態】
【0020】
本発明の実施形態の添付図面を参照して、以下に本発明の実施形態の技術的解決策を明確かつ十分に説明する。当然ながら、説明される実施形態は、本発明の実施形態のすべてではなく一部に過ぎない。創造的努力なしに本発明の実施形態に基づいて当業者によって取得される他のすべての実施形態は、本発明の保護範囲内にあるものとする。
【0021】
図2は、本発明の実施形態に基づくサーバ内のメモリモジュールに対するデータマイグレーション方法のフローチャートである。
図2に示されるように、方法は、以下のステップを含む。
【0022】
ステップS101。第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信し、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である。
【0023】
ステップS102。第1のエージェント装置は、ミラー関係確立指示を受信し、かつ第2のエージェント装置とのミラー関係を確立する。
【0024】
本発明のこの実施形態において、サーバは、例えば第1のメモリモジュールおよび第2のメモリモジュールである、少なくとも2つのメモリモジュールを含み、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である。メモリモジュールは、メモリカードであってもよく、すなわち、デュアルインラインメモリモジュール(Dual In-line Memory Module, DIMM、さらにメモリバーとも呼ばれる)がメモリカード上にインストールされ、かつ次いで、メモリカードがメインボードに挿入される。第1のメモリモジュールがデータを記憶する。プロセッサは、第1のメモリモジュールに物理アドレスを割り振り、かつ物理アドレスをOSに報告する。OSは、プログラムを実行し、または第1のメモリモジュールにデータを記憶してもよい。プロセッサは、いずれの物理アドレスを第2のメモリモジュールに割り振ることなく、かつOSに第2のメモリモジュールの存在を通知することなく、第2のメモリモジュール上でメモリ初期化を行うのみである。従って、OSは第2のメモリモジュールを使用しない。
【0025】
本発明のこの実施形態において、データマイグレーションプロセスに含まれる各メモリモジュールは、エージェント装置に接続される。エージェント装置は、エージェント装置がエージェントとして機能するローカル(Home/Local)メモリモジュールのアドレスであるメモリアドレスにアクセスするためにプロセッサの要求を受信し、かつプロセッサを使用することによって、メモリモジュールにより元のメモリアクセス要求者に戻された結果を送信する。
【0026】
サーバの第1のメモリモジュール内のすべてのデータをマイグレートする予定であるとき、第1のメモリモジュールを取り除くために、ユーザは、データマイグレーション要求をプロセッサに送信する。第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信した後、プロセッサは、アイドル状態のメモリモジュール、すなわち、第2のメモリモジュールを探索し、第1のメモリモジュールに接続されたエージェント装置Aにミラー関係確立指示を送信する。ミラー関係確立指示を受信した後、エージェント装置Aは、第2のメモリモジュールに接続されたエージェント装置Bとのミラー関係を確立する。ミラー関係とは、第2のメモリモジュールが初期化中はいずれの物理アドレスを有さず、エージェント装置Aおよびエージェント装置Bがミラー関係を確立した後は、第2のメモリモジュールが、第1のメモリモジュールと同一の物理アドレスを有することを意味する。プロセッサから、第1のメモリモジュールの物理アドレスに書き込まれることになるデータを受信した後、エージェント装置Aは、第1のメモリモジュールの物理アドレスにデータを書き込み、かつさらに、エージェント装置Bにデータを書き込む。次いで、エージェント装置Bは、第2のメモリモジュール内の同一の物理アドレスにデータを書き込む。
【0027】
本発明におけるプロセッサによって遂行される操作は、プロセッサにおいてBIOSプログラムによって実際的に完了されてもよいと理解されてもよい。
【0028】
ステップS103。プロセッサは、データマイグレーション指示を第1のエージェント装置に送信する。
【0029】
ステップS104。第1のエージェント装置は、データマイグレーション指示を受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信する。
【0030】
ステップS105。第2のエージェント装置は、第1のメモリモジュール内のデータを第2のメモリモジュールに書き込む。
【0031】
エージェント装置Aおよびエージェント装置Bがミラー関係を確立した後、プロセッサは、第1のメモリモジュールからのデータを第2のメモリモジュールにマイグレートするために、データマイグレーション指示をエージェント装置Aに送信する。データマイグレーション指示を受信した後、エージェント装置Aは、マイグレートされるデータを第1のメモリモジュールから取得し、かつデータをエージェント装置Bに送信する。エージェント装置Bは、データを第2のメモリモジュールに書き込み、第2のメモリモジュールに書き込まれるデータの物理アドレスは、第1のメモリモジュール内のデータの物理アドレスと一致している。
【0032】
ステップS106。プロセッサは、ミラー関係キャンセリング指示を第1のエージェント装置に送信し、かつ第1のメモリモジュールおよび第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定する。
【0033】
ステップS107。第1のエージェント装置は、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルする。
【0034】
第1のメモリモジュール内のデータすべてがマイグレートされた後、プロセッサは、エージェント装置Aおよびエージェント装置Bにミラー関係をキャンセルするよう指示するために、ミラー関係キャンセリング指示をエージェント装置Aに送信する。ミラー関係キャンセリング指示を受信した後、エージェント装置Aは、エージェント装置Bとのミラー関係をキャンセルし、物理アドレスのセグメントのための読み込みまたは書き込み指示を受信するエージェント装置を、エージェント装置Aからエージェント装置Bに変更する。このように、第1のメモリモジュールはアイドル状態に切り替えられ、第2のメモリモジュールは実行状態に切り替えられ、かつ物理アドレスのセグメントのためのデータを読み込みまたは書き込むとき、プロセッサは、エージェント装置Bを使用して、第2のメモリモジュールからデータを読み込みまたは第2のメモリモジュールにデータを書き込む。データマイグレーションの前後において、第1のメモリモジュールの物理アドレスは不変であり、従って、データマイグレーションプロセスは、OSおよびOS上で実行するアプリケーションプログラムに対して不可視である。
【0035】
サーバ内に、実行状態の2以上のメモリモジュールおよびアイドル状態の2以上のメモリモジュールが存在することは理解されてもよい。データマイグレーションを行うために、プロセッサは、実行状態のメモリモジュールに対してアイドル状態の適切なメモリモジュールを選択してもよく、かつプロセッサは、実行状態の複数のメモリモジュールに対して同時または逐次にデータマイグレーションを完了してもよい。
【0036】
本発明のこの実施形態において提供されるサーバ内のメモリモジュールに対するデータマイグレーション方法に基づいて、2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、プロセッサは、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了するために、エージェント装置に2つのメモリモジュール間のデータマイグレーションを行うよう指示する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【0037】
図3は、本発明の別の実施形態に基づくサーバ内のメモリモジュールに対するデータマイグレーション方法のフローチャートである。
図3に示されるように、方法は以下のステップを含む。
【0038】
ステップS201。第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信し、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である。
【0039】
ステップS202。第1のエージェント装置は、ミラー関係確立指示を受信し、かつ第2のエージェント装置とのミラー関係を確立する。
【0040】
図6aに示されるように、サーバは複数のメモリモジュールを含み、メモリモジュール1、2、および3は、実行状態のメモリモジュールであり、かつデータを記憶する。プロセッサは、物理アドレスをメモリモジュール1、2、および3に割り振り、かつ物理アドレスをOSに報告する。OSは、プログラムを実行し、またはメモリモジュール1、2、および3にデータを記憶してもよい。メモリモジュール4は、アイドル状態のメモリモジュールであり、かつプロセッサは、いずれの物理アドレスをメモリモジュール4に割り振ること、かつアイドルメモリモジュールの存在をOSに通知することなく、メモリモジュール4上でメモリ初期化を行うのみである。従って、OSは、メモリモジュール4を使用しない。複数のメモリモジュールを有するサーバにおいて、最大容量を有するメモリモジュールが、アイドル状態のメモリモジュールとして選択される。さらに、同一容量を有するメモリバーが、実行状態に設定されたメモリモジュールに、および、アイドル状態に設定されたメモリモジュールに選択されてもよく、その結果、任意のメモリモジュールは、データマイグレーションを容易にするアイドル状態のメモリモジュールになってもよい。
【0041】
サーバのメモリモジュール内にあり、かつ実行状態であるすべてのデータをマイグレートする予定であるとき、メモリモジュールを取り除くために、ユーザはデータマイグレーション要求をプロセッサに送信する。一般的に、サーバ内のメモリモジュールの構造を設計するときに、ユーザ操作インタフェースは、ユーザのホットスワップコマンドを受信し、かつホットスワップの進捗をユーザに表示するために使用される。
図4に示されるメモリモジュールをホットリムーブするフローチャートと、
図5に示されるメモリモジュールをホットアドするフローチャートにおいて、ユーザ操作インタフェースは、ボタンである。ユーザがボタンを押下するとき、データマイグレーションおよびメモリモジュール除去コマンドがプロセッサに配信される。
【0042】
本発明のこの実施形態において、メモリモジュールに接続されたエージェント装置は、
図7aに示されるローカルエージェント(ホームエージェント, HA)であり、HAは、インテルクイックパスインターコネクト(Quick-Path Interconnect, QPI)プロトコルにおけるコンポーネントであり、かつ現代のインテルプロセッサは、QPIバスを使用して相互接続される。HAは、メモリモジュールに対するQPIのアクセスリクエストを受信し、かつメモリモジュールによって戻された結果を元のメモリアクセス要求者に送信することを担う。
【0043】
図7aは、2つのインテルプロセッサを相互接続する方法を示している。各プロセッサは、多くのユニットに分割され、かつここには計算ユニットおよび相互接続ユニットのみが描かれている。計算ユニットは、アドレスアクセス要求を送信し、かつ相互接続ユニットは、アドレス要求を例えばHAのような対応するサブモジュールに分配し、またはアドレス要求を、QPIを使用して別のプロセッサの相互接続ユニットに転送する。相互接続ユニットのサブモジュールであるHAは、HAにマウントされたメモリにアクセスするために、相互接続ユニットの要求を受信する。要求は、HAが位置するプロセッサ内の計算ユニットから来てもよく、または別のプロセッサの計算ユニットから来てもよい。
【0044】
メモリモジュールに接続されたエージェント装置は、拡張ノードコントローラ(Extended Node Controller, XNC)またはノードコントローラ(Node Controller, NC)であってもよい。
図7bに示されるように、プロセッサは、QPIまたはXNC/NCを使用して相互接続される。各プロセッサのQPIはXNCに接続され、かつ次いで、すべてのプロセッサは、XNCの相互接続ネットワークを介してビッグサーバを形成するために結合される。すべてのプロセッサ、メモリ、および各XNCに接続されたI/Oは、まとめてノード(node)と呼ばれ、つまりXNCの様々な機能の1つは、HAの機能、すなわちノード内のメモリにアクセスするための要求であってかつ相互接続ファブリックによって送信される要求を受信する機能と類似する。
【0045】
要するに、HAおよびXNC/NCは、本発明のこの実施形態における同一の機能、すなわち、メモリアドレスにアクセスするための要求を受信する機能を有し、メモリアドレスは、HAまたはXNC/NCがエージェントとして機能するローカルメモリモジュールのアドレスである。
【0046】
図8aに示されるように、実行状態のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、アイドル状態のメモリモジュールを探索し、かつミラー関係確立指示を、実行状態のメモリモジュールに接続されたエージェント装置HA0に送信する。エージェント装置HA0は、ミラー関係確立指示を受信し、かつアイドル状態のメモリモジュールに接続されたエージェント装置HA1とのミラー関係を確立する。ミラー関係とは、アイドル状態のメモリモジュールが、初期化中にいずれの物理アドレスを有さず、かつエージェント装置HA0およびエージェント装置HA1がミラー関係を確立した後は、アイドル状態のメモリモジュールが、実行状態のメモリモジュールと同一の物理アドレスPA0-PA1を有することを意味する。プロセッサから、実行状態のメモリモジュールの物理アドレスに書き込まれるデータを受信した後、エージェント装置HA0は、実行状態のメモリモジュールの物理アドレスにデータを書き込み、かつさらにエージェント装置HA1にデータを書き込む。次いで、HA1は、第2のメモリモジュール内の同一の物理アドレスにデータを書き込む。
【0047】
ステップS203。プロセッサは、データマイグレーション指示を第1のエージェント装置に送信する。
【0048】
ステップS204。第1のエージェント装置は、プロセッサによって送信されたデータ読み込み指示を受信し、第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻す。
【0049】
ステップS205。第1のエージェント装置は、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信する。
【0050】
ステップS206。第2のエージェント装置は、第1のメモリモジュール内のデータを第2のメモリモジュールに書き込む。
【0051】
図6bに示されるように、実行状態のメモリモジュール3内のデータは、アイドル状態のメモリモジュール4に徐々にマイグレートされ、かつデータマイグレーションのプロセスは、2つのプロセス、すなわちデータ読み込みおよびデータ書き込みを含む。プロセッサは、データ読み込み指示をHA0に送信し、HA0はデータ読み込み指示を受信し、実行状態のメモリモジュールのデータを書き込み、かつ実行状態のメモリモジュール内のデータをプロセッサに戻す。プロセッサは、実行状態のメモリモジュール内のデータをHA0に書き込み、HA0は、実行状態のメモリモジュール内のデータをHA1に転送し、かつHA1は、実行状態のメモリモジュール内のデータをアイドル状態のメモリモジュール4に書き込む。
【0052】
具体的には、HA0およびHA1の動作原理は以下の通りである。すなわち、
図7aに示されるように、HA0およびHA1がミラー関係を確立した後に、サーバ内の2つのHAはミラーペアを形成する。2つのHAがミラーペアを形成した後、1つのHAはミラーリングされたマスターサイド(Mirrored Master side)であり、かつもう一方はミラーリングされたスレーブサイド(Mirrored Slave side)である。メモリモジュールに対するデータマイグレーションの適用例において、ミラーリングされたマスターサイドは、サーバ内で常に使用されるHAであり、かつミラーリングされたスレーブサイドは、バックアップのために使用され、かつマイグレーションのために待機するHAである。一時的なミラーペアを確立する当初から、スレーブHAは、マスターHAと同一の物理アドレスを有するが、スレーブHAおよびマスターHA内のデータは一致しない。従って、データマイグレーションが行われる必要がある。
【0053】
具体的なデータマイグレーションプロセスでは、プロセッサはHAのすべてのアドレスをアドレスの昇順にトラバースし、かついくつかのアドレスは毎回関与する。
【0054】
1.メモリモジュールからのアドレスPA0におけるデータをプロセッサに読み込む。
【0055】
2.元のアドレスPA0にデータの再書き込みを行う。
【0056】
3.マスターHAは、アドレス書き込み要求を受信し、かつ2つの操作を行う。その1つは、データをマスターHAのメモリのアドレスPA0に書き込むことである。
【0057】
4.マスターHAは、サーバ内にミラーHAが存在することを知っており、故に、マスターHAの他の操作は、データパケットをスレーブHAに転送することである。
【0058】
5.スレーブHAは、データパケットを受信し、かつデータをスレーブHAのメモリのアドレスPA0に書き込む。
【0059】
この時点で、アドレスPA0は、2つのHAに同一の写しを有しており、これはマスターHAのPA0におけるデータが、スレーブHAのアドレスPA0にマイグレートされることと等しい。
【0060】
プロセッサがマスターHAのすべてのアドレスのトラバースを完了するとき、HAにおけるメモリに対するデータマイグレーションが完了される。
【0061】
ステップS207。プロセッサは、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込む。
【0062】
ステップS208。第1のエージェント装置は、第1のデータを受信し、かつ第1のデータを第2のエージェント装置に転送する。
【0063】
ステップS209。第2のエージェント装置は、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込む。
【0064】
メモリモジュールに対するデータマイグレーションは、即時に完了されうるタスクではなく、かつ期間を消費する必要がある。時間の長さは、マイグレーションが行われることになるメモリモジュールの容量に正比例する。マイグレーションの期間中、2つのマスターデバイスが、実行状態のメモリモジュール3上で読み込みまたは書き込み操作を行ってもよい。1つのマスターデバイスは、実行状態のメモリモジュール3上のHA0であり、実行状態のメモリモジュール3のアドレスを徐々にトラバースし、かつアイドル状態のメモリモジュール4にデータをコピーし、他のマスターデバイスは、読み込みまたは書き込み要求を送信するサーバのバス(例えば、QPI)であり、要求は、実行状態のメモリモジュール3に対して正常に実行するサーバの読み込みまたは書き込み要求である。もしミラー関係が存在しない場合、HA0がいくつかのアドレスでデータをマイグレートし、かつQPIがメモリ値を変更するためにこれらのアドレス上で書き込み操作を送信するとき、2つのメモリモジュールにおけるデータは、マイグレーションが完了した後は不一致である。この場合、スイッチオーバーが発生しないことがある。ミラーリングは、すべての書き込み操作中に同時に2つのメモリモジュールにデータが書き込まれることを可能にし、それによって一致を保証する。
【0065】
マイグレーションプロセス中、OSがマスターHAのアドレスHA1上で書き込み操作を行う必要がある場合、実際には前述のステップ2から5が行われる。従って、2つのHAにおけるデータ間の一致がさらに保証されてもよい。
【0066】
ステップS210。プロセッサは、ミラー関係キャンセリング指示を第1のエージェント装置に送信し、かつ第1のメモリモジュールおよび第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定する。
【0067】
ステップS211。第1のエージェント装置は、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルし、かつアイドル状態のメモリモジュールは、実行状態のメモリモジュールになる。
【0068】
図6cに示されるように、実行状態のメモリモジュール内のデータすべてがマイグレートされた後、プロセッサは、HA0およびHA1間のミラー関係をキャンセルするためにミラー関係キャンセリング指示をHA0に送信し、かつ物理アドレスのセグメントを受信するエージェント装置をHA0からHA1に変更する。このように、実行状態の元のメモリモジュールはアイドル状態に切り替えられ、メモリモジュールの物理アドレスは無効になり、かつプロセッサは物理アドレスにデータを書き込むことができず、または物理アドレスからデータを読み込むことができない。アイドル状態の元のメモリモジュールは、実行状態に切り替えられ、実行状態の元のメモリモジュールと同一の物理アドレスPA0‐PA1を有し、かつ物理アドレスのセグメントに対してプロセッサの読み込みまたは書き込み操作を受信する。
図8bに示されるように、アイドル状態のメモリモジュールおよび実行状態のメモリモジュールの役割が入れ替えられる。しかしながら、データマイグレーションおよび役割入れ替えの前後で、物理アドレスは変更されないままである。従って、データマイグレーションプロセスは、OSおよびOS上で実行するアプリケーションプログラムに対して不可視である。HA0に対応するメモリモジュールに対して、不可視であることが原因で、マイグレーションは、メモリモジュール内にOSのカーネルモードデータが存在するか否かと、データがアプリケーション(例えばデータベースのような)によって頻繁に占有されるか否かに関わらず完了されてもよく、それによって、メモリホットリムーブの実現可能性を大幅に向上させることができる。
【0069】
ステップS212。プロセッサは、第1のメモリモジュールを取り除くために、第1のメモリモジュールの電源をオフにする。
【0070】
データマイグレーションおよび役割入れ替えが完了した後、実行状態の元のメモリモジュールは、実際にアイドル状態に切り替えられる。メモリモジュールを取り除くために、メモリモジュールは電源をオフにされる。
【0071】
図4は、メモリモジュールをホットリムーブするための手順を示しており、手続きは、以下のステップを含む。
【0072】
a)コマンドが開始されることを示すボタンを押下する。
【0073】
b)ボタンのLEDが点滅し始め、コマンドが受信されたことを示す。
【0074】
c)BOISがOSにコマンドを転送し、OSにリムーブされるメモリに対してマイグレーションを行うよう指示する。
【0075】
d)直近のステップと同時に、電源のLEDが点滅し始め、ホットリムーブ手続きが開始したことを示す。
【0076】
e)OSはメモリに対してマイグレーションを行い、かつメモリのアドレスで実行しているサービスを別のメモリのアドレスにマイグレートする。
【0077】
f)直近のステップと同時に、BIOSは、OSがデータマイグレーションを完了したか否かを繰り返し問い合わせし始める。
【0078】
g)もしOSが正常にデータをマイグレートした場合、OSは正常マイグレーションを示す結果をBIOSに通知する。
【0079】
h)もしOSがデータのマイグレーションに失敗した場合、電源のLEDを、ホットリムーブプロセスが終了することを示す常時点灯状態に復元し、かつボタンのLEDを常時点灯に設定し、ホットアドの失敗をユーザに通知する(LEDの操作は、実際にはBIOSの動きであり、かつBIOSはOSの通知を受信しないので、タイムアウトが発生し、従って、OSがデータのマイグレーションに失敗したことが判定される)。
【0080】
i)もしBIOSがOSの通知を受信した場合、BIOSは物理アドレスを削除し、取り除かれるメモリモジュールのアドレスにアクセスするために実際的に要求を無効にする。
【0081】
j)もし、BIOSの操作が成功する場合、メモリライザの電源をオフにし、かつ電源のLEDを常時消灯に設定し、ホットリムーブが完了したことを示す。
【0082】
k)もし、BIOSの操作が失敗する場合、電源のLEDを、ホットリムーブプロセスが終了したことを示す常時点灯に復元し、かつボタンのLEDを常時点灯に設定し、ホットアドの失敗をユーザに通知する。
【0083】
図4に示されるメモリモジュールをホットリムーブするための手続きとは異なり、本発明のこの実施形態に提供されるデータマイグレーション方法を使用することによって、メモリモジュールをホットリムーブすることは、OSの関与を必要とせず、かつマスターHAをコントロールすることにより、プロセッサ、すなわち、前述のBIOSプログラムによって完了される。すなわち、前述のステップc)からi)は、本発明のこの実施形態におけるステップS201からステップS211に置き換えられる。
【0084】
ステップS213。ユーザのメモリモジュール追加要求を受信したとき、プロセッサは、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化し、追加されたメモリモジュールはアイドル状態に入る。
【0085】
図6dに示されるように、
図6cにおけるアイドル状態のメモリモジュール3が取り除かれた後、新たなメモリモジュール5がホットアドされる。ユーザは、ボタンのような操作インタフェースを使用して新たなメモリモジュールへのホットアド操作を開始してもよい。ホットアド操作のための手続きは、従来技術のものと同一である。
【0086】
図5は、従来技術におけるメモリモジュールをホットアドする手続きであり、手続きは、以下のステップを含む。
【0087】
A.コマンドが開始されることを示すボタンを押下する。
【0088】
B.ボタンのLEDが点滅し始め、コマンドが受信されたことを示す。
【0089】
C.メモリカード(メモリライザ)に電力を供給する。
【0090】
D.電源のLEDが点滅し始め、かつホットアド手続きが完了する前は点滅し続ける。
【0091】
E.BIOSがメモリに対して初期化を行う。
【0092】
F.初期化されたメモリにアドレスを割り振る。
【0093】
G.新たに追加されたメモリが利用可能であることをOSに通知し、かつ新たに追加されたメモリのアドレスおよび容量を同時に報告する。
【0094】
H.OSは、メモリのオンライン(online)操作を完了する。
【0095】
I.もしプロセス全体が正常に完了した場合、電源のLEDは常時点灯となり、ホットアド手続きが終了することを示す。
【0096】
J.もしホットアド手続きが失敗した場合、電源のLEDは常時消灯に設定され、かつメモリライザの電源はオフとなり、同時に、ボタンのLEDは常時点灯に設定され、ホットアドの失敗をユーザに通知する。
【0097】
しかしながら、本発明の実施形態では、新たなメモリモジュールがアイドル状態のメモリモジュールとして追加されるときは、前述の手続きにおけるステップF)からステップH)は、遂行される必要はない。すなわち、
図6dにおけるメモリモジュール5に電力が供給され、かつメモリモジュール5が初期化される。しかしながら、メモリモジュール5に割り振られる物理アドレスがないと、その結果、メモリモジュール5は、サーバにおいてアイドル状態のメモリモジュールとなり(
図6eに示される)、実行状態のメモリモジュール1、2、および4をホットリムーブするために、HAアドレスから別のHAアドレスにマイグレートする状態を提供する。
【0098】
本発明のこの実施形態において提供されるサーバ内のメモリモジュールに対するデータマイグレーション方法に基づいて、2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、プロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。従って、実行状態のメモリモジュールは、便利にホットリムーブされてもよく、かつ実行メモリモジュールに対するプロセッサの読み込みまたは書き込み操作がデータマイグレーションプロセスの間にさらに受信されてもよく、それによって、データエラーは発生しない。
【0099】
図9は、本発明の実施形態に基づくサーバ1000の構造的な概略図である。
図9に示されるように、サーバ1000は、
プロセッサ11と、プロセッサに接続された第1のエージェント装置12および第2のエージェント装置13と、第1のエージェント装置12に接続された第1のメモリモジュール14と、第2のエージェント装置13に接続された第2のメモリモジュール15と
を備え、
プロセッサ11は、プロセッサ11が第1のメモリモジュール14に対するユーザのデータマイグレーション要求を受信したとき、第2のメモリモジュール15を探索し、第1のメモリモジュール14は実行状態であり、かつ第2のメモリモジュール15はアイドル状態であり、かつミラー関係確立指示を第1のエージェント装置12に送信するように構成され、
第1のエージェント装置12は、ミラー関係確立指示を受信し、かつミラー関係確立指示を受信した後に第2のエージェント装置13とのミラー関係を確立するように構成され、
プロセッサ11は、ミラー関係の確立が完了した後に、データマイグレーション指示を第1のエージェント装置12に送信するようにさらに構成され、
第1のエージェント装置12は、データマイグレーション指示を受信し、かつデータマイグレーション指示を受信した後に第1のメモリモジュール14内のデータを第2のエージェント装置13に送信するようにさらに構成され、
第2のエージェント装置13は、第1のエージェント装置12によって送信されたデータを受信し、かつデータを第2のメモリモジュール15に書き込むように構成され、
プロセッサ11は、データのマイグレーションが完了した後に、ミラー関係キャンセリング指示を第1のエージェント装置12に送信し、かつ、ミラー関係キャンセリング指示を送信した後に第1のメモリモジュール14および第2のメモリモジュール15をアイドル状態および実行状態にそれぞれ設定するようにさらに構成され、かつ
第1のエージェント装置12は、ミラー関係キャンセリング指示を受信した後に、第2のエージェント装置13とのミラー関係をキャンセルするようにさらに構成される。
【0100】
2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、本発明のこの実施形態に提供されるサーバ内のプロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【0101】
本発明は、サーバの別の実施形態をさらに提供する。サーバは、
プロセッサと、プロセッサに接続された第1のエージェント装置および第2のエージェント装置と、第1のエージェント装置に接続された第1のメモリモジュールと、第2のエージェント装置に接続された第2のメモリモジュールとを備え、
プロセッサが第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、第2のメモリモジュールを探索し、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態であり、かつミラー関係確立指示を第1のエージェント装置に送信するように構成され、
第1のエージェント装置は、ミラー関係確立指示を受信し、かつミラー関係確立指示を受信した後に第2のエージェント装置とのミラー関係を確立するように構成され、
プロセッサは、ミラー関係の確立が完了した後に、データマイグレーション指示を第1のエージェント装置に送信するようにさらに構成され、
第1のエージェント装置は、プロセッサによって送信されたデータ読み込み指示を受信し、データ読み込み指示を受信した後に第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻すようにさらに構成され、
第1のエージェント装置は、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するようにさらに構成され、
第2のエージェント装置は、第1のエージェント装置によって送信されたデータを受信し、かつデータを第2のメモリモジュールに書き込むように構成され、
プロセッサは、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込むようにさらに構成され、
第1のエージェント装置は、第1のデータを受信した後に、第1のデータを第2のエージェント装置に転送するようにさらに構成され、
第2のエージェント装置は、第2のエージェント装置によって転送された第1のデータを受信した後に、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込むようにさらに構成され、
プロセッサは、データのマイグレーションが完了した後に、ミラー関係キャンセリング指示を第1のエージェント装置に送信し、かつ、ミラー関係キャンセリング指示を送信した後に第1のメモリモジュールおよび第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定するようにさらに構成され、
第1のエージェント装置は、ミラー関係キャンセリング指示を受信した後に、第2のエージェント装置とのミラー関係をキャンセルするようにさらに構成され、
プロセッサは、データのマイグレーションが完了した後に、かつミラー関係キャンセリング指示を送信した後に、第1のメモリモジュールを取り除くために、第1のメモリモジュールの電源をオフにするようにさらに構成され、かつ
プロセッサは、ユーザのメモリモジュール追加要求を受信したとき、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化するようにさらに構成され、かつ、追加されたメモリモジュールはアイドルメモリモジュールになる。
【0102】
2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、本発明のこの実施形態において提供されるサーバ内のプロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。従って、実行状態のメモリモジュールは、便利にホットリムーブされてもよく、かつ実行メモリモジュールに対するプロセッサの読み込みまたは書き込み操作がデータマイグレーションプロセスの間にさらに受信されてもよく、それによって、データエラーは発生しない。
【0103】
便利かつ簡潔な説明を目的として、前述のデバイスおよびモジュールの詳細な作業プロセスについては、前述の方法の実施形態における対応するプロセスを参照し、かつここでは詳細が再度説明されないことは当業者により明確に理解されてもよい。
【0104】
本願において提供されるいくつかの実施形態において、開示されたデバイスおよび方法が、他の手段において実施されてもよいことは理解されるべきである。例えば、説明された装置の実施形態は、単なる例示である。例えば、モジュール部は、単なる論理機能部であり、かつ他の部は、実装における他の部であってもよい。例えば、複数のモジュールまたはコンポーネントは、別のデバイスに組み合わせられまたは統合されてもよく、あるいは幾らかの特徴が無視されまたは行われなくてもよい。さらに、表示されまたは論じられた相互結合若しくは直接結合または通信接続は、いくつかの通信インタフェースを介して実施されてもよい。装置またはモジュール間の間接結合または通信接続は、電子的、機械的、または他の形式で実施されてもよい。
【0105】
別個の部分として説明されたモジュールは、物理的に別個であってもなくてもよく、かつモジュールとして表示された部分は、物理ユニットであってもなくてもよく、1つの位置に置かれてもよく、または複数のネットワークユニットに分配されてもよい。モジュールの一部または全体は、実施形態の解決策の目的を達成するために、実際のニーズに応じて選択されてもよい。
【0106】
さらに、本発明の実施形態における機能モジュールは、1つの処理モジュールに統合されてもよく、またはモジュールのそれぞれが物理的に単独で存在してもよく、または2つまたはそれ以上のモジュールが1つのモジュールに統合される。
【0107】
実施形態の前述の説明に基づいて、各実装方法が必要な一般的なハードウェアプラットフォームに加えられたソフトウェアによってまたはハードウェアによって実施されてもよいということが当業者は明確に理解できる。そのような理解に基づいて、前述の本質的な技術的解決策または従来技術に寄与する部分は、ソフトウェア製品の形態で実施されてもよい。ソフトウェア製品は、ROM/RAM、ハードディスク、または光ディスクのようなコンピュータ読み取り可能な記憶媒体に記憶され、かつ、実施形態または実施形態の一部に説明された方法を行うよう、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイス等であってもよい)に指示するためのいくつかの指示を含む。
【0108】
前述の実装方法は、技術的解決策の保護範囲を限定することを意図していない。前述の実装方法の精神と原則から逸脱することなくなされる任意の修正、等価の置換、改良は、技術的解決策の保護範囲内に入るべきものである。