JP5028381B2 - ストレージ装置およびキャッシュ制御方法 - Google Patents

ストレージ装置およびキャッシュ制御方法 Download PDF

Info

Publication number
JP5028381B2
JP5028381B2 JP2008271508A JP2008271508A JP5028381B2 JP 5028381 B2 JP5028381 B2 JP 5028381B2 JP 2008271508 A JP2008271508 A JP 2008271508A JP 2008271508 A JP2008271508 A JP 2008271508A JP 5028381 B2 JP5028381 B2 JP 5028381B2
Authority
JP
Japan
Prior art keywords
resident
cache
page
size
data
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
JP2008271508A
Other languages
English (en)
Other versions
JP2010102413A (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.)
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
Priority to JP2008271508A priority Critical patent/JP5028381B2/ja
Priority to US12/331,697 priority patent/US7979639B2/en
Publication of JP2010102413A publication Critical patent/JP2010102413A/ja
Priority to US13/151,454 priority patent/US8239630B2/en
Priority to US13/541,945 priority patent/US8458400B2/en
Application granted granted Critical
Publication of JP5028381B2 publication Critical patent/JP5028381B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、容量を仮想化するストレージ装置に関し、特に、このストレージ装置におけるキャッシュ制御方法に適用して有効な技術に関する。
複数のディスクから構成されるストレージ装置は、一般的に複数のディスクにまたがってデータを分散して保持するRAID(Redundant Arrays of Independent Disks)構成をとることで、ユーザに対して大容量、高信頼かつ高速なアクセスが可能なデータ保存空間を提供している。
ストレージ装置の導入時には、ユーザデータの保持空間であるLU(Logical Unit)を作成する場合に、運用形態を元にストレージ管理者が将来的に必要となるLUの容量を事前に予測する容量設計が必要である。しかし、過大なサイズのLUを割り当ててしまった場合、物理容量の使用効率や過剰な投資によるTCOの増大等を招いてしまう。
そこで、上記解決策の一手法として、LUのアクセス範囲にあわせた必要最小限の物理領域のみを使用しつつ、ホスト計算機に対しては無尽蔵の容量をもつ仮想のLU空間を提供する手法が提案されている(例えば、特許文献1)。本手法では、LUの作成時に物理領域を割り当てるのではなく、LU内のアクセスが発生した部位に、その都度、物理領域をディスク群から動的に割り当てるという特徴を有している。
また、一般的なストレージ装置は、低速・大容量のハードディスクが多く使用されるため、I/O処理を高速化するために高速・低容量のキャッシュメモリ(単にキャッシュとも記す)を搭載している。しかし、キャッシュメモリ領域は、ディスク領域に比べて非常に小さいため、特定のデータが常にキャッシュメモリ上に存在し続けることは困難である。そこで、キャッシュメモリに特定のプログラムもしくはデータを意図的に常駐させ、高速処理を実現する手法(以下、キャッシュ常駐と呼ぶ)が提案されている(例えば、特許文献2)。
また、前記特許文献2には記載されていないが、特定のLUのデータをすべてキャッシュメモリ上に常駐させる技術(以下、LUキャッシュ常駐と呼ぶ)も存在する。
特開2003−15915号公報 特開2005−309739号公報
ところで、前記のようなストレージ装置において、キャッシュ常駐制御の適用時には、常駐対象のデータが常駐に必要なキャッシュメモリ領域を占有するため、非常駐のデータが使用可能なキャッシュメモリ領域は縮小する。よって、キャッシュ非常駐のデータに対するI/O処理の速度は低下する。
ここで、上記LUキャッシュ常駐制御を、容量を仮想化するストレージ装置へ適用する場合を考える。この場合、従来の常駐方式では、論理アドレス空間全体のデータをキャッシュメモリへ常駐させるため、仮想化されたLU全サイズ分の領域をキャッシュメモリ上に確保する必要がある。このとき、I/O要求が発生していない物理領域未割り当ての部位についてもキャッシュ領域を確保してしまうため、キャッシュ領域の無駄な確保が発生し、キャッシュ利用効率が低下する。
そこで、本発明の目的は、容量を仮想化するストレージ装置にLU単位のキャッシュ常駐制御を適用する際に、LUに割り当たっている物理容量分に等しいキャッシュ領域のみを確保することで、キャッシュ常駐の領域を最適化するストレージ装置を提供することである。結果として、キャッシュ非常駐のデータが使用可能なキャッシュ領域が増大し、キャッシュ非常駐のデータに対するI/O処理速度が向上するため、システム性能が最大化する。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
すなわち、代表的なものの概要は、LUに割り当てられている物理容量分のデータのみをキャッシュメモリ上に常駐させることで、上記課題を解決する。すなわち、常駐対象のLUに物理容量の新規割り当てが発生した場合に、その都度、割り当て分に等しいサイズのセグメント領域を常駐用領域としてキャッシュメモリ上に確保する制御方法をとる。具体的には、キャッシュメモリに常駐させる論理空間であるLUが、複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成される場合に、キャッシュメモリに常駐させるLUを作成した際は、LUのサイズ分の容量を最初からキャッシュメモリ上に確保するのではなく、ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量をキャッシュメモリ上に確保して、新規のページをキャッシュメモリ上に常駐化させる。
また、常駐LUの作成時には、常駐LUの合計サイズが、使用可能なキャッシュ容量を超過しないことを保障する制御方法をとる。具体的には、常駐希望するLUの割り当てサイズとキャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、LUの割り当てサイズが割り当て可能キャッシュサイズよりも小さい場合はLUの作成が可能と判断し、一方、LUの割り当てサイズが割り当て可能キャッシュサイズよりも大きい場合はLUの作成が不可能と判断する。
また、常駐LUの削除時には、常駐用に確保したキャッシュ領域を即座に開放することで、常駐対象にないLUがキャッシュ開放領域を使用可能とする制御方法をとる。具体的には、常駐LUの削除であるか、もしくは常駐指定の解除であるかを判断し、常駐LUの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のLUのエントリを削除し、その後、当該LUのデータを保持していたセグメントを未使用に変更して常駐領域を開放し、一方、常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施してキャッシュメモリ上のデータを記憶デバイスへ反映し、その後、当該LUのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該LUの情報を削除する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、代表的なものによって得られる効果は、容量を仮想化するストレージ装置において、LUキャッシュ常駐を実施する際に、無駄なキャッシュ占有を抑止することができる。これにより、システム全体のキャッシュ利用効率が向上し、システム性能を最大化するストレージ装置の実現が可能である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
<ストレージ装置の構成>
図1は、本発明の一実施の形態におけるストレージ装置を示す全体構成図である。
図1において、ストレージ装置10は、ストレージ装置全体の制御を行うストレージ制御装置100と、記憶領域を提供するストレージ駆動装置200から構成される。
ストレージ装置10には、ストレージ制御装置100のホストアダプタ110を介して、ストレージ装置10を利用する上位装置となるアプリケーションサーバなどのホスト計算機300が接続されている。なお、ストレージ装置10とホスト計算機300を接続するためのインタフェースには、専用のネットワークであるSAN(Storage Area Network)180を用いる。また、SAN180の構築には、ファイバチャネル、SCSI(Small Computer System Interface)、iSCSI(internet Small Computer System Interface)、USB(Universal Serial Bus)、IEEE1394バス等を用いることが可能である。また、ストレージ装置10に接続されるホスト計算機300は、複数台でも良い。
さらに、ホスト計算機300上には、ストレージ装置10のディスク構成の操作や設定を行い、ストレージ装置10の動作を制御する制御ソフトウェアがインストールされており、ホスト計算機300上の制御ソフトウェアにより、ストレージ装置10に対してコマンドなどを発行し、ストレージ装置10の動作を制御することができる。ただし、ストレージ装置10とホスト計算機300上のストレージ制御ソフトウェアとは、LAN(Local Area Network)190を経由してデータのやり取りを行う。もちろん、ストレージ装置10の管理・制御を行う計算機はホスト計算機300とは別のものを使用しても良い。
ストレージ制御装置100は、ストレージ装置10を利用するホスト計算機300を接続するホストアダプタ110、ストレージ装置10の全体制御を行う中央演算装置(CPU)120、CPU120がストレージ装置10を制御するために必要なプログラムやデータを格納するメモリ130、ホスト計算機300のデータアクセスに対するLUを常駐させて高速レスポンスを提供するユーザデータのキャッシュメモリ140、RAIDを構成する際にパリティ計算等を行うASICs(application specific integrated circuits)150、ストレージ制御装置100とストレージ駆動装置200とを接続するディスクアダプタ160、ホスト計算機300をLAN190を経由して接続するNIC(Network Interface Card)170から構成されている。
ストレージ駆動装置200は、多数のディスクボックス210を備えており、ディスクボックス210の中に多数の物理ディスク(記憶デバイス)2100を備えている。これらの物理ディスク2100には、ハードディスク等を用いることが可能である。
<LUの構成>
図2は、LUの構成概要を示す説明図である。
本実施の形態では、ストレージ駆動装置200に備えられている多数の物理ディスク2100を用いて、特定のRAIDレベルを有する物理空間であるプールボリュームを作成し、プールボリュームから論理空間であるLUの構築に必要な物理容量を割り当てる。プールボリュームは、一定サイズのブロック(以下、ページ2101と呼ぶ)に複数分割されており、LUはプールボリューム内の任意のページ2101の集まりにより構成される。また、1つのページ2101は、複数の物理ディスク2100間にまたがって作成されても良い。
図2では、LUN0(LUの番号が0)が5ページ分の容量を持つLUであることを示しており、LBA(Logical Block Address)=0からLBA=999のページNo.10(21010)、LBA=1000からLBA=1999のページNo.3(21011)、LBA=2000からLBA=2999のページNo.62(21012)の3ページ分の領域については、物理容量が割り当て済みであることを示している。また、LBA=3000からLBA=3999のページ(21013)、LBA=4000からLBA=4999のページ(21014)の2ページ分の領域については、物理容量が未割り当ての状態(N/A)であることを示している。ゆえに、ホスト計算機300はLUN0をLBA=0からLBA=4999までの領域として認識しているが、ストレージ装置10内では実際にアクセスの発生しているLBA=0からLBA=2999までの領域にのみ物理容量が割り当たっている状態である。ここで、物理容量未割り当て領域である、LBA=3000からLBA=3999、LBA=4000からLBA=4999の各領域にアクセスが生じた場合は、プールボリュームから新規ページを確保し、LUに割り当てを行う動作となる。
<メモリの構成>
図3は、メモリ130を示す構成図である。
メモリ130には、CPU120がストレージ装置10を制御するために使用するプログラム1300と、物理容量を管理するためのプールボリューム管理テーブル1310、物理空間であるプールボリュームと論理空間であるLUとの対応を管理するためのアドレス変換テーブル1320、常駐LUの一覧およびLUサイズを管理するための常駐LU管理テーブル1330、キャッシュセグメントを管理するためのキャッシュセグメント管理テーブル1340、常駐LUが使用するキャッシュ容量を管理するためのキャッシュ容量管理テーブル1350が格納されている。これらの各テーブル1310〜1350については、後述の図4〜図8において詳細に説明する。また、プログラム1300には、後述の図9〜図15において説明する各処理のプログラムが含まれる。
<プールボリューム管理テーブルの構成>
図4は、プールボリューム管理テーブル1310を示す構成図である。
プールボリューム管理テーブル1310には、ページNo13100、HDDNo13101、開始アドレス13102、終了アドレス13103、割り当てフラグ13104の各領域がある。
ページNo13100は、プールボリューム内に作成されるページの識別子であり、ユニークな番号が割り当てられる。HDDNo13101は、各ページが所属するハードディスク(物理ディスク2100)を管理するための識別子である。図4中ではハードディスク番号をx−yと表記しているが、xはディスクボックス210の位置を示す番号であり、yは同一ディスクボックス210内でのハードディスク(物理ディスク2100)の位置を示す番号である。開始アドレス13102および終了アドレス13103は、各ページの開始位置と終了位置とをそれぞれ表すものである。割り当てフラグ13104は、当該ページがLUに割り当て済みであるか否かを判断するためのフラグであり、フラグが1のときは割り当て済みであることを、フラグが0のときは未割り当てであることを示している。
<アドレス変換テーブルの構成>
図5は、アドレス変換テーブル1320を示す構成図である。
アドレス変換テーブル1320には、LUN13200、開始LBA13201、終了LBA13202、ページNo13203の各領域がある。
LUN13200は、LUの識別子である。開始LBA13201および終了LBA13202は、論理アドレスの開始位置と終了位置とをそれぞれ表すものである。ページNo13203は、論理アドレスと物理アドレスの対応を管理するためのものであり、プールボリュームより割り当てられたページのページNoが格納される。ここで、物理容量が未割り当てである領域に対しては、ページNo13203にはN/Aが格納される。
<常駐LU管理テーブルの構成>
図6は、常駐LU管理テーブル1330を示す構成図である。
常駐LU管理テーブル1330には、LUN13300、LUサイズ13301の各領域がある。
LUN13300は、常駐指定されたLUのLU番号である。LUサイズ13301は、常駐LUそれぞれに割り当てられたLUサイズである。図6中では、LUサイズをGBで表現しているが、単位に決まりはなく、MB表記やKB表記、もしくはブロック数等を用いても良い。
<キャッシュセグメント管理テーブルの構成>
図7は、キャッシュセグメント管理テーブル1340を示す構成図である。
キャッシュセグメント管理テーブル1340には、セグメントNo13400、LUN13401、ページNo13402、開始LBA13403、終了LBA13404、キャッシュ常駐フラグ13405の各領域がある。
セグメントNo13400は、キャッシュセグメントの識別子である。LUN13401は、各セグメントに格納されているデータのLUNを示す。ページNo13402は、セグメントに格納されているデータが、プールボリューム内のどのページに対応するかを管理するものである。開始LBA13403および終了LBA13404は、各セグメントに格納されているデータが、対応するページ内のどの位置に格納されているかを管理するものである。これは、キャッシュセグメントのサイズとページサイズとが異なった場合、ページ内のどの位置に格納されたデータであるかを特定する必要があるためである。
キャッシュ常駐フラグ13405は、当該セグメントに格納されるデータがキャッシュ常駐指定であるか否かを管理するためのものであり、キャッシュ常駐フラグ13405が1の時は当該セグメントがキャッシュ常駐対象であり、常駐対象にないLUは当該セグメントの使用が不可能であることを、一方、キャッシュ常駐フラグ13405が0の時は当該セグメントがキャッシュ常駐非対象であり、常駐対象にない一般のLUが使用可能なセグメントであることを示している。また、未使用のセグメントに対しては、LUN13401、ページNo13402、開始LBA13403、終了LBA13404、キャッシュ常駐フラグ13405にそれぞれ未使用であることを示すN/Aが格納され、当該セグメントが即座に使用可能であることを示している。
<キャッシュ容量管理テーブルの構成>
図8は、キャッシュ容量管理テーブル1350を示す構成図である。
キャッシュ容量管理テーブル1350には、使用可能キャッシュサイズ13500、常駐LU合計サイズ13501、割り当て可能キャッシュサイズ13502の各領域がある。
使用可能キャッシュサイズ13500は、ストレージ装置10に搭載されたキャッシュメモリ140のうち、ユーザデータの保持に使用可能な容量である。本数値は、ストレージ装置10に搭載するキャッシュメモリ容量の増減に併せて変動する。常駐LU合計サイズ13501は、常駐LUの合計LUサイズを管理するものであり、常駐LU管理テーブル1330の構成要素であるLUサイズ13301を合計した数値が格納される。割り当て可能キャッシュサイズ13502は、使用可能キャッシュサイズ13500から常駐LU合計サイズ13501を引いた数値が格納されている。これは、ストレージ装置10に搭載されたキャッシュメモリ140の物理容量を超えるサイズのLUは常駐できないため、容量超過を判断するための判断材料として使用する。図8中では、各サイズをGBで表現しているが、MBやKBもしくはブロック数等の任意の単位を使用可能である。
<常駐LUの作成>
図9は、常駐LU作成時の手順を示すフローチャートである。常駐LU作成時の手順を図9を用いて説明する。この常駐LU作成時の手順は、ストレージ装置10内では、中央演算装置120がメモリ130に格納されているプログラム1300を実行することで行われる。
ストレージ管理者は、ホスト計算機300にインストールされた制御ソフトウェアを用いて、ストレージ装置10に対して常駐LUの作成を指示する(図9には未記載)。ストレージ装置10は、ホスト計算機300より発行された常駐LUの作成指示を受領し(ステップS100)、ストレージ管理者が希望するLUの割り当てサイズが、割り当て可能キャッシュサイズよりも小さいか否かを、割り当て可能キャッシュサイズ13502と比較することにより判断する(ステップS101)。比較の結果、LUサイズが割り当て可能キャッシュサイズよりも小さい場合(S101−Yes)は、LU作成可能と判断し、以下に記載するLU作成処理を実行する。
まず、アドレス変換テーブル1320に、作成するLUのエントリを追加する。具体的には、LU番号をLUN13200に追加し、LU作成に必要なページの数をLUサイズから1ページのサイズを除算することで算出し、各ページの開始LBA13201および終了LBA13202を記載する。ただし、本処理ではLU容量の割り当て処理のみ行うため、実際の物理領域であるページの割り当ては行わない。ゆえに、ページNo13203は全てN/Aとなる(ステップS102)。次に、常駐LU管理テーブル1330のLUN13300とLUサイズ13301にそれぞれ作成するLUのLU番号およびLUサイズを記載することで、常駐LU管理テーブル1330を更新し(ステップS103)、キャッシュ容量管理テーブル1350の常駐LU合計サイズ13501および、割り当て可能キャッシュサイズ13502をそれぞれ更新する(ステップS104)。最後に、LU作成の完了通知をホスト計算機300に送信することにより本処理を終了する(ステップS105)。
一方、ステップS101にて、LUサイズが割り当て可能キャッシュサイズよりも大きいと判断した場合(S101−No)は、常駐LUの全サイズが使用可能なキャッシュサイズを超過してしまうため、LUの作成は不可能であると判断し、LU作成の不可通知をホスト計算機300に送信することにより本処理を終了する(ステップS106)。
<I/O要求処理>
図10は、ホスト計算機300からのI/O要求処理の手順を示すフローチャートである。ホスト計算機300からストレージ装置10へ発行されるI/O要求を処理する際の手順を図10を用いて説明する。このI/O要求処理の手順は、ストレージ装置10内では、中央演算装置120がメモリ130に格納されているプログラム1300を実行することで行われる。
ホスト計算機300は、ストレージ装置10に対して、リードもしくはライトのI/O要求を発行する(ステップS200)。ストレージ装置10は、ホスト計算機300からのI/O要求を受け取り、I/O処理を実行する(ステップS201)。このI/O処理については、後述の図11において詳細に説明する。ステップS201の処理終了後、ストレージ装置10は、ホスト計算機300に対して、要求されたI/O処理が終了したことを伝えるためのI/O処理の終了通知を発行する(ステップS202)。ホスト計算機300は、ストレージ装置10からの終了通知を受信し、当該コマンドを終了する(ステップS203)。
図11は、ストレージ装置10が実行するI/O処理であるステップS201の詳細な手順を示すフローチャートである。
ストレージ装置10は、I/O要求コマンドを解析し、処理対象となるLUN、開始LBA、終了LBAを検出する(ステップS300)。次に、対象LBAにページが割り当て済みであるか否かを、アドレス変換テーブル1320の情報を元に判断する(ステップS301)。ステップS301の判断の結果、対象LBAに対応するページNo13203がN/Aでない場合(S301−Yes)は、ページ割り当て済みの領域に対するI/O要求であると判断し、データ転送処理へと移行する(ステップS304)。このデータ転送処理については、後述の図14において詳細に説明する。
また、ステップS301において、対象LBAに対応するページNo13203がN/Aである場合(S301−No)は、ページ未割り当ての領域に対するI/O要求であるため、新規ページの割り当てが必要であると判断し、新規ページ割り当て処理へと移行する(ステップS302)。この新規ページ割り当て処理については、後述の図12において詳細に説明する。その後、新規割り当てページに対するキャッシュ常駐処理を行う(ステップS303)。このキャッシュ常駐処理については、後述の図13において詳細に説明する。その後、データ転送処理へと移行する(ステップS304)。
図12は、新規ページ割り当て処理であるステップS302の詳細な手順を示すフローチャートである。
まず、プールボリューム管理テーブル1310の割り当てフラグ13104の情報を元に、割り当て可能ページがあるか否か、すなわちプールボリューム内に未割り当てのページが存在するか否かを検出する(ステップS400)。ステップS400にて、割り当てフラグ13104が0のページが存在しない場合(S400−No)は、割り当て可能ページなしと判断し、ホスト計算機300にインストールされたソフトウェアを介して、ストレージ管理者にプールボリュームの拡張依頼を通知する(ステップS402)。ステップS402の拡張依頼通知を受け取ったストレージ管理者は、新たな物理ディスク2100をプールボリュームに追加することで、プールボリュームの拡張が実行される(ステップS403)。プールボリューム拡張処理により、プールボリューム管理テーブル1310のエントリは追加ディスク分拡張され、追加ディスクに所属するページの割り当てフラグ13104の値は全て未割り当てを示す0の状態となる。ステップS403での拡張終了後、再度、新規ページの割り当て可否を判断するステップS400へと移行する。
一方、ステップS400にて、割り当てフラグ13104が0のページが存在する場合(S400−Yes)は、割り当て可能ページありと判断し、当該ページの割り当て処理を実行する(ステップS401)。具体的には、アドレス変換テーブル1320のページNo13203をN/Aから割り当てページのページNoに変更し、プールボリューム管理テーブル1310の割り当てページのページNo13100に対応する割り当てフラグ13104を1へと変更する。
図13は、キャッシュ常駐処理であるステップS303の詳細な手順を示すフローチャートである。
常駐LU管理テーブル1330の情報を元に、当該LUがキャッシュ常駐対象であるか否かを判断する(ステップS500)。処理対象LUのLUNが常駐LU管理テーブル1330のLUN13300に記載されている場合(S500−Yes)は、当該LUがキャッシュ常駐対象であると判断し、ステップS302で割り当てたページのデータをキャッシュメモリ140上に常駐させるため、割り当てページ分のセグメント領域をキャッシュメモリ140上に確保する(ステップS501)。ステップS501では、キャッシュセグメント管理テーブル1340に対し、確保したセグメントのセグメントNo13400に対応するLUN13401、ページNo13402、開始LBA13403、終了LBA13404の更新を行う。
次に、当該コマンドのI/O種別を判断し(ステップS502)、リードコマンドであると判断した場合(S502−Read)は、データをキャッシュヒットさせるために、物理ディスク2100上のデータをキャッシュメモリ140上に読み出すためのデータコピー(ステージング)を行う(ステップS503)。一方、ステップS502にて、ライトコマンドであると判断した場合(S502−Write)は、データの書込みを行うためのキャッシュメモリ領域はステップS501で確保済みのために何もしない。次に、キャッシュ常駐フラグ13405の値にキャッシュ常駐対象を示す1を設定して当該セグメントを常駐属性に変更する(ステップS504)。以上のステップにより、常駐対象LUに対して、新規に割り当てられた物理領域分のみのキャッシュ領域の確保が完了する。
また、ステップS500の判断の結果、当該LUがキャッシュ常駐対象でない場合(S500−No)は、本処理を終了する。
図14は、データ転送処理であるステップS304の詳細な手順を示すフローチャートである。
ステップS300と同様に、I/O要求コマンドを解析し、処理対象となるLUN、開始LBA、終了LBAを検出する(ステップS600)。次に、I/O種別を解析し、当該コマンドがリードコマンドであるか、ライトコマンドであるかを判断する(ステップS601)。判断の結果、リードコマンドである場合(S601−Read)は、キャッシュセグメント管理テーブル1340の情報を元に、キャッシュヒット/ミス判定を実施する(ステップS602)。キャッシュセグメント管理テーブル1340に処理対象のデータが存在しない場合(S602−ミス)は、キャッシュミスと判断し、物理ディスク2100からキャッシュメモリ140へのデータコピー(ステージング)を実行する(ステップS603)。その後、キャッシュメモリ140上にステージングされたデータをホスト計算機300へ転送し(ステップS604)、本処理を終了する。一方、ステップS602にて、キャッシュヒットであると判断した場合(S602−ヒット)は、キャッシュメモリ140上に存在する処理対象のデータをホスト計算機300へ転送し(ステップS604)、本処理を終了する。
また、ステップS601にて、I/O種別がライトコマンドであると判断した場合(S601−Write)は、ステップS602と同様に、キャッシュセグメント管理テーブル1340の情報を元に、キャッシュヒット/ミス判定を実施する(ステップS605)。キャッシュセグメント管理テーブル1340に処理対象のデータが存在する場合(S605−ヒット)は、キャッシュヒットと判断し、当該セグメントへデータを上書きライトし(ステップS606)、本処理を終了する。一方、ステップS605にて、キャッシュミスと判断した場合(S605−ミス)は、キャッシュメモリ140の空きセグメントにデータをライトし(ステップS607)、本処理を終了する。
ここで、キャッシュメモリ140へライトされたデータは物理ディスク2100への書き込みが必要であるが、一般的なストレージ装置は、キャッシュメモリ140上にデータを格納した時点でホスト計算機300へ完了応答を送信し、その後、任意のタイミングで物理ディスク2100へのライトを行う非同期ライト処理をとっている。図14においても、キャッシュライト完了までのフローチャートのみしか示していないが、非同期でディスクライト処理を行うものとする。ただし、キャッシュ常駐対象のライトデータに関しては、物理ディスク2100へのライトは発生しない。
また、キャッシュヒット/ミス判定を行うステップS602およびステップS605において、キャッシュ常駐対象のLUについては、当然、キャッシュヒットの判定となる。
<常駐LUの削除もしくは常駐指定の解除>
図15は、常駐LUの削除もしくは常駐指定の解除時の手順を示すフローチャートである。この常駐LUの削除もしくは常駐指定の解除時の手順は、ストレージ装置10内では、中央演算装置120がメモリ130に格納されているプログラム1300を実行することで行われる。
ここで、常駐指定の解除とは、LU自体の削除は行わないが、キャッシュ常駐は解除する操作を指す。
まず、ストレージ管理者は、ホスト計算機300にインストールされた制御ソフトウェアを用いて、ストレージ装置10に対して常駐LUの削除、もしくは常駐指定の解除を指示する(図15には未記載)。ストレージ装置10は、ホスト計算機300より発行された常駐解除指示のコマンドを受領し(ステップS700)、コマンドの種別が、常駐LU自体の削除であるのか、もしくは常駐指定の解除のみであるかを判断する(ステップS701)。
ステップS701の判断の結果、コマンドがLUの削除である場合(S701−LU削除)は、アドレス変換テーブル1320の情報を元に、削除対象のLUが使用しているページNo13203を元に、プールボリューム管理テーブル1310で削除対象となるページNo13100の割り当てフラグ13104を未割り当て状態を示す0に変更する(ステップS702)。次に、アドレス変換テーブル1320内の該当するLUN13200、開始LBA13201、終了LBA13202、ページNo13203をそれぞれ削除することで、対象のLUのエントリを削除する(ステップS703)。
その後、キャッシュセグメント管理テーブル1340内で、当該LUのデータを保持していたセグメントのセグメントNo13400を、LUN13401を元に取得し、当該セグメントのLUN13401、ページNo13402、開始LBA13403、終了LBA13404、キャッシュ常駐フラグ13405に未使用を意味するN/Aを格納することで常駐領域を開放する(ステップS705)。さらに、常駐LU管理テーブル1330の中から当該LUの情報を削除し(ステップS706)、キャッシュ容量管理テーブル1350の常駐LU合計サイズ13501および割り当て可能キャッシュサイズ13502を更新する(ステップS707)。以上の処理により常駐LU削除処理を終了し、最後に処理完了通知をホスト計算機300に送信することにより本処理を終了する(ステップS708)。
一方、ステップS701の判断の結果、コマンドがLUの常駐指定の解除である場合(S701−常駐解除)は、常駐により抑止されていたデータデステージ(キャッシュからディスクへのデータライト)を実施し、キャッシュメモリ140上のデータを物理ディスク2100へと反映する(ステップS704)。その後は、ステップS705からステップS707の処理を実行することで、各テーブルを更新する。ただし、ステップS705のキャッシュセグメント管理テーブル1340の更新処理では、LU削除時の動作とは異なり、当該セグメントNo13400のキャッシュ常駐フラグ13405のみを、常駐指定の解除を意味する0に変更し、LUN13401、ページNo13402、開始LBA13403、終了LBA13404の変更は行わない。これは、常駐指定の解除後は当該セグメントは次第に非常駐LUに使用されることとなるが、非常駐LUに使用される前までは、キャッシュヒットの可能性を残すためである。最後に処理完了通知をホスト計算機300に送信することにより本処理を終了する(ステップS708)。
上記処理により、常駐指定の解除時には、解除処理と同時にキャッシュメモリ140上に確保されていた占有領域を即座に開放することで、開放領域を常駐指定されていないLUが使用することを可能とする。
<本実施の形態の効果>
(1)キャッシュメモリ140に常駐させるLUを作成した際は、LUのサイズ分の容量を最初からキャッシュメモリ140上に確保するのではなく、常駐対象のLUに物理容量の新規割り当てが発生した場合に、その都度判断することで、割り当て分に等しいサイズのセグメント領域を常駐用領域としてキャッシュメモリ140上に確保することができる。
(2)常駐LUの作成時には、常駐希望するLUの割り当てサイズとキャッシュメモリ140上の割り当て可能キャッシュサイズとを比較して判断することで、常駐LUの合計サイズが使用可能なキャッシュ容量を超過しないことを保障することができる。
(3)常駐LUの削除時には、削除対象となるLUのエントリを削除し、常駐用に確保したキャッシュ領域を即座に開放することで、常駐対象にないLUがキャッシュ開放領域を使用可能とする。また、常駐指定の解除時には、常駐により抑止されていたデータデステージを実施して当該LUの情報を削除することで、常駐指定を解除することができる。
(4)LUキャッシュ常駐を実施する際に、常駐キャッシュ領域の無駄な確保の抑止が可能となることから、キャッシュ非常駐のデータが使用可能なキャッシュ領域が増大し、キャッシュ非常駐のデータに対するI/O処理速度が向上してシステム性能が最大化するので、ストレージ装置全体のキャッシュ利用効率が向上し、ストレージ装置全体の性能向上を実現することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明の一実施の形態におけるストレージ装置を示す全体構成図である。 図1のストレージ装置において、LUの構成概要を示す説明図である。 図1のストレージ装置において、メモリを示す構成図である。 図1のストレージ装置において、プールボリューム管理テーブルを示す構成図である。 図1のストレージ装置において、アドレス変換テーブルを示す構成図である。 図1のストレージ装置において、常駐LU管理テーブルを示す構成図である。 図1のストレージ装置において、キャッシュセグメント管理テーブルを示す構成図である。 図1のストレージ装置において、キャッシュ容量管理テーブルを示す構成図である。 図1のストレージ装置において、常駐LU作成時の手順を示すフローチャートである。 図1のストレージ装置において、ホスト計算機からのI/O要求処理の手順を示すフローチャートである。 図1のストレージ装置において、ストレージ装置が実行するI/O処理の詳細な手順を示すフローチャートである。 図1のストレージ装置において、新規ページ割り当て処理の詳細な手順を示すフローチャートである。 図1のストレージ装置において、キャッシュ常駐処理の詳細な手順を示すフローチャートである。 図1のストレージ装置において、データ転送処理の詳細な手順を示すフローチャートである。 図1のストレージ装置において、常駐LUの削除もしくは常駐指定の解除時の手順を示すフローチャートである。
符号の説明
10…ストレージ装置、
100…ストレージ制御装置、110…ホストアダプタ、120…中央演算装置、130…メモリ、1300…プログラム、1310…プールボリューム管理テーブル、1320…アドレス変換テーブル、1330…常駐LU管理テーブル、1340…キャッシュセグメント管理テーブル、1350…キャッシュ容量管理テーブル、140…キャッシュメモリ、150…ASICs、160…ディスクアダプタ、170…NIC、
180…SAN、190…LAN、
200…ストレージ駆動装置、210…ディスクボックス、2100…物理ディスク、
300…ホスト計算機。

