(57)【特許請求の範囲】
【請求項１】
サーバ内のメモリモジュールに対するデータマイグレーション方法であって、
第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のデータを前記第1のエージェント装置の第1の物理アドレスに書き込むステップと、
前記第1のエージェント装置によって、前記第1のデータを受信し、かつ前記第1のデータを前記第2のエージェント装置に転送するステップと
前記第2のエージェント装置によって、前記第1のデータを前記第2のメモリモジュール内の前記第1の物理アドレスに書き込むステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第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のエージェント装置の第1の物理アドレスに書き込むようにさらに構成され、
前記第1のエージェント装置は、前記第1のデータを受信した後に、前記第1のデータを前記第2のエージェント装置に転送するようにさらに構成され、かつ
前記第2のエージェント装置は、前記第2のエージェント装置によって転送された前記第1のデータを受信した後に、前記第1のデータを前記第2のメモリモジュール内の前記第1の物理アドレスに書き込むようにさらに構成される、請求項5に記載のサーバ。
【請求項７】
前記プロセッサは、前記データの前記マイグレーションが完了した後に、かつ前記ミラー関係キャンセリング指示を送信した後に、前記第1のメモリモジュールを取り除くために、前記第1のメモリモジュールの電源をオフにするようにさらに構成される、請求項5または6に記載のサーバ。
【請求項８】
前記プロセッサは、前記ユーザのメモリモジュール追加要求を受信したとき、追加されたメモリモジュールに電力を供給し、かつ前記追加されたメモリモジュールを初期化するようにさらに構成され、次いで、前記追加されたメモリモジュールはアイドルメモリモジュールに入る、請求項5〜7のいずれか一項に記載のサーバ。
【請求項９】
前記第1のエージェント装置は、前記第1のメモリモジュールを管理するようにさらに構成され、かつ
前記第2のエージェント装置は、前記第2のメモリモジュールを管理するようにさらに構成される
請求項5に記載のサーバ。
【請求項１０】
サーバ内のデータマイグレーション方法であって、
第1のメモリモジュールに対するデータマイグレーション要求を受信したとき、プロセッサによって、第2のメモリモジュールを取得するステップと、
第1のエージェント装置と第2のエージェント装置との間にミラー関係を確立するステップと、
前記プロセッサによって、データ読み込み指示を前記第1のエージェント装置に送信するステップと、
前記第1のエージェント装置によって、前記データ読み込み指示を受信し、かつ前記ミラー関係に基づいて前記第1のメモリモジュール内のデータを前記第2のエージェント装置に送信するステップと、
前記第2のエージェント装置によって、前記第1のメモリモジュール内の前記データを前記第2のメモリモジュールに書き込むステップと
を含み、
前記第1のエージェント装置によって、前記データ読み込み指示を受信し、かつ前記第1のメモリモジュール内のデータを前記第2のエージェント装置に送信する前記ステップは、
前記第1のエージェント装置によって、前記プロセッサにより送信されたデータ読み込み指示を受信し、前記第1のメモリモジュール内の前記データを読み込み、かつ前記第1のメモリモジュール内の前記データを前記プロセッサに戻すステップと、
前記第1のエージェント装置によって、前記プロセッサにより書き込まれる前記第1のメモリモジュール内の前記データを受信し、かつ前記第1のメモリモジュール内の前記データを前記第2のエージェント装置に送信するステップと
を含む、データマイグレーション方法。
【請求項１１】
前記書き込むステップの後に、前記方法は、
前記プロセッサによって、ミラー関係キャンセリング指示を前記第1のエージェント装置に送信し、かつ前記第1のメモリモジュールおよび前記第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定するステップと、
前記第1のエージェント装置によって、前記ミラー関係キャンセリング指示を受信し、かつ前記第2のエージェント装置との前記ミラー関係をキャンセルするステップ
をさらに含む、請求項10に記載の方法。
【請求項１２】
前記プロセッサによって、ミラー関係キャンセリング指示を前記第1のエージェント装置に送信する前記ステップの前に、
前記プロセッサによって、第1のデータを、前記第1のエージェント装置の第1の物理アドレスに書き込むステップと、
前記第1のエージェント装置によって、前記第1のデータを受信し、かつ前記第1のデータを前記第2のエージェント装置に転送するステップと、
前記第2のエージェント装置によって、前記第1のデータを、前記第2のメモリモジュール内の前記第1の物理アドレスに書き込むステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
前記第1のエージェント装置によって、前記ミラー関係キャンセリング指示を受信し、かつ前記第2のエージェント装置との前記ミラー関係をキャンセルする前記ステップの後に、
前記第1のメモリモジュールを取り除くために、前記プロセッサによって、前記第1のメモリモジュールの電源をオフにするステップ
をさらに含む、請求項11に記載の方法。
【請求項１４】
ユーザのメモリモジュール追加要求を受信したとき、前記プロセッサによって、追加されたメモリモジュールに電力を供給し、かつ前記追加されたメモリモジュールを初期化するステップであって、次いで前記追加されたメモリモジュールはアイドル状態に入る、ステップ
をさらに含む、請求項10に記載の方法。
【請求項１５】
前記第1のメモリモジュールは実行状態であり、かつ前記第2のメモリモジュールはアイドル状態である、請求項10に記載の方法。
【請求項１６】
前記第1のエージェント装置は、前記第1のメモリモジュールを管理するようにさらに構成され、かつ
前記第2のエージェント装置は、前記第2のメモリモジュールを管理するようにさらに構成される
請求項10に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2013年8月31日に中国特許庁で出願した、発明の名称を「DATA MIGRATION METHOD FOR MEMORY MODULE IN SERVER AND SERVER」とする中国特許出願第201310390761.8号の優先権を主張するものであり、その全体が参照により本明細書に組み込まれる。
【０００２】
本発明は、ストレージ技術の分野に関し、かつ特に、サーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバに関する。
【背景技術】
【０００３】
主にはサーバの分野に適用され、サーバの可用性と保守性を向上させる。メモリホットスワップ中は、サーバーの少なくとも2つのメモリモジュールを含むハードウェア層、基本入力/出力システム(Basic Input Output System, BIOS)層、オペレーティングシステム(Operating System, OS)(さらに、仮想マシンモニタ(Virtual Machine Monitor, VMM)を含んでもよい)層が関与する。図1は、層間の関係を示している。示されている論理構造では、ハードウェア層は、実際に利用可能である物理リソースを提供する。BIOS層はこれらの物理リソースを構成し、利用可能なリソースを報告し、かつ操作インタフェースを提供する。OSはBIOSによって報告されたリソースを直接的に使用してもよく、またはVMMはリソースを仮想化し、次いで使用するためにOSに仮想化されたリソースを割り振り、すなわち、OSは、これらのリソースの最終的なユーザである。メモリホットスワップ技術では、ハードウェア層は、実質的なメモリモジュールとアクセスチャネルを提供し、BIOS層はメモリを初期化し、アドレスを割り振り、かつ利用可能なアドレスをOSまたはVMMに報告し、さらに、最終的には、OSはプログラムを実行し、またはデータをメモリに記憶する。メモリホットスワップは、メモリホットアドおよびメモリホットリムーブの2つの処理を含む。
【０００４】
従来技術では、メモリホットリムーブが行われるとき、OSはまず、ホットリムーブされる予定のメモリアドレスにおけるデータを他のメモリアドレスにマイグレートする必要がある。しかしながら、OSがメモリページをマイグレートする前のそれぞれの時に、OSは、ページのコントロールを得る必要があり、かつ別のプログラムのアクセスを中断する。従って、もしマイグレートされるユーザデータが別のユーザプログラムによって頻繁にアクセスされる場合、そのたびに、OSがメモリページのコントロールを得るのにいくらかの時間がかかる。結果として、全メモリモジュールのデータマイグレーションを完了するのに長時間かかる。
【０００５】
要するに、メモリデータマイグレーションはOSに密接に依存しており、かつOSのデータ分散とメモリデータマイグレーション機能は、メモリデータマイグレーションの成功または失敗に影響してもよい。従って、メモリモジュールの便利なデータマイグレーションを実施する方法が、早急な現在対処されるべき問題となる。
【発明の概要】
【課題を解決するための手段】
【０００６】
このような事情を鑑みて、本発明の実施形態は、サーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバを提供し、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【０００７】
第1の態様によれば、サーバ内のメモリモジュールに対するデータマイグレーション方法が提供され、方法は、
第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したときプロセッサによって、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信するステップであって、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である、ステップと、
第1のエージェント装置によって、ミラー関係確立指示を受信し、かつ第2のエージェント装置とのミラー関係を確立するステップと、
プロセッサによってデータマイグレーション指示を、第1のエージェント装置に送信するステップと、
第1のエージェント装置によってデータマイグレーション指示を受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するステップと、
第2のエージェント装置によって、第1のメモリモジュール内のデータを、第2のメモリモジュールに書き込むステップと、
プロセッサによって、ミラー関係キャンセリング指示を、第1のエージェント装置に送信し、かつ第1のメモリモジュールおよび第2のメモリモジュールを、アイドル状態および実行状態にそれぞれ設定するステップと、
第1のエージェント装置によって、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルするステップと
を含む。
【０００８】
第1の可能な実施方式では、
第1のエージェント装置によって、データマイグレーション指示を受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するステップは、
第1のエージェント装置によって、プロセッサにより送信されたデータ読み込み指示を受信し、第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻すステップと、
第1のエージェント装置によって、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するステップと
を含む。
【０００９】
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、
プロセッサによって、ミラー関係キャンセリング指示を第1のエージェント装置に送信するステップの前に、方法は、
プロセッサによって、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込むステップと、
第1のエージェント装置によって、第1のデータを受信し、かつ第1のデータを第2のエージェント装置に転送するステップと
第2のエージェント装置によって、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込むステップと
をさらに含む。
【００１０】
第1の態様、第1の態様の第1の可能な実施方式、または第1の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、
第1のエージェント装置によって、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルするステップの後に、方法は、
第1のメモリモジュールを取り除くために、プロセッサによって、第1のメモリモジュールの電源をオフにするステップ
をさらに含む。
【００１１】
第1の態様、第1の態様の第1の可能な実施方式、第1の態様の第2の可能な実施方式、第1の態様の第3の可能な実施方式を参照すると、第4の可能な実施方式では、方法は、
ユーザのメモリモジュール追加要求を受信したとき、プロセッサによって、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化するステップであって、次いで、追加されたメモリモジュールはアイドル状態に入る、ステップ
をさらに含む。
【００１２】
第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のエージェント装置とのミラー関係をキャンセルするようにさらに構成される。
【００１３】
第1の実施方式では、
第1のエージェント装置は、データマイグレーション指示を受信し、かつデータマイグレーション指示を受信した後に第1のメモリモジュール内のデータを第2のエージェント装置に送信するようにさらに構成されることは、
第1のエージェント装置は、プロセッサによって送信されたデータ読み込み指示を受信し、データ読み込み指示を受信した後に第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻すようにさらに構成され、かつ
第1のエージェント装置は、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信するようにさらに構成される
ことを含む。
【００１４】
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、
プロセッサは、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込むようにさらに構成され、
第1のエージェント装置は、第1のデータを受信した後に、第1のデータを第2のエージェント装置に転送するようにさらに構成され、かつ
第2のエージェント装置は、第2のエージェント装置によって転送された第1のデータを受信した後に、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込むようにさらに構成される。
【００１５】
第2の態様、第2の態様の第1の可能な実施方式、または第2の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、
プロセッサは、データのマイグレーションが完了した後に、かつミラー関係キャンセリング指示を送信した後に、第1のメモリモジュールを取り除くために、第1のメモリモジュールの電源をオフにするようにさらに構成される。
【００１６】
第2の態様、第2の態様の第1の可能な実施方式、第2の態様の第2の可能な実施方式、または第2の態様の第3の可能な実施方式を参照すると、第4の可能な実施方式では、
プロセッサは、ユーザのメモリモジュール追加要求を受信したとき、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化するようにさらに構成され、かつ、追加されたメモリモジュールはアイドルメモリモジュールになる。
【００１７】
本発明において提供されるサーバ内のメモリモジュールに対するデータマイグレーション方法およびサーバの技術的解決策に基づいて、2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、プロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【図面の簡単な説明】
【００１８】
本発明の実施形態におけるまたは従来技術における技術的解決策をより明確に説明するために、実施形態または従来技術を説明するために必要な添付図面を以下に簡潔に説明する。当然ながら、以下の説明における添付図面は、本発明の単なる一部の実施形態を示しているに過ぎず、当業者は、創造的努力なしにこれらの添付図面から他の図面をさらに導き出すことができる。
【００１９】
【図１】従来技術におけるメモリホットスワップに含まれるサーバの層間の関係の概略図である。
【図２】本発明の実施形態に基づくサーバ内のメモリモジュールに対するデータマイグレーション方法のフローチャートである。
【図３】本発明の別の実施形態に基づくサーバ内のメモリモジュールに対するデータマイグレーション方法のフローチャートである。
【図４】従来技術におけるメモリモジュールをホットリムーブするフローチャートである。
【図５】従来技術におけるメモリモジュールをホットアドするフローチャートである。
【図６ａ】サーバに含まれるメモリモジュールの概略構造図である。
【図６ｂ】サーバ内のメモリモジュールのデータマイグレーションの概略構造図である。
【図６ｃ】メモリモジュールのデータマイグレーションが完了した後にサーバ内のメモリモジュールの役割交換をする概略図である。
【図６ｄ】サーバ内のアイドルメモリモジュールを置き換える概略図である。
【図６ｅ】アイドルメモリモジュールが置き換えられたサーバの概略図である。
【図７ａ】エージェント装置HAおよびメモリモジュールの概略構造図である。
【図７ｂ】ノードコントローラNCおよびメモリモジュールの概略構造図である。
【図８ａ】メモリモジュールに対するデータマイグレーションプロセスを行うサーバの概略図である。
【図８ｂ】メモリモジュールに対するデータマイグレーションプロセスが完了した後のサーバの概略図である。
【図９】本発明に基づくサーバの概略構造図である。
【発明を実施するための形態】
【００２０】
本発明の実施形態の添付図面を参照して、以下に本発明の実施形態の技術的解決策を明確かつ十分に説明する。当然ながら、説明される実施形態は、本発明の実施形態のすべてではなく一部に過ぎない。創造的努力なしに本発明の実施形態に基づいて当業者によって取得される他のすべての実施形態は、本発明の保護範囲内にあるものとする。
【００２１】
図2は、本発明の実施形態に基づくサーバ内のメモリモジュールに対するデータマイグレーション方法のフローチャートである。図2に示されるように、方法は、以下のステップを含む。
【００２２】
ステップS101。第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信し、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である。
【００２３】
ステップS102。第1のエージェント装置は、ミラー関係確立指示を受信し、かつ第2のエージェント装置とのミラー関係を確立する。
【００２４】
本発明のこの実施形態において、サーバは、例えば第1のメモリモジュールおよび第2のメモリモジュールである、少なくとも2つのメモリモジュールを含み、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である。メモリモジュールは、メモリカードであってもよく、すなわち、デュアルインラインメモリモジュール(Dual In-line Memory Module, DIMM、さらにメモリバーとも呼ばれる)がメモリカード上にインストールされ、かつ次いで、メモリカードがメインボードに挿入される。第1のメモリモジュールがデータを記憶する。プロセッサは、第1のメモリモジュールに物理アドレスを割り振り、かつ物理アドレスをOSに報告する。OSは、プログラムを実行し、または第1のメモリモジュールにデータを記憶してもよい。プロセッサは、いずれの物理アドレスを第2のメモリモジュールに割り振ることなく、かつOSに第2のメモリモジュールの存在を通知することなく、第2のメモリモジュール上でメモリ初期化を行うのみである。従って、OSは第2のメモリモジュールを使用しない。
【００２５】
本発明のこの実施形態において、データマイグレーションプロセスに含まれる各メモリモジュールは、エージェント装置に接続される。エージェント装置は、エージェント装置がエージェントとして機能するローカル(Home/Local)メモリモジュールのアドレスであるメモリアドレスにアクセスするためにプロセッサの要求を受信し、かつプロセッサを使用することによって、メモリモジュールにより元のメモリアクセス要求者に戻された結果を送信する。
【００２６】
サーバの第1のメモリモジュール内のすべてのデータをマイグレートする予定であるとき、第1のメモリモジュールを取り除くために、ユーザは、データマイグレーション要求をプロセッサに送信する。第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信した後、プロセッサは、アイドル状態のメモリモジュール、すなわち、第2のメモリモジュールを探索し、第1のメモリモジュールに接続されたエージェント装置Aにミラー関係確立指示を送信する。ミラー関係確立指示を受信した後、エージェント装置Aは、第2のメモリモジュールに接続されたエージェント装置Bとのミラー関係を確立する。ミラー関係とは、第2のメモリモジュールが初期化中はいずれの物理アドレスを有さず、エージェント装置Aおよびエージェント装置Bがミラー関係を確立した後は、第2のメモリモジュールが、第1のメモリモジュールと同一の物理アドレスを有することを意味する。プロセッサから、第1のメモリモジュールの物理アドレスに書き込まれることになるデータを受信した後、エージェント装置Aは、第1のメモリモジュールの物理アドレスにデータを書き込み、かつさらに、エージェント装置Bにデータを書き込む。次いで、エージェント装置Bは、第2のメモリモジュール内の同一の物理アドレスにデータを書き込む。
【００２７】
本発明におけるプロセッサによって遂行される操作は、プロセッサにおいてBIOSプログラムによって実際的に完了されてもよいと理解されてもよい。
【００２８】
ステップS103。プロセッサは、データマイグレーション指示を第1のエージェント装置に送信する。
【００２９】
ステップS104。第1のエージェント装置は、データマイグレーション指示を受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信する。
【００３０】
ステップS105。第2のエージェント装置は、第1のメモリモジュール内のデータを第2のメモリモジュールに書き込む。
【００３１】
エージェント装置Aおよびエージェント装置Bがミラー関係を確立した後、プロセッサは、第1のメモリモジュールからのデータを第2のメモリモジュールにマイグレートするために、データマイグレーション指示をエージェント装置Aに送信する。データマイグレーション指示を受信した後、エージェント装置Aは、マイグレートされるデータを第1のメモリモジュールから取得し、かつデータをエージェント装置Bに送信する。エージェント装置Bは、データを第2のメモリモジュールに書き込み、第2のメモリモジュールに書き込まれるデータの物理アドレスは、第1のメモリモジュール内のデータの物理アドレスと一致している。
【００３２】
ステップS106。プロセッサは、ミラー関係キャンセリング指示を第1のエージェント装置に送信し、かつ第1のメモリモジュールおよび第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定する。
【００３３】
ステップS107。第1のエージェント装置は、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルする。
【００３４】
第1のメモリモジュール内のデータすべてがマイグレートされた後、プロセッサは、エージェント装置Aおよびエージェント装置Bにミラー関係をキャンセルするよう指示するために、ミラー関係キャンセリング指示をエージェント装置Aに送信する。ミラー関係キャンセリング指示を受信した後、エージェント装置Aは、エージェント装置Bとのミラー関係をキャンセルし、物理アドレスのセグメントのための読み込みまたは書き込み指示を受信するエージェント装置を、エージェント装置Aからエージェント装置Bに変更する。このように、第1のメモリモジュールはアイドル状態に切り替えられ、第2のメモリモジュールは実行状態に切り替えられ、かつ物理アドレスのセグメントのためのデータを読み込みまたは書き込むとき、プロセッサは、エージェント装置Bを使用して、第2のメモリモジュールからデータを読み込みまたは第2のメモリモジュールにデータを書き込む。データマイグレーションの前後において、第1のメモリモジュールの物理アドレスは不変であり、従って、データマイグレーションプロセスは、OSおよびOS上で実行するアプリケーションプログラムに対して不可視である。
【００３５】
サーバ内に、実行状態の2以上のメモリモジュールおよびアイドル状態の2以上のメモリモジュールが存在することは理解されてもよい。データマイグレーションを行うために、プロセッサは、実行状態のメモリモジュールに対してアイドル状態の適切なメモリモジュールを選択してもよく、かつプロセッサは、実行状態の複数のメモリモジュールに対して同時または逐次にデータマイグレーションを完了してもよい。
【００３６】
本発明のこの実施形態において提供されるサーバ内のメモリモジュールに対するデータマイグレーション方法に基づいて、2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、プロセッサは、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了するために、エージェント装置に2つのメモリモジュール間のデータマイグレーションを行うよう指示する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【００３７】
図3は、本発明の別の実施形態に基づくサーバ内のメモリモジュールに対するデータマイグレーション方法のフローチャートである。図3に示されるように、方法は以下のステップを含む。
【００３８】
ステップS201。第1のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、第2のメモリモジュールを探索し、かつミラー関係確立指示を第1のエージェント装置に送信し、第1のメモリモジュールは実行状態であり、かつ第2のメモリモジュールはアイドル状態である。
【００３９】
ステップS202。第1のエージェント装置は、ミラー関係確立指示を受信し、かつ第2のエージェント装置とのミラー関係を確立する。
【００４０】
図6aに示されるように、サーバは複数のメモリモジュールを含み、メモリモジュール1、2、および3は、実行状態のメモリモジュールであり、かつデータを記憶する。プロセッサは、物理アドレスをメモリモジュール1、2、および3に割り振り、かつ物理アドレスをOSに報告する。OSは、プログラムを実行し、またはメモリモジュール1、2、および3にデータを記憶してもよい。メモリモジュール4は、アイドル状態のメモリモジュールであり、かつプロセッサは、いずれの物理アドレスをメモリモジュール4に割り振ること、かつアイドルメモリモジュールの存在をOSに通知することなく、メモリモジュール4上でメモリ初期化を行うのみである。従って、OSは、メモリモジュール4を使用しない。複数のメモリモジュールを有するサーバにおいて、最大容量を有するメモリモジュールが、アイドル状態のメモリモジュールとして選択される。さらに、同一容量を有するメモリバーが、実行状態に設定されたメモリモジュールに、および、アイドル状態に設定されたメモリモジュールに選択されてもよく、その結果、任意のメモリモジュールは、データマイグレーションを容易にするアイドル状態のメモリモジュールになってもよい。
【００４１】
サーバのメモリモジュール内にあり、かつ実行状態であるすべてのデータをマイグレートする予定であるとき、メモリモジュールを取り除くために、ユーザはデータマイグレーション要求をプロセッサに送信する。一般的に、サーバ内のメモリモジュールの構造を設計するときに、ユーザ操作インタフェースは、ユーザのホットスワップコマンドを受信し、かつホットスワップの進捗をユーザに表示するために使用される。図4に示されるメモリモジュールをホットリムーブするフローチャートと、図5に示されるメモリモジュールをホットアドするフローチャートにおいて、ユーザ操作インタフェースは、ボタンである。ユーザがボタンを押下するとき、データマイグレーションおよびメモリモジュール除去コマンドがプロセッサに配信される。
【００４２】
本発明のこの実施形態において、メモリモジュールに接続されたエージェント装置は、図7aに示されるローカルエージェント(ホームエージェント, HA)であり、HAは、インテルクイックパスインターコネクト(Quick-Path Interconnect, QPI)プロトコルにおけるコンポーネントであり、かつ現代のインテルプロセッサは、QPIバスを使用して相互接続される。HAは、メモリモジュールに対するQPIのアクセスリクエストを受信し、かつメモリモジュールによって戻された結果を元のメモリアクセス要求者に送信することを担う。
【００４３】
図7aは、2つのインテルプロセッサを相互接続する方法を示している。各プロセッサは、多くのユニットに分割され、かつここには計算ユニットおよび相互接続ユニットのみが描かれている。計算ユニットは、アドレスアクセス要求を送信し、かつ相互接続ユニットは、アドレス要求を例えばHAのような対応するサブモジュールに分配し、またはアドレス要求を、QPIを使用して別のプロセッサの相互接続ユニットに転送する。相互接続ユニットのサブモジュールであるHAは、HAにマウントされたメモリにアクセスするために、相互接続ユニットの要求を受信する。要求は、HAが位置するプロセッサ内の計算ユニットから来てもよく、または別のプロセッサの計算ユニットから来てもよい。
【００４４】
メモリモジュールに接続されたエージェント装置は、拡張ノードコントローラ(Extended Node Controller, XNC)またはノードコントローラ(Node Controller, NC)であってもよい。図7bに示されるように、プロセッサは、QPIまたはXNC/NCを使用して相互接続される。各プロセッサのQPIはXNCに接続され、かつ次いで、すべてのプロセッサは、XNCの相互接続ネットワークを介してビッグサーバを形成するために結合される。すべてのプロセッサ、メモリ、および各XNCに接続されたI/Oは、まとめてノード(node)と呼ばれ、つまりXNCの様々な機能の1つは、HAの機能、すなわちノード内のメモリにアクセスするための要求であってかつ相互接続ファブリックによって送信される要求を受信する機能と類似する。
【００４５】
要するに、HAおよびXNC/NCは、本発明のこの実施形態における同一の機能、すなわち、メモリアドレスにアクセスするための要求を受信する機能を有し、メモリアドレスは、HAまたはXNC/NCがエージェントとして機能するローカルメモリモジュールのアドレスである。
【００４６】
図8aに示されるように、実行状態のメモリモジュールに対するユーザのデータマイグレーション要求を受信したとき、プロセッサは、アイドル状態のメモリモジュールを探索し、かつミラー関係確立指示を、実行状態のメモリモジュールに接続されたエージェント装置HA0に送信する。エージェント装置HA0は、ミラー関係確立指示を受信し、かつアイドル状態のメモリモジュールに接続されたエージェント装置HA1とのミラー関係を確立する。ミラー関係とは、アイドル状態のメモリモジュールが、初期化中にいずれの物理アドレスを有さず、かつエージェント装置HA0およびエージェント装置HA1がミラー関係を確立した後は、アイドル状態のメモリモジュールが、実行状態のメモリモジュールと同一の物理アドレスPA0-PA1を有することを意味する。プロセッサから、実行状態のメモリモジュールの物理アドレスに書き込まれるデータを受信した後、エージェント装置HA0は、実行状態のメモリモジュールの物理アドレスにデータを書き込み、かつさらにエージェント装置HA1にデータを書き込む。次いで、HA1は、第2のメモリモジュール内の同一の物理アドレスにデータを書き込む。
【００４７】
ステップS203。プロセッサは、データマイグレーション指示を第1のエージェント装置に送信する。
【００４８】
ステップS204。第1のエージェント装置は、プロセッサによって送信されたデータ読み込み指示を受信し、第1のメモリモジュール内のデータを読み込み、かつ第1のメモリモジュール内のデータをプロセッサに戻す。
【００４９】
ステップS205。第1のエージェント装置は、プロセッサにより書き込まれる第1のメモリモジュール内のデータを受信し、かつ第1のメモリモジュール内のデータを第2のエージェント装置に送信する。
【００５０】
ステップS206。第2のエージェント装置は、第1のメモリモジュール内のデータを第2のメモリモジュールに書き込む。
【００５１】
図6bに示されるように、実行状態のメモリモジュール3内のデータは、アイドル状態のメモリモジュール4に徐々にマイグレートされ、かつデータマイグレーションのプロセスは、2つのプロセス、すなわちデータ読み込みおよびデータ書き込みを含む。プロセッサは、データ読み込み指示をHA0に送信し、HA0はデータ読み込み指示を受信し、実行状態のメモリモジュールのデータを書き込み、かつ実行状態のメモリモジュール内のデータをプロセッサに戻す。プロセッサは、実行状態のメモリモジュール内のデータをHA0に書き込み、HA0は、実行状態のメモリモジュール内のデータをHA1に転送し、かつHA1は、実行状態のメモリモジュール内のデータをアイドル状態のメモリモジュール4に書き込む。
【００５２】
具体的には、HA0およびHA1の動作原理は以下の通りである。すなわち、図7aに示されるように、HA0およびHA1がミラー関係を確立した後に、サーバ内の2つのHAはミラーペアを形成する。2つのHAがミラーペアを形成した後、1つのHAはミラーリングされたマスターサイド(Mirrored Master side)であり、かつもう一方はミラーリングされたスレーブサイド(Mirrored Slave side)である。メモリモジュールに対するデータマイグレーションの適用例において、ミラーリングされたマスターサイドは、サーバ内で常に使用されるHAであり、かつミラーリングされたスレーブサイドは、バックアップのために使用され、かつマイグレーションのために待機するHAである。一時的なミラーペアを確立する当初から、スレーブHAは、マスターHAと同一の物理アドレスを有するが、スレーブHAおよびマスターHA内のデータは一致しない。従って、データマイグレーションが行われる必要がある。
【００５３】
具体的なデータマイグレーションプロセスでは、プロセッサはHAのすべてのアドレスをアドレスの昇順にトラバースし、かついくつかのアドレスは毎回関与する。
【００５４】
1.メモリモジュールからのアドレスPA0におけるデータをプロセッサに読み込む。
【００５５】
2.元のアドレスPA0にデータの再書き込みを行う。
【００５６】
3.マスターHAは、アドレス書き込み要求を受信し、かつ2つの操作を行う。その1つは、データをマスターHAのメモリのアドレスPA0に書き込むことである。
【００５７】
4.マスターHAは、サーバ内にミラーHAが存在することを知っており、故に、マスターHAの他の操作は、データパケットをスレーブHAに転送することである。
【００５８】
5.スレーブHAは、データパケットを受信し、かつデータをスレーブHAのメモリのアドレスPA0に書き込む。
【００５９】
この時点で、アドレスPA0は、2つのHAに同一の写しを有しており、これはマスターHAのPA0におけるデータが、スレーブHAのアドレスPA0にマイグレートされることと等しい。
【００６０】
プロセッサがマスターHAのすべてのアドレスのトラバースを完了するとき、HAにおけるメモリに対するデータマイグレーションが完了される。
【００６１】
ステップS207。プロセッサは、第1のデータを第1のエージェント装置の第1の物理アドレスに書き込む。
【００６２】
ステップS208。第1のエージェント装置は、第1のデータを受信し、かつ第1のデータを第2のエージェント装置に転送する。
【００６３】
ステップS209。第2のエージェント装置は、第1のデータを第2のメモリモジュール内の第1の物理アドレスに書き込む。
【００６４】
メモリモジュールに対するデータマイグレーションは、即時に完了されうるタスクではなく、かつ期間を消費する必要がある。時間の長さは、マイグレーションが行われることになるメモリモジュールの容量に正比例する。マイグレーションの期間中、2つのマスターデバイスが、実行状態のメモリモジュール3上で読み込みまたは書き込み操作を行ってもよい。1つのマスターデバイスは、実行状態のメモリモジュール3上のHA0であり、実行状態のメモリモジュール3のアドレスを徐々にトラバースし、かつアイドル状態のメモリモジュール4にデータをコピーし、他のマスターデバイスは、読み込みまたは書き込み要求を送信するサーバのバス(例えば、QPI)であり、要求は、実行状態のメモリモジュール3に対して正常に実行するサーバの読み込みまたは書き込み要求である。もしミラー関係が存在しない場合、HA0がいくつかのアドレスでデータをマイグレートし、かつQPIがメモリ値を変更するためにこれらのアドレス上で書き込み操作を送信するとき、2つのメモリモジュールにおけるデータは、マイグレーションが完了した後は不一致である。この場合、スイッチオーバーが発生しないことがある。ミラーリングは、すべての書き込み操作中に同時に2つのメモリモジュールにデータが書き込まれることを可能にし、それによって一致を保証する。
【００６５】
マイグレーションプロセス中、OSがマスターHAのアドレスHA1上で書き込み操作を行う必要がある場合、実際には前述のステップ2から5が行われる。従って、2つのHAにおけるデータ間の一致がさらに保証されてもよい。
【００６６】
ステップS210。プロセッサは、ミラー関係キャンセリング指示を第1のエージェント装置に送信し、かつ第1のメモリモジュールおよび第2のメモリモジュールをアイドル状態および実行状態にそれぞれ設定する。
【００６７】
ステップS211。第1のエージェント装置は、ミラー関係キャンセリング指示を受信し、かつ第2のエージェント装置とのミラー関係をキャンセルし、かつアイドル状態のメモリモジュールは、実行状態のメモリモジュールになる。
【００６８】
図6cに示されるように、実行状態のメモリモジュール内のデータすべてがマイグレートされた後、プロセッサは、HA0およびHA1間のミラー関係をキャンセルするためにミラー関係キャンセリング指示をHA0に送信し、かつ物理アドレスのセグメントを受信するエージェント装置をHA0からHA1に変更する。このように、実行状態の元のメモリモジュールはアイドル状態に切り替えられ、メモリモジュールの物理アドレスは無効になり、かつプロセッサは物理アドレスにデータを書き込むことができず、または物理アドレスからデータを読み込むことができない。アイドル状態の元のメモリモジュールは、実行状態に切り替えられ、実行状態の元のメモリモジュールと同一の物理アドレスPA0‐PA1を有し、かつ物理アドレスのセグメントに対してプロセッサの読み込みまたは書き込み操作を受信する。図8bに示されるように、アイドル状態のメモリモジュールおよび実行状態のメモリモジュールの役割が入れ替えられる。しかしながら、データマイグレーションおよび役割入れ替えの前後で、物理アドレスは変更されないままである。従って、データマイグレーションプロセスは、OSおよびOS上で実行するアプリケーションプログラムに対して不可視である。HA0に対応するメモリモジュールに対して、不可視であることが原因で、マイグレーションは、メモリモジュール内にOSのカーネルモードデータが存在するか否かと、データがアプリケーション(例えばデータベースのような)によって頻繁に占有されるか否かに関わらず完了されてもよく、それによって、メモリホットリムーブの実現可能性を大幅に向上させることができる。
【００６９】
ステップS212。プロセッサは、第1のメモリモジュールを取り除くために、第1のメモリモジュールの電源をオフにする。
【００７０】
データマイグレーションおよび役割入れ替えが完了した後、実行状態の元のメモリモジュールは、実際にアイドル状態に切り替えられる。メモリモジュールを取り除くために、メモリモジュールは電源をオフにされる。
【００７１】
図4は、メモリモジュールをホットリムーブするための手順を示しており、手続きは、以下のステップを含む。
【００７２】
a)コマンドが開始されることを示すボタンを押下する。
【００７３】
b)ボタンのLEDが点滅し始め、コマンドが受信されたことを示す。
【００７４】
c)BOISがOSにコマンドを転送し、OSにリムーブされるメモリに対してマイグレーションを行うよう指示する。
【００７５】
d)直近のステップと同時に、電源のLEDが点滅し始め、ホットリムーブ手続きが開始したことを示す。
【００７６】
e)OSはメモリに対してマイグレーションを行い、かつメモリのアドレスで実行しているサービスを別のメモリのアドレスにマイグレートする。
【００７７】
f)直近のステップと同時に、BIOSは、OSがデータマイグレーションを完了したか否かを繰り返し問い合わせし始める。
【００７８】
g)もしOSが正常にデータをマイグレートした場合、OSは正常マイグレーションを示す結果をBIOSに通知する。
【００７９】
h)もしOSがデータのマイグレーションに失敗した場合、電源のLEDを、ホットリムーブプロセスが終了することを示す常時点灯状態に復元し、かつボタンのLEDを常時点灯に設定し、ホットアドの失敗をユーザに通知する(LEDの操作は、実際にはBIOSの動きであり、かつBIOSはOSの通知を受信しないので、タイムアウトが発生し、従って、OSがデータのマイグレーションに失敗したことが判定される)。
【００８０】
i)もしBIOSがOSの通知を受信した場合、BIOSは物理アドレスを削除し、取り除かれるメモリモジュールのアドレスにアクセスするために実際的に要求を無効にする。
【００８１】
j)もし、BIOSの操作が成功する場合、メモリライザの電源をオフにし、かつ電源のLEDを常時消灯に設定し、ホットリムーブが完了したことを示す。
【００８２】
k)もし、BIOSの操作が失敗する場合、電源のLEDを、ホットリムーブプロセスが終了したことを示す常時点灯に復元し、かつボタンのLEDを常時点灯に設定し、ホットアドの失敗をユーザに通知する。
【００８３】
図4に示されるメモリモジュールをホットリムーブするための手続きとは異なり、本発明のこの実施形態に提供されるデータマイグレーション方法を使用することによって、メモリモジュールをホットリムーブすることは、OSの関与を必要とせず、かつマスターHAをコントロールすることにより、プロセッサ、すなわち、前述のBIOSプログラムによって完了される。すなわち、前述のステップc)からi)は、本発明のこの実施形態におけるステップS201からステップS211に置き換えられる。
【００８４】
ステップS213。ユーザのメモリモジュール追加要求を受信したとき、プロセッサは、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化し、追加されたメモリモジュールはアイドル状態に入る。
【００８５】
図6dに示されるように、図6cにおけるアイドル状態のメモリモジュール3が取り除かれた後、新たなメモリモジュール5がホットアドされる。ユーザは、ボタンのような操作インタフェースを使用して新たなメモリモジュールへのホットアド操作を開始してもよい。ホットアド操作のための手続きは、従来技術のものと同一である。
【００８６】
図5は、従来技術におけるメモリモジュールをホットアドする手続きであり、手続きは、以下のステップを含む。
【００８７】
A.コマンドが開始されることを示すボタンを押下する。
【００８８】
B.ボタンのLEDが点滅し始め、コマンドが受信されたことを示す。
【００８９】
C.メモリカード(メモリライザ)に電力を供給する。
【００９０】
D.電源のLEDが点滅し始め、かつホットアド手続きが完了する前は点滅し続ける。
【００９１】
E.BIOSがメモリに対して初期化を行う。
【００９２】
F.初期化されたメモリにアドレスを割り振る。
【００９３】
G.新たに追加されたメモリが利用可能であることをOSに通知し、かつ新たに追加されたメモリのアドレスおよび容量を同時に報告する。
【００９４】
H.OSは、メモリのオンライン(online)操作を完了する。
【００９５】
I.もしプロセス全体が正常に完了した場合、電源のLEDは常時点灯となり、ホットアド手続きが終了することを示す。
【００９６】
J.もしホットアド手続きが失敗した場合、電源のLEDは常時消灯に設定され、かつメモリライザの電源はオフとなり、同時に、ボタンのLEDは常時点灯に設定され、ホットアドの失敗をユーザに通知する。
【００９７】
しかしながら、本発明の実施形態では、新たなメモリモジュールがアイドル状態のメモリモジュールとして追加されるときは、前述の手続きにおけるステップF)からステップH)は、遂行される必要はない。すなわち、図6dにおけるメモリモジュール5に電力が供給され、かつメモリモジュール5が初期化される。しかしながら、メモリモジュール5に割り振られる物理アドレスがないと、その結果、メモリモジュール5は、サーバにおいてアイドル状態のメモリモジュールとなり(図6eに示される)、実行状態のメモリモジュール1、2、および4をホットリムーブするために、HAアドレスから別のHAアドレスにマイグレートする状態を提供する。
【００９８】
本発明のこの実施形態において提供されるサーバ内のメモリモジュールに対するデータマイグレーション方法に基づいて、2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、プロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。従って、実行状態のメモリモジュールは、便利にホットリムーブされてもよく、かつ実行メモリモジュールに対するプロセッサの読み込みまたは書き込み操作がデータマイグレーションプロセスの間にさらに受信されてもよく、それによって、データエラーは発生しない。
【００９９】
図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とのミラー関係をキャンセルするようにさらに構成される。
【０１００】
2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、本発明のこの実施形態に提供されるサーバ内のプロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。
【０１０１】
本発明は、サーバの別の実施形態をさらに提供する。サーバは、
プロセッサと、プロセッサに接続された第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のメモリモジュールの電源をオフにするようにさらに構成され、かつ
プロセッサは、ユーザのメモリモジュール追加要求を受信したとき、追加されたメモリモジュールに電力を供給し、かつ追加されたメモリモジュールを初期化するようにさらに構成され、かつ、追加されたメモリモジュールはアイドルメモリモジュールになる。
【０１０２】
2つのメモリモジュールのエージェント装置間にミラー関係を確立することによって、本発明のこの実施形態において提供されるサーバ内のプロセッサは、エージェント装置に、2つのメモリモジュール間のデータマイグレーションを行うように指示し、1つのメモリモジュールから他のメモリモジュールへのデータのマイグレーションを完了する。データマイグレーションプロセス全体は、オペレーティングシステムの参加を必要とせず、かつ時間の短い期間を消費し、それによって、サーバ内のメモリモジュールに対する便利なデータマイグレーションを実施する。従って、実行状態のメモリモジュールは、便利にホットリムーブされてもよく、かつ実行メモリモジュールに対するプロセッサの読み込みまたは書き込み操作がデータマイグレーションプロセスの間にさらに受信されてもよく、それによって、データエラーは発生しない。
【０１０３】
便利かつ簡潔な説明を目的として、前述のデバイスおよびモジュールの詳細な作業プロセスについては、前述の方法の実施形態における対応するプロセスを参照し、かつここでは詳細が再度説明されないことは当業者により明確に理解されてもよい。
【０１０４】
本願において提供されるいくつかの実施形態において、開示されたデバイスおよび方法が、他の手段において実施されてもよいことは理解されるべきである。例えば、説明された装置の実施形態は、単なる例示である。例えば、モジュール部は、単なる論理機能部であり、かつ他の部は、実装における他の部であってもよい。例えば、複数のモジュールまたはコンポーネントは、別のデバイスに組み合わせられまたは統合されてもよく、あるいは幾らかの特徴が無視されまたは行われなくてもよい。さらに、表示されまたは論じられた相互結合若しくは直接結合または通信接続は、いくつかの通信インタフェースを介して実施されてもよい。装置またはモジュール間の間接結合または通信接続は、電子的、機械的、または他の形式で実施されてもよい。
【０１０５】
別個の部分として説明されたモジュールは、物理的に別個であってもなくてもよく、かつモジュールとして表示された部分は、物理ユニットであってもなくてもよく、1つの位置に置かれてもよく、または複数のネットワークユニットに分配されてもよい。モジュールの一部または全体は、実施形態の解決策の目的を達成するために、実際のニーズに応じて選択されてもよい。
【０１０６】
さらに、本発明の実施形態における機能モジュールは、1つの処理モジュールに統合されてもよく、またはモジュールのそれぞれが物理的に単独で存在してもよく、または2つまたはそれ以上のモジュールが1つのモジュールに統合される。
【０１０７】
実施形態の前述の説明に基づいて、各実装方法が必要な一般的なハードウェアプラットフォームに加えられたソフトウェアによってまたはハードウェアによって実施されてもよいということが当業者は明確に理解できる。そのような理解に基づいて、前述の本質的な技術的解決策または従来技術に寄与する部分は、ソフトウェア製品の形態で実施されてもよい。ソフトウェア製品は、ROM/RAM、ハードディスク、または光ディスクのようなコンピュータ読み取り可能な記憶媒体に記憶され、かつ、実施形態または実施形態の一部に説明された方法を行うよう、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイス等であってもよい)に指示するためのいくつかの指示を含む。
【０１０８】
前述の実装方法は、技術的解決策の保護範囲を限定することを意図していない。前述の実装方法の精神と原則から逸脱することなくなされる任意の修正、等価の置換、改良は、技術的解決策の保護範囲内に入るべきものである。
【符号の説明】
【０１０９】
１１  プロセッサ
１２  第1のエージェント装置
１３  第2のエージェント装置
１４  第1のメモリモジュール
１５  第2のメモリモジュール
１０００  サーバ
【図１】
0006407283.tif 000002
【図２】
0006407283.tif 000003
【図３】
0006407283.tif 000004
【図４】
0006407283.tif 000005
【図５】
0006407283.tif 000006
【図６ａ】
0006407283.tif 000007
【図６ｂ】
0006407283.tif 000008
【図６ｃ】
0006407283.tif 000009
【図６ｄ】
0006407283.tif 000010
【図６ｅ】
0006407283.tif 000011
【図７ａ】
0006407283.tif 000012
【図７ｂ】
0006407283.tif 000013
【図８ａ】
0006407283.tif 000014
【図８ｂ】
0006407283.tif 000015
【図９】
0006407283.tif 000016