JP2016126561A - ストレージ制御装置、ストレージ装置およびプログラム - Google Patents

ストレージ制御装置、ストレージ装置およびプログラム Download PDF

Info

Publication number
JP2016126561A
JP2016126561A JP2015000281A JP2015000281A JP2016126561A JP 2016126561 A JP2016126561 A JP 2016126561A JP 2015000281 A JP2015000281 A JP 2015000281A JP 2015000281 A JP2015000281 A JP 2015000281A JP 2016126561 A JP2016126561 A JP 2016126561A
Authority
JP
Japan
Prior art keywords
storage
backup data
storage device
hdd
buffer
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
JP2015000281A
Other languages
English (en)
Inventor
清人 南浦
Kiyoto Minamiura
清人 南浦
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
Priority to JP2015000281A priority Critical patent/JP2016126561A/ja
Priority to US14/968,968 priority patent/US20160196085A1/en
Publication of JP2016126561A publication Critical patent/JP2016126561A/ja
Pending legal-status Critical Current

Links

Images

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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0656Data buffering arrangements
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

【課題】省電力化すること。【解決手段】記憶装置22,24は、バックアップデータの格納用であり、電源オフされている。記憶装置21,23は、電源オンされている。制御部12は、記憶装置22に対するバックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置22に対応付けて記憶部11に格納する。制御部12は、所定のタイミングで、記憶装置22の電源をオンにする。制御部12は、電源をオンにした記憶装置22に対応付けられたバックアップデータを記憶部11から読み出して記憶装置22に書き込む。制御部12は、書き込みが完了した記憶装置22の電源をオフにする。【選択図】図1

Description

本発明はストレージ制御装置、ストレージ装置およびプログラムに関する。
現在、データの保存にストレージ装置が利用されている。ストレージ装置は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置を複数搭載して大容量の記憶領域を利用可能とする。例えば、ストレージ装置は、記憶装置へのアクセス制御を行うコントローラに接続される。ストレージ装置は、コントローラを内蔵することもある。コントローラは、ホストコンピュータからのアクセス要求を受け付けて、各記憶装置へのデータの読み書きを制御する。
例えば、複数のコントローラを設けてコントローラの負荷を軽減させる提案がある。この提案では、2台のコントローラそれぞれにキャッシュ機構を設ける。そして、両系統のキャッシュメモリに同一データを格納する信頼性重視モード、両系統のキャッシュメモリに独立にデータを格納する性能重視モード、または、両者を折衷した平均モードの何れかで動作可能とし、運用に応じてディスクキャッシュ機能を最適化する。
ところで、記憶装置の駆動には電力を消費する。そこで、記憶装置では節電が図られている。例えば、ディスクキャッシュをもつコンピュータシステムに装着された1つのローカル・ディスクを省電力化する提案がある。この提案では、前回のフラッシュから所定時間を経過したとき、前回のディスクアクセスから所定時間を経過したとき、または、ディスクアクセス回数が所定値に達したときの何れかに、ディスクキャッシュをフラッシュする。そして、最後のディスクアクセスから一定時間が経過すると、1つのローカル・ディスクの回転モータを停止させる。
特開平7−110788号公報 特開平9−44314号公報
データの消失や破損のリスクに備えて、データの複製をバックアップとして取得することがある。バックアップ処理により生成されたデータ(バックアップデータと称する)はストレージ装置内の複数の記憶装置に格納され得る。この場合、ストレージ装置の省電力化に対して改善の余地がある。
例えば、ストレージ装置内の全ての記憶装置を電源オフにしておき、書き込み時だけ全ての記憶装置を一律に電源オンにすることも考えられる。しかし、複数の記憶装置を一律に電源オンにしてしまうと、書き込み対象のデータが未だ存在していない記憶装置の電源もオンになる可能性があり、当該記憶装置により余計な電力が消費されるおそれがある。特に、バックアップ処理によるストレージ装置への書き込み頻度は、通常の業務処理に比べて少ない。このため、複数の記憶装置を一律に電源オンにすると、バックアップデータの格納用の記憶装置が無駄に電源オンされ、余計な電力が消費される可能性が高い。
1つの側面では、本発明は、省電力化できるストレージ制御装置、ストレージ装置およびプログラムを提供することを目的とする。
1つの態様では、ストレージ制御装置が提供される。このストレージ制御装置は、記憶部と制御部とを有する。記憶部は、バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置それぞれを書き込み先とするバックアップデータを記憶する。制御部は、記憶装置が電源オフされている場合に、何れかの記憶装置に対するバックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置毎に対応付けて記憶部に格納させ、所定のタイミングで、記憶部に格納されたバックアップデータの書き込み先の複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、電源をオンにした記憶装置に対応付けられたバックアップデータを記憶部から読み出して該記憶装置に書き込み、書き込みが完了した記憶装置の電源をオフにする、制御を行う。
また、1つの態様では、ストレージ装置が提供される。このストレージ装置は、複数の記憶装置と記憶部と書き込み制御部と電源制御部とを有する。複数の記憶装置は、バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能である。記憶部は、記憶装置が電源オフされている場合に、バックアップデータを記憶する。書き込み制御部は、バックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置毎に対応付けて記憶部に格納し、所定のタイミングで、記憶部に格納されたバックアップデータの書き込みを指示する。電源制御部は、指示に対応する記憶装置の電源を個別にオンにし、電源をオンにした記憶装置に対応付けられたバックアップデータを記憶部から読み出して該記憶装置に書き込み、書き込みが完了した記憶装置の電源をオフにする。
また、1つの態様では、コンピュータによって実行されるプログラムが提供される。このプログラムは、バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置が電源オフされている場合に、何れかの記憶装置に対するバックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置に対応付けて記憶部に格納し、所定のタイミングで、記憶部に格納されたバックアップデータの書き込み先の複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、電源をオンにした記憶装置に対応付けられたバックアップデータを記憶部から読み出して該記憶装置に書き込み、書き込みが完了した記憶装置の電源をオフにする、処理をコンピュータに実行させる。
1つの側面では、省電力化できる。
第1の実施の形態のストレージ制御装置を示す図である。 第2の実施の形態の情報処理システムを示す図である。 ストレージ装置のハードウェア例を示す図である。 管理装置のハードウェア例を示す図である。 ストレージ装置の機能例を示す図である。 論理ボリュームとアグリゲート/RAIDとの対応の例を示す図である。 論理ボリュームとバッファとの対応の例を示す図である。 論理ボリューム管理テーブルの例を示す図である。 ディスク管理テーブルの例を示す図である。 バックアップ設定情報の例を示す図である。 ディスク電源管理テーブルの例を示す図である。 バッファの例を示す図である。 電源投入時処理の例を示すフローチャートである。 ディスク故障時処理の例を示すフローチャートである。 バックアップデータ書き込み処理の例を示すフローチャートである。 論理ボリュームとHDDとの対応関係の例を示す図である。 第3の実施の形態のストレージ制御装置のハードウェア例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ制御装置を示す図である。ストレージ制御装置10は、ストレージ装置20に接続される。ストレージ装置20は、HDDやSSDなどの複数の記憶装置21,22,23,24を収納する装置である。ストレージ制御装置10は、複数の記憶装置に対するデータの書き込みや読み出しを制御する。ストレージ制御装置10は、コントローラと呼ばれることもある。ストレージ制御装置10は、ストレージ装置20に内蔵されてもよい。
ストレージ制御装置10は、例えばネットワーク(図示を省略している)に接続される。ネットワークには、他のストレージ装置を制御する他のストレージ制御装置、および、サーバコンピュータやクライアントコンピュータなどの種々の装置が接続される。ストレージ制御装置10は、ストレージ装置20に対するデータの書き込みや読み出しの要求を、ネットワークに接続された他の装置から受け付ける。ストレージ制御装置10は、要求に応じて、ストレージ装置20の何れかの記憶装置にデータを書き込んだり、ストレージ装置20の何れかの記憶装置からデータを読み出したりする。ストレージ制御装置10は、データの書き込みや読み出しの結果を、要求元の装置に応答する。
ここで、記憶装置21,23は、業務処理で扱われるデータの保持に用いられる。記憶装置22,24は、業務処理で扱われるデータに対して取得されたバックアップデータの保持に用いられる。記憶装置22,24に格納されるデータは、業務処理の実行に応じて直接更新されるわけではなく、バックアップ用である。バックアップデータは、例えば、他のストレージ制御装置によって生成され、ストレージ制御装置10に送信される。バックアップデータは、サーバコンピュータやクライアントコンピュータなどによって生成され、ストレージ制御装置10に送信されることもある。なお、記憶装置21,22,23,24には識別情報が付与されている。記憶装置21の識別情報は“a”である。記憶装置22の識別情報は“b”である。記憶装置23の識別情報は“c”である。記憶装置24の識別情報は“d”である。また、記憶装置21,22,23,24は、個々に電源のオンオフ制御が可能である。
ストレージ制御装置10は、記憶部11および制御部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDDやフラッシュメモリなどの不揮発性記憶装置でもよい。ただし、後述するように記憶部11はバックアップデータを一時的に格納するバッファとして用いられる。このため、記憶部11は不揮発性記憶装置であることが好ましい。ストレージ制御装置10の予期しない電源断などで保持データが喪失されるのを防げるからである。制御部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。制御部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部11は、記憶装置22,24それぞれに格納するバックアップデータを一時的に格納しておくためのバッファ11a,11bを有する。バッファ11aは、記憶装置22に対して書き込みが要求されたバックアップデータを格納するための記憶領域である。バッファ11bは、記憶装置24に対して書き込みが要求されたバックアップデータを格納するための記憶領域である。
例えば、記憶部11において、バッファ11aに相当するアドレス範囲が記憶装置22に対応付けて予め確保される。例えば、制御部12は、記憶部11の第1のアドレス範囲を記憶装置22の識別情報“b”に対応付けて管理する。この場合、第1のアドレス範囲に対応する記憶領域がバッファ11aである。同様に、制御部12は、記憶部11の第2のアドレス範囲を記憶装置24の識別情報“d”に対応付けて管理する。この場合、第2のアドレス範囲に対応する記憶領域がバッファ11bである。あるいは、記憶装置22を書き込み先とするバックアップデータは、記憶装置22の識別情報“b”が(例えば、制御部12により)付加されて記憶部11に格納されてもよい。その場合、記憶装置22の識別情報“b”が付加されたバックアップデータが格納されている記憶領域の集合をバッファ11aと考えることができる。バッファ11bもバッファ11aと同様である。
制御部12は、バックアップデータ格納用の記憶装置22,24を電源オフにしている。例えば、制御部12は、ストレージ装置20の起動時、ストレージ装置20内の記憶装置21,22,23,24が電源オン状態になると、記憶装置21,22,23,24の認識を行う。その後、制御部12は、バックアップデータの格納用である記憶装置22,24の電源をオフにする。バックアップデータの格納用とする記憶装置を示す情報は、ストレージ装置20の何れかの記憶装置に予め格納されている。制御部12は、当該情報を参照することで何れの記憶装置がバックアップデータの格納用であるかを判別する。
制御部12は、電源オフされている記憶装置22,23のうちの何れかの記憶装置に対するバックアップデータの書き込み要求を受信すると、書き込み要求先の記憶装置に対応付けて、バックアップデータを記憶部11に格納する。例えば、制御部12は、ネットワークに接続された他のストレージ制御装置やクライアントコンピュータなどからバックアップデータの書き込み要求を受信する。書き込み要求には、書き込み先の記憶装置を特定するための情報(例えば、ボリューム名の情報など)が含まれる。制御部12は、データの書き込み先が記憶装置22,24の何れかであれば、書き込み対象のデータがバックアップデータであると判別できる。
例えば、制御部12は、記憶装置22に対するバックアップデータの書き込み要求を受信する。すると、制御部12は、記憶装置22に対応するバッファ11aに、バックアップデータを格納する。すなわち、制御部12は、記憶装置22を書き込み先とするバックアップデータをバッファ11a内にマージする。
これにより、記憶装置単位のバックアップデータを集約してバッファ上で管理できる。また、ファイル単位のバックアップデータを分散して記憶装置に格納する場合、記憶装置毎のバックアップデータをバッファ上で管理可能になる。これにより、記憶装置毎の書き込み制御が可能になり、個々の記憶装置の電源オンオフ制御を実現可能にする。
制御部12は、所定のタイミングで、記憶装置22,24のうちの一部の記憶装置(例えば、記憶装置22)の電源をオンにする。制御部12は、電源オンにした記憶装置に対応付けられたバックアップデータを、記憶部11から読み出して当該記憶装置に書き込む。制御部12は、書き込みが完了した記憶装置の電源をオフにする。
所定のタイミングとしては種々のタイミングが考えられる。第1には、ある記憶装置に対応するバッファに格納されたバックアップデータの合計サイズが閾値以上になった(バッファフルになった)タイミングである。例えば、制御部12は、バッファ11aのバッファフルを検出した場合、バッファ11aに対応する記憶装置22の電源をオンにする。
第2には、あるバッファでバックアップデータを保持した期間が、予め設定された時間を超過したタイミングである。例えば、制御部12は、バックアップデータが予め設定された時間以上、バッファ11a内に保持されていることを検出した場合、バッファ11aに対応する記憶装置22の電源をオンにする。
第3には、ユーザによる書き込み指示を受け付けたタイミングである。例えば、制御部12は、バッファ11aからのバックアップデータの書き込み、または、記憶装置22に対するバックアップデータの、ユーザによる書き込み指示を受け付けると、バッファ11aに対応する記憶装置22の電源をオンにする。
上記のタイミングで記憶装置22の電源をオンにすると、制御部12は、バッファ11aに記憶されたバックアップデータを、記憶装置22に書き込む。制御部12は、書き込みが完了した記憶装置22の電源をオフにする。例えば、制御部12はバッファ11aに格納された情報を上書き可能とすることで、バッファ11aを再利用可能にする。
ストレージ制御装置10によれば、制御部12により、記憶装置22に対するバックアップデータの書き込み要求が受信されると、記憶装置22に対応付けて記憶部11にバックアップデータが格納される。制御部12により、所定のタイミングで、記憶装置22,24のうちの記憶装置22の電源がオンにされる。制御部12により、記憶装置22に対応付けられたバックアップデータが、記憶部11から読み出されて記憶装置22に書き込まれる。制御部12により、書き込みが完了した記憶装置22の電源がオフにされる。これにより、ストレージ装置20を省電力化できる。
ここで、ストレージ装置20内の記憶装置21,22,23,24の電源オン/オフを一律に切り替えることで省電力化を図ることも考えられる。しかし、書き込み対象のデータが未だ存在していない記憶装置の電源もオンにしてしまうと、当該記憶装置で余計に電力が消費されてしまう。特に、バックアップ処理の書き込みの頻度は、通常の業務処理に比べて少ない。このため、記憶装置22,24を一律に電源オンすると、書き込み対象のバックアップデータが未だ存在していない記憶装置が起動されてしまい、当該記憶装置により余計に電力が消費される可能性が高い。
そこで、ストレージ制御装置10は、バックアップデータの格納用である記憶装置22,24について、通常は電源オフにし、バックアップデータを記憶装置に対応付けてバッファリングする。ストレージ制御装置10は、記憶装置22,24の一部を間欠的に電源オンし、電源オンした記憶装置に対応するバックアップデータを当該記憶装置に書き込む。このようにすれば、記憶装置22,24の電源を一律にオンにするよりも、記憶装置22,24それぞれを電源オフ状態にする期間を長く取れる(電源オン状態の期間を短縮できる)。よって、記憶装置22,24による電力消費を抑えられ、省電力化を図れる。
例えば、バッファ11a,11bを設けずにバックアップデータの転送開始の検出時に記憶装置22,24を電源オンすることも考えられる。しかし、この場合、バックアップデータの転送毎に記憶装置22,24の電源オン/オフが繰り返され、突入電流による記憶装置22,24の故障のリスクが高まるおそれがある。そこで、バックアップデータをバッファ11a,11bにある程度まとまったデータ量で書き込みができるように集約してバッファリングした上で、記憶装置22,24に格納することで、記憶装置22,24の電源オン/オフが頻繁に行われる可能性を低減でき、記憶装置22,24の故障のリスクを低減できる。
バッファ11a,11bを設けない場合、バックアップデータの複数の転送元でのバックアップスケジュールが重なっていると、記憶装置22,24を電源オフする期間が比較的短くなるか、電源オフするタイミングが発生しないこともある。バックアップデータをバッファリングすることで、バックアップスケジュールが重なったとしても、バッファフルになるまで記憶装置22,24の電源オフ期間を稼げる。
また、バックアップ開始時に記憶装置22,24を起動しなくても、バッファ11a,11bを用いてバックアップデータを保持できるので、バックアップの開始時に記憶装置22,24の起動を待たずに済む。よって、記憶装置22,24の立ち上がりリードタイムに伴うバックアップ開始時のレスポンス低下を抑制できる。
更に、通常業務用の記憶装置21,23に対しては、記憶装置22,24よりも頻繁にデータの書き込みが発生する。したがって、記憶装置21,23に対して上記のようにバッファを設けたとしても、記憶装置22,24のバッファと比べて短時間でバッファフルになる可能性が高い。また、記憶装置21,23では、電源オン/オフが頻繁に行われる可能性があり、突入電流により記憶装置21,23の故障のリスクが高まるおそれもある。そこで、バックアップデータの格納用の記憶装置22,24に対してバッファを設け、上記のように個別の電源オン/オフを行うことで、効率的に省電力化を図れる。
なお、ストレージ制御装置10は、1つの記憶装置に対して複数のバッファ(例えば、2面構成とするなど)を設けてもよい。例えば、記憶装置22に対しバッファ11aに加えて予備のバッファを設けてもよい。ストレージ制御装置10は、バッファ11aから記憶装置22にバックアップデータを書き込んでいる間に、記憶装置22を書き込み先とする追加のバックアップデータを転送元の装置から受信しても、追加のバックアップデータを予備のバッファに格納できる。このようにすれば、バックアップデータの転送元でのバックアップ処理を中断させずに済み、バックアップ処理を効率的に行える。
また、ストレージ制御装置10は、RAID(Redundant Arrays of Independent Disks)と呼ばれる技術により、複数の記憶装置にデータを分散して格納し、データへのアクセス性能の向上や記憶装置の故障に対する信頼性の向上を図ることもできる。RAIDを用いる場合、RAIDを組む記憶装置群(RAIDグループ)単位にバックアップデータ格納用の記憶装置を定めることができる。例えば、あるRAIDグループをバックアップデータの格納用とするならば、そのRAIDグループに属する全ての記憶装置がバックアップデータの格納用として扱われる。この場合も、RAIDに属する記憶装置毎に、記憶部11内にバッファを設けることで、制御部12は上記と同様の書き込み制御を行うことができ、ストレージ装置20の省電力化を図れる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、ストレージ装置100,100a,100b,100c、ディスクシェルフ200、管理装置300およびサーバ400,400a,400b,400cを含む。ストレージ装置100、管理装置300およびサーバ400は、ネットワーク30に接続されている。ストレージ装置100aおよびサーバ400aは、ネットワーク31に接続されている。ストレージ装置100bおよびサーバ400bは、ネットワーク32に接続されている。ストレージ装置100cおよびサーバ400cは、ネットワーク33に接続されている。ディスクシェルフ200は、ストレージ装置100に接続されている。
ネットワーク30,31,32,33は、例えばLAN(Local Area Network)である。ネットワーク31,32,33は、ネットワーク30に接続されている。ネットワーク30,31,32,33は、インターネットを介して接続されてもよい。
ストレージ装置100,100a,100b,100cは、HDD(SSDでもよい)を複数備える。ストレージ装置100,100a,100b,100cが備える記憶装置へのデータの書き込みや読み出しは、ネットワークを介して行われる。ストレージ装置100,100a,100b,100cは、複数のHDDを用いてRAIDを形成する(RAIDを形成していないHDDもある)。
ストレージ装置100は、サーバ400の処理に用いられるデータを記憶する。ストレージ装置100は、ネットワーク30を介して、データの書き込みや読み出しの要求をサーバ400から受信する。ストレージ装置100は、ネットワーク30を介して、データの書き込みや読み出しの結果を、要求元のサーバ400に応答する。
また、ストレージ装置100は、ストレージ装置100a,100b,100cからバックアップデータの書き込み要求を受信する。バックアップデータの書き込み要求は、バックアップデータおよびバックアップデータの書き込み先を特定するための情報(例えば、書き込み先のボリューム名など)を含む。ストレージ装置100は、書き込み要求に応じて、HDDへのバックアップデータの書き込みを行う。後述するように、ストレージ装置100は、バックアップデータの書き込み要求を受信すると、バックアップデータをバッファに蓄積する。ストレージ装置100は、バッファに蓄積されたデータ量がある程度のサイズになると、バッファに格納されているバックアップデータをHDDへ書き込む。
ディスクシェルフ200は、複数のHDD(SSDでもよい)を収納する装置である。ディスクシェルフ200は、ストレージ装置100と所定のケーブルで接続されている。ストレージ装置100は、ディスクシェルフ200に収納されたHDDに対するアクセスも制御する。ストレージ装置100は、ストレージ装置100に収納されたHDDと、ディスクシェルフ200に収納されたHDDとを用いてRAIDを実現することもできる。ストレージ装置100a,100b,100cそれぞれにも同様にディスクシェルフが接続されてもよい。
ストレージ装置100,100a,100b,100cのように、ネットワークに接続され、ネットワークを介して使用されるストレージ装置は、NAS(Network Attached Storage)と呼ばれることがある。ストレージ装置100は、ストレージ装置100a,100b,100cに格納されたデータに対するバックアップデータを取得する機能を有する。ストレージ装置100は、ストレージ装置100a,100b,100cに格納されたデータに対するバックアップデータをストレージ装置100a,100b,100cから取得し、ストレージ装置100の所定のHDDに格納する。
管理装置300は、ストレージ装置100の設定に用いられるクライアントコンピュータである。例えば、システムの管理者は、管理装置300を操作して、ストレージ装置100に種々の設定を行える。具体的には、管理者は、ストレージ装置100によるバックアップ処理のスケジュールやバックアップデータの格納先などの設定を行える。
サーバ400,400a,400b,400cは、ユーザの業務用のソフトウェアを実行するサーバコンピュータである。サーバ400,400a,400b,400cは、それぞれが異なる地域の異なるユーザによって利用される。
図3は、ストレージ装置のハードウェア例を示す図である。ストレージ装置100は、プロセッサ101、メモリ102、バッテリ103、ROM(Read Only Memory)104、ディスク制御部105、HDD106,106a,106b,106c,106d,106e,・・・および外部IF(InterFace)107を有する。各ユニットは、ストレージ装置100のバスに接続されている。
プロセッサ101は、ストレージ装置100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
メモリ102は、ストレージ装置100の主記憶装置である。メモリ102は、プロセッサ101に実行させるOS(Operating System)(ストレージ装置100の管理OS)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、メモリ102は、プロセッサ101による処理に用いられる各種データを記憶する。メモリ102は、バッテリ103によってバックアップされる不揮発性記憶装置(NVRAM:Non-Volatile RAM)である。
バッテリ103は、メモリ102に電力を供給する電池である。
ROM104は、管理OSのプログラムおよびアプリケーションプログラムおよび各種データを記憶する。ROM104は、書き換え可能なメモリであってもよい。
ディスク制御部105は、プロセッサ101の指示に応じて、ストレージ装置100に収納されたHDDに対するデータの書き込み、および、HDDからのデータの読み出しを行う。ディスク制御部105は、所定のケーブルを用いてディスクシェルフ200とも接続されている。ディスク制御部105は、プロセッサ101の指示を、ディスクシェルフ200に送信することもある。ディスク制御部105は、プロセッサ101の指示に応じて、HDD毎の電源のオンおよび電源のオフを行う。ディスク制御部105のインタフェースとしては、例えばSAS(Serial Attached SCSI)インタフェースを用いることができる(SCSIはSmall Computer System Interfaceの略である)。ディスク制御部105は、内蔵HDDや外付けディスクシェルフとケーブル接続するための複数のアダプタを有する。
HDD106,106a,106b,106c,106d,106e,・・・は、ストレージ装置100に収納されているHDDである。HDDは、内蔵した磁気ディスクに対して磁気的にデータの書き込みおよび読み出しを行う。HDDは、サーバ400による業務処理に用いられる各種データを記憶する。ストレージ装置100は、HDDに代えて、または、HDDと併せて、SSDなどの他の種類の記憶装置を備えてもよい。
外部IF107は、ネットワーク30を介して他の装置(例えば、サーバ400、他のストレージ装置および管理装置300など)と通信する通信インタフェースである。
ディスクシェルフ200は、ディスク制御部201およびHDD202,202a,202b,202c,202d,202e,・・・を有する。ディスク制御部201は、所定のケーブルを用いてディスク制御部105と接続されている。ディスク制御部201は、ディスク制御部105を介してプロセッサ101の指示を受け付け、指示に応じて、ディスクシェルフ200に収納されたHDDに対するデータの書き込み、およびHDDからのデータの読み出しを行う。ディスク制御部201のインタフェースも、ディスク制御部105と同様にSASインタフェースを用いることができる。HDD202,202a,202b,202c,202d,202e,・・・は、ディスクシェルフ200に収納されたHDDである。ただし、ディスクシェルフ200は、HDDに代えて、または、HDDと併せて、SSDなどの他の種類の記憶装置を備えてもよい。
ここで、ストレージ装置100およびディスクシェルフ200に収納された各HDDのうちの幾つかは、バックアップデータの格納に用いられる。以下の説明では、バックアップデータの格納用のHDDを、単にバックアップ用HDDと称することがある。
図4は、管理装置のハードウェア例を示す図である。管理装置300は、プロセッサ301、RAM302、HDD303、画像信号処理部304、入力信号処理部305、読み取り装置306および外部IF307を有する。各ユニットは管理装置300のバスに接続されている。サーバ400,400a,400b,400cも管理装置300と同様のハードウェアにより実現できる。
プロセッサ301は、管理装置300の情報処理を制御する。プロセッサ301は、マルチプロセッサであってもよい。プロセッサ301は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ301は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM302は、管理装置300の主記憶装置である。RAM302は、プロセッサ301に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM302は、プロセッサ301による処理に用いる各種データを記憶する。
HDD303は、管理装置300の補助記憶装置である。HDD303は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD303には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。管理装置300は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部304は、プロセッサ301からの命令に従って、管理装置300に接続されたモニタ41に画像を出力する。モニタ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部305は、管理装置300に接続された入力デバイス42から入力信号を取得し、プロセッサ301に出力する。入力デバイス42としては、例えば、マウス、デジタイザおよびタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
読み取り装置306は、記録媒体43に記録されたプログラムやデータを読み取る装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体43として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置306は、例えば、プロセッサ301からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM302またはHDD303に格納する。
外部IF307は、ネットワーク30を介して他の装置と通信を行う。外部IF307は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図5は、ストレージ装置の機能例を示す図である。ストレージ装置100は、制御情報記憶部110、バッファ用記憶部120、電源情報記憶部130、管理OS140、バッファ制御部150およびディスク電源制御部160を有する。制御情報記憶部110は、ストレージ装置100に収納された何れかのHDD上に確保された記憶領域(制御用領域と称する)により実現される。バッファ用記憶部120および電源情報記憶部130は、メモリ102に確保された記憶領域により実現される。管理OS140、バッファ制御部150およびディスク電源制御部160は、プロセッサ101がプログラムを実行することで実現される。
制御情報記憶部110は、RAIDやRAIDを組んでいるHDDの情報およびバックアップ設定の情報を記憶する。バックアップ設定の情報には、バックアップデータの取得元やバックアップデータの格納先、バックアップを実行するスケジュールなどの情報が含まれる。
バッファ用記憶部120は、バックアップ用HDD毎のバッファを設けるための記憶領域である。バッファには、当該バッファに対応するバックアップ用HDDを書き込み先とするバックアップデータが一時的に格納される。各バッファは、バッファ制御部150によりHDDに対応付けて管理される。
電源情報記憶部130は、ディスク電源管理テーブルを記憶する。ディスク電源管理テーブルは、HDD毎の電源のオン/オフ状況の管理に用いられるテーブルである。
管理OS140は、ストレージ装置100全体を管理するOSである。管理OS140は、ストレージ装置100またはディスクシェルフ200に収納されたHDDに対するデータの書き込み要求や、HDDからのデータの読み出し要求を受信する。管理OS140は、HDDに対するデータの書き込みや読み出しを行い、要求元の装置に書き込みや読み出しの結果を応答する。
バッファ制御部150は、バッファ用記憶部120に設けられた各バッファへのバックアップデータの書き込み、および、各バッファからのバックアップデータの読み出しを制御する。バッファ制御部150は、バックアップ用のHDDに対するバックアップデータの書き込み要求を受信した場合、書き込み先のHDDに対応するバッファに、書き込み対象のバックアップデータを格納する。
また、バッファ制御部150は、各バッファに格納されたバックアップデータのHDDへの書き込みを制御する。具体的には、バッファ制御部150は、所定のタイミングで、バッファに格納されたバックアップデータを、当該バッファに対応するHDDに書き込むよう管理OS140に指示する。所定のタイミングとは、次のタイミングである。
第1には、何れかのバックアップ用HDDに対応するバッファがフルになったタイミングである。バッファがフル(バッファフル)であるか否かは、バッファに格納されたバックアップデータの合計サイズに応じて定めることができる。例えば、バッファに格納されたバックアップデータの合計サイズが閾値以上になった場合をバッファフルとする。閾値は、バッファの記憶容量の90%または100%などのデータサイズとすることができる。あるいは、バッファの残り容量が閾値(例えば、バッファの記憶容量の10%のデータサイズまたは残り容量0など)よりも少なくなった場合をバッファフルとしてもよい。この場合、バッファ制御部150は、バッファフルになったバッファに格納されたバックアップデータを、当該バッファに対応するバックアップ用HDDへ書き込むよう管理OS140に指示する。
第2には、何れかのバッファにバックアップデータが格納された時点からの経過時間が最大データ保持時間以上となったタイミングである。最大データ保持時間は、バックアップデータをバッファに保持する最大の時間であり、バッファ毎に予め決定することができる。バッファ制御部150は、バッファ毎に、バックアップデータが格納された時点からの経過時間を計測する。バッファ制御部150は、何れかのバッファについて経過時間が最大データ保持時間に達すると、該当のバッファに格納されたバックアップデータを、当該バッファに対応するバックアップ用HDDに書き込むよう管理OS140に指示する。バッファ制御部150は、書き込みが完了されると、該当のバッファのタイマの計測時間を0にリセットし、次回のバックアップデータの受信まで時間の計測を停止する。
第3には、バックアップ用HDDへバックアップデータを書き込む旨を指示する入力を受け付けたタイミングである。例えば、システムの管理者は、ネットワーク30に接続された端末装置を操作して、書き込み元のバッファの情報、または、書き込み先のバックアップ用HDDを示す情報などを入力できる。バッファ制御部150は、管理者による書き込み指示を受け付けると、指示されたバッファに格納されたバックアップデータを、当該バッファに対応するバックアップ用HDDに書き込むよう管理OS140に指示する。
ここで、バッファとバックアップ用HDDとは対応関係にある。したがって、バッファ制御部150は、バッファの情報から書き込み先のバックアップ用HDDを特定できる。また、バッファ制御部150は、書き込み先のバックアップ用HDDの情報から書き込み元のバッファを特定できる。
バッファ制御部150は、上記の何れかのタイミングで、バッファに格納されたバックアップデータをバックアップ用HDDに書き込むよう管理OS140に指示する。バッファ制御部150は、管理OS140によるバックアップデータの書き込みが完了すると、書き込み元のバッファからバックアップデータを削除し(あるいは上書き可能とし)、バッファの記憶領域を再利用可能とする。
バッファ制御部150は、1つのバックアップ用HDDに対してバッファを2つ用意する(2面構成とする)。バッファ制御部150は、2つのうちの一方のバッファに、バックアップ用HDDの電源オフ中に書き込み要求のあったバックアップデータを格納する。他方のバッファ(予備バッファと称する)には、バックアップ用HDDにバックアップデータを書き込んでいる最中に、同じバックアップ用HDDに書き込み要求のあった追加のバックアップデータを格納する。すると、バッファ制御部150は、書き込み中のバックアップデータの書き込みが完了した後に続けて、他方のバッファに格納された追加のバックアップデータをバックアップ用HDDに書き込める。バッファ制御部150はバックアップデータのバッファやHDDへの書き込みを制御するため、バッファ制御部150を書き込み制御部と呼んでもよい。
ディスク電源制御部160は、ディスク制御部105を用いて、バックアップ用HDD毎の電源オン/オフを制御する。ここで、ストレージ装置100の起動時、全てのHDDの電源はオンになる。管理OS140により各HDDを認識するためである。ディスク電源制御部160は、ストレージ装置100内の全てのHDDが管理OS140により認識されると、バックアップ用HDDの電源をオフにする。
ディスク電源制御部160は、何れかのバッファからバックアップ用HDDへバックアップデータの書き込みを行う際に、書き込み先のバックアップ用HDDの電源をオンにする。また、ディスク電源制御部160は、バックアップデータの書き込みが完了すると、書き込み先のバックアップ用HDDの電源をオフにする。
ディスク電源制御部160およびディスク制御部105は、HDDの電源オン/オフの制御に用いられるので、ディスク電源制御部160またはディスク制御部105を電源制御部と呼んでもよい。ディスク制御部105を電源制御部と呼ぶ場合、プロセッサ101を書き込み制御部と呼んでもよい。
図6は、論理ボリュームとアグリゲート/RAIDとの対応の例を示す図である。ストレージ装置100は、ストレージ装置100が管理する複数のHDDを、アグリゲートと呼ばれるディスクリソースの集合として管理する。ストレージ装置100は、複数のアグリゲートを作成することもある。アグリゲートAは、ストレージ装置100が管理するアグリゲートの1つである。
アグリゲートAには、RAIDグループR1,R2が含まれる。RAIDグループR1,R2には、それぞれ4つのHDDが属している(ただし、4以外の複数個のHDDでRAIDを組むこともある)。具体的には、RAIDグループR1には、HDD106,106a,106b,106cが属している。RAIDグループR2には、HDD202,202a,202b,202cが属している。
例えば、ストレージ装置100は、アグリゲートAから、サーバ400や他のサーバ上のソフトウェアが利用する記憶領域を確保する。このように確保された記憶領域を論理ボリュームと称する。例えば、管理OS140は、RAIDグループR1から確保した記憶領域により論理ボリュームV1を作成する。管理OS140は、RAIDグループR2から確保した記憶領域により論理ボリュームV2を作成する。管理OS140は、RAIDグループR1,R2から確保した記憶領域により論理ボリュームV3を作成する。ここで、論理ボリュームV1,V2,V3は、何れもバックアップデータの格納先となる論理ボリュームである。この場合、RAIDグループR1,R2は、バックアップデータを格納するために用いられることになり、通常業務時に読み書きされるデータの格納には用いられない。
図7は、論理ボリュームとバッファとの対応の例を示す図である。バッファ制御部150は、HDD毎にバッファを用意する。例えば、RAIDグループR1はHDD106,106a,106b,106cを含む。図7の例では、バッファ制御部150は、HDD106,106a,106b,106cそれぞれに対応付けられたバッファ121,121a,121b,121c(バッファ群B1)を設ける。
また、RAIDグループR2はHDD202,202a,202b,202cを含む。同様に、バッファ制御部150は、HDD202,202a,202b,202cそれぞれに対応付けられたバッファ121d,121e,121f,121g(バッファ群B2)を設ける。この場合、論理ボリュームV1は、バッファ群B1に対応付けられる。論理ボリュームV2は、バッファ群B2に対応付けられる。論理ボリュームV3は、バッファ群B1,B2に対応付けられる。
図8は、論理ボリューム管理テーブルの例を示す図である。論理ボリューム管理テーブル111は、論理ボリュームに対応するアグリゲートやRAIDグループを管理するための情報である。論理ボリューム管理テーブル111は、制御情報記憶部110に格納される。論理ボリューム管理テーブル111は、論理ボリュームID(IDentifier)、アグリゲートIDおよびRAID番号の項目を含む。
論理ボリュームIDの項目には、論理ボリュームの識別子が登録される。アグリゲートIDの項目には、アグリゲートの識別子が登録される。RAID番号の項目には、RAIDグループの識別子(RAID番号と称する)が登録される。
ここで、図8に示す論理ボリュームID“vol1”は、論理ボリュームV1の識別子である。論理ボリューム“vol2”は、論理ボリュームV2の識別子である。アグリゲートID“aggr1”は、アグリゲートAの識別子である。RAID番号“rg0”は、RAIDグループR1の識別子である。RAID番号“rg2”は、RAIDグループR2の識別子である。
例えば、論理ボリューム管理テーブル111には、論理ボリュームIDが“vol1”、アグリゲートIDが“aggr1”、RAIDが“rg0”という情報が登録される。これは、論理ボリュームV1には、アグリゲートAに属するRAIDグループR1の記憶領域が割り当てられていることを示す。論理ボリューム管理テーブル111には、他の論理ボリュームについても同様の情報が登録される。
図9は、ディスク管理テーブルの例を示す図である。ディスク管理テーブル112は、ストレージ装置100およびディスクシェルフ200内のHDDを管理するための情報である。ディスク管理テーブル112は、制御情報記憶部110に格納される。ディスク管理テーブル112は、ディスクID、RAID番号、種別、アダプタID、シェルフIDおよびベイIDの項目を含む。
ディスクIDの項目には、HDDの識別子が登録される。RAID番号の項目には、RAID番号が登録される。種別の項目には、RAIDにおけるHDDの種別が登録される。なお、RAIDグループに属さないHDDについては、RAID番号および種別の項目は、設定なしとなる。アダプタIDの項目には、HDDへのアクセスに用いるアダプタの識別子が登録される。シェルフIDの項目には、HDDを収納するシェルフの識別子が登録される。ベイIDの項目には、HDDを収納しているシェルフにおけるベイの識別子が登録される。ベイは、ストレージ装置100やディスクシェルフ200にHDDを据え付けるための収納スペースである。
ここで、ディスク管理テーブル112では、RAIDの一例として、RAID−DP(Double Parity)(“RAID DP”は米国登録商標)が組まれている場合が示されている(RAID番号“rg0”および“rg2”のRAIDグループ)。RAID−DPでは、RAID4グループ(ストライピング用の複数のHDDとパリティ用の1つのHDDを含む)に更にもう1つのパリティ(ダブルパリティと称する)用のHDDを追加したディスク構成となる。この場合、上記種別の項目には、RAID−DPにおけるHDDの種別が登録されることになる。具体的には、ストライピング用の場合、種別は“data”である。パリティ用の場合、種別は“parity”である。ダブルパリティ用の場合、種別は“dparity”である。ただし、他の種類のRAID(例えば、RAID0、RAID1またはRAID5など)を利用することもできる。
また、図9に示すディスクID“00.0”は、HDD106の識別子である。ディスクID“00.1”は、HDD106aの識別子である。ディスクID“00.2”は、HDD106bの識別子である。ディスクID“00.3”は、HDD106cの識別子である。ディスクID“00.4”は、HDD106dの識別子である。ディスクID“10.0”は、HDD202の識別子である。ディスクID“10.1”は、HDD202aの識別子である。ディスクID“10.2”は、HDD202bの識別子である。ディスクID“10.3”は、HDD202cの識別子である。
例えば、ディスク管理テーブル112には、ディスクIDが“00.0”、RAID番号が“rg0”、種別が“dparity”、アダプタIDが“0b”、シェルフIDが“0”、ベイIDが“0”という情報が登録される。これは、ディスクID“00.0”で識別されるHDD106が、RAID番号“rg0”で識別されるRAIDグループR1に属すること、ダブルパリティの格納用に用いられることを示す。また、HDD106が、シェルフID“0”で識別されるシェルフ(ストレージ装置100に内蔵のシェルフ)に収納されており、ディスク制御部105が備える複数のアダプタのうちアダプタID“0b”で識別されるアダプタを介してアクセスすることを示す。更に、HDD106は、ストレージ装置100の内蔵のシェルフのうちベイID“0”で示されるベイに収納されていることを示す。
他のRAIDおよびHDDについても同様の情報が登録される。ここで、ディスクIDの上位2桁は、ストレージ装置100に内蔵されているか、外付けのディスクシェルフ200に収納されているかを示している。すなわち、ディスクIDの上位2桁が“00”である場合、HDDはストレージ装置100に内蔵されている。ディスクIDの上位2桁が“10”である場合、HDDはディスクシェルフ200に内蔵されている。更に、シェルフID“1”は、ディスクシェルフ200のシェルフIDである。
図10は、バックアップ設定情報の例を示す図である。バックアップ設定情報113は、バックアップ処理の内容およびスケジュールを示す情報である。バックアップ設定情報113は、制御情報記憶部110に格納される。バックアップ設定情報113の左側に付した番号は、行番号である。
バックアップ設定情報113には、“バックアップデータ取得元装置名:バックアップデータ取得先装置名:ボリューム名 指定時間 * 指定曜日”というフォーマットにより、バックアップ設定が記述されている。ここで、バックアップデータ取得元装置名およびバックアップデータ取得先装置名は、ストレージ装置の識別子によって記述される。ストレージ装置100の識別子は“systemA”である。ストレージ装置100aの識別子は“systemB”である。ストレージ装置100bの識別子は“systemC”である。ストレージ装置100cの識別子は“systemD”である。
例えば、バックアップ設定情報113の1行目には、“systemB:vol0 systemA:vol1 − 0 23 * 1,3,5”という情報が設定されている。これは、ストレージ装置100aの論理ボリューム“vol0”に格納されたデータのバックアップを、ストレージ装置100の論理ボリューム“vol1”上に取得することを示す。スケジュールの指定は“0 23 * 1,3,5”の部分であり、毎時0分、毎日午後11時0分、毎週月曜日午前0時0分(“1”の設定に相当)、毎週水曜日午前0時0分(“3”の設定に相当)、毎週金曜日午前0時0分(“5”の設定に相当)にバックアップを取得することを示している。
2行目および3行目のレコードも同様である。ただし、3行目のレコードでは、スケジュールの指定が“− 23 * 1,3,5”である。これは、毎日午後11時0分、毎週月曜日午前0時0分、毎週水曜日午前0時0分、毎週金曜日午前0時0分にバックアップを取得することを示している。
なお、“vol1”、“vol2”、“vol3”の各論理ボリュームは、何れもバックアップ用HDDを用いて作成された論理ボリュームである。バックアップ設定情報113は、システムの管理者などによって予め作成され、制御情報記憶部110に格納される。また、上記の例では、論理ボリューム単位にバックアップを取得する場合の設定例を示したが、論理ボリューム配下のディレクトリ単位など、他の単位でバックアップの取得元および取得先を指定することもできる。
図11は、ディスク電源管理テーブルの例を示す図である。ディスク電源管理テーブル131は、電源情報記憶部130に格納される。ディスク電源管理テーブル131は、ディスクID、バックアップ、電源状態、RAID番号および最大データ保持時間の項目を含む。
ディスクIDの項目には、HDDの識別子が登録される。バックアップの項目には、バックアップ用HDDであるか否かを示す情報(“true”または“false”)が登録される。“true”はバックアップ用HDDであることを示す。“false”はバックアップ用HDDではないことを示す。電源状態の項目には、電源がオンであるか否かを示す情報(“on”または“off”)が登録される。“on”は電源オンであることを示す。“off”は電源オフであることを示す。RAID番号の項目には、RAID番号が登録される。何れのRAIDグループにも属していない場合、RAID番号は“0”が設定される。最大データ保持時間の項目には、最大データ保持時間が登録される。例えば、最大データ保持時間の単位は、分である(秒など他の単位でもよい)。最大データ保持時間は、バックアップ用HDDのバッファに対する設定なので、バックアップ用HDDではないHDDに対しては“0”が設定される。
例えば、ディスク電源管理テーブル131には、ディスクIDが“00.0”、バックアップが“true”、電源状態が“off”、RAID番号が“rg0”、最大データ保持時間が“180”(分)という情報が登録される。
これは、ディスクID“00.0”で識別されるHDDがバックアップ用HDDであり、現在電源オフ状態であることを示す。また、当該HDDがRAID番号“rg0”で識別されるRAIDグループに属しており、最大データ保持時間が180分であることを示す。なお、最大データ保持時間の設定値は、同一RAIDグループに属する各HDDでは同じ値とする。同一RAIDグループに属する各HDDは同時にアクセスされるためである。
また、ディスク電源管理テーブル131には、ディスクIDが“00.4”、バックアップが“false”、電源状態が“on”RAID番号が“rg1”、最大データ保持時間が“0”(分)という情報が登録される。
これは、ディスクID“00.4”で識別されるHDDがバックアップ用HDDではなく、現在電源オン状態であることを示す。また、当該HDDがRAID番号“rg1”で識別されるRAIDに属しており、最大データ保持時間が0分である(ディスクID“00.4”のHDDはバックアップ用HDDではないため)ことを示す。ディスク電源管理テーブル131には、他のHDDについても同様の情報が登録される。
図12は、バッファの例を示す図である。バッファ用記憶部120は、記憶領域120a,120b,120c,・・・を含む。記憶領域120a,120b,120c,・・・は、バックアップ用HDDにそれぞれ対応付けられた記憶領域である。例えば、記憶領域120aは、HDD106に対応付けられている。より具体的には、バッファ制御部150は、記憶領域120aに相当するメモリアドレスの範囲を、HDD106用に確保する。同様に、記憶領域120bは、HDD106aに対応付けられている。また、記憶領域120cは、HDD106bに対応付けられている。バッファ制御部150は、何れのアドレス範囲が何れのHDDに対応するかを示す情報をメモリ102の所定の記憶領域に格納しておいてもよい。
前述のように、バッファ制御部150は、各バックアップ用HDDのバッファを2面構成とする。具体的には、バッファ制御部150は、記憶領域120aを2つに分けることで、バッファ121および予備バッファ122を設ける。バッファ121は、HDD106の電源がオフのときに受け付けた書き込み対象のバックアップデータを格納するための記憶領域である。予備バッファ122には、HDD106の電源をオンにして、バックアップデータを書き込んでいる最中に受け付けた追加のバックアップデータを格納するための記憶領域である。
同様に、バッファ制御部150は、記憶領域120bを2つに分けることで、バッファ121aおよび予備バッファ122aを設ける。バッファ制御部150は、記憶領域120cを2つに分けることで、バッファ121bおよび予備バッファ122bを設ける。
例えば、バッファ制御部150は、全HDD数に対するバックアップ用HDDの割り当て数の比率に応じて、記憶領域120a,120b,120c,・・・の合計サイズを決定する。より具体的な例として、メモリ102で利用可能な記憶容量が32GB(Giga Bytes)であり、30個中15個のHDDをバックアップ用HDDとする場合を考える。この場合、バックアップ用HDDの比率は15/30=0.5(50%)である。よって、バッファ制御部150は、32GB×0.5=16GBを、記憶領域120a,120b,120c,・・・の合計サイズとする。例えば、バッファ制御部150は、決定した合計サイズ16GBの領域を、記憶領域120a,120b,120c,・・・に等分に割り当てる。記憶領域120a,120b,120c,・・・の合計数(すなわち、バックアップ用HDDの合計数)が16個であれば、記憶領域120a,120b,120cそれぞれの記憶容量のサイズは、16GB÷16=1GBである。また、バッファ制御部150は、記憶領域120aに割り当てたサイズの半分(例えば、0.5GB)をバッファ121、残りの半分(例えば、0.5GB)を予備バッファ122とする。
なお、図12の例では、各バックアップ用HDDに対して、所定のアドレス範囲の記憶領域をバッファとして用意するものとしたが、他の方法を用いてもよい。例えば、書き込み対象のバックアップデータに、書き込み先のバックアップ用HDDの識別情報を付加して、バッファ用記憶部120に格納することも考えられる。すると、バッファ制御部150は、バックアップデータに付加されたHDDの識別情報に基づいて、バックアップデータの書き込み先のHDDを特定できる。この場合、メモリ102の任意のメモリアドレスに、任意のバックアップ用HDDを書き込み先とするバックアップデータを格納してよい。また、例えば、HDD106の識別情報が付加されたバックアップデータが格納された領域の集合を、HDD106に対応するバッファ121と考えることができる。この場合も、各バッファのサイズを予め決定しておくことができる。
図13は、電源投入時処理の例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(S11)ストレージ装置100の電源がオンにされる。ディスクシェルフ200の電源もオンにされる。例えば、管理者は、ストレージ装置100およびディスクシェルフ200の電源ボタンを押下することで、ストレージ装置100およびディスクシェルフ200に対する電源オン操作を行える。ストレージ装置100およびディスクシェルフ200は、起動処理を行う。このとき、ストレージ装置100およびディスクシェルフ200に収納された全てのHDDの電源がオンになる。
(S12)プロセッサ101は、ROM104に記憶された管理OS140のプログラムを実行することで、管理OS140の機能を発揮する。プロセッサ101は、ROM104に記憶されたバッファ制御部150およびディスク電源制御部160のプログラムを実行することで、バッファ制御部150およびディスク電源制御部160の機能を発揮する。
(S13)管理OS140は、HDD106の制御用領域から論理ボリューム管理テーブル111およびディスク管理テーブル112を取得する。また、管理OS140は、ディスク制御部105,201を介して、ディスク管理テーブル112に登録された各HDDが存在していることを認識する。
(S14)ディスク電源制御部160は、ディスク管理テーブル112に基づいて、ディスク電源管理テーブル131を作成し、電源情報記憶部130に格納する。具体的には、ディスク電源制御部160は、各HDDのディスクIDおよびRAID番号をディスク管理テーブル112から取得し、ディスク電源管理テーブル131に登録する。バックアップの項目は、ステップS14のタイミングでは設定なしでよい。電源状態の項目は、全て“on”である。最大データ保持時間の項目は、RAID番号またはディスクID毎に予め指定された設定値(例えば、この指定された設定値もHDD106の制御用領域に予め格納される)を登録する。前述のように、同一RAIDグループに属する各HDDの最大データ保持時間は、同じ設定値とする。
(S15)管理OS140は、ストレージ装置100に収納された何れかのHDD(HDD106でもよい)の制御用領域からバックアップ設定情報113を取得する。
(S16)ディスク電源制御部160は、論理ボリューム管理テーブル111、ディスク管理テーブル112およびバックアップ設定情報113に基づいて、バックアップ用HDDを判別する。具体的には、ディスク電源制御部160は、バックアップ設定情報113を参照して、ストレージ装置100が管理する論理ボリュームのうち、バックアップデータの格納先の論理ボリュームの識別子(例えば、“vol1”など)を取得する。ディスク電源制御部160は、当該論理ボリュームの記憶領域を提供するRAIDグループを、論理ボリューム管理テーブル111から取得する。例えば、論理ボリューム管理テーブル111によれば、識別子“vol1”に対応する論理ボリュームの記憶領域を提供するRAIDグループのRAID番号は“rg0”である。更に、ディスク電源制御部160は、ディスク管理テーブル112を参照して、取得したRAID番号のRAIDグループに属するHDDを取得する。例えば、ディスク管理テーブル112によれば、RAID番号“rg0”のRAIDグループに属するHDDは、ディスクID“00.0”、“00.1”、“00.2”、“00.3”のHDD106,106a,106b,106cである。ディスク電源制御部160は、バックアップ用HDDとして判別したHDDについて、ディスク電源管理テーブル131のバックアップの項目を“true”に設定する。その他のHDDについては、同項目を“false”に設定する。
(S17)バッファ制御部150は、ディスク電源管理テーブル131を参照して、バックアップの項目が“true”に設定されているHDD毎に、バッファを設定する。このとき、バッファ制御部150は、前述のように1つのHDDに対してバッファを2面構成とする。バッファのサイズの決定方法は、図12で例示した通りである。
(S18)ディスク電源制御部160は、バックアップ用HDDの電源をオフにするよう制御する。具体的には、ディスク電源制御部160は、ディスク制御部105を介して、HDD106,106a,106b,106cを含むバックアップ用HDDの電源をオフにする。また、ディスク電源制御部160は、ディスク制御部105,201を介して、HDD202,202a,202b,202cを含むバックアップ用HDDの電源をオフにする。
(S19)ディスク電源制御部160は、電源をオフにしたHDDについて、ディスク電源管理テーブル131の電源状態の項目を“off”に設定する。
(S20)管理OS140は、バックアップデータの受信待機を開始する。
このように、ストレージ装置100は、ストレージ装置100の電源投入時に、ディスク電源管理テーブル131を作成し、各HDDの認識が済むと、バックアップ用HDDの電源をオフにする。ここで、HDDは、運用中に生じた故障に応じて交換されることがある。このため、RAIDを組むHDDの組み合わせは、HDDの交換に応じて変更され得る。そこで、ストレージ装置100は、HDDの故障/交換に応じてディスク電源管理テーブル131を更新する。
図14は、ディスク故障時処理の例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
(S21)管理OS140は、ストレージ装置100またはディスクシェルフ200に収納された何れかのHDDの故障を検出する。例えば、管理OS140は、バックアップ用HDDへバックアップデータを書き込んでいる最中に、当該バックアップ用HDDの故障を検出することがある。あるいは、管理OS140は、電源オフされているバックアップ用HDDを、定期的に電源オンして故障有無のチェックを行うことも考えられる。
(S22)管理OS140は、HDDの交換が行われたか否かを判定する。HDDの交換が行われた場合、処理をステップS24に進める。HDDの交換が行われない場合、処理をステップS23に進める。
(S23)管理OS140は、ストレージ装置100またはディスクシェルフ200に収納されたスペアディスク(HDDの故障に備えて予め収納されている予備のHDD)を、故障したHDDの代わりに割り当てる。
(S24)管理OS140は、交換後のHDD(ステップS22でYesの場合)またはスペアディスク(ステップS22でNoの場合)を用いて、故障したHDDが属していたRAIDを再構築(リビルド)する。例えば、故障したHDDの種別が“data”であれば、管理OS140は、RAIDに属する他のHDDに格納されたパリティや他のデータから、代替のHDDのデータを復元する。あるいは、故障したHDDの種別が“parity”や“dparity”であれば、管理OS140は、RAIDに属する他のHDDに格納されたパリティや他のデータから、代替のHDDのパリティデータを復元する。管理OS140は、ディスク管理テーブル112を操作して、HDDとRAIDとの対応関係を更新する。また、例えば、スペアディスクを代替とするならば、アダプタID、シェルフIDおよびベイIDを、スペアディスクの所在に対応する情報に更新する。
(S25)ディスク電源制御部160は、ディスク電源管理テーブル131を参照して、再構築したRAIDグループに属するHDDが、バックアップ用HDDであるかを判別する。
(S26)ディスク電源制御部160は、ディスク電源管理テーブル131を更新する。例えば、故障したHDDの情報を削除し、再構築したRAIDグループに対して新たに割り当てたHDDの情報を追加する。また、再構築したRAIDグループがバックアップ用であれば、新たに割り当てたHDDもバックアップ用として設定する(バックアップ用の項目を”true”に設定する)。
例えば、ステップS21において、バッファに格納されたバックアップデータをバックアップ用HDDに書き込んでいる際に書き込み先HDDの故障が検出された場合、ステップS26の後、バッファ制御部150は、当該バックアップデータの書き込みを継続する。そして、ディスク電源制御部160は、書き込み完了後、書き込み先のHDDを電源オフする。あるいは、ステップS21でバックアップ故障有無のチェックによりバックアップ用HDDの故障を検出した場合、ステップS26の後、ディスク電源制御部160は、交換後のHDD(および当該HDDとRAIDを組む他のHDD)の電源をオフにする。
このように、ストレージ装置100は、何れかのHDDが故障した場合にも、HDDの交換やスペアディスクの割り当てに応じて、ディスク電源管理テーブル131を更新する。これにより、RAIDグループに対するHDDの割り当て状況が変更されても、ディスク電源管理テーブル131に変更結果を適切に反映できる。
図15は、バックアップデータ書き込み処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(S31)管理OS140は、何れかのストレージ装置からのバックアップデータの転送を待機する。
(S32)管理OS140は、何れかのストレージ装置からバックアップデータが転送されてきたことを検出する。例えば、データの書き込み要求には、書き込み対象のデータや書き込み先の論理ボリュームIDが含まれる。管理OS140は、書き込み先の論理ボリュームが、バックアップデータの格納用の論理ボリュームであれば、書き込み対象のデータをバックアップデータと識別する。バックアップ設定情報113の例によれば、書き込み先の論理ボリュームIDが“vol1”、“vol2”、“vol3”の場合、バックアップデータである。
(S33)管理OS140は、転送元のストレージ装置からバックアップデータを受信する。
(S34)バッファ制御部150は、論理ボリューム管理テーブル111およびディスク管理テーブル112に基づいて、受信したバックアップデータの書き込み先の論理ボリュームに対応するHDDを特定する。例えば、書き込み先の論理ボリュームの論理ボリュームIDが“vol1”であれば、対応するHDDのディスクIDは“00.0”、“00.1”、“00.2”、“00.3”である。
(S35)バッファ制御部150は、特定したHDDに対応するバッファに、受信したバックアップデータを格納する。特定したHDDが複数であれば(RAIDの場合)、当該複数のHDDに対応する複数のバッファに分散してバックアップデータを格納する(パリティディスクについては、パリティの計算結果を格納する)。また、バッファ制御部150は、今回受信されたバックアップデータを該当のバッファに最初に格納するタイミングで、当該バッファに対応するタイマによる時間の計測を開始する。
(S36)バッファ制御部150は、ステップS35でバックアップデータを格納したバッファのバッファ領域がフル(バッファフル)になったか否かを判定する。フルになった場合、処理をステップS40に進める。フルになっていない場合、処理をステップS37に進める。例えば、バッファ制御部150は、前述のように、該当のバッファに格納されたバックアップデータの合計サイズが閾値以上であればバッファフルと判定し得る。
(S37)管理OS140は、バックアップデータの転送が終了したか否かを判定する。終了した場合、処理をステップS38に進める。終了していない場合、処理をステップS33に進める。例えば、管理OS140は、バックアップデータの転送元のストレージ装置からバックアップデータの転送が全て終了した旨の通知を受け付けることで、バックアップデータの転送が終了したことを検出する。
(S38)バッファ制御部150は、ステップS35で計測を開始したタイマの計測時間が、ディスク電源管理テーブル131に登録された最大データ保持時間を経過したか否かを判定する。経過した場合、該当のタイマによる計測時間を0にリセットして、処理をステップS40に進める。経過していない場合、処理をステップS39に進める。
(S39)バッファ制御部150は、管理者によるバックアップデータの書き込み指示があったか否かを判定する。書き込み指示があった場合、処理をステップS40に進める。書き込み指示がない場合、処理をステップS31に進める。ここで、管理者は、管理装置300を操作することで、バッファに格納されたバックアップデータを、論理ボリュームに書き込む旨の指示(書き込み指示)をストレージ装置100に入力できる。
(S40)ディスク電源制御部160は、バックアップデータの書き込み先のHDDの電源をオンにする。ディスク電源制御部160は、書き込み先のHDDがRAIDを組んでいる場合、該当のRAIDグループに属する全てのHDDの電源をオンにする。ディスク電源制御部160は、ディスク電源管理テーブル131を更新する。具体的には、ディスク電源制御部160は、ディスク電源管理テーブル131において、電源オンにしたHDDの電源状態の項目の設定を“off”から“on”に変更する。
(S41)バッファ制御部150は、ステップS40で電源オンにされたHDDに対応するバッファからバックアップデータを読み出す。バッファ制御部150は、当該バッファに対応するHDDに、読み出したバックアップデータを書き込むよう管理OS140に指示する。管理OS140は、指示されたHDDにバックアップデータを書き込む。ステップS40で電源オンにされたHDDが複数であれば、複数のバッファからバックアップデータが読み出され、複数のHDDにバックアップデータが書き込まれる。書き込みを行っている間、管理OS140は、書き込み要求元のストレージ装置から、追加のバックアップデータを受信することもある。その場合、バッファ制御部150は、受信された追加のバックアップデータを、書き込み先のHDDに対応する予備バッファに格納する。
(S42)バッファ制御部150は、バックアップデータをHDDへ書き込み済みのバッファを初期化する。具体的には、バッファ制御部150は、当該バッファのバッファ領域を再利用可能とする(上書き可能とする)。
(S43)バッファ制御部150は、追加のバックアップデータが予備バッファに格納されているか否かを判定する。格納されている場合、処理をステップS41に進める。格納されていない場合、処理をステップS44に進める。本ステップS43の判定後にステップS41に進む場合、バッファ制御部150は、ステップS41,S42の処理を予備バッファに関して実行する。すなわち、バッファ制御部150は、予備バッファに格納された追加のバックアップデータのHDDへの書き込みを、管理OS140に指示する。すると、管理OS140は、追加のバックアップデータを、指示されたHDDへ書き込む。
(S44)ディスク電源制御部160は、バックアップデータの書き込みを行ったHDDの電源をオフにする。書き込み先のHDDがRAIDを組んでいれば、ディスク電源制御部160は、複数のHDDの電源をオフにすることになる。ディスク電源制御部160は、ディスク電源管理テーブル131を更新する。具体的には、ディスク電源制御部160は、ディスク電源管理テーブル131において、バックアップデータの書き込みを行ったHDDの電源状態の項目の設定を“on”から“off”に変更する。そして、処理をステップS31に進める。
なお、ステップS38,S39において、データ転送終了後にタイマによる計測時間が最大データ保持時間を経過しておらず、かつ、管理者による書き込み指示がない場合は、ステップS31に進むことになる。バッファ制御部150は、それ以降も継続して、タイマの監視および管理者によるバックアップデータの書き込み指示の入力の監視を行う。
例えば、バッファ制御部150は、何れかのタイマによる計測時間が、最大データ保持時間を経過した場合、そのタイマの計測時間をリセットし、該当のバッファについてステップS40〜S44の処理を実行する。バッファの最大データ保持時間を設けることで、バックアップデータがHDDに書き込まれないままになり、データ保持の信頼性が低下することを防止できる。
また、バッファ制御部150は、論理ボリュームへのバックアップデータの書き込み指示の入力を受け付けると、書き込み先の論理ボリュームに属するHDDに対応するバッファからバックアップデータを読み出し、ステップS40〜S44の処理を実行する。管理者による書き込み指示に応じてバックアップデータをHDDに書き込むようにすることで、バックアップデータがHDDに書き込まれないままになり、データ保持の信頼性が低下することを防止できる。
また、バックアップデータをHDDに書き込んでいる間に受け付けた追加のバックアップデータを予備バッファに格納することで、バックアップ処理を中断させずに済む。例えば、バックアップデータの転送元に対して、バッファへの書き込み不可エラーを通知したり、追加のバックアップデータの再送を要求したりする頻度を低減できる。また、バッファからHDDへのバックアップデータの書き込みと予備バッファへの追加のバックアップデータの格納とを並行して実行でき、バックアップ処理を効率化できる。
更に、ステップS35では、特定したHDDに対応するバッファにバックアップデータを格納するものとしたが、前述のように、バックアップデータに特定したHDDの識別子を付加して、バッファ用記憶部120に格納してもよい。その場合、ステップS36において、バッファ制御部150は、同じHDDの識別子が付加されたバックアップデータのサイズの合計値を計算する。バッファ制御部150は、計算した合計値が、予め定められたバッファサイズに達しているか否かによって、当該HDDに対応するバッファがバッファフルであるか否かの判定を行える。
図16は、論理ボリュームとHDDとの対応関係の例を示す図である。図16(A)は、論理ボリュームID“vol1”の論理ボリュームを転送先とするバックアップデータが格納されるバッファおよびHDDを例示している。バッファ制御部150は、前述のように論理ボリューム管理テーブル111およびディスク管理テーブル112に基づいて、バックアップデータの転送先の論理ボリュームに応じたHDDを特定し、HDDに対応するバッファを特定する。
例えば、バッファ制御部150は、転送先ボリュームV1(ID“vol1”)を指定したバックアップデータの書き込み要求を受信する。すると、バッファ制御部150は、転送先ボリュームV1に対応するアグリゲートA(アグリゲートID“aggr1”)のRAIDグループR1(RAID番号“rg0”)を特定する。そして、バッファ制御部150は、RAIDグループR1に属するHDD106,106a,106b,106c(ディスクID“00.0”、“00.1”、“00.2”、“00.3”)を特定する。バッファ制御部150は、HDD106,106a,106b,106cそれぞれに対応するバッファ121,121a,121b,121cを特定する。
バッファ制御部150は、バックアップデータ(パリティを含む)をバッファ121,121a,121b,121cに分散して格納する。例えば、バッファ制御部150は、バックアップデータを分割した3つの部分データと1つのパリティデータとを、バッファ121,121a,121b,121cに分散して格納する。バッファ制御部150は、バッファフルなどのタイミングで、バッファ121,121a,121b,121cに格納されたバックアップデータを各バッファに対応するHDD106,106a,106b,106cに書き込む。書き込みを行っていない間は、HDD106,106a,106b,106cの電源をオフにできる。
図16(B)は、1つのアグリゲートA(アグリゲートID“aggr1”)に対応付けられる2つの論理ボリューム(論理ボリュームID“vol1”、“vol6”)を転送先とするバックアップデータを受信する場合を例示している。この場合も、バッファ制御部150は、論理ボリュームID“vol1”を転送先とするバックアップデータをバッファ121,121a,121b,121cによりバッファリングする。バッファ制御部150は、論理ボリュームID“vol6”を転送先とするバックアップデータをバッファ121,121a,121b,121cによりバッファリングする。そして、バッファ制御部150は、バッファフルなどのタイミングで、バッファ121,121a,121b,121cに格納されたバックアップデータを各バッファに対応するHDD106,106a,106b,106cに書き込む。書き込みを行っていない間は、HDD106,106a,106b,106cの電源をオフにできる。
上記処理を次のように表してもよい。バッファ制御部150は、1つのバックアップデータの複数の部分データおよびパリティデータをバックアップ用HDD毎のバッファに格納する。バッファ制御部150は、複数のバックアップデータについて、バックアップ用HDD毎に格納する部分データまたはパリティデータを集約してバッファリングする。バッファ制御部150は、バックアップ用HDDの電源をオンにしたときには、当該バックアップ用HDDに対して集約した部分データまたはパリティデータをまとめて書き込む。
このようにして、ストレージ装置100は、通常時はバックアップ用HDDの電源をオフとする。そして、ストレージ装置100は、バックアップ用HDD毎のバッファにバックアップデータを蓄積する。ストレージ装置100は、バックアップデータの書き込みを行う際に、書き込み先のバックアップ用HDDの電源をオンにし、書き込みが完了すると、当該HDDの電源を再度オフにする。これにより、ストレージ装置100やディスクシェルフ200を省電力化できる。
ここで、バックアップ処理は、ユーザの業務に支障のない時間帯に実行されることが多い。例えば、ユーザの業務に支障のない時間帯(例えば、業務終了後の時間帯)にバックアップ処理を行い、バックアップ処理が完了した段階でストレージ装置100やディスクシェルフ200の電源をオフにすることで、省電力化を図ることも考えられる。しかし、近年では、異なる地域や異なる業務を行う複数のユーザがストレージ装置100やディスクシェルフ200を共用することが多く、ユーザ毎の業務時間帯も異なることが多い。このため、ストレージ装置100やディスクシェルフ200は、常時何らかの処理(業務処理やバックアップ処理など)に用いられている可能性が高く、ストレージ装置100やディスクシェルフ200単位で定時に電源をオフにすることが難しい。
そこで、ストレージ装置100は、バックアップデータ格納用の複数のHDDを通常は電源オフにし、電源オフ中に受け付けたバックアップデータをHDD毎のバッファに保持する。ストレージ装置100は、バッファから書き込む時だけHDD毎に電源オンし、書き込みが完了すると再度電源オフとする。このようにすれば、全てのバックアップ用HDDを一律に電源オンするよりも、省電力化を図れる。特に、ストレージ装置100やディスクシェルフ200単位での電源オフが難しい場合でも、ストレージ装置100やディスクシェルフ200の省電力化を図れる。
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。HDDに対するアクセス制御を行うコントローラを、HDDを収納する装置とは別個の装置(ストレージ制御装置)として設けてもよい。
図17は、第3の実施の形態のストレージ制御装置のハードウェア例を示す図である。ストレージ制御装置500は、プロセッサ501、メモリ502、バッテリ503、ROM504、ディスク制御部505および外部IF506を有する。各ユニットは、ストレージ制御装置500のバスに接続されている。
プロセッサ501は、ストレージ制御装置500の情報処理を制御する。プロセッサ501は、マルチプロセッサであってもよい。プロセッサ501は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
メモリ502は、ストレージ制御装置500の主記憶装置である。メモリ502は、プロセッサ501に実行させるOS(ストレージ制御装置500の管理OS)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、メモリ502は、プロセッサ501による処理に用いられる各種データを記憶する。メモリ502は、バッテリ503によってバックアップされる不揮発性記憶装置である。
バッテリ503は、メモリ502に電力を供給する電池である。
ROM504は、管理OSのプログラムおよびアプリケーションプログラムおよび各種データを記憶する。ただし、ROM504は、書き換え可能なメモリであってもよい。
ディスク制御部505は、所定のケーブルを用いてディスクシェルフ600に接続されている。ディスクシェルフ600は、複数のHDD(SSDなどの他の記憶装置でもよい)を収納可能な装置である。ディスク制御部505のインタフェースとしては、例えばSASを用いることができる。ディスク制御部505は、プロセッサ501の指示に応じて、ディスクシェルフ600に収納されたHDDに対するデータの書き込み、および、HDDからのデータの読み出しの指示をディスクシェルフ600に送信する。また、ディスク制御部505は、プロセッサ501の指示に応じて、ディスクシェルフに収納されたHDD毎の電源のオンおよびオフの指示を、ディスクシェルフ600に送信することもある。
外部IF506は、ネットワーク30を介して他の装置と通信する通信インタフェースである。他の装置は、例えば、第2の実施の形態で例示した管理装置300、サーバ400および他のストレージ装置などである(ただし、図17では図示を省略している)。
ディスクシェルフ600は、ディスク制御部601およびHDD群610を有する。ディスク制御部601は、所定のケーブルを用いてディスク制御部505と接続されている。ディスク制御部601は、ディスク制御部505を介して、プロセッサ501の指示を受け付け、指示に応じて、ディスクシェルフ600に収納されたHDDに対するデータの書き込み、およびHDDからのデータの読み出しを行う。ディスク制御部601のインタフェースも、ディスク制御部505と同様にSASインタフェースを用いることができる。HDD群610は、HDD611,612,613を含む。HDD611,612,613は、バックアップ用HDDである。
プロセッサ501は、ROM504に格納されたプログラムを実行することで、図5で示した管理OS140、バッファ制御部150およびディスク電源制御部160の各機能を発揮する。プロセッサ501は、これらの機能により、第2の実施の形態と同様にディスクシェルフ600に収納されたHDDに対するバックアップデータの書き込みを制御する。
具体的には、プロセッサ501は、メモリ502の記憶領域に、HDD611,612,613それぞれに対応するバッファを設ける。プロセッサ501は、HDD611,612,613の電源を通常はオフにし、HDD611,612,613へのバックアップデータの書き込み要求を受信すると、バックアップデータを各HDDに対応するバッファに格納する。
例えば、プロセッサ501は、所定のタイミングで、ディスク制御部505,601を介してHDD611の電源をオンにする。所定のタイミングとしては、バッファフルになったタイミング、バックアップデータをバッファに格納してからの時間が最大データ保持時間を経過したタイミング、バックアップデータのHDDへの書き込み指示の入力を受け付けたタイミングの何れかが考えられる。そして、プロセッサ501は、HDD611に対応するバッファに格納されたバックアップデータを、ディスク制御部505,601を介してHDD611に書き込む。書き込みが完了すると、プロセッサ501は、ディスク制御部505,601を介してHDD611の電源をオフにする。
HDD611,612,613がRAIDを組んでいる場合もある。その場合、プロセッサ501は、HDD611,612,613の電源を同時に(多少の時間差はあってもよい)オンにし、バックアップデータ(あるいは、バックアップデータから計算されるパリティ)をHDD611,612,613に分散して書き込む。プロセッサ501は、書き込みが完了すると、HDD611,612,613の電源をオフにする。このようにして、ストレージ制御装置500は、第2の実施の形態と同様に、ディスクシェルフ600の省電力化を図れる。
なお、第1の実施の形態の情報処理は、制御部12にプログラムを実行させることで実現できる。また、第2,第3の実施の形態の情報処理は、プロセッサ101,501にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体43に記録できる。
例えば、プログラムを記録した記録媒体43を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。ストレージ装置100は、プロセッサ101およびメモリ102を有するコンピュータを含む。ストレージ制御装置500は、プロセッサ501およびメモリ502を有するコンピュータを含む。コンピュータは、例えば、記録媒体43に記録されたプログラムまたは他のコンピュータ(例えば、管理装置300や他のサーバ)から受信したプログラムを、メモリ102,502や不揮発性記憶装置などの記憶装置に格納(インストール)してもよい。この場合、コンピュータは、インストール先の記憶装置からプログラムを読み込んで実行する。
10 ストレージ制御装置
11 記憶部
11a,11b バッファ
12 制御部
20 ストレージ装置
21,22,23,24 記憶装置

Claims (8)

  1. バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置それぞれを書き込み先とする前記バックアップデータを記憶する記憶部と、
    前記記憶装置が電源オフされている場合に、何れかの記憶装置に対する前記バックアップデータの書き込み要求を受信すると、前記バックアップデータを前記記憶装置毎に対応付けて前記記憶部に格納させ、
    所定のタイミングで、前記記憶部に格納された前記バックアップデータの書き込み先の前記複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、
    電源をオンにした前記記憶装置に対応付けられた前記バックアップデータを前記記憶部から読み出して該記憶装置に書き込み、
    書き込みが完了した前記記憶装置の電源をオフにする、制御を行う制御部と、
    を有するストレージ制御装置。
  2. 前記制御部は、前記ストレージ制御装置の起動時に前記複数の記憶装置の電源がオンにされた後、前記複数の記憶装置の電源をオフにする、請求項1記載のストレージ制御装置。
  3. 前記制御部は、一連のバックアップデータを前記複数の記憶装置に分散して格納する場合に、記憶装置毎に格納するバックアップデータを集約して前記記憶部に格納し、電源をオンにした前記記憶装置に、該記憶装置に対して集約したバックアップデータを書き込む、請求項1または2記載のストレージ制御装置。
  4. 前記制御部は、前記記憶装置に対応付けて前記記憶部に格納された前記バックアップデータの合計サイズが閾値以上になったタイミングで、当該バックアップデータに対応する前記記憶装置の電源をオンにする、請求項1乃至3の何れか1項に記載のストレージ制御装置。
  5. 前記制御部は、前記記憶装置に対応付けられた前記バックアップデータが前記記憶部に格納されてから、前記記憶装置に対応付けて設定された時間が経過したタイミングで、当該バックアップデータに対応する前記記憶装置の電源をオンにする、請求項1乃至3の何れか1項に記載のストレージ制御装置。
  6. 前記記憶部には、1つの記憶装置に対して複数のバッファが設けられており、
    前記制御部は、前記記憶装置を書き込み先とする第1のバックアップデータを前記記憶装置に対応する第1のバッファに格納し、前記第1のバッファに格納された前記第1のバックアップデータを前記記憶装置に書き込んでいる間に、前記記憶装置を書き込み先とする第2のバックアップデータの書き込み要求を受信すると、前記記憶装置に対応する第2のバッファに前記第2のバックアップデータを格納する、
    請求項1乃至5の何れか1項に記載のストレージ制御装置。
  7. バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置と、
    前記記憶装置が電源オフされている場合に、前記バックアップデータを記憶する記憶部と、
    前記バックアップデータの書き込み要求を受信すると、前記バックアップデータを前記記憶装置毎に対応付けて前記記憶部に格納し、所定のタイミングで、前記記憶部に格納された前記バックアップデータの書き込みを指示する書き込み制御部と、
    前記指示に対応する記憶装置の電源を個別にオンにし、電源をオンにした前記記憶装置に対応付けられた前記バックアップデータを前記記憶部から読み出して該記憶装置に書き込み、書き込みが完了した前記記憶装置の電源をオフにする電源制御部と、
    を有するストレージ装置。
  8. バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置が電源オフされている場合に、何れかの記憶装置に対する前記バックアップデータの書き込み要求を受信すると、前記バックアップデータを前記記憶装置に対応付けて記憶部に格納し、
    所定のタイミングで、前記記憶部に格納された前記バックアップデータの書き込み先の前記複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、
    電源をオンにした前記記憶装置に対応付けられた前記バックアップデータを前記記憶部から読み出して該記憶装置に書き込み、
    書き込みが完了した前記記憶装置の電源をオフにする、
    処理をコンピュータに実行させるプログラム。
JP2015000281A 2015-01-05 2015-01-05 ストレージ制御装置、ストレージ装置およびプログラム Pending JP2016126561A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015000281A JP2016126561A (ja) 2015-01-05 2015-01-05 ストレージ制御装置、ストレージ装置およびプログラム
US14/968,968 US20160196085A1 (en) 2015-01-05 2015-12-15 Storage control apparatus and storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015000281A JP2016126561A (ja) 2015-01-05 2015-01-05 ストレージ制御装置、ストレージ装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2016126561A true JP2016126561A (ja) 2016-07-11

Family

ID=56286554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015000281A Pending JP2016126561A (ja) 2015-01-05 2015-01-05 ストレージ制御装置、ストレージ装置およびプログラム

Country Status (2)

Country Link
US (1) US20160196085A1 (ja)
JP (1) JP2016126561A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087720A (ko) * 2018-01-17 2019-07-25 주식회사 비젼코스모 데이터 백업용 스토리지에 대한 해킹을 차단할 수 있는 데이터 백업 관리 장치 및 그 동작 방법
JP2019204489A (ja) * 2018-03-29 2019-11-28 インテル・コーポレーション ストレージアドレスの決定に関してマルチレベルハッシュ関数を用いるオブジェクトストレージシステム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180329476A1 (en) * 2017-05-09 2018-11-15 Synology Incorporated Method for performing destination power management with aid of source data statistics in storage system, and associated apparatus
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
US11204841B2 (en) * 2018-04-06 2021-12-21 Micron Technology, Inc. Meta data protection against unexpected power loss in a memory system
US11042322B2 (en) 2019-09-13 2021-06-22 Toshiba Memory Corporation SSD supporting low latency operation
US11829642B2 (en) * 2021-11-30 2023-11-28 Red Hat, Inc. Managing write requests for drives in cloud storage systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156597A (ja) * 2005-12-01 2007-06-21 Hitachi Ltd ストレージ装置
JP2009140153A (ja) * 2007-12-05 2009-06-25 Fujitsu Ltd ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラムおよびストレージシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156597A (ja) * 2005-12-01 2007-06-21 Hitachi Ltd ストレージ装置
JP2009140153A (ja) * 2007-12-05 2009-06-25 Fujitsu Ltd ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラムおよびストレージシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087720A (ko) * 2018-01-17 2019-07-25 주식회사 비젼코스모 데이터 백업용 스토리지에 대한 해킹을 차단할 수 있는 데이터 백업 관리 장치 및 그 동작 방법
KR102039340B1 (ko) * 2018-01-17 2019-11-01 주식회사 비젼코스모 데이터 백업용 스토리지에 대한 해킹을 차단할 수 있는 데이터 백업 관리 장치 및 그 동작 방법
JP2019204489A (ja) * 2018-03-29 2019-11-28 インテル・コーポレーション ストレージアドレスの決定に関してマルチレベルハッシュ関数を用いるオブジェクトストレージシステム
JP7234479B2 (ja) 2018-03-29 2023-03-08 インテル・コーポレーション ストレージアドレスの決定に関してマルチレベルハッシュ関数を用いるオブジェクトストレージシステム

Also Published As

Publication number Publication date
US20160196085A1 (en) 2016-07-07

Similar Documents

Publication Publication Date Title
JP2016126561A (ja) ストレージ制御装置、ストレージ装置およびプログラム
US9501231B2 (en) Storage system and storage control method
US9946655B2 (en) Storage system and storage control method
EP2350839B1 (en) A mass-storage system utilizing solid-state storage and non-solid-state storage
US8234467B2 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
US8365023B2 (en) Runtime dynamic performance skew elimination
US8009501B2 (en) Storage apparatus and power saving method thereof
US8516206B2 (en) Computer-readable medium storing storage control program, storage control method, and storage control device
US9201601B2 (en) Reducing required battery capacity for data backup in a storage system with multiple controllers
US8984352B2 (en) Storage control apparatus and control method of storage control apparatus
US20120297156A1 (en) Storage system and controlling method of the same
US9471306B2 (en) Information processing apparatus and copy control method
US8195874B2 (en) Storage apparatus and method for shredding storage medium
JP2007025933A (ja) ストレージシステム及びそのファームウェア自動更新方法
US20140108749A1 (en) Storage system effectively managing a capacity for remote copy
US10001826B2 (en) Power management mechanism for data storage environment
US8627126B2 (en) Optimized power savings in a storage virtualization system
JP6019940B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
US10866756B2 (en) Control device and computer readable recording medium storing control program
JP5047342B2 (ja) ストレージ装置およびその制御方法
JP2023110180A (ja) ストレージ装置および制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190312