Claims (15)

  1. ストレージ制御装置と、前記ストレージ制御装置に接続されるストレージ駆動装置とを有するストレージ装置であって、
    前記ストレージ制御装置は、前記ストレージ装置の全体制御を行う中央演算装置と、前記中央演算装置が前記ストレージ装置を制御するために必要なプログラムやデータを格納するメモリと、前記ストレージ装置を利用するホスト計算機のデータアクセスに対する論理空間であるLUを常駐させるキャッシュメモリとを有し、
    前記ストレージ駆動装置は、複数の記憶デバイスを有し、
    前記キャッシュメモリに常駐させるLUは、前記複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成され、
    前記メモリには、前記中央演算装置が実行し、前記キャッシュメモリに常駐させるLUを作成した際は、前記LUのサイズ分の容量を最初から前記キャッシュメモリ上に確保するのではなく、前記ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量を前記キャッシュメモリ上に確保して、前記新規のページを前記キャッシュメモリ上に常駐化させるキャッシュ常駐処理を行うためのプログラムが格納されている、ことを特徴とするストレージ装置。
  2. 請求項1記載のストレージ装置において、
    前記キャッシュ常駐処理は、前記ホスト計算機より発行されたI/O要求を処理するI/O処理に含まれ、
    前記メモリには、前記中央演算装置が実行し、前記I/O処理を行うためのプログラムと、前記プールボリュームと前記LUとの対応を管理するためのアドレス変換テーブルとが格納され、
    前記I/O処理では、前記ホスト計算機より発行されたI/O要求を受け取り、このI/O要求のコマンドを解析し、処理対象となるLUのLBAにページが割り当て済みであるか否かを前記アドレス変換テーブルの情報を元に判断し、この判断の結果、割り当て済みである場合はページ割り当て済みの領域に対するI/O要求であると判断してデータ転送処理を実行し、一方、割り当て済みでない場合はページ未割り当ての領域に対するI/O要求であるため、新規ページの割り当てが必要であると判断して新規ページ割り当て処理へ移行し、その後、新規割り当てページに対する前記キャッシュ常駐処理を行った後、データ転送処理を実行する、ことを特徴とするストレージ装置。
  3. 請求項2記載のストレージ装置において、
    前記メモリには、前記プールボリュームを管理するためのプールボリューム管理テーブルが格納され、
    前記新規ページ割り当て処理では、前記プールボリューム管理テーブルの割り当てフラグの情報を元に割り当て可能ページがあるか否かを判断し、この判断の結果、割り当て可能ページがない場合はストレージ管理者にプールボリュームの拡張依頼を通知することでプールボリュームの拡張が実行され、一方、割り当て可能ページがある場合は当該ページの割り当て処理を実行して、前記アドレス変換テーブルのページを未割り当てから割り当てページに変更し、前記プールボリューム管理テーブルの割り当てページに対応する割り当てフラグを割り当て済みに変更する、ことを特徴とするストレージ装置。
  4. 請求項2記載のストレージ装置において、
    前記メモリには、前記キャッシュメモリに常駐させるLUの一覧およびサイズを管理するための常駐LU管理テーブルと、前記キャッシュメモリのセグメントを管理するためのキャッシュセグメント管理テーブルとが格納され、
    前記キャッシュ常駐処理では、前記常駐LU管理テーブルの情報を元に、処理対象となるLUがキャッシュ常駐対象であるか否かを判断し、この判断の結果、当該LUがキャッシュ常駐対象である場合は割り当てページ分のセグメント領域を前記キャッシュメモリ上に確保し、この確保したセグメントに対応する前記キャッシュセグメント管理テーブルの情報を更新し、次に、当該コマンドのI/O種別を判断し、この判断の結果、リードコマンドである場合は前記記憶デバイス上のデータを前記キャッシュメモリ上に読み出すためのデータステージングを行い、一方、ライトコマンドである場合は何もせず、次に、前記キャッシュセグメント管理テーブルのキャッシュ常駐フラグをキャッシュ常駐対象に設定して当該セグメントを常駐属性に変更する、ことを特徴とするストレージ装置。
  5. 請求項1記載のストレージ装置において、
    前記メモリには、前記中央演算装置が実行し、前記常駐させるLUを作成する常駐LUの作成処理を行うためのプログラムが格納され、
    前記常駐LUの作成処理では、前記ホスト計算機より発行された常駐LUの作成指示を受領し、常駐希望するLUの割り当てサイズと前記キャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、この比較の結果、前記LUの割り当てサイズが前記割り当て可能キャッシュサイズよりも小さい場合はLUの作成が可能と判断してLUの作成処理を実行し、一方、前記LUの割り当てサイズが前記割り当て可能キャッシュサイズよりも大きい場合はLUの作成が不可能と判断する、ことを特徴とするストレージ装置。
  6. 請求項1記載のストレージ装置において、
    前記メモリには、前記中央演算装置が実行し、前記常駐させるLUを削除する常駐LUの削除処理と常駐指定を解除する常駐指定の解除処理とを行うためのプログラムが格納され、
    前記常駐LUの削除処理と前記常駐指定の解除処理では、前記ホスト計算機より発行された常駐解除指示のコマンドを受領し、このコマンドの種別が常駐LUの削除であるか、もしくは常駐指定の解除であるかを判断し、この判断の結果、前記常駐LUの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のLUのエントリを削除し、その後、当該LUのデータを保持していたセグメントを未使用に変更して常駐領域を開放する常駐LUの削除処理を実行し、一方、前記常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施して前記キャッシュメモリ上のデータを前記記憶デバイスへ反映し、その後、当該LUのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該LUの情報を削除する常駐指定の解除処理を実行する、ことを特徴とするストレージ装置。
  7. ストレージ制御装置と、前記ストレージ制御装置に接続されるストレージ駆動装置とを有するストレージ装置におけるキャッシュ制御方法であって、
    前記ストレージ制御装置は、前記ストレージ装置の全体制御を行う中央演算装置と、前記中央演算装置が前記ストレージ装置を制御するために必要なプログラムやデータを格納するメモリと、前記ストレージ装置を利用するホスト計算機のデータアクセスに対する論理空間であるLUを常駐させるキャッシュメモリとを有し、
    前記ストレージ駆動装置は、複数の記憶デバイスを有し、
    前記キャッシュメモリに常駐させるLUは、前記複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成され、
    前記中央演算装置が前記メモリに格納されている前記プログラムを実行し、前記キャッシュメモリに常駐させるLUを作成した際は、前記LUのサイズ分の容量を最初から前記キャッシュメモリ上に確保するのではなく、前記ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量を前記キャッシュメモリ上に確保して、前記新規のページを前記キャッシュメモリ上に常駐化させるキャッシュ常駐処理を行う、ことを特徴とするキャッシュ制御方法。
  8. 請求項7記載のキャッシュ制御方法において、
    前記キャッシュ常駐処理は、前記ホスト計算機より発行されたI/O要求を処理するI/O処理に含まれ、
    前記I/O処理では、前記ホスト計算機より発行されたI/O要求を受け取り、このI/O要求のコマンドを解析し、処理対象となるLUのLBAにページが割り当て済みであるか否かを前記プールボリュームと前記LUとの対応を管理するためのアドレス変換テーブルの情報を元に判断し、この判断の結果、割り当て済みである場合はページ割り当て済みの領域に対するI/O要求であると判断してデータ転送処理を実行し、一方、割り当て済みでない場合はページ未割り当ての領域に対するI/O要求であるため、新規ページの割り当てが必要であると判断して新規ページ割り当て処理へ移行し、その後、新規割り当てページに対する前記キャッシュ常駐処理を行った後、データ転送処理を実行する、ことを特徴とするキャッシュ制御方法。
  9. 請求項8記載のキャッシュ制御方法において、
    前記新規ページ割り当て処理は、前記プールボリュームを管理するためのプールボリューム管理テーブルの割り当てフラグの情報を元に割り当て可能ページがあるか否かを判断し、この判断の結果、割り当て可能ページがない場合はストレージ管理者にプールボリュームの拡張依頼を通知することでプールボリュームの拡張が実行され、一方、割り当て可能ページがある場合は当該ページの割り当て処理を実行して、前記アドレス変換テーブルのページを未割り当てから割り当てページに変更し、前記プールボリューム管理テーブルの割り当てページに対応する割り当てフラグを割り当て済みに変更する、ことを特徴とするキャッシュ制御方法。
  10. 請求項8記載のキャッシュ制御方法において、
    前記キャッシュ常駐処理は、前記キャッシュメモリに常駐させるLUの一覧およびサイズを管理するための常駐LU管理テーブルの情報を元に、処理対象となるLUがキャッシュ常駐対象であるか否かを判断し、この判断の結果、当該LUがキャッシュ常駐対象である場合は割り当てページ分のセグメント領域を前記キャッシュメモリ上に確保し、この確保したセグメントに対応する前記キャッシュメモリのセグメントを管理するためのキャッシュセグメント管理テーブルの情報を更新し、次に、当該コマンドのI/O種別を判断し、この判断の結果、リードコマンドである場合は前記記憶デバイス上のデータを前記キャッシュメモリ上に読み出すためのデータステージングを行い、一方、ライトコマンドである場合は何もせず、次に、前記キャッシュセグメント管理テーブルのキャッシュ常駐フラグをキャッシュ常駐対象に設定して当該セグメントを常駐属性に変更する、ことを特徴とするキャッシュ制御方法。
  11. 請求項7記載のキャッシュ制御方法において、
    前記中央演算装置が前記メモリに格納されている前記プログラムを実行し、前記ホスト計算機より発行された常駐LUの作成指示を受領し、常駐希望するLUの割り当てサイズと前記キャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、この比較の結果、前記LUの割り当てサイズが前記割り当て可能キャッシュサイズよりも小さい場合はLUの作成が可能と判断してLUの作成処理を実行し、一方、前記LUの割り当てサイズが前記割り当て可能キャッシュサイズよりも大きい場合はLUの作成が不可能と判断する、ことを特徴とするキャッシュ制御方法。
  12. 請求項11記載のキャッシュ制御方法において、
    前記LUの作成処理は、前記プールボリュームと前記LUとの対応を管理するためのアドレス変換テーブルに作成するLUのLU番号を追加し、このLUの作成に必要なページの数を算出して各ページの開始LBAおよび終了LBAを記載して前記アドレス変換テーブルを更新し、次に、前記キャッシュメモリに常駐させるLUの一覧およびサイズを管理するための常駐LU管理テーブルに作成するLUのLU番号およびLUサイズを記載して前記常駐LU管理テーブルを更新し、次に、前記常駐させるLUが使用するキャッシュ容量を管理するためのキャッシュ容量管理テーブルの常駐LU合計サイズおよび割り当て可能キャッシュサイズを更新する、ことを特徴とするキャッシュ制御方法。
  13. 請求項7記載のキャッシュ制御方法において、
    前記中央演算装置が前記メモリに格納されている前記プログラムを実行し、前記ホスト計算機より発行された常駐解除指示のコマンドを受領し、このコマンドの種別が常駐LUの削除であるか、もしくは常駐指定の解除であるかを判断し、この判断の結果、前記常駐LUの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のLUのエントリを削除し、その後、当該LUのデータを保持していたセグメントを未使用に変更して常駐領域を開放する常駐LUの削除処理を実行し、一方、前記常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施して前記キャッシュメモリ上のデータを前記記憶デバイスへ反映し、その後、当該LUのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該LUの情報を削除する常駐指定の解除処理を実行する、ことを特徴とするキャッシュ制御方法。
  14. 請求項13記載のキャッシュ制御方法において、
    前記常駐LUの削除処理は、前記プールボリュームを管理するためのプールボリューム管理テーブルで削除対象となるページの割り当てフラグを未割り当て状態に変更し、次に、前記プールボリュームと前記LUとの対応を管理するためのアドレス変換テーブルの対象のLUのエントリを削除し、その後、前記キャッシュメモリのセグメントを管理するためのキャッシュセグメント管理テーブル内で当該LUのデータを保持していたセグメントのキャッシュ常駐フラグを未使用に変更して常駐領域を開放し、さらに、前記キャッシュメモリに常駐させるLUの一覧およびサイズを管理するための常駐LU管理テーブルの当該LUの情報を削除し、前記常駐させるLUが使用するキャッシュ容量を管理するためのキャッシュ容量管理テーブルの常駐LU合計サイズおよび割り当て可能キャッシュサイズを更新し、
    前記常駐指定の解除処理は、常駐により抑止されていたデータを前記キャッシュメモリから前記記憶デバイスへ書き込むためのデータデステージを実施し、前記キャッシュメモリ上のデータを前記記憶デバイスへ反映し、その後、前記キャッシュセグメント管理テーブル内で当該LUのデータを保持していたセグメントのキャッシュ常駐フラグを常駐指定の解除に変更し、さらに、前記常駐LU管理テーブルの当該LUの情報を削除し、前記キャッシュ容量管理テーブルの常駐LU合計サイズおよび割り当て可能キャッシュサイズを更新する、ことを特徴とするキャッシュ制御方法。
  15. ストレージ制御装置と、前記ストレージ制御装置に接続されるストレージ駆動装置とを有するストレージ装置であって、
    前記ストレージ制御装置は、前記ストレージ装置を利用するホスト計算機を接続するホストアダプタと、前記ストレージ装置の全体制御を行う中央演算装置と、前記中央演算装置が前記ストレージ装置を制御するために必要なプログラムやデータを格納するメモリと、前記ホスト計算機のデータアクセスに対する論理空間であるLUを常駐させるキャッシュメモリと、前記ストレージ制御装置と前記ストレージ駆動装置とを接続するディスクアダプタとを有し、
    前記ストレージ駆動装置は、複数の物理ディスクを有し、
    前記キャッシュメモリに常駐させるLUは、前記複数の物理ディスクを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成され、
    前記メモリには、前記中央演算装置が実行し、前記常駐させるLUを作成する常駐LUの作成処理を行うためのプログラムと、前記ホスト計算機より発行されたI/O要求を処理するI/O処理を行うためのプログラムと、前記常駐させるLUを削除する常駐LUの削除処理と常駐指定を解除する常駐指定の解除処理とを行うためのプログラムとが格納され、
    前記常駐LUの作成処理では、前記ホスト計算機より発行された常駐LUの作成指示を受領し、常駐希望するLUの割り当てサイズと前記キャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、この比較の結果、前記LUの割り当てサイズが前記割り当て可能キャッシュサイズよりも小さい場合はLUの作成が可能と判断してLUの作成処理を実行し、一方、前記LUの割り当てサイズが前記割り当て可能キャッシュサイズよりも大きい場合はLUの作成が不可能と判断し、
    前記I/O処理では、前記ホスト計算機より発行されたI/O要求を受け取り、このI/O要求のコマンドを解析し、処理対象となるLUのLBAにページが割り当て済みであるか否かをアドレス変換テーブルの情報を元に判断し、この判断の結果、割り当て済みである場合はページ割り当て済みの領域に対するI/O要求であると判断してデータ転送処理を実行し、一方、割り当て済みでない場合はページ未割り当ての領域に対するI/O要求であるため、新規ページの割り当てが必要であると判断して新規ページ割り当て処理へ移行し、その後、新規割り当てページに対するキャッシュ常駐処理を行った後、データ転送処理を実行し、
    前記キャッシュ常駐処理では、前記キャッシュメモリに常駐させるLUを作成した際は、前記LUのサイズ分の容量を最初から前記キャッシュメモリ上に確保するのではなく、前記ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量を前記キャッシュメモリ上に確保して、前記新規のページを前記キャッシュメモリ上に常駐化させ、
    前記常駐LUの削除処理と前記常駐指定の解除処理では、前記ホスト計算機より発行された常駐解除指示のコマンドを受領し、このコマンドの種別が常駐LUの削除であるか、もしくは常駐指定の解除であるかを判断し、この判断の結果、前記常駐LUの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のLUのエントリを削除し、その後、当該LUのデータを保持していたセグメントを未使用に変更して常駐領域を開放する常駐LUの削除処理を実行し、一方、前記常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施して前記キャッシュメモリ上のデータを前記物理ディスクへ反映し、その後、当該LUのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該LUの情報を削除する常駐指定の解除処理を実行する、ことを特徴とするストレージ装置。
