JP2005242757A - ストレージシステム - Google Patents
ストレージシステム Download PDFInfo
- Publication number
- JP2005242757A JP2005242757A JP2004052962A JP2004052962A JP2005242757A JP 2005242757 A JP2005242757 A JP 2005242757A JP 2004052962 A JP2004052962 A JP 2004052962A JP 2004052962 A JP2004052962 A JP 2004052962A JP 2005242757 A JP2005242757 A JP 2005242757A
- Authority
- JP
- Japan
- Prior art keywords
- directory
- hash
- storage system
- management information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
Landscapes
- Engineering & Computer Science (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 Of A Hierarchy Structure (AREA)
Abstract
【課題】 キャッシュ管理のための管理領域を増大させず、また、性能を劣化させないように、キャッシュ管理を行う。
【解決手段】 キャッシュデータを管理するために、階層ディレクトリ方式110とハッシュディレクトリ方式120とを併用可能とする。階層ディレクトリ方式では、各テーブルT1〜T7を順番に参照することで、目的のデータを検索する。ハッシュディレクトリ方式では、ハッシュテーブルT10及びテーブルT4〜T7を順番に参照して目的のデータに到達する。ハッシュキーには、EDEV番号とVDEV番号の一部とを用い、両方式間のアクセス競合を避ける。両方式を併用することで、ストレージシステムの記憶容量が増大した場合でも、管理領域を増加させず、かつ性能劣化を招くことなく、対応することができる。
【選択図】 図8
【解決手段】 キャッシュデータを管理するために、階層ディレクトリ方式110とハッシュディレクトリ方式120とを併用可能とする。階層ディレクトリ方式では、各テーブルT1〜T7を順番に参照することで、目的のデータを検索する。ハッシュディレクトリ方式では、ハッシュテーブルT10及びテーブルT4〜T7を順番に参照して目的のデータに到達する。ハッシュキーには、EDEV番号とVDEV番号の一部とを用い、両方式間のアクセス競合を避ける。両方式を併用することで、ストレージシステムの記憶容量が増大した場合でも、管理領域を増加させず、かつ性能劣化を招くことなく、対応することができる。
【選択図】 図8
Description
本発明は、ストレージシステムに関する。
ストレージシステムは、ホストコンピュータに対して大容量かつ高性能のストレージサービスを提供可能である。ストレージシステムでは、例えば、多数のディスクドライブをアレイ状に配設し、RAID(Redundant Array of Independent Inexpensive Disks)に基づく記憶領域を構築している。各ディスクドライブが有する物理的な記憶領域上には、論理的な記憶領域である論理ボリュームが形成されている。
論理ボリュームには、LUN(Logical Unit Number)が予め対応付けられている。ホストコンピュータは、LUNやブロックアドレス等を特定することにより、ストレージシステムに対して所定形式の書込みコマンド又は読出しコマンドを発行する。これにより、ホストコンピュータは、ストレージシステムに対して所望のデータの読み書きを行うことができる。
ホストコンピュータとストレージシステムとの間のデータ授受には、キャッシュメモリが使用される。ホストコンピュータから書込みを要求されたデータ(ライトデータ)は、いったんキャッシュメモリに格納された後で、ディスクドライブに書き込まれる。また、ホストコンピュータから読み出しを要求されたデータ(リードデータ)は、キャッシュメモリを介して読み出され、ホストコンピュータに送信される。
このように、ホストコンピュータとの間で送受されるユーザデータは、全てキャッシュメモリを経由する。キャッシュメモリ上にキャッシュされているデータについて、読み出しが要求された場合、キャッシュメモリ上のデータが読み出されてホストコンピュータに送信される。キャッシュされていないデータについて読み出しが要求された場合は、ディスクドライブからデータが読み出され、キャッシュメモリを介して、ホストコンピュータに送信される。
ホストコンピュータからの要求に応じてキャッシュデータを読み出すためには、キャッシュメモリ上にキャッシュされているデータ群を管理する必要がある。この管理方式としては、複数の階層でデータ群を管理する階層ディレクトリ方式が知られている。なお、他の管理方式としては、ハッシュテーブルを用いたハッシュディレクトリ方式も知られている(特許文献1)。
特開昭58−31460号公報
キャッシュメモリの量は、ディスクドライブが提供する記憶領域の大きさと密接に関係する。記憶領域が大きくなるほど、多量のキャッシュメモリが必要となる。記憶領域の大きさに応じたキャッシュメモリを搭載しなければ、キャッシュミスが続発し、ペナルティが増大してサービス性能が低下するためである。
ストレージシステムでは、例えば、企業や自治体等の各組織において使用され、膨大な数のデータを管理する。企業等で管理されるデータは、年々増大する一方であるため、ストレージシステムにも大容量化が求められている。ストレージシステムの記憶容量を増大させると、キャッシュメモリの搭載量も増大する。
キャッシュメモリの量が増加すると、キャッシュデータを管理するための管理情報も増加する。階層ディレクトリ方式では、キャッシュ管理テーブルを複数階層化してキャッシュデータを管理しているが、キャッシュメモリの量が大きくなるほど、管理すべきキャッシュデータの量も増大する。階層ディレクトリ方式では、管理する階層の数を増加させるか、あるいは、階層数は変化させずに各階層のテーブルサイズを大きくするか、のいずれかの方法あるいは両者の組合せにより、多量のキャッシュデータを管理可能である。
しかし、階層数を増加させる場合は、増加させる階層の分だけアクセス数も増加するため、ストレージシステムの性能が劣化するおそれがある。階層ディレクトリ方式では、各階層の管理テーブルを次々に参照しながら、目的とするデータを検索する。従って、階層数の増加は、テーブルへのアクセス回数の増加につながり、アクセス回数の増加は、読み出し速度の低下を招く。
階層数を増加させずに、テーブルサイズを大きくする場合は、管理すべき領域(キャッシュ領域)に応じてテーブルサイズも大きくなるため、管理情報のサイズが増大し、管理情報を記憶するために多量のメモリが必要となる。上述のように、キャッシュメモリの量は、ストレージシステムの記憶容量に応じて定められるため、結局、キャッシュデータを管理するための管理情報は、ストレージシステムの記憶容量に応じて増大する。
なお、上記特許文献では、ハッシュテーブルを用いたメモリへのアドレッシング方法を開示するのみで、大容量のストレージサービスを提供するストレージシステムへの言及は、含まれていない。
本発明の一つの目的は、管理情報群を記憶するための記憶領域の増加防止とサービス性能の低下防止とを両立可能としたストレージシステムを提供することにある。本発明の一つの目的は、階層ディレクトリ方式とハッシュディレクトリ方式とを容易に併用可能としたストレージシステムの提供にある。本発明の一つの目的は、階層ディレクトリ方式とハッシュディレクトリ方式との構成をできるだけ共通化することにより、両方式の共存を図ることができるようにしたストレージシステムを提供することにある。本発明の一つの目的は、階層ディレクトリ方式とハッシュディレクトリ方式とを柔軟に使い分けすることができるストレージシステムを提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明では、階層ディレクトリとハッシュディレクトリとを併用可能として、キャッシュデータを管理するための管理情報群を管理する。階層ディレクトリまたはハッシュディレクトリのいずれを用いて管理するかは、例えば、ストレージシステムのサービス提供単位毎に(ストレージシステムの構成要素毎に)、それぞれ選択可能である。サービス提供単位としては、例えば、物理デバイス上に構築される論理デバイス毎、論理デバイス上に設定される論理ボリューム毎、論理デバイスや論理ボリュームにアクセスするポート毎等を挙げることができる。
本発明に従うストレージシステムは、上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、各チャネルアダプタ及び各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、キャッシュメモリを管理するための管理情報群を記憶する制御メモリと、を備えており、管理情報群は、階層ディレクトリとハッシュディレクトリとを併用して管理される。
上位装置としては、例えば、サーバ、メインフレーム、パーソナルコンピュータ等のコンピュータを挙げることができる。記憶デバイス群は、物理的な記憶デバイス群の上に構築され、論理的な記憶領域(仮想的な記憶領域)を上位装置に対して提供する。キャッシュメモリには、上位装置から書き込まれたデータ及び上位装置に読み出されるデータが記憶される。制御メモリには、キャッシュメモリにキャッシュされているデータを管理するための管理情報群が記憶される。キャッシュメモリと制御メモリとは、それぞれ別々のメモリ基板として実装することもできるし、両者を混載したメモリ基板を用いてもよい。また、メモリのある領域をキャッシュメモリとして使用し、他の領域を制御メモリとして使用してもよい。
管理情報群は、制御メモリに記憶される。管理情報群は、キャッシュメモリにキャッシュされたデータの所在や状態等を管理するための情報であり、各キャッシュデータ毎にそれぞれ管理情報が設けられる。キャッシュデータの状態としては、例えば、記憶デバイスに書込み済みの状態を示すクリーン状態、記憶デバイスに書き込まれていない状態を示すダーティ状態、未使用の状態を示すフリー状態を挙げることができる。キャッシュデータは、例えば、スロット単位で管理される。各スロットは、少なくとも1個以上のセグメントを含んで構成される。管理情報群は、目的とするキャッシュデータを格納したスロットを検索し、利用可能か否か等を判別するために使用される。
管理情報群は、階層ディレクトリまたはハッシュディレクトリのいずれかによって管理され、これら階層ディレクトリとハッシュディレクトリとは共存可能となっている。即ち、一部の管理情報群は、階層ディレクトリによって管理され、残りの管理情報群は、ハッシュディレクトリによって管理することができる。
ここで、階層ディレクトリを用いる場合は、目的とする管理情報に到達するまでのアクセス速度が一定(略一定でもよい)であるが、多量のキャッシュデータを管理するために多量の記憶資源を必要とする。ハッシュディレクトリを用いる場合は、より少ない記憶資源で多量のキャッシュデータを管理可能であり、アクセス速度の向上も期待できる。しかし、ハッシュディレクトリでは、アクセス速度にばらつきがあり、場合によっては階層ディレクトリ方式の場合よりも遅くなる可能性がある。
ストレージシステムの大容量化に対応するために、階層ディレクトリ方式のみを用いると、管理情報群を管理するための記憶領域が増大し、制御メモリを圧迫する。これに対し、ハッシュディレクトリ方式のみを採用すると、制御メモリの記憶資源を圧迫することなく、ストレージシステムの大容量化に対応可能である。しかし、ハッシュディレクトリ方式では、アクセス速度が場合によって変化するため、サービス品質の安定を図ることができない。階層ディレクトリとハッシュディレクトリとの両方を併用可能とすることにより、管理情報群を管理するための記憶領域をあまり増大させず、かつ、サービス性能の低下を防止しながら、ストレージシステムの大容量化に対応することができる。
ハッシュディレクトリ方式では、ハッシュテーブルを用いる。ハッシュテーブルには、各ハッシュコード毎に、それぞれのデータの格納先のポインタが対応付けられている。ハッシュコードは、ハッシュ関数により生成される。ハッシュ関数は、入力されたハッシュキーに基づいて、固定長のハッシュコードを出力する。
ハッシュキーとして、論理ブロックアドレスに由来するデータを採用可能である。論理ブロックアドレスは、データを論理ブロック単位で特定するためのアドレス情報であり、比較的広範囲に分布しうる情報である。従って、この論理ブロックアドレスに由来するデータ、例えば、論理ブロックアドレスから一意に決定されるスロット番号を、ハッシュキーとして用いる。これにより、ハッシュコードの競合を低減することができる。
なお、階層ディレクトリにおいてもスロット番号を用いてデータにアクセスする場合、ハッシュディレクトリで使用するスロット番号と階層ディレクトリで使用するスロット番号とを違えるように構成することができる。例えば、階層ディレクトリ方式においては、論理ブロックアドレスから一意に求められるスロット番号をそのまま使用し、ハッシュディレクトリ方式においては、スロット番号の一部分(例えば上位の所定ビット)と、記憶領域を拡張するための他のデータとを組み合わせることにより、ハッシュキーとして使用する。これにより、ハッシュディレクトリと階層ディレクトリとの間のアクセス競合を低減することができる。
本発明の一態様では、論理ブロックアドレスに基づいて管理情報群にアクセスするための経路を、上流側経路と下流側経路とに分割し、上流側経路は、階層ディレクトリ及びハッシュディレクトリを併用して構成し、下流側経路は共通の階層ディレクトリで構成している。
即ち、管理情報群をハッシュディレクトリ方式で管理する場合でも、管理情報にアクセスするための経路(検索経路)の全体をハッシュテーブル等で管理するのではなく、アクセス経路上流側をハッシュディレクトリ方式で管理し、下流側は階層ディレクトリ方式で管理する。ハッシュディレクトリの下流側に位置する階層ディレクトリ構造は、ハッシュディレクトリと並列的に運用される階層ディレクトリと共用可能である。従って、階層ディレクトリとハッシュディレクトリとを併用する場合でも、全体構成を簡素化することができる。また、例えば、最初は階層ディレクトリ方式で管理し、後からハッシュディレクトリ方式に変更する場合やその逆の場合も、比較的容易に変更可能である。
階層ディレクトリ方式とハッシュディレクトリ方式の使い分け方法としては、種々のものを採用可能である。例えば、ある記憶デバイス群に対応するキャッシュデータは階層ディレクトリで管理し、他の記憶デバイス群に対応するキャッシュデータはハッシュディレクトリで管理する場合のように、各記憶デバイス群毎にキャッシュ管理方式を設定することができる。
さらには、記憶デバイス群に構築される各論理ボリューム毎に、あるいは、各ポート毎に、キャッシュ管理方式を設定することができる。
または、ストレージシステム内の記憶資源に記憶されるデータに対応する管理情報群は、階層ディレクトリ方式で管理し、ストレージシステム外部の記憶資源に記憶されるデータに対応する管理情報群はハッシュディレクトリ方式で管理することもできる。いわゆる自社ストレージの場合は、容量が既知であるため、あまり大きな容量でなければ、階層ディレクトリ方式で管理可能である。一方、いわゆる他社ストレージの場合は、その容量が未知の場合があるため、大容量に対応可能なハッシュディレクトリ方式で管理する。
本発明は、例えば、ストレージシステムのキャッシュ管理方法の観点からとらえることもできる。即ち、このキャッシュ管理方法は、上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、各チャネルアダプタ及び各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、キャッシュメモリを管理するための管理情報群を記憶する制御メモリと、を備えたストレージシステムのキャッシュ管理方法である。そして、このキャッシュ管理方法は、ストレージシステムの構成情報に基づいて、管理情報群を階層ディレクトリで管理するか、あるいはハッシュディレクトリで管理するかを決定する決定ステップと、決定ステップにより決定された管理方式に従って、管理情報群を管理するディレクトリを制御メモリ上に構築する構築ステップと、を含む。
以下、図1〜図15に基づき、本発明の実施の形態を説明する。本実施形態のストレージシステムは、上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、各チャネルアダプタ及び各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、キャッシュメモリを管理するための管理情報群を記憶する制御メモリと、制御メモリ上に構築され、予め設定された所定範囲の管理情報群を管理するための階層ディレクトリと、制御メモリ上に構築され、予め設定された他の所定範囲の管理情報群を管理するためのハッシュディレクトリと、所定範囲及び他の所定範囲を設定するための管理方式設定部と、を備えている。そして、このストレージシステムでは、ハッシュディレクトリの下流側は、階層ディレクトリと同一構造の階層ディレクトリとなっており、ハッシュディレクトリに使用されるハッシュコードを生成するためのハッシュキーとして、論理ブロックアドレスから一意に決定されるデータを使用する。
図1は、ストレージシステム10の外観構成を示す概略斜視図である。ストレージシステム10は、例えば、基本筐体11と複数の増設筐体12とから構成可能である。基本筐体11は、ストレージシステム10の最小構成単位であり、記憶機能及び制御機能の両方を備えている。増設筐体12は、ストレージシステム10のオプションであり、基本筐体11の有する制御機能により制御される。例えば、最大4個の増設筐体12を基本筐体11に接続可能である。
基本筐体11には、複数の制御パッケージ13と、複数の電源ユニット14と、複数のバッテリユニット15と、複数のディスクドライブ80とがそれぞれ着脱可能に設けられている。増設筐体12には、複数のディスクドライブ80と、複数の電源ユニット14及び複数のバッテリユニット15が着脱可能に設けられている。また、基本筐体11及び各増設筐体12には、複数の冷却ファン16がそれぞれ設けられている。
制御パッケージ13は、後述するチャネルアダプタ20、ディスクアダプタ30及びキャッシュメモリ40等をそれぞれ実現するためのモジュールである。即ち、基本筐体11には、複数のチャネルアダプタパッケージ、複数のディスクアダプタパッケージ及び1つ以上のメモリパッケージがそれぞれ着脱可能に設けられ、パッケージ単位で交換可能となっている。
図2は、ストレージシステム10の全体概要を示すブロック図である。ストレージシステム10は、通信ネットワークCN1を介して、複数のホストコンピュータ1A〜1C(以下、特に区別しない場合は、「ホストコンピュータ1」と呼ぶ)と双方向通信可能にそれぞれ接続可能である。
通信ネットワークCN1は、例えば、LAN(Local Area Network)、SAN(Storage Area Network)、インターネットあるいは専用回線等である。LANを用いる場合、ホストコンピュータ1とストレージシステム10との間のデータ転送は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。SANを用いる場合、ホストコンピュータ1とストレージシステム10とは、ファイバチャネルプロトコルに従ってデータ転送を行う。また、ホストコンピュータ1がメインフレームの場合は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従ってデータ転送が行われる。
各ホストコンピュータ1は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、メインフレーム等として実現されるものである。例えば、各ホストコンピュータ1は、図外に位置する複数のクライアント端末と別の通信ネットワークを介して接続されている。各ホストコンピュータ1は、例えば、各クライアント端末からの要求に応じて、ストレージシステム10にデータの読み書きを行うことにより、各クライアント端末へのサービスを提供する。
図中では、1つのみ図示してあるが、ストレージシステム10内には、複数の仮想筐体(SLPR:Storage Logical Partition)を設定可能である。SLPRとは、ストレージシステム10内の各種物理的資源及び論理的資源を各ユーザ毎に(あるいは各アプリケーションプログラム毎に)分割して割り当てることにより構成された領域である。即ち、例えば、SLPRには、それぞれ専用のチャネルアダプタ20と、それぞれ専用のキャッシュ領域40と、それぞれ専用の仮想的な論理デバイス(VDEV)70等とを備えている。即ち、SLPRは、仮想的な小型のストレージシステムであるかのように振る舞う。
SLPRには、少なくとも1つ以上のキャッシュ分割領域(CLPR:Cache Logical Partiton)を設けることができる。図2中では、左側にSLPRを1つだけ示してあるが、複数のSLPRを設けることができる。そして、1つのSLPR内には、1つまたは複数のCLPRを設定することができる。
CLPRとは、キャッシュメモリ40を論理的に複数の領域に分割したものである。CLPRは、各チャネルアダプタ20毎にそれぞれ設定可能である。例えば、チャネルアダプタ20をn個実装する場合は、n個のCLPRを設けることができる。例えば、n=32に設定可能であるが、本発明はこれに限定されない。各CLPR0〜CLPRnは、それぞれ互いに独立して使用されるものであり、各ホストコンピュータ1は、それぞれが利用可能なCLPRのみを独占的に使用することができる。そして、あるCLPRに対するホストコンピュータ1からの操作は、他のCLPRにできるだけ影響を与えないように構成されている。即ち、特定のホストコンピュータ1からのアクセスが集中した場合でも、そのホストコンピュータ1が利用可能なCLPRのみで必要なキャッシュ容量が確保され、他のCLPRの資源(キャッシュ領域)を奪うことがないように構成されている。
図中右側に示すCLPR0は、SLPRが定義されていない共用領域であり、この共用領域CLPR0には、ストレージシステム10全体で使用される各種の情報が記憶される。
図2に示す例では、ホストコンピュータ1Aは、共用領域CLPR0のみにアクセスして、データの入出力を行うことができる。ホストコンピュータ1BはCLPR1のみに、ホストコンピュータ1CはCLPR2のみに、ホストコンピュータ1NはCLPRnのみに、それぞれアクセス可能であり、他のCLPRの利用や参照等を行うことはできない。
SVP(Service Processor)90は、ストレージシステム10の管理や監視を行うためのコンピュータ装置であり、管理用のサーバ機能を提供する。SVP90は、例えば、ストレージシステム10内に設けられたLAN等の内部ネットワークCN3(図3参照)を介して、各チャネルアダプタ20や各ディスクアダプタ30等から各種の環境情報や性能情報等を収集する。SVP90が収集する情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度(IOPS)等が挙げられる。SVP90と各管理端末2A〜2N,3とは、例えば、LAN等の通信ネットワークCN2を介して接続されている。管理者は、管理端末を介してSVP90にログインすることにより、権限のある範囲内において、例えば、RAID構成の設定、各種パッケージ(チャネルアダプタパッケージ、ディスクアダプタパッケージ、メモリパッケージ、ディスクドライブ等)の閉塞処理や各種設定変更等を行うことができる。
SVP90には、複数の管理端末2A〜2N,3を接続可能である。ここで、管理端末2A〜2Nは、各SLPR毎に設けられる端末であり、管理端末3は、ストレージシステム10の全体を管理するために設けられる端末である。以下の説明では、1つのSLPRに1つのCLPRを設ける場合を例に挙げて説明する。従って、管理端末2A〜2Nは、各CLPRをそれぞれ管理する管理者によりそれぞれ操作されるサブ端末である。管理端末3は、ストレージシステム10の全体を管理するシステム管理者(あるいは全体管理者と呼ぶこともできる)により操作される全体端末である。
各サブ端末2A〜2Nの管理者は、自己が管理権限を有するCLPRについてのみ各種設定変更等を行うことができ、他のCLPRの構成等を参照したり変更することは許可されない。これに対し、システム管理者は、各CLPRを含めてストレージシステム10の全体の各種設定変更等を行うことができる。
システム管理者は、全体端末3を介してSVP90にログインし、ストレージシステム10の有する物理的資源及び論理的資源を適宜分割することにより、各ユーザ毎にSLPR(CLPR)を設定可能である。また、システム管理者は、各CLPRの管理者に対して、ユーザID等を発行することもできる。各CLPRの管理者は、システム管理者から発行された専用のユーザIDを用いてSVP90にログインする。各CLPRの管理者は、サブ端末2を操作することにより、自己の管理下にあるCLPR内の設定を変更可能である。
図3は、ストレージシステム10の論理的構成に着目したブロック図である。ストレージシステム10は、複数のチャネルアダプタ(以下、CHA)20と、複数のディスクアダプタ(以下、DKA)30と、少なくとも1つ以上のキャッシュメモリ40及び共有メモリ50と、スイッチ部60と、複数の仮想的論理デバイス(VDEV)70と、複数のディスクドライブ80と、SVP90とを備えている。
各CHA20は、各ホストコンピュータ1との間のデータ転送を制御するもので、通信ポート21を備えている。ストレージシステム10には、例えば32個のCHA20を設けることができる。CHA20は、例えば、オープン系用CHA、メインフレーム系用CHA等のように、ホストコンピュータ1の種類に応じて用意される。
各CHA20は、それぞれに接続されたホストコンピュータ1から、データの読み書きを要求するコマンド及びデータを受信し、ホストコンピュータ1から受信したコマンドに従って動作する。DKA30の動作も含めて先に説明すると、例えば、CHA20は、ホストコンピュータ1からデータの読出し要求を受信すると、読出しコマンドを共有メモリ50に記憶させる。DKA30は、共有メモリ50を随時参照しており、未処理の読出しコマンドを発見すると、ディスクドライブ80からデータを読み出して、キャッシュメモリ40に記憶させる。CHA20は、キャッシュメモリ40に移されたデータを読み出し、コマンド発行元のホストコンピュータ1に送信する。
CHA20は、ホストコンピュータ1からデータの書込み要求を受信すると、書込みコマンドを共有メモリ50に記憶させる。また、CHA20は、受信したデータ(ユーザデータ)をキャッシュメモリ40に記憶させる。ここで、ホストコンピュータ1から書込みを要求されたデータは、ディスクドライブ80に書き込まれていないダーティデータであるため、例えば複数箇所にそれぞれ記憶されて多重化される。
CHA20は、キャッシュメモリ40にデータを記憶した後、ホストコンピュータ1に対して書込み完了を報告する。そして、DKA30は、共有メモリ50に記憶された書込みコマンドに従って、キャッシュメモリ40に記憶されたデータを読出し、所定のディスクドライブ80に記憶させる。ディスクドライブ80に書き込まれたデータは、ダーティデータからクリーンデータにステータスが変化し、キャッシュメモリ40による多重管理から解放される。なお、本明細書において、ダーティデータとは、ディスクドライブ80に書き込まれていない状態のデータを意味する。また、クリーンデータとは、ディスクドライブ80に書き込み済のデータを意味する。
各DKA30は、ストレージシステム10内に例えば4個や8個等のように複数個設けることができる。各DKA30は、各ディスクドライブ80との間のデータ通信を制御する。各DKA30と各ディスクドライブ80とは、例えば、SAN等の通信ネットワークCN4を介して接続されており、ファイバチャネルプロトコルに従ってブロック単位のデータ転送を行う。各DKA30は、ディスクドライブ80の状態を随時監視しており、この監視結果は内部ネットワークCN3を介してSVP90に送信される。各CHA20及び各DKA30は、例えば、プロセッサやメモリ等が実装されたプリント基板と、メモリに格納された制御プログラム(いずれも不図示)とをそれぞれ備えており、これらのハードウェアとソフトウェアとの協働作業によって、それぞれ所定の機能を実現するようになっている。
キャッシュメモリ40は、例えば、ユーザデータ等を記憶するものである。キャッシュメモリ40は、例えば不揮発メモリから構成される。キャッシュメモリ40は、複数のメモリから構成することができ、ダーティデータを多重管理することができる。本実施例では、キャッシュメモリ40が有する全キャッシュ領域を複数個に分割することにより、各CLPR0〜nを設定している。
共有メモリ(あるいは制御メモリ)50は、例えば不揮発メモリから構成される。共有メモリ50には、例えば、制御情報や管理情報等が記憶される。これらの制御情報等の情報は、複数の共有メモリ50により多重管理することができる。共有メモリ50及びキャッシュメモリ40は、それぞれ複数個設けることができる。また、同一のメモリ基板にキャッシュメモリ40と共有メモリ50とを混在させて実装することもできる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。
本実施例では、キャッシュデータを管理するための管理情報を、共有メモリ50に記憶させる。管理情報は、後述のように、階層ディレクトリまたはハッシュディレクトリのいずれかにより管理される。本実施例のストレージシステムでは、階層ディレクトリ方式とハッシュディレクトリ方式とを併用して、管理情報を管理可能である。本実施例では、上述のように、キャッシュ領域を各CLPR毎に分割しているが、これは、本発明に必須の要素ではなく、キャッシュ領域が分割される必要性はない。但し、CLPRやSLPRを設定することにより、場合によっては、各CLPR毎に、あるいは各SLPR毎にキャッシュ管理方式(階層ディレクトリ方式またはハッシュディレクトリ方式の総称)を設定することができる。
スイッチ部60は、各CHA20と、各DKA30と、キャッシュメモリ40と、共有メモリ50とをそれぞれ接続するものである。これにより、全てのCHA20,DKA30は、キャッシュメモリ40及び共有メモリ50にそれぞれアクセス可能である。スイッチ部60は、例えば超高速クロスバスイッチ等として構成することができる。
ストレージシステム10は、多数のディスクドライブ80を実装可能である。各ディスクドライブ80は、例えば、ハードディスクドライブ(HDD)や半導体メモリ装置等として実現することができる。
ディスクドライブ80は、物理的な記憶デバイス(PDEV)である。そして、RAID構成等によっても相違するが、例えば、4個1組のディスクドライブ80が提供する物理的な記憶領域上には、仮想的な論理デバイス(VDEV)70が構築される。なお、VDEV70上にさらに仮想的な論理デバイス(LU:Logigal Unit)を設定可能である。
ストレージシステム10により使用される記憶資源は、全てストレージシステム10内に設ける必要はなく、ストレージシステム10の外部に存在する記憶資源を利用することもできる。例えば、後述の実施例のように、外部の他社製ストレージシステムが有する記憶デバイスを特定のVDEVに割り付け、他社製記憶デバイスへのアクセスパス等を管理することにより、他社の記憶デバイスをあたかも自己の記憶デバイスであるかのように、ホストコンピュータ1に見せかけることができる。
図4は、キャッシュメモリの管理方法等を模式的に示す説明図である。図中では、共用領域CLPR0と2個の専用CLPR1,2とによって、キャッシュメモリ40を分割して使用する場合を示す。各CLPRには、それぞれキャッシュ領域が割り当てられている。
各CLPRがそれぞれ使用可能なキャッシュ領域の最大値(最大割当量)は、システム管理者により設定される。各CLPRにそれぞれ割り当てられたキャッシュ領域には、各CLPRを利用するホストコンピュータ1により使用されるデータ(ライトデータ、リードデータ)が格納される。図4中では、データが格納された領域に斜線を付し、「使用中」と表記してある。各CLPRは、それぞれが使用可能な最大割当量までのキャッシュ領域を使用可能であり、他のCLPRのキャッシュ領域を使用することはできない。
キャッシュメモリ40にキャッシュされたデータは、後述する管理情報によって管理されている。本実施例では、キャッシュ管理方式として、階層ディレクトリ方式とハッシュディレクトリ方式の2つの異なる種類の管理方式を併用することができる。図4に示す例では、VDEV70単位でキャッシュ管理方式がそれぞれ設定されている。あるVDEV70に記憶されるデータは階層ディレクトリ方式で管理され、他のVDEV70に記憶されるデータはハッシュディレクトリ方式で管理される。
図4に示すように、各CLPRには、少なくとも1つ以上のVDEV70がそれぞれ割り当てられている。各CLPRのキャッシュ領域に書き込まれたデータは、それぞれに割り当てられたVDEV70の所定領域に書き込まれる。また、VDEV70から読み出されたデータは、対応するCLPRのキャッシュ領域に保持される。そして、各VDEV70に記憶されるデータは、階層ディレクトリ方式またはハッシュディレクトリ方式のいずれかにより管理される。
図5は、階層ディレクトリ方式によるキャッシュデータの管理方法の概要を示す説明図である。
まず、ホストコンピュータ1からデータの入出力要求があると、この入出力要求に含まれるLBA(Logical Block Address)に基づいて、VDEVSLOT番号(VDEVSLOT#)を求める。そして、VDEVSLOT番号に基づいて、VDSLOT−PAGEテーブルT1を参照することにより、次の階層へのポインタを取得する。VDSLOT−PAGEテーブルT1には、PAGE−DIRテーブルT2へのポインタが含まれている。PAGE−DIRテーブルT2には、PAGE−GRPPテーブルT3へのポインタが含まれている。さらに、PAGE−GRPPテーブルT3には、GRPT1テーブルT4へのポインタが含まれている。GRPT1テーブルT4には、GRPT2テーブルT5へのポインタが含まれている。GRPT2テーブルT5には、SLCB(スロット制御テーブル)T6へのポインタが含まれている。
このように、LBAから一意に決定されるVDEVSLOT番号に基づいて、各テーブルT1〜T5を順番に参照していくことにより、所望のデータを管理するSLCBテーブルT6に到達する。SLCBテーブルT6には、少なくとも1つ以上のSGCB(セグメント制御ブロック)テーブルT7が関連付けられている。SGCBテーブルT7は、キャッシュ管理の最小単位であるセグメントに関する制御情報を格納している。1つのスロットには、1〜4個のセグメントを関連付けることができる。なお、キャッシュ管理の最小単位はセグメントであるが、スロット単位で管理される場合もある。
ホストコンピュータ1からリードアクセスがあった場合は、各階層テーブルT1〜T6を順番に辿ることにより、要求されたデータが特定される。そして、ホストコンピュータ1が要求しているデータを物理デバイスであるディスクドライブ80から読み出して、キャッシュ領域上の1つまたは複数のスロットに格納させる。
図6は、ハッシュディレクトリ方式によるキャッシュデータの管理方法の概要を示す説明図である。
ハッシュディレクトリ方式では、階層ディレクトリ方式におけるVDSLOT−PAGEテーブルT1、PAGE−DIRテーブルT2及びPAGE−GRPPテーブルT3を、1つのハッシュテーブルT10に置き換えている。
ハッシュテーブルT10には、図7に示すように、各ハッシュコード毎に、GRPT1テーブルT4へのポインタがそれぞれ格納されている。ハッシュコードは、ハッシュ関数HFにハッシュキーを入力することにより、得られる。
本実施例では、ハッシュキーとして、LBAに由来するデータであるVDEVSLOT番号及びEDEV番号を用いている。EDEV番号とは、VDEVSLOT番号を拡張するために用いられる付加情報である。EDEV番号の全体(例えば6ビット)と、VDEVSLOT番号の一部(例えば、上位26ビット)とが、ハッシュキーとして用いられる。本実施例では、ハッシュキーのデータサイズは、32ビット固定である。ハッシュ関数HFは、入力された32ビットのハッシュキーに基づいて、固定長のハッシュコードを生成する。このハッシュコードは、ハッシュテーブルT10にエントリされているポインタを検索するためのキーとなる。
EDEV番号及びVDEVSLOT番号から構成されるハッシュキーは、LBAに由来し、比較的大きなアドレス空間に分布する情報である。従って、ハッシュ関数HFの設計等によっても相違するが、ハッシュコードの競合(異なるハッシュキーから同一のハッシュコードが生成されること)を抑制することができる。図5と共に述べた階層ディレクトリでは、VDEVSLOT番号をそのまま検索キーとして使用し、VDSLOT−PAGEテーブルT1を検索する。しかし、図6に示すハッシュディレクトリでは、VDEVSLOT番号をそのままハッシュキーとして使用するのではなく、VDEVSLOT番号の上位の所定ビットと記憶領域を拡張するために付加されるEDEV番号とを組み合わせることにより、ハッシュキーを得ている。
従って、同一のキャッシュメモリ40にキャッシュされるデータ群を、階層ディレクトリとハッシュディレクトリとを併用して管理する場合でも、異なるキャッシュ管理方式の間でアクセスが競合する事態を低減することができる。即ち、仮に、階層ディレクトリとハッシュディレクトリの両方で、最初の検索キーとしてVDEVSLOT番号をそのまま用いた場合は、目的とするデータを得るために、階層ディレクトリとハッシュディレクトリの両方を検索する必要があり、無駄が多い。これに対し、本実施例では、階層ディレクトリとハッシュディレクトリとで、最初の検索キーであるVDEVSLOT番号を変化させる構成のため、アクセス競合が発生する可能性を少なくすることができる。また、基本的に、両方式とも、LBAに由来するデータを用いてキャッシュデータを管理するため、後述のように、下流側の構成を共通化することができる。検索の最初で各ディレクトリのいずれを用いるかが区別されれば、検索の途中のキーが共通しても不都合は生じない。
図8は、本実施例によるキャッシュ管理方式の様子を示す概念図である。本ストレージシステム10では、キャッシュデータの管理に関して、階層ディレクトリ方式とハッシュディレクトリ方式の両方を併用可能としている。即ち、ストレージシステム10は、キャッシュ管理部として、階層テーブルディレクトリ部110と、ハッシュディレクトリ部120の両方を備えている。そして、ハッシュディレクトリ部120では、ハッシュキーとして、EDEV番号102の全部(6ビット)とVDEVSLOT番号101の一部(上位26ビット)とを使用する。
ハッシュ関数HFの設計やハッシュキーの分散の度合等によって相違するが、異なるハッシュキーを与えても、同一のハッシュコードが生成される場合がある。このハッシュコードの競合が発生した場合、異なるデータのそれぞれについて、同一のポインタ(GRPT1テーブルへのポインタ)が与えられる。このハッシュコードの競合に対応するために、ハッシュディレクトリ方式において、GRPT1テーブルT4は、拡張されている。即ち、GRPT1テーブルT4Aの未使用部分を用いて、別のテーブルGRPT1テーブルT4Bを連結することにより、テーブルT4を拡張する。図中では、2つのテーブルT4A,T4Bが連結される様子を示しているが、2個に限らず、より多くのテーブルを連結することにより、GRPT1テーブルT4のサイズが拡張される。
但し、GRPT1テーブルT4の未使用箇所に連結先テーブルのポインタを格納して、複数のテーブルを連結させる構成のため、個々のGRPT1テーブルT4自体のサイズは変わらず、全体としてのサイズが大きくなるだけである。同じGRPT1テーブルT4を階層ディレクトリで使用する場合は、未使用箇所に連結先テーブルへのポインタを格納しなければよい。
図9は、階層ディレクトリ方式とハッシュディレクトリ方式との使い分けを決定するためのディレクトリ方式決定処理を示すフローチャートである。図9のフローチャートには、VDEV単位でキャッシュ管理方式を設定するための処理の概要が示されている。本処理は、例えば、ストレージシステム10の初期設定時や構成変更時等に、自動的に実行させることができる。あるいは、システム管理者が管理端末3を介して、手動で実行するようにしてもよい。
本処理は、例えば、CHA20のプロセッサとDKA30のプロセッサとを協働させることにより、実行することができる。以下、これらの各プロセッサをまとめて代表プロセッサと呼ぶ。
ストレージシステム10の初期設定時やVDEV70の追加や移動等が発生した場合、代表プロセッサは、RAID構成情報を参照する(S1)。RAID構成情報とは、ストレージシステム10の構成に関する情報であり、例えば、どのディスクドライブ80によってVDEV70が構成されているか、そのVDEV70を識別するVDEV番号は何か等を示す情報を含んでいる。
代表プロセッサは、RAID構成情報を参照することにより、キャッシュ管理方式の設定対象となっているVDEV70について、VDEV番号を取得し、このVDEV番号が予め設定された所定値(例えば、256)よりも小さいか否かを判定する(S2)。
VDEV番号が所定値未満の場合は(S2:YES)、階層ディレクトリ方式が選択される(S3)。即ち、そのVDEV番号で特定されるVDEV70に記憶されるデータは、階層ディレクトリ方式により管理されることが決定される。これに対し、VDEV番号が所定値以上の場合は(S2:NO)、ハッシュディレクトリ方式が選択される(S4)。
そして、代表プロセッサは、S3またはS4で選択されたキャッシュ管理方式に基づいて、共有メモリ50上に、そのVDEV70に記憶されるデータを管理するためのディレクトリを構築する(S5)。ここで、ディレクトリを構築するとは、そのキャッシュ管理方式を実現するための階層ディレクトリテーブルまたはハッシュテーブルを構築することを意味する。以後、そのVDEV70を対象とするデータの読み書きが発生する度に、S5で構築されたディレクトリにポインタ等が登録されていく。
キャッシュ管理方式の決定対象となっている全てのVDEV70について、管理方式を決定し、共有メモリ50にディレクトリを構築するまで(S6)、S1〜S5の処理が繰り返される。
本実施例では、S2で使用する所定値として、例えば、ストレージシステム10内に実装可能なVDEV数の最大値(例えば256個)を用いる。VDEV番号が最大VDEV数を超えるものは、他社ストレージを自社ストレージに接続する場合のように、外部に追加されたVDEVである。従って、所定値を最大VDEV数に設定する場合、VDEV番号が256以上の外部VDEVは、全てハッシュディレクトリ方式で管理される。
このように、本実施例によれば、階層ディレクトリ方式とハッシュディレクトリ方式とを併用して、キャッシュデータを管理可能とした。従って、ストレージシステム10の記憶容量が増大した場合でも、管理情報を記憶するための領域をあまり大きくせずに、アクセス性能の低下を防止することができる。例えば、VDEV70を256個実装し、合計で700TB程度の記憶容量を提供するストレージシステムにおいて、全てを階層ディレクトリ方式で管理する場合は、階層ディレクトリテーブルの記憶領域として、約1.6GB程度の領域を必要とする。これに対し、ハッシュディレクトリ方式の場合は、ストレージシステムの記憶容量にかかわらず、およそ100MB程度の記憶領域でハッシュテーブルを記憶させることができる。従って、もしも、256個の内蔵VDEV70については階層ディレクトリ方式で管理し、それ以上の外部VDEVについてはハッシュディレクトリ方式で管理する場合、キャッシュ管理に必要な領域は、階層ディレクトリテーブルの記憶領域約1.6GBと、ハッシュテーブルの記憶領域約100MBとの合計約1.7GB程度となる。そして、VDEV数を増加させた場合でも、ハッシュテーブルの領域は変化しないため、管理領域の増大を招くことなく、また、アクセス性能を劣化させることなく、ストレージシステムの大容量化に対応することができる。
本実施例では、ハッシュコードを生成するためのハッシュキーとして、LBAに由来するVDEVSLOT番号の一部を使用する構成とした。従って、階層ディレクトリ方式とハッシュディレクトリ方式との間のアクセス競合を低減することができ、両方式の共通化を図ることもできる。また、EDEV番号及びVDEVSLOT番号の一部をハッシュキーとして用いることにより、ハッシュコードの競合を低減することもできる。
本実施例では、図8に示したように、ハッシュディレクトリで管理する場合でも、検索経路の下流側は、従来通りのディレクトリ構造を利用する構成とした。従って、下流側の構造を階層ディレクトリとハッシュディレクトリとで共通化することができ、全体構成を簡素化することができる。また、階層ディレクトリ方式とハッシュディレクトリ方式との間で、キャッシュ管理方式を容易に変更することができる。
本実施例では、VDEV毎にキャッシュ管理方式を選択可能とした。従って、論理的記憶デバイスの最小単位であるVDEV単位でキャッシュ管理方式を設定することができ、RAID構成の変更やCLPRの構成変更等にも容易に対応することができる。
図10及び図11を参照して、第2実施例を説明する。この第2実施例は、第1実施例の変形例に該当するもので、その特徴は、予め設定されたディレクトリ方式管理テーブルT11に基づいて、キャッシュ管理方式を選択するようにした点にある。
図10は、ディレクトリ方式管理テーブルT11の概略を示す説明図である。ディレクトリ方式管理テーブルT11には、各VDEV番号毎に、階層ディレクトリ方式で管理するか、またはハッシュディレクトリ方式で管理するかが予め設定されている。
図11に基づいて、ディレクトリ方式決定処理の概要を説明する。代表プロセッサは、RAID構成情報を参照してVDEV番号を取得する(S11)。代表プロセッサは、VDEV番号を検索キーとしてディレクトリ方式管理テーブルT11を参照し、そのVDEV番号に対応付けられているキャッシュ管理方式を読み出す(S12)。
代表プロセッサは、そのVDEV番号に対応づけられているキャッシュ管理方式が階層ディレクトリ方式である場合(S13:YES)、階層ディレクトリ方式を選択し(S14)、共有メモリ50に階層ディレクトリを構築する(S16)。そのVDEV番号に設定されているキャッシュ管理方式がハッシュディレクトリ方式の場合(S13:NO)、代表プロセッサは、ハッシュディレクトリ方式を選択し(S15)、共有メモリ50にハッシュディレクトリを構築する(S16)。
ディレクトリ構築対象の全てのVDEV70についてディレクトリを構築するまで、S11〜S16の処理が繰り返される(S17)。
図12及び図13に基づいて、第3実施例を説明する。この第3実施例は、第1実施例の変形例に相当するもので、複数の変形例を含んでいる。
図12(a)の管理テーブルT11Aに示すように、各LU毎にそれぞれキャッシュ管理方式を選択できるように構成してもよい。また、図12(b)の管理テーブルT11Bに示すように、各ポート21毎にそれぞれキャッシュ管理方式を選択できるように構成してもよい。さらに、図13の管理テーブルT11Cに示すように、EDEV番号毎にそれぞれキャッシュ管理方式を選択できるように構成してもよい。
あるいは、これらのLU単位、ポート単位、EDEV単位でのキャッシュ管理方式の設定を適宜組み合わせることも可能である。
図14の構成概念図に基づいて第4実施例を説明する。この第4実施例の特徴は、外部の他社ストレージシステム200の記憶資源をストレージシステム10の記憶資源として使用する場合において、適切なキャッシュ管理方式を選択する点にある。
ストレージシステム10と外部のストレージシステム200とは、CHA20及び通信ネットワークCN5を介して接続されている。ストレージシステム200は、論理的な記憶領域であるLU210を備えている。このLU210は、ストレージシステム10のVDEV70としてマッピングされており、ホストコンピュータ1からは、LU210とVDEV70との区別がつかない。即ち、ストレージシステム10は、外部のLU210を、あたかもストレージシステム10内のVDEVであるかのように、ホストコンピュータ1に対して見せかける。
本実施例では、ストレージシステム10内部のVDEV70については、階層ディレクトリ方式により管理し、ストレージシステム10の外部のLU210については、ハッシュディレクトリ方式により管理する。記憶容量が未知のLU210をハッシュディレクトリ方式で管理することにより、ストレージシステム10に接続される外部記憶資源の容量が増大した場合でも、キャッシュデータを管理することができる。
図15は、第5実施例の構成概念図である。第5実施例の特徴は、全てのデータをハッシュディレクトリ方式で管理する点にある。この場合、ハッシュテーブルのサイズは、ストレージシステム10が提供する記憶容量に依存せず、略一定である。
次に、図16は、第6実施例によるディレクトリ方式決定処理の概略フローチャートである。本実施例の特徴は、ハッシュディレクトリ方式で管理する場合に、空の階層ディレクトリを構築する点にある。
代表プロセッサは、RAID構成情報に基づいて(S21)、ディレクトリ方式管理テーブルT11を参照し(S22)、そのVDEV70について階層ディレクトリ方式が設定されているか否かを判定する(S23)。
階層ディレクトリ方式が設定されている場合(S23:YES)、代表プロセッサは、階層ディレクトリ方式を選択し(S24)、共有メモリ50上に、そのVDEV70を管理するための階層ディレクトリを構築する(S25)。
そのVDEV70についてハッシュディレクトリ方式が設定されている場合(S23:NO)、代表プロセッサは、ハッシュディレクトリ方式を選択し(S26)、共有メモリ50上に、ハッシュディレクトリ及び階層ディレクトリをそれぞれ構築する(S27)。但し、この階層ディレクトリを構成する階層ディレクトリテーブルの内容は空であり、実際には使用されない。
これにより、最初はハッシュディレクトリ方式で管理し、後から階層ディレクトリ方式に変更する場合でも、比較的容易に移行することができる。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、キャッシュ管理方式は、ストレージシステムの初期設定時に一括して行うこともできるし、ストレージシステムの構成変更時等に行うこともできる。また、階層ディレクトリ方式とハッシュディレクトリ方式との間で管理方式を変更することもできる。
1,1A〜1C…ホストコンピュータ、2,2A〜2N…各サブ端末、3…管理端末、10…ストレージシステム、11…基本筐体、12…増設筐体、13…制御パッケージ、14…電源ユニット、15…バッテリユニット、16…冷却ファン、20…チャネルアダプタ、21…ポート、30…ディスクアダプタ、40…キャッシュメモリ、50…共有メモリ、60…スイッチ部、70…仮想記憶デバイス(VDEV)、80…ディスクドライブ、CLPR…キャッシュ分割領域、SLPR…仮想筐体、T1〜T7…テーブル、T10…ハッシュテーブル、T11…ディレクトリ方式管理テーブル、110…階層テーブルディレクトリ部、120…ハッシュディレクトリ部、200…ストレージシステム、210…外部論理デバイス(LU)、CN1〜CN5…通信ネットワーク、HF…ハッシュ関数
Claims (10)
- 上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、
論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、
前記各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、
前記各チャネルアダプタ及び前記各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、
前記キャッシュメモリを管理するための管理情報群を記憶する制御メモリと、
を備え、
前記管理情報群は、階層ディレクトリとハッシュディレクトリとを併用して管理されるストレージシステム。 - 前記ハッシュディレクトリに使用されるハッシュコードを生成するためのハッシュキーとして、論理ブロックアドレスに由来するデータを使用する請求項1に記載のストレージシステム。
- 前記論理ブロックアドレスに基づいて前記管理情報群にアクセスするための経路を、上流側経路と下流側経路とに分割し、前記上流側経路は、前記階層ディレクトリ及び前記ハッシュディレクトリを併用して構成し、前記下流側経路は共通の階層ディレクトリで構成する請求項2に記載のストレージシステム。
- 前記各記憶デバイス群毎に、これら各記憶デバイス群に対応する前記管理情報群を、前記階層ディレクトリまたは前記ハッシュディレクトリのいずれか一方でそれぞれ管理する請求項2に記載のストレージシステム。
- 前記各記憶デバイス群に設定される論理ボリューム毎に、これら各論理ボリュームに対応する前記管理情報群を、前記階層ディレクトリまたは前記ハッシュディレクトリのいずれか一方でそれぞれ管理する請求項2に記載のストレージシステム。
- 前記各チャネルアダプタが有するポート毎に、これら各ポートに対応する前記管理情報群を、前記階層ディレクトリまたは前記ハッシュディレクトリのいずれか一方でそれぞれ管理する請求項2に記載のストレージシステム。
- 前記管理情報群のうち、ストレージシステム内部のデータに対応する管理情報群は、前記階層ディレクトリまたは前記ハッシュディレクトリのいずれか一方で管理し、前記ストレージシステム外部のデータに対応する管理情報群は、前記ハッシュディレクトリで管理する請求項2に記載のストレージシステム。
- 前記管理情報群をハッシュディレクトリで管理する場合も、前記階層ディレクトリを空の構造で予め用意しておく請求項2に記載のストレージシステム。
- 前記論理ブロックアドレスに由来するデータは、前記論理ブロックアドレスから一意に決定されるスロット番号であり、前記階層ディレクトリで使用されるスロット番号と前記ハッシュディレクトリで使用されるスロット番号とが異なるように構成されている請求項2に記載のストレージシステム。
- 上位装置とのデータ授受をそれぞれ制御する複数のチャネルアダプタと、
論理的な記憶領域をそれぞれ提供する複数の記憶デバイス群と、
前記各記憶デバイス群とのデータ授受をそれぞれ制御する複数のディスクアダプタと、
前記各チャネルアダプタ及び前記各ディスクアダプタによりそれぞれ使用されるキャッシュメモリと、
前記キャッシュメモリを管理するための管理情報群を記憶する制御メモリと、
前記制御メモリ上に構築され、予め設定された所定範囲の管理情報群を管理するための階層ディレクトリと、
前記制御メモリ上に構築され、予め設定された他の所定範囲の管理情報群を管理するためのハッシュディレクトリと、
前記所定範囲及び前記他の所定範囲を設定するための管理方式設定部と、
を備え、
前記ハッシュディレクトリの下流側は、前記階層ディレクトリと同一構造の階層ディレクトリとなっており、
前記ハッシュディレクトリに使用されるハッシュコードを生成するためのハッシュキーとして、論理ブロックアドレスから一意に決定されるデータを使用するストレージシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004052962A JP2005242757A (ja) | 2004-02-27 | 2004-02-27 | ストレージシステム |
US10/849,832 US7167950B2 (en) | 2004-02-27 | 2004-05-21 | Storage system |
US11/494,516 US7594071B2 (en) | 2004-02-27 | 2006-07-28 | Storage system employing a hierarchical directory section and a cache directory section |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004052962A JP2005242757A (ja) | 2004-02-27 | 2004-02-27 | ストレージシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005242757A true JP2005242757A (ja) | 2005-09-08 |
Family
ID=34879678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004052962A Pending JP2005242757A (ja) | 2004-02-27 | 2004-02-27 | ストレージシステム |
Country Status (2)
Country | Link |
---|---|
US (2) | US7167950B2 (ja) |
JP (1) | JP2005242757A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043407A (ja) * | 2010-08-20 | 2012-03-01 | Hitachi Ltd | 疎結合複数ストレージ環境のための階層式ストレージプール管理及び制御 |
JP2012252589A (ja) * | 2011-06-03 | 2012-12-20 | Nec Corp | フィルタ処理管理装置、フィルタ処理管理方法、フィルタ処理管理プログラム |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4141391B2 (ja) * | 2004-02-05 | 2008-08-27 | 株式会社日立製作所 | ストレージサブシステム |
US7877603B2 (en) * | 2006-09-07 | 2011-01-25 | International Business Machines Corporation | Configuring a storage drive to communicate with encryption and key managers |
US20110153953A1 (en) * | 2009-12-23 | 2011-06-23 | Prakash Khemani | Systems and methods for managing large cache services in a multi-core system |
US9021215B2 (en) * | 2011-03-21 | 2015-04-28 | Apple Inc. | Storage system exporting internal storage rules |
US8620886B1 (en) * | 2011-09-20 | 2013-12-31 | Netapp Inc. | Host side deduplication |
US9256550B2 (en) * | 2012-03-28 | 2016-02-09 | International Business Machines Corporation | Hybrid address translation |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
US9355040B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Adjunct component to provide full virtualization using paravirtualized hypervisors |
US9600419B2 (en) * | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9280488B2 (en) * | 2012-10-08 | 2016-03-08 | International Business Machines Corporation | Asymmetric co-existent address translation structure formats |
US9594512B1 (en) * | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
KR20180087925A (ko) * | 2017-01-25 | 2018-08-03 | 삼성전자주식회사 | 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치 |
US11989737B2 (en) * | 2021-07-09 | 2024-05-21 | Lexmark International, Inc. | Methods and systems for determining the authenticity of a component |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464713A (en) | 1981-08-17 | 1984-08-07 | International Business Machines Corporation | Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store |
US4761737A (en) | 1986-01-16 | 1988-08-02 | International Business Machines Corporation | Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system |
JPH06231047A (ja) * | 1993-02-05 | 1994-08-19 | Fujitsu Ltd | アドレス変換方法および装置 |
US5537585A (en) * | 1994-02-25 | 1996-07-16 | Avail Systems Corporation | Data storage management for network interconnected processors |
US6067547A (en) * | 1997-08-12 | 2000-05-23 | Microsoft Corporation | Hash table expansion and contraction for use with internal searching |
GB9811574D0 (en) * | 1998-05-30 | 1998-07-29 | Ibm | Indexed file system and a method and a mechanism for accessing data records from such a system |
US6490666B1 (en) * | 1999-08-20 | 2002-12-03 | Microsoft Corporation | Buffering data in a hierarchical data storage environment |
WO2001069439A1 (en) | 2000-03-17 | 2001-09-20 | Filesx Ltd. | Accelerating responses to requests made by users to an internet |
US6839758B2 (en) * | 2001-09-28 | 2005-01-04 | Intel Corporation | Network processor for cache array routing |
US6973082B2 (en) * | 2002-02-01 | 2005-12-06 | Fujitsu Limited | Forwarding packets to aggregated links using distributed ingress card processing |
JP4322031B2 (ja) | 2003-03-27 | 2009-08-26 | 株式会社日立製作所 | 記憶装置 |
US8417673B2 (en) | 2003-10-07 | 2013-04-09 | International Business Machines Corporation | Method, system, and program for retaining versions of files |
-
2004
- 2004-02-27 JP JP2004052962A patent/JP2005242757A/ja active Pending
- 2004-05-21 US US10/849,832 patent/US7167950B2/en not_active Expired - Fee Related
-
2006
- 2006-07-28 US US11/494,516 patent/US7594071B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043407A (ja) * | 2010-08-20 | 2012-03-01 | Hitachi Ltd | 疎結合複数ストレージ環境のための階層式ストレージプール管理及び制御 |
US9286200B2 (en) | 2010-08-20 | 2016-03-15 | Hitachi, Ltd. | Tiered storage pool management and control for loosely coupled multiple storage environment |
JP2012252589A (ja) * | 2011-06-03 | 2012-12-20 | Nec Corp | フィルタ処理管理装置、フィルタ処理管理方法、フィルタ処理管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20060265550A1 (en) | 2006-11-23 |
US7594071B2 (en) | 2009-09-22 |
US7167950B2 (en) | 2007-01-23 |
US20050193165A1 (en) | 2005-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7594071B2 (en) | Storage system employing a hierarchical directory section and a cache directory section | |
JP4141391B2 (ja) | ストレージサブシステム | |
US8806170B2 (en) | Accessing a hard disk drive and a flash memory with different formats in a storage system | |
JP5771280B2 (ja) | 計算機システム及びストレージ管理方法 | |
US6507893B2 (en) | System and method for time window access frequency based caching for memory controllers | |
US8683171B2 (en) | Data management method in storage pool and virtual volume in DKC | |
US6487638B2 (en) | System and method for time weighted access frequency based caching for memory controllers | |
US20070061539A1 (en) | Filesystem building method | |
US20070043919A1 (en) | Information processing method and system | |
JP2004070403A (ja) | ファイル格納先ボリューム制御方法 | |
JP5073259B2 (ja) | 仮想化システム及び領域割当て制御方法 | |
JP2002082775A (ja) | 計算機システム | |
JP2005157882A (ja) | ディスクアレイ装置及びディスクアレイ装置の制御方法 | |
KR20080029677A (ko) | 파일 저장 시스템 및 그 시스템에서의 파일 저장 및 검색방법 | |
JP2005267038A (ja) | ストレージシステムの運用方法 | |
JP2008276326A (ja) | 記憶制御装置及び記憶制御装置の仮想メモリ制御方法 | |
JP2005190057A (ja) | ディスクアレイ装置及びディスクアレイ装置のリモートコピー制御方法 | |
US20040039875A1 (en) | Disk array device and virtual volume management method in disk array device | |
JP2004355638A (ja) | 計算機システム及びそのデバイスの割り当て方法 | |
JP2007323589A (ja) | 仮想ボリュームのコピー制御方法、コピー制御装置、およびコピー制御プログラム | |
JP4808747B2 (ja) | ストレージサブシステム | |
US11201788B2 (en) | Distributed computing system and resource allocation method | |
EP0665499A2 (en) | Hierarchic data storage system | |
JP2001125879A (ja) | データ記憶システムおよびデータ記憶方法 | |
JP2020057305A (ja) | データ処理装置およびプログラム |