JP2006221451A - ディスクアレイ装置 - Google Patents

ディスクアレイ装置 Download PDF

Info

Publication number
JP2006221451A
JP2006221451A JP2005034692A JP2005034692A JP2006221451A JP 2006221451 A JP2006221451 A JP 2006221451A JP 2005034692 A JP2005034692 A JP 2005034692A JP 2005034692 A JP2005034692 A JP 2005034692A JP 2006221451 A JP2006221451 A JP 2006221451A
Authority
JP
Japan
Prior art keywords
pattern
disk array
information
host
cache
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
JP2005034692A
Other languages
English (en)
Inventor
Ryosuke Muramatsu
良祐 村松
Koichi Okada
広一 岡田
Akitake Tamura
彰偉 田村
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 JP2005034692A priority Critical patent/JP2006221451A/ja
Priority to US11/103,595 priority patent/US20060179163A1/en
Publication of JP2006221451A publication Critical patent/JP2006221451A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 ディスクアレイ装置で、ホスト等からのクリティカルI/Oに対しても、そのアクセス先の記憶装置の状態によらずに、応答遅延を発生させずシステムダウン等を起こさずに応答でき、I/O性能とシステム信頼性の双方を向上する。
【解決手段】 ディスクアレイ装置1は、HDD30に対するデータの記憶を制御するDKC10にCM130を有し、ホスト2からのI/O要求に応じてHDD30に対するデータI/O処理を行う。HDD30では延命処理による応答不能状態が発生し得る。DKC10は、DB60の情報に従って、受領したI/Oにおける特定I/Oパターンの判定と、特定I/Oパターンに関連するクリティカルI/Oの対象データ32を対象とした、CM130を用いた事前のキャッシュ制御とを実行する。クリティカルI/O要求時には、CM130上のキャッシュ常駐化データ33を用いて応答する。
【選択図】 図4

Description

本発明は、ハードディスクドライブ(HDD)等の記憶装置と、前記記憶装置に対するデータの記憶を制御する記憶制御装置(以下、DKCとも称する)とを有しRAID制御が可能なディスクアレイ装置(ストレージ装置ともいう)に関し、特に、キャッシュメモリ(以下、CMと略称する)を利用してデータ入出力(I/O)の性能を向上する技術、及び、システム信頼性を向上させる技術に関する。
(1) 外部記憶装置としてのディスクアレイ装置は、通信手段を介して通信接続されるホストコンピュータ(以下、ホストとも称する)等の他装置からのI/Oの要求や命令に応じてディスクアレイ上の記憶ボリュームに対してデータを記憶する応答処理を行う機能を提供する。
従来、ディスクアレイ装置のDKCにCMを備えた構成において、記憶装置のディスクに対するI/OデータをCM上にキャッシュしておくことでホストからディスクへのデータI/Oの効率を向上させるキャッシュ制御が行われている。
また前記キャッシュ制御に関しては、特に、ホスト等からの指示に従って、CM上に指定データを常駐化しておく状態にすること(以下、キャッシュ常駐化オンと称する)及び逆にその常駐化しておく状態を解除すること(以下、キャッシュ常駐化オフと称する)が可能であった。当該CM上に常駐化されたキャッシュデータに対するホストからのI/Oでは、ディスクアクセスを必要とせずに応答処理可能なためにI/O効率が良い。
特許文献1には、外部記憶装置におけるキャッシュ制御の技術例が記載されている。
(2) また、ディスクアレイ装置においては、HDDに対するインタフェース(以下、ドライブI/F等と称する)として、SCSIやFibreChannel(以下、FCと称する)などの、単一種類のドライブI/Fによる複数台のHDDを使用した装置があった。あるいは、インタフェース変換機構を用いて、異なるドライブI/Fによる複数種類のHDDを混在して使用した装置などがあった。ドライブI/Fによってドライブ単体の信頼性が異なる。例えば、FCインタフェースのHDD(以下、FCドライブと称する)などのような信頼性の高いHDDや、FCよりもやや信頼性の低いシリアルATA(以下、SATAと称する)インタフェースのHDD(以下、SATAドライブと称する)などがある。データ重要性やアクセス頻度などに応じてその保存先ドライブを変える制御も知られている。FCドライブ使用の場合は信頼性などの面で利点があり、SATAドライブ使用の場合はコストなどの面で利点がある。
特開2001−27967号公報
(1) 前記SATAドライブ等のやや信頼性の低い記憶装置を使用したディスクアレイ装置であっても、ドライブ単体の寿命を延ばして信頼性を高める手段が考えられている。
(2) ただし、前記ドライブ単体の信頼性を高める手段を用いた場合、当該HDDは、例えば数秒間といった必要時間の間、DKC側からの通常のデータ読み書きのアクセス要求に対して対応することができない状態(以下、応答不能状態と称する)が発生し得る。このようにHDDで応答不能状態が発生し得る環境において、ホストからのデータI/O要求時にCM上に対象データが存在しない場合は、対象データを格納している該当HDDへのアクセスが発生するが、該当HDDが応答不能状態であった時は、応答遅延などが発生することになる。
(3) 一方、ホスト等からのディスクアレイ装置に対するI/Oの中には、そのI/O要求に対して数秒の応答遅延も許されないようなクリティカルI/Oも存在する。このような応答性の要求が厳しいI/Oを発行するホストシステムでは、ディスクアレイ装置側が、制限時間(以下、要求応答時間と称する)内にホストシステムに対して正常な応答を返すことができない場合、エラーやシステムダウン等の結果を引き起こし得る。すなわち、ホストからのクリティカルI/O要求をDKCで受信した時、そのアクセス先となるHDDで前記応答不能状態であったとすると、応答遅延などにより前記要求応答時間内に応答できなければ、前記エラー等の結果を引き起こしてしまう。前記ホストからのI/Oにおける要求応答時間がアクセス先HDDにおける応答不能状態の持続時間よりも大きい条件の場合は、応答不能状態の終了後に応答することで正常応答可能となる場合もあるが、逆の条件の場合は、応答遅延の発生などによって前記エラー等の結果を引き起こすことになる。
本発明は以上のような問題に鑑みてなされたものであり、その目的は、ディスクアレイ装置で、ホスト等からの応答性の要求が厳しいクリティカルI/Oに対しても、そのアクセス先となるSATAドライブ等の記憶装置での応答不能状態などの状態によらずに、前記応答遅延を発生させず前記エラーやシステムダウン等の結果を引き起こさずに応答でき、I/O性能とシステム信頼性の双方の向上を実現できる技術を提供することにある。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
(1)前記目的を達成するために、本発明のディスクアレイ装置は、1つ以上のHDD等の記憶装置と、記憶装置に対するデータの記憶を制御する記憶制御装置(DKC)とを有しRAID制御が可能で、DKCはCMを有し、ネットワーク等の通信手段を介して通信接続されるホスト等の他装置からのI/O要求に従って記憶装置の領域に対してデータをI/Oする処理を行うディスクアレイ装置であって、以下に示すように、定義情報に従って、I/Oパターンの判定に応じてホストからのクリティカルI/Oに対応するための事前のキャッシュ制御を実行する手段を備えることを特徴とする。
前記記憶装置では、I/O要求に対応した記憶装置の領域へのデータ読み書きのための、DKCからのアクセス要求に対する応答不能状態が、必要時間発生し得る構成である。前記クリティカルI/Oとは、特に、ホスト等からのI/Oにおいて、その要求応答時間がアクセス先の記憶装置における応答不能状態の持続時間よりも短く、応答遅延の発生が問題を引き起こし得るものを指す。
また、前記I/O要求を発行するホスト及びそのホスト上で稼動するプログラム等を含んで構成されるホストシステムがあり、ホストシステムからディスクアレイ装置に対して通常のI/Oの他に前記クリティカルI/O要求が発行され得る。本ディスクアレイ装置は、このようなホストシステムを含む他装置からのI/Oを処理する。
前記記憶制御装置におけるクリティカルI/Oの識別や推定は、前記定義情報における特定のI/OパターンとクリティカルI/Oとの関連付けに従って行われる。この関連付けは、ホストシステムからのI/Oに関する、ディスクアレイ装置または外部装置における、事前または事後の評価・解析などにより行われる。本ディスクアレイ装置は、ホストシステムから特定のI/Oパターンを受領した場合、前記定義情報における関連付けに従って、それら受領した特定のI/Oを、あるいはその後に続けて受信することになるI/Oを、クリティカルI/Oであるものと識別や推定する。I/Oにおける要求応答時間がディスクアレイ装置にとって未知であっても、前記関連付けによってクリティカルI/O対応可能となる。
前記記憶制御装置は、前記定義情報に従って、I/Oにおける特定のI/Oパターンの判定と、前記特定のI/Oパターンに関連するクリティカルI/Oの対象データを対象とした、前記キャッシュメモリを用いた事前のキャッシュ制御とを実行する。そして、前記クリティカルI/Oが実際に発生した時には、前記キャッシュメモリ上の前記キャッシュ制御されている前記対象データを用いて応答する。
本ディスクアレイ装置は、実際にホストを含む他装置から受領した1つ以上のI/OからなるI/OシーケンスにおけるI/Oパターン(実I/Oパターンとする)について、ディスクアレイ装置内などに保持するデータベース(以下、DB)に登録されている定義情報をもとにした判定により、特定のI/Oパターンを抽出する。
前記I/Oパターンの判定及び抽出は、例えば、I/Oシーケンスにおける実I/Oパターンと、前記DBに確定的な情報として格納されている、ホストシステムに対応付けられた参照項となるI/Oパターン(確定I/Oパターンとする)の情報とを比較して、一致するか否かを判定することによる。
前記DBは、確定I/Oパターンの情報とそれに対応付けられたキャッシュ制御情報とを含む。また更に前記確定I/Oパターンの情報に対して、ホストシステム及びクリティカルI/Oを表わすホスト情報が対応付けられていてもよい。前記キャッシュ制御情報は、特定のデータについてどのようなキャッシュ制御を実行するかを対応付けて指示する情報であり、例えば、制御対象データを示すアドレス情報と、キャッシュ制御の内容を示す情報とを含む。前記キャッシュ制御の内容は、キャッシュ常駐化制御、すなわち制御対象データをCM上にキャッシュ常駐化オンの状態にする制御などである。
(2) また、本発明の他のディスクアレイ装置は、更に、前記I/Oパターン判定のために、ホストを含む他装置からのI/OについてのI/Oトレースの採取を行う手段を有する。例えば、ディスクアレイ装置に接続される、ディスクアレイ装置の保守・管理処理を担当するプロセッサを持つ管理装置(以下、SVPとする)から、オペレータ操作などを通じて、DKCに対して、前記I/Oトレースの採取の開始と終了の指示などを発行する。前記指示に応じてDKCで採取対象時間内のホストからのI/Oトレースを採取し、採取した情報を、ディスクアレイ装置内または前記SVPに、ホスト情報などを付加して保持する。採取した情報は、前記I/Oパターンの判定やあるいは外部装置への回収などに用いる。
(3) また、本発明の他のディスクアレイ装置は、更に、I/Oシーケンスにおける実I/Oパターンと前記確定I/Oパターンとの比較において、類似性の判定を行い、類似性に応じたキャッシュ制御を適用する手段を備える。DKCは、実I/Oパターンに確定I/Oパターンとの比較で許容範囲内の類似性が見られる場合は、その類似性有りのI/Oパターンについて、該当確定I/Oパターンに対応するキャッシュ制御情報を適用してキャッシュ制御を実行する。ディスクアレイ装置内に、類似性判定用情報と、I/Oパターンの類似性有無による登録内容の異なるDBを保持する。例えば前記確定I/Oパターン等の情報を確定DBとして保持し、類似性有りのI/Oパターンを含む情報を追加DBとして保持する。
(4) また、本発明の他のディスクアレイ装置は、更に、ディスクアレイ装置で採取したI/Oトレースまたは抽出したI/Oパターンまたは前記DBまたは定義情報などの、本クリティカルI/Oに関する制御に係わる関連情報を、外部の保守センタ等における装置へと、ネットワーク等の通信手段及びSVP等を介して回収する手段を有する。例えば、前記SVPの処理を介して、ディスクアレイ装置で取得・保持している前記I/Oトレースなどの関連情報を、SVPへと回収し、更に、SVPから通信手段を介して前記保守センタの装置へと送信して回収する。保守センタの装置または保守センタに接続される検証センタの装置などの外部装置に、1つ以上のディスクアレイ装置からの前記関連情報を回収する。そして、前記外部装置で、回収した情報を利用して検証・解析などを行うことにより、ホストからのI/Oパターンの情報及びそのI/Oパターンに対して有効なキャッシュ制御情報などを作成または更新する。
(5) また、本発明の他のディスクアレイ装置は、更に、前記外部装置で回収した情報をもとに作成した前記DBの最新の定義情報を、ディスクアレイ装置または前記SVPへと送信してディスクアレイ装置内に保持するDBへと反映して更新する手段を有する。本手段により、前記ディスクアレイ装置で保持する確定DBが更新される。
(6) また、本発明の他のディスクアレイ装置は、更に、前記外部装置に通信手段及び前記SVP等を介して接続される、本クリティカルI/Oに関する制御を行う手段を備える複数のディスクアレイ装置を有する構成のもとで、前記外部装置から複数のすべてまたはその一部のディスクアレイ装置に対して、前記更新されたDBの情報を、通信手段及びSVPなどを通じて送信し配布する。そして、前記更新されたDBの情報を配布されたディスクアレイ装置は、それを、ディスクアレイ装置で保持しているDBの情報に反映して更新する。新たな定義情報が、複数のディスクアレイ装置に対してまとめて適用される。
(7) 前記記憶装置の状態として、通常のI/Oのアクセス要求を受け付けて処理可能な応答可能状態以外に、前記通常のI/Oを受け付けず処理不可能な応答不能状態がある。記憶装置での応答不能状態の例として、SATAドライブで備える延命処理機能により、自動的な延命処理を実行中の状態がある。記憶装置は、前記延命処理では、必要時間でディスクに対するシーク動作を行う。
(8) 前記クリティカルI/Oを発行するホストシステムは、例えば、通信接続される複数のホストを有し、ディスクアレイ装置の機能を利用してクライアントコンピュータに対するサービスを提供するクラスタシステムである。あるいは、特定のOSやアプリケーションやミドルウェアなどのプログラムが稼動するホストである。前記クラスタシステムのホストからのクリティカルI/Oとして、複数のホストからの、ディスクアレイ装置内に設けられている共有ディスクに対する、優先制御のためのI/Oがある。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、ディスクアレイ装置で、ホスト等からの応答性の要求が厳しいクリティカルI/Oに対しても、そのアクセス先となる記憶装置での応答不能状態などの状態によらずに、前記応答遅延を発生させず前記エラーやシステムダウン等の結果を引き起こさずに応答でき、I/O性能とシステム信頼性の双方の向上を実現できる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。図1〜10は、本発明の各実施の形態におけるディスクアレイ装置1を説明するための図である。
以下、実施の形態1のディスクアレイ装置1で備える、ホスト2側からのI/Oパターンの判定に応じてクリティカルI/Oに関するキャッシュ制御を行う手段を、第1の手段と称する。また、ホストシステムとは、ホスト2を含んで構成される何らかのコンピュータシステムを指している。また、クリティカルI/Oとして、ホスト2からI/O要求が発行されてDKC10で受信され、これに対応するI/O応答処理が行われるものを対象として説明する。また、ディスクアレイ装置1において、延命処理機能を備えるSATAドライブを有する構成で、SATAドライブ以外のFCドライブ等の記憶装置が混在して接続される構成が可能であるが、簡単のため、この場合であってもSATAドライブに注目して考える。また、通常、複数のHDD30からなるディスクアレイに対するRAID制御が行われるが、簡単のため、この場合であってもI/Oアクセス先となる1つのSATAドライブに注目して考える。
(実施の形態1)
図1〜10を参照して、本発明の実施の形態1におけるディスクアレイ装置1を説明する。実施の形態1では、ハードウェア及びソフトウェアにより構成される第1の手段により、DKC10は、ホスト2からの実I/Oパターンについて確定I/Oパターンと比較する判定を行って特定I/Oパターンを抽出し、特定I/Oパターンに対応付けられたキャッシュ制御情報に従って事前のキャッシュ制御を実行し、その後のホストシステムからのクリティカルI/Oに対して前記キャッシュ制御されたデータを用いて応答する。
<ディスクアレイ装置ハードウェア(1)>
図1(a),(b)は、ディスクアレイ装置1の全体のハードウェア外観構成を示す図である。本構成は本発明の各実施の形態で共通である。ディスクアレイ装置1は、例えば1つの基本筐体と複数の増設筐体とから構成することができる。図1(a)は、装置後面及び各筐体間の接続構成を示す。基本筐体11と2つの増設筐体12とを示す。各筐体に対し、電源ケーブル13でAC電源が入力される。制御ボード111はインタフェースケーブル15で外部装置と接続される。図1(b)は、装置前面を示す。基本筐体11では、複数のHDD30がHDU(HDDユニット)の形で接続され、またバッテリーユニット114が接続される。増設筐体12では、複数のHDD30がHDUの形で接続される。
基本筐体11は、ディスクアレイ装置1の最小構成単位であり、DKC10などが担う記憶制御機能を備える。増設筐体12は、ディスクアレイ装置1のオプション単位であり、記憶機能を備える。記憶制御機能は、記憶機能を制御する。各筐体には、ディスクアレイ装置1の各種機能を提供するボード(基板)やユニットが装着される。各ボードやユニットは、必要に応じて着脱が可能である。
各筐体は、筐体内に設けられたバックプレーンボードで、筐体内の各ボードやユニットを相互接続する。各筐体は、複数のHDUを装着するための内部構造を有する。各HDUの装着位置において、HDUの挿抜のためのガイドレール等の構造が設けられている。各HDUの装着位置において、保守員等により、HDUの挿抜が自由に可能となっている。HDUのHDD30のコネクタ部分とバックプレーンボードに設けられているコネクタ部分とを接続することで装着状態となる。
基本筐体には、DKC10を構成する制御ボード111、ファンユニット112、AC/DC電源ユニット113、バッテリーユニット114等が装着される。AC/DC電源ユニット113は、入力AC電源に接続され、筐体内各部に対してDC電源を供給する。バッテリーユニット114は、データ入出力の性能向上を図るために使用されるキャッシュメモリに電力を供給する。ファンユニット112は、筐体内への送風により空冷する。電源供給に関するセキュリティを確保するために、AC/DC電源ユニット113等を2系統化した構成としている。
制御ボード111は、後述するCHA110やCM130等の各機能が実装されている。各機能を制御ボード111とは別のボードまたは制御パッケージとして基本筐体に対し装着可能としたディスクアレイ装置形態も可能である。
増設筐体12は、複数のHDUを並べて挿抜可能に接続・収容する。前記HDUは、HDD30を含んで、キャニスタ等の、装着のための機械的構造を備えて一体的にモジュール化されたものである。HDD30における記憶領域単位を、LBA(ロジカルブロックアドレス)に対応したブロック単位とする。
増設筐体12には、増設筐体12内にある電源や筐体を管理する筐体管理部301があり、筐体間ケーブル14を通じて、基本筐体11の制御ボード111に接続される。筐体管理部301は、増設筐体12内の電源状態監視や、HDD30の状態監視などを行う回路が実装されている。
<情報処理システム>
図2は、ディスクアレイ装置1を含んで構成される情報処理システムの全体の構成を示すブロック図である。本情報処理システムは、ディスクアレイ装置1,1B、複数のホストコンピュータ(ホスト)2、クライアントコンピュータ8、ネットワーク41、クラスタサービス用ネットワーク42、クラスタ間ハートビート用ネットワーク43、保守センタ51、検証センタ52を有する。
ネットワーク41を介して、ホスト2とディスクアレイ装置1,1Bが通信接続される。ホスト2は、ネットワーク4を介してディスクアレイ装置1に対してアクセスし、ディスクアレイ装置1の記憶ボリュームに対してデータを入出力する。ネットワーク41において、ディスクアレイ装置1以外には他のディスクアレイ装置が接続されなくともよいし、複数の同様のディスクアレイ装置が接続されてもよい。ディスクアレイ装置1Bは、ディスクアレイ装置1と同様に第1の手段を備えるが、それ以外については異なる機能を備えてもよい。
ネットワーク41は、例えばFCプロトコルに準拠した1つ以上のスイッチ等の通信機器により構築されたSAN(Storage Area Network)であり、ネットワーク41を介して行われる通信は、例えばFCプロトコルに従って行われる。その場合、ホスト2の備えるHBA(ホストバスアダプタ)とCHA110は、FCプロトコルに従った通信処理機能を備える。ネットワーク41でFCプロトコルに従って通信が行われる場合には、送受信されるデータは、所定のデータ長ごとに1つ以上のデータブロックに分割され、データブロックを単位として制御される。この場合、ホスト2からディスクアレイ装置1に対して、FCプロトコルに従ってブロック単位のデータI/O要求(ブロックアクセス要求)が送信される。
また、DKC10は、ネットワーク41を介して他のディスクアレイ装置1BのDKC10とも通信接続可能である。この場合も同様に、例えばFCで通信処理される。また、ホスト2とDKC10を接続するネットワーク41は、DKC10間を接続するネットワークと、通信可能に接続された同一ネットワークとしてもよいし、別ネットワークとしてもよい。また、ネットワーク41及びFC以外の通信手段を用いて通信接続されてもよい。例えば、ホスト2とDKC10の間の通信は、FICON(Fibre Connection)(登録商標)やESCON(Enterprise System Connection)(登録商標)等のメインフレーム系のプロトコルを用いてもよいし、TCP/IPなどのプロトコルを用いてもよい。また、複数種類の通信手段を用いてそれぞれ独立して通信接続されてもよい。
また、ネットワーク41または他の通信手段を介して、各ディスクアレイ装置1,1BのSVP160と保守センタ51とが通信接続される。保守センタ51と検証センタ52も通信接続される。保守センタ51、検証センタ52内には、通信機能を有するコンピュータを有する。
また、複数のホスト2とクライアントコンピュータ8とが、クラスタサービス用ネットワーク42で通信接続される。また、ホスト2間が、クラスタ間ハートビート用ネットワーク43で通信接続される。複数のホスト2でクラスタシステムが構成されており、ホスト2はクライアントコンピュータ8に対してクラスタサービスを提供する。
ディスクアレイ装置1は、DKC10と、HDD30群を含んだDKU(ディスクユニット)と、SVP160とを有する構成である。ディスクアレイ装置1内の少なくともいずれか1つの場所には、第1の手段による制御に用いるDB60を保持している。SVP160は、各DKU10に対して内部LANを通じて通信接続され、また外部の保守センタ51に通信接続される。
DKC10は二重化構成(論理的クラスタ構成)であり、同機能のDKC(A)とDKC(B)を有する。DKC10間で通信可能に接続されている。一方のDKCが障害等によりダウンした際でも他方のDKCの稼動継続によりサービス提供が維持できる。
各DKC10は、接続網190を介してDKU内の各HDD30と接続され、HDD30上の記憶ボリュームのデータに対して、RAID制御を含むアクセスが可能である。
DKC10は、CPU101、ホストI/FであるCHA(チャネル制御部)110、キャッシュ制御に用いられるCM130、ドライブI/FであるDKA(ディスク制御部)140を含んで構成されている。
図1中のa1は、ホスト2からディスクアレイ装置1の記憶ボリュームのデータ32を対象としたI/Oを示す。データ32はクリティカルI/O対象と共にキャッシュ制御対象ともなる。a2は、I/O(a1)における、ホスト2からディスクアレイ装置1に対するI/O要求を示す。a3は、I/O(a1)における、ディスクアレイ装置1からホスト2に対するI/O応答を示す。I/O(a1)は、DKC10のCHA110、CM130、DKA140を介した、SATAドライブ上のデータ32の読み書きである。DKC10は、CHA110を介したホスト2からのI/O要求(a2)の受信に応じて、そのI/O対象のデータ32を、CM130及びDKA140を介してSATAドライブに対して読み書き処理し、I/O応答(a3)をホスト2へ返す。例えば、DKC10は、I/O要求(a2)であるReadコマンドに応じて、CM130上またはアクセス先のSATAドライブからデータ32を読み出し、I/O応答(a3)として返す。またDKC10は、I/O要求(a2)であるWriteコマンド及び書き込みデータに応じて、CM130上またはアクセス先のSATAドライブに対して書き込みデータを書き込み、書き込みした旨をI/O応答(a3)として返す。
ホスト2は、CPU、メモリ、通信インタフェース部などを備える、ディスクアレイ装置1に対するI/Oを行う上位装置であり、例えばPC、ワークステーション、サーバ、メインフレームコンピュータといった形態の情報処理装置である。ホスト2は、前記CPUにより各種プログラムが実行されることにより、ホストとしての様々な機能が実現される。ホスト2は、ディスクアレイ装置1に対するデータI/Oのアクセスを行うためのソフトウェア(管理プログラムと称する)と、ディスクアレイ装置1に対するアクセスを利用して情報処理サービスを行うためのアプリケーションプログラム等とを備える。ホストシステムは、ホスト2上に何らかのOSやアプリケーションやミドルウェア等がインストールされたものであり、本実施の形態ではクラスタソフトウェアをインストールした複数のホスト2からなるクラスタシステムである。
ホスト2では、前記CPUが全体の制御を行い、前記メモリに記憶されるプログラムを実行して各種機能を実現する。前記CPUがアプリケーションプログラムを実行することにより情報処理サービスの提供が行われる。また前記CPUが管理プログラムを実行することにより、ディスクアレイ装置1で扱う記憶ボリュームについての管理が行われる。例えば、HDD筐体300側に備える記憶ボリュームやそのLUNを設定して対応付けるためのコマンドを、DKC10に対して送信可能である。
クライアントコンピュータ8は、CPU、メモリ、通信インタフェース部などを備える、ホスト2に対するクラスタサービスアクセスを行う、例えばPC等の情報処理装置である。
SVP160は、ディスクアレイ装置1を保守・管理処理するためのプロセッサを持つコンピュータであり、ディスクアレイ装置1に内蔵または外部接続される形態である。本例では、ディスクアレイ装置1の構成の一部として、DKC10に対してLANコントローラ105を通じてSVP160が接続される形態である。オペレータによるSVP160の操作により、例えばDKUの物理ディスク構成やLUの設定、CHA110等において実行されるプログラムのインストール等の処理が可能である。また、SVP160は、ディスクアレイ装置1の保守・管理を専用に行うコンピュータの形態や、汎用コンピュータに保守・管理機能を持たせた形態などが可能である。本実施の形態では、SVP160と通信接続される保守センタ51との間で、DKC10で採取した情報やDB60の情報などが授受される。
SVP160は、CPU、メモリ、ポート、記録媒体読み取り装置、入力装置、出力装置、記憶装置などを備える。前記CPUが全体の制御を行い、前記メモリに記憶される制御プログラム161を実行して保守・管理機能を含む本発明に係わる制御を実現する。前記メモリや記憶装置に、前記本発明に係わる制御で使用する各種情報が記憶される。前記ポートはディスクアレイ装置1の内部LANや外部ネットワークなどに対し接続され、これによりDKC10内の処理部や外部装置と通信可能である。前記入力装置、出力装置、記録媒体読み取り装置などを利用してオペレータが操作を行う。
<ディスクアレイ装置ハードウェア(2)>
次に、図3は、ディスクアレイ装置1のより詳細なハードウェア構成例を示すブロック図である。1つのホスト2と一方のDKC(A)10との接続のみを示す。また、外部には、SVP160を介して、保守センタ51等が保持する確定DB60Aがある。ディスクアレイ装置1内で保持するDB60の情報は、この外部の確定DB60Aをもとに構成された情報である。
DKC10に対して、DKA140及び接続網190を介して、HDD筐体300内の各HDD30が通信接続される。また図示しない内部LANで、DKC10内のCHA110やDKA140等の各部とSVP160とが接続されている。HDD筐体300が接続網190を介して1つ以上接続される構成であり、これが前記DKUに対応する。
<DKC>
DKC10は、CPU101、システムメモリ102、フラッシュメモリ103、CPU/PCIブリッジ104、LANコントローラ105、CHA110、CM130、DKA140、DC(データコントローラ)150を有する。また、DKC10内のいずれかのメモリ上に確定DB60Aと追加DB60Bを保持している。
DKC10内各部は互いにバスを介して接続されている。バスは、例えば、PCIバスである。バスで伝送されるデータの単位はワードと呼ばれる。当該バスは、勿論PCIバス以外のバスであってもよい。また1ワードは32ビットに限らず、8/16/64/128ビットなどの単位とすることができる。
CPU101は、ディスクアレイ装置1の全体を制御するもので、システムメモリ102やフラッシュメモリ103に格納されたプログラムを実行することにより、HDD30の管理やブロックアクセス要求の解釈などの様々な機能を実現する。システムメモリ102は、CPU101により使用され、主に制御プログラムや制御情報や処理データなどが格納される。フラッシュメモリ103は不揮発性メモリであり、CPU101が実行するプログラムや設定情報などを格納する。CPU/PCIブリッジ104は、CPU/PCIのバスブリッジであり、CPU101、システムメモリ102、フラッシュメモリ103、LANコントローラ105、DC150を接続する。LANコントローラ105は、CPU/PCIブリッジ104に接続され、内部LANを通じてDKC10内各部とSVP160側との通信接続を行う。
CHA110は、ホスト2や他のディスクアレイ装置1B等の他装置との間での通信処理を行うインタフェースを備え、他装置とDKC10内の処理部との間でデータを授受する。CHA110は、ホストI/F部とも呼ばれる。CHA110として、例えばホストI/Fに応じた種類のものを1つ以上用意して使用可能である。本例では、CHA110は、FCプロトコルに従ってブロックアクセス要求を受け付ける機能を備える。CHA110は、SAN(ネットワーク41)の通信形態によって、例えば、iSCSIなどのプロトコルによるブロックアクセス要求を受け付けるようにすることもできる。
CHA110は、例えばインタフェース部、プロセッサ、メモリ等を備える構成である。前記インタフェース部は、ネットワーク41を介したホスト2等との通信処理や、DC150を介したDKC10内各部との通信処理を行う。前記プロセッサは、CHA110の制御を行うと共に、各部との通信を行う。前記プロセッサにより前記メモリに格納されたプログラムが実行されることにより、CHA110としての機能が実現される。
DKA140は、HDD筐体300側のHDD30との間でデータの授受を行うインタフェースを備え、HDD30とDKC10内の処理部との間でデータを授受する。DKA140は、ドライブI/F部またはディスクI/F部とも呼ばれる。DKA140は、HDD30を制御するコマンドなどを規定するプロトコルに従ってHDD30に対するデータI/O要求を送信する機能を備える。DKA140は、例えば、ドライブI/Fに応じたSCSIやFCやSATAなどのプロトコルに従って、HDD30に対してデータの書き込みや読み出しのコマンドを送信することができる。DKA140として、例えばドライブI/Fに応じた種類のものを1つ以上用意して使用可能である。
DKA140は、インタフェース部、プロセッサ、メモリ備える構成である。前記インタフェース部は、接続網190を介したHDD30側との通信処理や、DC150を介したDKC10内各部との通信処理を行う。本例では、DKA140とSATAドライブ(30)との間で、SATAプロトコルに従った処理が行われる。前記プロセッサは、DKA140の制御を行うと共に、各部との通信を行う。前記プロセッサにより前記メモリに格納されたプログラムが実行されることにより、DKA140としての機能が実現される。
CM130は、CHA110とDKA140の間で授受されるデータ(ホスト2からのI/Oデータを含む)を記憶するための、DKC10内で共用されるメモリであり、特にキャッシュ制御にも用いられる。CM130上に確保される領域には、キャッシュ制御されるデータがキャッシュデータとして記憶される。CM130は、例えば、メモリ基板及びメモリ制御回路を備えた制御パッケージとして構成される。
DC150は、CPU101の制御により、CHA110、CM130、DKA140、CPU/PCIブリッジ104等を相互接続してデータ転送する接続部を構成する回路である。DC150は、例えば、特定用途向けICにロジックを形成した回路とすることができる。CPU101、CHA110、CM130、DKA140などの間でのデータやコマンドの授受は、DC150を介して行われる。
DKA140は、システムディスク90、及びDB60としての確定DB60Aと追加DB60Bに対して、アクセス可能である。なおシステムディスク90及びDB60がDKC10内にあるように図示しているが、HDD30上の記憶ボリュームとして保持して、DKA140がDKC10のいずれかのメモリ上に読み出して使用する形態が可能である。CPU101、CHA110等も、DKA140を介してシステムディスク90やDB60にアクセス可能である。またDKUではなくSVP160内にDB60を保持する形態も可能である。
システムディスク90は、DKC10で実行する制御プログラム91を含んでいる。DB60は例えばシステムディスク90内に管理される。CPU101は、制御プログラム91を実行することで、第1の手段による制御を実現する。SVP160も、自身が有するプロセッサにより制御プログラム161を実行することで、第1の手段による制御に関連する制御を実行する。
なお、CHA110とDKA140の間でのデータI/Oの処理の指示を、CPU101を介在させて行う構成の他に、CHA110とDKA140の間で直接的に行う構成とすることもできる。また、CHA110とDKA140の機能を両方持たせた処理部構成とすることも可能であり、CHA110がHDD30側に対するデータ読み書きを行うようにすることもできる。また、CM130がCHA110とDKA140に対して独立に設けられた構成に限らず、CHA110等の各々に分散されて設けられた構成も可能である。
<DKU>
HDD筐体300内には、HDD30として、SATAドライブ、FCドライブ等の混在が可能であるが、本実施の形態では簡単のため、SATAドライブのみが接続されている。接続網190は、SATAドライブに対するアクセスに対応したものである。
記憶ボリュームは、HDD30により提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む、データを記憶するための記憶資源をいう。論理ボリュームを特にLU(論理ユニット)とも称する。複数のHDD30からディスクアレイが構成され、ホスト2に対する記憶領域を、RAID制御により管理されたRAIDグループとして提供可能である。各記憶ボリュームには、LUN(論理ユニット番号)等の固有の識別子が付与されて管理され、LUN指定による記憶領域を提供可能である。ホスト2からディスクアレイ装置1に対するI/O要求には、I/O対象を指定するためのLUNやLBAが記述される。
HDD筐体300内に、筐体管理部301、DPA(Dual Port Apparatus)302、HDD(SATAドライブ)30が、接続網190のラインを通じて接続されている。
筐体管理部301は、HDD筐体300内の動作状況を収集して保持しておき、DKC10からのHDD筐体動作状況報告要求を処理するインタフェースを持つ。前記HDD筐体300内の動作状況とは、HDD30、電源ユニット、ファン等の各要素の状況である。
なお、ドライブI/Fが混在した構成とする場合は、DKC10やDKU内などに必要なインタフェース変換機構を設けることで、DKC10のDKA140とHDD30とのインタフェースが異なる場合も変換処理により対応できる。例えば、接続網190上にFCとSATAとのインタフェース変換機構を設けることで、FCインタフェース対応のDKA140からFCプロトコルに従ったアクセスが行われても、SATAインタフェースへの変換によってSATAドライブで応答が可能である。また例えばDKC10内にFCプロトコルに従った処理を行うFCチップなどを設けた形態も可能である。
DPA302は、シングルポートのSATAドライブに繋がるパスの変換を行い、デュアルポート化する回路である。一般に、SATAドライブは、ドライブI/Fポートを1つ(シングルポート)しか有さない。しかし、ディスクアレイ装置では、多くの場合、DKC10またはドライブI/Fを二重化した構成である。そのため、HDD30へのアクセスパスは接続網190において2経路存在する。このため、DKC10側からのパスをSATAドライブに接続する際に、DPA302でパスの変換、すなわち2ポートから1ポートへの変換を行う。SATAドライブは、FCドライブ使用の場合と同様に、接続網190のいずれのパスからのアクセスも受け入れ可能となる。
FCドライブの場合、ドライブI/Fポートを2つ(デュアルポート)有するものがあり、それらをディスクアレイ装置1で使用する場合、DPA302は不要となる。デュアルポート化されているFCドライブは、DKC10側からFCドライブに対して2つのパスからの読み書きが可能である。また、FCドライブでは、SCSI3(Small Computer System Interface 3)規格に規定されるSES(SCSI Enclosure Service)やESI(Enclosure Service I/F)の機能を備える。SESとは、電源、冷却デバイス、インジケータ、個々のHDD、スイッチなどHDD筐体300内に搭載された種々の要素の作動状況を監視することや、ステータスの読み取りに使用されるソフトウェア仕様である。ESIは、SESコマンドおよびその結果を授受するためのハードウェアインタフェースである。SESおよびESIを使用することにより、例えば、各HDD30の作動状況を確認することが可能となる。
本実施の形態では、SATAドライブであるHDD30はシングルポートであり、FCの場合のようなSESやESIの機能を有していない。ただし、これらの機能を有するSATAドライブの適用を排除するものではない。
上記のようにFCドライブはSES機能を備えているのに対し、SATAドライブはこの機能を備えていない。SATAドライブを収容するHDD筐体300は、この差違を補うために、筐体管理部301が設けられている。
筐体管理部301は、内部にCPU、メモリ、キャッシュメモリなどを備えたマイクロコンピュータであり、HDD筐体300内部の各HDD30から、ディスク種別、アドレス、動作状態、その他の管理情報を収集する。筐体管理部301は、収集した情報を、DKC10からのSESコマンドに応じて、DKC10に提供する。
FCドライブ使用の場合は、FCドライブは、PBC(Port Bypass Circuit)を介して2つのFC−AL(Arbitrated Loop)である接続網190にそれぞれ接続される。
<通常のデータI/O処理>
ディスクアレイ装置1における通常のデータI/O処理の手順は従来通りであり、ホスト2からのWrite/Readコマンドに応じたディスクアレイ装置1での記憶ボリューム(HDD30)に対するデータのWrite(書き込み)処理/Read(読み込み)処理は、例えば以下である。CPU101、CHA110、CM130、及びDKA140の間で、DC150を介してCM130にキャッシュを行いながらデータ転送処理される。
まず、Write処理は以下である。ホスト2が、HDD30に対する書き込みを要求するアクセス要求(書き込み要求と称する)をディスクアレイ装置1に送信する。ディスクアレイ装置1では、CHA110が書き込み要求を受け付け、DC150が書き込み要求に付随する書き込みデータをCM130に転送する。書き込みデータがCM130に転送されると、DC150がCM130からDKA140に書き込みデータを読み出し、DKA140が書き込み先のHDD30に対する書き込みを指示するコマンドを送信する。DKA140からコマンドを受け取ったHDD30は、書き込みデータをディスク領域に書き込む。
次に、Read処理は以下である。ホスト2がHDD30に対する読み込みを要求するアクセス要求(読み込み要求と称する)をディスクアレイ装置1に送信する。ディスクアレイ装置1では、CHA110が読み込み要求を受け付け、DC150が読み込み要求に付随する読み込みデータアドレスをDKA140に送信する。DKA140が読み込み先のHDD30に対する読み込みを指示するコマンドを送信する。コマンドに従ってHDD30から読み込まれた読み込みデータは、DKA140を経由してDC150がCM130に転送する。読み込みデータがCM130に転送されると、DC150がCM130からCHA110に読み込みデータを送信する。CHA110は読み込みデータをホスト2に送信する。
<クリティカルI/O制御>
図4は、ディスクアレイ装置1における第1の手段による制御に係わる処理のための構成を示す図である。
ホスト2からのI/OがクリティカルI/Oの場合でも、仮に、そのI/O対象データがDKC10のCM130上に格納されているならば、HDD30での応答不能状態による応答遅延を発生させずに、すぐに当該CM130上のデータを用いて応答が可能となる。そのために、本ディスクアレイ装置1では、DKC10において、ホスト2等から受信したI/O要求に対して応答するI/O処理に関して、当該I/Oのアクセス先となるHDD30における応答不能状態などの状態によって応答性能が制限されないように、ホスト2からのクリティカルI/O要求の発生の事前に、そのクリティカルI/Oの対象データ32またはそれに関連したデータ等を対象として、CM130上の領域にキャッシュまたはステージング処理しておく等のキャッシュ制御を行っておく。そうすれば、そのCM130上にキャッシュ制御済みのデータについては、クリティカルI/O発生時にも応答遅延無しで応答処理が可能となり、エラー等の結果を引き起こす心配が無い。
なお、前記ステージング処理は、キャッシュまたはキャッシュ常駐化のために、制御対象となるデータをHDD30側の領域からCM130上の領域へと読み出して格納しておく処理である。逆に、デステージング処理は、CM130上のキャッシュデータを本来のHDD30側の領域へと書き込んで反映更新する処理である。
本ディスクアレイ装置1は、DKC10において、I/O要求に対して応答するI/O処理に関して、ディスクアレイ装置1内などで保持する定義情報に従って、特定のI/Oパターンに対応付けられたキャッシュ制御を実行する。そのために、DKC10は、他装置からのI/Oの受領をもとに、ホスト2からのクリティカルI/Oに関連する、特定のI/Oパターンを、定義情報との比較に基づき判定して抽出し、判定された特定I/Oパターンに対応付けられるキャッシュ制御情報73に従って、実際のクリティカルI/O発生に備えた事前のキャッシュ制御を実行する。言い換えれば、特定I/Oパターンから、当該I/O発行側のホストシステム及びそのクリティカルI/Oについて推定される。例えば特定I/Oパターンの後に続けて受領されるI/Oが特定のクリティカルI/Oであると推定される。
ディスクアレイ装置1では、ホスト2からの1つ以上のI/O(a1)の受領をもとに、I/Oシーケンスにおける実I/Oパターンを、確定DB60Aに登録されている確定I/Oパターン情報72と比較して特定I/Oパターンを判定する。そして、ホスト2からの実I/Oパターンが、確定I/Oパターンと一致する場合は、そのI/Oパターンに対応したキャッシュ制御情報73に従って、キャッシュ制御を実行する。
キャッシュ制御として、特に、クリティカルI/Oの対象データ32を、CM130上の領域にキャッシュ常駐化オン状態にする制御を行う。例えば、I/Oパターン及びクリティカルI/Oの判定後、制御対象となるHDD30上の該当データ32を、LBAのブロック単位あるいは複数のブロックのデータセット単位、LU31単位などで、CM130上に確保される領域に読み出して記憶しておくステージング処理を行う。
DKC10は、特定I/Oパターン受領及びキャッシュ制御実行後にクリティカルI/O要求をホスト2側から受信した場合は、CM130上に対象I/Oデータ32がキャッシュ常駐化データ33としてキャッシュされているので、I/O要求に同期したディスクアクセスは実行されず、キャッシュ常駐化データ33を用いて応答処理できる。従って、HDD30の状態がたとえ延命処理実行中の応答不能状態などであっても、応答遅延を発生することなく当該クリティカルI/Oにおける要求応答時間内に応答できる。
上記のような制御を実行することで、特に、ホストシステムからのクリティカルI/Oに対してHDD30の状態によらないI/O性能優先の制御が実現され、エラーやシステムダウン等を引き起こさずにクリティカルI/Oが正常に応答処理されるので、システム信頼性が向上される。
実施の形態1では、DKC10において、特定I/Oパターンに適したキャッシュ制御情報73があらかじめDB60として組み込まれた構成である。例えば、本ディスクアレイ装置製品の開発段階で、ホスト2を含むシステム構成ごとにシステム評価・解析を行い、ホスト2からのI/Oパターンの規則性を導出し、そのI/Oパターンに応じて有効なキャッシュ制御情報73を作成しておく。I/Oパターン情報72とキャッシュ制御情報73との対応付け情報、更にはホスト情報71を含んだ情報をDB化して、それを確定DB60Aとし、ディスクアレイ装置1内に組み込んでおく。
図4で、CPU101は、制御プログラム91の実行により、I/Oトレース採取、I/Oパターン−クリティカルI/O判定、キャッシュ制御、延命処理制御の各処理を行う。CPU101以外のCHA110やDKA140等が各処理を行ってもよい。SVP160は、制御プログラム161の実行により、トレース採取指示、情報収集・回収、DB更新の各処理を行う(実施の形態2以下で行う)。保守センタ51及び検証センタ52に有する装置は、情報回収、情報検証、DB更新、DB配布の各処理を行う(実施の形態2以下で行う)。
DKC10において、前記I/Oトレース採取は、他装置からのI/Oに関するI/Oトレースを採取する処理であり、採取した情報はI/Oパターン判定などに用いられる。前記I/Oパターン−クリティカルI/O判定は、DB60を用いたI/Oパターン判定を含む処理であり、判定された特定I/Oパターンと、ホストシステム及びホスト2からのクリティカルI/Oとを対応付けるものである。前記キャッシュ制御は、I/Oパターン−クリティカルI/O判定の結果に基づきキャッシュ制御を実行する処理である。前記延命処理制御は、HDD(SATAドライブ)30での延命処理に関してDKC10側からHDD30に対するアクセス制御を行って延命処理を効果的にするための処理であるが、必須ではない。延命処理制御として、定期的にディスクアクセスを一時停止させる等の制御が可能である。
SVP160において、前記トレース採取指示は、DKC10に対してI/Oトレースの採取を指示する処理である。前記情報収集・回収は、前記I/Oトレースや追加DB60B等の情報をディスクアレイ装置1内からSVP160に収集し、更には外部の保守センタ51側の装置へ送信して回収させる処理である。前記DB更新は、ディスクアレイ装置1内のDB60を、保守センタ51側からの配布情報に基づき更新する処理である。
保守センタ51及び検証センタ52において、前記情報回収は、各ディスクアレイ装置1のSVP160から前記I/Oトレース等の情報を回収する処理である。前記情報検証は、前記回収した情報を検証してホストシステム評価・解析によってDB60のための定義情報を作成する処理である。前記DB更新は、前記情報検証により新たに作成した定義情報などにより確定DB60Aを更新し、更には再配布可能な形式の配布情報を作成する処理である。前記DB配布は、前記更新された確定DB60Aの配布情報などを管理下のディスクアレイ装置1のSVP160に対して配布する処理である。
DKC10内のDB60は、ホスト情報71、I/Oパターン情報72、キャッシュ制御情報73の各テーブルを含んでいる。CM130上には、通常I/Oのキャッシュデータの他に、キャッシュ常駐化データ33を格納するための領域が必要に応じて確保される。
SATAドライブであるHDD30は、延命処理機能を備える。このSATAドライブは、DKC10側からの通常のデータ読み書きのためのアクセス要求を受けていない状態において、自動的に延命処理を実行する。HDD30上には、LU31が設定され、LU31内のデータ32に対してI/Oが行われる。データ32は、特にクリティカルI/Oの対象となるデータとする。
ホスト2からCHA110に対して前記I/O要求(a2)が送信される。I/O要求(a2)に応じて、CM130上に該当キャッシュデータがない場合は、DKA140から、該当HDD30のLU31のデータ32に対して、a4で示すI/O(ディスクアクセスとも称する)が行われる。前記I/O要求(a2)に応じて、CM130上に該当キャッシュデータがある場合は、a6で示すキャッシュデータを用いた応答(キャッシュ応答と称する)が行われる。また、a5で示すキャッシュ制御に係わるアクセス(キャッシュ制御アクセスと称する)として、通常I/Oに関するキャッシュ制御または第1の手段におけるキャッシュ制御の実行に応じて、HDD30側のデータ32をCM130上の領域にキャッシュまたはステージング処理する場合に、DKA140の処理を介して、対象データ32がCM130上に確保される領域に読み出されて記憶される。第1の手段におけるキャッシュ制御として特にキャッシュ常駐化制御を実行する場合は、クリティカルI/Oに関連するLU31のデータ32が、キャッシュ常駐化データ33としてCM130上に常駐化される。
CPU101は、ホスト2からのI/O要求(a2)に対応したI/O(a1)を制御すると共に、I/Oパターン判定やキャッシュ制御の実行などを行う。システムメモリ102には、システムディスク90の情報やDB60の情報が読み出されて格納される。ディスクアレイ装置1の起動時などに、CPU101からの命令により、システムディスク90及びDB60の情報が、システムメモリ102上に読み込まれる。
CPU101は、CHA110経由で接続されたホスト2からのI/O要求(コマンド)を監視する。ホスト2からのコマンドを受信した場合は、受信コマンドを、システムメモリ102上のDB60のI/Oパターン情報72と比較することでI/Oパターン判定を行う。CPU101は、確定I/Oパターンと一致するシーケンスが発行されていると認識した場合は、そのI/Oパターンに対応したキャッシュ制御情報73に従って、DKA140の先のHDD30から、クリティカルI/O対象データ32またはその関連データを、CM130上にLBAのブロック単位で常駐化させる(a5)。そして、その後のホスト2からの当該データ32へのI/O要求(a2)については、CM130上のキャッシュ常駐化データ33を利用して応答処理する(a6)。
<HDDにおける延命処理>
DKC10のDKA140に接続された、DKU内のSATAドライブ(30)において、延命処理(長寿命化処理ともいう)機能を備える。接続状態のSATAドライブ(30)において、通常のデータI/Oのためのディスクアクセスが無い状態の時に、1回の延命処理が自動的に開始され、例えば5秒間といった必要時間で延命処理を終了する。この延命処理の実行中は、通常のI/O及びクリティカルI/Oのためのアクセス要求に対応できない応答不能状態である。
一例として、DKC10は、延命処理制御として、延命処理機能を有するSATAドライブ(30)に対するディスクアクセスを、一時的に停止してやる制御を行う。これにより発生した休みの間にSATAドライブ(30)で自動的に延命処理が実施されることとなり、延命処理機能を効果的なものにできる。例えば、最低で1時間ごとに1回といった定期的な間隔で一時的に停止してやる制御を行う。
延命処理の目的および機能の概要は以下である。SATAドライブ(30)は、微少な塵が特定トラック上に堆積しないようにするために、定期的にヘッドを移動させて微小な塵を吹き飛ばすアイドルシーク(idle seek)すなわち遊休状態・空運転でのシーク動作を行う機能を備えている。HDD内で円盤磁性面には潤滑剤が塗られており、その潤滑剤を均一化することを目的に、ヘッドのシーク動作を行っている。
SATAドライブ(30)における延命処理の動作スケジュールは、例えば以下である。HDD30は、通常、前回のアイドルシークの終了時から一定時間以上の時間が経過すると、アイドルシークの開始を試み、その時当該HDDに対するデータアクセスが行われていなければ、アイドルシークを開始する。しかし、その時丁度データアクセスが行われていれば、そのデータアクセスが終わった後に、再度アイドルシークの開始が試みられる。そしてアイドルシークが開始されると、必要時間で1回のアイドルシークが終了する。
このように、HDD30で行う延命処理などにより、HDD30でDKC10からのアクセス要求に対して応答不能状態である場合が発生する。
なお、HDD30自体で自動的に延命処理を実行する機能を備える構成以外にも、DKC10からHDD30に対してアクセス制御することで延命処理を行わせる構成も可能である。例えば、DKC10からSATAドライブ(30)に対して、定期的に、通常のI/Oとは別に、前記シーク動作の実行を指示して行わせる。この指示によって、短い時間で長寿命化効果を得ることができる。
FCドライブよりもやや信頼性の低いSATAドライブ(30)などを使用したディスクアレイ装置1の場合でも、上記のようなSATAドライブ(30)の備える延命処理機能を実行させてドライブ単体の寿命を延ばして信頼性を高めることができる。そのため、例えばFCドライブとSATAドライブの組み合わせのように信頼性の異なるHDD30が混在した構成でも、ディスクアレイ装置1として一定の信頼性を得ることが可能である。
<DB>
図5は、DB60に管理されている各テーブル情報の関係を示す。図6は、DB60の各テーブル情報の詳細な構成例を示す。DB60では、登録された定義情報の形で、特定I/Oパターンと、ホストシステムまたはクリティカルI/Oと、制御対象データと、キャッシュ制御内容とが対応付けられている。DKC10は、いずれかのメモリ上に、確定DB60A、追加DB60Bの情報を読み出して保持する。確定DB60Aには、ホスト情報71A、確定I/Oパターン情報72A、キャッシュ制御情報73Aを含む情報テーブルが格納されている。追加DB60Bには、ホスト情報71B、実I/Oパターン情報72B、キャッシュ制御情報73Bを含む情報テーブルが格納されている。
例えばホスト2からのI/OシーケンスがHDD30における特定のLBAに対するアクセスであることから特定のホストシステムが推定されるので、確定DB60Aでは、それを対応付けた定義情報が登録されている。例えば、システム評価・解析の結果、あるホストシステムでは、あるソフトウェアによって特定のLBAに対して所定のI/Oパターンでのアクセスが行われ、その後のアクセスがクリティカルI/Oになることがわかっている。よって、このような特定I/Oパターンに対応して、当該I/Oアクセス先のデータをキャッシュ常駐化オンの対象とするようにキャッシュ制御情報73を作成しておくことで、上記クリティカルI/Oに対応可能となる。
図5において、確定DB60Aの情報は、DKC10に参照されると共にSVP160により管理される。追加DB60Bの情報は、DKC10により作成・制御される。また、I/Oパターン情報72に関連して、類似性判定用情報74がある。なお、DB60は、ホスト情報71を介さずにI/Oパターン情報72とキャッシュ制御情報73とを直接に対応付けしておく形式でもよい。
確定DB60Aは、あらかじめ作成されている確定的な情報であり、例えばSVP160を介して管理される。追加DB60Bは、ディスクアレイ装置1での実際の稼動に応じて新たに作成した追加的または一時的な情報である。追加DB60Bとして作成された情報で有効なものを、確定DB60Aに反映させるために利用することもできる。
ホスト情報71A,71Bは、ホストシステムの特徴を表わす情報であり、SVP160等を介してオペレータが参照可能な形式である。I/Oパターン情報72は、I/Oパターン判定に使用されるデータであり、また更には実施の形態3における類似性判定のためにも使用されるデータである。実I/Oパターン情報72Aは、DKC10で実際に受領し抽出したI/Oパターンについての情報である。実I/Oパターン情報72Bは、I/Oトレース情報にも対応する。確定I/Oパターン情報72Bは、特定I/Oパターンを判定するための参照項となるI/Oパターンについての情報である。キャッシュ制御情報73A,73Bは、キャッシュ常駐化制御などのキャッシュ制御を指示する情報である。
類似性判定用情報74は、実施の形態3で用いるもので、実I/Oパターンと、I/Oシーケンスで示される確定I/Oパターンとが完全一致しない場合でも、類似性判定基準と許容値などに基づき、ある程度の許容範囲内での類似性がみられる場合は、該当確定I/Oパターンと一致するものとみなして同様のキャッシュ制御を適用するために用いられる。
図6において、確定DB60Aにおけるホスト情報71Aは、番号などのID(識別情報)、I/Oパターン情報インデクス、キャッシュ制御情報インデクス、その他に、ホスト2で稼動するOS名やバージョン、あるいはクラスタソフトウェア名やバージョンや、ミドルウェア名やバージョンなど、クリティカルI/O判定のための参考的な情報などが記述されており、DB60を管理する者が参照可能な形式となっている。I/Oパターン情報インデクスは、確定I/Oパターン情報72Aへのインデクス(あるいはリンクやアドレス)である。キャッシュ制御情報インデクスは、キャッシュ制御情報73Aへのインデクスである。
追加DB60Bにおけるホスト情報71Bは、追加されたホスト情報などが記述されており、番号などのID、確定DB−ホスト情報インデクス、実I/Oパターン情報インデクス、その他に、確定DB60Aと同様に、ホスト2で稼動するOSやクラスタソフトウェアやミドルウェアなどの情報が記述されている。確定DB−ホスト情報インデクスは、確定DBのホスト情報71Aへのインデクスである。実I/Oパターン情報インデクスは、実I/Oパターン情報72Bへのインデクスである。
実I/Oパターン情報72Bは、ホスト2からの受領I/Oに応じた実際のI/Oシーケンスが記録されている。I/Oシーケンスは、I/Oコマンドのシーケンスである。1つのI/Oコマンドは、I/Oの種別、LBA、間隔などの情報を有する。I/Oの種別は、Read、Write等である。LBAは、アクセス先となるHDD30のアドレスである。I/Oの間隔は、1つ前の受信I/Oコマンドとの時間間隔である。なお本実施の形態では、簡単のため、ホスト2以外からの受領I/Oを無視して考える。本例では、I/Oシーケンスの最初に、Readコマンドを受信しており、そのアクセス先LBAが「11000」であることを示す。次にWriteコマンドを受信しており、そのアクセス先LBAが「12000」であり、1つ前のReadコマンドと「0.1秒」の間隔で受信していることを示す。以後、Read、Write、Readの順で同様にコマンドを受信していることを示す。
図6に示す確定I/Oパターン情報72Aは、類似性判定用情報74をその中に含めた形式を示している。確定I/Oパターン情報72Aは、特定I/Oパターンごとのテーブルを持つ。特定I/Oパターンは、I/Oシーケンスで示されている。I/Oシーケンスは、時系列に沿った複数のI/O情報の項から構成されている。I/Oシーケンスの最初のI/Oの項(#1)が、I/OパターンにおけるトリガI/Oとなる。また、ここでの類似性判定用情報74は、類似性判定基準とそれに対応する許容値の情報から構成されている。
図6に示す確定I/Oパターン情報72Aにおける確定I/Oパターン例では、3つのI/O(#1〜#3)のシーケンスで1つのI/Oパターンを表わしている。I/OシーケンスにおいてI/Oごとに、ID、種別、LBA、間隔、割り込みの項を持つ。IDは、I/Oの識別番号などである。種別は、Read、Write等のコマンド種別である。LBAは、I/O先のアドレスである。間隔は、前のI/Oと当該I/Oとの受領の時間間隔である。割り込みは、前のI/Oと当該I/Oの間で別I/Oの割り込みが発生し得るか否か(許容するか否か)を示す。当該I/Oパターンにおいて割り込みを許容しない場合では、#1〜#3で示す各I/Oが別I/Oの受領なしに順に受領されることを示す。割り込みを許容する場合では、#1〜#3で示す各I/Oがその順で受領されれば、その間に別I/Oが受領されても構わないことを示す。
本例のI/Oパターンにおいて、第1のI/O(#1)すなわちトリガI/Oは、LBA「22」へのReadコマンドである。これはトリガI/Oなので間隔と割り込みの情報は持たない。第1のI/O(#1)の後、第2のI/O(#2)として、第1のI/O(#1)の8〜10秒後の間隔で、再び同じLBA「22」へのReadコマンドが続く。次に、第3のI/O(#3)として、第2のI/O(#2)から不定の時間間隔で、LBA「21」へのWriteコマンドが必ず来る。また第1、第2、第3のI/Oの間に別I/Oの割り込みを許容しないので、I/O(#1〜#3)が続けて受領される。
キャッシュ制御情報73Aでは、制御種別、キャッシュ常駐タイプ、常駐化先頭位置情報(先頭LBA)、常駐化末尾位置情報(末尾LBA)、プリロード属性などの情報を有する。キャッシュ制御情報73Bも同様の構成である。制御種別は、キャッシュ制御の種別やIDを示す。キャッシュ常駐タイプは、キャッシュ常駐化制御のタイプや状態などを示す。例えば、「1」でキャッシュ常駐化オンを、「0」でオフを表わす。常駐化先頭位置情報(先頭LBA)、常駐化末尾位置情報(末尾LBA)は、キャッシュ制御対象となるデータのアドレスや範囲などを示す情報として、例えばCM130上に常駐すべきHDD30側のデータ32の位置を示す。キャッシュ常駐化制御実行の際は、DKC10により、先頭LBAと末尾LBAで示されるHDD30上のデータ32が、CM130上にキャッシュ常駐化データ33としてキャッシュまたはステージング処理される。プリロード属性は、キャッシュ制御対象データ32のキャッシュ常駐化オンが決定した際にあらかじめすぐにCM130上へと当該データ32をロード(ステージング処理)するか否かを示す。例えば「1」でプリロードのオンを表わす。
<I/Oパターン判定>
図7は、I/Oパターン判定に係わる処理を示すフロー図である。DKC10は、CPU101の制御により、本フローに従って、ホスト2から受領したI/Oシーケンスについて、特定I/Oパターンの判定を行う。この判定において、受領I/Oシーケンス中の実I/Oパターン情報72Bと確定I/Oパターン情報72Aとの一致が見出された場合は、その確定I/Oパターン情報72Aに対応したキャッシュ制御情報73を読み出して、このキャッシュ制御情報73に従ったキャッシュ常駐化制御を実行する。
まず、ステップS1で、CPU101は、確定DB60Aの確定I/Oパターン情報72Aから、全I/OパターンにおけるトリガI/Oをシステムメモリ102に読み込む。例えば図6の例なら、ある確定I/OパターンにおけるトリガI/Oとして、I/O#1のReadコマンドが相当する。CPU101は、確定I/Oパターン情報72AのI/Oシーケンスにおける、該当I/Oの情報、すなわちID、種別、LBA、間隔、割り込み等の情報を読み込んでおく。
ステップS2で、CPU101は、ホスト2側からのI/O要求(第1のI/O)の受信を待つ。ホスト2側からのI/O要求を受信すると、ステップS3で、CPU101は、ホスト2側から受信したI/O要求が、読み込んでおいたトリガI/Oと一致するかどうかを判断する。受信したI/O要求に含まれている、コマンドの種別やLBA等の情報を参照して判断する。どのトリガI/Oとも一致しない場合は(No)、次のI/O要求を待つ(S2)。
なお、例えばCHA110でのI/O要求の受信時にすぐにI/Oパターン判定に係わる処理を行うようにしてもよいし、I/O応答処理後に同処理を行うようにしてもよい。
受信I/O要求が、トリガI/Oと一致する場合は(Yes)、次にステップS4で、CPU101は、該当の確定I/OパターンにおけるトリガI/O(第1のI/O)の次に来るI/O情報(第2のI/O)を読み込む。例えば上記例なら、第2のI/Oとして、I/O#2のReadコマンドが相当する。そして、ステップS5で、CPU101は、ホスト2側からの次のI/O要求(第2のI/O)の受信を待つ。
次のI/O要求を受信すると、ステップS6で、CPU101は、これまでに受信したI/O要求のシーケンスからなる実I/Oパターンと、該当確定I/Oパターンとを比較して、I/Oにおける、種別、LBA、その他の要素が一致するかどうかを判断する。実施の形態1ではI/Oパターンが完全に一致するかどうかを判定する。例えば上記例なら、第1、第2のI/Oとして、I/O#1,#2のシーケンスが相当するので、これと受領I/Oのシーケンスが一致するかどうかを判断する。
上記比較判定で、実I/Oパターンと該当確定I/Oパターンとが一致しない場合は(No)、ステップS7で、CPU101は、実I/OパターンにおけるI/O間に別I/Oの割り込みを許容するかどうかを確定I/Oパターン情報72Aから判断する。該当確定I/Oパターンにおいて別I/Oの割り込みが許容される場合は(Yes)、以後の受領I/OによってI/Oパターンが一致する可能性があるので、ステップS5に戻り、ホスト2側からの次のI/O要求(第2のI/O)の受信を待つ。この場合、許容される別I/Oを挟んで、該当確定I/Oパターンにおける第2のI/Oと一致するI/Oが以後に受領されるならば、該当確定I/Oパターンに関する判定が継続される。
ステップS7で、別I/Oの割り込みが許容されない場合は(No)、該当確定I/Oパターンにおける一致は無いこととして、ステップS2に戻り、CPU101は、再び、別のI/Oの受信を待って、以後、別I/Oパターンに関しての処理を開始する。同様に、I/O受信ごとにI/Oパターンの判定が繰り返される。
なお、ステップS7,S8でNoの場合、実施の形態3では、ステップS10で類似性判定処理を行うが、実施の形態1では行わずに次の処理に移る。
前記ステップS6で、実I/Oパターンと該当確定I/Oパターンとが一致する場合(Yes)、次に、ステップS8で、CPU101は、受信I/Oと、前の受信I/Oとの間隔が、該当確定I/Oパターンのものと一致するかどうかを判断する。例えば、上記例なら、該当確定I/Oパターンにおいて、第2のI/Oと第1のI/Oとの間隔が、8〜10秒と規定されているので、実際の受領の時間差がその範囲内に収まるかどうかを確認する。
受領I/Oと前のI/Oとの間隔が一致しない場合は(No)、該当I/Oパターンにおいて一致は無いこととして、ステップS2に戻り、再び別のI/Oパターンに関する処理を行う。間隔が一致する場合は(Yes)、ステップS9で、CPU101は、実I/Oパターンとして、該当確定I/Oパターンにおける最後のI/Oまでを受領したかどうかを判断する。最後まで受信していない場合は(No)、ステップS4に戻り、該当確定I/Oパターンにおける次のI/O情報を読み込んで、最後のI/O(#n)まで受領するか、I/Oパターン不一致となるまで、同様に処理を繰り返す。該当確定I/Oパターンの最後のI/Oまで受領した場合(Yes)、I/Oパターン判定処理が終了する。例えば、上記例なら、I/O#1〜#3で1つのI/Oパターンが規定されており、ステップS9で、I/O#2まで受領し最後のI/O#3まで受領していない状態の時、ステップS4に戻って、次のI/O#3についての処理が行われる。そして再びステップS9で最後のI/O#3までの受領が確認された場合、実I/Oパターンと該当確定I/Oパターンとの一致がみられたことになる。
I/Oパターン判定処理の後には、見出された特定I/Oパターンに対応したホストシステム及びクリティカルI/Oが推定されたことになり、この特定I/Oパターンに関してのキャッシュ制御の処理などが続けて実行される。
<キャッシュ制御>
第1の手段による制御におけるキャッシュ制御の例について説明する。通常のキャッシュ制御では、CM130を備えた構成において、LRUアルゴリズムなどに従ってCM130上にデータがキャッシュされる。これに加えて、第1の手段におけるキャッシュ制御では、キャッシュ常駐化制御を行う。
従来のキャッシュ常駐化制御では、ホスト2またはホスト2を使用するユーザが、ディスクアレイ装置1に対して常駐化オン/オフの指示を行うことが可能であった。またHDD30におけるブロック単位のデータをまとめてCM130上に常駐化オン/オフ可能であった。これにより当該データについてのキャッシュヒット率が向上でき、情報処理システム全体の性能向上を図ることができる。
第1の手段では、キャッシュ制御情報73で、HDD30上のLU31のデータ32を対象として、CM130上への対象データのキャッシュ常駐化または常駐化解除の設定(常駐化オン/オフ)が行われる。DKC10は、I/Oパターン判定後に、キャッシュ制御情報73に従ったキャッシュ常駐化制御を実行する。キャッシュ制御情報73に従ったキャッシュ制御の際、LBA指定のブロック単位でCM130上の領域にデータが記憶される。またLBA範囲の指定によりデータセット単位で記憶される。
キャッシュ制御情報73に従って、特定I/Oパターン及びクリティカルI/Oに対応してキャッシュ常駐化オンが設定されたデータ32は、ステージング処理(a5)において、HDD30側の領域からCM130上の領域へ読み出され、キャッシュ常駐化データ33として記憶される。
また例えばDKC10はCM130上にキャッシュ常駐化用の領域を優先的に確保しておく。また例えばキャッシュ常駐化オフが指定されたデータ32については、デステージング処理(a5と逆方向の処理)において、CM130上の領域からHDD30側の領域へ書き出され記憶される。
ホスト2からのI/Oにおいて、キャッシュ常駐化オンが指定されたデータ32に対するI/Oでは、CM130上のキャッシュ常駐化データ33に対して読み書き処理されてホスト2へ応答(a6)が行われる。CM130上のデータについては、通常のキャッシュ制御と同様に、適宜タイミング、例えばDKC10でI/O要求(a2)の受信が無い時に、HDD30側の本来のデータ32に対して更新反映のための書き込み処理がなされる。
なお、上記ではクリティカルI/Oに対応するためのキャッシュ常駐化オンの場合について説明したが、一旦キャッシュ常駐化オンの状態としたデータ32について、所定の契機で常駐化オフとするように制御してもよい。例えば、該当キャッシュ常駐化データ33に対して所定時間アクセスが無い場合に常駐化オフとするようにしてもよい。
なお、クリティカルI/Oに関する1つの対策として、従来のキャッシュ制御を用いて、HDD30での延命処理中には、CM130からHDD30上の記憶領域へのデステージング処理を抑止することは可能である。その場合、ホスト2からの延命処理中HDD30の領域に対するデータ書き込み要求時には、該当HDD30ではなくCM130上にのみ書き込みデータを書き込んでおき、その後、該当HDD30での延命処理の終了後に前記CM130上の書き込みデータを該当HDD30の記憶領域へとデステージング処理することで、前記クリティカルI/Oにおける応答遅延発生の問題に関して対応可能である。しかし一方、ホスト2からの延命処理中HDD30の領域に対するデータ読み込み要求時には、CM130上に目的の読み込みデータが存在しない場合(すなわちキャッシュミスヒット)、延命処理中HDD30への読み込みアクセスが発生してしまうので、前記問題に対応不可能である。
<制御タイミング>
図8は、ディスクアレイ装置1におけるホスト2からのI/Oシーケンスと第1の手段による制御とのタイミングを時間軸で示す説明図である。
ホスト2からのI/Oシーケンスにおいて、時刻t1〜t7で、DKC10は、外部から、順にI/O#1〜I/O#7を受領・処理している。本例では、それらI/Oのうち、ある同一ホスト2からの、I/O#2,#3,#4,#6からなる実I/Oパターンが、I/O#s1,#s2,#s3,#s4からなる確定I/Oパターン(p1とする)と対応した例を示している。確定DB60Aで、確定I/Oパターン情報72Aであるp1とキャッシュ制御情報73Aであるc1とホスト情報71AであるホストシステムAとが対応付けられている。
DKC10での処理により、受領したI/Oシーケンスからの実I/Oパターン情報72Bと、確定I/Oパターン情報72Aとが比較判定される。そして、判定により抽出された特定I/Oパターンから、確定DB60Aでの対応付けによって、当該実I/Oパターンを発行したホストシステム及びそのクリティカルI/Oが対応付けられる。すなわち当該実I/Oパターンの後に続くI/OがクリティカルI/Oであるかが判断される。
DKC10は、特定I/Oパターンの認識により、DB60で該当確定I/Oパターン72Aに対応付けられているホスト情報71A及びキャッシュ制御情報73Aを参照して、クリティカルI/Oまたはホストシステムに対応付けられる対象データ32についてのキャッシュ制御を実行する(t8)。キャッシュ制御では、上記実I/Oパターン以後に受信すると推定されるクリティカルI/O要求に備えて、対象データ32を、DKA140の処理によって、HDD30側から読み出してCM130上の領域に格納する。例えば、該当キャッシュ制御情報73Aにおけるキャッシュ常駐化オンの指示に従い、DKC10は、キャッシュ制御対象のデータ32について、キャッシュ常駐化オン状態にしてCM130上の領域へ格納するステージング処理を行う。
その後、時刻t9で、前記推定されたクリティカルI/O(#n)がホスト2から実際に発行されたとする。DKC10は、当該クリティカルI/O(#n)について、CM130上に対象データ32がキャッシュ常駐化データ33としてキャッシュ常駐化済みであるので、当該キャッシュ常駐化データ33を利用してすぐに応答できる。またその後(t10)、同様に関連のクリティカルI/O(#x)が発行されても、同様にキャッシュ常駐化データ33を用いて応答できる。
<HDD状態>
図9は、ディスクアレイ装置1におけるホスト2からのI/OとHDD(SATAドライブ)30の状態との関係、及び処理例のシーケンスを、時間軸で示す説明図である。
ホスト2からのI/Oとして、ここでは、ノーマルI/OとクリティカルI/Oとの2種類を有する。ノーマルI/Oは、Read/Writeコマンド等に対応した、前述の通常のI/Oであり、その要求応答時間が、HDD30における応答不能状態の持続時間よりも長いものである。クリティカルI/Oは、Read/Writeコマンド等に対応したI/Oで、その要求応答時間が、HDD30における応答不能状態の時間よりも短いものである。ホスト2からのノーマルI/O要求における要求応答時間(T)を、例えば15秒とする。また、ホスト2からのクリティカルI/O要求における要求応答時間(T)を、例えば3秒とする。HDD30における応答不能状態の持続時間を、例えば5秒とする。前記要求応答時間は、ここでは、I/O要求(a2)を発行してからその正常な応答(a3)が返されるまでにホスト2側で許容される待ちの制限時間あるいはタイムアウト値であり、当該時間を超えた場合にエラーやシステムダウン等の結果が引き起こされるような時間である。前記要求応答時間はホストシステムに応じて決まるが、未知のホストシステムの場合には、ディスクアレイ装置1の側ではわからない。
HDD30の状態として、ここでは、応答可能状態と応答不能状態との2種類を有する。応答可能状態は、DKC10で受信したI/O要求についてのディスクへのアクセス要求に対して、そのアクセス先となるHDD30ですぐに応答可能な状態である。応答不能状態は、前記アクセス要求において、そのアクセス先となるHDD30で、待ち時間などの発生なしには応答できない状態である。
本例では、前記応答不能状態は、SATAドライブ(30)における延命処理中の状態が対応する。HDD30における自動的な延命処理の実行における必要時間が例えば5秒とする。また、あるHDD30での延命処理が、定期的に実行されるものとし、その実行間隔が、例えば前回の実行から1時間経過後とする。以下では1つのHDD30に注目して考える。
まず、時刻t1〜t3の時間に、HDD30で延命処理中となりDKC10からのアクセス要求に対して応答不能状態となった。一方、ホストI/Oで、時刻t2に、ノーマルI/Oが発生した。この時、そのアクセス先のHDD30で応答不能状態であるので、応答までに待ちが発生する。延命処理が終了後にHDD30は応答可能状態となる。時刻t4で、I/O要求が正常に処理される。すなわち、I/O要求に対応してDKC10から該当HDD30に対してアクセス要求が行われ、対象データへのI/Oを通じて応答処理される。
その後、時刻t5で、ホスト2からクリティカルI/O要求が発生した。この時、HDD30が応答可能状態であるので、ディスクへのアクセスが必要であっても、要求応答時間である3秒以内の時刻t6に応答が可能である。CM130へのアクセスの場合も勿論応答可能である。
その後、時刻t7〜t9で、HDD30における定期的な延命処理が実行され、応答不能状態となった。延命処理中、時刻t8で、ホスト2からクリティカルI/Oが発行された。この時、時刻t8の前において当該クリティカルI/Oに関連した実I/Oパターンに対応したI/Oパターン判定とキャッシュ制御が事前に行われているのであれば、I/O対象データ32がCM130上にキャッシュ常駐化されている状態である。従って、HDD30で応答不能状態であっても、CM130上のキャッシュ常駐化データ33を利用してキャッシュ応答することで、要求応答時間以内に正常に応答できる。
<クラスタシステム>
次に、クリティカルI/Oを発行するホストシステムの例としてクラスタシステムについて説明する。図10は、図2中に示すクラスタシステムのより詳細な構成例を示す。このクラスタシステムは、ディスクアレイ装置1と、ディスクアレイ装置1に通信接続される複数のホスト2と、ホスト2に通信接続されるクライアントコンピュータ8とを有する構成である。各ネットワーク42,43は、例えばTCP/IPプロトコルで接続されるLANである。簡単のため、2つのホスト2からなるクラスタ構成を示している。
クライアントコンピュータ8は、図示しないCPU、メモリ、及び、クラスタサービス用ネットワーク42に対するインタフェース処理を行うNIC(ネットワークインタフェースカード)81を有し、ホスト2のクラスタが提供するクラスタサービスにアクセスするための情報をメモリ上に保持している。
ホスト{#1,#2}2は、前記CPU、メモリ、及び、NIC21、HBA(ホストバスアダプタ)22などを備える。ホスト2は、メモリ上に、クラスタサービスを提供するための情報を保持している。ホスト2上では、特にクラスタソフトウェアのプログラムを実行することによりクラスタシステムを実現している。ホスト2のクラスタサービスは、ディスクアレイ装置1の提供する機能を利用する。
ホスト2は、HBA22によりネットワーク41に接続され、ネットワーク41を介してディスクアレイ装置1のDKC10のCHA110と通信可能である。また、ホスト2は、NIC21によりクラスタサービス用ネットワーク42に接続され、クライアントコンピュータ8から通信接続される。クライアントコンピュータ8からのクラスタサービスアクセスを受け付けて、それに対してクラスタサービスを提供する。また、ホスト2は、他のNIC21によりクラスタ間ハートビート用ネットワーク43に接続され、クラスタ間ハートビート用ネットワーク43上においてホスト2間でハートビート通信が行われる。
前記クリティカルI/O要求の例として、クラスタシステムにおける共有ディスクへのアクセスや、パスヘルスチェックを行うミドルウェアにおけるパスヘルスチェックのためのアクセスなどがある。これらクリティカルI/O要求では、システム状態チェック等のために短い要求応答時間内での応答性が要求されている。この要求応答時間内に応答できない場合は、クラスタにおける望ましくないフェイルオーバ(サービス引き継ぎ)や、システムダウンなどの状態となってしまう。
クラスタシステムでは、性能や耐障害性の向上を目的として、クラスタサービス用ネットワーク42上の複数のサーバ(ホスト2に相当する)を連携させて1つの大きなシステムとして動作し、ある1つのサーバ(2)で障害が発生しても、他のサーバ(2)が代替してサービスを引き継いで起動させることで業務を継続するなどの機能を持つ。これらのクラスタシステムでは、一般にLAN等の通信手段(クラスタ間ハートビート用ネットワーク43に相当する)を用いてハートビート通信を行い、互いの稼動状態を監視している。通信可能な状態において、ある1台のホスト2で提供しているサービスが障害となり停止した場合、残ったホスト2のうちで優先順位の高いコンピュータ上でサービスを起動して、クライアントコンピュータ8にサービスを提供する。
しかし、前記LAN等の通信手段(43)上で経路障害により通信できなかった場合などには、複数のホスト2で共有されている外部記憶装置への読み書き処理を用いたコンピュータ間の優先制御が行われる。この優先制御の際に使用される、前記共有されている外部記憶装置を、以下、クラスタ共有ディスクと称する。このクラスタ共有ディスクは、ディスクアレイ装置1のHDD30の記憶ボリュームに確保され、ネットワーク以外に必要となる、クラスタ間通信のために使用される共有資源である。図10における共有ディスク#0(330)がクラスタ共有ディスクに対応する。ホスト2は、クラスタ共有ディスク(330)に対して、自ホスト2が正常に稼動していることを示す制御用のI/Oアクセスを行う。例えば、ホスト番号、アクセス数などの情報がクラスタ共有ディスク(330)に書き込まれる。ホスト2がクラスタ共有ディスク(330)上の書き込み情報を読むことで、他ホスト2が稼動状態かダウン状態かを判断できる。
前記優先制御において、実際には、クラスタ共有ディスク(330)へ最初にアクセスをしたホスト2が優先権を獲得し、サービスを引き継いでサービスを起動させる。このクラスタ共有ディスク(330)へのアクセス時に、I/Oエラーやタイムアウトすなわち規定時間内に応答が無いことが発生した場合には、ホスト2はサービスを起動させることができず、クラスタシステムが異常終了してしまい、サービスダウン状態となってしまう。
例えば、ホスト#1では、クラスタサービス#1のサービスを提供しており、共有資源である共有ディスク#1(331)に対して、3秒毎にI/Oを発行してディスク状態のチェックを行っている。また、クラスタ間ハートビート用ネットワーク43に障害が発生した場合、クラスタ構成内のホスト#1とホスト#2は、クラスタ共有ディスク(330)にそれぞれI/Oを発行し、最初にクラスタ共有ディスク(330)にアクセスしたホスト2が、クラスタ構成で定義されている2つのクラスタサービス#1,#2を引き継いで実行する。この時、それぞれのホスト#1,#2からクラスタ共有ディスク(330)に発行されるI/Oに要求される応答性能は3秒と定義されているクラスタシステムがあり、例えば5秒間ディスクアレイ装置1からの応答が無い場合、ホスト#1とホスト#2のどちらも応答が得られない場合、いずれのホスト2でもサービスを引き継ぐことが出来ず、クラスタシステムがサービスダウンとなってしまう。この際に各ホスト2からクラスタ共有ディスク(330)に対して発行されるI/Oは、特定のLBAに対してのRead/Writeであるので、そのことからクリティカルI/Oが推定できる。
図10では、ホスト#1は、クラスタサービス用ネットワーク42に接続するNIC#1(21)と、クラスタ間ハートビート用ネットワーク43に接続するNIC#2(21)と、ディスクアレイ装置1のCHA#1〜#3(110)に接続するHBA#1〜#3(22)とを有する。ホスト#1は、クラスタサービス#1の共有資源の情報であるIPアドレス#1と共有ディスク#1の情報を保持する。ホスト#2もホスト#1と同様の構成であり、クラスタサービス#2の共有資源の情報として、IPアドレス#2と共有ディスク#2の情報を保持する。また、クライアントコンピュータ8は、クラスタサービス用ネットワーク42に接続するNIC#5(81)を有し、クラスタサービスアクセス#1のためのIPアドレス#1と、クラスタサービスアクセス#2のためのIPアドレス#2の情報を持つ。
また、ディスクアレイ装置1側では、HDD30上に、クラスタサービスのための共有ディスクが設定されている。ここでいうディスクはLU等に対応している。本例では、ディスクアレイ装置1で、共有ディスク#0(330),#1(331),#2(333)の3つが確保されている。共有ディスク#1(331),#2(332)は、それぞれホスト#1,#2からの通常アクセスa111,a112に対応したものであり、クラスタサービスにおける通常のデータI/Oのために使用される。例えば、クライアントコンピュータ8がIPアドレス#1に対してアクセスすることで、ホスト#1でのクラスタサービス#1に接続され、これに対応する共有ディスク#1(331)に対して、通常アクセスa111によりデータI/Oが行われる。同様にIPアドレス#2に対するアクセスでクラスタサービス#2に接続され、共有ディスク#2(332)に対する通常アクセスa112によりデータI/Oが行われる。
一方、共有ディスク#0(330)は、前記クラスタ共有ディスクに対応しており、共有ディスク#0(330)に対して、各ホスト#1,#2から、前記優先制御用のアクセスa101,a102が行われる。各ホスト#1,#2は、ディスクアレイ装置1内の共有ディスク#0(330)に対して制御用のアクセスa101,a102を行う。
実施の形態1では、第1の手段による制御によって、上記クラスタシステムからのクリティカルI/Oにも対応して、要求応答時間内に応答可能であるので、クラスタシステムとして望ましくないフェイルオーバや、サービスダウンといったシステム障害を回避できる。
以上説明したように、実施の形態1によれば、FCドライブよりも信頼性のやや低いSATAドライブ等のHDD30を用いたディスクアレイ装置1においても、HDD30自体の備える延命処理の機能を実行させることによりHDD30単体の信頼性向上を図りつつ、クラスタシステム等からのクリティカルI/O要求に対する応答処理についても、特にキャッシュ常駐化制御によって応答遅延を起こさずに効率的に処理し、エラーやシステムダウン等といった問題の発生も回避してシステム可用性を向上できる。ホストシステムからのクリティカルI/Oで必要なブロック単位などのデータ32を事前にCM130上へキャッシュ常駐化しておくことで、HDD30での延命処理の有無などの状態によらずに要求応答時間内での応答が可能となる。
その他、延命処理機能を備えないHDD30に対するクリティカルI/Oの場合でも、キャッシュ常駐化制御の実行によってI/O性能を向上できる。また、前記HDD30での効果的な延命処理実行のためにDKC10による延命処理制御で該当HDD30へのアクセス要求を一時的に停止させる制御を行う場合で、その停止時間内に該当HDD30へのクリティカルI/Oが発生した場合でも、事前のキャッシュ常駐化制御の実行によって応答できる。また、1回目のクリティカルI/OについてはHDD30へのアクセスで応答処理すると共に前記I/Oパターン判定により当該クリティカルI/Oを認識してキャッシュ制御を実行し、2回目以降のクリティカルI/Oについて前記キャッシュ制御済みのデータを用いて応答処理することも可能である。またDB60の情報が、ディスクアレイ装置1の外部に存在し、それを必要に応じて読み出して利用する形態も可能である。また、ホストシステムからのI/Oにおける要求応答時間が未知の場合であっても対応可能であるが、特定のI/Oにおける要求応答時間が既知の場合にも、その情報をDB60に登録しておき判定などで利用してもよい。
(実施の形態2)
次に、図1〜図10を参照して、本発明の実施の形態2におけるディスクアレイ装置1を説明する。実施の形態2では、確定DB60Aにおいて未対応・未知のホストシステムに対してもクリティカルI/O対応可能なようにするために、ハードウェア及びソフトウェアにより構成される第2の手段により、ホストシステムからのI/OをもとにしたI/Oトレースなどの情報を採取して利用する。
前記実施の形態1で、ホストシステムの構成が確定DB60Aに登録されている情報と一致する場合は、前述したような制御によりクリティカルI/Oに対応可能である。例えばホスト2における特定のOSやミドルウェアやアプリケーション等に応じたシステム構成があるとき、これに対応したキャッシュ制御情報73Aをあらかじめ作成してディスクアレイ装置1内に保持しておくことで対応可能である。
しかし、未知のホストシステム、例えばホスト2における特定のOS、ミドルウェア、アプリケーション等の各バージョンの組み合わせに対しては、必ずしもそれに対して有効なキャッシュ制御情報73をディスクアレイ装置1のDB60で既に保持しているとは限らない。この場合、実I/Oパターンが確定I/Oパターンと完全に一致しない場合にはクリティカルI/O要求に対応できない。
<I/Oトレース採取>
実施の形態2では、ディスクアレイ装置1内に確定DB60Aとして保持する、ホストシステム構成に対応したキャッシュ制御情報73A及び確定I/Oパターン情報72A等を交換・更新可能とする。すなわち、確定DB60Aを、ホストシステム構成の変更などに応じてバージョンアップされたものに更新できる。
ディスクアレイ装置1は、第2の手段として、ホスト2を含む他装置から受領したI/Oについてのトレースを採取する手段を有する。第2の手段は、例えば、DKC10におけるホスト2からのI/Oの監視や、SVP160からの指示に従ってI/Oトレースの採取を行う制御プログラム91の処理などで実現される。前記I/Oトレースは、DKC10で受信したI/O要求やコマンド及びそれに対応したI/O応答処理結果などのシーケンスの一部または全部の記録である。例えば、DKC10のCPU101あるいはその他のプロセッサが、ホスト2からの受領I/OについてのI/Oトレースを採取してディスクアレイ装置1内のいずれかのメモリに保持する。
実施の形態2では、SVP160から制御プログラム161の処理によって、DKC10に対してI/Oトレース採取指示を行い、指示に従ってDKC10でI/Oトレース情報を採取させる。DKC10が採取したI/Oトレース情報をSVP160へ収集し、更に、通信手段などを通じて、保守センタ51等の他装置へと送信して回収する。
例えば未知のホストシステムがある場合に、オペレータは、SVP160を通じてディスクアレイ装置1に対してI/Oトレース採取の開始と終了あるいは時間などを指示する。指示に従って、DKC10は、例えばある時間内でのホスト2からのI/Oトレースを採取する。採取されたI/Oトレース情報を、SVP160を経由してホスト情報を付加し、ディスクアレイ装置1内のいずれかの場所に保存する。保存したI/Oトレース情報を、未知のホストシステムに対し有効なI/Oパターン情報72及びキャッシュ制御情報73の作成のために利用できる。
例えば検証センタ52で、採取したI/Oトレース情報の解析が行われ、解析に応じて新たに作成されたホスト情報71、I/Oパターン情報72、及びキャッシュ制御情報73によって、検証センタ52側で保持する確定DB60Aを更新する。
なお、DKC10内の各処理部がSVP160に対して処理状態情報を送信することで、SVP160がI/O状態を把握してI/Oトレース情報を取得する形態としてもよい。またオペレータ及びSVP160を介さずに、設定などに従ってDKC10で自動的にI/Oトレースを採取して記録しておく形態などとしてもよい。
実施の形態2では、DB60で未対応・未知のホストシステム構成に対しても、オペレータの指示入力に従ってそのホストシステムについてのI/Oトレースを採取でき、採取したI/Oトレース情報の解析をもとに、有効な定義情報の作成や更新が可能となる。従って、未知のホストシステムからのクリティカルI/Oに対しても追加的に対応可能となり、情報処理システムの信頼性が向上できる。
(実施の形態3)
次に、図1〜図10を参照して、本発明の実施の形態3におけるディスクアレイ装置1を説明する。実施の形態3では、第3の手段として、ホストシステムにおけるOSなどのバージョンアップやパッチレベルでの修正などによる構成の変更などに対しても対応可能とするために、ホスト2からの実I/Oパターンに確定I/Oパターンとの類似性がみられた場合に、類似ホストシステムと同様のキャッシュ制御情報73を適用してキャッシュ制御を実行することでクリティカルI/O対応可能にする手段を備える。
<類似性判定>
実施の形態3では、前記図7のステップS10で、類似性判定処理を行う。DKC10は、ホスト2側からの実I/Oパターンまたは前記採取したI/Oトレースの情報と、確定DB60Aの確定I/Oパターン情報72Aとを比較して特定I/Oパターンを抽出する判定を行う。この判定に関して、前記図7においてステップS6でホスト2からの実I/Oパターンと確定I/Oパターンとが完全一致する場合だけでなく、ステップS10で類似性判定を行って類似性がみられるI/Oパターンも抽出する。それらI/Oパターンに許容範囲内の類似性がみられた場合に、ホストシステム構成が、確定DB60Aに登録されているホストシステムと類似のシステム構成であると判断する。そして、この類似性のみられるI/Oパターン及びクリティカルI/Oに対応して、類似ホストシステムに対応したキャッシュ制御情報73Aを適用してキャッシュ制御を実行する。これにより、未知のホストシステムからのクリティカルI/O要求にも対応可能となる。
前記ステップS7,S8でNoの場合では、実I/Oパターンと確定I/Oパターンとが完全一致しないが、ステップS10で、類似性判定用情報74を参照して、これらI/Oパターンにおける類似性を判定する。許容範囲内の類似性がみられた場合は、その実I/Oパターンを発行したホスト2を、該当確定I/Oパターンに対応したホストシステムと類似性有りのホストシステムとみなし、確定DB60Aの同様のキャッシュ制御情報73Aを適用してキャッシュ制御を実行する。あるいは、ステップS6で完全一致の比較判定を行うのではなく、類似性判定を含む比較判定を行うようにする。
前記図6の確定I/Oパターン情報72Aにおいては、確定I/Oパターンにおける類似性判定基準と許容値の例として、I/Oパターンの一致率を、99%〜80%と設定している。同様に、I/O時間のずれを1/2〜2倍とし、別I/Oの割り込みを3つのI/Oまで許容すると設定している。前記一致率については、I/Oの間隔などの要素を考慮して確定I/Oパターンと実I/Oパターンの類似性を評価した際、それが許容値に収まる場合は、I/Oパターンに類似性有り、すなわち類似ホストシステムであると判断する。前記I/O時間のずれは、例えばI/Oシーケンスにおける各I/Oの間隔の差やI/Oコマンドを受けた時刻の差などである。例えばI/Oの間隔のずれが1/2〜2倍に収まる場合に許容される。前記別I/Oの割り込みでは、例えば、I/OシーケンスにおけるI/O間に、3つまでの別I/Oの受領が許容される。
類似性判定処理でI/Oパターンにおける類似性を見出した場合は、類似ホストシステムのキャッシュ制御情報73Aを適用すると共に、DKC10は、追加DB60Bに、類似性有りのホストシステム構成として、I/Oパターン情報72Bやキャッシュ制御情報72Bを登録する。以後、ディスクアレイ装置1は、追加DB60Bの登録情報も参照して制御することで、一度類似性判定された類似ホストシステムからのクリティカルI/Oに対しても対応可能な状態となる。
(実施の形態4)
次に、図1〜図10を参照して、本発明の実施の形態4におけるディスクアレイ装置1を説明する。実施の形態4では、第4の手段として、ディスクアレイ装置1に有する関連情報(前記DB60、I/Oトレース情報など)を、保守センタ51及び検証センタ52等の外部装置へと送信して回収し、回収情報をもとに、ホストシステム評価・解析により、最新のホストシステム構成に対応した定義情報などを作成して、確定DB60Aを更新し、その更新された情報を配布情報として、1つ以上のディスクアレイ装置(1,1B)に配布して、ディスクアレイ装置(1,1B)内のDB60に反映して更新する手段を備える。
<情報回収・検証・更新・配布>
実施の形態4では、あるディスクアレイ装置1で持つI/Oトレース情報などの関連情報について、SVP160及び通信手段を経由して、保守センタ51へと回収する。例えば、まずDKC10からSVP160へI/Oトレース情報を送信・収集する。そして、SVP160からネットワーク等を経由して保守センタ51のコンピュータへ、前記I/Oトレース情報を送信して回収する。更に保守センタ51のコンピュータから検証センタ52のコンピュータへ、回収情報を送信する。
検証センタ52では、回収したI/Oトレース情報から、ホストシステム評価・解析を行う。検証センタ52では、検証によりI/Oパターンの規則性を導出し、ホスト2側のシステム構成を推定する。そして、見出したI/Oパターンに応じて有効なキャッシュ制御情報73を作成する。検証センタ52で新たに作成した、I/Oパターン情報72Aとキャッシュ制御情報73Aとの対応付けを含む定義情報を、検証センタ52で保持する確定DB60Aに追加登録または反映更新する。すなわちホストシステム構成に応じて確定DB60Aのバージョンアップが行われる。そして、検証センタ52のコンピュータは、確定DB60Aの情報を、再配布可能な形式の情報として、保守センタ51を通じて、稼動中の1つ以上のディスクアレイ装置に対してSVP160を介して配布処理する。例えば、保守センタ51の管理下にあるすべてのディスクアレイ装置(本例では1と1B)に対して配布する。または、一部のディスクアレイ装置(例えば1のみ)に対して配布することとしてもよい。この配布処理に従い、各ディスクアレイ装置1で、SVP160でのDB更新の処理を通じて、ディスクアレイ装置1内で保持している確定DB60Aの更新を行う。DKC10またはSVP160は、配布された情報を、ディスクアレイ装置1内に保持していた確定DB60Aに反映して更新する。
実施の形態4では、確定DB60Aの情報の配布及び更新により、回収元のディスクアレイ装置1のみならず、他のディスクアレイ装置1Bを含む複数のディスクアレイ装置でクリティカルI/O対応可能なホストシステム構成が追加されることで、効率的に最新のホストシステム構成に対応でき、情報処理システムの信頼性向上が実現できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明は、外部記憶装置及び外部記憶装置を備える情報処理システムなどに利用可能である。
(a),(b)は、本発明の一実施の形態におけるディスクアレイ装置のハードウェア外観構成を示す図である。 本発明の一実施の形態におけるディスクアレイ装置を含んで構成される情報処理システムの全体の構成を示すブロック図である。 本発明の一実施の形態におけるディスクアレイ装置のより詳細なハードウェア構成を示すブロック図である。 本発明の一実施の形態におけるディスクアレイ装置において、クリティカルI/Oに関する制御に係わる処理のための構成を示す説明図である。 本発明の一実施の形態におけるディスクアレイ装置において、DBに管理されている各テーブル情報の関係を示す説明図である。 本発明の一実施の形態におけるディスクアレイ装置において、DBの各テーブル情報の詳細な構成例を示す説明図である。 本発明の一実施の形態におけるディスクアレイ装置において、I/Oパターン判定に係わる処理を示すフロー図である。 本発明の一実施の形態におけるディスクアレイ装置において、ホストコンピュータからのI/Oシーケンスと本ディスクアレイ装置での制御とのタイミングを時間軸で示す説明図である。 本発明の一実施の形態におけるディスクアレイ装置において、ホストコンピュータからのI/OとHDD(SATAドライブ)の状態との関係、及び処理例のシーケンスを、時間軸で示す説明図である。 本発明の一実施の形態におけるディスクアレイ装置において、図2中に示すクラスタシステムのより詳細な構成例を示すブロック図である。
符号の説明
1,1B…ディスクアレイ装置、2…ホストコンピュータ、8…クライアントコンピュータ、10…記憶制御装置(DKC)、11…基本筐体、12…増設筐体、13…、電源ケーブル、14…筐体間ケーブル、15…インタフェースケーブル、21…NIC、22…HBA、30…HDD、31…論理ユニット(LU)、32…データ、33…キャッシュ常駐化データ、41…ネットワーク、42…クラスタサービス用ネットワーク、43…クラスタ間ハートビート用ネットワーク、51…保守センタ、52…検証センタ、60…DB、60A…確定DB、60B…追加DB、71,71A,71B…ホスト情報、72…I/Oパターン情報、72A…確定I/Oパターン情報、72B…実I/Oパターン情報、73,73A,73B…キャッシュ制御情報、74…類似性判定用情報、81…NIC、90…システムディスク、91…制御プログラム、101…CPU、102…システムメモリ、103…フラッシュメモリ、104…CPU/PCIブリッジ、105…LANコントローラ、110…チャネル制御部(CHA)、111…制御ボード、112…ファンユニット、113…AC/DC電源ユニット、114…バッテリーユニット、130…キャッシュメモリ(CM)、140…ディスク制御部(DKA)、150…データコントローラ(DC)、160…SVP、161…制御プログラム、190…接続網、300…HDD筐体、301…筐体管理部、302…DPA、330…クラスタ共有ディスク、331,332…共有ディスク。

Claims (10)

  1. 記憶装置と、前記記憶装置に対するデータの記憶を制御する記憶制御装置とを備え、前記記憶制御装置にキャッシュメモリを有し、I/O要求に応じて前記記憶装置に対してデータをI/Oする処理を行うディスクアレイ装置であって、
    前記記憶装置では、前記記憶制御装置からのデータ読み込みまたは書き込みを含むアクセス要求に対する応答不能状態が発生し得る構成であり、
    前記記憶制御装置は、定義情報に従って、I/Oにおける特定のI/Oパターンの判定と、前記特定のI/Oパターンに関連するクリティカルI/Oの対象データを対象とした、前記キャッシュメモリを用いた事前のキャッシュ制御とを実行し、前記クリティカルI/Oの発生時に、前記キャッシュメモリ上の前記キャッシュ制御されている前記対象データを用いて応答することを特徴とするディスクアレイ装置。
  2. 請求項1記載のディスクアレイ装置において、
    前記定義情報が登録されたデータベースを保持し、
    前記定義情報は、確定I/Oパターンを表わすI/Oパターン情報と、これに対応付けられた、前記対象データと前記キャッシュ制御の内容とが指示されるキャッシュ制御情報とを含み、
    前記記憶制御装置は、
    前記I/Oパターンの判定では、受領したI/Oシーケンスにおける実I/Oパターンと前記確定I/Oパターンとを比較して、一致する場合は、前記特定のI/Oパターンとして抽出し、
    前記抽出したI/Oパターンに対応付けられた前記キャッシュ制御情報に従って、前記対象データに対して前記キャッシュ制御の内容を実行することを特徴とするディスクアレイ装置。
  3. 請求項1記載のディスクアレイ装置において、
    前記記憶制御装置は、前記キャッシュ制御として、前記抽出したI/Oパターンに関連付けられた前記対象データを、前記記憶装置の領域から読み出して前記キャッシュメモリ上の領域にキャッシュ常駐化データとして格納する処理を行うことを特徴とするディスクアレイ装置。
  4. 請求項1記載のディスクアレイ装置において、
    前記記憶装置は、前記記憶制御装置からのアクセス要求が無い状態において、ディスクに対してシーク動作する延命処理を実行するものであり、
    前記応答不能状態は、前記延命処理の実行中の状態であることを特徴とするディスクアレイ装置。
  5. 請求項1記載のディスクアレイ装置において、
    前記キャッシュ制御の対象となるデータは、前記特定のI/Oパターンの後に続けて受信する前記クリティカルI/Oの対象データであることを特徴とするディスクアレイ装置。
  6. 請求項1記載のディスクアレイ装置において、
    前記記憶制御装置に対して接続される管理装置を有し、
    前記管理装置は、
    前記記憶制御装置に対してI/Oトレースの採取の指示を行う処理と、
    ディスクアレイ装置内から前記指示に従って採取されたI/Oトレースの情報を含む情報を収集する処理と、
    前記収集した情報を、通信接続される外部装置へ送信して回収させる処理とを行い、
    前記記憶制御装置は、前記指示に従って前記I/Oトレースを採取する処理を行うことを特徴とするディスクアレイ装置。
  7. 請求項1記載のディスクアレイ装置において、
    前記定義情報が登録された確定データベースを保持し、
    前記定義情報は、確定I/Oパターンを表わすI/Oパターン情報と、これに対応付けられた、前記対象データと前記キャッシュ制御の内容とが指示されるキャッシュ制御情報と、I/Oパターンにおける類似性判定用情報とを含み、
    前記記憶制御装置は、
    前記I/Oパターンの判定では、受領したI/Oシーケンスにおける実I/Oパターンと前記確定I/Oパターンとを比較して、前記類似性判定用情報に従って許容範囲内での類似性がみられる場合は、前記確定I/Oパターンとの類似性有りのI/Oパターンとして抽出し、
    前記類似性有りのI/Oパターンについて、前記確定I/Oパターンに対応付けられた前記キャッシュ制御情報を適用して、前記対象データに対して前記キャッシュ制御の内容を実行し、前記類似性有りのI/Oパターンと前記確定I/Oパターンとの対応付けを含む定義情報を追加データベースに登録することを特徴とするディスクアレイ装置。
  8. 請求項1記載のディスクアレイ装置において、
    前記記憶制御装置に対して接続される管理装置を有し、
    前記管理装置は、
    前記定義情報が登録されたデータベースを管理し、
    前記管理装置から外部装置へと通信手段を介して送信して回収した情報の検証に基づき新規作成または更新された定義情報を、前記外部装置から通信手段を介して受信し、前記データベースに反映して更新する処理を行うことを特徴とするディスクアレイ装置。
  9. 請求項1記載のディスクアレイ装置において、
    前記記憶制御装置に対して接続される管理装置を有し、
    前記管理装置は、
    前記定義情報が登録されたデータベースを管理し、
    前記管理装置に通信接続される外部装置で新規作成または更新された、複数のディスクアレイ装置に対して配布される定義情報を、前記外部装置から通信手段を介して受信し、前記データベースに反映して更新する処理を行うことを特徴とするディスクアレイ装置。
  10. 記憶装置と、前記記憶装置に対するデータの記憶を制御する記憶制御装置とを備え、I/O要求に応じて前記記憶装置に対してデータをI/Oする処理を行うディスクアレイ装置であって、
    前記記憶制御装置は、
    前記I/Oを制御するプロセッサと、他装置に対するインタフェースを有し通信処理を行うチャネル制御部と、キャッシュメモリと、前記記憶装置に対するインタフェースを有し通信処理を行うディスク制御部と、これらを相互接続する接続部とを有する構成であり、
    前記記憶装置は、前記記憶制御装置のディスク制御部に対して接続網で接続され、
    前記記憶装置として、前記記憶制御装置からのアクセス要求が無い状態においてディスクに対してシーク動作する延命処理を実行するものを有し、
    前記延命処理の実行中は、前記記憶制御装置からのデータ読み込みまたは書き込みを含むアクセス要求に対する応答不能状態となり、
    前記記憶制御装置は、定義情報に従って、I/Oにおける特定のI/Oパターンの判定と、前記特定のI/Oパターンに関連するクリティカルI/Oの対象データを対象とした前記キャッシュメモリを用いた事前のキャッシュ制御とを実行し、前記クリティカルI/Oの発生時に、前記キャッシュメモリ上の前記キャッシュ制御されている前記対象データを用いて応答することを特徴とするディスクアレイ装置。
JP2005034692A 2005-02-10 2005-02-10 ディスクアレイ装置 Pending JP2006221451A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005034692A JP2006221451A (ja) 2005-02-10 2005-02-10 ディスクアレイ装置
US11/103,595 US20060179163A1 (en) 2005-02-10 2005-04-12 Disk array device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005034692A JP2006221451A (ja) 2005-02-10 2005-02-10 ディスクアレイ装置

Publications (1)

Publication Number Publication Date
JP2006221451A true JP2006221451A (ja) 2006-08-24

Family

ID=36781173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005034692A Pending JP2006221451A (ja) 2005-02-10 2005-02-10 ディスクアレイ装置

Country Status (2)

Country Link
US (1) US20060179163A1 (ja)
JP (1) JP2006221451A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018088212A (ja) * 2016-11-30 2018-06-07 日本電気株式会社 情報制御装置、情報制御方法、及び、プログラム
KR20190031132A (ko) * 2017-09-15 2019-03-25 삼성전자주식회사 대표 입출력 생성기를 통해 스토리지 디바이스를 테스트하기 위한 방법 및 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8320235B2 (en) * 2006-02-17 2012-11-27 Advantest (Singapore) Pte Ltd Self-repair system and method for providing resource failure tolerance
US8589723B2 (en) * 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US9384044B2 (en) * 2012-01-03 2016-07-05 International Business Machines Corporation Intelligent inclusion/exclusion automation
JP6294569B2 (ja) * 2015-06-19 2018-03-14 株式会社日立製作所 ストレージシステム及びキャッシュ制御方法
US11645174B2 (en) * 2019-10-28 2023-05-09 Dell Products L.P. Recovery flow with reduced address lock contention in a content addressable storage system
US11449443B2 (en) * 2020-10-16 2022-09-20 Western Digital Technologies, Inc. Identification and classification of write stream priority
CN115016725A (zh) * 2021-03-05 2022-09-06 伊姆西Ip控股有限责任公司 用于管理存储设备的方法、设备和计算机程序产品

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5537566A (en) * 1991-12-17 1996-07-16 Fujitsu Limited Apparatus and method for controlling background processing in disk array device
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018088212A (ja) * 2016-11-30 2018-06-07 日本電気株式会社 情報制御装置、情報制御方法、及び、プログラム
KR20190031132A (ko) * 2017-09-15 2019-03-25 삼성전자주식회사 대표 입출력 생성기를 통해 스토리지 디바이스를 테스트하기 위한 방법 및 시스템
KR102316207B1 (ko) 2017-09-15 2021-10-25 삼성전자주식회사 대표 입출력 생성기를 통해 스토리지 디바이스를 테스트하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
US20060179163A1 (en) 2006-08-10

Similar Documents

Publication Publication Date Title
US7360047B2 (en) Storage system, redundancy control method, and program
US8607230B2 (en) Virtual computer system and migration method of virtual computer
US8839030B2 (en) Methods and structure for resuming background tasks in a clustered storage environment
US7188201B2 (en) Storage system
JP2006221451A (ja) ディスクアレイ装置
JP4870915B2 (ja) ストレージ装置
US7073017B2 (en) Efficient update of firmware in a disk-type storage device
US7886114B2 (en) Storage controller for cache slot management
JP5026375B2 (ja) ストレージ装置及びストレージ装置の制御方法
JP2005222110A (ja) ストレージサブシステム
US20110314325A1 (en) Storage apparatus and method of detecting power failure in storage apparatus
US20080005502A1 (en) Storage device controlling device and control method for storage device controlling device
US7146526B2 (en) Data I/O system using a plurality of mirror volumes
JP2005149436A (ja) ストレージ装置、ストレージ装置における制御方法、ジョブスケジューリング処理方法及び障害処理方法並びにそれらのプログラム
JP2007188341A (ja) 記憶デバイス制御装置
CN112346653B (zh) 驱动器箱、存储系统和数据传送方法
WO2015079528A1 (ja) 計算機システム及び計算機システムの制御方法
JP2006313410A (ja) ストレージネットワークの管理情報管理方法、ストレージ管理システム及びストレージ管理ソフトウェア
JP5288875B2 (ja) ストレージシステム
US20090228672A1 (en) Remote copy system and check method
US8214587B2 (en) Storage apparatus and method for controlling storage apparatus
JP5038589B2 (ja) ディスクアレイ装置及びその負荷分散方法
JP4433372B2 (ja) データアクセスシステム及び方法
JP2006244340A (ja) ディスクアレイ装置
US7587466B2 (en) Method and computer system for information notification