JP2008271508A 2008-10-22 2008-10-22 ストレージ装置およびキャッシュ制御方法 Expired - Fee Related JP5028381B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008271508A JP5028381B2 (ja) 2008-10-22 2008-10-22 ストレージ装置およびキャッシュ制御方法
US12/331,697 US7979639B2 (en) 2008-10-22 2008-12-10 Storage apparatus and cache control method
US13/151,454 US8239630B2 (en) 2008-10-22 2011-06-02 Storage apparatus and cache control method
US13/541,945 US8458400B2 (en) 2008-10-22 2012-07-05 Storage apparatus and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008271508A JP5028381B2 (ja) 2008-10-22 2008-10-22 ストレージ装置およびキャッシュ制御方法

Publications (2)

Publication Number Publication Date
JP2010102413A JP2010102413A (ja) 2010-05-06
JP5028381B2 true JP5028381B2 (ja) 2012-09-19

Family

ID=42109528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008271508A Expired - Fee Related JP5028381B2 (ja) 2008-10-22 2008-10-22 ストレージ装置およびキャッシュ制御方法

Country Status (2)

Country Link
US (3) US7979639B2 (ja)
JP (1) JP5028381B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5028381B2 (ja) 2008-10-22 2012-09-19 株式会社日立製作所 ストレージ装置およびキャッシュ制御方法
KR101023877B1 (ko) * 2009-04-17 2011-03-22 (주)인디링스 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러
US9990395B2 (en) * 2011-12-16 2018-06-05 International Business Machines Corporation Tape drive system server
US20130262811A1 (en) 2012-03-27 2013-10-03 Hitachi, Ltd. Method and apparatus of memory management by storage system
US20140108705A1 (en) * 2012-10-12 2014-04-17 Sandisk Technologies Inc. Use of High Endurance Non-Volatile Memory for Read Acceleration
US20140129777A1 (en) * 2012-11-02 2014-05-08 Tencent Technology (Shenzhen) Company Limited Systems and methods for dynamic data storage
CN103794240B (zh) * 2012-11-02 2017-07-14 腾讯科技(深圳)有限公司 在线音频数据的存储方法及装置
JP5918906B2 (ja) * 2012-12-28 2016-05-18 株式会社日立製作所 ストレージ装置及びストレージ制御方法
US9396128B2 (en) 2013-06-13 2016-07-19 Samsung Electronics Co., Ltd. System and method for dynamic allocation of unified cache to one or more logical units
KR20160148948A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10776023B2 (en) 2016-11-07 2020-09-15 Gaea LLC Data storage device with configurable policy-based storage device behavior
KR20200016074A (ko) 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그의 동작 방법
CN110674052B (zh) * 2019-09-30 2022-03-22 广州虎牙科技有限公司 内存管理方法、服务器及可读存储介质
CN113868166B (zh) * 2021-10-09 2024-05-17 海光信息技术股份有限公司 自适应请求应答系统、方法、设备和计算机介质
CN115168259B (zh) * 2022-09-06 2023-01-24 浪潮电子信息产业股份有限公司 一种数据存取方法、装置、设备和计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3376316B2 (ja) * 1999-05-19 2003-02-10 日本電気株式会社 ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体
JP2002132552A (ja) * 2000-10-20 2002-05-10 Hitachi Ltd 情報処理システム
US6745212B2 (en) * 2001-06-27 2004-06-01 International Business Machines Corporation Preferential caching of uncopied logical volumes in an IBM peer-to-peer virtual tape server
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
US7107417B2 (en) * 2002-08-29 2006-09-12 International Business Machines Corporation System, method and apparatus for logical volume duplexing in a virtual tape system
JP4322031B2 (ja) * 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
JP2005309739A (ja) 2004-04-21 2005-11-04 Hitachi Ltd ディスクアレイ装置およびディスクアレイ装置のキャッシュ制御方法
US7702851B2 (en) * 2005-09-20 2010-04-20 Hitachi, Ltd. Logical volume transfer method and storage network system
JP2007102314A (ja) * 2005-09-30 2007-04-19 Fujitsu Ltd ディスクキャッシュ制御装置
US8260831B2 (en) * 2006-03-31 2012-09-04 Netapp, Inc. System and method for implementing a flexible storage manager with threshold control
JP2008026970A (ja) * 2006-07-18 2008-02-07 Toshiba Corp ストレージ装置
JP5244332B2 (ja) * 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
US20090240880A1 (en) * 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
JP5028381B2 (ja) 2008-10-22 2012-09-19 株式会社日立製作所 ストレージ装置およびキャッシュ制御方法

