JP5186367B2 - メモリ・マイグレーションのシステムおよび方法 - Google Patents

メモリ・マイグレーションのシステムおよび方法 Download PDF

Info

Publication number
JP5186367B2
JP5186367B2 JP2008518866A JP2008518866A JP5186367B2 JP 5186367 B2 JP5186367 B2 JP 5186367B2 JP 2008518866 A JP2008518866 A JP 2008518866A JP 2008518866 A JP2008518866 A JP 2008518866A JP 5186367 B2 JP5186367 B2 JP 5186367B2
Authority
JP
Japan
Prior art keywords
memory
memory layer
data
computer
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008518866A
Other languages
English (en)
Other versions
JP2009500705A5 (ja
JP2009500705A (ja
Inventor
ボス、グレゴリー、ジェンセン
ドーソン、クリストファー、ジェームズ
セカンド、リック、アレン ハミルトン
ウォーターズ、ティモシー、モフェット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009500705A publication Critical patent/JP2009500705A/ja
Publication of JP2009500705A5 publication Critical patent/JP2009500705A5/ja
Application granted granted Critical
Publication of JP5186367B2 publication Critical patent/JP5186367B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータ・メモリの分野に関する。より具体的には、本発明は、自動的に制御されるメモリ・マイグレーション(memory migration)に関する。
多数の異なるタイプのコンピューティング・システムが、全世界で広く行き渡って使用されている。これらのコンピューティング・システムは、パーソナル・コンピュータ、サーバ、メインフレーム、ならびにさまざまな独立型コンピューティング・デバイスおよび組み込みコンピューティング・デバイスを含む。不規則に延び広がるクライアント−サーバ・システムが存在し、アプリケーションおよび情報は、多数のPCネットワーク、メインフレーム、およびミニコンピュータにまたがって分散している。ネットワークによって接続された分散システムでは、ユーザが、多数のアプリケーション・プログラム、データベース、ネットワーク・システム、オペレーティング・システム、およびメインフレーム・アプリケーションにアクセスすることができる。コンピュータは、ワード・プロセッシング、スプレッドシート、会計、電子メール、voice over Internet protocol遠隔通信、およびファクシミリを含むソフトウェア・アプリケーションのホストを個人および会社に与える。
コンピュータなどのディジタル・プロセッサのユーザは、ますます複雑で困難なタスクを処理するために、そのようなシステムにますます高まる性能を要求し続ける。さらに、処理速度は、メイン・メモリ・アクセスの速度よりはるかにすばやく向上してきた。その結果、キャッシュ・メモリまたはキャッシュが、しばしば、相対的にコスト効率のよい形で性能を高めるために、多数のそのようなシステムで使用されている。多数の近代コンピュータは、複数のプログラムまたはプログラムのスレッドがディジタル・プロセッサの実行パイプライン内で交互に実行される、「マルチタスキング」または「マルチスレッディング」もサポートする。高性能単一チップマイクロプロセッサの共通のアーキテクチャは、高速実行のための頻繁に使用される命令の小さい単純化されたセットの特徴がある、縮小命令セット・コンピュータ(RISC)アーキテクチャである。したがって、RISCアーキテクチャでは、1つの複合命令が、複数のステップで非常にすばやく実行される単純な命令の小さいセットを含む。これらのステップは、特定の単純命令を実行するように適合された実行ユニット内で実行される。スーパースカラ・アーキテクチャでは、これらの実行ユニットが、通常、並列に動作する、ロード/ストア・ユニット、整数算術/論理ユニット、浮動小数点算術/論理ユニット、およびグラフィカル論理ユニットを含む。プロセッサ・アーキテクチャでは、オペレーティング・システムが、プロセッサおよびプロセッサの周辺の構成要素の動作を制御する。実行可能アプリケーション・プログラムは、コンピュータのハード・ドライブに格納される。コンピュータのプロセッサは、ユーザ入力に応答してアプリケーション・プログラムを実行させる。
メモリ・ストレージは、現在存在するほとんどすべてのソフトウェア・アプリケーションのクリティカル構成要素である。ストレージ産業が成熟するにつれて、ストレージ・オプションの数が大幅に増え、データ入力およびデータ検索の性能が大幅に向上してきた。ストレージ・オプションは、磁気テープ、ハード・ディスク・ドライブ(HDD)、コンパクト・ディスク(CD)、ディジタル・ビデオ・ディスク(DVD)、および他の媒体を含む。ハード・ディスク・ドライブのカテゴリ内では、単純でより信頼性の低い独立HDDから高性能冗長ディスク・アレイまでの範囲にわたる豊富なストレージ・オプションが存在する。これが、仮想ストレージ環境を複雑にする。ディスク・アレイの主要なメトリックには、アクセス速度および冗長性が含まれる。複雑な仮想ストレージ環境には、単一コンピューティング環境を超えて延びるストレージ・アーキテクチャが含まれる。そのような環境に、ストレージ・エリア・ネットワーク(SAN)が含まれる。各ストレージ機構は、関連するコストおよびサービス・レベルを有し、この両方が、大きく変化する可能性がある。
実際には、多数のアプリケーション・プログラムが、使用のピーク期間を経験し、その結果、より厳密なサービス・レベル要件を経験する。これらのプログラムは、オフピーク期間中の比較的使用量の少ない期間を、その結果のオフピーク期間中の低いサービス・レベル要件と共に経験する。アプリケーション・プログラム開発者は、予想される使用、コスト、サービス・レベル要件、ならびに他の要件に基づいて、どのストレージ機構がアプリケーション・プログラムによって要求されるかを判断しなければならない。たとえば、バックアップ/リカバリ・システムが、その消失が致命的に有害である場合がある、頻繁に使用されるファイルまたは非常に重要なファイルを格納するために、高サービス・レベル・ストレージ・サブシステムを要求する場合がある。しばしば、予想された必要は、プログラムがインストールされるときに生じる実際の必要と異なる。さらに、ストレージの必要は、経時的に変化する場合がある。
現在、アプリケーション・プログラムの予想される必要が、実際の必要と異なるときに、アプリケーション・プログラム管理者は、ストレージ管理者にストレージ・サービスの変更を要求する。そのような変更は、破壊的であり、ファイルをあるストレージ・サブシステムから別のストレージ・サブシステムに物理的に移動し、あまり利用されていないストレージを再生利用し、追加ストレージを提供するのにダウンタイムを必要とする。変化する必要が、ストレージ・レイアウトの変更を要求する場合もある。レイアウトの変更は、通常、代替ストレージ・レイアウトが変化する需要を満足するのを容易にするために、一時的なファイルのマイグレーションを伴う。
本発明の目的は、複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、およびプログラムを提供することである。
第1の態様によれば、複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションの方法であって、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、1つまたは複数のアプリケーション・プログラムの1つまたは複数のサービス・レベル仕様を判定することとのうちの少なくとも1つを含み、さらに、監視されたアクセスのうちの少なくとも1つおよびすべての判定されたサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することと、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することとを含む、方法が提供される。
第2の態様によれば、事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニットを含む自動マイグレーション・メモリ・ストレージ・システムであって、1つまたは複数のアプリケーション・プログラムの1つまたは複数のサービス・レベル仕様を格納するデータ・ストアと、メモリ・ストレージ・ユニットのうちの少なくとも1つに格納されたアプリケーション・プログラムのデータのアクセスを監視する監視構成要素とのうちの少なくとも1つをさらに含み、監視されたアクセスのうちの少なくとも1つおよびすべてのサービス・レベル仕様から、複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する分析構成要素と、決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する転送制御構成要素とをさらに含む自動マイグレーション・メモリ・ストレージ・システムが提供される。
第3の態様によれば、コンピュータに、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することと、1つまたは複数のアプリケーション・プログラムの1つまたは複数のサービス・レベル仕様を判定することとのうちの少なくとも1つを含む動作を実行させるメモリ・自動マイグレーションを実行する命令を含む機械アクセス可能媒体であって、動作は、監視されたアクセスのうちの少なくとも1つおよびすべての判定されたサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することと、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することとをさらに実行させるプログラムが提供される。
好ましくは、アプリケーション・プログラム使用の崩壊をほとんどまたは全く伴わない、あるメモリ・サブシステムから別のメモリ・サブシステムへファイルを自動的にマイグレーションする形が提供される。
複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションのシステム、方法、および媒体が提供される。一実施形態は、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、このプロセスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定する。この方法は、監視されたアクセスおよびサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することを含む。データは、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間で自動的に転送される。
実施形態は、事前に決定可能な性能特性にそれぞれが関連する複数のメモリ・ストレージ・ユニットを含む自動マイグレーション・メモリ・ストレージ・システムを含む。データ・ストアが、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を格納する。監視構成要素が、メモリ・ストレージ・ユニットのうちの少なくとも1つに格納されたアプリケーション・プログラムのデータのアクセスを監視する。分析構成要素が、監視されたアクセスおよびサービス・レベル仕様から、複数のメモリ・ストレージ・ユニットの間でのデータの再割振りを決定する。転送制御構成要素が、決定された再割振りに応答して、あるメモリ・ストレージ・ユニットから別のメモリ・ストレージ・ユニットにデータを転送する。
本発明のもう1つの実施形態は、データ処理システムによって実行されるときに、そのシステムに、メモリ・自動マイグレーションを実行する一連の動作を実行させるのに有効な命令を含む機械アクセス可能媒体を提供する。この動作は、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、この動作は、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定することを含む。この動作は、監視されたアクセスおよびサービス・レベル仕様から、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を判定することをも含む。データは、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために複数のメモリ・ストレージ・デバイスの間で自動的に転送される。
本発明の実施形態を、これから、例としてのみ、添付図面を参照して説明する。
類似する符号は、類似する要素を示す場合がある。
次は、添付図面に示された本発明の例の実施形態の詳細な説明である。例の実施形態は、本発明を明瞭に伝えるほどに詳細である。しかし、提供される詳細の量は、実施形態の予想される変形形態を限定することを意図されたものではなく、逆に、その意図は、添付の特許請求の範囲によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含むことである。下の詳細な説明は、そのような実施形態を当業者に明白にするように計画されている。
複数のメモリ・デバイスの間でデータの自動マイグレーションを実行するシステム、方法、および媒体を開示する。一実施形態では、アプリケーション・プログラム・データのメモリ・アクセスが、1つまたは複数のアプリケーション・プログラムのそれぞれについて監視される。データを、それぞれがそれ自体の性能特性を有する複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納することができる。監視されるアクセスは、複数のメモリ・ストレージ・デバイスの間での、通常はファイルに格納されるアプリケーション・プログラム・データの最適分配を決定するために評価される。この評価は、各アプリケーション・プログラムのサービス・レベル仕様を考慮に入れたものである。周期的に、データを、あるメモリ・ストレージ・デバイスから別のメモリ・ストレージ・デバイスに自動的に転送して、サービス・レベル仕様と一貫する、使用可能メモリ・ストレージ・デバイスの間での決定された最適割振りを達成することができる。
図1に、本発明の一実施形態に従って実施される、コンピュータまたはサーバなどのディジタル・システム116を示す。ディジタル・システム116は、基本入出力システム(BIOS)コード104およびオペレーティング・システム(OS)コード106に従って動作することができるプロセッサ100を含む。BIOSコードおよびOSコードは、メモリ108に格納される。BIOSコードは、通常は読取専用メモリ(ROM)に格納され、OSコードは、通常はディジタル・システム116のハード・ドライブに格納される。メモリ108は、プロセッサ100による実行のための他のプログラムをも格納し、データ109を格納する。ディジタル・システム116は、マルチスレッド式のプロセッサ100の物理的に近くに配置されたレベル2(L2)キャッシュ102を含む。
プロセッサ100は、オンチップのレベル1(L1)キャッシュ190、命令バッファ130、制御回路網160、および実行ユニット150を含む。L1キャッシュ190は、実行のときに近い命令を受け取り、格納する。命令バッファ130は、命令キューを形成し、実行ユニットに発行される命令の順序に対する制御を可能にする。実行ユニット150は、命令によって要求された動作を実行する。実行ユニット150には、ロード/ストア・ユニット、整数算術/論理ユニット、浮動小数点算術/論理ユニット、およびグラフィカル論理ユニットを含めることができる。各実行ユニットは、命令バッファ130から受け取られた命令の実行におけるステップを実行するステージを含む。制御回路網160は、命令バッファ130および実行ユニット150を制御する。制御回路網160は、制御判断に関連する情報をも実行ユニット150から受け取る。たとえば、制御回路網160は、実行パイプライン内のデータ・キャッシュ・ミスの場合に通知される。
ディジタル・システム116は、通常、Trusted Platform Module、メモリ・コントローラ、ランダム・アクセス・メモリ(RAM)、周辺ドライバ、システム・モニタ、キーボード、カラー・ビデオ・モニタ、1つまたは複数のフレキシブル・ディスケット・ドライブ、固定ディスク・ハード・ドライブ、CDドライブ、およびDVDドライブなどの1つまたは複数の取外し可能不揮発性媒体ドライブ、マウスなどのポインティング・デバイス、ならびにネットワーク・インターフェース・アダプタなど、図示されていない他の構成要素およびサブシステムをも含む。ディジタル・システム116には、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム・コンピュータ、ノートブックコンピュータまたはラップトップ・コンピュータ、デスクトップ・コンピュータ、あるいは類似物を含めることができる。プロセッサ100は、入出力デバイス110によってサーバ112と通信することもできる。サーバ112は、ディジタル・システム116を他のコンピュータおよびサーバ114に接続する。したがって、ディジタル・システム116は、インターネットまたはローカル・イントラネットあるいはその両方などのコンピュータのネットワーク内にあるものとすることができる。さらに、サーバ112は、テープ・ドライブ・ストレージ、ハード・ディスク・アレイ、RAM、ROMなどを含む別のメモリ118へのアクセスを制御することができる。
ディジタル・システム116の動作の1つのモードで、L2キャッシュは、メモリ108から、プロセッサ100のパイプライン内で処理されると期待されるデータおよび命令を受け取る。L2キャッシュ102は、より高い速度を達成するために物理的にプロセッサ100の近くに配置された高速メモリである。L2キャッシュは、メモリ108から複数の命令スレッドの命令を受け取る。そのような命令に、分岐命令が含まれる場合がある。L1キャッシュ190は、プロセッサ内に配置され、好ましくはL2キャッシュ102から受け取られるデータおよび命令を含む。理想的には、あるプログラム命令が実行されるときに接近するときに、その命令が、データがある場合にそのデータと共に、まずL2キャッシュに渡され、その後、実行の時がほぼ切迫しているときに、L1キャッシュに渡される。
実行ユニット150は、L1キャッシュ190から受け取った命令を実行する。実行ユニット150には、ロード/ストア・ユニット、整数算術/論理ユニット、浮動小数点算術/論理ユニット、およびグラフィカル論理ユニットを含めることができる。ユニットのそれぞれを、命令の特定の組を実行するように適合させることができる。命令を、実行のために異なる実行ユニットに並列にサブミットすることができる。一実施形態で、2つの実行ユニットが、ある種の命令を実行するために同時に使用される。実行ユニット150によって処理されるデータは、整数レジスタ・ファイルおよび浮動小数点レジスタ・ファイル(図示せず)に格納でき、そこからアクセス可能である。これらのレジスタ・ファイルに格納されたデータは、オンボードのL1キャッシュ190または外部キャッシュもしくは外部メモリから来ることができ、あるいはそれに転送されることができる。プロセッサは、ロード命令を実行することによって、L1キャッシュなどのメモリからプロセッサのレジスタにデータをロードすることができる。プロセッサは、ストア命令を実行することによって、レジスタからメモリにデータをストアすることができる。
したがって、図1のシステムに、サーバによってサービスされるネットワーク内で接続された、すぐ上で説明したプロセッサおよびメモリを有する複数のコンピュータを含めることができる。サーバは、ネットワーク内のコンピュータの間の通信を容易にし、調整する。各コンピュータは、そのオペレーティング・システム、BIOS、およびアプリケーション・プログラムを実行するためのコード、ならびにファイルおよびデータを格納するために、それ自体のメモリを有する。コンピュータのメモリは、読取専用メモリ(ROM)、DRAMおよびSRAMで実施されたキャッシュ・メモリ、ハード・ディスク・ドライブ、CDドライブ、およびDVDドライブを含む。サーバも、それ自体のメモリを有し、テープ・ドライブおよびハード・ディスク・アレイなどの他のメモリへのアクセスを制御することができる。各コンピュータは、それ自体のアプリケーション・プログラムを格納することができる。データベースなど、一部のアプリケーション・プログラムは、サーバ内に常駐することができる。したがって、各コンピュータは、そのサーバに格納された同一のデータベースにアクセスすることができる。さらに、各コンピュータは、サーバによって他のメモリにアクセスすることができる。したがって、コンピュータおよびサーバのプロセッサに近い、より高速でより高コストのメモリと、プロセッサから遠い、より低速でより安価なメモリとを有する、メモリ・グラデーション(memory gradation)が存在する。
図1のシステムの動作の過程において、データは、あるメモリ位置から別のメモリ位置に移動される。たとえば、データが、プロセッサのローカル・キャッシュからハード・ドライブ・システム・メモリに移動される場合がある。データは、通常、ハード・ドライブ上のファイルに編成される。ファイルには、テキスト、オブジェクト、コンピュータ・コードなどを含めることができる。したがって、いくつかのデータ・ファイルが、コンピュータのハード・ドライブに格納される。他のファイルは、CDまたはDVDに格納することができる。バックアップ・メモリ・デバイスをコンピュータに取外し可能に接続して、ハード・ドライブからデータをバックアップすることもできる。より大型のシステムでは、一部のデータ・ファイルを、サーバ112を介してアクセスされるテープにバックアップすることができる。他の磁気メモリまたは光メモリを使用することができる。
一般に、メモリ・アクセス速度は、プロセッサに近づくにつれて高まる。したがって、キャッシュ・メモリ・アクセスは、高速ディスク・アクセスより高速であり、高速ディスク・アクセスは、リモート・ディスク・アクセスより高速であり、リモート・ディスク・アクセスは、オフライン・ストレージ・アクセスより高速である。逆に、メモリは、メモリ・アクセス速度が低下するにつれて、コストが減る。したがって、キャッシュ・メモリは、高速ディスクなどよりコストが高い。また、メモリ・サイズは、メモリ速度の低下に伴って増加する。したがって、たとえば、高速ディスクは、キャッシュ・メモリより大きい。したがって、一般に、頻繁に使用されるか変更されるデータは、好ましくはキャッシュまたは高速ディスク内に常駐する。より低い頻度で使用されるか変更されるデータは、リモート・ディスク・アレイに常駐することができる。ある時間期間にわたってアーカイブされなければならないデータは、テープ・ドライブ・システムによってテープに格納することができる。
メモリ使用は、ソフトウェアの開発における重要な構成要素である。ソフトウェア開発者は、使用可能なメモリおよび期待される使用を予想してソフトウェアを記述する。たとえば、ソフトウェア開発者は、あるプログラムCD上のファイルの総数のうちの一部のファイルだけが、通常のインストールで使用されると予想する場合がある。したがって、セットアップ・プログラムが、そのプログラムCDからプログラム・ファイルの一部だけをハード・ドライブにロードする場合がある。ユーザが、ハード・ドライブにロードされていない特徴を選択するときには、そのユーザは、選択された特徴を実施するファイルを取り出すためにプログラムCDを挿入するように促される。明らかに、ソフトウェア開発者が、ソフトウェアの動作の過程でのメモリの実際の使用について思い違いをする場合がある。したがって、諸実施形態は、実際の使用に従ってメモリ割振りを自動的に適合させることができる。
しばしば、あるアプリケーション・プログラムによって生成され、操作されるデータ・ファイルは、コンピュータのハード・ドライブに格納される。これらのファイルは、処理のためにコンピュータのキャッシュに呼び込まれる可能性があるデータおよび命令を含む。動作の過程で、ある種のファイルが、休止状態になる、すなわち、そのファイルが、比較的長い時間にわたって使用されなくなる。その場合に、これらのファイルを、ディスク・アレイなど、コストがより低く、より多くの使用可能な余地を有する、より離れたメモリに格納することができる。その後、ディスク・アレイ内で休止しているファイルを、テープ・ストレージに転送することができる。したがって、諸実施形態は、メモリ使用量を監視し、使用量統計をコンパイルし、使用量に従ってファイルをあるメモリ・デバイスから別のメモリ・デバイスに転送するシステムを含む。
図2に、メモリ使用量を監視し、メモリを動的に割り振るシステム200の実施形態を示す。一般に、メモリを、層で説明し、実施することができる。たとえば、メモリを、キャッシュ・メモリ、高速ディスク、リモート・ディスク、およびオフライン・ストレージとすることができる。キャッシュ・メモリは、コンピュータ・プロセッサに近く、通常は高速ランダム・アクセス・メモリ(RAM)で実施することができる。ハード・ドライブなどの高速ディスク・ストレージは、プロセッサにローカルである。リモート・ディスク・アレイも、アレイにアクセスするおそらくは複数のコンピュータを有する、メモリの第3層として使用することができる。第4層すなわちオフライン・ストレージは、磁気テープを含む。オフライン・ストレージは、保存されなければならないが滅多に使用されない可能性が高いデータのアーカイブとして働く。
メモリの3つの層202、204、および206が示されているが、異なる個数の層をサポートすることができる。たとえば、メモリ層#1に、高速ディスクを含めることができ、メモリ層#2に、リモート・ディスクを含めることができ、メモリ層#3に、テープ・ドライブを含めることができる。他の層に、キャッシュ・メモリ、バックアップ媒体などを含めることができる。データを、ある層から別の層に転送することができる。一実施形態で、データを、層1と2との間、1と3との間、および2と3との間で転送することができる。ある層から別の層へのデータの転送は、メモリ転送コントローラ214によって制御される。メモリ転送コントローラ214は、分析モジュール212またはユーザ・インターフェース216からの制御信号に応答する。これらの制御信号に応答して、メモリ転送コントローラ214は、あるメモリ層から別のメモリ層への転送を指示する。
メモリ・マイグレーションのシステム200は、さらに、メモリの各層の使用量を監視し、使用量統計を累積する使用量モニタ208を含む。複数のアプリケーション・プログラムが、コンピュータまたはコンピュータのネットワーク上で同時に動作している場合がある。各アプリケーションは、それ自体のメモリの使用量を作ることを試みる。したがって、命令およびデータが、もう1つのプログラムの実行中に層1内のハード・ドライブからアクセスされる場合がある。一部のアプリケーションが、ハード・ドライブとコンピュータ・プロセッサのキャッシュとの間で非常に頻繁な基礎でデータを転送する場合がある。一部のアプリケーションが、これを頻繁でない基礎で行う場合がある。システム200の使用量モニタ208は、ファイル・アクセス・レートを監視し、データを分析モジュール212に供給する。使用量モニタ208は、アクセス時間、ファイル・サイズなどに関するデータも監視し、供給する。
使用量統計に、あるファイルがどれほど頻繁にアクセスされまたは変更されるかを含めることができる。使用量統計を使用することによって、諸実施形態は、システム内で使用可能なさまざまなメモリ実施態様へのアクセスを動的に知的に割り振ることができる。これらの統計は、あるファイルが、そのファイルをメモリのより上位の層に転送することを正当化するのに十分に頻繁に、メモリのある層からアクセスされていることを示すことができる。逆に、使用量統計は、あるファイルが、そのファイルをメモリのより下位の層に格納することを正当化するほどに低い頻度でアクセスされていることを示すことができる。したがって、あるファイルを、ある時点で高速ローカル・ディスクに割り振り、別の時点でリモート・ディスクに割り振ることができる。同様に、1日のある部分の間にテープに割り振られるファイルを、1日の別の部分の間にリモート・ディスクに割り振ることができる。使用量のヒストリ的傾向および現在の傾向を調べることによって、諸実施形態は、効率的かつ自動的にメモリを再割振りすることができる。したがって、諸実施形態は、ファイル使用量に関するヒストリカル情報を監視し、維持する。ヒストリカル・データは、それに対して現在の使用量傾向が比較されるベースラインを形成することができる。傾向を示すメトリックの例は、最終アクセス時刻、変更の時刻、ファイル・サイズ、ある動作(読取、書込、変更など)を実行する時間の長さ、および経時的なアクセスの頻度を含む。諸実施形態は、ファイルがどこに配置されるか、アプリケーション機能要件から生じる特殊なアクセス要件、性能要件などをも監視する。
分析モジュール212は、使用量モニタ208によって判定された使用量データを分析する。したがって、たとえば、分析モジュール212は、ファイル使用の頻度が低いのでまたはファイルがかなりの長さの時間にわたって休止になっているので、監視されるアプリケーションのファイルを層2のリモート・ディスクに転送しなければならないと決定することができる。したがって、分析モジュール212は、メモリの層ごとに使用閾値パラメータを含むことができる。所与の閾値未満の使用量は、分析モジュール212に、メモリのある層からメモリのより下位の層へのファイルの転送を指示するためにメモリ転送コントローラ214に制御信号を送るように促すことができる。分析モジュール212は、ユーザ・インターフェース216によって分析パラメータを入手することができ、ユーザ・インターフェース216は、ユーザ入力およびシステム200の機能の制御を可能にするために、windows(R)様メニューと共に、キーボード、マウス、およびビデオ・モニタを含む。
コンピュータまたはコンピュータのネットワークによるメモリ使用量は、時刻を含むさまざまな要因のゆえに変化する可能性がある。たとえば、コンピュータのネットワークによってアクセスされるデータ・ベース・プログラムは、1日の業務時間中には使用される頻度が高い可能性があるが、勤務時間後には、その使用は、需要が少ない状態になる。実際に、一部のプログラムは、1日のある部分の間にメモリ・アクセスを激しく要求するが、他のプログラムは、1日の別の部分の間にメモリ・アクセスを激しく要求する。したがって、諸実施形態は、時間−需要に従ってメモリを割り振ることを可能にする。
メモリ使用量は、サービス・レベル仕様に従って、メモリ・アクセスの割振りについて提供されるサービス・レベル・アグリーメント(SLA)に従って判定することもできる。たとえば、あるユーザが、異なるSLA下の第2ユーザより高いメモリ・アクセスの優先順位を与えるサービスレベルを提供するSLAを有する場合がある。諸実施形態は、そのようなアグリーメントに従うメモリ・アクセス割振りならびにSLAの変更に従う再割振りを可能にする。サービス・レベル・データ・ストア210は、あるユーザ、コンピュータ端末、またはアプリケーション・プログラムに与えられるサービスレベルに関する情報を格納する。たとえば、所与のアプリケーションのサービス・レベルに、午後2時から午後4時の時間中に高い優先順位を与えることができる。これらのサービス・レベル仕様は、ユーザ・インターフェース216によってサービス・レベル・データ・ストア210に入力される。したがって、サービス・レベル・データ・ストア210を、時折、サービス・レベル仕様の変更が発生するとき、または新しいサービスレベルが実施されるときに、更新することができる。
最新のサービス・レベル仕様は、ファイルまたはデータのブロックあるいはその両方のメモリ・マイグレーションを指示するようにメモリ転送コントローラ214に知らせるかどうか、およびいつそれを知らせるかに影響するために、分析モジュール212から使用可能である。したがって、一実施形態で、分析モジュール212は、指定された時間中に特定のアプリケーションに与えられるサービスの所与のレベルから、メモリ・マイグレーションが行われる場合に、どのメモリ・マイグレーションを行わなければならないかを判定することができる。次に、分析モジュール212は、規定されたメモリ・マイグレーションを指示するようにメモリ転送コントローラ214に知らせる。したがって、ピーク使用期間が始まるか終わるときに、あるメモリ層から別のメモリ層へのファイルのマイグレーションを、サービス・レベル・データ・ストア210に格納され、分析モジュール212に送られたサービス・レベル仕様に従って指示することができる。
データが複数のメモリ層のどこに格納されるかは、サービスクラスの関数であり、各サービス・クラスは、サービス・レベル仕様の異なる組を含む。したがって、1つのシステムが、さまざまなサービス・クラスを実施することができる。あるサービスクラスのサービス・レベル仕様は、ビジネス考慮事項ならびに処理される情報のクラスを含むさまざまな要因に依存するものとすることができる。ビジネス考慮事項は、可用性、復元可能性、セキュリティ、性能、および価値などの問題を含む。情報クラスには、電子メール、意思決定サポート、データ・ウェアハウス、オーディオ/ビジュアルなどを含めることができる。データは、ブロック単位、オブジェクト単位、またはバイナリおよび圧縮ビットマップなどの複数のフォーマットのファイル単位とすることができ、情報またはコンピュータ・コードを含めることができる。したがって、さまざまなサービス・レベル仕様を、メモリ・アクセス割振り決断を行うときに考慮に入れることができる。
前に注記したように、ユーザ・インターフェース216は、サービス・レベル・データ・ストア210へのサービス・レベル仕様のユーザ入力を可能にし、分析モジュール212への閾値および制御パラメータのユーザ入力を可能にする。ユーザ・インターフェース216は、ユーザが、メモリ転送コントローラ214にあるメモリ層から別のメモリ層へのファイルの転送を指示させるために介入することをも可能にする。したがって、システム管理者は、したがって、ユーザが指示した目的のためにメモリを割り振るために介入することができる。これらのユーザが指示した変更は、分析モジュール212によって決定される自動マイグレーションの対象にすることができ、あるいは、いくつかの実施形態もしくは動作のモードで、分析モジュール212のマイグレーション判断をオーバーライドすることができる。
一実施形態で、メモリ転送コントローラ214は、分析モジュール212またはユーザ・インターフェース216からの制御信号に応答してメモリ読取信号またはメモリ書込信号を生成するかトリガする回路網を含む。メモリ転送コントローラ214は、より上位のメモリ層からより下位のメモリ層にデータを転送するために書込信号をトリガしまたは発行することができ、より下位の層からより上位の層にデータを転送するために読取信号をトリガしまたは発行することができる。したがって、たとえば、分析モジュール212は、使用量モニタ208から入手された使用量データに基づいて、現在はより上位の層に格納されているプログラムのファイルを、サービス・レベル・データ・ストア210から入手されたサービス・レベル仕様と一貫して、より下位の層に格納できると判定することができる。その後、メモリ転送コントローラ214は、そのファイルをより上位層のメモリからより下位層のメモリにコピーするために書込信号をトリガし、または発行することができる。
メモリ転送コントローラ214は、データがどこにマイグレーションされたかに関わりなく、データのアクセスを可能にするための回路網をも含む。たとえば、ローカル・ハード・ドライブに格納されたファイルが、低い頻度で使用されると判定され、分析モジュール212が、そのファイルが所与のサービス・レベル・アグリーメントの仕様の下でリモート・ディスクに転送可能であると判定すると仮定する。この転送が完了したときに、データは、異なるメモリ・デバイス内に異なるアドレスを用いて配置される。マイグレーションされたデータへのアクセスを試みるアプリケーション・プログラムのプロセスは、このデータを新しいアドレスで見つけることが、論理的にできなければならない。これは、複数の形で達成することができる。たとえば、一実施形態では、アプリケーションに既知のファイル名と、そのファイル名に対応するファイル内のデータが格納されているメモリ・デバイス内の位置との間のマップを維持するディレクトリが作成される。このディレクトリは、ファイルのデータのマイグレーションごとに更新される。したがって、アプリケーション・プログラムは、このディレクトリからメモリ内のデータの現在のアドレスを確かめることができる。したがって、この非仮想実施形態では、アプリケーションが、マイグレーションされたデータの実際の現在のアドレスについて知らされる。
もう1つの例として、仮想記憶システムでは、メモリ転送コントローラ214の中央論理スイッチ218を実施して、要求元アプリケーションとマイグレーションされたデータとの間の論理接続を自動的に形成することができる。したがって、一実施形態で、メモリ転送コントローラ214の中央論理スイッチ218は、アプリケーション・プログラムの実行中のプロセスからメモリ・アクセス要求を受け取る。このメモリ・アクセス要求は、仮想アドレスを含む。中央論理スイッチは、仮想アドレスとアプリケーション・プログラムのデータの実際のアドレスとの間の最新のマップを維持する。したがって、受け取られた仮想アドレスは、マイグレーションされたデータの実際の現在のアドレスにマッピングされる。したがって、そのような環境では、データ・アクセスを要求するアプリケーション・プログラム・プロセスは、データの実際のアドレスを知る必要がない。
図3に、メモリ・マイグレーションを決定するための使用量統計およびサービス・レベル仕様の分析の実施形態の流れ図300を示す。要素302で、システムが、ブロック、ファイル、およびオブジェクト・レベルの使用量統計を入手する。これらの統計を検査する(要素304)。システムは、統計が経時的に変化したかどうかを判定する(要素306)。そうでない場合に、論理は要素310に流れる。統計が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する(要素308)。各サービス・クラスが、サービス・レベル仕様のそれ自体の組に関連することを想起されたい。サービス・クラスが経時的に変化していない場合には、論理は要素310に流れる。サービス・クラスが変化した場合には、論理は要素322に流れて、データの新しいストレージ層を判定する。
要素310で、システムは、可用性、復元可能性、セキュリティ、及び性能要件を含むサービス要件を検査する。次に、システムは、当該サービス要件が経時的に変化したかどうかを判定する(要素312)。当該サービス要件が経時的に変化していない場合には、論理は要素316に流れる。当該サービス要件が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する(要素314)。そうでない場合には、論理は要素316に流れる。当該サービス・クラスが変化した場合には、論理は要素322に流れて、新しいストレージ層を判定する。
要素316で、システムは、データ配置の経路管理;データ配置の時点要件;ならびにイベント、トリガ及びアクションを含むポリシを含む、Information Life−cycle Management(ILM)要件を検査する。次に、システムは、ILM要件が経時的に変化したかどうかを判定する(要素318)。そうでない場合には、論理は要素326に流れる。ILM要件が経時的に変化した場合には、システムは、サービス・クラスが変化したかどうかを判定する(要素320)。そうでない場合には、論理は要素326に流れる。サービス・クラスが経時的に変化した場合には、論理は要素322に流れて、新しいストレージを判定する。要素322で、新しいストレージ層を判定する。次に、システムは、データをその新しい層にマイグレーションする(要素324)。その後、システムは、指定された時間間隔だけ待ち、このプロセスは、要素302で継続される。
本発明のいくつかの実施形態は、たとえば図1に示されたディジタル・システム116などのコンピュータ・システムと共に使用されるプログラム製品として実施される。このプログラム製品を、他のコンピュータ・システムまたはプロセッサ上で使用することができる。このプログラム製品の1つまたは複数のプログラムは、諸実施形態の機能(本明細書で説明した方法を含む)を定義し、さまざまな信号担持媒体に含めることができる。例示的な信号担持媒体は、(i)書込不能記憶媒体(たとえば、CD−ROMドライブによって可読のCD−ROMディスクなど、コンピュータ内の読取専用メモリ・デバイス)に永久的に格納された情報、(ii)書込可能記憶媒体(たとえば、ディスケット・ドライブ内のフロッピ・ディスク、ハード・ディスク・ドライブ、または書込可能CDディスク)に格納された変更可能な情報、および(iii)無線通信を含む、コンピュータ・ネットワークまた電話網などの通信媒体によってコンピュータに伝えられる情報を含むが、これらに限定はされない。後者の実施形態は、具体的に、インターネットおよび他のネットワークからダウンロードされる情報を含む。そのような信号担持媒体は、本発明の機能を指示するコンピュータ可読命令を担持するときに、本発明の実施形態を表す。
一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムもしくは特定のアプリケーションの一部、コンポーネント、プログラム、モジュール、オブジェクト、または命令のシーケンスとすることができる。本発明のコンピュータ・プログラムは、通常、ネイティブ・コンピュータによって機械アクセス可能フォーマットに、したがって実行可能命令に変換される複数の命令からなる。また、プログラムは、プログラムにローカルに常駐するかメモリまたはストレージ・デバイス内で見つけられるかのいずれかである変数およびデータ構造体からなる。さらに、本明細書で後で説明するさまざまなプログラムは、それらが本発明の特定の実施形態でそのために実施される応用例に基づいて識別することができる。しかし、この後に続く特定のプログラム術語のどれもが、単に便宜のために使用され、したがって、本発明が、そのような術語によって識別されまたは暗示されあるいはその両方である特定の応用例のいずれかだけでの使用に限定されてはならないことを了解されたい。
したがって、本発明のもう1つの実施形態は、データ処理システム内で実行されるときに、そのシステムに複数のメモリ・ストレージ・デバイスのうちの複数の間でのデータの自動マイグレーションの一連の動作を実行させるのに有効な命令を含む機械アクセス可能媒体を提供する。この一連の動作は、一般に、1つまたは複数のアプリケーション・プログラムについて複数のメモリ・ストレージ・デバイスのうちの1つまたは複数に格納されたアプリケーション・プログラム・データのアクセスを監視することを含む。また、この動作は、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様を判定することを含む。この動作は、さらに、アプリケーション・プログラムのうちの1つまたは複数のデータに関するメモリ割振りの変化を、監視されたアクセスおよびサービス・レベル仕様から判定することを含む。この動作は、さらに、判定されたメモリ割振りの変化に従って、複数のストレージ・デバイスのうちの複数の間でのデータの割振りを達成するために、複数のメモリ・ストレージ・デバイスの間でデータを自動的に転送することを含む。この動作は、さらに、メモリ・ストレージ仕様のベースラインの組を実際のメモリ使用量と比較することを含むことができる。この動作は、アプリケーション・プログラムについて指定されたサービス・レベルの変化から生じるメモリ割振りの変化を判定することをも含むことができる。この動作は、さらに、アプリケーション・プログラムのデータのアクセスの頻度を判定すること、またはアクセス時間の持続時間を判定することを含むことができる。
本発明およびその長所のいくつかを、いくつかの実施形態について詳細に説明したが、添付の特許請求の範囲によって定義される本発明の趣旨および範囲から逸脱せずに、さまざまな変更、置換、および改変を行えることを理解されたい。本発明の実施形態は、複数の目的を達成することができるが、添付の特許請求の範囲に含まれるすべての実施形態が、すべての目的を達成するわけではない。さらに、本願の範囲を本明細書に記載されたプロセス、機械、製造物、材料の構成、手段、方法、およびステップの特定の実施形態に限定することは、意図されていない。当業者が本発明の開示からたやすく了解するように、本明細書に記載の対応する実施形態と実質的に同一の機能を実行するか実質的に同一の結果を達成する、現在存在するか後に開発されるプロセス、機械、製造物、材料の構成、手段、方法、またはステップを、本発明に従って利用することができる。したがって、添付の特許請求の範囲が、その範囲にそのようなプロセス、機械、製造物、材料の構成、手段、方法、またはステップを含むことが意図されている。
ディジタル・システム内にプロセッサがある、ネットワーク内のディジタル・システムの実施形態を示す図である。 複数のメモリ・ストレージ・デバイスの間でのデータの自動マイグレーションのシステムの実施形態を示す図である。 複数のメモリ・ストレージ・デバイスの間でデータの自動マイグレーションを達成する実施形態の流れ図を示す図である。
符号の説明
100 プロセッサ
102 レベル2(L2)キャッシュ
104 基本入出力システム(BIOS)コード
106 オペレーティング・システム(OS)コード
108 メモリ
109 データ
110 入出力デバイス
112 サーバ
114 他のコンピュータおよびサーバ
116 ディジタル・システム
118 別のメモリ
130 命令バッファ
150 実行ユニット
160 制御回路網
190 レベル1(L1)キャッシュ
200 システム
202 層
204 層
206 層
208 使用量モニタ
210 サービス・レベル・データ・ストア
212 分析モジュール
214 メモリ転送コントローラ
216 ユーザ・インターフェース
218 中央論理スイッチ
300 流れ図
302 ブロック、ファイル、およびオブジェクト・レベルの統計を入手するステップ
304 情報分類を検査するステップ
306 統計が経時的に変化したかどうかを判定するステップ
308 サービス・クラスが変化したかどうかを判定するステップ
310 サービス要件を検査するステップ
312 サービス要件が経時的に変化したかどうかを判定するステップ
314 サービス・クラスが変化したかどうかを判定するステップ
316 ILM要件を検査するステップ
318 ILM要件が経時的に変化したかどうかを判定するステップ
320 サービス・クラスが変化したかどうかを判定するステップ
322 新しいストレージ層を判定するステップ
324 データを新しい層にマイグレーションするステップ
326 指定された間隔だけ待つステップ

Claims (4)

  1. コンピュータが備えている複数のメモリ・ストレージ・デバイスの間でデータを自動マイグレーションするための方法であって、前記複数のメモリ・ストレージ・デバイスが、3つのメモリ層に分けられており、第1のメモリ層が高速ディスク・ストレージであり、第2のメモリ層がリモート・ディスクであり、第3のメモリ層がオフライン・ストレージであり、前記マイグレーションが、前記第1のメモリ層と前記第2のメモリ層との間、前記第1のメモリ層と前記第3のメモリ層との間、又は前記第2のメモリ層と前記第3のメモリ層との間で行われ、前記コンピュータが、
    前記複数のメモリ・ストレージ・デバイスのうちの1つまたは複数内に格納されたデータのアクセスの頻度、前記データのアクセス時間、前記データのサイズ、又は前記データにアクセスするために要する時間の使用量統計を入手するステップと、
    前記使用量統計が経時的に変したかどうかを判定するステップと、
    前記使用量統計が経時的に変化していることに応じて、
    サービス・クラスが変化したかどうかを判定するステップであって、前記コンピュータは様々なサービス・クラスを実施することができ、各サービス・クラスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様の異なる組に関連付けられている、前記判定するステップと、
    前記サービス・クラスが変化したことに応じて、新しいメモリ層を判定して、前記データを前記判定されたメモリ層に転送するステップと、
    前記使用量統計が経時的に変化していないことに応じて、サービス要件が経時的に変化したかどうかを判定するステップであって、前記サービス要件は、可用性、復元可能性、セキュリティ、及び性能要件である、前記判定するステップと、
    前記サービス要件が経時的に変化していることに応じて、
    サービス・クラスが変化したかどうかを判定するステップであって、前記コンピュータは様々なサービス・クラスを実施することができ、各サービス・クラスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様の異なる組に関連付けられている、前記判定するステップと、
    前記サービス・クラスが変化したことに応じて、新しいメモリ層を判定して、前記データを前記判定されたメモリ層に転送するステップと、
    前記サービス要件が経時的に変化していないことに応じて、インフォメーション・ライフサイクル・マネジメント(ILM)が経時的に変化したかどうかを判定するステップであって、前記ILMは、データ配置の経路管理;データ配置の時点要件;イベント、トリガ及びアクションを含むポリシからなる、前記判定するステップと、
    前記ILMが経時的に変化したことに応じて、
    サービス・クラスが変化したかどうかを判定するステップであって、前記コンピュータは様々なサービス・クラスを実施することができ、各サービス・クラスは、1つまたは複数のアプリケーション・プログラムのサービス・レベル仕様の異なる組に関連付けられている、前記判定するステップと、
    前記サービス・クラスが変化したことに応じて、新しいメモリ層を判定して、前記データを前記判定されたメモリ層に転送するステップと
    を実行することを含む、前記方法。
  2. 前記使用量統計を入手するステップが、各メモリ層における前記使用量統計を入手するステップを含む、請求項に記載の方法。
  3. コンピュータが備えている複数のメモリ・ストレージ・デバイスの間でのデータを自動マイグレーションするためのコンピュータ・プログラムであって、前記複数のメモリ・ストレージ・デバイスが、3つのメモリ層に分けられており、第1のメモリ層が高速ディスク・ストレージであり、第2のメモリ層がリモート・ディスクであり、第3のメモリ層がオフライン・ストレージであり、前記マイグレーションが、前記第1のメモリ層と前記第2のメモリ層との間、前記第1のメモリ層と前記第3のメモリ層との間、又は前記第2のメモリ層と前記第3のメモリ層との間で行われ、コンピュータに、請求項1又は2に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
  4. 複数のメモリ・ストレージ・デバイスの間でのデータを自動マイグレーションするための前記コンピュータであって、
    プロセッサと、
    前記プロセッサに接続されたメモリと、
    前記複数のメモリ・ストレージ・デバイスであって、3つのメモリ層に分けられており、第1のメモリ層が高速ディスク・ストレージであり、第2のメモリ層がリモート・ディスクであり、第3のメモリ層がオフライン・ストレージである、前記複数のメモリ・ストレージ・デバイス
    を備えており、前記マイグレーションが、前記第1のメモリ層と前記第2のメモリ層との間、前記第1のメモリ層と前記第3のメモリ層との間、又は前記第2のメモリ層と前記第3のメモリ層との間で行われ、
    前記プロセッサが、請求項に記載されたコンピュータ・プログラムを前記メモリ内に読み込んで実行する、前記コンピュータ
JP2008518866A 2005-07-05 2006-07-03 メモリ・マイグレーションのシステムおよび方法 Expired - Fee Related JP5186367B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/174,959 2005-07-05
US11/174,959 US7529903B2 (en) 2005-07-05 2005-07-05 Systems and methods for memory migration
PCT/EP2006/063814 WO2007003630A1 (en) 2005-07-05 2006-07-03 Systems and methods for memory migration

Publications (3)

Publication Number Publication Date
JP2009500705A JP2009500705A (ja) 2009-01-08
JP2009500705A5 JP2009500705A5 (ja) 2009-03-05
JP5186367B2 true JP5186367B2 (ja) 2013-04-17

Family

ID=37199099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518866A Expired - Fee Related JP5186367B2 (ja) 2005-07-05 2006-07-03 メモリ・マイグレーションのシステムおよび方法

Country Status (5)

Country Link
US (2) US7529903B2 (ja)
EP (1) EP1899796A1 (ja)
JP (1) JP5186367B2 (ja)
CN (1) CN101218557B (ja)
WO (1) WO2007003630A1 (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US7392356B1 (en) 2005-09-06 2008-06-24 Symantec Corporation Promotion or demotion of backup data in a storage hierarchy based on significance and redundancy of the backup data
US7823145B1 (en) * 2006-03-31 2010-10-26 Vmware, Inc. Updating software on dormant disks
US8522228B1 (en) 2006-03-31 2013-08-27 Vmware, Inc. Updating software on dormant disks
WO2007142053A1 (ja) * 2006-06-05 2007-12-13 Nec Corporation 監視装置、監視システム、監視方法およびプログラム
US8346729B2 (en) * 2006-11-18 2013-01-01 International Business Machines Corporation Business-semantic-aware information lifecycle management
JP5745749B2 (ja) * 2008-01-15 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 記憶インフラストラクチャを自動的に管理するための方法および適切な記憶インフラストラクチャ
US7877482B1 (en) * 2008-04-01 2011-01-25 Google Inc. Efficient application hosting in a distributed application execution system
US8006038B2 (en) * 2008-10-02 2011-08-23 Microsoft Corporation Optimizing information lifecycle management for fixed storage
US8005950B1 (en) 2008-12-09 2011-08-23 Google Inc. Application server scalability through runtime restrictions enforcement in a distributed application execution system
US8195878B2 (en) 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
KR101023877B1 (ko) * 2009-04-17 2011-03-22 (주)인디링스 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러
JP2010257094A (ja) * 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
JP5250482B2 (ja) * 2009-05-21 2013-07-31 株式会社日立製作所 省電力制御装置及び方法
US20100325352A1 (en) * 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
JP4962921B2 (ja) 2009-08-26 2012-06-27 日本電気株式会社 コンピュータのメモリ再配置制御方法およびプログラム並びにコンピュータシステム
US8245060B2 (en) * 2009-10-15 2012-08-14 Microsoft Corporation Memory object relocation for power savings
JP5209591B2 (ja) * 2009-11-16 2013-06-12 株式会社日立製作所 省電力機能を有するストレージシステム
US8566540B2 (en) * 2010-02-02 2013-10-22 International Business Machines Corporation Data migration methodology for use with arrays of powered-down storage devices
US8230192B2 (en) * 2010-02-05 2012-07-24 Lsi Corporation System and method for QoS-based storage tiering and migration technique
US9197514B2 (en) 2010-03-31 2015-11-24 Paypal, Inc. Service level agreement based storage access
US8276018B2 (en) 2010-04-30 2012-09-25 International Business Machines Corporation Non-volatile memory based reliability and availability mechanisms for a computing device
US8386859B2 (en) * 2010-04-30 2013-02-26 International Business Machines Corporation On-chip non-volatile storage of a test-time profile for efficiency and performance control
US20110283277A1 (en) 2010-05-11 2011-11-17 International Business Machines Corporation Virtualization and dynamic resource allocation aware storage level reordering
CN101853183B (zh) * 2010-05-14 2012-11-21 中国科学院声学研究所 一种用于动态管理片上指令便签存储器的方法
US8645730B2 (en) * 2010-09-21 2014-02-04 International Business Machines Corporation Systems and methods to improve power efficiency in hybrid storage clusters
US9575781B1 (en) * 2011-05-23 2017-02-21 Open Invention Network Llc Automatic determination of a virtual machine's dependencies on storage virtualization
AU2011348835B2 (en) * 2011-07-28 2016-03-24 Huawei Technologies Co., Ltd. Method and device for implementing memory migration
US8667490B1 (en) * 2011-07-29 2014-03-04 Emc Corporation Active/active storage and virtual machine mobility over asynchronous distances
US9189405B2 (en) 2011-08-03 2015-11-17 International Business Machines Corporation Placement of data in shards on a storage device
US11048410B2 (en) * 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
CN102521138B (zh) * 2011-11-28 2015-11-25 华为技术有限公司 数据迁移触发方法和装置
US8738877B2 (en) * 2011-12-14 2014-05-27 Advance Micro Devices, Inc. Processor with garbage-collection based classification of memory
US9253275B2 (en) 2012-01-30 2016-02-02 International Business Machines Corporation Cognitive dynamic allocation in caching appliances
US10467212B2 (en) 2012-04-27 2019-11-05 Empire Technology Development Llc Multiple variable coverage memory for database indexing
US9542153B1 (en) * 2012-06-30 2017-01-10 EMC IP Holding Company LLC System and method for tiering data storage
US9092461B1 (en) 2012-06-30 2015-07-28 Emc Corporation System and method for tiering data storage
US8935695B1 (en) * 2012-07-12 2015-01-13 Symantec Corporation Systems and methods for managing multipathing configurations for virtual machines
CN107402891B (zh) * 2012-12-25 2020-12-22 华为技术有限公司 确定共享虚拟内存页面管理模式的方法和相关设备
US9047239B2 (en) 2013-01-02 2015-06-02 International Business Machines Corporation Determining weight values for storage devices in a storage tier to use to select one of the storage devices to use as a target storage to which data from a source storage is migrated
US9560127B2 (en) 2013-01-18 2017-01-31 International Business Machines Corporation Systems, methods and algorithms for logical movement of data objects
US9396030B2 (en) * 2013-03-13 2016-07-19 Samsung Electronics Co., Ltd. Quota-based adaptive resource balancing in a scalable heap allocator for multithreaded applications
US9450981B2 (en) * 2013-03-14 2016-09-20 Radware, Ltd. System and method thereof for mitigating denial of service attacks in virtual networks
US9274840B2 (en) * 2013-03-15 2016-03-01 International Business Machines Corporation Dynamic memory management with thread local storage usage
GB2516435A (en) 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
US9063667B2 (en) * 2013-08-13 2015-06-23 Utah State University Dynamic memory relocation
US10061532B2 (en) 2014-01-30 2018-08-28 Hewlett Packard Enterprise Development Lp Migrating data between memories
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
US9678797B2 (en) 2014-03-10 2017-06-13 Microsoft Technology Licensing, Llc Dynamic resource management for multi-process applications
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9535844B1 (en) 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
US20160092115A1 (en) * 2014-09-29 2016-03-31 Hewlett-Packard Development Company, L. P. Implementing storage policies regarding use of memory regions
US10235054B1 (en) * 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
JP6547306B2 (ja) * 2015-01-27 2019-07-24 富士ゼロックス株式会社 情報処理装置、データ退避方法およびプログラム
US9971821B1 (en) 2015-02-17 2018-05-15 Cohesity, Inc. Search and analytics for a storage systems
JP6519228B2 (ja) * 2015-02-27 2019-05-29 富士通株式会社 データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法
US20170031600A1 (en) * 2015-07-30 2017-02-02 Netapp Inc. Real-time analysis for dynamic storage
US10203874B1 (en) * 2015-09-30 2019-02-12 EMC IP Holding Company LLC Managing time scheduled data placement in data storage systems
US10216433B2 (en) 2015-12-11 2019-02-26 EMC IP Holding Company LLC Accessing a virtual volume on a storage array
US10152498B2 (en) * 2015-12-11 2018-12-11 Emc Corporation Providing storage technology information to improve database performance
US10564870B1 (en) * 2016-03-02 2020-02-18 Amazon Technologies, Inc. Placing data storage volumes
CN106371762A (zh) * 2016-08-19 2017-02-01 浪潮(北京)电子信息产业有限公司 一种存储数据优化方法及系统
US10698619B1 (en) * 2016-08-29 2020-06-30 Infinidat Ltd. Service level agreement based management of pending access requests
US10552079B2 (en) 2017-01-18 2020-02-04 International Business Machines Corporation Planning of data segment merge for distributed storage system
JP6955142B2 (ja) 2017-03-17 2021-10-27 富士通株式会社 情報処理装置、ストレージ制御方法およびストレージ制御プログラム
WO2019013775A1 (en) * 2017-07-12 2019-01-17 Hewlett-Packard Development Company, L.P. MIGRATION OF MEMORY DEVICES
US10783119B2 (en) 2017-08-08 2020-09-22 Seagate Technology Llc Fixed record media conversion with data compression and encryption
US20190057045A1 (en) * 2017-08-16 2019-02-21 Alibaba Group Holding Limited Methods and systems for caching based on service level agreement
US20190155511A1 (en) * 2017-11-17 2019-05-23 International Business Machines Corporation Policy-based optimization of cloud resources on tiered storage operations
US10725660B2 (en) * 2017-11-17 2020-07-28 International Business Machines Corporation Policy-based optimization of cloud resources on tiered storage operations
JP7160449B2 (ja) * 2017-11-17 2022-10-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層型ストレージ・データ移動に基づいてクラウド・コンピューティング・システムにおいてクラウド資源を割り当てるための方法、システム、コンピュータ・プログラムおよび記録媒体
CN108733484B (zh) 2018-04-13 2021-12-03 华为技术有限公司 管理应用程序的方法与装置
CN108667916B (zh) * 2018-04-24 2021-08-13 百度在线网络技术(北京)有限公司 一种Web应用的数据访问方法及系统
JP2021135760A (ja) 2020-02-27 2021-09-13 キオクシア株式会社 メモリシステムおよびメモリ制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313631A (en) 1991-05-21 1994-05-17 Hewlett-Packard Company Dual threshold system for immediate or delayed scheduled migration of computer data files
JPH0659982A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 仮想記憶制御方法および装置
JP2682811B2 (ja) 1994-03-22 1997-11-26 インターナショナル・ビジネス・マシーンズ・コーポレイション データ記憶管理システム及び方法
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
JP3193880B2 (ja) 1996-12-11 2001-07-30 株式会社日立製作所 データ移行方法
US7392234B2 (en) 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US6269382B1 (en) 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
US6754895B1 (en) 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
US6718435B2 (en) 2001-08-14 2004-04-06 International Business Machines Corporation Method and system for migrating data in a raid logical drive migration
WO2003021441A1 (en) * 2001-08-31 2003-03-13 Arkivio, Inc. Techniques for storing data based upon storage policies
KR20040053142A (ko) 2001-09-26 2004-06-23 이엠씨 코포레이션 대형 파일들의 효율적 관리
US7269612B2 (en) * 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
JP2005115438A (ja) * 2003-10-03 2005-04-28 Mitsubishi Electric Corp データ管理装置

Also Published As

Publication number Publication date
JP2009500705A (ja) 2009-01-08
WO2007003630A1 (en) 2007-01-11
US20070011420A1 (en) 2007-01-11
CN101218557B (zh) 2011-09-28
US7529903B2 (en) 2009-05-05
EP1899796A1 (en) 2008-03-19
CN101218557A (zh) 2008-07-09
US20080172539A1 (en) 2008-07-17
US7669026B2 (en) 2010-02-23

Similar Documents

Publication Publication Date Title
JP5186367B2 (ja) メモリ・マイグレーションのシステムおよび方法
US9405476B2 (en) Systems and methods for a file-level cache
JP4749255B2 (ja) 複数種類の記憶デバイスを備えたストレージシステムの制御装置
US8996807B2 (en) Systems and methods for a multi-level cache
US6912635B2 (en) Distributing workload evenly across storage media in a storage array
US8166270B2 (en) Storage control apparatus, data management system and data management method for determining storage heirarchy based on a user policy
JP4857818B2 (ja) ストレージ管理方法およびストレージ管理サーバ
JP5121427B2 (ja) ユニファイドストレージシステムのための方法および装置
WO2011074284A1 (ja) 仮想計算機の移動方法、仮想計算機システム及びプログラムを格納した記憶媒体
US20130290598A1 (en) Reducing Power Consumption by Migration of Data within a Tiered Storage System
US8244955B2 (en) Storage system and its controlling method
US7194594B2 (en) Storage area management method and system for assigning physical storage areas to multiple application programs
KR20140034246A (ko) 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
US20080270698A1 (en) Data migration including operation environment information of a host computer
KR20140033448A (ko) 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
US10380066B2 (en) File system with multi-class in situ tiered archiving
US20080109630A1 (en) Storage system, storage unit, and storage management system
US11550489B2 (en) Storage system and processing migration method
KR101099130B1 (ko) 가상볼륨 저장관리 시스템
US10992751B1 (en) Selective storage of a dataset on a data storage device that is directly attached to a network switch

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111226

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20111226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121022

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121022

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121029

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121228

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees