JPWO2012108040A1 - ストレージ制御装置、及び、そのプログラム - Google Patents

ストレージ制御装置、及び、そのプログラム Download PDF

Info

Publication number
JPWO2012108040A1
JPWO2012108040A1 JP2012556716A JP2012556716A JPWO2012108040A1 JP WO2012108040 A1 JPWO2012108040 A1 JP WO2012108040A1 JP 2012556716 A JP2012556716 A JP 2012556716A JP 2012556716 A JP2012556716 A JP 2012556716A JP WO2012108040 A1 JPWO2012108040 A1 JP WO2012108040A1
Authority
JP
Japan
Prior art keywords
disk
data
storage
standby
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.)
Granted
Application number
JP2012556716A
Other languages
English (en)
Other versions
JP5761209B2 (ja
Inventor
一範 小橋
一範 小橋
村山 浩
浩 村山
前田 実
実 前田
俊英 柳川
俊英 柳川
恵一 中井
恵一 中井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012108040A1 publication Critical patent/JPWO2012108040A1/ja
Application granted granted Critical
Publication of JP5761209B2 publication Critical patent/JP5761209B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0625Power saving in storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部と、を備える。

Description

本発明は、ストレージ制御装置、ストレージ装置、ストレージシステム、ストレージ制御方法、及び、そのプログラムに関する。
使用していないハードディスク装置のディスクの回転を停止し、ストレージ装置の消費電力を削減する技術がある。この技術は、一定時間I/O(Input/Output)要求の無いディスクの回転を停止し、回転停止中のディスクに対してI/O要求が発生すると、ディスクの回転を再開しI/Oを行える状態にするものである。
ただし、回転停止中のディスクに対してI/Oを行うと、ディスクの回転再開からディスクの回転が安定するまで、最大数分I/Oの応答が返却されない。そのため、従来は、オンライン業務システムに使用するディスクのようなI/O頻度の高いディスクに対しては、ディスク回転の停止を行なわず、バックアップ等のバッチ業務を行なうI/O頻度の低いディスクに対しては、ディスク回転の停止を行なってきた。これにより、バックアップ中以外はI/Oの発生しないバックアップ先ディスクの回転を止めて電力消費を削減し、回転を停止したディスクへのI/Oは、バッチ業務を行うことで、I/Oの待ち時間の影響を隠蔽していた。
一方、オンライン業務システムに使用するディスクのようなI/O頻度の高いディスクに対して電力削減を行う技術がある。そのような技術は、RAID(Redundant Arrays of Inexpensive Disks)などにより冗長化したディスクの一部の回転を停止し、他のディスクを使用するというものである。
特開2009−187450号公報 特開2009−238159号公報 特開2009−048360号公報
以後、説明のために、通常運用で使用するディスクを「アクティブディスク」と呼び、回転を停止するディスクを「スタンバイディスク」と呼ぶ。また、スタンバイディスク停止中に一時的に書き込みデータを溜め込む不揮発媒体を「キャッシュ」と呼ぶ。
冗長化構成された一方のアクティブディスクに故障が生じた場合、冗長化構成されたスタンバイディスクからデータを読み込むにためには、スタンバイディスクを回転し、キャッシュに書き込まれたデータを、スタンバイディスクに反映し、データを読み出す。しかしながら、スタンバイディスクの回転が安定するまでに時間がかかるため、データの読み出し再開まで時間がかかる。
1つの側面では、本発明は、アクティブディスク故障後のスタンバイディスク起動による応答遅延の低減を図ることを目的とする。
1つの案では、起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御する。ストレージ制御装置は、前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部と、を備える。
アクティブディスク故障後のスタンバイディスク起動による応答遅延を減らすことができる。
ストレージシステムのハードウェア構成を説明する図である。 ストレージ制御装置の記憶部のメモリマップの一例を示す図である。 マッピングテーブルの一例を示す図である。 ストレージ制御装置とストレージ装置との間のデータ通信のシーケンスの一例を示すシーケンス図である。 読み出し要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。 書き込み要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。 ストレージ制御装置が有する機能構成の一例を示す図である。 ディスク制御情報の一例を示す図である。 ディスク状態管理情報の一例を示す図である。 データマップ管理情報の一例を示す図である。 B木のデータ構造を有するデータマップ管理情報の一例を示す図である。 スタンバイキャッシュ状態管理情報の一例を示す図である。 書き込み要求に従ってデータディスクにデータを追加又は更新する処理の一例を示すフローチャートである。 キャッシュ反映情報の一例を示す図である。 キャッシュ反映処理の一例を示すフローチャートである。 データディスクの設定例を示す図である。 読み出し要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。 書き込み要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。 ストレージ装置の変形例を示す図である。
以下に説明するストレージ制御装置は、複数のディスクを含むストレージ装置を制御する。ストレージ制御装置は、オンライン業務システムのようなI/O要求頻度の高い外部システムからIO要求を受け取り、IO要求に対するストレージ装置のアクティブディスクの応答が遅延すると、スタンバイディスクの回転を開始するように動作する。
以下に、〔1〕ストレージシステムのハードウェア構成、〔2〕ストレージ制御装置とストレージ装置との間のデータ通信のシーケンス、〔3〕ストレージ制御装置のスタンバイディスク制御、〔4〕ストレージ制御装置の機能、〔5〕ストレージ制御装置の処理フロー、及び〔6〕ストレージ装置の変形例の順に説明する。
〔1〕ストレージシステムのハードウェア構成
図1は、ストレージシステムのハードウェア構成を説明する図である。図1に示すストレージシステム300は、ストレージ装置100、及びストレージ制御装置200を含む。なお、ストレージシステム300に含まれるストレージ装置は、ストレージ装置100に限定されず、100A〜Cで示されるストレージ装置100と同じ機能を有する複数のストレージ装置を含むことができる。ストレージ制御装置200は、イーサネット(登録商標)ケーブル等のネットワークケーブル5を介して外部システム10と接続するとともに、FC-AL(Fibre Channel Arbitrated Loop)等のネットワークケーブル15を介してストレージ装置100、及び、100A〜Cと接続する。ストレージ装置100A〜Cに関しては、ストレージ装置100と同じ機能を有するため、以下におけるストレージ装置100の説明は、ストレージ装置100A〜Cについても同じである。
ストレージ装置100と、ストレージ制御装置200とは、iSCSI(Internet Small Computer System Interface)プロトコル等に従って互いにデータ通信する。ストレージ制御装置200と外部システム10も、iSCSIプロトコル等に従って互いにデータ通信する。
〔1.1〕外部システム
外部システム10は、オンライン業務システムのように、ストレージ装置100に対するI/O要求頻度の高いシステムである。外部システム10は、アクセス対象となるデータを、LUN(Logical Unit Number)及び論理アドレスをそれぞれ特定した「読み出し要求」又は「書き込み要求」を、iSCSIプロトコル等に従うメッセージとして、ストレージ制御装置200に送信する。なお、以下において「読み出し要求」及び「書き込み要求」は、「アクセス要求」と呼び、「読み出し」及び「書き込み」を、「アクセス」と呼ぶ。
〔1.2〕ストレージ制御装置
ストレージ制御装置200は、補助記憶部210、ドライブ部230、通信部240、記憶部250、及び制御部260を有する。ストレージ制御装置200に含まれる各ユニットは、バス接続されている。
記憶部250は、データやプログラムを記憶する。記憶部250は、例えば、DRAM(Dynamic Random Access Memory)である。図2は、ストレージ制御装置の記憶部のメモリマップの一例を示す図である。記憶部250は、マッピングテーブル255、ディスク制御情報310、ディスク制御情報310、キャッシュ反映情報320、ディスク状態管理情報330、及びスタンバイキャッシュ状態管理情報340、及びプログラム990を格納する。
マッピングテーブル255の説明は、図3を用いて後述する。また、制御部260がプログラム990を実行することで有する入出力制御機能、キャッシュ管理機能、及び、キャッシュ反映機能を有する。また、これらの機能については、図7を用いて後述する。ディスク制御情報310、キャッシュ反映情報320、ディスク状態管理情報330、及びスタンバイキャッシュ状態管理情報340については、図8、図14、図9、及び図12を用いてそれぞれ後述する。
制御部260は、記憶部250内に格納されるプログラムを実行することで、各ユニットを制御する。制御部260は、例えば、CPU(Central Processing Unit)である。
補助記憶部210は、電源供給が無くても情報を保持可能であり、記憶部250に格納されるプログラム及びデータを記憶する非揮発性の装置である。補助記憶部210は、磁気ディスクを用いたディスクアレイ、又は、フラッシュメモリを用いたSSD(Solid State Drive)等である。
ドライブ部230は、例えば、フロッピー(登録商標)ディスクやCD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの記録媒体590を読み書きする装置である。ドライブ部230は、記録媒体590を回転させるモータや記録媒体590上でデータを読み書きするヘッド等を含む。なお、記録媒体590は、プログラム990を格納することができる。ドライブ部230は、ドライブ部230にセットされた記録媒体590からプログラム990を読み出す。制御部260は、ドライブ部230により読み出されたプログラム990を、記憶部250又は補助記憶部210に格納する。
通信部240は、インターネットプロトコルにおける特定の物理層およびデータリンク層の規格、又は、ファイバーチャネル規格を用いて通信する回路である。通信部240がインターネットプロトコルを使用する場合は、通信部240には、MACアドレス(Media Access Control address)が割り当てられる。また、通信部240がファイバーチャネルを用いて通信を行う場合には、通信部240には、WWN(World Wide Name)が割り当てられる。
ストレージ制御装置200は、ストレージ装置の仮想化を行う装置である。ストレージの仮想化とは、複数のストレージ装置100及び100A〜Cをあたかも単一のストレージ装置があるように、実際のボリュームとは異なる仮想的なボリュームを外部システム10に対して見せる。例えば、ストレージ装置100Aに対する読み出し要求も、ストレージ装置100Bに対する読み出し要求も、外部システム10は、ストレージ制御装置200を一つのストレージ装置と認識して、LUNと論理アドレスによるアクセスを行なうことができる。ストレージ装置の仮想化によって、既存のストレージ装置の容量が不足した際の拡張や、異機種のストレージ装置を組み合わせた利用が可能になる。
ストレージ制御装置200は、外部システム10にみせる仮想的なボリュームと、ストレージ装置100上の実際のボリュームとの間でデータの位置についての関連付けを行うためのマッピングテーブル255を、記憶部250に格納する。ストレージ制御装置200は、マッピングテーブル255を参照して、ストレージ装置100の物理的なLUNと、外部システム10に見せる仮想的なLUNとの間のLUN変換処理を行う。
図3は、マッピングテーブルの一例を示す図である。マッピングテーブル255は、LUNにより特定される仮想ディスクLUN情報と、LUN及びWWNより特定される物理ディスクLUN情報との対応関係を規定するテーブルである。WWNは、ストレージ装置を識別するので、マッピングテーブル255を参照することで、仮想ディスクLUN情報のLUNと、物理ディスクLUN情報のLUN及びストレージ装置とを対応させることができる。そのため、ストレージ制御装置200は、マッピングテーブル255を参照することで、仮想的なボリュームと、ストレージ装置100上の実際のボリュームとの間のデータ位置についての関連付けを行うことができる。
例えば、仮想ディスクLUN情報LUN「1」は、物理ディスクLUN情報「XXX00001」であるストレージ装置100AのLUN「1」に対応する。仮想ディスクLUN情報LUN「2」は、物理ディスクLUN情報「XXX00002」であるストレージ装置100BのLUN「1」に対応する。ストレージ制御装置200は、外部システム10がLUN「1」を対象とするアクセス要求は、ストレージ装置100AのLUN「1」を対象とするアクセス要求として、ストレージ装置100Aに転送する。また、外部システム10がLUN「2」を対象とするアクセス要求は、ストレージ装置100BのLUN「1」を対象とするアクセス要求として、ストレージ装置100Bに転送する。
〔1.3 ストレージ装置〕
ストレージ装置100は、ディスクアレイ部105、ドライブ部120、スタンバイキャッシュ130、通信部140、記憶部150、及び制御部160を有する。ストレージ装置100に含まれる各ユニットは、バス接続されており、制御部160は、記憶部150内に格納されるプログラムを実行することで、各ユニットを制御する。
記憶部150は、データやプログラムを記憶する。記憶部250は、例えば、DRAMである。記憶部150は、記録媒体590から読み出されたプログラム990を格納する。記録媒体590から読み出されたプログラム990は、ストレージ制御装置200の入出力制御機能、キャッシュ管理機能、及び、キャッシュ反映機能を、ストレージ制御装置200又はストレージ装置100が実現するためのプログラムである。
ストレージ装置100がプログラム990を実行する場合は、ストレージシステム300において、ストレージ制御装置200が存在せず、外部システム10とストレージ装置100が直接接続する場合である。その場合、ストレージシステム300がストレージ制御装置200を含まない例においては、ストレージ装置100が上記機能を実現する。当該ケースのストレージシステムのハードウェア構成は、図19を用いて後述する。
制御部160は、記憶部150内に格納されるプログラムを実行することで、各ユニットを制御する。制御部160は、例えば、CPUである。制御部160は、後述するように、ディスクアレイ部105のディスク、又は、スタンバイキャッシュ130のディスクに異常が生じ、異常が通知されると、異常信号をストレージ制御装置200に送信するように通信部140を制御する。
ドライブ部230は、例えば、CD−ROM、DVDなどの記録媒体590を読み書きする装置である。ドライブ部230は、記録媒体590を回転させるモータや記録媒体590上でデータを読み書きするヘッド等を含む。ドライブ部120は、ドライブ部120にセットされた記録媒体590からプログラムを読み出す。制御部160は、ドライブ部120により読み出されたプログラムを、記憶部150に格納する。
ディスクアレイ部105に含まれる各ディスクの位置は、RAID番号及びディスク番号により識別される。ディスク番号は、RAIDを構成するディスクに割り当てられる通番である。ディスク内のデータは、論理アドレスにより識別される。なお、ディスクアレイ部105は、RAIDコントローラを含み、RAIDコントローラが、パリティ演算や、RAID構成に応じて各ディスクにデータを振り分けるディスクデータ管理を行なう。また、RAIDコントローラは、ディスクに異常が生じると、異常を制御部160に通知する。
ディスクアレイ部105に含まれる各ディスクは、RAIDを構成する。図1においては、RAIDを構成する複数のディスクを、RAID−1〜RAID−5で示している。LUNは、RAIDを構成する複数のディスク毎に割り振られることなく、複数のRAIDに対して割り当て、又は、RAIDを構成する複数のディスクの一部に対して割り当てることも可能である。以下では、説明のために、LUNは、RAID−1〜RAID−5の各々を識別するように、割り当てられているものとする。
RAIDを構成する複数のディスクのうちの1つはスタンバイディスクであり、他のディスクはアクティブディスクである。アクティブディスクの数は、RAIDの方式により変わる。アクティブディスク数とスタンバイディスク数の比率は、ストレージシステム300の利用者によって選択できる。ただし、RAID内のアクティブディスク数は、RAIDレベルにより異なる。下記に示す表1は、RAIDレベルと、1つのスタンバイディスクに対するアクティブディスク数との対応関係を定義した表である。
Figure 2012108040
表1に示すように、RAIDレベルが1、つまり、ディスクがミラーリングされている場合、1つのスタンバイディスクに対して、アクディブディスクの数は1つとなる。RAIDレベルが5の場合、RAIDを構成するディスクの「構成台数−1」がアクディブディスク数になる。RAIDレベルが6の場合、RAIDを構成するディスクの「構成台数−2」がアクディブディスク数になる。このように、RAIDのレベルに従って、1つのスタンバイディスクに対するアクティブディスクの数は変わる。スタンバイディスクの数が多いほど、省電力の効果は高いので、RAIDレベル1のとき、最も省電力の効果が高い。
スタンバイキャッシュ130は、スタンバイディスクに書き込むべきデータをキャッシュするディスクである。スタンバイキャッシュ130は、ディスクに異常が生じると、異常を制御部160に通知する。スタンバイディスクが停止中に、アクディブディスクにデータの書き込みが行なわれると、スタンバイディスクとアクティブディスクの格納データが互いに相違する。スタンバイディスク停止中にアクティブディスクに書き込まれたデータは、スタンバイキャッシュ130に保持され、スタンバイディスクの記憶量が制限に達する等の一定条件が成立した場合、スタンバイキャッシュ130で保持されたデータはスタンバイディスクに反映される。なお、ストレージ制御装置200は、スタンバイキャッシュ130に格納されたデータを、スタンバイディスクに反映する条件を規定したキャッシュ反映情報320を参照して、ストレージ装置100に、キャッシュ反映指示を送信する。キャッシュ反映情報320の詳細は、図14を用いて後述する。
スタンバイキャッシュ130は、データディスク132と、メタディスク134とを含む。データディスク132は、スタンバイディスクに反映すべきデータを保持する。データディスク132は、スタンバイディスクのデータを全て格納せずに、定期的にスタンバイディスクにデータを反映することで、スタンバイディスクと同じ容量ではなく、データディスク132の記憶容量を少なくすることができる。
なおデータディスクへの格納データは可変長である。これは、固定長でデータを保持した場合、管理単位(固定長)未満の書き込み要求があった場合、アクティブディスクに格納されるデータの一部を変更した後、キャッシュへ全データを書き込む必要があるためである。キャッシュ内のデータを可変長とすると、アクティブディスク内のデータの一部を変更した場合、変更部分だけをデータディスクに記憶すればよい。そのため、格納データを固定長として場合と比して、データディスクからスタンバイディスクへのデータ反映の回数の減少、反映データ量の削減、データディスクの記憶容量の削減が可能になる。
また、スタンバイキャッシュ130内に格納されるデータは、1世代とする。複数世代とならないように、データキャッシュに格納されるデータは、スタンバイディスクに反映される。
データディスク132は、スタンバイディスクに書き込むべきデータを、循環バッファ方式で保持する。メタディスク134は、データディスク132内の論理アドレスと、スタンバイディスクとの論理アドレスの対応関係を規定するデータマップ管理情報を格納する。
ストレージ制御装置200は、データマップ管理情報261を参照することで、スタンバイディスクに反映すべきデータが、スタンバイキャッシュ130のどこに格納されているかを判別することができる。
〔2〕ストレージ制御装置とストレージ装置との間のデータ通信のシーケンス
図4は、ストレージ制御装置とストレージ装置との間のデータ通信のシーケンスの一例を示すシーケンス図である。
ストレージ制御装置200は、外部システム10から、LUN及び論理アドレスを含むアクセス要求を受信する(S111)。ストレージ制御装置200は、アクセス要求に含まれるLUNを、ストレージ装置100のLUNに変換する(S112)。ストレージ制御装置200は、ストレージ装置100のLUNを含むアクセス要求を、ストレージ装置100に送信する(S113)。ストレージ制御装置200は、アクセス要求の転送から応答の受信までの応答時間の遅延を示す応答遅延時間より、アクティブディスクによる応答時間が長い場合、スタンバイディスクの回転の開始を指示する開始指示命令をストレージ装置100に送信する(S115)。
A.読み出し要求
アクセス要求が、読み出し要求である場合、ストレージ制御装置200は、キャッシュデータ取得要求をストレージ装置100に送信して(S121)、回転を開始したスタンバイストレージが利用可能になるのを待つこと無く、データの取得が可能になる。ストレージ装置100は、キャッシュデータ取得要求の応答をストレージ制御装置200に送信する(S122)。
B.書き込み要求
アクセス要求が、書き込み要求である場合、ストレージ制御装置200は、キャッシュ書き込み要求をストレージ装置100に送信して(S131)、回転を開始したスタンバイストレージが利用可能になるのを待つこと無く、データの書き込みが可能になる。ストレージ装置100は、キャッシュデータ取得要求の応答をストレージ制御装置200に送信する(S132)。
C.スタンバイキャッシュ異常
スタンバイキャッシュ130のディスク等に異常が生じる場合、ストレージ装置100は、異常信号をストレージ制御装置200に送信する(S141)。ストレージ制御装置200は、書き込み要求をストレージ装置100に送信して、回転を開始して起動したスタンバイキャッシュに対してデータの書き込みを行なう(S142)。このように、スタンバイキャッシュ130の異常が生じても、データの書き込みは可能である。
応答(S122又はS132又はS143)を受信したストレージ制御装置200は、応答を外部システム10に転送する(S151)。
〔3〕ストレージ制御装置のスタンバイディスク制御
図5は、読み出し要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。チャート401は、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるケースを示す。C1は、外部システム10からのアクセス要求に対するアクティブディスクの応答時間を示す。時間T1は、応答異常を判別するための閾値を示すアクティブディスク異常時間である。アクティブディスク異常時間は、後述のディスク制御情報310に登録されている。したがって、ストレージ制御装置200は、ディスク制御情報310のアクティブディスク異常時間を参照することで、応答異常を判別することができる。C2は、スタンバイディスクの回転を開始し、定常回転に至る時間を示す。C2経過後、スタンバイディスクからの応答が開始される。チャート401では、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるために、外部システム10への応答に対して遅延時間T2が生じる。
図5に示すチャート402は、アクティブディスクの応答が遅延した場合、応答異常の判断時間の経過を待たずに、スタンバイディスクを回転するとともに、スタンバイキャッシュ130から対象データを読み出すケースを示す。時間T3は、アクティブディスクの応答が遅延しているか否かを判別するための閾値となるアクティブディスク応答遅延時間である。アクティブディスク応答遅延時間も、後述のディスク制御情報310に登録されている。したがって、ストレージ制御装置200は、ディスク制御情報310のアクティブディスク応答遅延時間を参照することで、応答遅延を判別することができる。ストレージ制御装置200は、時間T3以内にアクティブディスクの応答がストレージ装置100から無い場合、時間T3経過後、応答異常の判断時間の経過を待たずに、スタンバイディスクの回転をストレージ装置100に指示する。
C4は、スタンバイディスクの回転を開始して、回転が安定し、読み出し可能になるまでの処理時間である。ストレージ制御装置200は、スタンバイディスクの回転を開始した後に、スタンバイキャッシュ130内に対象データが存在するか否か判断する。C3は、スタンバイキャッシュ130内にデータがあるか否か判断する判断処理の時間である。チャート402では、スタンバイキャッシュ130内に要求データがあるケースを示し、ストレージ制御装置200は、アクティブディスクの異常が判明すれば、スタンバイキャッシュ130からデータを読み出す。
図5に示すチャート403は、スタンバイキャッシュ130に要求対象データが無いため、スタンバイディスクからデータを読み出す。チャート403では、アクティブディスクの応答が遅延した場合、ストレージ制御装置200は、応答異常の判断時間の経過を待たずに、スタンバイディスクを回転するとともに、アクティブディスクの異常が判明すれば、スタンバイディスクから対象データを読み出すケースを示す。C4は、スタンバイディスクの回転を開始して、回転が安定し、読み出し可能になるまでの処理時間である。
このように、チャート402及び403では、外部システム10からのアクセス要求に対するアクティブディスクからの応答が遅延すると、スタンバイディスクの回転を開始することで、アクティブディスク故障後のスタンバイディスク起動による応答遅延を減らすことができる。
図6は、書き込み要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。
チャート411は、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるケースを示す。C1は、外部システム10からのアクセス要求に対するアクティブディスクの応答時間を示す。時間T1は、応答異常を判別するための閾値となる時間である。C2は、スタンバイディスクの回転を開始し、定常回転に至る時間を示す。C2経過後、スタンバイディスクからの応答が開始される。チャート411では、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるために、外部システム10への応答に対して遅延時間T2が生じる。
チャート412は、アクティブディスクの応答が遅延した場合、応答異常の判断時間の経過を待たずに、スタンバイディスクを回転するとともに、スタンバイキャッシュ130に対象データを書き込むケースを示す。時間T3は、アクティブディスクの応答が遅延しているか否かを判別するための閾値となる時間である。C6は、スタンバイキャッシュ130内にデータを書き込む時間である。ストレージ制御装置200は、時間T3以内にアクティブディスクの応答がストレージ装置100から無い場合、時間T3経過後、応答異常の判断時間の経過を待たずに、スタンバイディスクの回転をストレージ装置に指示する。
ストレージ制御装置200は、スタンバイディスクの回転を開始した後に、スタンバイキャッシュ130内に対象データが存在するか否か判断する。C5は、スタンバイディスクの回転を開始して、回転が安定し、書き込み可能になるまでの処理時間である。チャート412では、ストレージ制御装置200は、アクティブディスクの異常が判明すれば、スタンバイディスクにデータを書き込む。
このように、チャート412では、外部システム10からのアクセス要求に対するアクティブディスクからの応答が遅延すると、スタンバイディスクの回転を開始することで、アクティブディスク故障後のスタンバイディスク起動による応答遅延を減らすことができる。
〔4〕ストレージ制御装置の機能
図5及び図6を用いて説明したストレージ制御装置の動作を実現するストレージ制御装置の機能について説明する。図7は、ストレージ制御装置が有する機能構成の一例を示す図である。図7には、入出力制御機能201、キャッシュ管理機能202、及びキャッシュ反映機能203が示される。入出力制御機能201、キャッシュ管理機能202、及びキャッシュ反映機能203は、ハードウェア的には、制御部260による演算や、制御部260による通信部240又は記憶部250に対する制御に相当する。したがって、各機能は、ストレージ制御装置200のハードウェアに相当するため、図7に示される各機能と、外部システム10及びストレージ装置100との間の通信は、ストレージ制御装置200と、外部システム10及びストレージ装置100との間のデータ通信に相当する。
また、入出力制御機能201、キャッシュ管理機能202、及びキャッシュ反映機能203は、ソフトウェア的には、制御部260がプログラム990を実行することで生成するプロセス又はスレッドに相当する。したがって、各機能間のデータのやり取りは、プロセス又はスレッド間のメッセージの送受信に相当する。以下、各機能について説明する。
A.入出力制御機能
入出力制御機能は、上記したストレージの仮想化機能に加えて、マッピングテーブル255を参照して、外部システム10から送信されたディスクへの読み出し要求又は書き込み要求を処理する機能である。入出力制御機能は、ディスクの応答時間を監視する監視機能、図5及び図6を用いて説明したスタンバイディスクの回転の開始を指示する回転制御機能、データ読み込み機能、及びデータ書き込み機能とを含む。
監視機能は、アクディブディスクによる読み出し要求又は書き込み要求の送信から応答の受信までの応答時間を監視する。回転制御機能は、ディスク制御情報310を参照する。
図8は、ディスク制御情報の一例を示す図である。ディスク制御情報310は、アクディブディスク異常時間と、アクディブディスク応答遅延時間とを含む。回転指示機能、ディスク制御情報310を参照して、応答時間が、アクティブディスク応答遅延時間より長い場合、スタンバイディスクの回転の開始を指示する。
図8に示す例ではアクディブディスク応答遅延時間が「5秒」であるので、ストレージ制御装置200の回転制御機能は、アクティブディスクからの応答が「5秒」以上遅延すると、図5及び図6を用いて説明したように、スタンバイディスクの回転を開始する。図8に示す例ではアクディブディスク異常時間が「30秒」であるので、ストレージ制御装置200の回転制御機能は、アクティブディスクからの応答が「30秒」以上遅延すると、アクティブディスクは「異常」であると判断する。そして、ストレージ制御装置200は、後述するディスク制御情報310のアクディブディスクの状態を「異常」にして、アクディブディスクへのアクセスを停止する。
データ読み込み機能は、外部システム10から、LUN及び論理アドレスを含む読み出し要求を受け取ると、マッピングテーブル255を参照して、読み出し要求先のストレージ装置及びLUNを識別する。データ読み込み機能は、識別したストレージ装置に読み出し要求を送信する。データ読み込み機能は、ストレージ装置100から読み出しデータを受け取ると、読み出しデータを、応答として外部システム10に送信する。
データ書き込み機能は、外部システム10から書き込みデータと、LUN及び論理アドレスを含む書き込み要求とを受け取ると、マッピングテーブル255を参照し、書き込み要求先のストレージ装置及びLUNを識別する。データ書き込み機能は、識別したストレージ装置に書き込みデータと、LUN及び論理アドレスを含む書き込み要求を送信する。
入出力制御機能201はさらに、書き込み要求、読み出し要求、及び、無効化要求をキャッシュ管理機能に出力する。なお、無効化要求とは、アクティブディスクが故障したために、スタンバイディスク及びデータディスク132にデータを書き込む処理を行った後に、データディスク132に書き込んだデータのエントリを無効化する要求である。
また、入出力制御機能201は、記憶部250に格納されたディスク状態管理情報330を参照して、故障が生じたディスクへのアクセスを回避するとともに、停止中のスタンバイディスクの回転を開始する。
図9は、ディスク状態管理情報の一例を示す図である。図9に示されるディスク状態管理情報330は、RAID番号で識別されるRAIDを構成するアクディブディスク及びスタンバイディスクの状態が、「正常」又は「異常」であるかを規定する。ディスク状態管理情報330は、RAID番号331、アクティブディスク332、スタンバイディスクAの状態情報333列及びスタンバイディスクBの状態情報334を、エントリ(行)毎に定義する。例えば、RAID番号が「1」であるRAIDを構成するアクディブディスクと、スタンバイディスクAは、「正常」である。RAID番号が「2」であるRAIDを構成するアクディブディスクは「異常」であり、スタンバイディスクA及びBは、「正常」である。RAID番号が「1」であるRAIDを構成するアクディブディスクと、スタンバイディスクAは、「正常」である。
図9に示す例では、RAID番号「2」のエントリのアクディブディスクの状態が「異常」であるので、ディスク状態管理情報330を参照した入出力制御機能201は、スタンバイディスクBの回転を開始して、スタンバイディスクBを起動する。
B.キャッシュ管理機能
キャッシュ管理機能202は、スタンバイキャッシュ130内に保持されるデータを、スタンバイディスクと対応付けて、データマップ管理情報261で管理する。キャッシュ管理機能202は、データマップ管理情報261を参照することで、読み出し要求及び書き込み要求の対象となるデータが、データディスク132内にあるかどうかを判別する。
図10は、データマップ管理情報の一例を示す図である。データマップ管理情報261は、データディスク内の論理アドレスと、スタンバイディスク内の論理アドレスとの対応関係を規定する。図10に示されるように、データマップ管理情報261には、格納番号262毎に、データのエントリを有する。各エントリには、データディスクの開始アドレス263、RAIDグループ番号264と、スタンバイディスク番号265、スタンバイディスクの開始アドレス266、及びデータ長267の各データが入力される。
格納番号262とは、データを格納した順番を示す。データディスクの開始アドレス263とは、データディスク132にデータを格納した際のデータディスク内論理アドレスである。RAIDグループ番号136は、スタンバイディスクが属するRAIDグループ番号である。スタンバイディスク番号265は、RAIDグループ内のスタンバイディスクに付加した通番である。スタンバイディスクの開始アドレス266は、スタンバイディスクへ格納すべきであったデータの開始アドレスである。データ長267は、スタンバイディスクへ格納すべきであったデータのデータ長である。
キャッシュ管理機能202は、データマップ管理情報261を参照して、書き込み要求で指定された論理アドレスのデータがデータディスク132に未格納であるか否か判別する。書き込み要求で指定された論理アドレスのデータがデータディスク132に未格納である場合、キャッシュ管理機能202は、データディスク132にデータを追加して、メタディスク134内のデータマップ管理情報261を追加したデータのメタ情報で更新する。
キャッシュ管理機能202は、データマップ管理情報261を参照して、書き込み要求で指定された論理アドレスのデータがデータディスク132に格納済みであるか否か判別する。新たに書き込むデータが、指定されたアドレスが格納されている領域内であれば、キャッシュ管理機能202は、同じ領域に書き込みデータを上書きし、データマップ管理情報261は変更しない。
データディスク132の領域を超える場合は、既存データのデータを指すメタ情報を無効化し、新たなデータでデータマップ管理情報261を更新する。
読み出し要求で指定された論理アドレスのデータがデータディスク132内に格納済みである場合、キャッシュ管理機能202は、メタディスク134から、データディスク132の論理アドレス、データ長を取得し、該当データをデータディスク132から読み込む。
キャッシュ管理機能202は、スタンバイディスクの論理アドレスからデータディスク132内の論理アドレスを検索することができる。
データマップ管理情報261は、データディスクの論理アドレスからスタンバイディスクの論理アドレスの検索時間、又は、スタンバイディスクの論理アドレスからデータディスクの論理アドレスの検索時間を減らすために高速検索可能なデータ構造としてもよい。
図11は、木のデータ構造を有するデータマップ管理情報の一例を示す図である。図11に示すデータマップ管理情報261は、枝でつながる複数のノードで構成される。211は、RAID番号「1」及びディスク番号「1」のノードを示す。ノード212は、スタンバイディスクの開始アドレスを示し、ノード213は格納番号1の論理アドレスを示す。このように、データマップ管理情報261の全てについて一致検索する必要が無いので、データマップ管理情報261をB木のデータ構造とすることで、検索量を減らし、スタンバイディスクへのアクセス遅延をなくすことができる。
キャッシュ管理機能202は、指定されたRAID上の論理アドレスへの無効化要求を受け付けた際には、データマップ管理情報261から、無効化要求の対象となるエントリを無効化する。この処理はアクティブディスクが故障した場合に直接スタンバイディスクに書き込んだデータがデータディスクに残っていた場合に、該当データのエントリを無効化するのに使用する。キャッシュ反映機能から読み出し要求を受けた場合、メタディスクに保持している情報をすべて取り出し、順番にデータを返却する。
キャッシュ管理機能202はさらに、スタンバイキャッシュ状態管理情報340を参照して、異常のあるデータディスクにはデータを格納しないように動作する。
図12は、スタンバイキャッシュ状態管理情報の一例を示す図である。図12に示されるスタンバイキャッシュ状態管理情報340は、データディスク番号で識別されるデータディスクの状態が、「正常」又は「異常」であるかを規定する。キャッシュ管理機能202は、状態が「異常」であるデータディスクにはアクセスしないように動作する。
図13は、書き込み要求に従ってデータディスクにデータを追加又は更新する処理の一例を示すフローチャートである。ストレージ制御装置200は、外部システム10から書き込み要求とともに書き込みデータを受け取ると、書き込み要求の論理アドレスに対応するエントリを、データマップ管理情報261から取得する(S1001)。ストレージ制御装置200は、データマップ管理情報261において、書き込み要求の論理アドレスに対応するエントリがある場合(S1002 Yes)、データディスク132に書き込みデータを格納する記憶領域があるか否か判断する(S1003)。記憶領域がある場合(S1003 Yes)、ストレージ制御装置200は、データディスク132に書き込みデータを記憶するとともに、当該書き込みデータでデータマップ管理情報261を更新する(S1004)。
記憶領域が無い場合(S1003 No)、データディスク132内において書き込み要求の論理アドレスに対応するデータを削除し、データマップ管理情報261から対応するエントリを削除する(S1005)。書き込み要求の論理アドレスに対応するエントリが無い場合(S1002 No)、又は、S1005の後、データディスク132に書き込みデータを追加する(S1006)。ストレージ制御装置200は、書き込み要求でデータマップ管理情報261を追加して(S1007)、スタンバイキャッシュ130へのデータの書き込み処理を終了する。
C.キャッシュ反映機能
キャッシュ反映機能203は、一定の条件に合致した場合、キャッシュ管理機能から得たスタンバイキャッシュ130の内容の一部または全部をスタンバイディスクに反映する機能である。キャッシュ反映機能203は、キャッシュ反映情報320にしたがって、スタンバイキャッシュ130内のデータを、スタンバイディスクに反映する。
図14は、キャッシュ反映情報の一例を示す図である。キャッシュ反映情報320は、スタンバイディスクのRAIDグループ番号321と、スタンバイディスク番号322、スタンバイディスクの上限容量323、IO時間324、及び、通信時間帯325の各データが、エントリ毎に入力される。上限容量323、IO時間324、及び、通信時間帯325は、キャッシュ反映を行なう条件をそれぞれ示す。
上限容量323は、スタンバイキャッシュ130からスタンバイディスクへのデータ反映を開始する記憶量の上限閾値である。IO時間324は、スタンバイキャッシュ130のI/Oがない時間帯を示す。IO時間324は、スタンバイキャッシュ130が停止中と予め決められている時間である。通信時間帯325は、外部システム10とストレージ制御装置200との間の通信経路の負荷が軽い時間帯である。
キャッシュ反映機能203は、データディスクの記憶容量が上限容量323の値「50%」を超え、IO時間324に示される時間帯であり、通信時間帯325に示す時間帯である等の条件を満たすか判断する。キャッシュ反映機能203は、全条件、又は、何れかの条件が満たされる場合、該当するRAIDグループのディスクに対して、スタンバイキャッシュ130の保持データを、スタンバイディスクに反映する。
図15は、キャッシュ反映処理の一例を示すフローチャートである。キャッシュ反映処理は、アクティブディスクが正常に動作しており、且つスタンバイディスクが停止している場合と、アクティブディスクに異常になり、且つスタンバイディスクが動作している場合に、実行される処理である。キャッシュ反映処理が行われることで、スタンバイキャッシュ130内に保持され、スタンバイディスクに無い同一論理アドレスのデータが、スタンバイディスクに反映されることになる。
ストレージ制御装置200は、スタンバイキャッシュ130がキャッシュ反映情報320に含まれる条件を満たすか否かを判断する(S1021)。キャッシュ反映情報320の条件を満たす場合(S1021 Yes)、ストレージ制御装置200は、スタンバイディスクが起動しているか否かを判断する(S1022)。スタンバイディスクが起動していない場合(S1022 No)、データを反映するために、スタンバイディスクの回転を開始する(S1023)。スタンバイディスクが起動中であると(S1022 Yes)、ストレージ制御装置200は、スタンバイキャッシュ130へ書き込み済み全データをスタンバイディスクに反映するように、ストレージ装置100を制御する(S1024)。スタンバイディスクへのスタンバイキャッシュ130の格納データの反映が終わると、ストレージ制御装置200は、アクティブディスク又はスタンバイキャッシュ130は異常であるかどうか判断する(S1025)。アクディブディスク及びスタンバイキャッシュ130が異常ではない場合(S1025 No)、スタンバイディスクを停止して(S1026)、キャッシュ反映処理を終了する。アクディブディスク又はスタンバイキャッシュ130が異常ではある場合(S1025 Yes)、スタンバイディスクを停止せずに、キャッシュ反映処理を終了する。
図16は、データディスクの設定例を示す図である。図16には、ディスクアレイ部105と、データディスク132とが示される。ディスクアレイ部の可用性を維持するため、データディスク132のディスク数は、各RAIDを構成するスタンバイディスク数のうち最大のスタンバイディスク数にする。図16に示す例では、RAIDレベル6のRAIDグループ3のスタンバイディスク数が「2」であるので、データディスク132の数も「2」となる。このようにすることで、起動が必要なスタンバイディスクにデータを反映する際に、各スタンバイディスクが対応するデータディスクからデータの反映を行うことができるので、スタンバイディスクのデータ反映時間を短縮することができる。また、データディスクの容量は、蓄積させるデータ量と、反映処理が動作中のライト量により設定される。
〔5〕ストレージ制御装置の処理フロー
図17は、読み出し要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。まず、ストレージ制御装置200は、外部システム10から受け取った読み出し要求を、ストレージ装置100に送信する(S1101)。ストレージ制御装置200は、アクティブディスクからの応答が遅延しているか否かを判断する(S1102)。応答が遅延している場合(S1102 Yes)、ストレージ制御装置200は、スタンバイディスクの回転の開始を、ストレージ装置100に指示する(S1103)。応答が遅延していない場合(S1102 No)、又は、スタンバイディスク回転開始(S1103)後、ストレージ制御装置200は、アクティブディスクにエラーが生じているか否か判断する(S1104)。アクティブディスクにエラーが生じている場合(S1104 Yes)、スタンバイキャッシュ130が正常か否かを判断する(S1105)。スタンバイキャッシュ130にエラーが生じている場合(S1105 No)、ストレージ制御装置200は、IOエラーを外部システム10に通知して(S1121)、処理を終了する。スタンバイキャッシュ130が正常である場合(S1105 Yes)、ストレージ制御装置200は、ディスク状態管理情報330のアクティブディスクの状態を「異常」とし、スタンバイディスクの状態を「正常」とする(S1106)。
ストレージ制御装置200は、スタンバイキャッシュ130に読み出し要求の対象となるデータがあるか否か判断する(S1107)。スタンバイキャッシュ130にデータがある場合(S1107 Yes)、ストレージ制御装置200は、スタンバイキャッシュ130からデータを読み込む(S1108)。ストレージ制御装置200は、読み込んだデータを外部システム10に送信して(S1109)、処理を終了する。
スタンバイディスクからではなく、スタンバイキャッシュ130からデータを読み出すことで、スタンバイディスクの回転が安定する前に、外部システム10に応答することができる。
スタンバイキャッシュ130にデータが無い場合(S1107 No)、ストレージ制御装置200は、スタンバイディスクの起動を待って(S1111)、スタンバイディスクからデータを読み込む(S1112)。ストレージ制御装置200は、読み込んだデータを外部システム10に送信して(S1109)、処理を終了する。
アクティブディスクにエラーが生じなかった場合(S1104 No)、ストレージ制御装置200は、アクディブディスクからデータを読み込み(S1131)、電力の消費を防ぐために、スタンバイディスクを停止する(S1132)。次に、ストレージ制御装置200は、読み込んだデータを外部システム10に送信して(S1109)、処理を終了する。
図18は、書き込み要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。まず、ストレージ制御装置200は、外部システム10から受け取った書き込み要求を、ストレージ装置100のアクティブディスクに送信する(S1201)。ストレージ制御装置200は、アクティブディスクからの応答が遅延しているか否かを判断する(S1202)。応答が遅延している場合(S1202 Yes)、ストレージ制御装置200は、スタンバイディスクの回転の開始を、ストレージ装置100に指示する(S1203)。応答が遅延していない場合(S1202 No)、又は、スタンバイディスク回転開始(S1203)後、ストレージ制御装置200は、アクティブディスクにエラーが生じているか否か判断する(S1204)。
アクティブディスクにエラーが生じている場合(S1204 Yes)、スタンバイキャッシュ130が正常か否かを判断する(S1205)。スタンバイキャッシュ130にエラーが生じている場合(S1205 No)、ストレージ制御装置200は、IOエラーを外部システム10に通知する(S1221)。そして、ストレージ制御装置200は、スタンバイディスクにデータを書き込んで(S1207)、処理を終了する。
アクディブディスクにエラーが生じており(S1204 Yes)且つスタンバイディスクが正常である場合(S1205 Yes)、ストレージ制御装置200は、ディスク状態管理情報330のアクティブディスクの状態を「異常」とし、スタンバイディスクの状態を「正常」とする(S1206)。そして、ストレージ制御装置200は、スタンバイディスクにデータを書き込んで(S1207)、処理を終了する。
アクティブディスクが正常である場合(S1204 No)、ストレージ制御装置200は、スタンバイキャッシュ130が正常か否かを判断する(S1211)。スタンバイキャッシュ130にエラーが生じている場合(S1211 No)、ストレージ制御装置200は、バックグラウンドでスタンバイディスクにスタンバイキャッシュ130のデータを反映する(S1212)。ストレージ制御装置200は、アクティブディスクにデータを書き込んで(S1213)、処理を終了する。
アクディブディスクが正常で(S1204 No)且つスタンバイディスクが正常である場合(S1211 Yes)、ストレージ制御装置200は、消費電力削減のためにスタンバイディスクを停止して(S1241)、アクティブディスクにデータを書き込んで(S1213)、処理を終了する。
〔6〕ストレージ装置の変形例
図19は、ストレージ装置の変形例を示す図である。図19に示す変形例のストレージ装置100Dは、ストレージ制御装置200を介さずに、外部システム10から書き込み要求と読み出し要求を直接受け取る。ストレージ装置100Dは、記録媒体590Aに格納されるプログラム990Aをドライブ部120から読み込み、記憶部150に格納する。記憶部150に格納されたプログラム990Aを制御部160が実行することで、ストレージ装置100Dは、図7で説明したストレージ仮想化機能を除く入出力制御機能、キャッシュ管理機能、キャッシュ反映機能を実現し、図6及び図7で説明したような、スタンバイディスクのディスク回転制御を実行する。
10 外部システム
100 ストレージ装置
105 ディスクアレイ部
130 スタンバイキャッシュ
132 データディスク
134 メタディスク
150 記憶部
160 制御部
200 ストレージ制御装置
201 入出力制御機能
202 キャッシュ管理機能
203 キャッシュ反映機能
250 記憶部
255 マッピングテーブル
260 制御部
261 データマップ管理情報
300 ストレージシステム
310 ディスク制御情報
320 キャッシュ反映情報
330 ディスク状態管理情報
340 スタンバイキャッシュ状態管理情報
590 記録媒体
990 プログラム
本発明は、ストレージ制御装置、及び、そのプログラムに関する。
使用していないハードディスク装置のディスクの回転を停止し、ストレージ装置の消費電力を削減する技術がある。この技術は、一定時間I/O(Input/Output)要求の無いディスクの回転を停止し、回転停止中のディスクに対してI/O要求が発生すると、ディスクの回転を再開しI/Oを行える状態にするものである。
ただし、回転停止中のディスクに対してI/Oを行うと、ディスクの回転再開からディスクの回転が安定するまで、最大数分I/Oの応答が返却されない。そのため、従来は、オンライン業務システムに使用するディスクのようなI/O頻度の高いディスクに対しては、ディスク回転の停止を行なわず、バックアップ等のバッチ業務を行なうI/O頻度の低いディスクに対しては、ディスク回転の停止を行なってきた。これにより、バックアップ中以外はI/Oの発生しないバックアップ先ディスクの回転を止めて電力消費を削減し、回転を停止したディスクへのI/Oは、バッチ業務を行うことで、I/Oの待ち時間の影響を隠蔽していた。
一方、オンライン業務システムに使用するディスクのようなI/O頻度の高いディスクに対して電力削減を行う技術がある。そのような技術は、RAID(Redundant Arrays of Inexpensive Disks)などにより冗長化したディスクの一部の回転を停止し、他のディスクを使用するというものである。
特開2009−187450号公報 特開2009−238159号公報 特開2009−048360号公報
以後、説明のために、通常運用で使用するディスクを「アクティブディスク」と呼び、回転を停止するディスクを「スタンバイディスク」と呼ぶ。また、スタンバイディスク停止中に一時的に書き込みデータを溜め込む不揮発媒体を「キャッシュ」と呼ぶ。
冗長化構成された一方のアクティブディスクに故障が生じた場合、冗長化構成されたスタンバイディスクからデータを読み込むにためには、スタンバイディスクを回転し、キャッシュに書き込まれたデータを、スタンバイディスクに反映し、データを読み出す。しかしながら、スタンバイディスクの回転が安定するまでに時間がかかるため、データの読み出し再開まで時間がかかる。
1つの側面では、本発明は、アクティブディスク故障後のスタンバイディスク起動による応答遅延の低減を図ることを目的とする。
1つの案では、起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御する。ストレージ制御装置は、前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部と、を備える。
アクティブディスク故障後のスタンバイディスク起動による応答遅延を減らすことができる。
ストレージシステムのハードウェア構成を説明する図である。 ストレージ制御装置の記憶部のメモリマップの一例を示す図である。 マッピングテーブルの一例を示す図である。 ストレージ制御装置とストレージ装置との間のデータ通信のシーケンスの一例を示すシーケンス図である。 読み出し要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。 書き込み要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。 ストレージ制御装置が有する機能構成の一例を示す図である。 ディスク制御情報の一例を示す図である。 ディスク状態管理情報の一例を示す図である。 データマップ管理情報の一例を示す図である。 B木のデータ構造を有するデータマップ管理情報の一例を示す図である。 スタンバイキャッシュ状態管理情報の一例を示す図である。 書き込み要求に従ってデータディスクにデータを追加又は更新する処理の一例を示すフローチャートである。 キャッシュ反映情報の一例を示す図である。 キャッシュ反映処理の一例を示すフローチャートである。 データディスクの設定例を示す図である。 読み出し要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。 書き込み要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。 ストレージ装置の変形例を示す図である。
以下に説明するストレージ制御装置は、複数のディスクを含むストレージ装置を制御する。ストレージ制御装置は、オンライン業務システムのようなI/O要求頻度の高い外部システムからIO要求を受け取り、IO要求に対するストレージ装置のアクティブディスクの応答が遅延すると、スタンバイディスクの回転を開始するように動作する。
以下に、〔1〕ストレージシステムのハードウェア構成、〔2〕ストレージ制御装置とストレージ装置との間のデータ通信のシーケンス、〔3〕ストレージ制御装置のスタンバイディスク制御、〔4〕ストレージ制御装置の機能、〔5〕ストレージ制御装置の処理フロー、及び〔6〕ストレージ装置の変形例の順に説明する。
〔1〕ストレージシステムのハードウェア構成
図1は、ストレージシステムのハードウェア構成を説明する図である。図1に示すストレージシステム300は、ストレージ装置100、及びストレージ制御装置200を含む。なお、ストレージシステム300に含まれるストレージ装置は、ストレージ装置100に限定されず、100A〜Cで示されるストレージ装置100と同じ機能を有する複数のストレージ装置を含むことができる。ストレージ制御装置200は、イーサネット(登録商標)ケーブル等のネットワークケーブル5を介して外部システム10と接続するとともに、FC-AL(Fibre Channel Arbitrated Loop)等のネットワークケーブル15を介してストレージ装置100、及び、100A〜Cと接続する。ストレージ装置100A〜Cに関しては、ストレージ装置100と同じ機能を有するため、以下におけるストレージ装置100の説明は、ストレージ装置100A〜Cについても同じである。
ストレージ装置100と、ストレージ制御装置200とは、iSCSI(Internet Small Computer System Interface)プロトコル等に従って互いにデータ通信する。ストレージ制御装置200と外部システム10も、iSCSIプロトコル等に従って互いにデータ通信する。
〔1.1〕外部システム
外部システム10は、オンライン業務システムのように、ストレージ装置100に対するI/O要求頻度の高いシステムである。外部システム10は、アクセス対象となるデータを、LUN(Logical Unit Number)及び論理アドレスをそれぞれ特定した「読み出し要求」又は「書き込み要求」を、iSCSIプロトコル等に従うメッセージとして、ストレージ制御装置200に送信する。なお、以下において「読み出し要求」及び「書き込み要求」は、「アクセス要求」と呼び、「読み出し」及び「書き込み」を、「アクセス」と呼ぶ。
〔1.2〕ストレージ制御装置
ストレージ制御装置200は、補助記憶部210、ドライブ部230、通信部240、記憶部250、及び制御部260を有する。ストレージ制御装置200に含まれる各ユニットは、バス接続されている。
記憶部250は、データやプログラムを記憶する。記憶部250は、例えば、DRAM(Dynamic Random Access Memory)である。図2は、ストレージ制御装置の記憶部のメモリマップの一例を示す図である。記憶部250は、マッピングテーブル255、ディスク制御情報310、キャッシュ反映情報320、ディスク状態管理情報330、及びスタンバイキャッシュ状態管理情報340、及びプログラム990を格納する。
マッピングテーブル255の説明は、図3を用いて後述する。また、制御部260がプログラム990を実行することで有する入出力制御機能、キャッシュ管理機能、及び、キャッシュ反映機能を有する。また、これらの機能については、図7を用いて後述する。ディスク制御情報310、キャッシュ反映情報320、ディスク状態管理情報330、及びスタンバイキャッシュ状態管理情報340については、図8、図14、図9、及び図12を用いてそれぞれ後述する。
制御部260は、記憶部250内に格納されるプログラムを実行することで、各ユニットを制御する。制御部260は、例えば、CPU(Central Processing Unit)である。
補助記憶部210は、電源供給が無くても情報を保持可能であり、記憶部250に格納されるプログラム及びデータを記憶する非揮発性の装置である。補助記憶部210は、磁気ディスクを用いたディスクアレイ、又は、フラッシュメモリを用いたSSD(Solid State Drive)等である。
ドライブ部230は、例えば、フロッピー(登録商標)ディスクやCD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの記録媒体590を読み書きする装置である。ドライブ部230は、記録媒体590を回転させるモータや記録媒体590上でデータを読み書きするヘッド等を含む。なお、記録媒体590は、プログラム990を格納することができる。ドライブ部230は、ドライブ部230にセットされた記録媒体590からプログラム990を読み出す。制御部260は、ドライブ部230により読み出されたプログラム990を、記憶部250又は補助記憶部210に格納する。
通信部240は、インターネットプロトコルにおける特定の物理層およびデータリンク層の規格、又は、ファイバーチャネル規格を用いて通信する回路である。通信部240がインターネットプロトコルを使用する場合は、通信部240には、MACアドレス(Media Access Control address)が割り当てられる。また、通信部240がファイバーチャネルを用いて通信を行う場合には、通信部240には、WWN(World Wide Name)が割り当てられる。
ストレージ制御装置200は、ストレージ装置の仮想化を行う装置である。ストレージの仮想化とは、複数のストレージ装置100及び100A〜Cをあたかも単一のストレージ装置があるように、実際のボリュームとは異なる仮想的なボリュームを外部システム10に対して見せる。例えば、ストレージ装置100Aに対する読み出し要求も、ストレージ装置100Bに対する読み出し要求も、外部システム10は、ストレージ制御装置200を一つのストレージ装置と認識して、LUNと論理アドレスによるアクセスを行なうことができる。ストレージ装置の仮想化によって、既存のストレージ装置の容量が不足した際の拡張や、異機種のストレージ装置を組み合わせた利用が可能になる。
ストレージ制御装置200は、外部システム10にみせる仮想的なボリュームと、ストレージ装置100上の実際のボリュームとの間でデータの位置についての関連付けを行うためのマッピングテーブル255を、記憶部250に格納する。ストレージ制御装置200は、マッピングテーブル255を参照して、ストレージ装置100の物理的なLUNと、外部システム10に見せる仮想的なLUNとの間のLUN変換処理を行う。
図3は、マッピングテーブルの一例を示す図である。マッピングテーブル255は、LUNにより特定される仮想ディスクLUN情報と、LUN及びWWNより特定される物理ディスクLUN情報との対応関係を規定するテーブルである。WWNは、ストレージ装置を識別するので、マッピングテーブル255を参照することで、仮想ディスクLUN情報のLUNと、物理ディスクLUN情報のLUN及びストレージ装置とを対応させることができる。そのため、ストレージ制御装置200は、マッピングテーブル255を参照することで、仮想的なボリュームと、ストレージ装置100上の実際のボリュームとの間のデータ位置についての関連付けを行うことができる。
例えば、仮想ディスクLUN情報LUN「1」は、物理ディスクLUN情報「XXX00001」であるストレージ装置100AのLUN「1」に対応する。仮想ディスクLUN情報LUN「2」は、物理ディスクLUN情報「XXX00002」であるストレージ装置100BのLUN「1」に対応する。ストレージ制御装置200は、外部システム10がLUN「1」を対象とするアクセス要求は、ストレージ装置100AのLUN「1」を対象とするアクセス要求として、ストレージ装置100Aに転送する。また、外部システム10がLUN「2」を対象とするアクセス要求は、ストレージ装置100BのLUN「1」を対象とするアクセス要求として、ストレージ装置100Bに転送する。
〔1.3 ストレージ装置〕
ストレージ装置100は、ディスクアレイ部105、ドライブ部120、スタンバイキャッシュ130、通信部140、記憶部150、及び制御部160を有する。ストレージ装置100に含まれる各ユニットは、バス接続されており、制御部160は、記憶部150内に格納されるプログラムを実行することで、各ユニットを制御する。
記憶部150は、データやプログラムを記憶する。記憶部250は、例えば、DRAMである。記憶部150は、記録媒体590から読み出されたプログラム990を格納する。記録媒体590から読み出されたプログラム990は、ストレージ制御装置200の入出力制御機能、キャッシュ管理機能、及び、キャッシュ反映機能を、ストレージ制御装置200又はストレージ装置100が実現するためのプログラムである。
ストレージ装置100がプログラム990を実行する場合は、ストレージシステム300において、ストレージ制御装置200が存在せず、外部システム10とストレージ装置100が直接接続する場合である。その場合、ストレージシステム300がストレージ制御装置200を含まない例においては、ストレージ装置100が上記機能を実現する。当該ケースのストレージシステムのハードウェア構成は、図19を用いて後述する。
制御部160は、記憶部150内に格納されるプログラムを実行することで、各ユニットを制御する。制御部160は、例えば、CPUである。制御部160は、後述するように、ディスクアレイ部105のディスク、又は、スタンバイキャッシュ130のディスクに異常が生じ、異常が通知されると、異常信号をストレージ制御装置200に送信するように通信部140を制御する。
ドライブ部230は、例えば、CD−ROM、DVDなどの記録媒体590を読み書きする装置である。ドライブ部230は、記録媒体590を回転させるモータや記録媒体590上でデータを読み書きするヘッド等を含む。ドライブ部120は、ドライブ部120にセットされた記録媒体590からプログラムを読み出す。制御部160は、ドライブ部120により読み出されたプログラムを、記憶部150に格納する。
ディスクアレイ部105に含まれる各ディスクの位置は、RAID番号及びディスク番号により識別される。ディスク番号は、RAIDを構成するディスクに割り当てられる通番である。ディスク内のデータは、論理アドレスにより識別される。なお、ディスクアレイ部105は、RAIDコントローラを含み、RAIDコントローラが、パリティ演算や、RAID構成に応じて各ディスクにデータを振り分けるディスクデータ管理を行なう。また、RAIDコントローラは、ディスクに異常が生じると、異常を制御部160に通知する。
ディスクアレイ部105に含まれる各ディスクは、RAIDを構成する。図1においては、RAIDを構成する複数のディスクを、RAID−1〜RAID−5で示している。LUNは、RAIDを構成する複数のディスク毎に割り振られることなく、複数のRAIDに対して割り当て、又は、RAIDを構成する複数のディスクの一部に対して割り当てることも可能である。以下では、説明のために、LUNは、RAID−1〜RAID−5の各々を識別するように、割り当てられているものとする。
RAIDを構成する複数のディスクのうちの1つはスタンバイディスクであり、他のディスクはアクティブディスクである。アクティブディスクの数は、RAIDの方式により変わる。アクティブディスク数とスタンバイディスク数の比率は、ストレージシステム300の利用者によって選択できる。ただし、RAID内のアクティブディスク数は、RAIDレベルにより異なる。下記に示す表1は、RAIDレベルと、1つのスタンバイディスクに対するアクティブディスク数との対応関係を定義した表である。
Figure 2012108040
表1に示すように、RAIDレベルが1、つまり、ディスクがミラーリングされている場合、1つのスタンバイディスクに対して、アクディブディスクの数は1つとなる。RAIDレベルが5の場合、RAIDを構成するディスクの「構成台数−1」がアクディブディスク数になる。RAIDレベルが6の場合、RAIDを構成するディスクの「構成台数−2」がアクディブディスク数になる。このように、RAIDのレベルに従って、1つのスタンバイディスクに対するアクティブディスクの数は変わる。スタンバイディスクの数が多いほど、省電力の効果は高いので、RAIDレベル1のとき、最も省電力の効果が高い。
スタンバイキャッシュ130は、スタンバイディスクに書き込むべきデータをキャッシュするディスクである。スタンバイキャッシュ130は、ディスクに異常が生じると、異常を制御部160に通知する。スタンバイディスクが停止中に、アクディブディスクにデータの書き込みが行なわれると、スタンバイディスクとアクティブディスクの格納データが互いに相違する。スタンバイディスク停止中にアクティブディスクに書き込まれたデータは、スタンバイキャッシュ130に保持され、スタンバイディスクの記憶量が制限に達する等の一定条件が成立した場合、スタンバイキャッシュ130で保持されたデータはスタンバイディスクに反映される。なお、ストレージ制御装置200は、スタンバイキャッシュ130に格納されたデータを、スタンバイディスクに反映する条件を規定したキャッシュ反映情報320を参照して、ストレージ装置100に、キャッシュ反映指示を送信する。キャッシュ反映情報320の詳細は、図14を用いて後述する。
スタンバイキャッシュ130は、データディスク132と、メタディスク134とを含む。データディスク132は、スタンバイディスクに反映すべきデータを保持する。データディスク132は、スタンバイディスクのデータを全て格納せずに、定期的にスタンバイディスクにデータを反映することで、スタンバイディスクと同じ容量ではなく、データディスク132の記憶容量を少なくすることができる。
なおデータディスクへの格納データは可変長である。これは、固定長でデータを保持した場合、管理単位(固定長)未満の書き込み要求があった場合、アクティブディスクに格納されるデータの一部を変更した後、キャッシュへ全データを書き込む必要があるためである。キャッシュ内のデータを可変長とすると、アクティブディスク内のデータの一部を変更した場合、変更部分だけをデータディスクに記憶すればよい。そのため、格納データを固定長として場合と比して、データディスクからスタンバイディスクへのデータ反映の回数の減少、反映データ量の削減、データディスクの記憶容量の削減が可能になる。
また、スタンバイキャッシュ130内に格納されるデータは、1世代とする。複数世代とならないように、データキャッシュに格納されるデータは、スタンバイディスクに反映される。
データディスク132は、スタンバイディスクに書き込むべきデータを、循環バッファ方式で保持する。メタディスク134は、データディスク132内の論理アドレスと、スタンバイディスクとの論理アドレスの対応関係を規定するデータマップ管理情報を格納する。
ストレージ制御装置200は、データマップ管理情報261を参照することで、スタンバイディスクに反映すべきデータが、スタンバイキャッシュ130のどこに格納されているかを判別することができる。
〔2〕ストレージ制御装置とストレージ装置との間のデータ通信のシーケンス
図4は、ストレージ制御装置とストレージ装置との間のデータ通信のシーケンスの一例を示すシーケンス図である。
ストレージ制御装置200は、外部システム10から、LUN及び論理アドレスを含むアクセス要求を受信する(S111)。ストレージ制御装置200は、アクセス要求に含まれるLUNを、ストレージ装置100のLUNに変換する(S112)。ストレージ制御装置200は、ストレージ装置100のLUNを含むアクセス要求を、ストレージ装置100に送信する(S113)。ストレージ制御装置200は、アクセス要求の転送から応答の受信までの応答時間の遅延を示す応答遅延時間より、アクティブディスクによる応答時間が長い場合、スタンバイディスクの回転の開始を指示する開始指示命令をストレージ装置100に送信する(S115)。
A.読み出し要求
アクセス要求が、読み出し要求である場合、ストレージ制御装置200は、キャッシュデータ取得要求をストレージ装置100に送信して(S121)、回転を開始したスタンバイストレージが利用可能になるのを待つこと無く、データの取得が可能になる。ストレージ装置100は、キャッシュデータ取得要求の応答をストレージ制御装置200に送信する(S122)。
B.書き込み要求
アクセス要求が、書き込み要求である場合、ストレージ制御装置200は、キャッシュ書き込み要求をストレージ装置100に送信して(S131)、回転を開始したスタンバイストレージが利用可能になるのを待つこと無く、データの書き込みが可能になる。ストレージ装置100は、キャッシュ書き込み要求の応答をストレージ制御装置200に送信する(S132)。
C.スタンバイキャッシュ異常
スタンバイキャッシュ130のディスク等に異常が生じる場合、ストレージ装置100は、異常信号をストレージ制御装置200に送信する(S141)。ストレージ制御装置200は、書き込み要求をストレージ装置100に送信して、回転を開始して起動したスタンバイキャッシュに対してデータの書き込みを行なう(S142)。このように、スタンバイキャッシュ130の異常が生じても、データの書き込みは可能である。
応答(S122又はS132又はS143)を受信したストレージ制御装置200は、応答を外部システム10に転送する(S151)。
〔3〕ストレージ制御装置のスタンバイディスク制御
図5は、読み出し要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。チャート401は、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるケースを示す。C1は、外部システム10からのアクセス要求に対するアクティブディスクの応答時間を示す。時間T1は、応答異常を判別するための閾値を示すアクティブディスク異常時間である。アクティブディスク異常時間は、後述のディスク制御情報310に登録されている。したがって、ストレージ制御装置200は、ディスク制御情報310のアクティブディスク異常時間を参照することで、応答異常を判別することができる。C2は、スタンバイディスクの回転を開始し、定常回転に至る時間を示す。C2経過後、スタンバイディスクからの応答が開始される。チャート401では、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるために、外部システム10への応答に対して遅延時間T2が生じる。
図5に示すチャート402は、アクティブディスクの応答が遅延した場合、応答異常の判断時間の経過を待たずに、スタンバイディスクを回転するとともに、スタンバイキャッシュ130から対象データを読み出すケースを示す。時間T3は、アクティブディスクの応答が遅延しているか否かを判別するための閾値となるアクティブディスク応答遅延時間である。アクティブディスク応答遅延時間も、後述のディスク制御情報310に登録されている。したがって、ストレージ制御装置200は、ディスク制御情報310のアクティブディスク応答遅延時間を参照することで、応答遅延を判別することができる。ストレージ制御装置200は、時間T3以内にアクティブディスクの応答がストレージ装置100から無い場合、時間T3経過後、応答異常の判断時間の経過を待たずに、スタンバイディスクの回転をストレージ装置100に指示する。
C4は、スタンバイディスクの回転を開始して、回転が安定し、読み出し可能になるまでの処理時間である。ストレージ制御装置200は、スタンバイディスクの回転を開始した後に、スタンバイキャッシュ130内に対象データが存在するか否か判断する。C3は、スタンバイキャッシュ130内にデータがあるか否か判断する判断処理の時間である。チャート402では、スタンバイキャッシュ130内に要求データがあるケースを示し、ストレージ制御装置200は、アクティブディスクの異常が判明すれば、スタンバイキャッシュ130からデータを読み出す。
図5に示すチャート403は、スタンバイキャッシュ130に要求対象データが無いため、スタンバイディスクからデータを読み出す。チャート403では、アクティブディスクの応答が遅延した場合、ストレージ制御装置200は、応答異常の判断時間の経過を待たずに、スタンバイディスクを回転するとともに、アクティブディスクの異常が判明すれば、スタンバイディスクから対象データを読み出すケースを示す。C4は、スタンバイディスクの回転を開始して、回転が安定し、読み出し可能になるまでの処理時間である。
このように、チャート402及び403では、外部システム10からのアクセス要求に対するアクティブディスクからの応答が遅延すると、スタンバイディスクの回転を開始することで、アクティブディスク故障後のスタンバイディスク起動による応答遅延を減らすことができる。
図6は、書き込み要求に対するスタンバイディスクのディスク回転制御の一例を示すタイムチャートである。
チャート411は、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるケースを示す。C1は、外部システム10からのアクセス要求に対するアクティブディスクの応答時間を示す。時間T1は、応答異常を判別するための閾値となる時間である。C2は、スタンバイディスクの回転を開始し、定常回転に至る時間を示す。C2経過後、スタンバイディスクからの応答が開始される。チャート411では、アクティブディスクのエラー検出後にスタンバイディスクの回転を始めるために、外部システム10への応答に対して遅延時間T2が生じる。
チャート412は、アクティブディスクの応答が遅延した場合、応答異常の判断時間の経過を待たずに、スタンバイディスクを回転するとともに、スタンバイキャッシュ130に対象データを書き込むケースを示す。時間T3は、アクティブディスクの応答が遅延しているか否かを判別するための閾値となる時間である。C6は、スタンバイキャッシュ130内にデータを書き込む時間である。ストレージ制御装置200は、時間T3以内にアクティブディスクの応答がストレージ装置100から無い場合、時間T3経過後、応答異常の判断時間の経過を待たずに、スタンバイディスクの回転をストレージ装置に指示する。
ストレージ制御装置200は、スタンバイディスクの回転を開始した後に、スタンバイキャッシュ130内に対象データが存在するか否か判断する。C5は、スタンバイディスクの回転を開始して、回転が安定し、書き込み可能になるまでの処理時間である。チャート412では、ストレージ制御装置200は、アクティブディスクの異常が判明すれば、スタンバイディスクにデータを書き込む。
このように、チャート412では、外部システム10からのアクセス要求に対するアクティブディスクからの応答が遅延すると、スタンバイディスクの回転を開始することで、アクティブディスク故障後のスタンバイディスク起動による応答遅延を減らすことができる。
〔4〕ストレージ制御装置の機能
図5及び図6を用いて説明したストレージ制御装置の動作を実現するストレージ制御装置の機能について説明する。図7は、ストレージ制御装置が有する機能構成の一例を示す図である。図7には、入出力制御機能201、キャッシュ管理機能202、及びキャッシュ反映機能203が示される。入出力制御機能201、キャッシュ管理機能202、及びキャッシュ反映機能203は、ハードウェア的には、制御部260による演算や、制御部260による通信部240又は記憶部250に対する制御に相当する。したがって、各機能は、ストレージ制御装置200のハードウェアに相当するため、図7に示される各機能と、外部システム10及びストレージ装置100との間の通信は、ストレージ制御装置200と、外部システム10及びストレージ装置100との間のデータ通信に相当する。
また、入出力制御機能201、キャッシュ管理機能202、及びキャッシュ反映機能203は、ソフトウェア的には、制御部260がプログラム990を実行することで生成するプロセス又はスレッドに相当する。したがって、各機能間のデータのやり取りは、プロセス又はスレッド間のメッセージの送受信に相当する。以下、各機能について説明する。
A.入出力制御機能
入出力制御機能は、上記したストレージの仮想化機能に加えて、マッピングテーブル255を参照して、外部システム10から送信されたディスクへの読み出し要求又は書き込み要求を処理する機能である。入出力制御機能は、ディスクの応答時間を監視する監視機能、図5及び図6を用いて説明したスタンバイディスクの回転の開始を指示する回転制御機能、データ読み込み機能、及びデータ書き込み機能とを含む。
監視機能は、アクディブディスクによる読み出し要求又は書き込み要求の送信から応答の受信までの応答時間を監視する。回転制御機能は、ディスク制御情報310を参照する。
図8は、ディスク制御情報の一例を示す図である。ディスク制御情報310は、アクディブディスク異常時間と、アクディブディスク応答遅延時間とを含む。回転指示機能は、ディスク制御情報310を参照して、応答時間が、アクティブディスク応答遅延時間より長い場合、スタンバイディスクの回転の開始を指示する。
図8に示す例ではアクディブディスク応答遅延時間が「5秒」であるので、ストレージ制御装置200の回転制御機能は、アクティブディスクからの応答が「5秒」以上遅延すると、図5及び図6を用いて説明したように、スタンバイディスクの回転を開始する。図8に示す例ではアクディブディスク異常時間が「30秒」であるので、ストレージ制御装置200の回転制御機能は、アクティブディスクからの応答が「30秒」以上遅延すると、アクティブディスクは「異常」であると判断する。そして、ストレージ制御装置200は、後述するディスク制御情報310のアクディブディスクの状態を「異常」にして、アクディブディスクへのアクセスを停止する。
データ読み込み機能は、外部システム10から、LUN及び論理アドレスを含む読み出し要求を受け取ると、マッピングテーブル255を参照して、読み出し要求先のストレージ装置及びLUNを識別する。データ読み込み機能は、識別したストレージ装置に読み出し要求を送信する。データ読み込み機能は、ストレージ装置100から読み出しデータを受け取ると、読み出しデータを、応答として外部システム10に送信する。
データ書き込み機能は、外部システム10から書き込みデータと、LUN及び論理アドレスを含む書き込み要求とを受け取ると、マッピングテーブル255を参照し、書き込み要求先のストレージ装置及びLUNを識別する。データ書き込み機能は、識別したストレージ装置に書き込みデータと、LUN及び論理アドレスを含む書き込み要求を送信する。
入出力制御機能201はさらに、書き込み要求、読み出し要求、及び、無効化要求をキャッシュ管理機能に出力する。なお、無効化要求とは、アクティブディスクが故障したために、スタンバイディスク及びデータディスク132にデータを書き込む処理を行った後に、データディスク132に書き込んだデータのエントリを無効化する要求である。
また、入出力制御機能201は、記憶部250に格納されたディスク状態管理情報330を参照して、故障が生じたディスクへのアクセスを回避するとともに、停止中のスタンバイディスクの回転を開始する。
図9は、ディスク状態管理情報の一例を示す図である。図9に示されるディスク状態管理情報330は、RAID番号で識別されるRAIDを構成するアクディブディスク及びスタンバイディスクの状態が、「正常」又は「異常」であるかを規定する。ディスク状態管理情報330は、RAID番号331、アクティブディスク状態情報332、スタンバイディスクAの状態情報333列及びスタンバイディスクBの状態情報334を、エントリ(行)毎に定義する。例えば、RAID番号が「1」であるRAIDを構成するアクディブディスクと、スタンバイディスクAは、「正常」である。RAID番号が「2」であるRAIDを構成するアクディブディスクは「異常」であり、スタンバイディスクA及びBは、「正常」である。RAID番号が「3」であるRAIDを構成するアクディブディスクと、スタンバイディスクAは、「正常」である。
図9に示す例では、RAID番号「2」のエントリのアクディブディスクの状態が「異常」であるので、ディスク状態管理情報330を参照した入出力制御機能201は、スタンバイディスクBの回転を開始して、スタンバイディスクBを起動する。
B.キャッシュ管理機能
キャッシュ管理機能202は、スタンバイキャッシュ130内に保持されるデータを、スタンバイディスクと対応付けて、データマップ管理情報261で管理する。キャッシュ管理機能202は、データマップ管理情報261を参照することで、読み出し要求及び書き込み要求の対象となるデータが、データディスク132内にあるかどうかを判別する。
図10は、データマップ管理情報の一例を示す図である。データマップ管理情報261は、データディスク内の論理アドレスと、スタンバイディスク内の論理アドレスとの対応関係を規定する。図10に示されるように、データマップ管理情報261には、格納番号262毎に、データのエントリを有する。各エントリには、データディスクの開始アドレス263、RAIDグループ番号264と、スタンバイディスク番号265、スタンバイディスクの開始アドレス266、及びデータ長267の各データが入力される。
格納番号262とは、データを格納した順番を示す。データディスクの開始アドレス263とは、データディスク132にデータを格納した際のデータディスク内論理アドレスである。RAIDグループ番号136は、スタンバイディスクが属するRAIDグループ番号である。スタンバイディスク番号265は、RAIDグループ内のスタンバイディスクに付加した通番である。スタンバイディスクの開始アドレス266は、スタンバイディスクへ格納すべきであったデータの開始アドレスである。データ長267は、スタンバイディスクへ格納すべきであったデータのデータ長である。
キャッシュ管理機能202は、データマップ管理情報261を参照して、書き込み要求で指定された論理アドレスのデータがデータディスク132に未格納であるか否か判別する。書き込み要求で指定された論理アドレスのデータがデータディスク132に未格納である場合、キャッシュ管理機能202は、データディスク132にデータを追加して、メタディスク134内のデータマップ管理情報261を追加したデータのメタ情報で更新する。
キャッシュ管理機能202は、データマップ管理情報261を参照して、書き込み要求で指定された論理アドレスのデータがデータディスク132に格納済みであるか否か判別する。新たに書き込むデータが、指定されたアドレスが格納されている領域内であれば、キャッシュ管理機能202は、同じ領域に書き込みデータを上書きし、データマップ管理情報261は変更しない。
データディスク132の領域を超える場合は、既存データのデータを指すメタ情報を無効化し、新たなデータでデータマップ管理情報261を更新する。
読み出し要求で指定された論理アドレスのデータがデータディスク132内に格納済みである場合、キャッシュ管理機能202は、メタディスク134から、データディスク132の論理アドレス、データ長を取得し、該当データをデータディスク132から読み込む。
キャッシュ管理機能202は、スタンバイディスクの論理アドレスからデータディスク132内の論理アドレスを検索することができる。
データマップ管理情報261は、データディスクの論理アドレス基づくスタンバイディスクの論理アドレスの検索時間、又は、スタンバイディスクの論理アドレスに基づくデータディスクの論理アドレスの検索時間を減らすために高速検索可能なデータ構造としてもよい。
図11は、木のデータ構造を有するデータマップ管理情報の一例を示す図である。図11に示すデータマップ管理情報261は、枝でつながる複数のノードで構成される。211は、RAID番号「1」及びディスク番号「1」のノードを示す。ノード212は、スタンバイディスクの開始アドレスを示し、ノード213は格納番号1の論理アドレスを示す。このように、データマップ管理情報261の全てについて一致検索する必要が無いので、データマップ管理情報261をB木のデータ構造とすることで、検索量を減らし、スタンバイディスクへのアクセス遅延をなくすことができる。
キャッシュ管理機能202は、指定されたRAID上の論理アドレスへの無効化要求を受け付けた際には、データマップ管理情報261から、無効化要求の対象となるエントリを無効化する。この処理はアクティブディスクが故障した場合に直接スタンバイディスクに書き込んだデータがデータディスクに残っていた場合に、該当データのエントリを無効化するのに使用する。キャッシュ反映機能から読み出し要求を受けた場合、メタディスクに保持している情報をすべて取り出し、順番にデータを返却する。
キャッシュ管理機能202はさらに、スタンバイキャッシュ状態管理情報340を参照して、異常のあるデータディスクにはデータを格納しないように動作する。
図12は、スタンバイキャッシュ状態管理情報の一例を示す図である。図12に示されるスタンバイキャッシュ状態管理情報340は、データディスク番号で識別されるデータディスクの状態が、「正常」又は「異常」であるかを規定する。キャッシュ管理機能202は、状態が「異常」であるデータディスクにはアクセスしないように動作する。
図13は、書き込み要求に従ってデータディスクにデータを追加又は更新する処理の一例を示すフローチャートである。ストレージ制御装置200は、外部システム10から書き込み要求とともに書き込みデータを受け取ると、書き込み要求の論理アドレスに対応するエントリを、データマップ管理情報261から取得する(S1001)。ストレージ制御装置200は、データマップ管理情報261において、書き込み要求の論理アドレスに対応するエントリがある場合(S1002 Yes)、データディスク132に書き込みデータを格納する記憶領域があるか否か判断する(S1003)。記憶領域がある場合(S1003 Yes)、ストレージ制御装置200は、データディスク132に書き込みデータを記憶するとともに、当該書き込みデータでデータマップ管理情報261を更新する(S1004)。
記憶領域が無い場合(S1003 No)、データディスク132内において書き込み要求の論理アドレスに対応するデータを削除し、データマップ管理情報261から対応するエントリを削除する(S1005)。書き込み要求の論理アドレスに対応するエントリが無い場合(S1002 No)、又は、S1005の後、データディスク132に書き込みデータを追加する(S1006)。ストレージ制御装置200は、書き込み要求でデータマップ管理情報261を追加して(S1007)、スタンバイキャッシュ130へのデータの書き込み処理を終了する。
C.キャッシュ反映機能
キャッシュ反映機能203は、一定の条件に合致した場合、キャッシュ管理機能から得たスタンバイキャッシュ130の内容の一部または全部をスタンバイディスクに反映する機能である。キャッシュ反映機能203は、キャッシュ反映情報320にしたがって、スタンバイキャッシュ130内のデータを、スタンバイディスクに反映する。
図14は、キャッシュ反映情報の一例を示す図である。キャッシュ反映情報320は、スタンバイディスクのRAIDグループ番号321と、スタンバイディスク番号322、スタンバイディスクの上限容量323、IO時間324、及び、通信時間帯325の各データが、エントリ毎に入力される。上限容量323、IO時間324、及び、通信時間帯325は、キャッシュ反映を行なう条件をそれぞれ示す。
上限容量323は、スタンバイキャッシュ130からスタンバイディスクへのデータ反映を開始する記憶量の上限閾値である。IO時間324は、スタンバイキャッシュ130のI/Oがない時間帯を示す。IO時間324は、スタンバイキャッシュ130が停止中と予め決められている時間である。通信時間帯325は、外部システム10とストレージ制御装置200との間の通信経路の負荷が軽い時間帯である。
キャッシュ反映機能203は、データディスクの記憶容量が上限容量323の値「50%」を超え、IO時間324に示される時間帯であり、通信時間帯325に示す時間帯である等の条件を満たすか判断する。キャッシュ反映機能203は、全条件、又は、何れかの条件が満たされる場合、該当するRAIDグループのディスクに対して、スタンバイキャッシュ130の保持データを、スタンバイディスクに反映する。
図15は、キャッシュ反映処理の一例を示すフローチャートである。キャッシュ反映処理は、アクティブディスクが正常に動作しており、且つスタンバイディスクが停止している場合と、アクティブディスクに異常になり、且つスタンバイディスクが動作している場合に、実行される処理である。キャッシュ反映処理が行われることで、スタンバイキャッシュ130内に保持され、スタンバイディスクに無い同一論理アドレスのデータが、スタンバイディスクに反映されることになる。
ストレージ制御装置200は、スタンバイキャッシュ130がキャッシュ反映情報320に含まれる条件を満たすか否かを判断する(S1021)。キャッシュ反映情報320の条件を満たす場合(S1021 Yes)、ストレージ制御装置200は、スタンバイディスクが起動しているか否かを判断する(S1022)。スタンバイディスクが起動していない場合(S1022 No)、データを反映するために、スタンバイディスクの回転を開始する(S1023)。スタンバイディスクが起動中であると(S1022 Yes)、ストレージ制御装置200は、スタンバイキャッシュ130へ書き込み済み全データをスタンバイディスクに反映するように、ストレージ装置100を制御する(S1024)。スタンバイディスクへのスタンバイキャッシュ130の格納データの反映が終わると、ストレージ制御装置200は、アクティブディスク又はスタンバイキャッシュ130は異常であるかどうか判断する(S1025)。アクディブディスク及びスタンバイキャッシュ130が異常ではない場合(S1025 No)、スタンバイディスクを停止して(S1026)、キャッシュ反映処理を終了する。アクディブディスク又はスタンバイキャッシュ130が異常である場合(S1025 Yes)、スタンバイディスクを停止せずに、キャッシュ反映処理を終了する。
図16は、データディスクの設定例を示す図である。図16には、ディスクアレイ部105と、データディスク132とが示される。ディスクアレイ部の可用性を維持するため、データディスク132のディスク数は、各RAIDを構成するスタンバイディスク数のうち最大のスタンバイディスク数にする。図16に示す例では、RAIDレベル6のRAIDグループ3のスタンバイディスク数が「2」であるので、データディスク132の数も「2」となる。このようにすることで、起動が必要なスタンバイディスクにデータを反映する際に、各スタンバイディスクが対応するデータディスクからデータの反映を行うことができるので、スタンバイディスクのデータ反映時間を短縮することができる。また、データディスクの容量は、蓄積させるデータ量と、反映処理が動作中のライト量により設定される。
〔5〕ストレージ制御装置の処理フロー
図17は、読み出し要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。まず、ストレージ制御装置200は、外部システム10から受け取った読み出し要求を、ストレージ装置100に送信する(S1101)。ストレージ制御装置200は、アクティブディスクからの応答が遅延しているか否かを判断する(S1102)。応答が遅延している場合(S1102 Yes)、ストレージ制御装置200は、スタンバイディスクの回転の開始を、ストレージ装置100に指示する(S1103)。応答が遅延していない場合(S1102 No)、又は、スタンバイディスク回転開始(S1103)後、ストレージ制御装置200は、アクティブディスクにエラーが生じているか否か判断する(S1104)。アクティブディスクにエラーが生じている場合(S1104 Yes)、スタンバイキャッシュ130が正常か否かを判断する(S1105)。スタンバイキャッシュ130にエラーが生じている場合(S1105 No)、ストレージ制御装置200は、IOエラーを外部システム10に通知して(S1121)、処理を終了する。スタンバイキャッシュ130が正常である場合(S1105 Yes)、ストレージ制御装置200は、ディスク状態管理情報330のアクティブディスクの状態を「異常」とし、スタンバイディスクの状態を「正常」とする(S1106)。
ストレージ制御装置200は、スタンバイキャッシュ130に読み出し要求の対象となるデータがあるか否か判断する(S1107)。スタンバイキャッシュ130にデータがある場合(S1107 Yes)、ストレージ制御装置200は、スタンバイキャッシュ130からデータを読み込む(S1108)。ストレージ制御装置200は、読み込んだデータを外部システム10に送信して(S1109)、処理を終了する。
スタンバイディスクからではなく、スタンバイキャッシュ130からデータを読み出すことで、スタンバイディスクの回転が安定する前に、外部システム10に応答することができる。
スタンバイキャッシュ130にデータが無い場合(S1107 No)、ストレージ制御装置200は、スタンバイディスクの起動を待って(S1111)、スタンバイディスクからデータを読み込む(S1112)。ストレージ制御装置200は、読み込んだデータを外部システム10に送信して(S1109)、処理を終了する。
アクティブディスクにエラーが生じなかった場合(S1104 No)、ストレージ制御装置200は、アクディブディスクからデータを読み込み(S1131)、電力の消費を防ぐために、スタンバイディスクを停止する(S1132)。次に、ストレージ制御装置200は、読み込んだデータを外部システム10に送信して(S1109)、処理を終了する。
図18は、書き込み要求動作中にアクティブディスクでの故障が生じた場合の動作処理の一例を示すフローチャートである。まず、ストレージ制御装置200は、外部システム10から受け取った書き込み要求を、ストレージ装置100のアクティブディスクに送信する(S1201)。ストレージ制御装置200は、アクティブディスクからの応答が遅延しているか否かを判断する(S1202)。応答が遅延している場合(S1202 Yes)、ストレージ制御装置200は、スタンバイディスクの回転の開始を、ストレージ装置100に指示する(S1203)。応答が遅延していない場合(S1202 No)、又は、スタンバイディスク回転開始(S1203)後、ストレージ制御装置200は、アクティブディスクにエラーが生じているか否か判断する(S1204)。
アクティブディスクにエラーが生じている場合(S1204 Yes)、スタンバイキャッシュ130が正常か否かを判断する(S1205)。スタンバイキャッシュ130にエラーが生じている場合(S1205 No)、ストレージ制御装置200は、IOエラーを外部システム10に通知する(S1221)。そして、ストレージ制御装置200は、スタンバイディスクにデータを書き込んで(S1207)、処理を終了する。
アクディブディスクにエラーが生じており(S1204 Yes)且つスタンバイディスクが正常である場合(S1205 Yes)、ストレージ制御装置200は、ディスク状態管理情報330のアクティブディスクの状態を「異常」とし、スタンバイディスクの状態を「正常」とする(S1206)。そして、ストレージ制御装置200は、スタンバイディスクにデータを書き込んで(S1207)、処理を終了する。
アクティブディスクが正常である場合(S1204 No)、ストレージ制御装置200は、スタンバイキャッシュ130が正常か否かを判断する(S1211)。スタンバイキャッシュ130にエラーが生じている場合(S1211 No)、ストレージ制御装置200は、バックグラウンドでスタンバイディスクにスタンバイキャッシュ130のデータを反映する(S1212)。ストレージ制御装置200は、アクティブディスクにデータを書き込んで(S1213)、処理を終了する。
アクディブディスクが正常で(S1204 No)且つスタンバイディスクが正常である場合(S1211 Yes)、ストレージ制御装置200は、消費電力削減のためにスタンバイディスクを停止して(S1241)、アクティブディスクにデータを書き込んで(S1213)、処理を終了する。
〔6〕ストレージ装置の変形例
図19は、ストレージ装置の変形例を示す図である。図19に示す変形例のストレージ装置100Dは、ストレージ制御装置200を介さずに、外部システム10から書き込み要求と読み出し要求を直接受け取る。ストレージ装置100Dは、記録媒体590Aに格納されるプログラム990Aをドライブ部120から読み込み、記憶部150に格納する。記憶部150に格納されたプログラム990Aを制御部160が実行することで、ストレージ装置100Dは、図7で説明したストレージ仮想化機能を除く入出力制御機能、キャッシュ管理機能、キャッシュ反映機能を実現し、図6及び図7で説明したような、スタンバイディスクのディスク回転制御を実行する。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部と、
を備えることを特徴とするストレージ制御装置。
(付記2)
前記ストレージ装置は、前記起動中の第1ディスクに記憶され、且つ、前記停止中の第2ディスクに記憶されていないデータを保持するキャッシュ部を有し、
前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、応答遅延時間より長い場合、前記制御部はさらに、前記読み出し要求に対するデータの読み出しを指示するキャッシュデータ読み出し命令を、前記ストレージ装置に送信するように前記通信部を制御して、前記キャッシュ部からデータを読み出すことを特徴とする付記1に記載のストレージ制御装置。
(付記3)
前記読み出し要求に対応したデータが前記キャッシュ部に保持されておらず、且つ、前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記制御部は、前記回転の開始により起動中の前記第2ディスクからデータを読み出すように前記通信部を制御して、前記第2ディスクからデータを読み出すことを特徴とする付記2に記載のストレージ制御装置。
(付記4)
起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、前記第1ディスク又は前記第2ディスクから前記読み出し要求又は書き込み要求に対する応答を受信する通信手段と、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転指示手段と、
を備えることを特徴とするストレージ制御装置。
(付記5)
前記起動中の第1ディスクに記憶され、且つ、前記停止中の第2ディスクに記憶されていないデータを保持するキャッシュ手段と、
前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、応答遅延時間より長い場合、前記読み出し要求に対応したデータをキャッシュ手段から読み出すキャッシュ管理手段と、をさらに備えることを特徴とする付記4に記載のストレージ制御装置。
(付記6)
前記読み出し要求に対応したデータが前記キャッシュ手段に保持されておらず、且つ、前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記回転の開始により起動中の前記第2ディスクからデータを読み出すデータ読み出し手段をさらに備えることを特徴とする付記5に記載のストレージ制御装置。
(付記7)
起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、前記第1ディスク又は前記第2ディスクから前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する制御部と、
を備えることを特徴とするストレージ制御装置。
(付記8)
起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置と、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部、及び、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部を、を有するストレージ制御装置と、
を備えることを特徴とするストレージシステム。
(付記9)
起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置の制御方法であって、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する、
ことを特徴とする制御方法。
(付記10)
起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するためのプログラムであって、コンピュータに、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信する処理と、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する処理と、
を実行させることを特徴とするプログラム。
(付記11)
前記ストレージ装置は、前記起動中の第1ディスクに記憶され、且つ、前記停止中の第2ディスクに記憶されていないデータを保持するキャッシュ部を有し、
前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、応答遅延時間より長い場合、前記読み出し要求に対するデータの読み出しを指示するキャッシュデータ読み出し命令を、前記ストレージ装置に送信するように通信部を制御して、前記キャッシュ部からデータを読み出す処理を、制御部に実行させることを特徴とする付記10に記載のプログラム。
(付記12)
前記読み出し要求に対応したデータが前記キャッシュ部に保持されておらず、且つ、前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記回転の開始により起動中の前記第2ディスクからデータを読み出すように通信部を制御して、前記第2ディスクからデータを読み出す処理を、制御部に実行させることを特徴とする付記11に記載のプログラム。
(付記13)
起動中の第1ディスクと停止中の第2ディスクと制御部とを含むストレージを制御するためのプログラムであって、前記制御部に、
前記ストレージ装置に対して読み出し要求又は書き込み要求を送信する処理と、
前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する応答を、前記第1ディスクから受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する処理と、
を実行させることを特徴とするプログラム。
10 外部システム
100 ストレージ装置
105 ディスクアレイ部
130 スタンバイキャッシュ
132 データディスク
134 メタディスク
150 記憶部
160 制御部
200 ストレージ制御装置
201 入出力制御機能
202 キャッシュ管理機能
203 キャッシュ反映機能
250 記憶部
255 マッピングテーブル
260 制御部
261 データマップ管理情報
300 ストレージシステム
310 ディスク制御情報
320 キャッシュ反映情報
330 ディスク状態管理情報
340 スタンバイキャッシュ状態管理情報
590 記録媒体
990 プログラム

Claims (13)

  1. 起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部と、
    を備えることを特徴とするストレージ制御装置。
  2. 前記ストレージ装置は、前記起動中の第1ディスクに記憶され、且つ、前記停止中の第2ディスクに記憶されていないデータを保持するキャッシュ部を有し、
    前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記制御部はさらに、前記読み出し要求に対するデータの読み出しを指示するキャッシュデータ読み出し命令を、前記ストレージ装置に送信するように前記通信部を制御して、前記キャッシュ部からデータを読み出すことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記読み出し要求に対応したデータが前記キャッシュ部に保持されておらず、且つ、前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記制御部は、前記回転の開始により起動中の前記第2ディスクからデータを読み出すように前記通信部を制御して、前記第2ディスクからデータを読み出すことを特徴とする請求項2に記載のストレージ制御装置。
  4. 起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、前記第1ディスク又は前記第2ディスクから前記読み出し要求又は書き込み要求に対する応答を受信する通信手段と、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転指示手段と、
    を備えることを特徴とするストレージ制御装置。
  5. 前記起動中の第1ディスクに記憶され、且つ、前記停止中の第2ディスクに記憶されていないデータを保持するキャッシュ手段と、
    前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記読み出し要求に対応したデータをキャッシュ手段から読み出すキャッシュ管理手段と、をさらに備えることを特徴とする請求項4に記載のストレージ制御装置。
  6. 前記読み出し要求に対応したデータが前記キャッシュ手段に保持されておらず、且つ、前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記回転の開始により起動中の前記第2ディスクからデータを読み出すデータ読み出し手段をさらに備えることを特徴とする請求項5に記載のストレージ制御装置。
  7. 起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置であって、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、前記第1ディスク又は前記第2ディスクから前記読み出し要求又は書き込み要求に対する応答を受信する通信部と、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する制御部と、
    を備えることを特徴とするストレージ制御装置。
  8. 起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置と、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、該ストレージ装置から前記読み出し要求又は書き込み要求に対する応答を受信する通信部、及び、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する前記応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する回転開始命令を前記ストレージ装置に送信するように前記通信部を制御する制御部を、を有するストレージ制御装置と、
    を備えることを特徴とするストレージシステム。
  9. 起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するストレージ制御装置の制御方法であって、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信し、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する、
    ことを特徴とする制御方法。
  10. 起動中の第1ディスクと停止中の第2ディスクとを含むストレージ装置を制御するためのプログラムであって、コンピュータに、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信する処理と、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する応答を受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する処理と、
    を実行させることを特徴とするプログラム。
  11. 前記ストレージ装置は、前記起動中の第1ディスクに記憶され、且つ、前記停止中の第2ディスクに記憶されていないデータを保持するキャッシュ部を有し、
    前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記読み出し要求に対するデータの読み出しを指示するキャッシュデータ読み出し命令を、前記ストレージ装置に送信するように通信部を制御して、前記キャッシュ部からデータを読み出す処理を、制御部に実行させることを特徴とする請求項10に記載のプログラム。
  12. 前記読み出し要求に対応したデータが前記キャッシュ部に保持されておらず、且つ、前記起動中の第1ディスクへの前記読み出し要求に対する前記応答を受信するまでの時間が、前記応答遅延時間より長い場合、前記回転の開始により起動中の前記第2ディスクからデータを読み出すように通信部を制御して、前記第2ディスクからデータを読み出す処理を、制御部に実行させることを特徴とする請求項11に記載のプログラム。
  13. 起動中の第1ディスクと停止中の第2ディスクと制御部とを含むストレージを制御するためのプログラムであって、前記制御部に、
    前記ストレージ装置に対して読み出し要求又は書き込み要求を送信する処理と、
    前記起動中の第1ディスクへの前記読み出し要求又は書き込み要求に対する応答を、前記第1ディスクから受信するまでの時間が、所定の閾値より長い場合、前記第2ディスクの回転の開始を指示する処理と、
    を実行させることを特徴とするプログラム。
JP2012556716A 2011-02-10 2011-02-10 ストレージ制御装置、及び、そのプログラム Active JP5761209B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/052899 WO2012108040A1 (ja) 2011-02-10 2011-02-10 ストレージ制御装置、ストレージ装置、ストレージシステム、ストレージ制御方法、及び、そのプログラム

Publications (2)

Publication Number Publication Date
JPWO2012108040A1 true JPWO2012108040A1 (ja) 2014-07-03
JP5761209B2 JP5761209B2 (ja) 2015-08-12

Family

ID=46638279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012556716A Active JP5761209B2 (ja) 2011-02-10 2011-02-10 ストレージ制御装置、及び、そのプログラム

Country Status (4)

Country Link
US (1) US9418014B2 (ja)
EP (1) EP2674851B1 (ja)
JP (1) JP5761209B2 (ja)
WO (1) WO2012108040A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725930B2 (en) * 2018-08-27 2020-07-28 Micron Technology, Inc. Logical to physical memory address mapping tree

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341493A (en) * 1990-09-21 1994-08-23 Emc Corporation Disk storage system with write preservation during power failure
US5481733A (en) * 1994-06-15 1996-01-02 Panasonic Technologies, Inc. Method for managing the power distributed to a disk drive in a laptop computer
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US6799283B1 (en) * 1998-12-04 2004-09-28 Matsushita Electric Industrial Co., Ltd. Disk array device
JP4325817B2 (ja) * 1999-04-05 2009-09-02 株式会社日立製作所 ディスクアレイ装置
US6862668B2 (en) * 2002-02-25 2005-03-01 International Business Machines Corporation Method and apparatus for using cache coherency locking to facilitate on-line volume expansion in a multi-controller storage system
US7089448B2 (en) * 2002-09-18 2006-08-08 Netezza Corporation Disk mirror architecture for database appliance
JP2005122453A (ja) * 2003-10-16 2005-05-12 Hitachi Ltd ストレージ装置のディスクコントローラ制御方式およびストレージ装置
JP4426262B2 (ja) * 2003-11-26 2010-03-03 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の障害回避方法
JP4518541B2 (ja) * 2004-01-16 2010-08-04 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
US7313721B2 (en) * 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
US20060002246A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corporation Sector-based worm implementation on random access memory
WO2006057038A1 (ja) * 2004-11-25 2006-06-01 Fujitsu Limited Raid管理プログラムおよびraid管理方法
US8180855B2 (en) * 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
US7380088B2 (en) * 2005-02-04 2008-05-27 Dot Hill Systems Corp. Storage device method and apparatus
US7389396B1 (en) * 2005-04-25 2008-06-17 Network Appliance, Inc. Bounding I/O service time
US20070061509A1 (en) * 2005-09-09 2007-03-15 Vikas Ahluwalia Power management in a distributed file system
JP4794370B2 (ja) * 2006-06-20 2011-10-19 株式会社日立製作所 省電力とパフォーマンスを両立したストレージシステム及び記憶制御方法
JP4984689B2 (ja) * 2006-07-04 2012-07-25 日本電気株式会社 ディスクアレイ制御装置、方法、およびプログラム
JP2008027312A (ja) * 2006-07-24 2008-02-07 Hitachi Ltd ストレージ装置及び変換ボード
US7411757B2 (en) * 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation
JP4897387B2 (ja) * 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法
US8015433B2 (en) * 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
JP5008955B2 (ja) * 2006-11-28 2012-08-22 株式会社日立製作所 節電機能を備えたストレージシステム
US7643281B2 (en) * 2006-12-13 2010-01-05 Hitachi, Ltd. Storage controller
US7793042B2 (en) * 2007-01-05 2010-09-07 Dell Products, Lp System, method, and module for reducing power states for storage devices and associated logical volumes
US20080168226A1 (en) * 2007-01-05 2008-07-10 Accusys. Inc. Correction method for reading data of disk array system
JP4386932B2 (ja) 2007-08-17 2009-12-16 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
US20090125754A1 (en) * 2007-11-08 2009-05-14 Rashmi Chandra Apparatus, system, and method for improving system reliability by managing switched drive networks
JP2009163562A (ja) * 2008-01-08 2009-07-23 Fujitsu Ltd ストレージシステム、ストレージシステムの制御部、ストレージシステムの制御方法
US8799535B2 (en) * 2008-01-11 2014-08-05 Akamai Technologies, Inc. Storage of data utilizing scheduling queue locations associated with different data rates
JP5141278B2 (ja) 2008-02-08 2013-02-13 日本電気株式会社 ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム
JP5146032B2 (ja) * 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
JP5379988B2 (ja) 2008-03-28 2013-12-25 株式会社日立製作所 ストレージシステム
JP4838832B2 (ja) * 2008-08-29 2011-12-14 富士通株式会社 ストレージシステムの制御方法、ストレージシステム、及びストレージ装置
US8180736B2 (en) * 2008-08-29 2012-05-15 Red Hat, Inc. Methods for improving file system performance
JP2010146630A (ja) * 2008-12-18 2010-07-01 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ及びディスク・アレイ・システム
JP2010211888A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp ディスク記憶装置
US8510496B1 (en) * 2009-04-27 2013-08-13 Netapp, Inc. Scheduling access requests for a multi-bank low-latency random read memory device
WO2010137180A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Storage system and its power control method
US9619163B2 (en) * 2009-06-26 2017-04-11 International Business Machines Corporation Maintaining access times in storage systems employing power saving techniques
WO2011001537A1 (en) * 2009-06-30 2011-01-06 Hitachi,Ltd. Storage system and its information processing method
WO2011102429A1 (ja) * 2010-02-19 2011-08-25 国立大学法人 東京工業大学 ストレージ装置、その制御方法およびシステム管理プログラム
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8429455B2 (en) * 2010-07-16 2013-04-23 Hitachi, Ltd. Computer system management method and management system
US8589655B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8639971B1 (en) * 2011-02-17 2014-01-28 Scale Computing Condition detection and reporting in complex systems

Also Published As

Publication number Publication date
EP2674851B1 (en) 2018-01-17
US9418014B2 (en) 2016-08-16
JP5761209B2 (ja) 2015-08-12
WO2012108040A1 (ja) 2012-08-16
EP2674851A1 (en) 2013-12-18
EP2674851A4 (en) 2016-11-02
US20140052910A1 (en) 2014-02-20

Similar Documents

Publication Publication Date Title
US8738975B2 (en) Runtime dynamic performance skew elimination
US8370571B2 (en) Transfer control of a storage volume between storage controllers in a cluster
US9075729B2 (en) Storage system and method of controlling data transfer in storage system
US8689044B2 (en) SAS host controller cache tracking
US20140281123A1 (en) System and method for handling i/o write requests
JP2007156597A (ja) ストレージ装置
JP2009043030A (ja) ストレージシステム
US8140811B2 (en) Nonvolatile storage thresholding
US8086881B2 (en) Power control of secondary copy storage based on journal storage usage and accumulation speed rate
US9836223B2 (en) Changing storage volume ownership using cache memory
WO2014162586A1 (ja) ストレージシステムおよびストレージシステム制御方法
JP2021128802A (ja) 情報処理システム、ストレージシステム及びデータ転送方法
JP2017091456A (ja) 制御装置、制御プログラムおよび制御方法
JP2010049502A (ja) ストレージサブシステム、及びこれを有するストレージシステム
US7493443B2 (en) Storage system utilizing improved management of control information
US9298397B2 (en) Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
US20130054883A1 (en) Method and system for shared high speed cache in sas switches
JP5712535B2 (ja) ストレージ装置、制御部およびストレージ装置制御方法
JP5761209B2 (ja) ストレージ制御装置、及び、そのプログラム
US11385815B2 (en) Storage system
JP7288191B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP5333932B2 (ja) ディスクアレイ装置及びその制御方法
JP2010170268A (ja) ストレージシステムの制御方法、ストレージ制御装置及びプログラム
JP2015099495A (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141128

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150525

R150 Certificate of patent or registration of utility model

Ref document number: 5761209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150