Also Published As

Publication number Publication date
US20100100680A1 (en) 2010-04-22
US20120278556A1 (en) 2012-11-01
US20110231611A1 (en) 2011-09-22
US7979639B2 (en) 2011-07-12
US8458400B2 (en) 2013-06-04
JP2010102413A (ja) 2010-05-06
US8239630B2 (en) 2012-08-07

Similar Documents

Publication Publication Date Title
JP5028381B2 (ja) ストレージ装置およびキャッシュ制御方法
JP5646633B2 (ja) ストレージ装置
JP5069011B2 (ja) ストレージモジュール及び容量プール空き容量調整方法
JP4961319B2 (ja) 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
JP5437373B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5593577B2 (ja) ストレージシステム及びその制御情報の管理方法
US20150254186A1 (en) Information processing device having a plurality of types of memory caches with different characteristics
JP5309259B2 (ja) ストレージ装置及びその制御方法
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US20080177809A1 (en) Storage control device to backup data stored in virtual volume
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
JP2009043030A (ja) ストレージシステム
WO2016056104A1 (ja) ストレージ装置、及び、記憶制御方法
JP6171084B2 (ja) ストレージシステム
JP2008299559A (ja) ストレージシステム及びストレージシステムにおけるデータ移行方法
JP6311365B2 (ja) 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム
JP2007102314A (ja) ディスクキャッシュ制御装置
JP2021114264A (ja) ストレージ制御装置およびストレージ制御プログラム
JP5597266B2 (ja) ストレージシステム
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
WO2017175350A1 (ja) 計算機システム
JP5945040B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5638022B2 (ja) ディスクアレイ装置
JP5534135B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120517

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: 20120529

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120625

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

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees