JP2013206457A - ストレージシステムによるメモリ管理の方法および装置 - Google Patents

ストレージシステムによるメモリ管理の方法および装置 Download PDF

Info

Publication number
JP2013206457A
JP2013206457A JP2012243225A JP2012243225A JP2013206457A JP 2013206457 A JP2013206457 A JP 2013206457A JP 2012243225 A JP2012243225 A JP 2012243225A JP 2012243225 A JP2012243225 A JP 2012243225A JP 2013206457 A JP2013206457 A JP 2013206457A
Authority
JP
Japan
Prior art keywords
memory space
virtual memory
computer
storage system
logical unit
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.)
Granted
Application number
JP2012243225A
Other languages
English (en)
Other versions
JP5840594B2 (ja
Inventor
Yuichi Taguchi
雄一 田口
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2013206457A publication Critical patent/JP2013206457A/ja
Application granted granted Critical
Publication of JP5840594B2 publication Critical patent/JP5840594B2/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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】
外部コンピュータに対し、ストレージシステム内の高速DRAMリソースなどの高速メモリデバイスを提供する。
【解決手段】
コンピュータシステムは、内部メモリおよび外部メモリを備えるコンピュータであって、外部メモリはコンピュータに接続されるストレージシステムによって提供され、コンピュータと、内部メモリおよび外部メモリで構成される仮想メモリ空間を管理するコントローラとを含む。コントローラは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに、仮想メモリ空間の使用量レベルに基づき追加するよう動作する。コントローラは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づき解放するよう動作する。
【選択図】図18

Description

01 本発明は、ストレージシステムに関し、特に、ストレージシステムによるメモリ管理に関する。
02 エンタープライズITプラットフォームは、サーバコンピュータおよびストレージシステムを備える。サーバコンピュータは、大量のデータを生成するビジネスアプリケーションを実行する。ストレージエリアネットワーク(SAN:Storage Area Network)は、サーバによって生成されたデータを外部ストレージシステム上に記憶できるように、サーバコンピュータおよびストレージシステムを相互接続するネットワークである。サーバコンピュータ上で実行されているオペレーティングシステムは、計算プロセスを実行するために、データをそのメモリ空間上にロードする。メモリ空間は、一般的に、サーバコンピュータ上のメモリデバイスから構成される。一般的に、メモリデバイス(例えばDRAM)は、小さいサイズに制限されるため、無駄なく効率的に使用されなければならない。しかし、ロードされるデータのサイズに対し、メモリデバイスのサイズが不十分である状態も存在する。この問題に対処するために、オペレーティングシステムは、メモリデバイスと、ハードディスクドライブ(HDD:hard disk drive)などの他のストレージデバイスとの組み合わせによりメモリ空間を構成する、仮想メモリ空間管理能力を有する。HDD容量は、DRAMメモリの容量が不十分な場合のみ使用される。仮想メモリ空間は、単一のメモリデバイスであるかのように機能し、その結果、その使用状況および稼働状況をアプリケーションプログラムが管理する必要はない。
03 今日では、単一のアプリケーションプログラムのみではなく、多数のアプリケーションが単一のサーバコンピュータ上で実行可能である。一例は、仮想マシンプラットフォームである。最近のハイパーバイザ技術は、複数の仮想マシンを単一のサーバ上に構成させることができる。各仮想マシンは、それ専用の仮想メモリ空間を有する。通常、仮想メモリサイズの合計は、その物理メモリサイズよりも大きく設定することが可能である。この構成が、いわゆる「オーバープロビジョニング」または「オーバーサブスクリプション」である。メモリの使用量が少ない間は、問題は生じないが、メモリが不足するレベルまでメモリ使用量が増大すると、仮想メモリ空間上にある物理HDDを消費するため、仮想マシンの性能が非常に悪くなる。
04 従来のストレージシステムは、SSDまたはHDDデバイスをストレージリソースとして供給する。このストレージシステムでは、サーバコンピュータで発生するメモリ不足の問題を解決することができなかった。
05 本発明の例示的な実施形態は、外部コンピュータに対し、ストレージシステム内の高速DRAMリソースなどの高速メモリデバイスを提供する。サーバコンピュータは、その仮想メモリ空間上に、ストレージシステムによって供給されるメモリを付加することができ、その結果、サーバコンピュータはそのメモリサイズを拡張することができる。高いメモリ使用効率を保つために、ストレージシステムは、実際のデータが生成されたときのみ物理メモリリソースが消費されるように、メモリデバイスに対しシンプロビジョニング機能を適用する。他方、ストレージシステム上に搭載されるDRAMリソースは、メモリ使用の本来の目的ではないこともあるため、効率よく使用されなければならない。ストレージ上に搭載されるDRAMの目的は、もともと、I/O(input/output:入出力)性能を向上させるキャッシュメモリである。これは、ストレージメモリの使用が、サーバメモリ使用量が高すぎる状況に限られなければならないことを意味する。本発明はさらに、メモリ使用量が十分に低くなった後に、サーバが使用しているストレージメモリを解放する方法を開示する。
06 本発明のある観点によれば、コンピュータシステムは、内部メモリおよび外部メモリを備えるコンピュータと、コンピュータに接続されるストレージシステムによって提供される外部メモリ、内部メモリおよび外部メモリによって提供される仮想メモリ空間を管理するコントローラとを含む。コントローラは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに、仮想メモリ空間の使用量レベルに基づき追加するよう動作する。コントローラは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づき解放するように動作する。
07 いくつかの実施形態では、論理ユニットは、ストレージシステムによって適用されるシンプロビジョニング構成を有する。コンピュータは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間の使用量レベルに基づき追加/解放するよう動作するコントローラを備える、サーバコンピュータである。さらに、コンピュータは、ストレージシステムに結合されるサーバコンピュータと、サーバコンピュータおよびストレージシステムに接続される管理コンピュータとを含む。管理コンピュータは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間の使用量レベルに基づき追加/解放するように動作可能なコントローラを備える。
08 特定の実施形態では、コントローラは、仮想メモリ空間の使用量レベルが、予め設定された第1の閾値よりも高ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間に追加するよう動作する。コントローラは、仮想メモリ空間の使用量レベルが、第1の閾値よりも低い事前設定済みの第2の閾値よりも低ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間から解放するように動作する。コントローラは、予め設定された期間で、仮想メモリ空間の使用量レベルが、第1の閾値よりも低く予め設定された第3の閾値よりも低ければ、ストレージシステムによって提供される外部メモリを、外部メモリから1つ以上のストレージデバイスを削除することによって仮想メモリ空間から縮小させるように動作する。コントローラは、ストレージシステムによって提供される論理ユニットを追加/解放するかどうかを判断するために、仮想メモリ空間の使用量レベルを監視し、監視された使用量レベルと、予め設定された1つ以上の閾値とを比較するよう動作する。コントローラは、仮想メモリ空間の使用量レベルに基づき仮想メモリ空間に含まれる外部メモリへ論理ユニットを提供するため、論理ユニットをキャッシュメモリ上にロードするようにストレージシステムに要求する。
09 本発明の別の観点では、コンピュータ内で内部メモリおよび、コンピュータに接続されるストレージシステムによって提供される外部メモリで構成される仮想メモリ空間の管理方法を提示する。この管理方法は、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに仮想メモリ空間の使用量レベルに基づきコントローラによって追加するステップと、ストレージシステムによって提供される論理ユニットを仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づきコントローラによって解放するステップとを含む。
10 いくつかの実施形態で、追加するステップでは、仮想メモリ空間の使用量レベルが、予め設定された第1の閾値よりも高ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間に追加する。解放するステップでは、仮想メモリ空間の使用量レベルが、第1の閾値よりも低い予め設定された第2の閾値よりも低ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間から解放する。
11 本発明の別の観点では、コンピュータ内で内部メモリおよびコンピュータに接続されるストレージシステムによって提供される外部メモリによって提供される仮想メモリ空間を管理するデータプロセッサを制御するための複数の命令を記憶するコンピュータ可読ストレージ媒体を提示する。複数の命令は、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに、仮想メモリ空間の使用量レベルに基づき追加することを、データプロセッサに実行させる命令と、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づき解放することを、データプロセッサに実行させる命令とを含む。
12 本発明のこれらの特徴および利点、ならびにその他の特徴および利点が、以下の、特定の実施形態の詳細な説明を考慮することで、当業者には明らかとなる。
本発明のメモリ管理によれば、外部コンピュータに対し、ストレージシステム内の高速DRAMリソースなどの高速メモリデバイスが提供され、サーバコンピュータで発生するメモリ不足の問題が解決される。
13 本発明の方法および装置が適用されるストレージシステムのハードウェア構成の例を示す。 14 サーバコンピュータに提供されるストレージリソースを示す模式図である。 15 サーバコンピュータの従来のハードウェア構成を示す。 16 ネットワークスイッチの従来のハードウェア構成を示す。 17 データストレージの従来のハードウェア構成を示す。 18 管理コンピュータの従来のハードウェア構成を示す。 19 サーバコンピュータのメモリ上に記憶されるソフトウェア構造を示す。 20 データストレージのメモリ上に記憶されるソフトウェア構造を示す。 21 管理コンピュータのメモリ上に記憶されるソフトウェア構造を示す。 22 サーバコンピュータ管理装置のソフトウェアコンポーネントのセットを示す。 23 ストレージ管理装置のソフトウェアコンポーネントのセットを示す。 24 サーバコンピュータ上に記憶されたデバイス管理情報の従来例である。 25 サーバコンピュータ上に記憶されたメモリ使用量情報の従来例である。 26 サーバコンピュータ上のボリューム構成情報の従来例である。 27 サーバコンピュータの仮想マシン構成情報の従来例である。 28 データストレージ上のLU(logical unit:論理ユニット)構成情報の従来のデータ構造である。 29 データストレージ上のシンプロビジョニングステータス情報の従来のデータ構造である。 30 一実施形態による、サーバコンピュータ上に作成される仮想メモリデバイスのローカル構造である。 31 サーバコンピュータによるメモリ消費の動作例である。 32 シンプロビジョニングストレージ利用プロセスのフローチャートである。 33 データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 33 データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 33 データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 34 仮想メモリ管理が管理コンピュータによって制御される別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 34 仮想メモリ管理が管理コンピュータによって制御される別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 34 仮想メモリ管理が管理コンピュータによって制御される別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 35 仮想メモリ管理が管理コンピュータによって制御され、データストレージがシンプロビジョニング機能を搭載しない別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 35 仮想メモリ管理が管理コンピュータによって制御可能であり、データストレージがシンプロビジョニング機能を搭載しない別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 35 仮想メモリ管理が管理コンピュータによって制御可能であり、データストレージがシンプロビジョニング機能を搭載しない別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。 36 別の実施形態による、サーバコンピュータ上に作成される仮想メモリデバイスのローカル構造である。
37 以下の本発明の詳細な説明では、開示の一部を構成する添付の図面を参照する。図面には、限定ではなく例示として、本発明が実施され得る例示的な実施形態が示されている。図面において、同じ数字は、実質的に類似したコンポーネントをいくつかの図面にわたって表す。さらに、詳細な説明は、下記に記載され図面に示されるように様々な例示的な実施形態を提供するが、本発明は、本願明細書に記載され示された実施形態に限定されず、当業者に周知であろう、または当業者に周知となるであろう他の実施形態にまで及ぶことができるということに留意されたい。本明細書における、「一実施形態」、「この実施形態」または「これらの実施形態」の言及は、その実施形態に関連して記載された特定の特徴、構造または特性が、本発明の少なくとも1つの実施形態に含まれることを意味し、これらの言葉の、本明細書の様々な場所での出現は、必ずしもすべて同じ実施形態を参照するとは限らない。さらに、以下の詳細な説明では、本発明の完全な理解をもたらすために特定の詳細事項が多数記載される。しかし、当業者には当然のことながら、これらの特定の詳細事項すべては、本発明を実践するために必要でないこともある。他の状況では、本発明を不必要に不明瞭にしないように、周知の構造、物質、回路、プロセスおよびインターフェイスは、詳細に記載されてはおらず、さらに/またはブロック図の形式で示されていることもある。
38 さらに、以下に続く詳細な説明の一部は、コンピュータ内の動作のアルゴリズムおよび象徴的表現によって示されている。こうしたアルゴリズムの記述および象徴的表現は、データ処理技術の当業者により、その革新の本質を他の当業者に最も効果的に伝えるために使用される手段である。アルゴリズムは、所望の最終状態または結果につながる、一連の定義済みステップである。本発明では、実行されるステップは、具体的な結果を実現するための、具体的な量の物理的操作を必要とする。必ずではないが通常、この量は、記憶、転送、結合、比較および他の形で操作可能な電気もしくは磁気信号または命令という形をとる。主に一般的に使用されているという理由から、こうした信号を、ビット、値、要素、シンボル、文字、項、数、命令などと呼ぶと便利である場合があるということが分かっている。なお、こうした用語および同様の用語はすべて、適切な物理量に関連するものであり、こうした量に適用された便利な標示にすぎないことに留意されたい。当然のことながら、以下の説明から明らかなように、別途明記されていない限り、本記載全体にわたって、「処理」、「算出」、「計算」、「判断」、「表示」または同様のものなどの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表現されたデータを、コンピュータシステムのメモリもしくはレジスタ、またはその他の情報記憶、伝送もしくは表示デバイス内の同じく物理量として表現される他のデータへと操作および変換する、コンピュータシステムまたはその他の情報処理デバイスのアクションおよびプロセスを含むことができる。
39 本発明は、本願明細書の動作を実行する装置にも関する。この装置は、要求される目的のために特別に構築されてもよく、または1つ以上のコンピュータプログラムによって選択的に有効化または再構成される1つ以上の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、次に限定はされないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイスおよびドライブ、または電子情報を記憶するのに適した任意の他のタイプの媒体などの、コンピュータ可読ストレージ媒体に記憶されるとよい。本願明細書で示されるアルゴリズムおよび表示は、いずれの特定のコンピュータにも、その他の装置にも本質的に関係しない。本願明細書の教示に従って、様々な汎用システムが、プログラムおよびモジュールとともに使用されてもよく、または所望の方法ステップを実行するにはより特化された装置を構築するほうが都合がよいということが分かるかもしれない。さらに、本発明は、いずれかの特定のプログラミング言語を基準として記載されてはいない。当然のことながら、本願明細書に記載される本発明の教示を実装するために、様々なプログラミング言語が使用されてよい。プログラミング言語(単数または複数)の命令は、例えば中央処理ユニット(CPU:central processing unit)、プロセッサまたはコントローラなどの1つ以上の処理デバイスによって実行されてよい。
40 下記でさらに詳しく記載されるように、本発明の例示的な実施形態は、ストレージシステムによるメモリ管理のための装置、方法およびコンピュータプログラムを提供する。
41 図1は、本発明の方法および装置が適用されるストレージシステムのハードウェア構成の例を示す。サーバコンピュータ300、データストレージまたはストレージサブシステム100および管理コンピュータ400が、スイッチ200によって接続されている。一般に、イーサネット(登録商標)、ファイバーチャネル、またはInfinibandおよびその他何らかのタイプのスイッチが、SAN(Storage Area Network:ストレージエリアネットワーク)に使用される。管理コンピュータ400は、ストレージシステム全体を管理する役割を果たす。
42 図2は、サーバコンピュータ300に提供されるストレージリソースを示す模式図である。データストレージ100上に搭載されるストレージデバイスが、論理ユニット(LU)520を生成する。論理ユニットは、SSDおよびHDDなどの物理ストレージデバイスの一部または組み合わせである。LUは、外部コンピュータによる参照が可能なように、1つ以上のネットワークインターフェイス110を割り当てられる。サーバコンピュータ300は、LU520を、ローカルストレージデバイス510としてバインドすることができる。
43 図3は、サーバコンピュータ300の従来のハードウェア構成を示す。CPU330、メモリデバイス340、入力デバイス360(例えばキーボードおよびマウス)ならびに出力デバイス370(例えば、外部表示モニタに接続されたビデオグラフィックスカード)が、メモリコントローラ350を介して相互接続されている。I/Oコントローラ320によって処理されるI/Oはすべて、内部ストレージデバイス380に、またはネットワークインターフェイス310を介して外部ストレージデバイスに、またはメモリコントローラ350に転送される。この構成は、一般に普及している普通の多目的PC(personal computer:パーソナルコンピュータ)によって実装可能である。
44 図4は、ネットワークスイッチ200の従来のハードウェア構成を示す。CPU230およびメモリデバイス240が、メモリコントローラ250に接続されており、メモリコントローラ250は、複数のネットワークインターフェイス210に接続されているI/Oコントローラ220に接続されている。
45 図5は、データストレージ100の従来のハードウェア構成を示す。CPU130およびメモリデバイス140が、メモリコントローラ150に接続されており、メモリコントローラ150は、複数のネットワークインターフェイス110およびストレージデバイス180に接続されているI/Oコントローラ120に接続されている。
46 図6は、管理コンピュータ400の従来のハードウェア構成を示す。CPU430、メモリデバイス440、入力デバイス460および出力デバイス470が、メモリコントローラ450に接続されており、メモリコントローラ450は、ネットワークインターフェイス410およびストレージデバイス480に接続されているI/Oコントローラ420に接続されている。
47 図7は、サーバコンピュータ300のメモリデバイス340上に記憶されるソフトウェア構造を示す。メモリデバイス340には、仮想マシン管理システム3401およびオペレーティングシステム3402が格納される。仮想マシン管理システム3401は、仮想マシンを実行するソフトウェアのセットを有する。このセットには、仮想マシンプラットフォームプログラム3408および仮想マシン構成情報3409が含まれる。仮想マシンプラットフォームの従来例として、VMware(登録商標)、Microsoft(登録商標)Hyper−V、KVMおよび同様のものがある。オペレーティングシステム3402は、Linux(登録商標)、Windows(登録商標)、HP−UXまたは同様のオペレーティングシステムを実行する。このオペレーティングシステムには、メモリ管理プログラム3403、メモリ使用量情報3404、デバイス管理プログラム3405、デバイス管理情報3406およびボリューム構成情報3407が含まれる。メモリ管理プログラム3403は、メモリの利用を制御し、さらに仮想メモリ空間の使用を制御する。メモリ使用量情報3404は、メモリ消費状態の記録である。デバイス管理プログラム3405は、外部メモリおよびストレージなどのデバイスの検出、割り当ておよび解放を管理する。デバイス管理情報3406は、デバイスの構成定義である。ボリューム構成情報3407は、ストレージボリューム構成の定義である。
48 図8は、データストレージ100のメモリデバイス140上に記憶されるソフトウェア構造を示す。I/O転送制御プログラム1401は、サーバコンピュータ300から受信されるすべてのI/Oリクエストをまとめる。構成管理プログラム1402は、構成変更を管理する。LU構成情報1403は、ストレージLU構成の定義である。シンプロビジョニング制御プログラム1404は、ストレージサービス上で動的なリソースの配置/開放を実行する。シンプロビジョニングステータス情報1405は、リソース配置状態の記録である。キャッシュロードプログラム1406は、キャッシュメモリ上の特定のボリューム上にデータを記憶された状態に保つためのプログラムである。LUマイグレーションプログラム1407は、LUを、元の物理空間から宛先デバイスへ移動する機能を提供する。
49 図9は、管理コンピュータ400のメモリデバイス440上に記憶されるソフトウェア構造を示す。管理コンピュータ400は、サーバコンピュータ管理装置4401およびストレージ管理装置4402によって提供される2つの主要な機能を有する。
50 図10は、サーバコンピュータ管理装置4401のソフトウェアコンポーネントのセットを示す。サーバシステムステータス監視プログラム44011は、メモリ使用量情報44012などのサーバステータス情報を受け取り、更新された状態に保つ。メモリ使用量情報44012は、サーバコンピュータ300から受信される、メモリ使用量情報3404のコピーである。メモリデバイス構成情報44013は、サーバコンピュータ300にて利用可能なメモリデバイスの構成である。仮想マシン構成プログラム44014は、構成変更リクエストメッセージを発信し、仮想マシン構成を制御する。仮想マシン構成情報44015は、仮想マシン構成情報3409のコピーである。
51 図11は、ストレージ管理装置4402のソフトウェアコンポーネントのセットを示す。論理ユニット構成プログラム44021は、構成変更リクエストメッセージを発信し、データストレージ100上の論理ユニットの作成および削除を行う。LU構成情報44022は、LU構成情報1403のコピーである。論理ユニット構成プログラム44021は、LU構成情報1403を更新された状態に保つ。
52 図12は、サーバコンピュータ300上に記憶されたデバイス管理情報3406の従来の例である。これには、デバイスID34061、ターゲットポート34062およびターゲット番号34063の列が含まれる。デバイスID34061は、ストレージデバイス510などのデバイスの識別子である。従来の手法では、デバイスID34061は、サーバコンピュータ300上で実行されているファイルシステムの「マウントポイント」を表現することができる。例えば、デバイスは、そのファイルシステム上で「/dev/sdc1」「/dev/sdc2」として処理されることが可能である。ターゲットポート34062は、デバイスのインターフェイスを特定するポートである。ターゲット番号34063は、ターゲットポート34062上に構成されたデバイスを特定する番号である。この構成は、ターゲットポート34062およびターゲット番号34063の組み合わせとして、内部デバイスおよび外部デバイスの両方を表現できるようにする。例えば、データストレージ100のポート「50:00:32:22:12:00:00:02」上に定義されている論理ユニット「2」は、サーバコンピュータ300上で、「/dev/sdc2」として認識および配置されることが可能である。ポート「50:00:32:22:12:00:00:02」は、データストレージ100のネットワークインターフェイス110に対応し、ファイバーチャネルのワールドワイドネーム、IPアドレス、イーサネットのMACアドレスなどとして表現されることが可能である。
53 図13は、サーバコンピュータ300上に記憶されたメモリ使用量情報3404の従来の例である。これは、日付34041、時間34042および%で表した利用率34043の列を有する。サーバコンピュータ300は、メモリ使用量情報3404にメモリ消費率を記録する。
54 図14は、サーバコンピュータ300上のボリューム構成情報3407の従来の例である。これは、マウントポイント34071およびデバイスID34072の列を有する。デバイスID34072によって表現されているストレージデバイス510が、マウントポイント34071に定義された位置に配置される。サーバコンピュータ300上で実行されているソフトウェアは、ローカルに配置されたストレージデバイス510へのアクセスによって、外部ストレージデバイスからの読み取りおよびそれに対する書き込みを行うことができる。このデータ構造は、従来型のUNIXオペレーティングシステムの/etc/fstabファイルと同じである。
55 図15は、サーバコンピュータ300の仮想マシン構成情報3409の従来の例である。これは、VMID(仮想マシンID:virtual machine ID)34091、単位をMB(megabyte:メガバイト)とする付与されたメモリサイズ34092および単位をMBとする仮想メモリ34093を有する。仮想マシンサーバの典型的なハイパーバイザプログラムは、仮想マシンに対するメモリリソースの「オーバープロビジョニング」を提供する。言い換えれば、単一のメモリデバイス340が、サーバコンピュータ300上で実行されている複数の仮想マシンによって共有されることが可能である。例えば、VMID「0」によって定義されている仮想マシンは、「1024MB」のメモリを割り当てられている。オーバープロビジョニング能力によって、付与されたメモリ34092の合計は、仮想メモリ34093を超えることが可能である。これは、総メモリ消費が物理メモリのサイズに達すると、サーバコンピュータがHDDリソースの使用を開始してメモリ不足を補うためであるが、深刻な性能低下を引き起こす。
56 図16は、データストレージ100上のLU構成情報1403の従来のデータ構造である。これは、ネットワークインターフェイス14031、LUN(logical unit number:論理ユニット番号)14032、リソース付与14033、先頭アドレス14034、最終アドレス14035およびシンプロビジョニング14036の列を有する。論理ユニットは、ネットワークインターフェイス14031と、論理ユニット番号(LUN)14032との組み合わせで特定されることが可能である。論理ユニット番号14032は、ネットワークインターフェイス14031によって表現されるネットワークインターフェイス110上に構成される論理ユニットの識別子である。論理ユニットの物理ストレージリソースは、リソース付与14033、先頭アドレス14034および最終アドレス14035の組み合わせとして定義される。リソース付与14033は、ストレージの物理リソースである。例えば、HDDのセットおよびDRAMデバイスのセットが、論理ユニットに付与されることが可能である。これらのリソースのうち、先頭アドレス14034および最終アドレス14035として指定される一部が、論理ユニットに割り当てられる。さらに、論理ユニットは、シンプロビジョニングステータス情報14036が「はい」または「オン」にセットされていれば、シンプロビジョニングボリュームに構成される。
57 図17は、データストレージ100上のシンプロビジョニングステータス情報1405の従来のデータ構造である。これは、仮想アドレス14051、リソースの割り当て元14052および物理アドレス14053の列を有する。論理ユニットがシンプロビジョニング構成として定義される場合、物理ストレージリソースは、初期段階では消費されない。物理ストレージリソースは、データ書き込みがリクエストされると動的に割り当てられる。例えば、仮想アドレス14051によって表現されるストレージブロックは、「リソースの割り当て元」14052および物理アドレス14053の組み合わせによって表現される物理リソースから割り当てられる。
58 図18は、一実施形態による、サーバコンピュータ300上に作成される仮想メモリデバイスのローカル構造である。仮想メモリ空間530は、メモリデバイス340および外部ストレージデバイス510の組み合わせによって作成されることが可能である。この外部ストレージデバイス510は、データストレージ100の論理ユニット520に対応する。論理ユニット520は、メモリデバイス140またはストレージデバイス180のいずれかに対応する。よって、仮想メモリ空間530は、メモリデバイス340、およびデータストレージ100によって提供される外部メモリデバイス140によって構成されることが可能である。
59 図19は、サーバコンピュータ300によるメモリ消費の動作例である。サーバコンピュータ300は、メモリデバイス340を消費し始め、リソースが使い尽くされると、外部ストレージデバイス510を消費し始める。
60 図20は、シンプロビジョニングストレージ利用プロセスのフローチャートである。サーバコンピュータ300上で実行されているソフトウェアが、データを生成し、ローカルストレージデバイス510への書き込みプロセスを開始する(S101)。図2に関連して記載されたように、データはデータストレージ100に送信される。データストレージ100は、データを受信してキャッシュメモリに記憶する(S102)。キャッシュへの書き込み後、データストレージ100は、サーバコンピュータ300がそれ以上待機の必要がないように、データ書き込みが受領されたステータスをレポートするために承認メッセージをサーバコンピュータ300に返すことができる。次に、データストレージ100は、キャッシュしたデータを物理ストレージデバイス180に書き込む。書き込みデータのターゲットアドレスに対応する物理ストレージリソースが割り当てられていれば、データストレージ100は、単にデータを物理ストレージターゲットに書き込む(S105)。そうでなければ、データストレージ100は、実際のデータ書き込みプロセスの前に、物理ストレージブロックを割り当てなければならない(S104)。
61 図21、22および23は、データストレージ100上に搭載されるメモリリソースを、サーバコンピュータ300の仮想メモリへの割り当てと解放プロセスのフローチャートを示す。まず、サーバコンピュータ300が、LUを作成するためのリクエストメッセージを発信する(S201)。データストレージ100は、新たな論理ユニットを作成する(S202)。LUは、シンプロビジョニング構成によりメモリデバイス140上に作成され、その結果、プロセスのこの段階またはステージでは物理メモリリソースは消費されない。
62 メモリ管理プログラム3403は、メモリ使用量を監視し、それをメモリ使用量情報3404に記録する(S203)。メモリ管理プログラム3403は、メモリ消費が高すぎると判定すると(S204)、外部メモリリソースを仮想メモリ空間530に追加し始める。デバイス管理プログラム3405が、S202にて作成された新たなLUを検出し、デバイス管理情報3406およびボリューム構成情報3407を更新する(S205)。メモリ管理プログラム3403は、LUを仮想メモリ空間530に追加する(S206)。プロセスは、S206の後、S203に戻る。メモリ消費が高すぎでなければ(S204)、プロセスはS207に続く。
63 データストレージ100上に搭載されるメモリリソースは、その本来の用途がキャッシュメモリとしての使用であるため、効果的に使用される必要がある。したがって、メモリ管理プログラム3403は、割り当てられたストレージブロックを解放することが適切であれば、その実行を試みる。メモリ管理プログラム3403は、メモリ使用率を判定し、メモリ使用量が十分に低いかどうかを判断する(S207)。メモリ使用量が十分に低ければ、UNMAPコマンドをデータストレージ100に発信する(S208)。データストレージ100は、使用されていないストレージブロックをLUから解放する(S209)。プロセスは、S209の後、S210に続く。メモリ使用量が十分に低くなければ、プロセスはS203に戻る。
64 メモリ管理プログラム3403は、消費されていないLUを開放することができる。メモリ管理プログラム3403は、メモリ使用量情報3404を参照して、仮想メモリ空間のサイズが、消費するには大きすぎるかどうかを判定する(S210)。例えば、仮想メモリの使用が1日、1週間または1ヶ月を超えて連続的に低い状態のままであるかどうかに基づき、判定することができる。S210において、仮想メモリが縮小可能であると判断されると、デバイス管理プログラム3405は、ストレージデバイス510を仮想メモリ空間530から除去する(S211)。プロセスは、S211の後に、または仮想メモリが縮小不可能であると判断された場合に、S203に戻る。
65 図24、25および26は、仮想メモリ管理が管理コンピュータ400によって制御される別の実装として、データストレージ100上に搭載されるメモリリソースをサーバコンピュータ300の仮想メモリに対して割り当てと解放を実行するプロセスのフローチャートを示す。まず、管理コンピュータ400が、LUを作成するためのリクエストメッセージを発信する(S301)。データストレージ100は、新たな論理ユニットを作成する(S302)。LUは、シンプロビジョニング構成によりメモリデバイス140上に作成され、その結果、プロセスのこの段階またはステージでは物理メモリリソースは消費されない。
66 管理コンピュータ400は、サーバコンピュータから、メモリ使用量の監視の結果を取得し、それをメモリ使用量情報44012に記録する(S303)。管理コンピュータ400が、メモリ消費が高すぎると判定すると(S304)、サーバコンピュータ300は、外部メモリリソースを仮想メモリ空間530に追加し始める。デバイス管理プログラム3405が、S302にて作成された新たなLUを検出し、デバイス管理情報3406およびボリューム構成情報3407を更新する(S305)。メモリ管理プログラム3403が、LUを仮想メモリ空間530に追加する(S306)。プロセスはS307に続く。
67 データストレージ100上に搭載されるメモリリソースは、その本来の用途がキャッシュメモリであるため、効率的に消費される必要がある。したがって、管理コンピュータ400は、割り当てられたストレージブロックを解放することが適切であれば、その実行を試みる。管理コンピュータ400は、メモリ消費率の判定結果をサーバコンピュータから取得し、メモリ使用量が十分に低いかどうかを判断する(S307)。メモリ使用量が十分に低ければ、UNMAPコマンドをデータストレージ100に発信する(S308)。データストレージ100は、使用されていないストレージブロックをLUから解放する(S309)。プロセスは、S309の後、S310に続く。メモリ使用量が十分に低くなければ、プロセスはS303に戻る。
68 管理コンピュータ400は、消費されていないLUを開放することができる。管理コンピュータ400は、メモリ使用量情報44012を参照して、仮想メモリ空間のサイズが、使用するには大きすぎるかどうかを判定する(S310)。例えば、仮想メモリの使用が1日、1週間または1ヶ月を超えて連続的に低い状態のままであるかどうかに基づき、判定することができる。S310において、仮想メモリが縮小可能であると判断されると、管理コンピュータ400は、ストレージデバイス510を削減するよう、サーバコンピュータ300にリクエストを送信し(S311)、サーバコンピュータ300内のデバイス管理プログラム3405が、ストレージデバイス510を仮想メモリ空間530から削除する(S312)。プロセスは、S312の後に、または仮想メモリが縮小不可能であると判断された場合に、S303に戻る。
69 図27、28および29は、仮想メモリ管理が管理コンピュータ400によって制御され、データストレージ100がシンプロビジョニング機能を搭載しない別の実装として、データストレージ100上に搭載されるメモリリソースをサーバコンピュータ300の仮想メモリに対して割り当てと解放を実行するプロセスのフローチャートを示す。
70 S401は、S301と同じである。S402において、データストレージ100は、新たなLUを作成するが、これはシンプロビジョニング構成によらない。S403において管理コンピュータ400は、サーバコンピュータ300に、仮想メモリ空間を拡大するためのリクエストをする。S404およびS405は、S305およびS306と同じ処理内容であるが、ここではデータストレージ100は、初期段階で、HDDリソースによって新たなLUを提供する(S404)。S406において、管理コンピュータ400は、サーバコンピュータ300のメモリ使用量を監視する。仮想メモリ使用量が高ければ、管理コンピュータ400は、LUをキャッシュメモリ上にロードするようリクエストする(S408)。データストレージ100内のキャッシュロードプログラム1406は、仮想メモリの一部を含むLUを、キャッシュメモリ上にロードする。仮想メモリ上のすべてのI/Oアクセスが、ローカルおよび外部メモリデバイス上で処理されるため、性能低下の問題が解決される。この実施例として、米国特許出願公開第2010/0100680号があり、その内容全体を参照して本願明細書に引用する。仮想メモリ使用量が高くなければ(S407)、管理コンピュータは、使用量が低いかどうかを判断する(S410)。そうであれば、管理コンピュータは、キャッシュメモリからLUをアンロードするためのリクエストをする(S411)。データストレージ100内のキャッシュロードプログラム1406は、LU内に記憶されているデータをキャッシュからアンロードする(S412)。プロセスはS406に戻る。
71 別の実装では、図27〜29のキャッシュローディングを、HDDとメモリデバイスとの間のボリュームマイグレーションに置き換えることが可能である。この実施例として、米国特許第5,956,750号があり、その内容全体を参照して本願明細書に引用する。図30は、別の実施形態による、サーバコンピュータ300上に作成される仮想メモリデバイスのローカル構造である。図18と比較すると、外部ストレージデバイス510は、ストレージデバイス180に対応する論理ユニット520aまたはメモリデバイス140の一部である論理ユニット520bのいずれかに対応する(HDDとメモリデバイスとの間のマイグレーションを表現する)。
72 別の実装では、メモリ使用量の判定を、図15のオーバープロビジョニングステータスに置き換えることが可能である。例えば、仮想メモリサイズの合計(図15において、単位をMBとする付与されたメモリサイズ34092)が、物理メモリサイズ(図15において、単位をMBとする仮想メモリ34093)のサイズを超えると、メモリ管理プログラム3403は、仮想メモリ空間530を拡大して、プロビジョニングされたメモリサイズを物理メモリサイズ34093より小さく保つ。
73 ストレージの効率を改善するためには、SSD、SASおよびSATAなど、複数のタイプの媒体を利用することが有効である。しかし、データファイル内に複数のサブファイルを含むデータファイルは、1つのストレージボリューム内に記憶されなければならず、その結果、複数のストレージ階層を利用することは不可能である。本発明の実施形態は、データファイルを複数のサブファイルに分解し、それらを最良のタイプのストレージに記憶する。
74 当然、図1に示されたシステム構成は、本発明が適用可能な情報システムの単なる例示であり、本発明は、特定のハードウェア構成に限定されない。本発明を実装するコンピュータおよびストレージシステムは、さらに、上記発明を実装するために使用されるモジュール、プログラムおよびデータ構造を記憶および読み取りできる既知のI/Oデバイス(例えば、CDおよびDVDドライブ、フロッピーディスクドライブ、ハードドライブなど)を有することが可能である。これらのモジュール、プログラムおよびデータ構造は、そのようなコンピュータ可読媒体上にエンコードされることが可能である。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する1つ以上のコンピュータ可読媒体とは独立してコンピュータ可読媒体上に記憶可能である。システムのコンポーネントは、例えば通信ネットワークなど、任意の形態または媒体のデジタルデータ通信により相互接続可能である。通信ネットワークの例は、ローカルエリアネットワーク、例えばインターネットなどの広域ネットワーク、無線ネットワーク、ストレージエリアネットワーク、および同様のものを含む。
75 本記載では、本発明が完全に理解されるよう、説明のために多数の詳細事項が記載されている。しかし、当業者には当然のことながら、こうした特定の詳細事項のすべてが本発明を実施するために必要であるわけではない。なお、本発明は、フローチャート、フロー図、構造図またはブロック図として通常示される、プロセスとして記載されることもある。フローチャートは、各動作を逐次プロセスとして記載することもあるが、動作の多くは、並行して、すなわち同時に実行可能である。さらに、動作の順序を並べ替えられてもよい。
76 当該技術分野では周知のように、上述の動作は、ハードウェア、ソフトウェア、またはソフトウェアおよびハードウェアの何らかの組み合わせによって実行可能である。本発明の実施形態の様々な側面は、回路および論理デバイス(ハードウェア)を使用して実装されてもよく、他の側面は、マシン可読媒体上に記憶された命令を使用して実装されてもよく(ソフトウェア)、命令は、プロセッサによって実行されると、本発明の実施形態を実施する方法をプロセッサに実行させることになる。さらに、本発明の一部の実施形態は、ハードウェアのみにおいて実行されてもよく、反対に他の実施形態は、ソフトウェアのみにおいて実行されてもよい。さらに、記載された様々な機能は、単一のユニットにおいて実行されることが可能であり、または様々な方法でいくつかのコンポーネントにわたって分散されてもよい。ソフトウェアによって実行される場合、方法は、汎用コンピュータなどのプロセッサによって、コンピュータ可読媒体上に記憶された命令に基づいて実行されるとよい。必要に応じて、命令は、圧縮および/または暗号化された形式で媒体上に記憶されることが可能である。
77 前述の事項から、本発明が、ストレージシステムによるメモリ管理のための方法、装置およびコンピュータ可読媒体上に記憶されたプログラムを提供することは明らかである。さらに、本明細書には、特定の実施形態が示され記載されたが、当業者には当然のことながら、同じ目的を達成するために計算された任意の構成が、開示された特定の実施形態の代わりとされ得る。本開示は、本発明の任意のすべての適応または変形を対象とするものとし、当然のことながら、添付の特許請求の範囲で使用される用語は、本明細書で開示された特定の実施形態に本発明を限定するように解釈されてはならない。むしろ、本発明の範囲は、専ら、クレーム解釈の確立された原則に従って解釈される添付の特許請求の範囲によって、当該の特許請求の範囲に認められるあらゆる等価物とともに決定されるものである。
100 データストレージ
140 メモリデバイス
180 ストレージデバイス
300 サーバコンピュータ
340 メモリデバイス
400 管理コンピュータ
510 ストレージデバイス
520 論理ユニット
530 仮想メモリ空間

Claims (20)

  1. 内部メモリおよび外部メモリを備えるコンピュータ、
    前記コンピュータに接続されるストレージシステムによって提供される前記外部メモリ、
    前記内部メモリおよび前記外部メモリによって提供される仮想メモリ空間を管理するコントローラ、
    から構成されるコンピュータシステムであって、
    前記コントローラは、前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリに、前記仮想メモリ空間の使用量レベルに基づき追加するよう動作し、
    前記コントローラは、前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリから、前記仮想メモリ空間の前記使用量レベルに基づき解放するよう動作する、
    コンピュータシステム。
  2. 前記論理ユニットは、前記ストレージシステムによって適用されるシンプロビジョニング構成を有する、
    請求項1に記載のコンピュータシステム。
  3. 前記コンピュータは、前記ストレージシステムによって提供される前記論理ユニットを、前記仮想メモリ空間の前記使用量レベルに基づき追加/解放するよう動作する前記コントローラを備えるサーバコンピュータである、
    請求項1に記載のコンピュータシステム。
  4. 前記コンピュータシステムは、
    前記ストレージシステムに接続されるサーバコンピュータと、
    前記サーバコンピュータおよび前記ストレージシステムに接続される管理コンピュータと、
    をさらに含み、
    前記管理コンピュータは、
    前記ストレージシステムによって提供される前記論理ユニットを、前記仮想メモリ空間の前記使用量レベルに基づき追加/解放するよう動作する前記コントローラを備える、
    請求項1に記載のコンピュータシステム。
  5. 前記コントローラは、
    前記仮想メモリ空間の前記使用量レベルが事前設定済みの第1の閾値よりも高いときに、前記ストレージシステムによって提供される論理ユニットを前記仮想メモリ空間に追加するよう動作する、
    請求項1に記載のコンピュータシステム。
  6. 前記コントローラは、
    前記仮想メモリ空間の前記使用量レベルが、前記第1の閾値よりも低い事前設定済みの第2の閾値よりも低いときに、前記ストレージシステムによって提供される論理ユニットを前記仮想メモリ空間から解放するよう動作する、
    請求項5に記載のコンピュータシステム。
  7. 前記コントローラは、
    事前設定済みの期間にわたって、前記仮想メモリ空間の前記使用量レベルが、前記第1の閾値よりも低い事前設定済みの第3の閾値よりも低いときに、前記ストレージシステムによって提供される前記外部メモリを、前記外部メモリから1つ以上のストレージデバイスを除去することによって前記仮想メモリ空間から縮小させるよう動作する、
    請求項5に記載のコンピュータシステム。
  8. 前記コントローラは、
    前記ストレージシステムによって提供される前記論理ユニットを追加/解放するかどうかを判断するために、前記仮想メモリ空間の前記使用量レベルを監視し、かつ、前記監視された使用量レベルを事前設定済みの1つ以上の閾値と比較するよう動作する、
    請求項1に記載のコンピュータシステム。
  9. 前記コントローラは、
    前記仮想メモリ空間に含まれる前記外部メモリに論理ユニットを提供するために前記論理ユニットをキャッシュメモリ上にロードすることを、前記仮想メモリ空間の前記使用量レベルに基づき前記ストレージシステムにリクエストするよう動作する、
    請求項1に記載のコンピュータシステム。
  10. コンピュータが備える内部メモリおよび外部メモリによって提供される仮想メモリ空間を管理する方法であって、
    前記外部メモリは、前記コンピュータに接続されるストレージシステムによって提供され、
    前記方法は、
    前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリに、前記仮想メモリ空間の使用量レベルに基づきコントローラによって追加するステップと、
    前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリから、前記仮想メモリ空間の前記使用量レベルに基づき前記コントローラによって解放するステップと、
    を含む方法。
  11. 前記追加するステップは、
    前記仮想メモリ空間の前記使用量レベルが事前設定済みの第1の閾値よりも高いときに、前記ストレージシステムによって提供される論理ユニットを前記仮想メモリ空間に追加するステップを含む、
    請求項10に記載の方法。
  12. 前記解放するステップは、
    前記仮想メモリ空間の前記使用量レベルが、前記第1の閾値よりも低い事前設定済みの第2の閾値よりも低いときに、前記ストレージシステムによって提供される論理ユニットを前記仮想メモリ空間から解放するステップを含む、
    請求項11に記載の方法。
  13. 事前設定済みの期間にわたって、前記仮想メモリ空間の前記使用量レベルが、前記第1の閾値よりも低い事前設定済みの第3の閾値よりも低いときに、前記ストレージシステムによって提供される前記外部メモリを、前記外部メモリから1つ以上のストレージデバイスを除去することによって前記仮想メモリ空間から縮小させるステップをさらに含む、
    請求項11に記載の方法。
  14. 前記ストレージシステムによって提供される前記論理ユニットを追加/解放するかどうかを判断するために、前記仮想メモリ空間の前記使用量レベルを監視し、かつ、前記監視された使用量レベルを事前設定済みの1つ以上の閾値と比較するステップをさらに含む、
    請求項11に記載の方法。
  15. コンピュータが備える内部メモリおよび外部メモリによって提供される仮想メモリ空間を管理するデータプロセッサを制御するための複数の命令を記憶するコンピュータ可読ストレージ媒体であって、
    前記外部メモリは、前記コンピュータに接続されるストレージシステムによって提供され、
    前記複数の命令は、
    前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリに、前記仮想メモリ空間の使用量レベルに基づき追加することを、前記データプロセッサに実行させる命令と、
    前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリから、前記仮想メモリ空間の前記使用量レベルに基づき解放することを、前記データプロセッサに実行させる命令と、
    を含むコンピュータ可読ストレージ媒体。
  16. 追加することを前記データプロセッサに行わせる前記命令は、
    前記仮想メモリ空間の前記使用量レベルが事前設定済みの第1の閾値よりも高いときに、前記ストレージシステムによって提供される論理ユニットを前記仮想メモリ空間に追加する命令を含む、
    請求項15に記載のコンピュータ可読ストレージ媒体。
  17. 解放することを前記データプロセッサに行わせる前記命令は、
    前記仮想メモリ空間の前記使用量レベルが、前記第1の閾値よりも低い事前設定済みの第2の閾値よりも低いときに、前記ストレージシステムによって提供される論理ユニットを前記仮想メモリ空間から解放する命令を含む、
    請求項16に記載のコンピュータ可読ストレージ媒体。
  18. 前記複数の命令は、
    事前設定済みの期間にわたって、前記仮想メモリ空間の前記使用量レベルが、前記第1の閾値よりも低い事前設定済みの第3の閾値よりも低いときに、前記ストレージシステムによって提供される前記外部メモリを、前記外部メモリから1つ以上のストレージデバイスを除去することによって前記仮想メモリ空間から縮小させる命令をさらに含む、
    請求項16に記載のコンピュータ可読ストレージ媒体。
  19. 前記複数の命令は、
    前記ストレージシステムによって提供される前記論理ユニットを追加/解放するかどうかを判断するために、前記仮想メモリ空間の前記使用量レベルを監視し、かつ、前記監視された使用量レベルを事前設定済みの1つ以上の閾値と比較する命令をさらに含む、
    請求項15に記載のコンピュータ可読ストレージ媒体。
  20. 前記複数の命令は、
    前記仮想メモリ空間に含まれる前記外部メモリに論理ユニットを提供するために前記論理ユニットをキャッシュメモリ上にロードすることを、前記仮想メモリ空間の前記使用量レベルに基づき前記ストレージシステムにリクエストする命令をさらに含む、
    請求項15に記載のコンピュータ可読ストレージ媒体。
JP2012243225A 2012-03-27 2012-11-05 ストレージシステムによるメモリ管理の方法および装置 Expired - Fee Related JP5840594B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/430,861 US20130262811A1 (en) 2012-03-27 2012-03-27 Method and apparatus of memory management by storage system
US13/430,861 2012-03-27

Publications (2)

Publication Number Publication Date
JP2013206457A true JP2013206457A (ja) 2013-10-07
JP5840594B2 JP5840594B2 (ja) 2016-01-06

Family

ID=47221191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012243225A Expired - Fee Related JP5840594B2 (ja) 2012-03-27 2012-11-05 ストレージシステムによるメモリ管理の方法および装置

Country Status (4)

Country Link
US (1) US20130262811A1 (ja)
EP (1) EP2645246A1 (ja)
JP (1) JP5840594B2 (ja)
CN (1) CN103365603A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019706A1 (en) * 2012-07-16 2014-01-16 Infinidat Ltd. System and method of logical object management
US9128745B2 (en) 2012-12-27 2015-09-08 International Business Machines Corporation Automatically managing the storage of a virtual machine
US9274840B2 (en) * 2013-03-15 2016-03-01 International Business Machines Corporation Dynamic memory management with thread local storage usage
CN104951243B (zh) * 2014-03-28 2018-04-27 伊姆西公司 虚拟化存储系统中的存储扩展方法和装置
CN104298474A (zh) * 2014-10-13 2015-01-21 张维加 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备
US9542328B2 (en) 2015-01-26 2017-01-10 International Business Machines Corporation Dynamically controlling a file system write cache
WO2017023271A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Disk array having controller to allocate ports
CN107851132B (zh) 2016-04-29 2021-04-09 慧与发展有限责任合伙企业 用于目标器驱动的对等分区同步的方法和系统、及介质
US11159612B1 (en) 2020-04-28 2021-10-26 Hewlett Packard Enterprise Development Lp Determining non-TDP zones in a storage area network
CN112732449B (zh) * 2021-01-20 2024-04-09 湖南大学 基于gpu虚拟化技术的显存资源分配方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659982A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 仮想記憶制御方法および装置
US20060279869A1 (en) * 2005-06-08 2006-12-14 Akira Yamamoto Storage system controlling power supply module and fan
JP2010532034A (ja) * 2007-06-27 2010-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3181446B2 (ja) * 1993-09-24 2001-07-03 株式会社東芝 情報記憶装置
JP3641872B2 (ja) * 1996-04-08 2005-04-27 株式会社日立製作所 記憶装置システム
US7065610B1 (en) * 2000-06-27 2006-06-20 Emc Corporation Method and apparatus for maintaining inventory of logical volumes stored on storage elements
US20040139167A1 (en) * 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
JP4418286B2 (ja) * 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム
US7065630B1 (en) * 2003-08-27 2006-06-20 Nvidia Corporation Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
US7130960B1 (en) * 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
CN100347692C (zh) * 2005-05-31 2007-11-07 清华大学 San系统中虚拟化智能控制器的实现方法
US8140813B2 (en) * 2005-09-15 2012-03-20 Eye-Fi, Inc. Endless memory
US8082400B1 (en) * 2008-02-26 2011-12-20 Hewlett-Packard Development Company, L.P. Partitioning a memory pool among plural computing nodes
JP2010072753A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd 自動拡張ボリューム及び省電力機能を備えたストレージシステム
JP5028381B2 (ja) 2008-10-22 2012-09-19 株式会社日立製作所 ストレージ装置およびキャッシュ制御方法
JP5391422B2 (ja) * 2009-09-01 2014-01-15 株式会社日立製作所 メモリ管理方法、計算機システム及びプログラム
US8578384B2 (en) * 2009-10-28 2013-11-05 Freescale Semiconductor, Inc. Method and apparatus for activating system components
US8850156B2 (en) * 2010-11-03 2014-09-30 Huawei Technologies Co., Ltd. Method and system for managing virtual machine storage space and physical host
GB2496807B (en) * 2010-12-13 2019-11-06 Hitachi Ltd Computer system, management method of the computer system, and program
US8832687B2 (en) * 2011-04-20 2014-09-09 Red Hat Israel, Ltd. Managing quotas in a distributed virtualization environment
US8751724B2 (en) * 2011-09-20 2014-06-10 International Business Machines Corporation Dynamic memory reconfiguration to delay performance overhead

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659982A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 仮想記憶制御方法および装置
US20060279869A1 (en) * 2005-06-08 2006-12-14 Akira Yamamoto Storage system controlling power supply module and fan
JP2007018483A (ja) * 2005-06-08 2007-01-25 Hitachi Ltd 記憶システム
JP2010532034A (ja) * 2007-06-27 2010-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム

Also Published As

Publication number Publication date
US20130262811A1 (en) 2013-10-03
CN103365603A (zh) 2013-10-23
EP2645246A1 (en) 2013-10-02
JP5840594B2 (ja) 2016-01-06

Similar Documents

Publication Publication Date Title
JP5840594B2 (ja) ストレージシステムによるメモリ管理の方法および装置
US10387202B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
EP2269132B1 (en) Storage system and control method thereof as well as program
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
US7975123B2 (en) Computer system, management computer and storage system, and storage area allocation amount controlling method
JP5638744B2 (ja) コマンド・キュー・ローディング
CN102708060B (zh) 一种镜像文件访问方法、装置及系统
JP4808275B2 (ja) ネットワークブートシステム
US10534720B2 (en) Application aware memory resource management
JP2007293442A (ja) ストレージシステム及びその制御方法
US9778847B2 (en) Techniques for surfacing host-side storage capacity to virtual machines when performing VM suspend or snapshot operations
US20090300315A1 (en) Reserve Pool Management in Virtualized Storage Systems
WO2016151821A1 (ja) 計算機システムおよびプロセス実行方法
CN112231238B (zh) 使用存储器压缩来减少存储器提交开销
JP2012133630A (ja) ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法
US20080109630A1 (en) Storage system, storage unit, and storage management system
CN113031857B (zh) 数据写入方法、装置、服务器及存储介质
JP2012146280A (ja) 記憶操作のためのキュー及び作業負荷による選択インタフェースの方法及び装置
JP2016181197A (ja) 情報処理装置、方法及びプログラム
US20230153031A1 (en) Storage device supporting multi-host and operation method thereof
JP2013196421A (ja) 仮想化システム、仮想サーバ、メモリ管理方法及びメモリ管理プログラム
US10992751B1 (en) Selective storage of a dataset on a data storage device that is directly attached to a network switch
WO2016006072A1 (ja) 管理計算機およびストレージシステム
KR20230071690A (ko) 멀티-호스트를 지원하는 스토리지 장치 및 그것의 동작 방법
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151111

R150 Certificate of patent or registration of utility model

Ref document number: 5840594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees