JP2009295045A - ストレージシステム、ストレージサブシステム、及び記憶制御方法 - Google Patents

ストレージシステム、ストレージサブシステム、及び記憶制御方法 Download PDF

Info

Publication number
JP2009295045A
JP2009295045A JP2008149831A JP2008149831A JP2009295045A JP 2009295045 A JP2009295045 A JP 2009295045A JP 2008149831 A JP2008149831 A JP 2008149831A JP 2008149831 A JP2008149831 A JP 2008149831A JP 2009295045 A JP2009295045 A JP 2009295045A
Authority
JP
Japan
Prior art keywords
volume
storage
cache memory
save
external
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
Application number
JP2008149831A
Other languages
English (en)
Inventor
隆 ▲高▼田
Takashi Takada
Yoshihito Nakagawa
義仁 中川
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 JP2008149831A priority Critical patent/JP2009295045A/ja
Priority to US12/222,769 priority patent/US7984245B2/en
Publication of JP2009295045A publication Critical patent/JP2009295045A/ja
Pending legal-status Critical Current

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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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

Abstract

【課題】ストレージサブシステムのキャッシュメモリに外部ストレージの記憶領域に転送されずに残存するデータが蓄積されてキャッシュメモリを圧迫することを防ぎ、ストレージサブシステムのIOの処理性能を良好に維持可能なストレージシステムを提供する。
【解決手段】外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として提供するストレージシステムにおいて、外部ボリュームに転送されないでストレージサブシステムのキャッシュメモリに残っているダーティデータを退避するボリュームを備え、キャッシュメモリが圧迫される状態を判定して、ダーティデータを退避ボリュームに退避させることよってキャッシュメモリの過負荷を解消する。
【選択図】図1

Description

本発明はストレージシステムに係わり、詳しくは、ストレージサブシステムに外部ストレージが接続されているストレージシステムに関するものである。
データ量やトラフィック量の増加によって急変するシステム環境に対応するために、仮想化機能を搭載したストレージサブシステムが知られている。ストレージサブシステムに外部ストレージを接続すると、この仮想化機能によって、ストレージサブシステムは、自身が備える記憶領域と外部ストレージが持つ記憶領域とを一つのストレージプールとして仮想化してユーザに提供することができる。
この種のストレージサブシステムを備える従来技術として、例えば、米国特許711138号公報に記載のものが存在する。この公報に記載されたストレージシステムは、第1のストレージサブシステムに第2のストレージサブシステムが外部接続されるものであり、詳しくは、第1のストレージサブシステムは、第2のストレージシステムの実ボリュームがマッピングされる仮想ボリュームを備えている。ホスト装置から仮想ボリュームに対して発行されたライトデータは、第1のストレージサブシステムから第2のストレージサブシステムに転送されて仮想ボリュームにマッピングされた実ボリュームに保存される。
米国特許711138号公報
既述のストレージシステムでは、外部ストレージに対するライト処理が高頻度で発生するなど外部ストレージが過負荷状態になったり、あるいは外部ストレージの保守や外部ストレージへのパス障害など、ストレージサブシステムと外部ストレージとの間で通信障害が生じると、ストレージサブシステムのキャッシュメモリに外部ストレージに転送されないデータが蓄積し、キャッシュメモリの過負荷状態を招いてホスト装置からストレージサブシステムへのIOの処理性能が低下してしまうという問題があった。
そこで、本発明は、外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として上位装置に提供するストレージシステムにおいて、ストレージサブシステムのキャッシュメモリに前記外部ストレージの記憶領域に転送されないデータが蓄積されてキャッシュメモリを圧迫することを防ぎ、以って、ストレージサブシステムのIOの処理性能を良好に維持可能なストレージシステムを提供することを目的とするものである。
この目的を達成するために、本発明は、外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として提供するストレージシステムにおいて、外部ボリュームに転送されないでストレージサブシステムのキャッシュメモリに残っているダーティデータを退避するボリュームを備え、キャッシュメモリが圧迫される状態を判定して、ダーティデータを退避ボリュームに退避させることよってキャッシュメモリの過負荷を解消することを特徴とするものである。
以上説明したように、本発明によれば、外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として上位装置に提供するストレージシステムにおいて、ストレージサブシステムのキャッシュメモリに前記外部ストレージの記憶領域に転送されないデータが蓄積されてキャッシュメモリを圧迫することを防ぎ、以って、ストレージサブシステムのIOの処理性能を良好に維持可能なストレージシステムを提供することができる。
次に、本発明の実施形態を図面に基づいて説明する。図1は、本発明に係わるストレージシステムのブロック図である。このストレージシステムは、ホスト装置10に接続する主ストレージサブシステム20に、外部ストレージサブシステム(40A・・・・40N)が外部接続されているシステムである。
外部接続とは、主ストレージサブシステムが外部ストレージを自己の記憶領域であるようにホスト装置に見せる方式をいう。すなわち、主ストレージサブシステム20は、仮想ボリューム32をホスト装置10に提供し、そして、仮想ボリューム32に外部ストレージサブシステム40Aの論理ボリューム42Aをマッピングしている。したがって、主ストレージサブシステム20は、ホスト装置10に対して、第1の外部ストレージサブシステムの記憶領域42Aをあたかも自分の記憶領域であるかのようにして振舞う。
上位装置としてのホスト装置10は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。
ホスト装置10は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置と、モニタディスプレイやスピーカー等の情報出力装置とを備えている。
さらに、ホスト装置10は、例えば、主ストレージサブシステム20が提供する記憶領域(31,32)を使用するデータベースソフトウェア等のアプリケーションプログラム11と、スイッチ回路SWを備えて構成される通信ネットワークCN1を介して主ストレージサブシステム20にアクセスするためのアダプタ12とを備えている。
通信ネットワークCN1は、例えば、LAN、SAN、インターネット、専用回線、公衆回線等である。LANを介するデータ通信は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。ホスト装置10がLANを介して第1の記憶制御装置20に接続される場合、ホスト装置10は、ファイル名を指定してファイル単位でのデータ入出力を主ストレージサブシステム20に対して要求する。
一方、ホスト装置10がSANを介して主ストレージサブシステム20に接続する場合、ホスト装置10は、ファイバチャネルプロトコルに従って、複数の記憶デバイスにより提供される記憶領域のデータ管理単位であるブロックを単位としてデータ入出力を要求する。
通信ネットワークCN1がLANである場合、アダプタ12はLAN対応のネットワークカードである。通信ネットワークCN1がSANの場合、アダプタ12は、例えばホストバスアダプタである。
スイッチ回路SWは通信ネットワークに接続されたルータや交換機から構成される。スイッチ回路SWは、チャネルアダプタ21のポート21−1とホスト装置10のHBA12とを接続し、チャネルアダプタのポート21Aのポート21−1と第1の外部ストレージサブシステム40Aのポート41とを接続し、・・・・、チャネルアダプタ21Nのポート21−1とN番目の外部ストレージサブシステム40Nのポート41とを接続する。
外部ストレージサブシステムはこのように複数存在し、それぞれがボリューム42(42A・・・42N)を備えている。これらボリュームは主ストレージサブシステム20から見ると外部に存在するために以後外部ボリュームと称して、主ストレージサブシステム20が有する内部ボリューム31と区別する。
主ストレージサブシステム20は、例えば、ディスクアレイサブシステムとして構成される。外部ストレージサブシステム40A・・・40Nも同様である。外部ストレージサブシステムは主ストレージサブシステムと同様な構成要素を備えているものとする。
なお、ホスト装置10はチャネルアダプタ21のターゲットポートに接続される。外部ストレージサブシステムが接続されるチャネルアダプタ21A・・・21Nのポートはエクスターナルポート或いはイニシエータポートである。外部ストレージサブシステムのターゲットポートが通信ネットワークCN1と接続される。
主ストレージサブシステム20は、コントローラ部1と、記憶装置部30とに大別することができ、コントローラ部1は、既述の複数のチャネルアダプタ(CHA)21・・・21Nと、複数のディスクアダプタ(DKA)22a・・22nと、サービスプロセッサ(SVP)23と、キャッシュメモリ24と、共有メモリ25と、接続部26とを備えている。
CHA21は、それぞれマイクロプロセッサやローカルメモリ等を備えたマイクロコンピュータシステムとして構成され、ホスト装置10から受信した各種コマンドを解釈して実行する。CHA21A・・・21Nも同様な構成を備えている。複数の外部ストレージサブシステ40A・・・40Nがそれぞれ有する外部ボリューム42A・・・42Nは、仮想ボリューム32にマッピングされて、ホスト装置10から仮想ボリューム32に送られたデータを格納するボリューム、或いはキャッシュメモリ24に存在するダーティデータを退避するボリュームとして主ストレージサブシステム20に利用される。
チャネルアダプタ21・・・21Nのポート21−1には、それぞれを識別するためのネットワークアドレス(例えば、IPアドレスやWWN)が割り当てられている。複数のホスト装置が存在する場合、チャネルアダプタはホスト装置毎に設けられている。図1では、ホスト装置10は一基としている。また、外部ストレージサブシステムのN基(42A・・・42N)が主ストレージサブシステム20に接続している。
チャネルアダプタ21は、ホスト装置10からリードコマンドを受信すると、読出しコマンドを共有メモリ25に記憶する。ディスアダプタ(DKA)22a・・・22nは、共有メモリ25を随時参照しており、未処理の読出しコマンドを発見すると、記憶装置30の記憶デバイスであるハードディスクドライブ(HDD)からデータを読み出して、キャッシュメモリ34に一時記憶させる。CHA21は、キャッシュメモリ24にステージングされたデータを読み出し、コマンド発行元のホスト装置10に送信する。
CHA21が、ホスト装置10からライトコマンドを受信すると、CHAは、書込みコマンドを共有メモリ25に記憶させると共に、受信データをキャッシュメモリ24に一時記憶して、そしてコマンド発行元のホスト装置10にデータの書き込みが完了した旨を通知する。
主ストレージサブシステム20内の実ボリューム31に対して発行されたライトデータは、DKAによって内部ボリューム31の記憶領域にライトコマンドとは非同期にキャッシュメモリ24から書き込まれる(デステージング)。
仮想ボリューム32に対して、ホスト装置からライトコマンドに伴って発行されたライトデータは、記憶装置30に書き込まれること無く、CHAによって、キャッシュメモリ24から、42Aから42Nまである外部ボリュームのうち目的の外部ボリュームに転送される(デステージング)。
ホスト装置からリードコマンドが仮想ボリューム32に対して発行された場合は、CHAは、リード対象のデータを、目的の外部ボリュームからキャッシュメモリ24に転送する(ステージング)。
DKAは、記憶装置30の複数の記憶デバイスとデータの授受を制御する。符号31は、ハードディスクドライブなどの記憶デバイスの記憶領域に対応する論理ボリュームである。符号32は仮想ボリュームである。
符号31の論理ボリュームは、記憶装置30の実記憶領域が割り当てられたボリュームである。符号32の仮想ボリュームは、記憶装置30の実記憶領域が割り当てられていない仮想的なものである。
ホスト装置10は仮想ボリューム32を認識して、これにライトコマンド又はリードコマンドを発行する。但し、ライトデータは、仮想ボリューム32にマッピングされた、目的の外部ボリューム(42A・・・42Nの1つ又は複数)に対して書き込まれ、リードデータは目的の外部ボリュームからリードされる。
DKA22a・・・・22nは、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成されている。DKAは、ホスト装置からのコマンドに含まれる論理的なアドレスを物理的なアドレスに変換して、記憶デバイスにアクセスする。DKAは、記憶装置30の記憶領域がRAIDに従って管理されている場合は、RAID構成に応じたデータアクセスを行う。各DKAにはそれぞれ複数の記憶デバイスが接続している。
各DKAは記憶デバイスの状態を随時監視しており、この監視結果はSVP(サービスプロセッサ)23に送信される。SVPはポート23Aを介して管理クライアント23Bに接続されている。管理クライアントは、例えばJAVA(登録商標)アプレット上に管理用プログラムが実装されたパソコンである。管理クライアントは管理者からの入力をSVPに供給する。
SVPは、主ストレージサブシステム20のボリューム定義やパス定義などの構成情報をCHA、DKAなどに参照させるために、様々な管理テーブルを設定、定義するためのものである。また、SVP23は主ストレージサブシステム20内の構成要素の障害発生を監視して管理用クライアントに表示する処理を実行する。
さらにまた、SVPは仮想ボリュームにマッピングされる外部ボリュームを1つ又は複数設定し、これをマッピングテーブルとして設定する。SVP23は、キャッシュメモリ24からこの外部ボリュームにデステージング処理されずにダーティデータとして蓄積されるデータを退避すべき退避ボリュームを管理テーブルに定義する処理を行う。
図1において、符号34は主ストレージサブシステム20内に設定された内部退避ボリュームである。SVPは外部ボリュームの1つ又は複数を、退避先外部ボリュームとして設定する。なお、仮想ボリュームにマッピングされる外部ボリュームを、退避先外部ボリュームから区別するために、退避元外部ボリュームと呼ぶことにする。様々な管理テーブルは共有メモリ25に格納される。
複数のCHA及び複数のDKAは、共有メモリ25を介して、コマンドや管理テーブルをお互いに参照することができるために、相互に関連或いは連携した処理が可能となる。
接続部26は、各チャネルアダプタ21,各ディスクアダプタ22,SVP23,キャッシュメモリ24,共有メモリ25を相互に接続する。接続部26は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成される。
記憶装置30を構成する記憶デバイスとしては、主としてハードディスクドライブ(HDD)であるが、その他、フラッシュメモリなどの半導体メモリ、磁気テープ、光ディスクなどでもよいのようなデバイスを用いることができる。また、例えば、FC(Fibre Channel)ディスクやSATA(Serial AT Attachment)ディスク等のように、異種類のディスクを記憶装置30内に混在させることもできる。
なお、主ストレージサブシステム20にホスト装置10と外部ストレージサブシステム40A・・・40Nを直接に接続することもできる。
外部ストレージサブシステム40A・・・40Nのポート41には、ユニークな識別情報であるWWNが割り当てられており、外部ストレージサブシステムの論理ボリューム42A・・・42Nには、LUN番号が対応付けられているので、WWN及びLUN番号の組み合せによって、主ストレージサブシステム20から目的の外部ボリュームへ論理パスを設定することができる。
なお、以後の説明するフローチャートの実行主体を明りょうにする観点から、外部ストレージサブシステム40Aと40Bの外部ボリューム42A,42Bが退避元外部ボリュームであるとし、外部ストレージサブシステム40Nのボリューム42Nが退避先外部ボリュームであるとする。CHA21Aが外部ストレージサブシステム40Aに接続し、CHA21Bが外部ストレージサブシステム40Bに接続し、CHA21Nが外部ストレージサブシステム40Nに接続している。
図2は、主ストレージサブシステム20の仮想ボリューム34に、外部ストレージサブシステム40Aの退避元外部ボリューム42Aと、外部ストレージサブシステム40Bの退避元外部ボリューム42Bとがそれぞれマッピングされている状態を示すブロック図である。
主ストレージサブシステム20の仮想ボリューム1'には外部ボリューム42A(1)がマッピングされ、仮想ボリューム2'には外部ボリューム42A(2)がマッピングされ、以後同様に、仮想ボリューム3'乃至5'には、外部ボリューム42B(3)乃至(5)がそれぞれマッピングされている。この関係は、既述のとおり、SVP32を介して共有メモリ25にマッピングテーブルとして設定される。
管理クライアント23Bは、SVP23を介して、主ストレージサブシステム20と外部ストレージサブシステム40Aと、そして、外部ストレージサブシステム40Bとの間に論理パスを設定する。パス定義情報は共有メモリ25に登録される。
図2において、仮想ボリューム1'はポート0とポート1に接続され、ポート0と外部ストレージサブシステムのポート(WWN:00)との間にパスP1が設定され、ポート1とポート(WWN:01)との間にパスP2が設定されている。
さらに、ポート(WWN:00)はLUN0とLUN1に接続され、LUN0は外部ボリューム1に接続され、LUN1は外部ボリューム2に接続されている。ポート(WWN:01)はLUN0とLUN1に接続され、LUN0は外部ボリューム1に接続され、LUN1は外部ボリューム2に接続されている。
パスP1とパスP2とによって、主ストレージサブシステム20と外部ストレージサブシステム40Aとの間に交替パス構造が実現されている。パスP3,P4についても同様である。主ストレージサブシステム20は、仮想ボリューム1'に対するライトデータを、パスP1とパスP2のいずれを介しても、目的の外部ボリューム1に転送することができる。仮想ボリューム2'についても同様である。
パスP1とパスP2とのパスモードはシングルモードである。パスモードとはパスの運用方式であって、シングルパスモードとは、交替パスを設定していても、通常は優先度が高い1つのパスがデータ通信に使用される。外部ストレージサブシステムの保守作業やパスの障害などで優先度が高いパスが制限されると、優先度が低いパスが優先度が高いパスに切り替わってデータ通信に使用される。
仮想ボリューム3'乃至5'については図2に示すとおりである。なお、パスP3とP4とは、マルチモードで運用される。マルチモードとは、負荷を分散しながら、複数のポートからの複数のパスを同時に使用に使用してデータ通信を行うモードである。パスモードは主ストレージサブシステム20に接続する外部ストレージサブシステム40A,40Bの種類によって決まる。
仮想ボリュームと退避元外部ボリューム又は退避先外部ボリュームとの間のデータの転送はキャッシュメモリ24を介して実行される。
図2では、主ストレージサブシステム20が転送元外部ボリュームと接続されている様子を示したが、主ストレージサブシステム20に転送先外部ボリュームを接続する場合も同様である。
図3は外部ボリュームの管理テーブルである。主ストレージサブシステム20が外部ストレージサブシステム40A・・・40NにSCSI規格のInquiryコマンドを発行する。主ストレージサブシステム20はこのコマンドに対する応答に基づいて、パスモード、ベンダ名、装置名、装置製番、LDEV番号、WWN、LUNを決定し、これを外部ボリューム番号(#)毎に管理テーブルに登録する。外部ボリューム管理テーブルは共有メモリ25に登録される。
管理者は、図3の外部ボリュームから退避元外部ボリュームと退避先外部ボリュームとを設定することができる。退避元外部ボリュームは仮想ボリュームとのマッピングテーブルに登録される。退避先外部ボリュームは退避先ボリュームとして後述の管理テーブルに登録される。なお、図3の管理テーブルは図2のブロック図に合わせて記載されている。
次に、ホスト装置10から仮想ボリューム32に対して発行されたデータが、キャッシュメモリ24を圧迫することについて説明する。これは、次の場合に発生又はその可能性がある。
第1に、外部ストレージサブシステムの退避元外部ボリュームに対するIOが高頻度に発生して(退避元外部ボリュームの過負荷状態)、仮想ボリューム32に対して、ホスト装置10から発行されたデータがキャッシュメモリ24にダーティデータとして閾値を越えて蓄積される場合である。なお、退避元外部ボリュームへのIO頻度を測定してその過負荷状態を判定してもよい。
第2に、主ストレージサブシステム20と外部ストレージサブシステム40A・・・40Nとの間でパス切れなどのパス障害が生じる場合である。この場合も、仮想ボリューム32に対して、ホスト装置10から発行されたデータがキャッシュメモリ24から退避元外部ボリュームに転送できずにキャッシュメモリ24にダーティデータとして蓄積される。
第3に、外部ストレージサブシステムの退避元ボリュームに対応するHDDなどの記憶デバイスを閉塞する場合である。
図4に示すように、CHAのローカルメモリ400は(必要に応じてDKAのローカルメモリも)、仮想ボリューム32から退避元外部ボリューム42A,42B(図2参照)に転送されないダーティデータが占有しているキャッシュメモリの容量(キャッシュ使用量)を検出するキャッシュ使用量検出プログラム、主ストレージサブシステムと外部ストレージサブシステムとの間のパス状態検出プログラム、キャッシュメモリと、退避元外部ボリューム又は退避先外部ボリュームとの間でデータの転送を制御するデータ転送制御プログラム、そして、後述のフローチャートを実施するためのその他各種管理プログラムを格納している。
管理クライアント23Bは、SVP23を介して、各退避元外部ボリュームについて、退避元外部ボリュームに退避されることなくキャッシュメモリに残っているダーティデータを退避ボリュームへ退避する条件を設定する。図5は、そのための管理テーブルである。図5において、外部ボリューム♯は、図3の退避元外部ボリューム♯に一致する。
退避元外部ボリュームに対するパス切れの際に、データを退避する場合には、“パス切れ時退避”にその旨を意味するフラグを設定する。“キャッシュメモリ使用量閾値(%)“には、ダーティデータがキャッシュメモリを使用する量として、がキャッシュメモリの何%を占めた場合に、退避を行うか否かの情報が記録される。退避先には退避ボリュームのアドレス、識別情報が登録される。退避ボリュームには、主ストレージサブシステム20内の内部ボリュームと、外部ストレージサブシステム内の退避先外部ボリュームとがある。
“キャッシュ使用量”には、ダーティデータが占有する、キャッシュメモリの容量である。退避元外部ボリュームに接続するCHAのマイクロプロセッサがキャッシュ使用量を周期的に計算して、退避元外部ボリューム管理テーブル(図5)に登録する。なお、図5の“パス切れ時退避”及び/又は“キャッシュメモリ使用量閾値(%)が退避条件の一例である。その他、HDDの閉塞、退避元外部ボリュームに対するIO頻度を退避条件に定めることができる。
ダーティデータがキャッシュメモリに蓄積する状態は、退避元外部ボリュームを有する外部装置単位で発生し易い。そこで、複数の退避元外部ボリュームをグループ化して、統一して退避条件を決めるのが好ましい。
図6は、退避元外部ボリュームのグループを定義するためのテーブルであり、管理クライアントに表示される操作画面である。SVP23は共有メモリ25に存在する図3の外部ボリューム管理テーブルを参照して、グループ定義テーブルを作成し、これを管理クライアントに提供する。図6において、退避元外部ボリューム1と退避元外部ボリューム2とは同一装置のボリュームとして表示されている。退避元外部ボリューム3−5も同一装置のものとして表示されている。
図6において、管理者が、同じ装置の複数のボリュームのチェック欄をクリックすると、SVPはこの複数のボリュームをグループ化する。
図7は退避元外部ボリュームの複数をグループ化するための、SVPが実行するフローチャートである。管理クライアントは、図6に示す表示画面に対して、ボリューム1と2を第1のグループとし、ボリューム3−5を第2のグループとする入力を実行する。SVPはこの入力情報に基づいて、グループ♯を決定する(図7のステップ700)。
SVPは、図8に係る退避元外部ボリュームのグループ管理テーブルのグループ♯欄に新規エントリを追加し、これにグループ♯(α、β・・・・)を設定する(702)。
図8のテーブルは、図5と同様にパス切れ時の退避の要否、キャッシュ使用量、キャッシュ使用量閾値、退避先の欄を備えている。キャッシュ使用量、閾値は、グループに属する全退避元外部ボリュームの合計値である。図5及び図8の退避先には1つ又は複数のボリュームが設定される。
管理クライアントが図8のテーブルにおいてのこれらの欄に入力を行うと、SVPはこの入力結果を図5の管理テーブルの個別の退避元外部ボリュームに自動的に反映させる。例えば、グループに対するキャッシュ使用量閾値は、グループに属する複数の退避元外部ボリュームに対して均等又は各退避元外部ボリュームの容量を考慮して不均等に分配される。また、グループに対する“パス切れ時の挙動”は、各転送元外部ボリュームに対して同様に設定される。退避先についても同様である。
なお、図6において、管理者が装置製番を選択すると、この装置に属するボリュームがグループ化される。このように、管理者は、退避元外部ボリュームをグループ化して、キャッシュ使用量の閾値などの退避条件を設定することにより、各退避元外部ボリュームへの退避条件の設定を簡素化できる。
図9は、退避元外部ボリュームをグループ化する他の実施形態を示す、ストレージシステムのブロック図である。この実施形態は複数の外部ボリュームが、異なる外部装置を跨いでグループ化されていることを示している。
符号904は、外部装置40、40-1、40-2に属する複数のボリューム42のグループであり、符号906は、外部装置40−3,40−4に属する複数の外部ボリュームのグループである。符号900はグループ904の複数の外部ボリュームに対応付けられた複数の仮想ボリューム32のグループであり、符号902はグループ906の複数の外部ボリュームに対応付けられた複数の仮想ボリューム32のグループである。
主ストレージサブシステム10は仮想ボリューム32と実ボリューム31とを備えている。実ボリューム31はアクセス頻度の高いデータを格納している。グループ904に属する外部ストレージサブシステム40,40-1,40-2はいずれも、例えば、ローエンドのストレージサブシステムであり、アクセス頻度が低いデータが退避元外部ボリューム42に格納されている。
一方、グループ906に属する外部ストレージサブシステムは、ミッドレンジ又はハイエンドのストレージサブシステムであり、アクセス頻度が高いデータが退避元外部ボリューム42に格納されている。
外部装置の性能や使用形態の差は、グループ毎に異なる退避条件を設定できることに表われている。例えば、ローエンドストレージサブシステムはIOの処理速度が劣るため、ローエンドストレージサブシステムの退避元外部ボリュームに対するキャッシュメモリの閾値をハイエンドストレージサブシステムの外部ボリュームに対するキャッシュメモリの閾値より少ない値にして、キャッシュメモリのデータが退避先ボリュームに早い段階で転送されるようにする。
なお、図9では複数の外部ストレージサブシステムを性能ごとにグループ化したが、グループを分ける基準は外部ストレージサブシステムの用途、目的、蓄積されるデータの用途、目的、或いは特性であってもよい。
なお、グループ化される対象を複数の退避元外部ボリュームとしたが、主ストレージサブシステム10の内部ボリュームを混ぜてグループ化することを避けることがよい。退避先ボリュームが主ストレージサブシステムの内部ボリュームである場合に、主ストレージサブシステム内の退避元ボリュームから内部の退避先ボリュームへのデータの退避が生じて、主ストレージサブシステムに対してIO負荷を生じさせるためである。また、退避先ボリュームとして、内部ボリュームより外部ボリュームの方がよい。内部ボリュームが退避先とすると、主ストレージサブシステムに対してその分IO負荷が発生するからである。
次に、前記管理テーブルに退避条件を設定する処理について説明する。図10はそのためのフローチャートあり、これはSVPによって実行される。
SVPは管理クライアントからの入力をチェックして、退避条件の設定対象が退避元外部ボリューム自体か、あるいは退避元外部ボリュームのグループかを判定する(1000)。SVPが、退避条件の設定対象が退避元外部ボリューム自体であればステップ1002に移行し、管理クライアントからの入力に基づいて、外部ボリュームに対して、パス切れ時の動作、キャッシュ使用量閾値、残パス数閾値を設定する。
なお、パスモードがシングルモードの場合は、アクティブパス(優先度がHi)が切れた時点で退避を実行する。パスモードがマルチモードの場合には、パス切れ後の残パス数が閾値を下回った場合に退避を実行する。退避とはキャッシュメモリのダーティデータを退避先の内部ボリューム或いは外部ボリューム、その組み合わせからなる退避先に転送することをいう。退避ボリュームは単数でも複数でもよい。
ステップ1000において、退避元外部ボリュームグループが設定対象であると判定された場合、SVPはステップ1004において、退避元外部ボリュームグループを管理テーブル(図8)に登録されているもの(グループ♯)から選択する(1004)。
次いで、SVPはステップ1006において、グループに属する各退避元外部ボリュームへのパスの経路・パスモードが全ての退避元外部ボリュームについて同一か否かを図3の管理テーブルをチェックして判定する。
グループ内の全ての外部ボリュームへのパスが共通でないのであれば、ステップ1000に戻って各退避元ボリュームについて退避条件が設定される。図2を参照明すると、外部ボリューム3,4,5のグループにおいて、外部ボリューム3へのパスはP3だけであるのに対して、ボリューム4,5へのパスはともにP3とP4である。したがって、ボリューム3,4,5についてパスが共通していないと判定される。パスが共通していないと、グループに属する全てのボリュームについて退避条件を同一にするのは妥当でないからである。
ステップ1006で全てのボリュームへのパスが共有である場合には、ステップ1008において、SVPはグループ単位で退避条件を設定する(図8参照)。図2を参照すると、ボリューム1とボリューム2へのパスが共通であると判定される、なお、グループ単位で退避条件を設定すると、既述のように、SVPは設定内容を退避元外部ボリューム毎の退避条件に反映させる(図6参照)。
なお、複数の装置に跨る複数の外部ボリュームをグループ化すると、必ず、複数の外部ボリュームへの複数のパスは共通でなくなり、ステップ1006の判定では、退避条件を設定するための処理がステップ1002へ誘導され、ステップ1008における利点を享受することができない。この場合、キャッシュ使用量に係る閾値をグループ化された複数の外部ボリュームに対して統一された値にすることまで躊躇する必要も無いために、ステップ1004とステップ1006との間で、グループ化された複数の外部ボリュームに対して共通の閾値を設定してもよい。
次に、退避先を設定する処理について説明する。図11は、退避先候補となる、全LDEVの管理テーブルである。DKAは内部ボリュームの情報を収集し、CHAは、図3の管理テーブルから、退避元外部ボリュームとして設定されていない外部ボリュームであって、図5で退避条件が設定されていない外部ボリュームを収集し、これらのボリュームを退避先の候補LDEVとして、図11に登録する。図11に示す管理テーブルは、共有メモリ25に登録される。SVPはLDEVを退避先として選定した場合には、図11のテーブルを更新する。
図11において、“パス定義”とは、パス定義がされているか否かの情報である。“退避先設定”とは、既述の退避先として扱われているか否かの情報である。LDEVが第1のストレージサブシステムではない外部の装置にある場合に、“装置製番”に情報が登録される。情報が登録されていない場合には、LDEVは、内部ボリューム、すなわち、主トレージサブシステムのボリュームであることを意味している。
退避先ボリュームが外部ボリュームの場合には、外部退避先ボリュームへの“パスモード”が登録される。さらに、図11の管理テーブルにはLDEVのアドレスを含む識別情報が登録されている。
図12は、退避先を設定するためのフローチャートである。このフローチャートは、SVPが管理クライアントからの入力に基づいて実行される。
SVPは、図5又は図8の管理テーブルを参照することによって、退避元ボリュームとして、外部ボリューム単独或いは外部ボリュームのグループを設定する(1100)。
外部ボリュームが選択された場合には、SVPは、ステップ1102からステップ1104に進み、グループ化されている外部ボリュームは個別に退避元ボリュームとして設定できないことを管理クライアントに表示する(1106)。これは、パス切れなど退避を必要とする状況はグループ単位で生じる可能性があることに配慮したためである。
退避元として、外部ボリュームのグループが選択された場合、又は退避元としてグループに属しない外部ボリュームが選択された場合、ステップ1108において、SVPは退避先ボリュームとして、LDEVあるいはプールを選択する。プールとは固定された記憶容量を持たずに、IOに基づいて順次容量が拡張されるボリュームである。プールが選択された場合には、外部ボリューム管理テーブル(図5,図8)の退避先にプールの情報が登録される(1100)。プールボリュームは通常主ストレージサブシステム20内に設定される。
図13は、プールに登録されているLDEVを管理する管理テーブルである。図14は、プールへLDEVを追加する処理を説明するフローチャートである。SVPが図11のLDEV管理テーブルから退避先に設定されていないLDEVを選択すると(1400)、選択されたLDEV♯は、図13のプール管理テーブルのエントリ(♯)に順番に登録される(1402)。
プール管理テーブルに登録されたLDEV♯では、図11のLDEV管理テーブルにおいて、転送先設定の欄にプールに選択されたことが登録される。複数のCHA及びDKAは、プールに登録されているLDEVをプールに順次割り当てて退避先として扱う。
ステップ1108においてLDEVが選択されると、SVPは図11を参照してLDEVが内部ボリュームか外部退避先ボリュームかを判定し(1114)、内部ボリュームの場合には図5及び図8に示す管理テーブルの退避先にLDEV♯を登録する(1120)。このLDEV♯の詳細情報は図11に登録されている。次いで、LDEV管理テーブル(図11)のLDEV♯の退避先設定欄をオンにする。さらに、退避先の設定処理を追加する場合には、ステップ1114にリターンし、そうでない場合には処理を終了する(1124)。
ステップ1108において、既にパスが設定されているLDEVを退避先とすることは好ましくない。そこで、管理者に当該LDEVを退避先に選択できない旨をSVPは管理クライアントに表示する。また、選択されたLDEVと同一ECCグループ内の他のLDEVにパス定義がある場合には、SVPは管理クライアントに注意喚起の表示を行う。このパス定義がある場合には、SVPは図11の管理テーブルにこの旨を表示する。退避先LDEVとしては、パス定義がないためにIO負荷がないECCグループのボリュームであることが好ましい。
ステップ1114において、退避先として外部ボリュームが選択されると、SVPは図3の管理テーブルを参照して退避先ボリュームへのパスモードとパス数を判定する。SVPは、パスモードがシングルモード、又はパス数が1の場合にはパスの冗長性が無いために、退避先として設定できない旨を管理クライアントに表示する(1126)。パスモードがシングルであると、外部装置の保守時(HDDの閉塞を含む)にキャッシュメモリ内のデータを、パスを介して退避先外部ボリュームに転送できないことがある。
一方、SVPがステップ1116を否定判定すると、ステップ1118に移行する。SVPは、選択された転送先外部ボリュームが、パス切れ時の退避にオンが設定された退避元外部ボリュームと同一の外部装置(同一の装置製番・ベンダ名)に存在するものであるか否かを判定する。選択された退避際外部ボリュームが退避元外部ボリュームと同じ筐体のものである場合には、退避元外部ボリュームについて発生した障害が選択された退避先外部ボリュームについて発生するおそれがあるからである。次に、SVPはステップ1126に移行し、異なる筐体であれば選択された退避先外部ボリュームを転送先に設定することができるのでステップ1120に移行する。
次に、キャッシュメモリから退避先ボリュームへのデータの退避処理について説明する。この退避処理は、キャッシュメモリ24内のダーティデータの存在量が閾値を越えた場合と、主ストレージサブシステムから退避元外部ボリュームへのパス障害と、退避元外部ボリュームを有する外部装置の保守(HDDの閉塞を含む)などの少なくとも1つの場合に実行される。
退避先が外部ボリュームである場合の退避処理は、退避先外部ボリュームに接続するCHA21Nのマイクロプロセッサが実行する。退避先が内部ボリュームである場合の退避処理は、ホスト装置10に接続する内部ボリュームの記憶領域に制御権を有するDKAによって実施される。
退避を制御するCHAは、退避元外部ボリューム又はそのグループについて、キャッシュメモリのダーティデータの合計量(キャッシュ使用量)を算出して、これを外部ボリューム管理テーブル(図5、図8)のキャッシュ使用量の欄に登録する。管理クライアントは、管理テーブルを参照してキャッシュ使用量の現在値を知ることができる。
チャネルアダプタは、また、パス状態監視プログラムを有しており、図15に示すように、転送元外部ボリュームへと転送先外部ボリュームへのパス状態を周期的に監視している。また、図16は、転送元外部ボリューム及び転送先ボリュームへのパスを管理するテーブルである。CHA21A,21Bは、図3の転送元外部ボリューム管理テーブルなどを参照して、外部ボリューム♯、パスモード、パス数を決定して、図16のテーブルに登録する。図16の管理テーブルは共有メモリ25に登録される。このテーブルの“残パス数”とは、パス数のうちパス障害(パス切れ)が発生していない正常なパス数である。残パス数は図15のフローチャートの処理によって更新される。
CHAは、図16の管理テーブルの外部ボリューム♯を順次チェックして、共有メモリ25内の構成情報を参照し、パス切れが生じた退避元ボリューム又は退避先ボリュームの情報を取得する(1500)。
次いで、この外部ボリュームに係る残パス数をデクリメントする(1502)。図16の全ての外部ボリュームについてチェックを完了させるとこのフローチャートを終了する。
図17は退避処理の要否を判定するフローチャートである。退避元外部ボリュームに接続するCHA21A,21Bは、全ての退避元外部ボリュームについて、このフローチャートを適用する。
先ずCHAはパス数と残パス数とを比較する。“パス数”とは主ストレージサブシステムから退避元外部ボリュームへ形成されたパスの数であり、“残パス数”とは既述のとおり、パス数からパス切れになったパスを除いたパスの数である。
先ず、CHAは、図3の管理テーブルを参照して、“残パス数”が零であるか否かを判定する(1702)。残パス数が零である場合には、パスに冗長性が無いためにステップ1716に移行して、“退避要”と判定する。残パス数が零で無い場合には、ステップ1704に移行してパスモードがシングルであり、かつ優先度が高い方のパスが優先度の低い交替パスに切り替え中か否かを判定して、これを肯定するとステップ1716に移行する。
ステップ1702とステップ1704とからステップ1716までの経過について、他の図面を利用して具体的に説明する。
図18の(A)において、退避元外部ボリューム2へのパス数は“パス2”を経由する“1”である。(B)のように、“パス2”が切れると“残パス数”が“0”になるために、退避元外部ボリューム2について、キャッシュメモリのダーティデータを退避先ボリュームに退避することが必要と判定される。
次に図19(A)において、退避元外部ボリューム1へのパス数は、パス1乃至3をそれぞれ経由する“3”である。退避元外部ボリューム1へのパス1乃 至3はマルチパスモードで運用されている。ここで(B)のように、“パス1”が切れても“残パス数”は“2”であり、そして、パスモードはシングルでパス切り替え中でもないためにそれだけで退避の必要はない。
次に、図20(A)において、退避元外部ボリューム1へのパス数は、パス1乃至3をそれぞれ経由する“3”である。退避元外部ボリューム1へのパス1はシングルモードでのアクティブパスとして運用されている。今ここで(B)のように、“パス1”が切れると、“残パス数”は“2”であるが、“パス1”を“パス2”に切り替えて、即ち、“パス2”をアクティブパスとする必要があるために退避要と判定される。一方、(C)のように、“パス2”がアクティブパスの場合には“パス1”が切れてもそれだけで退避の必要は無いと判定される。
図17に戻り説明を続けると、ステップ1702及びステップ1704で退避不要と判定されると、CHAは、ステップ1706において、退避元外部ボリュームに対応する仮想ボリュームのキャッシュ使用量と閾値とを比較する。キャッシュ使用量が閾値以下の場合には退避は不要と判定される。
一方、キャッシュ使用量が閾値を越える場合には、CHAは図5の管理テーブルを参照して、退避元外部ボリュームが属するグループがあるか否かを判定する(1708)。この判定を否定すると、ステップ1710でこのグループに属する他の退避元外部ボリュームも含めた、キャッシュの全体の使用量と、グループについての閾値とを比較する(1710)。これらの値は、図8の管理テーブルを参照することによって得られる。特定の退避元外部ボリュームについてのキャッシュ使用量が当該ボリュームについての閾値を越えていても、グループ全体のボリュームについて閾値を越えていない場合には、退避が不要と判定する。
一方、ステップ1708において、退避元外部ボリュームが属するグループが無いと判定され(YES)、また、ステップ1710でグループに属する全ボリュームについてキャッシュ使用量の合計が閾値を越える場合(YES)は、退避が必要と判定する(1716)。
次に、キャッシュメモリに残存するデータを退避先ボリュームにデステージングするか、退避元外部ボリュームにデステージングするかの処理について説明する。キャッシュメモリのダーティデータが退避先ボリュームに退避されているか否かは図21の退避先管理テーブルと図22にビットマップによって管理される。
図21の退避先管理テーブルの各管理♯は、退避元外部ボリュームの記憶領域を、例えば、スロット単位に分割した個々のスロットに対応する。LDEV♯は退避先ボリュームを特定或いは識別する情報であり、退避先♯は退避データが存在する、LDEV♯内のアドレスである。
図22はビットマップテーブルであり、各ビットが図21の管理者♯に対応している。管理♯に退避先が登録されている場合には、この管理♯に対応するビットをオンする。図22の220はオンされたビットを示す。ビットがオフであることは、データが退避先ではなく退避元外部ボリュームの対応するスロット位置に反映されていることを示している。退避先管理テーブル及びビットマップの設定、更新はチャネルアダプタが行う。退避先管理テーブル及びビットマップは共有メモリ25に格納されている。
図23は,CHA及び/又はDKAによって実行される、デステージング処理を説明するフローチャートである。CHAは、キャッシュメモリのデータが退避元外部ボリュームのどのスロット位置に対するものかを算出する。チャネルアダプタはこのスロットに対する管理♯を求め、この管理♯に対応するビットマップのビットをチェックしてビットがオンされているか否かを判定する。ビットがオンされている場合には退避がありと判定する。退避がありと判定されると(2300)、退避先管理テーブルのこの管理♯から退避先情報をリードして、この退避先をキャッシュメモリのデータをデステージングする先として設定する(2302)。
次に、CHAは、図17の退避要否判定の処理結果に基づいて(2304)、退避が不要である場合には、キャッシュメモリのデータを退避元外部ボリュームに転送できるので、ビットマップのビット及び退避先管理テーブルをクリア、即ち、ビットをオフし、退避先管理テーブルの退避先をNULLクリアする(2306)。次いで、デステージ先に退避元ボリュームの管理♯に対応するスロットに再設定する(2308)。次いで、CHAは退避元外部ボリュームにキャッシュメモリのダーティデータをデステージングする。
一方、退避要と判定された場合、次のステップ2312において、“図17のステップ1702=No,and,図17のステップ1704=No,and “退避元ボリュームへのIOレスポンスの平均値>退避先ボリュームへのIOレスポンスの平均値”の肯定又は否定を判定する。この判定が否定された場合は、退避先ボリュームへのIO負荷が高いと判定して、ステップ2306に移行して退避元外部ボリュームをデステージ先に設定する。
一方、ステップ2312の判定が肯定された場合には、退避先ボリュームをデステージ先とすることを維持する。次いで、CHAは退避先ボリュームをデステージ先として、キャッシュメモリのデータをデステージング処理する(2310)。
一方、ステップ2300において退避先が無いと判定されると、ステップ2314において、図17の処理結果に基づいて退避要否の判定を行う。退避が不要の場合にはキャッシュメモリのダーティデータを退避元外部ボリュームの特定スロットにデステージング処理する。
ステップ2314において、退避が必要と判定されると、CHAは、退避先の確保をこころみ(2316)、退避先確保の成功又は不成功を判定する(2318)。成功を判定した場合には、ステップ2322がステップ2312と同様な処理を行い、この処理を肯定判定すると、デステージ先に退避先を設定し(2322)、退避ビットマップの特定ビットをオンし、退避先管理テーブルの特定管理♯に退避先を登録する(2324)。退避先確保の成功或いは失敗は後述のフローチャートに基づいて決定される。
一方、ステップ2322を否定判定する場合には、退避元外部ボリュームの特定スロットに対してデステージングを実施する。なお、CHAは退避先外部ボリューム及び退避元外部ボリュームについてのIOレスポンスの平均値を他のフローチャートに基づいて周期的に計算している。退避先ボリュームが内部ボリュームの場合には、DKAによって退避先内部ボリュームのIOレスポンスが求められている。
図24は、主ストレージサブシステム20が退避先を確保するための処理について説明したものである。CHAは、退避元外部ボリューム管理テーブル(図5、図8)を参照して、退避先がプールかLDEVかをチェック判定する。退避先がプールの場合には、プール管理テーブル(図13)を参照して、このテーブルに登録されている複数のLDEV中から1つのLDEVをラウンドロビンで選択する(2306)。
一方、退避先がプールでないLDEVの場合には、外部ボリューム管理テーブルに退避先として設定されているLDEVを選択する(2402)。複数のLDEVが管理テーブルに登録されている場合には、ランドロビンで1つのLDEVを選択する。
次いで、CHAは選択したLDEVから未使用のエリアの取得をこころみる(2408)。ステップ2410では未使用のエリアの存在、不存在を判定し、未使用エリアが存在する場合には、退避先確保成功と判定する(2414)。一方、選択したLDEVに未使用のエリアが存在しない場合には、退避先として管理テーブルに登録されている全LDEVについて未使用エリアが存在するか否かを判定し(2412)、これを否定判定する場合にはステップ2400にリターンし、これを肯定判定する場合は退避先確保失敗と判定する(2416)。
次に、キャッシュメモリへのステージング処理を図25に基づいて説明する。CHAがホスト装置10から仮想ボリューム32へリード要求を受信すると、キャッシュメモリを参照してキャッシュヒットミス判定を行う。キャッシュヒットを判定すると、このデータをキャッシュメモリ24からリードしてホスト装置10に転送する。
一方、キャッシュヒットミスを判定した場合には、退避元外部ボリュームに接続するCHA21Aは、共有メモリ25からリードコマンドを読み、退避元外部ボリュームのリード先スロットに対応する管理♯を求め、さらにこの管理♯に対するビットマップ(図22)をチェックして退避先があるか否かをチェックする(2500)。
退避先がない場合には、CHAは退避元外部ボリュームからデータをリードして、キャッシュメモリにステージングする(2504)。一方、退避先がある場合には、CHAは、退避先管理テーブル(図21)の前記管理♯から退避先を取得し(2502)、この退避先からデータを取得してキャッシュメモリにステージングする(2504)。ステージングされたデータはチャネルアダプタによってホスト装置に転送される。
次に、退避元外部ボリュームを提供する、外部装置のHDDに障害が発生して、これを閉塞する場合のデータの退避処理を図26のフローチャートに基づいて説明する。退避元外部ボリュームに接続するCHAは、キャッシュメモリ24をチェックして、一定時間キャッシュメモリに存在するダーティデータがあるか否かをチェックする(2600)。
これを否定判定する場合は、HDDの閉塞に伴うデータの退避が必要ないとして、このフローチャートを終了する。この判定を肯定する場合には、ダーティデータのライト先が退避元外部ボリュームであり、かつ当該ボリュームの記憶領域を提供するドライブが閉塞された否かをチェックする(2602)。これを否定判定する場合は、退避先を確保する必要がないのでフローチャートを終了する。一方、HDDが閉塞されていると、ステップ2602が肯定判定され、ステップ2600で特定されたダーティデータを他のボリュームに退避する必要がある。
そこで、CHAはダーティデータに対して、転送先が設定されているか否かを、転送先管理テーブル(図21)及びビットマップ(図22)を参照して判定する(2604)。この判定を肯定した場合には、退避先を転送先管理テーブルから取得して、これをデステージ先に設定して(2606)、転送先にデージング処理を行う。退避先が外部ボリュームの場合は、この外部ボリュームに接続するCHAがデステージングを実施する。一方、退避先ボリュームが内部ボリュームの場合には、内部ボリュームにアクセス可能なDKAによってデステージングが実施される(2614)。
ステップ2604の判定を否定した場合には、退避先確保(2608)、退避先確保成功?(2610)の各処理を行い、退避先の確保に失敗した場合には、この旨をSVPに通知する。SVPは管理クライアントに必要な表示を行う。
一方、退避先が確保できた場合には、退避先管理テーブル(図21)及びビットマップ(図22)を更新して、退避先にデステージング処理を行う(2614)。
次に、退避先ボリュームから退避元外部ボリュームに退避データをリストアする回復処理を図27に基づいて説明する。CHA21Aは、退避元外部ボリュームについて図22に示すビットマップをサーチして(2700)、退避あり(オンビットあり)又は退避なし(オンビットなし)を判定する。CHAは、オンビットを回復が必要な範囲として設定し、オンビットに対応する管理♯から退避先を求める。
次いで、CHAは、退避元外部ボリュームについて、図17のフローチャートの結果に基づき、退避要否を判定する(2706)。退避が必要な場合は、退避先から退避元外部ボリュームの特定スロットにデータを転送できないために、退避データの回復を行うことなくフローチャートを終了する。一方、退避が必要でない場合には、退避データの回復は可能であるので、退避先からキャッシュメモリに退避データをステージングする(2708)。
次いで、ステージングされたデータを、回復先である退避元外部ボリュームへデスデージング(リストア)するとともに(2710)、退避管理テーブルの退避元管理♯の情報をクリアし、かつビットマップのオンビットをクリアする(2712)。なお、退避データを退避元外部ボリュームに回復する場合には、ビットマップにおいて連続してオンになっているビット部分を優先することが、退避データを退避元外部ボリュームに転送する際にシーケンシャル処理になるために効率がよい。
次に、主ストレージサブシステムから退避先外部ボリュームへのパスを開放する場合、或いは、退避先外部ボリュームを有する外部装置を主ストレージサブシステムから切り離す際の処理を図28に基づいて説明する。
CHA21Nは、退避先管理テーブル及びビットマップを参照して、主ストレージサブシステムから切り離されようとしている外部ボリュームにデータの退避があるか否かを判定する(2800)。CHAはこの外部ボリュームをSVPからの通知によって認識する。
ステップ2800において、データの退避がないと判定されると、CHAはSVP経由で外部ボリュームの切り離しが可能であることを管理クライアントに通知する。管理クライアントは管理者にボリュームの切断の実行の有無を確認する表示を行う。
退避がある場合には、ステップ2804において、CHAは、切断されようとしている外部ボリュームに退避元外部ボリュームに未反映のデータが存在することをSVP経由で管理クライアントに通知する(2806)。
SVPは、管理クライアントに外部ボリュームの強制切断の要否の確認を求める(2806)。強制切断を許可すると、ステップ2802で外部ボリュームの切り離しが可能である表示を管理クライアントに対し行う(2802)。一方、管理者が退避データの回復処理を選択する場合には、CHAは、図27のフローチャートを直ちに実行して、外部ボリュームの退避データを退避元外部ボリュームにリストアする(2808)。
図29は、退避元外部ボリュームの過負荷時、データの退避、及びパス切れ時でのホスト装置、管理者への通知に関するフローチャートである。外部ボリュームを、ホスト装置に対しては主ストレージサブシステム20のボリュームとして見せているため、なるべく外部装置の一時的な障害や保守などの影響はストレージサブシステム側で吸収してホストに対しては見せないようにしている。例えば、パスが切れてもキャッシュメモリのデータが退避されるのでLDEV閉塞としてホストへ見せるまでの時間は、本発明を用いることで延ばすことが可能となる。
既述の実施形態では、退避先ボリュームを主ストレージサブシステムの内部ボリューム及び外部ボリュームにすることができることを説明した。退避先ボリュームを内部ボリュームとすると、内部ボリュームへデータを退避する際、内部ボリュームに対してIOが発生してしまうため、ストレージサブシステムのIO処理に影響を与える可能性があるものの、次の利点がある。
すなわち、退避先ボリュームが内部ボリュームとすると、システム構成の観点から、外部ボリュームより内部ボリュームの方が性能が良い為、外部ボリュームを備える外部資源に対する負荷が高いとき、内部ボリュームにデータを退避すれば、高速の処理が可能であり、キャッシュメモリに対する過負荷を回避し易い。
一方、退避先ボリュームを外部ボリュームとすると、パス切れや外部装置の保守の際など、外部特有の現象で退避先ボリュームの使用が制限されたり、システムの構成上、外部ボリュームは内部ボリュームより性能が低いケースが多く、退避先外部ボリュームが過負荷になることがあるのに対して、データをボリュームに退避する際に、主ストレージ装置のIO処理性能には影響を与えないという利点がある。
本発明に係わるストレージシステムのブロック図である。 仮想ボリュームに外部ストレージサブシステム退避元外部ボリュームがマッピングされている状態を示すブロック図である。 外部ボリュームの管理テーブルである。 CHAのローカルメモリのブロック図である。 退避元外部ボリュームの管理テーブルである。 退避元外部ボリュームのグループを定義するためのテーブルである。 退避元外部ボリュームの複数をグループ化するための、SVPが実行するフローチャートである。 退避元外部ボリュームのグループ管理テーブルである。 退避元外部ボリュームをグループ化する他の実施形態を示す、ストレージシステムのブロック図である。 管理テーブルに退避条件を設定する処理のためのフローチャートである。 退避先候補となる、全LDEVの管理テーブルである。 退避先を設定するためのフローチャートである。 プールに登録されているLDEVを管理する管理テーブルである。 プールへLDEVを追加する処理を説明するフローチャートである。 パス状態監視プログラムである。 転送元外部ボリューム及び転送先ボリュームへのパスを管理するテーブルである。 退避処理の要否を判定するフローチャートである。 パス切れの際の退避処理を説明するブロック図である。 同退避処理の他の例を説明するためのブロック図である。 さらに他の例を説明するためのブロック図である。 退避先管理テーブルである。 退避先管理のためのビットマップである。 デステージング処理を説明するフローチャートである。 主ストレージサブシステムが退避先を確保するためのフローチャートである。 ステージング処理を説明するフローチャートである。 外部装置のHDDに障害が発生して、これを閉塞する場合のデータの退避処理のフローチャートである。 退避先ボリュームから退避元外部ボリュームに退避データをリストアする回復処理を説明するフローチャートである。 退避先外部ボリュームを主ストレージサブシステムから切り離す処理を説明するフローチャートである。 退避元外部ボリュームの過負荷時、データの退避、及びパス切れ時でのホスト装置、管理者への通知に関するフローチャートである。
符号の説明
10 ホスト装置、12 主ストレージサブシステム、21 チャネルアダプタ、22 ディスクアダプタ 31 内部ボリューム、32 仮想ボリューム、34 退避先内部ボリューム、42 外部ボリューム(退避元外部ボリューム、退避先外部ボリューム)40 外部ストレージサブシステム

Claims (14)

  1. 上位計算機がアクセスする第1のボリュームと、
    前記第1のボリュームにマッピングされた第2のボリュームと、
    前記第1のボリュームに対して前記上位計算機から発行されたライトデータを一時記憶するキャッシュメモリと、
    前記キャッシュメモリのライトデータの退避用としての第3のボリュームと、
    前記ライトデータの転送を制御するコントローラと、
    前記キャッシュメモリのライトデータを前記第3のボリュームに転送するか否かを決する規則を記憶した管理メモリと、
    を備え、
    前記コントローラは、前記管理メモリに記憶された前記規則に基づいて、前記第2のボリュームへ転送されないで前記キャッシュメモリに残っている前記ライトデータを、前記転送規則に基づいて、前記第3のボリュームに転送するか否かを制御する、ストレージシステム。
  2. 前記コントローラは、前記キャッシュメモリから前記第2のボリュームへの前記ライトデータの転送が前記規則に合致する状態であれば、当該ライトデータを前記キャッシュメモリから前記第3のボリュームに転送し、前記規則に合致しない状態であれば、前記ライトデータを前記キャッシュメモリから前記第2のボリュームに転送する、請求項1記載のストレージシステム。
  3. 前記第1のボリュームは、前記上位計算機が認識可能ではあるが、記憶領域を有しない仮想領域であり、
    前記第2のボリュームは、前記キャッシュメモリの前記ライトデータを格納可能な領域を備え、
    前記第3のボリュームは前記ライトデータを記憶する領域を備える、
    請求項1記載のストレージシステム。
  4. 前記第1のボリュームと、前記キャッシュメモリと、前記管理メモリと、前記コントローラと、を有する主ストレージサブシステムと、
    前記第2のボリュームを有する外部ストレージサブシステムと、
    を備え、
    前記コントローラは、前記上位装置から前記第1のボリュームに対して発行された前記ライトデータを、前記キャッシュメモリを介して前記第2のボリュームに転送し、
    前記第3のボリュームは、前記主ストレージサブシステム及び前記外部ストレージサブシステムの少なくとも一方に存在する、請求項1記載のストレージシステム。
  5. 前記規則は前記第2のボリュームの過負荷状態であり、前記コントローラは当該第2のボリュームが当該規則に一致したことを判定すると、前記第2のボリュームに転送されないで前記キャッシュメモリに残っている前記ライトデータを前記第2のボリュームではなく前記第3のボリュームに転送する、請求項1記載のストレージシステム。
  6. 前記第1のボリュームと、前記キャッシュメモリと、前記管理メモリと、前記コントローラと、を有する主ストレージサブシステムと、
    前記第2のボリュームを有する外部ストレージサブシステムと、
    を備え、
    前記コントローラは、前記上位装置から前記第1のボリュームに対して発行された前記ライトデータを、前記キャッシュメモリを介して前記第2のボリュームに転送し、
    前記第3のボリュームは、前記外部ストレージサブシステムに存在し、
    前記規則は、前記第2のボリュームと前記第3のボリュームとを接続する前記主ストレージサブシステムと前記外部ストレージサブシステム間の複数のパスの少なくともと1つに生じた障害であり、
    前記コントローラは前記障害を判定すると、前記ライトデータを前記キャッシュメモリから前記第2のボリュームではなく前記第3のボリュームに転送する、請求項1記載のストレージシステム。
  7. 前記第2のボリュームが複数存在し、
    前記規則が、複数ある前記第2のボリュームのそれぞれ毎に決定される、請求項1記載のストレージシステム。
  8. 前記外部ストレージサブシステムが複数存在し、
    前記複数の外部ストレージサブシステムのそれぞれは、1つ又は複数の前記第2のボリュームを備え、
    さらに、前記規則を前記複数の外部ストレージサブシステムのそれぞれごとに一括して設定する管理装置を備える、請求項4記載のストレージサブシステム。
  9. 前記外部ストレージサブシステムが複数存在し、
    前記複数の外部ストレージサブシステムのそれぞれは、1つ又は複数の前記第2のボリュームを備え、
    前記複数の外部ストレージサブシステムが性能に応じて複数のグループに分けられ、
    前記規則を前記複数のグループ毎に一括して設定する管理装置を備える、請求項4記載のストレージシステム。
  10. 前記複数のパスがシングルパスモードに設定されている場合、前記コントローラは、前記障害として、前記複数のパスのうち優先度が高いパスの切断を判定すると、前記ライトデータを前記キャッシュメモリから前記第3のボリュームに退避させる、請求項6記載のストレージシステム。
  11. 前記複数のパスがマルチモードに設定されており、前記コントローラは、前記障害として、前記複数のパスの少なくとも1つが切断され、残りのパス数が閾値より小さいことを判定すると、前記ライトデータを前記キャッシュメモリから前記第3のボリュームに退避させる、請求項6記載のストレージシステム。
  12. 前記コントローラは、前記第2ボリュームへ転送されることなく前記キャッシュメモリに存在するライトデータが使用する当該キャッシュメモリ容量が閾値を越えることを前記規則に合致する状態であると判定して、当該ライトデータを前記第3のボリュームに退避させる、請求項2記載のストレージシステム。
  13. 上位計算機に記憶領域を提供するストレージサブシステムであって、
    前記上位計算機がアクセスする仮想領域と、
    前記仮想領域に対して前記上位計算機から発行されたライトデータを一時記憶する第1の記憶領域と、
    前記仮想領域に外部ストレージの第2の記憶領域をマッピングする情報を記憶する第1のメモリと、
    前記ライトデータを、前記マッピング情報に基づいて、前記第1の記憶領域から前記第2の記憶領域に転送する第1のコントローラと、
    前記第1の記憶領域に一時記憶された前記ライトデータを前記第1の記憶流域から退避させる条件を判定し、当該条件の成立を判定した際、第3の記憶領域を確保し、前記第1の記憶領域に一時記憶されている前記ライトデータを前記第3の記憶領域に転送する第2のコントローラと、
    前記第1の記憶領域からの前記ライトデータのデステージ先が、前記第2の記憶領域か前記第3の記憶領域過の情報を記録した第2のメモリと、
    を備える、ストレージサブシステム。
  14. ストレージサブシステムが、
    上位装置に仮想記憶領域を見せるステップと、
    当該上位装置から前記仮想記憶領域に発行されたデータを受信するステップと、
    前記ライトデータをキャッシュメモリに一時記憶するステップと、
    前記キャッシュメモリに記憶された前記ライトデータを前記仮想記憶領域にマッピングされた外部実記憶領域に転送するステップと、
    前記ライトデータを前記キャッシュメモリから退避させる条件を判定するステップと、
    前記条件を肯定して前記キャッシュメモリに記憶された前記ライトデータを退避させる退避先を確保するステップと、
    を実施する、記憶制御方法。
JP2008149831A 2008-06-06 2008-06-06 ストレージシステム、ストレージサブシステム、及び記憶制御方法 Pending JP2009295045A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008149831A JP2009295045A (ja) 2008-06-06 2008-06-06 ストレージシステム、ストレージサブシステム、及び記憶制御方法
US12/222,769 US7984245B2 (en) 2008-06-06 2008-08-15 Storage system, storage subsystem and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008149831A JP2009295045A (ja) 2008-06-06 2008-06-06 ストレージシステム、ストレージサブシステム、及び記憶制御方法

Publications (1)

Publication Number Publication Date
JP2009295045A true JP2009295045A (ja) 2009-12-17

Family

ID=41401350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008149831A Pending JP2009295045A (ja) 2008-06-06 2008-06-06 ストレージシステム、ストレージサブシステム、及び記憶制御方法

Country Status (2)

Country Link
US (1) US7984245B2 (ja)
JP (1) JP2009295045A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015076047A (ja) * 2013-10-11 2015-04-20 富士通株式会社 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム
JP2020013564A (ja) * 2018-07-19 2020-01-23 廣達電腦股▲ふん▼有限公司Quanta Computer Inc. ディスクレスコンピュータシステムのスマートラックアーキテクチャ
JP2021174357A (ja) * 2020-04-28 2021-11-01 Necプラットフォームズ株式会社 ストレージ装置、ストレージ装置の処理方法、及びプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151077B1 (en) * 2008-06-30 2012-04-03 Emc Corporation Application aware cache management
US20130138884A1 (en) * 2011-11-30 2013-05-30 Hitachi, Ltd. Load distribution system
US10592155B2 (en) * 2018-04-10 2020-03-17 International Business Machines Corporation Live partition migration of virtual machines across storage ports

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4386694B2 (ja) 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
US7539815B2 (en) * 2004-12-29 2009-05-26 International Business Machines Corporation Method, system and circuit for managing task queues in a disk device controller
US7444478B2 (en) * 2005-11-18 2008-10-28 International Business Machines Corporation Priority scheme for transmitting blocks of data
JP2007280089A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
US20070271307A1 (en) * 2006-04-19 2007-11-22 Bergsten James R Write Sharing of Read-Only Data Storage Volumes
JP5091704B2 (ja) * 2008-02-06 2012-12-05 株式会社日立製作所 ストレージ構成回復方法及びストレージ管理システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015076047A (ja) * 2013-10-11 2015-04-20 富士通株式会社 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム
JP2020013564A (ja) * 2018-07-19 2020-01-23 廣達電腦股▲ふん▼有限公司Quanta Computer Inc. ディスクレスコンピュータシステムのスマートラックアーキテクチャ
JP2021174357A (ja) * 2020-04-28 2021-11-01 Necプラットフォームズ株式会社 ストレージ装置、ストレージ装置の処理方法、及びプログラム
JP7315222B2 (ja) 2020-04-28 2023-07-26 Necプラットフォームズ株式会社 ストレージ装置、ストレージ装置の処理方法、及びプログラム

Also Published As

Publication number Publication date
US20090307429A1 (en) 2009-12-10
US7984245B2 (en) 2011-07-19

Similar Documents

Publication Publication Date Title
US8095822B2 (en) Storage system and snapshot data preparation method in storage system
US7987466B2 (en) Storage system
US7480780B2 (en) Highly available external storage system
US7886114B2 (en) Storage controller for cache slot management
US8327110B2 (en) Storage system including a virtual volume, a plurality of disk drives and a plurality of flash memory devices
US8135905B2 (en) Storage system and power consumption reduction method for switching on/off the power of disk devices associated with logical units in groups configured from the logical units
JP4857818B2 (ja) ストレージ管理方法およびストレージ管理サーバ
JP4790372B2 (ja) ストレージのアクセス負荷を分散する計算機システム及びその制御方法
US20090300283A1 (en) Method and apparatus for dissolving hot spots in storage systems
US20080109546A1 (en) Fault recovery method in a system having a plurality of storage system
US20070055797A1 (en) Computer system, management computer, method of managing access path
US20100100678A1 (en) Volume management system
US20070266218A1 (en) Storage system and storage control method for the same
US8578073B2 (en) Storage system and control method of storage system
WO2011135636A1 (ja) 計算機システム及びその制御方法
US8683260B1 (en) Managing ownership of logical volumes
US20090198942A1 (en) Storage system provided with a plurality of controller modules
US7886186B2 (en) Storage system and management method for the same
US20170220249A1 (en) Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks
JP2009295045A (ja) ストレージシステム、ストレージサブシステム、及び記憶制御方法
US7975118B2 (en) Storage system and data rearrangement method
US20230176760A1 (en) Information processing apparatus and method
US8140800B2 (en) Storage apparatus
JP2023110180A (ja) ストレージ装置および制御方法