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

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

Info

Publication number
JP2014182508A
JP2014182508A JP2013055602A JP2013055602A JP2014182508A JP 2014182508 A JP2014182508 A JP 2014182508A JP 2013055602 A JP2013055602 A JP 2013055602A JP 2013055602 A JP2013055602 A JP 2013055602A JP 2014182508 A JP2014182508 A JP 2014182508A
Authority
JP
Japan
Prior art keywords
storage
unit
control unit
relocation
volume
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
JP2013055602A
Other languages
English (en)
Other versions
JP6142599B2 (ja
Inventor
Kenichi Fujita
賢一 藤田
Hiroshi Murayama
浩 村山
Tsuyoshi Uchida
剛志 内田
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 JP2013055602A priority Critical patent/JP6142599B2/ja
Priority to US14/133,795 priority patent/US9690693B2/en
Priority to EP13198935.2A priority patent/EP2782001B1/en
Publication of JP2014182508A publication Critical patent/JP2014182508A/ja
Application granted granted Critical
Publication of JP6142599B2 publication Critical patent/JP6142599B2/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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

Abstract

【課題】システム構成の変更前後に格納されたデータに対するアクセス性能の最適化を図ること。
【解決手段】ストレージシステムSMは、第1のストレージ筐体101と第2の制御ユニット121と第2のストレージユニット122を含む。第1のストレージ筐体101は、第1の制御ユニット111と第1のストレージユニット112を有する。第1のストレージユニット112は、第1のストレージ113と第1のストレージ制御部114を有する。第2のストレージユニット122は第2のストレージ123と第2のストレージ制御部124を有する。第1の制御ユニット111は、第1のストレージ113における割当中の記憶領域の記憶容量と第2のストレージ123における割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、第1および第2のストレージ113,123の記憶領域の割当状況を含む割当情報に基づき割当中の記憶領域の再配置制御を行う。
【選択図】図1

Description

本発明は、ストレージシステム、ストレージ装置および制御プログラムに関する。
従来、物理的な記憶装置のボリューム構成や記憶容量に縛られることなく、自由なボリューム構成、記憶容量の記憶装置を実現することができるストレージシステムとして、仮想化環境向けストレージ、いわゆる仮想化ストレージ装置がある。仮想化ストレージ装置は、装置内部に物理的な記憶装置に対するアクセスを制御する実ストレージ装置を有し、実ストレージ装置を管理するプロセッサにより仮想的なボリュームを作成する。
仮想化ストレージ装置は、例えば、ワイドストライピングによるデータアクセスを行う。ワイドストライピングとは、1つのボリュームに対するデータアクセスを、複数のLUN(Logical Unit Number)に分散し、固定長のストリップと呼ばれる単位でアクセスする技術である。
また、仮想化ストレージ装置に要求される記憶容量の増加にともなって、仮想化ストレージ装置全体の記憶領域の拡張が行われる場合がある。仮想化ストレージ装置全体の記憶領域の拡張方法としては、例えば、実ストレージ装置の増設や実ストレージ装置内の記憶装置の搭載量の増加などが挙げられる。
関連する先行技術としては、例えば、複数のディスクによりグループを構成し、複数のグループからそれぞれ記憶領域を仮想ボリュームに割り当て、外部操作に基づいて、仮想ボリュームが使用している各グループの記憶領域を再配置する技術がある。また、管理ノードを含む複数のストレージ・プロセッサ・ノード、バックボーンスイッチ、ディスクドライブアレイおよび管理ノード上で実行される仮想ファイルマネージャを含む仮想ファイルシステムがある。また、仮想ボリュームを複数のプールの間で再配置する際に、データベース上の情報に基づいて再配置前後のプール枯渇までの期間を予測し、予測結果に基づき再配置の可否を判定する、または、好適な再配置プランを決定する技術がある。
特開2008−234158号公報 特表2007−513429号公報 特開2008−112276号公報
しかしながら、従来技術によれば、システム全体の記憶領域の拡張が行われた場合、システム構成の変更前に格納されたデータに対するアクセス性能は、システム構成の変更前のストレージ装置の性能に応じたものに留まってしまう。
一つの側面では、本発明は、システム構成の変更前後に格納されたデータに対するアクセス性能の最適化を図ることができるストレージシステム、ストレージ装置および制御プログラムを提供することを目的とする。
本発明の一側面によれば、第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有するストレージ装置と、前記ストレージ装置に増設された、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットとを備え、前記第1の制御ユニットは、前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を記憶する記憶部と、前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う再配置制御部と、を有するストレージシステムが提案される。
また、本発明の一側面によれば、第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有し、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットが増設されるストレージ装置の前記第1の制御ユニットが、前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた状態における前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を取得し、前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行うストレージ装置および制御プログラムが提案される。
本発明の一態様によれば、システム構成の変更前後に格納されたデータに対するアクセス性能の最適化を図ることができるという効果を奏する。
図1は、実施の形態にかかるストレージシステムSMの一実施例を示す説明図である。 図2は、第1の制御ユニット111等のハードウェア構成例を示すブロック図である。 図3は、第1の制御ユニット111の機能的構成例を示すブロック図である。 図4Aは、第1の制御ユニット111の第1再配置制御処理手順の一例を示すフローチャートである。 図4Bは、第1の制御ユニット111の第2再配置制御処理手順の一例を示すフローチャートである。 図5は、実施例1にかかるストレージシステムSMのシステム構成例を示す説明図である。 図6は、VDISKの構成例を示す説明図である。 図7は、実施例1にかかるPUの機能的構成例を示す説明図である。 図8は、ボリュームインデックステーブル800の記憶内容の一例を示す説明図である。 図9は、ミラーボリュームインデックステーブル900の記憶内容の一例を示す説明図である。 図10は、ボリュームセグメントテーブル1000の記憶内容の一例を示す説明図である。 図11は、再配置計画テーブル720の記憶内容の一例を示す説明図である。 図12は、ボリュームの再配置計画例を示す説明図である。 図13は、ボリュームの再配置例を示す説明図(その1)である。 図14は、ボリュームの配置例を示す説明図である。 図15は、ボリュームインデックステーブル800の更新例を示す説明図である。 図16は、ボリュームセグメントテーブル1000の更新例を示す説明図である。 図17は、再配置計画テーブル720の更新例を示す説明図である。 図18は、ボリュームの再配置例を示す説明図(その2)である。 図19は、ストレージシステムSMのノード増設処理手順の一例を示すシーケンス図(その1)である。 図20は、ストレージシステムSMのノード増設処理手順の一例を示すシーケンス図(その2)である。 図21は、ストレージシステムSMの再配置処理手順の一例を示すシーケンス図(その1)である。 図22は、ストレージシステムSMの再配置処理手順の一例を示すシーケンス図(その2)である。 図23は、ストレージシステムSMの再配置処理手順の一例を示すシーケンス図(その3)である。 図24は、ストレージシステムSMの再配置処理手順の一例を示すシーケンス図(その4)である。 図25は、ストレージシステムSMの第1再配置停止処理手順の一例を示すシーケンス図である。 図26は、ストレージシステムSMの第2再配置停止処理手順の一例を示すシーケンス図である。 図27は、ストレージシステムSMの再配置一時停止処理手順の一例を示すシーケンス図である。 図28は、ストレージシステムSMの再配置再開処理手順の一例を示すシーケンス図である。 図29は、実施例2にかかるストレージシステムSMのシステム構成例を示す説明図である。 図30は、実施例2にかかるPUの機能的構成例を示す説明図である。 図31は、移行元先ボリューム対応表3100の記憶内容の一例を示す説明図である。 図32は、ストレージシステムSMのデータ移行処理手順の一例を示すシーケンス図(その1)である。 図33は、ストレージシステムSMのデータ移行処理手順の一例を示すシーケンス図(その2)である。
以下に図面を参照して、本発明にかかるストレージシステム、ストレージ装置および制御プログラムの実施の形態を詳細に説明する。
(ストレージシステムSMの一実施例)
図1は、実施の形態にかかるストレージシステムSMの一実施例を示す説明図である。図1において、ストレージシステムSMは、第1のストレージ筐体101と、第2のストレージ筐体102とを含む。第1のストレージ筐体101は、第1の制御ユニット111および第1のストレージユニット112を有する。第1のストレージユニット112は、第1のストレージ113と、第1のストレージ制御部114を有する。第1のストレージ制御部114は、第1のストレージ113に対するアクセスを制御するコンピュータである。第1のストレージ筐体101は、単独でストレージ装置として動作する。
第1の制御ユニット111は、自配下の第1のストレージユニット112を制御するコンピュータである。また、第1の制御ユニット111は、第1のストレージ筐体101に第2のストレージ筐体102が接続されると、第2のストレージ123を利用可能な状態にしてストレージシステムSM全体の記憶容量を拡張する機能を有する。
また、第1の制御ユニット111は、第2のストレージユニット122が接続されてアクセス可能な状態になると、第2のストレージユニット122も自配下のストレージユニットとして管理する。そして、第1の制御ユニット111は、第1のストレージ113および第2のストレージ123に対するアクセスを受け付ける。また、第1の制御ユニット111は、他の制御ユニット(例えば、第2の制御ユニット121)の増設後は、マスタ制御部として、他の制御ユニットを管理し、システム全体を制御する。
また、第2のストレージ筐体102は、第2の制御ユニット121および第2のストレージユニット122を有する。第2のストレージユニット122は、第2のストレージ123と、第2のストレージ制御部124を有する。第2のストレージ制御部124は、第2のストレージ123に対するアクセスを制御するコンピュータである。第2の制御ユニット121および第2のストレージユニット122は、増設の際の「部材」であり、例えば、ストレージシステムSMに組み込まれてストレージ装置として機能する。
第2の制御ユニット121は、自配下のストレージユニットを制御するコンピュータである。第2の制御ユニット121は、第1のストレージ筐体101に第2のストレージ筐体102が接続されると、第1のストレージ113および第2のストレージ123を自配下のストレージユニットとして管理する。そして、第2の制御ユニット121は、第1のストレージ113および第2のストレージ123に対するアクセスを受け付ける。
第1および第2のストレージ113,123は、それぞれ一以上の記憶装置Dを含む。記憶装置Dは、例えば、ハードディスク、光ディスク、フラッシュメモリ、磁気テープなどの物理的な記憶装置であってもよく、また、論理的な記憶装置であるLUNであってもよい。
第1および第2の制御ユニット111,121は、筐体間接続用の通信路130により第1および第2のストレージユニット112,122にそれぞれ接続される。このため、第1の制御ユニット111は、第2のストレージユニット122に直接アクセス可能であり、第2の制御ユニット121は、第1のストレージユニット112に直接アクセス可能である。
ここで、ストレージシステムSMは、例えば、ワイドストライピングによるデータアクセスを行う。ワイドストライピングによれば、アクセス集中による性能低下を抑止し、サーバ等からのアクセス量やボリュームの物理的位置を意識した複雑な性能設計を行うことなく、安定した性能を確保することができる。
また、ストレージシステムSMに要求される記憶容量の増加にともなって、ストレージシステムSM全体の記憶領域の拡張が行われる場合がある。ここでは、既設の第1のストレージ101に第2のストレージユニット122が増設されて、ストレージシステムSM全体の記憶領域の拡張(いわゆる、スケールアウト)が行われた場合を想定する。
この場合、システム構成の変更後に格納されるデータは、ワイドストライピングにより、複数のストレージユニット(図1の例では、第1および第2のストレージユニット112,122)上にデータが格納される可能性があり、複数のストレージユニット分のアクセス性能が期待できる。
一方、システム構成の変更前に格納されたデータに対するアクセス性能は、システム構成の変更前のストレージユニット(図1の例では、第1のストレージユニット112)の性能のままに留まってしまう。このように、システム構成の変更前後で格納されたデータに対するアクセス性能にアンバランスがあることは、ストレージシステムSMの性能を管理する上で望ましくない。
そこで、本実施の形態では、第1のストレージ筐体101の第1の制御ユニット111は、第1および第2のストレージ113,123間に生じた割当中の記憶領域の記憶容量の偏りの度合いに応じて、割当中の記憶領域の再配置制御を行う。
具体的には、例えば、第1の制御ユニット111は、第1のストレージ筐体101に第2の制御ユニット121および第2のストレージユニット122が接続されて記憶容量の拡張処理が行われて所定の偏りが検出されたときに割当中の記憶領域の再配置制御を行う。これにより、ストレージシステムSMに第2の制御ユニット121および第2のストレージユニット122が増設されてシステム構成が変更されたときの変更前後に格納されたデータに対するアクセス性能の最適化を図ることができる。
(コンピュータのハードウェア構成例)
つぎに、図1に示した第1および第2の制御ユニット111,121および第1および第2のストレージ制御部114,124などのコンピュータ(ここでは、単に「第1の制御ユニット111等」と称する)のハードウェア構成例について説明する。
図2は、第1の制御ユニット111等のハードウェア構成例を示すブロック図である。図2において、第1の制御ユニット111等は、CPU(Central Processing Unit)201と、メモリ202と、I/F(Interface)203と、を有する。また、各構成部はバス210によってそれぞれ接続されている。
ここで、CPU201は、第1の制御ユニット111等の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有している。より具体的には、例えば、フラッシュROMがOSやファームウェアなどのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されているプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させることになる。
I/F203は、他のコンピュータからのデータの入出力を制御する。具体的には、例えば、I/F203は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークに接続され、このネットワークを介して他のコンピュータに接続される。そして、I/F203は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
(第1の制御ユニット111の機能的構成例)
図3は、第1の制御ユニット111の機能的構成例を示すブロック図である。図3において、第1の制御ユニット111は、記憶部301と、算出部302と、判定部303と、作成部304と、再配置制御部305と、を含む構成である。算出部302〜再配置制御部305は、具体的には、例えば、図2に示したメモリ202に記憶されたプログラムをCPU201に実行させることにより、または、I/F203により、その機能を実現する。また、各機能部の処理結果は、例えば、メモリ202に記憶される。
記憶部301は、第1のストレージ113の記憶領域の構成および第2のストレージ123の記憶領域の構成を示す構成情報を記憶する。この構成情報の中には、第1のストレージ113の記憶領域の割当状況および第2のストレージ123の記憶領域の割当状況を含む割当情報が含まれている。ここで、割当情報は、例えば、ボリュームが第1および第2のストレージ113,123内のどの記憶装置Dに割り当てられているかを示す情報である。
また、ボリュームは、ストレージシステムSMの管理単位となる記憶領域である。具体的には、例えば、ボリュームは、複数の物理的な記憶装置または記憶装置(例えば、ハードディスク)内のパーティションをグループ化して、仮想的に一つのボリュームとした論理ボリュームであってもよい。
詳細な説明は図6を用いて後述するが、例えば、ボリュームは、複数のセグメントセットの集合体であり、各セグメントセットは、複数のセグメントの集合体である。この場合、構成情報は、ボリュームを構成する各セグメントが第1および第2のストレージ113,123内のどの記憶装置Dに割り当てられているかを示す情報となる。
構成情報は、例えば、第1のストレージ制御部114のメモリ202や第1のストレージ113に記憶されている。第1の制御ユニット111は、例えば、第1のストレージ制御部114のメモリ202から構成情報を読み出して記憶部301に記憶する。また、構成情報は、例えば、第1および第2のストレージ113,123の記憶領域の割当状況に応じて更新される。
なお、構成情報は、冗長化のために第2のストレージ制御部124のメモリ202や第2のストレージ123にも記憶されることにしてもよい。構成情報の具体例については、後述する図8〜図10を用いて後述する。記憶部301は、例えば、第1の制御ユニット111のメモリ202により実現される。
算出部302は、記憶部301に記憶された構成情報に基づいて、第1および第2のストレージ113,123にそれぞれ含まれる記憶装置D間における割当中の記憶領域の記憶容量の差分dを算出する。なお、以下の説明では、割当中の記憶領域の記憶容量を「割当量q」と表記する場合がある。
具体的には、例えば、算出部302は、第1および第2のストレージ113,123に含まれる複数の記憶装置Dのうち、割当量qが最大となる記憶装置Dの最大割当量qmaxを算出する。また、算出部302は、複数の記憶装置Dのうち、割当量qが最小となる記憶装置Dの最小割当量qminを算出する。そして、算出部302は、最大割当量qmaxと最小割当量qminとの差分dを算出することにしてもよい。
なお、各記憶装置Dの割当量qは、例えば、各記憶装置Dに割り当てられているボリュームのセグメント数から求めることができる。例えば、セグメントの容量を256[MB]とし、ある記憶装置Dに割り当てられているセグメント数が「2」の場合、この記憶装置Dの割当量qは512[MB]となる。セグメントは、所定容量で規定された管理単位の記憶領域であり、ホストからボリュームへの記録再生指示アドレス(LBA)等の位置情報で管理される。
判定部303は、算出部302によって算出された差分dに基づいて、第1および第2のストレージ113,123の記憶領域の割当状況に所定の偏りがあるか否かを判定する。ここで、所定の偏りがある状態とは、第1および第2のストレージ113,123における割当中の記憶領域(例えば、セグメント)を再配置したほうが望ましい程度に記憶領域の割当状況が偏っている状態である。
具体的には、例えば、判定部303は、最大割当量qmaxと最小割当量qminとの差分dが、最大割当量qmaxの所定の割合α以上の場合に、第1および第2のストレージ113,123の記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。また、判定部303は、算出された最大割当量qmaxと最小割当量qminとの差分dが、所定のサイズβ以上の場合に、第1および第2のストレージ113,123の記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。
さらに、判定部303は、最大割当量qmaxと最小割当量qminとの差分dが、最大割当量qmaxの所定の割合α以上の場合、かつ、所定のサイズβ以上の場合に、第1および第2のストレージ113,123の記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。
既設のストレージユニットに比べて記憶容量の大きなストレージユニットを増設した場合には、増設したストレージユニットに多くのセグメントが配分されてしまう場合がある。このため、判定部303は、上述したように、使用可能な記憶容量に対する使用量から得られる使用率ではなく、割当量、すなわち、絶対使用量の比較を用いて、第1および第2のストレージ113,123の記憶領域の割当状況に所定の偏りがあるか否かを判定する。
なお、第2のストレージユニット122の増設直後は、第2のストレージ123に対する記憶領域の割当が行われておらず、第2のストレージ123の割当量(割当中の記憶領域の記憶容量)は0である。このため、判定部303は、割当量qの差分dを検出することにより、第1および第2のストレージ113,123の記憶領域の割当量の偏りを容易に検出することができる。
判定部303による判定処理は、例えば、予め設定された時間間隔で定期的に行われてもよく、また、ストレージシステムSMの管理者等の操作入力により任意のタイミングで行われてもよい。なお、割合αおよびサイズβは、例えば、メモリ202に記憶されている。また、割合αおよびサイズβの具体的な値については後述する。
作成部304は、記憶部301に記憶された構成情報に基づいて、第1および第2のストレージ113,123の間で割当量qが均等になるような再配置計画を作成する。ここで、再配置計画とは、例えば、ボリュームを構成するセグメントを、どのストレージのどの記憶装置Dに再配置するかを表すものである。具体的には、例えば、作成部304は、第1および第2のストレージ113,123に含まれる記憶装置D間で割当量qが均等になるような再配置計画を作成する。
また、作成部304は、記憶部301に記憶された構成情報に基づいて、第1および第2のストレージ113,123の各ストレージにおいて再配置によるデータ移動のためのコピー処理が少なくなるような再配置計画を作成することにしてもよい。作成された再配置計画は、例えば、後述の図11に示す再配置計画テーブル720に記憶される。
再配置制御部305は、第1のストレージ113における記憶領域の割当量qと第2のストレージ123における記憶領域の割当量qとの間に生じた偏りの度合いに応じて、記憶部301に記憶された構成情報に基づき割当中の記憶領域の再配置制御を行う。具体的には、例えば、再配置制御部305は、第1および第2のストレージユニット112,122を制御して、作成部304によって作成された再配置計画に従って、第1および第2のストレージ113,123における割当中の記憶領域の配置を再配置する。
より具体的には、例えば、再配置制御部305は、第1のストレージ筐体101に第2の制御ユニット121および第2のストレージユニット122が接続されて記憶容量の拡張処理が行われたことを検出したときに割当中の記憶領域の再配置制御を行う。なお、拡張処理とは、例えば、第1のストレージ筐体101に接続された第2のストレージユニット122の第2のストレージ123を利用可能な状態にする処理である。この場合、再配置制御部305は、例えば、第1のストレージ113における割当中の記憶領域の一部の配置を第2のストレージ123における未割当の記憶領域に再配置する再配置制御を行う。
また、再配置制御部305は、例えば、第1のストレージ113または第2のストレージ123に記憶装置Dが追加されたことを検出したときに割当中の記憶領域の再配置制御を行うことにしてもよい。また、再配置制御部305は、例えば、判定部303によって所定の偏りがあると判定された場合に、第1および第2のストレージ113,123における割当中の記憶領域の配置を再配置する制御を行うことにしてもよい。
また、再配置制御部305は、他のストレージユニットから第1のストレージユニット112へのデータ移行処理中に第2の制御ユニット121および第2のストレージユニット122が接続されて記憶容量の拡張処理が行われたことを検出したときに割当中の記憶領域の再配置制御を行うことにしてもよい。この場合、再配置制御部305は、例えば、第1のストレージ113における割当中の記憶領域の一部の配置を第2のストレージ123における未割当の記憶領域に再配置する再配置制御を行う。
(第1の制御ユニット111の再配置制御処理手順)
つぎに、第1の制御ユニット111の再配置制御処理手順について説明する。まず、図4Aを用いて、第1の制御ユニット111の第1再配置制御処理手順について説明する。第1再配置制御処理は、ストレージシステムSMがスケールアウトされた場合に実行される再配置制御処理の一例である。
図4Aは、第1の制御ユニット111の第1再配置制御処理手順の一例を示すフローチャートである。図4Aのフローチャートにおいて、まず、第1の制御ユニット111は、第1のストレージ筐体101に第2のストレージ筐体102(第2の制御ユニット121、第2のストレージユニット122)が接続されて第2のストレージ123が利用可能な状態になったか否かを判断する(ステップS411)。
ここで、第1の制御ユニット111は、第2のストレージ123が利用可能な状態になるのを待つ(ステップS411:No)。第2のストレージ123が利用可能な状態になった場合(ステップS411:Yes)、第1の制御ユニット111は、第1のストレージ制御部114のメモリ202から構成情報を読み出す(ステップS412)。
そして、第1の制御ユニット111は、読み出した構成情報に基づいて、第1および第2のストレージ113,123に含まれる記憶装置D間で割当量qが均等になるような再配置計画を作成する(ステップS413)。
つぎに、第1の制御ユニット111は、第1および第2のストレージユニット112,122を制御して、作成した再配置計画に従って、第1および第2のストレージ113,123における割当中の記憶領域の配置を再配置する(ステップS414)。そして、第1の制御ユニット111は、本フローチャートによる一連の処理を終了する。
これにより、ストレージシステムSMがスケールアウトされた場合に、第1および第2のストレージ113,123における割当中の記憶領域の再配置制御を行うことができる。
つぎに、図4Bを用いて、第1の制御ユニット111の第2再配置制御処理手順について説明する。第2再配置制御処理は、任意のタイミング、あるいは、定期的に実行される再配置制御処理である。
図4Bは、第1の制御ユニット111の第2再配置制御処理手順の一例を示すフローチャートである。図4Bのフローチャートにおいて、まず、第1の制御ユニット111は、
第1のストレージ制御部114のメモリ202から構成情報を読み出す(ステップS421)。
つぎに、第1の制御ユニット111は、読み出した構成情報に基づいて、第1および第2のストレージ113,123に含まれる複数の記憶装置Dのうち、割当量qが最大となる記憶装置Dの最大割当量qmaxを算出する(ステップS422)。つぎに、第1の制御ユニット111は、読み出した構成情報に基づいて、複数の記憶装置Dのうち、割当量qが最小となる記憶装置Dの最小割当量qminを算出する(ステップS423)。
そして、第1の制御ユニット111は、最大割当量qmaxと最小割当量qminとの差分dを算出する(ステップS424)。つぎに、第1の制御ユニット111は、算出した差分dが最大割当量qmaxの割合α以上か否かを判断する(ステップS425)。ここで、差分dが最大割当量qmaxの割合α未満の場合(ステップS425:No)、第1の制御ユニット111は、本フローチャートによる一連の処理を終了する。
一方、差分dが最大割当量qmaxの割合α以上の場合(ステップS425:Yes)、第1の制御ユニット111は、差分dがサイズβ以上か否かを判断する(ステップS426)。ここで、差分dがサイズβ未満の場合(ステップS426:No)、第1の制御ユニット111は、本フローチャートによる一連の処理を終了する。
一方、差分dがサイズβ以上の場合(ステップS426:Yes)、第1の制御ユニット111は、構成情報に基づいて、第1および第2のストレージ113,123に含まれる記憶装置D間で割当量qが均等になるような再配置計画を作成する(ステップS427)。
つぎに、第1の制御ユニット111は、第1および第2のストレージユニット112,122を制御して、作成した再配置計画に従って、第1および第2のストレージ113,123における割当中の記憶領域の配置を再配置する(ステップS428)。そして、第1の制御ユニット111は、本フローチャートによる一連の処理を終了する。
これにより、任意のタイミング、あるいは、定期的に、第1および第2のストレージ113,123の記憶領域の割当状況を判定して、第1および第2のストレージ113,123における割当中の記憶領域の再配置制御を行うことができる。例えば、第2のストレージユニット122の増設直後は、第1および第2のストレージ113,123間の割当量の偏りが判定されるが、増設後の運用中は、第1および第2のストレージ113,123を合わせたシステム全体のストレージにおける記憶装置間で割当量の偏りが判定できる。すなわち、例えば、第1のストレージ113内の記憶装置間で偏りができている場合も判定できる。
以上説明したように、実施の形態にかかる第1のストレージ筐体101の第1の制御ユニット111によれば、第1および第2のストレージ113,123において生じた割当量qの偏りの度合いに応じて、割当中の記憶領域の再配置制御を行うことができる。これにより、ストレージシステムSMに格納されたデータに対するアクセス性能の最適化を図ることができる。
また、第1の制御ユニット111によれば、第1のストレージ筐体101に第2のストレージ筐体102(第2の制御ユニット121、第2のストレージユニット122)が接続されて記憶容量の拡張処理が行われたときに、第1のストレージ113における割当中の記憶領域の一部の配置を第2のストレージ123における未割当の記憶領域に再配置する再配置制御を行うことができる。これにより、ストレージシステムSMがスケールアウトされた場合に、システム構成の変更前に格納されたデータに対するアクセス性能の最適化を図ることができる。
また、第1の制御ユニット111によれば、第1および第2のストレージ113,123に含まれる記憶装置D間で割当量qが均等になるように、第1および第2のストレージ113,123における割当中の記憶領域の再配置制御を行うことができる。これにより、第1および第2のストレージユニット112,122間でデータに対するアクセスが均等になるように分散することができる。
また、第1の制御ユニット111によれば、第1および第2のストレージ113,123に含まれる記憶装置Dの最大割当量qmaxと記憶装置Dの最小割当量qminとの差分dを算出することができる。また、第1の制御ユニット111によれば、算出した差分dが、最大割当量qmaxの所定の割合α以上の場合、かつ、所定のサイズβ以上の場合に、第1および第2のストレージ113,123の記憶領域の割当状況に所定の偏りがあると判定することができる。これにより、第1および第2のストレージ113,123における割当中の記憶領域を再配置したほうが望ましい程度にストレージ間の記憶領域の割当状況が偏っているか否かを判断することができる。
また、第1の制御ユニット111によれば、他のストレージユニットから第1のストレージユニット112へのデータ移行処理中に第2の制御ユニット121および第2のストレージユニット122が接続されて記憶容量の拡張処理が行われたときに、第1のストレージ113における割当中の記憶領域の一部の配置を第2のストレージ123における未割当の記憶領域に再配置する再配置制御を行うことができる。これにより、データ移行中にストレージシステムSMがスケールアウトされても、システム構成の変更前に格納されたデータに対するアクセス性能の最適化を図ることができる。
(実施例1)
つぎに、実施の形態にかかるストレージシステムSMの実施例1について説明する。
(ストレージシステムSMのシステム構成例)
図5は、実施例1にかかるストレージシステムSMのシステム構成例を示す説明図である。図5において、ストレージシステムSMは、PU(Processor Unit)#1と、PU#2と、SW(Switch)#1と、SW#2と、SU(Storage Unit)#1と、を含む。
ここで、PU#1,#2は、SU#1,#2を制御するコンピュータである。PU#1,#2は、例えば、後述する業務サーバBSや管理サーバMSがアクセス可能なサーバである。図1に示した第1の制御ユニット111は、例えば、PU#1に相当する。SW#1,#2は、スイッチング機能を有するコンピュータである。
SU#1は、RAID(Redundant Arrays of Inexpensive Disks)#1〜#4を有し、RAID#1〜#4に対するアクセスを制御するコンピュータである。図1に示した第1のストレージユニット112は、例えば、SU#1に相当する。
各RAID#1〜#4は、複数の記憶装置(例えば、ハードディスク)をまとめて一つの記憶装置としたRAIDグループである。具体的には、各RAID#1〜#4は、それぞれ2つのLUNで構成されている。図1に示した第1のストレージ113は、例えば、RAID#1〜#4に相当する。また、図1に示した記憶装置Dは、例えば、LUNに相当する。
なお、ここでは冗長化のためにSU#1に2台のPU#1,#2が接続される場合を例に挙げて説明したが、SU#1には1台のPU(例えば、PU#1またはPU#2)が接続されることにしてもよい。
ストレージシステムSMは、ストレージシステムSMに要求される記憶容量の増加にともなって、ストレージシステムSM全体の記憶領域を拡張することができる。具体的には、例えば、ストレージシステムSMでは、PUとSUを1セットとして、ストレージシステムSM全体の記憶領域を拡張することができる。
以下の説明では、PUとSUを1セットとする拡張セット(PU+SU)を、ストレージシステムSMに追加することを「スケールアウト」と表記する場合がある。また、ストレージシステムSMに含まれるPU#1,#2とSW#1,#2とSU#1を「基本ノード」と表記し、ストレージシステムSMに追加される拡張セットを「増設ノード」と表記する場合がある。また、ストレージシステムSMにより提供される仮想的なボリュームを「VDISK」と表記する場合がある。
(VDISKの構成例)
図6は、VDISKの構成例を示す説明図である。図6において、VDISKは、複数のセグメントセットの集合体である。各セグメントセットは、8個のセグメント#1〜#8の集合体である。ここでは、各セグメントセットの容量は、例えば、2[GB]であり、また、各セグメントの容量は、例えば、256[MB]である。
図5に示したストレージシステムSMを例に挙げると、各セグメント#1〜#8は、SU#1内のLUN#1〜#8ごとに割り当てられる。ユーザのデータは、固定長のストリップ(1[MB])単位で記録される。また、このストリップはセグメント#1〜#8を順に利用する形でストライピングされる。
(ストレージシステムSM内のPUの機能的構成例)
図7は、実施例1にかかるPUの機能的構成例を示す説明図である。図7において、ストレージシステムSMは、基本ノードN1と、増設ノードN2と、を含む。図1に示した第1のストレージ装置101は、例えば、基本ノードN1に相当する。また、図1に示した第2のストレージ装置102は、増設ノードN2に相当する。ただし、図7では、スケールアウト直後のストレージシステムSMの状態を表す。基本ノードN1は、PU#1と、PU#2と、SU#1と、を含む。増設ノードN2は、PU#3と、SU#2と、を含む。
基本ノードN1内のPU#1,#2と、増設ノードN2内のPU#3と、管理サーバMSとは、管理用LANを介して接続される。管理サーバMSは、ストレージシステムSMの管理者が使用するコンピュータであり、装置管理GUI(Graphical User Interface)を有する。
また、基本ノードN1内のPU#1,#2と、増設ノードN2内のPU#3と、業務サーバBSとは、I/O用LANを介して接続される。業務サーバBSは、業務用のアプリケーションがインストールされたコンピュータである。
また、PU#1,#2,#3と、SU#1,#2とは、I/O用LANおよび内部管理LANを介して接続される。各SU#1,#2は、構成管理DB#1,#2と、ストレージ制御部#1,#2とを有する。ストレージ制御部#1,#2は、ストレージ制御プログラムをCPUが実行することにより実現される。ストレージ制御プログラムは、各SU#1,#2内のストレージに対するアクセスを制御するプログラムである。
構成管理DB#1,#2には、ボリューム管理テーブル710と再配置計画テーブル720が含まれる。ボリューム管理テーブル710と再配置計画テーブル720は、PU#1によって構成管理DB#1(または、構成管理DB#2)から読み出されて使用される。ここで、ボリューム管理テーブル710は、ボリュームインデックステーブル800(図8参照)と、ミラーボリュームインデックステーブル900(図9参照)と、ボリュームセグメントテーブル1000(図10参照)と、を含む。
ボリュームインデックステーブル800は、ボリューム(VDISK)を管理するテーブルである。ミラーボリュームインデックステーブル900は、ミラーボリュームを管理するテーブルである。ボリュームセグメントテーブル1000は、ボリュームのセグメントを管理するテーブルである。各テーブル800,900,1000は、ボリューム番号をインデックスとして関連付けられている。
また、再配置計画テーブル720は、VDISKを構成する各セグメントをどこへ配置するかを計画した計画後の配置先のストレージ装置(SU)、LUN番号および再配置状況を管理するテーブルである。既に再配置が完了した(もしくは、再配置が不要な)セグメントの再配置状況については「再配置完了(もしくは、再配置不要)」とする。また、現状再配置中のセグメントの再配置状況については「再配置中」とし、今後再配置されるセグメントの再配置状況については「再配置待」とする。
再配置の一時停止中は、PU#1は、再配置計画テーブル720を削除することなく保持しておく。再配置が停止された場合は、PU#1は、再配置計画テーブル720を破棄する。また、再配置の一時停止中にボリューム(VDISK)が削除された場合、PU#1は、ボリューム管理テーブル710のボリュームインデックステーブル800から該当レコードを削除するとともに、再配置計画テーブル720から該当レコードを削除する。なお、ボリューム管理テーブル710と再配置計画テーブル720についての詳細な説明は、図8〜図11を用いて後述する。
PU#1は、I/O制御部#1と、PU制御部#1と、クラスタ制御Mと、装置管理GUI制御部#1と、PU負荷監視部#1と、SU制御部#1と、ボリューム管理Mと、ボリューム管理A#1と、を含む。図3に示した算出部302、判定部303、作成部304および再配置制御部305は、例えば、ボリューム管理Mに相当する。
また、PU#2は、I/O制御部#2と、PU制御部#2と、クラスタ制御部#2と、PU負荷監視部#2と、SU制御部#2と、ボリューム管理A#2と、を含む。また、PU#3は、I/O制御部#3と、PU制御部#3と、クラスタ制御部#3と、PU負荷監視部#3と、SU制御部#3と、ボリューム管理A#3と、を含む。
ここで、I/O制御部#1〜#3は、業務サーバBSからのI/O要求を受け付けて処理する。PU制御部#1〜#3は、各PU#1〜#3を制御する。クラスタ制御Mは、PU同士をクラスタリングする。ここでは、PU#1とPU#2とPU#3とでクラスタが形成されている。クラスタ制御部#2,#3は、クラスタ制御MによってクラスタリングされたPU#1〜#3を認識する。
装置管理GUI制御部#1は、管理サーバMSからの指示に従って、ストレージシステムSMの状態を判断したり、新規ボリュームを作成したりする。PU負荷監視部#1〜#3は、各PU#1〜#3にかかる負荷を監視する。SU制御部#1〜#3は、各SU#1,#2を制御する。
ボリューム管理Mは、ボリューム管理A#1〜#3を制御する。具体的には、例えば、ボリューム管理Mは、再配置制御スレッドを起動して、ボリューム管理A#1〜#3に実行させる。ボリューム管理A#1〜#3は、ボリューム管理Mの制御に従って、ボリュームを管理する。
なお、ストレージシステムSMにおいて、PU#1がダウンした場合は、例えば、PU#2またはPU#3が、PU#1の機能を引き継ぐ。また、業務サーバBS、管理サーバMSのハードウェア構成は、例えば、CPU、メモリ、磁気ディスクドライブ、磁気ディスク、ディスプレイ、I/F、キーボード、マウス等により実現される。
(ボリューム管理テーブル710の記憶内容)
つぎに、図8〜図10を用いて、ボリューム管理テーブル710の記憶内容について説明する。上述した構成情報は、例えば、ボリューム管理テーブル710に相当する。
図8は、ボリュームインデックステーブル800の記憶内容の一例を示す説明図である。図8において、ボリュームインデックステーブル800は、ボリューム番号、ボリューム名、稼働PU番号、ボリューム属性、ボリュームサイズ、ボリューム状態および再配置状況のフィールドを有する。各フィールドに情報を設定することで、ボリューム情報800−1〜800−nがレコードとして記憶される。
ここで、ボリューム番号は、VDISKの識別子である。ボリューム名は、VDISKの名称である。稼働PU番号は、VDISKが稼働しているPUの識別子である。ボリューム属性は、VDISKの属性である。ボリュームサイズは、業務サーバBSからみたVDISKのサイズ(GB)である。ボリューム状態は、VDISKにアクセスできるか否かを示す状態である。再配置状況は、VDISKの再配置状況を示す。
例えば、ボリューム情報800−1は、VDISK1のボリューム名「Vdisk1」、稼働PU番号「1」、ボリューム属性「シンプロボリューム」、ボリュームサイズ「500」、ボリューム状態「正常」および再配置状況「再配置中」を示している。なお、ボリューム情報800−nのように、ボリューム名が「NULL」のボリューム情報は、未作成のVDISKの情報である。
図9は、ミラーボリュームインデックステーブル900の記憶内容の一例を示す説明図である。図9において、ミラーボリュームインデックステーブル900は、ボリューム番号、ミラー数、ミラーボリューム番号1およびミラーボリューム番号2のフィールドを有する。各フィールドに情報を設定することで、ミラーボリューム情報(例えば、ミラーボリューム情報900−1,900−2)がレコードとして記憶される。
ここで、ボリューム番号は、ミラーボリュームの識別子である。ミラー数は、ミラーリングするボリュームの数である。ミラーボリューム番号1,2は、ミラーボリュームの実体であるVDISKの識別子である。例えば、ミラーボリューム情報900−1は、VDISK5のミラー数「2」、ミラーボリューム番号1「127」およびミラーボリューム番号2「128」を示している。
図10は、ボリュームセグメントテーブル1000の記憶内容の一例を示す説明図である。図10において、ボリュームセグメントテーブル1000は、ボリューム番号、セグメントセット番号、セグメント番号、ストレージ装置、LUN番号、セグメント状態および再配置状況のフィールドを有する。各フィールドに情報を設定することで、セグメント情報(例えば、セグメント情報1000−1,1000−2)がレコードとして記憶される。
ここで、ボリューム番号は、VDISKの識別子である。セグメントセット番号は、VDISKを構成するセグメントセットの識別子である。セグメント番号は、セグメントセットを構成するセグメントの識別子である。ストレージ装置は、セグメントが属するSUの識別子である。LUN番号は、セグメントが割り当てられたLUNの識別子である。セグメント状態は、セグメントにアクセスできるか否かを示す状態である。再配置状況は、セグメントの再配置状況を示す。
例えば、セグメント情報1000−1は、VDISK1のセグメントセット1のセグメント1のストレージ装置「1」、LUN番号「1」、セグメント状態「有効」および再配置状況「ブランク(空)」を示している。
(再配置計画テーブル720の記憶内容)
つぎに、図11を用いて、再配置計画テーブル720の記憶内容について説明する。
図11は、再配置計画テーブル720の記憶内容の一例を示す説明図である。図11において、再配置計画テーブル720は、ボリューム番号、セグメントセット番号、セグメント番号、現ストレージ装置、現LUN番号、再配置ストレージ装置、再配置LUN番号および再配置状況のフィールドを有する。各フィールドに情報を設定することで、再配置計画情報(例えば、再配置計画情報1100−1〜1100−5)がレコードとして記憶される。
ここで、ボリューム番号は、VDISKの識別子である。セグメントセット番号は、VDISKを構成するセグメントセットの識別子である。セグメント番号は、セグメントセットを構成するセグメントの識別子である。現ストレージ装置は、再配置前のセグメントが属するSUの識別子である。現LUN番号は、再配置前のセグメントが割り当てられたLUNの識別子である。再配置ストレージ装置は、再配置後のセグメントが属するSUの識別子である。再配置LUN番号は、再配置後のセグメントが割り当てられるLUNの識別子である。再配置状況は、セグメントの再配置状況を示す。
例えば、再配置計画情報1100−1は、VDISK1のセグメントセット1のセグメント1の現ストレージ装置「1」、現LUN番号「1」、再配置ストレージ装置「1」、再配置LUN番号「1」および再配置状況「再配置不要」を示している。
(セグメントの割当量qの偏りの判定例)
つぎに、ストレージシステムSM内の各LUNのセグメントの割当量qの偏りの判定例について説明する。PU#1は、ストレージシステムSM内の各LUNのセグメントの割当量qを監視し、「偏りあり」と検出した場合に、装置管理GUI制御部により、偏りが発生している旨を通知する。監視契機としては、例えば、ノードの増設にともなうシステム構成変更時、定期的な監視時間の到来、SUの搭載量の増加時などがある。
具体的には、例えば、まず、PU#1は、ボリューム管理テーブル710を参照して、ストレージシステムSM内の各LUNのセグメントの割当量qを算出する。つぎに、PU#1は、ストレージシステムSM内の全LUNのうち、セグメントの割当量qが最大であるLUNの最大割当量qmaxとセグメントの割当量qが最小であるLUNの最小割当量qminとを特定する。
そして、PU#1は、最大割当量qmaxと最小割当量qminとの差分dが、最大割当量qmaxの所定の割合α以上、かつ、差分dが所定のサイズβ以上である場合に、ストレージシステムSM内の各LUNのセグメントの割当量qに偏りがあると判定する。所定の割合αおよびサイズβは、任意に設定可能である。割合αは、例えば、5〜10[%]程度の値に設定される。サイズβは、例えば、64[GB]や128[GB]程度の値に設定される。
(ボリュームの再配置計画)
つぎに、ボリューム(VDISK)の再配置計画について説明する。PU#1は、SUを構成するLUNにおけるセグメントの割当量qにより再配置計画を立てる。このため、増設されるSUの搭載容量が既存のSUの搭載容量と異なる場合であっても均等な再配置を行うことができる。
図12は、ボリュームの再配置計画例を示す説明図である。図12の1項に示すように、8.4[TB]の基本セット(SU#1)に、8.4[TB]の拡張セット(SU#2)を増設する場合を想定する。この場合、PU#1は、SU#1とSU#2との間で各LUNのセグメントの割当量qが均等になるように分散配置する。
図12の2項に示すように、8.4[TB]の基本セット(SU#1)に、16.8[TB]の拡張セット(SU#2)を増設する場合を想定する。この場合、PU#1は、SU#1とSU#2との間で各LUNのセグメントの割当量qが均等になるように分散配置する。
図12の3項に示すように、8.4[TB]の基本セット(SU#1)と8.4[TB]の拡張セット(SU#2)に、16.8[TB]の拡張セット(SU#3)を増設する場合を想定する。この場合、PU#1は、SU#1とSU#2とSU#3との間で各LUNのセグメントの割当量qが均等になるように分散配置する。なお、ここでは、PUとSUを1セットとする拡張セットを増設する場合について説明したが、SUのみを拡張セットとして増設することにしてもよい。
ここで、図13を用いて、スケールアウトによって増設されるSU#2に対して、既存のボリュームがどのように再配置されるのかを説明する。ここでは、スケールアウト後に自動で再配置処理が起動される場合について説明するが、管理サーバMSのGUI画面から再配置指示を手動で行うこともできる。
図13は、ボリュームの再配置例を示す説明図(その1)である。図13において、ボリューム1を構成するセグメントA0〜A31と、ボリューム2を構成するセグメントB0〜B15とがSU#1に配置されている(図13中、再配置前)。なお、図13中、各SU#1,#2内の円柱は、各SU#1,#2内のLUNを表す。
まず、PU#1は、SU#1とSU#2との間で各LUNのセグメントの割当量qが均等になるように再配置計画テーブル720を作成する(図13中、再配置の案)。なお、各セグメントの配置位置は暫定的なものである。
つぎに、PU#1は、再配置計画テーブル720を参照して、ボリューム1のセグメントA0〜A31について再配置する。ここでは、ボリューム1のセグメントA8〜A15およびA24〜A31がSU#2に再配置されている(図13中、再配置中)。
つぎに、PU#1は、再配置計画テーブル720を参照して、ボリューム2のセグメントB0〜B15について再配置する。ここでは、ボリューム2のセグメントB8〜B15がSU#2に再配置されている(図13中、再配置後)。これにより、SU#1とSU#2とで物理容量としては均等となる。
なお、LUNの使用状況は不連続に見えるが、ボリュームがワイドストライピングされたセグメントで構成されていれば性能面で問題はない。すなわち、LUNの使用状況の不連続性は性能面に影響しない。このため、不要な移動処理を避ける意味でもセグメントA16〜A23やセグメントB0〜B7を移動させないほうが、装置として無駄な処理を削減することができる。
また、各PUや各SUの保守点検等で一時的に再配置処理を止めたい場合のために、ストレージシステムSMは、再配置処理の一時停止機能および再開機能を有する。また、ストレージシステムSMは、再配置処理の停止機能を有する。ただし、再配置処理を停止すると、一度計画した再配置計画を破棄することになり、再配置を再度実行する際に、ストレージシステムSM内の各LUNのセグメントの割当量qの偏り判定および再計画テーブル作成の処理が実行されることとなる。
これに対し、一時停止機能を利用した場合は、再配置の一時停止中、PU#1は、ボリュームの再配置のために立てた再配置計画を破棄せずに保持しておく。そして、PU#1は、再開指示を受けた場合に、ボリューム管理テーブル710および再配置計画テーブル720を参照して、再開すべきエントリから再配置処理を継続する。これにより、再配置中の一時停止および一時停止からの再開が可能となる。
(各種テーブル710,720の更新例)
つぎに、図14〜図17を用いて、各種テーブル710,720の更新例について説明する。
図14は、ボリュームの配置例を示す説明図である。図14において、VDISK1を構成するセグメント#1〜#16がSU#1に配置されている。また、基本ノードN1に、PU#3とSU#2をセットとする増設ノードN2が増設されている。この場合、ストレージシステムSM内の各LUNのセグメントの割当量qに偏りが生じるため、VDISK1の再配置処理が行われる。
図15は、ボリュームインデックステーブル800の更新例を示す説明図である。図15において、基本ノードN1に増設ノードN2が増設されると、ボリュームインデックステーブル800内のボリューム情報1500−1の再配置状況が「再配置待」から「再配置中」に更新される。
図16は、ボリュームセグメントテーブル1000の更新例を示す説明図である。図16の(16−1)において、ボリュームセグメントテーブル1000には、ボリューム番号「1」のVDISK1のセグメント情報が記憶されている。セグメントセットを構成する8つのセグメントは、基本的には異なる8つのLUNに連続に配置される(例えば、図16中、実線枠)。
ただし、VDISK1を作成する前に作成済みのボリュームがあると、そのボリュームに割り当てられていたLUNを削除するタイミングでVDISK1にLUNが割り当てられる場合がある。この場合、連番でLUNが空いていないと、セグメントセットを構成するセグメントが配置されるLUNが平準化されないことがある(例えば、図16中、点線枠)。
図16の(16−2)において、PU#1のボリューム管理Mは、再配置計画テーブル720(例えば、後述の図17参照)が作成されると、ボリュームセグメントテーブル1000の再配置状況を「再配置処理中」とする。つぎに、ボリューム管理Mは、再配置計画テーブル720を参照して、再配置状況が「再配置待ち」となっているセグメントについて、各PU用に再配置制御スレッドを生成し、再配置を実施する。
各PUの再配置制御スレッドは、再配置すべきセグメントについてボリューム管理Aに再配置のためのコピー処理を指示する。ボリューム管理Mは、ボリューム管理Aから再配置制御スレッドに対してコピー完了を応答してきたら、再配置計画テーブル720の再配置状況を「再配置完了」に変更するとともに、ボリュームセグメントテーブル1000の再配置状況を「ブランク」に変更する。
図17は、再配置計画テーブル720の更新例を示す説明図である。図17の(17−1)において、PU#1は、VDISK1のセグメントセット単位ですべてのSUに割り付け、かつ、セグメントを割り付ける。また、PU#1は、LUN番号についても連続LUNを利用するように割り付けるように計画を立てる。具体的には、例えば、PU#1は、偶数セグメントをSU#2の連続LUNに割り付けるように計画する。また、PU#1は、奇数セグメントをSU#1の連続LUNに割り付けるように計画する。
図17の(17−2)において、PU#1は、上述したように機械的に再配置計画を立てた後、再配置によるデータ移動のためのコピー処理が少なくなるように再配置計画の見直しを行う。具体的には、例えば、PU#1は、現状(現ストレージ装置および現LUN番号)と、再配置後(再配置ストレージ装置および再配置LUN番号)とをセグメントセット単位で比べる。
例えば、セグメントセット番号3については、現LUN番号と再配置LUN番号がすべて不一致であるが、現LUN番号を見ると2つのセグメントが同じLUN番号に割り当たっている以外は、異なるLUNに割り振られている。このため、PU#1は、同じLUNに2つのセグメントが割り付けられているものだけをその他のLUNに割り振るように再計画する(LUN番号的にはセグメント順ではないが、異なるLUNに割り付けられているならば性能影響はないと判断)。
再配置すべきセグメントについては、PU#1は、再配置状況を「再配置待ち」とし、かつ、ボリュームセグメントテーブル1000の再配置状況を「再配置処理中」とする。また、再配置不要なセグメントについては、PU#1は、再配置計画テーブル720の再配置状況を「再配置不要」とする。
(同一SU内の再配置計画)
つぎに、同一SUにおいて再配置によるセグメント移動のためのコピー処理が少なくなるようにする再配置計画について説明する。同一SU内の再配置計画は、例えば、SU間で各LUNのセグメントの割当量qが均等になるようにするSU間の再配置計画が行われた後に作成される。
図18は、ボリュームの再配置例を示す説明図(その2)である。図18において、あるSU(例えば、SU#1)内にセグメントa〜pから構成されるセグメントセットが「再配置前」のように配置されていたとする。この場合、例えば、PU#1は、「再配置の案」のように、セグメントの未使用領域(図18中、白抜き四角)とセグメント移動により空くセグメントを利用してセグメントa〜hを整列させることができる。なお、図18中、黒塗り四角は、セグメントの使用中領域である。
ただし、セグメントa〜dおよびセグメントe〜gが互いに異なるRAIDグループに配置されているので、セグメントhだけを別のRAIDグループに移動すればIOアクセス性能の観点からは十分改善される。このため、PU#1は、セグメントhだけを移動させる再配置計画を立てる。
この結果、「再配置後」のように、セグメントhだけが別のLUNに移動されて、LUN間で均等になる。このように、同一SUにおいて再配置によるセグメント移動のためのコピー処理が少なくなるようにする再配置計画を立てることにより、余分なセグメントの移動を抑えつつ、アクセス性能を向上させることができる。また、再配置のためにPU/SU間のアクセスも削減することができる。
(再配置処理の具体的処理内容)
つぎに、ボリュームの再配置処理の具体的な処理内容の一例について説明する。各PUは、再配置処理によるセグメント移動による内部的な回線帯域の使用、および各PUのCPU負荷の影響により業務の運用に支障が出ないように、再配置処理を制御する。
具体的には、例えば、PU(例えば、PU#1)は、業務サーバBSからの1秒当たりのアクセス数(IOPS:Input Output Per Second)が、PUが処理できる最大IOPSに達しているか否かを判断する。ここで、業務サーバBSからのIOPSが最大IOPSに達している場合、PUは、再配置処理をせず業務IOを優先させる。
一方、業務サーバBSからのIOPSが最大IOPSに達していない場合は、PUは、空きのIOPS分を利用して再配置処理を行う。なお、空きのIOPSとは、最大IOPSから現IOPSを引いたものである。これにより、業務停止することなく、また、業務への影響を最小限に抑えつつボリュームの再配置を行うことができる。
ただし、再配置処理の実行によるPU/SU間の帯域利用およびPUのCPU負荷が増大することにより、業務IOのIOPSが減少することが考えられる。そこで、PUは、現IOPSとPUの最大IOPSの差分だけをみるのではなく、再配置処理により現IOPSの減少率が所定の割合(例えば、15[%])を超える場合には、再配置処理を間引くことにより業務のIOPSを維持できるようにしてもよい。
具体的には、例えば、PUは、以下のように、現IOPSが最大IOPSの95%以上である場合は再配置処理を抑止するために処理中にスリープ(例えば、1〜5[秒]程度待つ)を入れることにしてもよい。なお、xは、PUの最大IOPSであり、yは、現IOPSである。また、PUの最大IOPSは、予め設定されている。
0.95x≦y ・・・再配置処理をスリープさせる
0.95x>y ・・・再配置処理を稼働させる
また、PUは、再配置を稼働させたことにより、「0.85(直前y)≦(現y)」となった場合も、例えば、再配置処理中にスリープを入れることにより業務への影響を抑える。なお、「直前y」は、例えば、再配置処理直前の現IOPSである。
(ストレージシステムSMの各種処理手順)
つぎに、実施例1にかかるストレージシステムSMの各種処理手順について説明する。まず、ストレージシステムSMのノード増設処理手順について説明する。ここでは、基本ノードN1に増設ノードN2を追加する場合を例に挙げて、ストレージシステムSMのノード増設処理手順について説明する。
<ノード増設処理手順>
図19および図20は、ストレージシステムSMのノード増設処理手順の一例を示すシーケンス図である。図19のシーケンス図において、CE(Customer Engineer)は、基本ノードN1に増設ノードN2を物理的に接続し、SU#2の電源を投入する(ステップS1901)。
クラスタ制御Mは、SU#2の増設を検出する(ステップS1902)。クラスタ制御Mは、装置管理GUI制御部#1にSU#2の増設検出を通知する(ステップS1903)。装置管理GUI制御部#1は、SU増設検出事象を管理サーバMSのGUIに出力する(ステップS1904)。
クラスタ制御Mは、SU#2のストレージ制御部#2に対して、新たな管理用IPアドレスの割り付けを指示する(ステップS1905)。SU#2のストレージ制御部#2は、管理用IPアドレスを指示された値に設定する(ステップS1906)。クラスタ制御Mは、PU#1のSU制御部#1とPU#2のSU制御部#2にSU#2への接続を指示する(ステップS1907)。
SU制御部#1は、SU#2の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS1908)。SU制御部#2は、SU#2の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS1909)。SU制御部#1は、検出したLUNに対してログイン処理を行う(ステップS1910)。SU制御部#2は、検出したLUNに対してログイン処理を行う(ステップS1911)。
SU制御部#1は、SU#2との接続完了をクラスタ制御Mに通知する(ステップS1912)。SU制御部#2は、SU#2との接続完了をクラスタ制御Mに通知する(ステップS1913)。クラスタ制御Mは、装置管理GUI制御部#1にSU#2の追加完了を通知する(ステップS1914)。装置管理GUI制御部#1は、SU追加完了事象を管理サーバMSのGUIに出力する(ステップS1915)。
CEは、増設ノードN2のPU#3の電源を投入する(ステップS1916)。クラスタ制御Mは、PU#3の増設を検出すると、装置管理GUI制御部#1にPU#3の増設検出を通知する(ステップS1917)。装置管理GUI制御部#1は、PU検出事象を管理サーバMSのGUIに出力する(ステップS1918)。
図20のシーケンス図において、クラスタ制御Mは、検出したPU#3のIPアドレスの設定をPU制御部#3に指示する(ステップS1919)。PU制御部#3は、IPアドレスを管理用IPアドレスに変更する(ステップS1920)。クラスタ制御Mは、PU#3のSU制御部#3にSU#1およびSU#2への接続を指示する(ステップS1921)。
SU制御部#3は、SU#1の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS1922)。SU制御部#3は、検出したLUNに対してログイン処理を行う(ステップS1923)。SU制御部#3は、SU#2の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS1924)。
SU制御部#3は、検出したLUNに対してログイン処理を行う(ステップS1925)。SU制御部#3は、SU#1およびSU#2との接続完了をクラスタ制御Mに通知する(ステップS1926)。クラスタ制御Mは、PU#2のクラスタ制御部#2およびPU#3のクラスタ制御部#3に対してクラスタ変更を指示する(ステップS1927)。
クラスタ制御Mは、PU#3をクラスタ管理情報に組み込むことにより、クラスタ構成をPU#1,#2,#3に更新する(ステップS1928)。クラスタ制御部#2は、PU#3をクラスタ管理情報に組み込むことにより、クラスタ構成をPU#1,#2,#3に更新する(ステップS1929)。クラスタ制御部#3は、PU#3をクラスタ管理情報に組み込むことにより、クラスタ構成をPU#1,#2,#3に更新する(ステップS1930)。
クラスタ制御Mは、装置管理GUI制御部#1にPU#3の追加完了を通知する(ステップS1931)。装置管理GUI制御部#1は、PU追加完了事象を管理サーバMSのGUIに出力する(ステップS1932)。装置管理GUI制御部#1は、スケールアウトボタンを管理サーバMSのGUIに出力する(ステップS1933)。
利用者が、接続および内部的な装置組み込みが完了したことを了承する意味で、管理サーバMSのGUI上の「スケールアウトボタン」をクリックすると増設処理が完了する。スケールアウトの完了指示により、ストレージシステムSMとしてのストレージ容量はSU#2の分だけ増加し、SU#2上にも新たなデータを格納できるようになる。
<再配置処理手順>
つぎに、ストレージシステムSMの再配置処理手順について説明する。再配置処理は、例えば、ストレージシステムSMのスケールアウト完了後、または管理サーバMSのGUI画面から再配置指示を行った場合に実行される。
図21〜図24は、ストレージシステムSMの再配置処理手順の一例を示すシーケンス図である。図21のシーケンス図において、管理サーバMSの装置管理GUIは、スケールアウト指示または再配置指示をPU#1の装置管理GUI制御部#1に通知する(ステップS2101)。スケールアウト指示は、例えば、GUI画面上の「スケールアウトボタン」がクリックされると通知される。また、再配置指示は、例えば、GUI画面上の「再配置ボタン」がクリックされると通知される。
PU#1の装置管理GUI制御部#1は、スケールアウト指示を受け付けたか否かを判断する(ステップS2102)。ここで、スケールアウト指示を受け付けた場合(ステップS2102:Yes)、装置管理GUI制御部#1からボリューム管理Mにスケールアウト指示が通知され、ボリューム管理Mは、追加されたSU#2の容量分をストレージシステムSM全体の容量に加えて、SU#2の領域も利用できる状態にする(ステップS2103)。
一方、再配置指示を受け付けた場合(ステップS2102:No)、装置管理GUI制御部#1は、ボリューム管理Mに再配置指示を通知する(ステップS2104)。ボリューム管理Mは、構成管理DBからボリューム管理テーブル710を読み出す(ステップS2105)。
図22のシーケンス図において、ボリューム管理Mは、ボリューム管理テーブル710を参照して、ストレージシステムSM内の各LUNのセグメントの割当量qを算出する(ステップS2106)。ボリューム管理Mは、算出した各LUNのセグメントの割当量qに基づいて、ストレージシステムSM内の各LUNのセグメントの割当量qに偏りがあるか否かを判断する(ステップS2107)。
ここで、偏りがない場合(ステップS2107:No)、ボリューム管理Mは、図24のステップS2119に移行する。一方、偏りがある場合(ステップS2107:Yes)、ボリューム管理Mは、再配置計画を立てて再配置計画テーブル720を作成する(ステップS2108)。この際、ボリューム管理Mは、再配置すべきセグメントについて、再配置計画テーブル720の再配置状況を「再配置待」にするとともに、ボリュームセグメントテーブル1000の再配置状況を「再配置処理中」にする。
ボリューム管理Mは、再配置計画テーブル720を参照して、各PU#1,#2,#3の再配置制御スレッドを生成する(ステップS2109)。各PU#1,#2,#3の再配置制御スレッドは、ボリューム管理Mから指示されたボリュームの再配置をセグメント単位で各PU#1,#2,#3のボリューム管理A#1,#2,#3に指示する(ステップS2110)。
具体的には、例えば、各PU#1,#2,#3の再配置制御スレッドは、各PU#1,#2,#3のボリューム管理A#1,#2,#3に再配置すべきディスク情報(ディスクを特定するための情報、移動すべきセグメント)および移動先の情報を通知する。
図23のシーケンス図において、各ボリューム管理A#1,#2,#3は、業務IOの現IOPSが最大IOPSの95%以上か否かを判断する(ステップS2111)。ここで、現IOPSが最大IOPSの95%以上の場合(ステップS2111:Yes)、各ボリューム管理A#1,#2,#3は、一定時間スリープして(ステップS2112)、ステップS2111に戻る。
一方、現IOPSが最大IOPSの95%未満の場合、(ステップS2111:No)、各ボリューム管理A#1,#2,#3は、指示に従ってセグメントのコピーを行うことにより、指示されたセグメントを更新する(ステップS2113)。
各ボリューム管理A#1,#2,#3は、業務IOのIOPSが15%ダウンしたか否かを判断する(ステップS2114)。ここで、15%ダウンした場合(ステップS2114:Yes)、各ボリューム管理A#1,#2,#3は、一定時間スリープして(ステップS2115)、ステップS2114に戻る。
一方、15%ダウンしていない場合(ステップS2114:No)、各ボリューム管理A#1,#2,#3は、指示を依頼してきた各PU#1,#2,#3の再配置制御スレッドに対してコピー完了を通知する(ステップS2116)。なお、コピー完了の通知を受けた再配置制御スレッドは、コピー完了したセグメントについて、再配置計画テーブル720の再配置状況を「再配置完了」にするとともに、ボリュームセグメントテーブル1000の再配置状況をブランクにする。
図24のシーケンス図において、各PU#1,#2,#3の再配置制御スレッドは、再配置計画テーブル720を参照して、再配置していない残セグメントがあるか否かを判断する(ステップS2117)。ここで、残セグメントがある場合(ステップS2117:Yes)、各PU#1,#2,#3の再配置制御スレッドは、図23に示したステップS2110に戻る。
一方、残セグメントがない場合(ステップS2117:No)、各PU#1,#2,#3の再配置制御スレッドは、ボリュームの再配置完了をボリューム管理Mに通知する。ボリューム管理Mは、再配置計画テーブル720を参照して、未処理のボリュームがあるか否かを判断する(ステップS2118)。
ここで、未処理のボリュームがある場合(ステップS2118:Yes)、ボリューム管理Mは、図22に示したステップS2109に戻る。一方、未処理のボリュームがない場合(ステップS2118:No)、ボリューム管理Mは、再配置指示を契機として動作したか否かを判断する(ステップS2119)。
ここで、再配置指示を契機として動作した場合(ステップS2119:Yes)、ストレージシステムSMは一連の処理を終了する。一方、スケールアウト指示を契機として動作した場合(ステップS2119:No)、ボリューム管理Mは、一定時間スリープして(ステップS2120)、図21に示したステップS2105に戻る。
これにより、SU間で各LUNのセグメントの割当量qが均等になるようにボリュームの再配置を行うことができる。また、スケールアウト指示を契機として動作した場合には、ストレージシステムSM内の各LUNのセグメントの割当量qに偏りがあるか否かを定期的に判断してボリュームの再配置を行うことができる。
<再配置停止処理手順>
つぎに、ストレージシステムSMの再配置停止処理手順について説明する。まず、管理サーバMSのユーザにより再配置処理の停止指示が行われる場合の再配置停止処理手順について説明する。
図25は、ストレージシステムSMの第1再配置停止処理手順の一例を示すシーケンス図である。図25のシーケンス図において、管理サーバMSの装置管理GUIは、再配置処理の停止指示を受け付けた場合、再配置処理の停止指示をPU#1の装置管理GUI制御部#1に通知する(ステップS2501)。
装置管理GUI制御部#1は、再配置処理の停止指示を受け付けた場合、再配置処理の停止指示をボリューム管理Mに通知する(ステップS2502)。ボリューム管理Mは、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況を「再配置済」に変更する(ステップS2503)。
ボリューム管理Mは、再配置処理を実施中の各PU#1,#2,#3の再配置制御スレッドに対して再配置処理の停止指示を通知する(ステップS2504)。各PU#1,#2,#3の再配置制御スレッドは、仕掛け中の再配置処理を中止する(ステップS2505)。ボリューム管理Mは、再配置計画テーブル720を破棄して(ステップS2506)、ストレージシステムSMは一連の処理を終了する。これにより、管理サーバMSのユーザにより、実施中の再配置処理を任意のタイミングで停止することができる。
つぎに、再配置の停止事象が発生した場合のストレージシステムSMの再配置停止処理手順について説明する。再配置の停止事象としては、例えば、新たなスケールアウトが実施された場合、RAIDグループが閉塞した場合、SUにおけるLUNが削除された場合などがある。
図26は、ストレージシステムSMの第2再配置停止処理手順の一例を示すシーケンス図である。図26のシーケンス図において、ボリューム管理Mは、再配置の停止事象が発生した場合、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況を「再配置済」に変更する(ステップS2601)。
ボリューム管理Mは、再配置処理を実施中の各PU#1,#2,#3の再配置制御スレッドに対して再配置処理の停止指示を通知する(ステップS2602)。各PU#1,#2,#3の再配置制御スレッドは、仕掛け中の再配置処理を中止する(ステップS2603)。ボリューム管理Mは、再配置計画テーブル720を破棄して(ステップS2604)、ストレージシステムSMは一連の処理を終了する。これにより、再配置の停止事象が発生した場合に、実施中の再配置処理を停止することができる。
<再配置一時停止処理手順>
つぎに、ストレージシステムSMの再配置一時停止処理手順について説明する。再配置一時停止処理は、例えば、各PUや各SUの保守点検等で一時的に再配置処理を止めたい場合に行われる。
図27は、ストレージシステムSMの再配置一時停止処理手順の一例を示すシーケンス図である。図27のシーケンス図において、管理サーバMSの装置管理GUIは、再配置処理の一時停止指示を受け付けた場合、再配置処理の一時停止指示をPU#1の装置管理GUI制御部#1に通知する(ステップS2701)。
装置管理GUI制御部#1は、再配置処理の一時停止指示を受け付けた場合、再配置処理の一時停止指示をボリューム管理Mに通知する(ステップS2702)。ボリューム管理Mは、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況が「再配置中」のエントリについて、再配置状況を「一時停止」に変更する(ステップS2703)。
ボリューム管理Mは、再配置処理を実施中の各PU#1,#2,#3の再配置制御スレッドに対して再配置処理の停止指示を通知する(ステップS2704)。各PU#1,#2,#3の再配置制御スレッドは、仕掛け中の再配置処理を中止して(ステップS2705)、ストレージシステムSMは一連の処理を終了する。これにより、管理サーバMSのユーザにより、実施中の再配置処理を任意のタイミングで一時停止することができる。
<再配置再開処理手順>
つぎに、ストレージシステムSMの再配置再開処理手順について説明する。再配置再開処理は、例えば、各PUや各SUの保守点検等で一時的に再配置処理を止めた後に再配置を再開する場合に行われる。
図28は、ストレージシステムSMの再配置再開処理手順の一例を示すシーケンス図である。図28のシーケンス図において、管理サーバMSの装置管理GUIは、再配置処理の再開指示を受け付けた場合、再配置処理の再開指示をPU#1の装置管理GUI制御部#1に通知する(ステップS2801)。
装置管理GUI制御部#1は、再配置処理の再開指示を受け付けた場合、再配置処理の再開指示をボリューム管理Mに通知する(ステップS2802)。ボリューム管理Mは、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況が「一時停止」のエントリを検索して(ステップS2803)、図22に示したステップS2109に移行する。これにより、管理サーバMSのユーザにより、一時停止中の再配置処理を任意のタイミングで再開することができる。
以上説明したように、実施例1にかかるストレージシステムSMによれば、スケールアウト前に格納されたデータについても、ストレージシステムSM内のSU全体に再割り当てすることができる。これにより、スケールアウト後のストレージシステムSMが有するポテンシャルに相当するアクセス性能の向上を図ることができる。
(実施例2)
つぎに、実施の形態にかかるストレージシステムSMの実施例2について説明する。なお、実施例1で説明した箇所と同一箇所については、図示および説明を省略する。
(ストレージシステムSMのシステム構成例)
図29は、実施例2にかかるストレージシステムSMのシステム構成例を示す説明図である。図29において、ストレージシステムSMは、移行元ストレージ装置2901と、移行先ストレージ装置2902とを含む。移行先ストレージ装置2902は、例えば、図7に示した基本ノードN1(または、基本ノードN1および増設ノードN2)に相当する。移行先ストレージ装置2902は、業務サーバBSに接続される。移行元ストレージ装置2901と移行先ストレージ装置2902とは、例えば、I/O用LANを介して接続される。
具体的には、例えば、移行元ストレージ装置2901の業務サーバBSとの接続用ポートが、移行先ストレージ装置2902のデータ転送用ポートと接続される。これにより、移行元ストレージ装置2901に特別なI/O用のポートを追加することなく、移行元ストレージ装置2901と移行先ストレージ装置2902との間でデータのやり取りを行うことができる。
また、例えば、管理サーバMSのユーザにより、移行先ストレージ装置2902から移行元ストレージ装置2901に対してアクセスができるように、移行元ストレージ装置2901の移行対象ボリュームを移行先ストレージ装置2902に対してアクセスできるように設定する。移行先ストレージ装置2902は、移行元ストレージ装置2901の移行対象ボリュームにアクセスして、自律的に移行対象ボリュームに対応するボリュームを移行先側に作成し、ボリューム間でデータのコピーを行う。
また、業務サーバBSは、移行先ストレージ装置2902のボリュームに対して業務IOを行う。移行先ストレージ装置2902は、移行先側のボリュームに存在しないデータの読出指示を受け付けた場合は、移行元ストレージ装置2901の対応するボリュームから、対応するデータを読み出す。そして、移行先ストレージ装置2902は、業務サーバBSにデータを送信するとともに、自装置の対応するボリュームへデータを格納する。
また、移行先ストレージ装置2902は、データの更新時は自装置のボリュームに対してデータを更新する。この際、移行先ストレージ装置2902は、更新対象データを移行元ストレージ装置2901にも反映することにしてもよい。これにより、最終的に対応させたボリューム間でのデータ移行が完了する。
(ストレージシステムSM内のPUの機能的構成例)
図30は、実施例2にかかるPUの機能的構成例を示す説明図である。図30において、ストレージシステムSMは、基本ノードN1と、増設ノードN2と、を含む。基本ノードN1は、PU#1と、PU#2と、SU#1と、を含む。増設ノードN2は、PU#3と、SU#2と、を含む。
基本ノードN1内のPU#1,#2と、増設ノードN2内のPU#3と、管理サーバMSとは、管理用LANを介して接続される。また、基本ノードN1内のPU#1,#2と、増設ノードN2内のPU#3と、業務サーバBSとは、I/O用LANを介して接続される。
また、PU#1,#2,#3と、SU#1,#2とは、I/O用LANおよび内部管理LANを介して接続される。各SU#1,#2は、構成管理DB#1,#2と、ストレージ制御部#1,#2と、を有する。構成管理DB#1,#2には、ボリューム管理テーブル710と再配置計画テーブル720が含まれる。
PU#1は、I/O制御部#1と、PU制御部#1と、クラスタ制御Mと、装置管理GUI制御部#1と、移行VOL制御部#1と、データ移行制御部#1と、PU負荷監視部#1と、SU制御部#1と、ボリューム管理Mと、ボリューム管理A#1と、を含む。また、PU#2は、I/O制御部#2と、PU制御部#2と、クラスタ制御部#2と、PU負荷監視部#2と、SU制御部#2と、ボリューム管理A#2と、を含む。また、PU#3は、I/O制御部#3と、PU制御部#3と、クラスタ制御部#3と、PU負荷監視部#3と、SU制御部#3と、ボリューム管理A#3と、を含む。
ここで、移行VOL制御部#1は、移行元ストレージ装置2901のボリューム情報を読み出して、移行先のボリュームを作成する。この際、移行VOL制御部#1は、例えば、PU#1〜#3とSU#1,#2のロードバランスを考慮して、作成されるボリューム数が均等になるように配置する。また、再配置中にデータ移行を行う場合は、移行VOL制御部#1は、例えば、再配置計画テーブル720を参照して、作成されるボリューム数が均等になるように配置する。データ移行制御部#1は、ストレージ装置間のデータ移行を制御する。
(移行元先ボリューム対応表3100の記憶内容)
つぎに、移行先ストレージ装置2902が用いる移行元先ボリューム対応表3100の記憶内容について説明する。移行元先ボリューム対応表3100は、移行元ストレージ装置2901のボリュームが移行先ストレージ装置2902のどのボリュームに対応するかを示す情報である。なお、移行元先ボリューム対応表3100は、ボリューム番号をインデックスとして、ボリューム管理テーブル710および再配置計画テーブル720と関連付けられる。
図31は、移行元先ボリューム対応表3100の記憶内容の一例を示す説明図である。図31において、移行元先ボリューム対応表3100は、移行元TargetID、移行元LUN番号、移行元サイズ、移行先TargetID、移行先LUN番号およびボリューム番号のフィールドを有する。各フィールドに情報を設定することで、移行元先対応情報(例えば、移行元先対応情報3100−1〜3100−n)がレコードとして記憶される。
ここで、移行元TargetIDは、移行元のボリュームの識別子である。移行元LUN番号は、移行元のボリュームのLUN番号である。移行元サイズは、移行元のボリュームのサイズ(Byte)である。移行先TargetIDは、移行先のボリュームの識別子である。移行先LUN番号は、移行先のボリュームのLUN番号である。ボリューム番号は、ボリューム(VDISK)の番号である。なお、ボリューム番号は、移行先TargetIDに含まれていてもよい。
移行先ストレージ装置2902は、移行元ストレージ装置2901に対して存在するボリュームを問合せることにより、ボリュームごとに1エントリとして移行元先ボリューム対応表3100に格納する。具体的には、移行先ストレージ装置2902は、移行元TargetID、移行元LUN番号および移行元サイズに対応する、移行先TargetID、移行先LUN番号およびボリューム番号を格納する。
移行先のボリュームが作成されると、そのボリュームのボリューム情報がボリュームインデックステーブル800に登録される。また、ボリュームを構成するセグメントのうち、いずれかのSUに割り当てられているセグメントについては、そのセグメントのセグメント情報がボリュームセグメントテーブル1000に登録される。したがって、データ移行中に、移行先ストレージ装置2902をスケールアウトした場合も、スケールアウトにより増えた実ストレージ装置と、既存の実ストレージとの容量バランスを取るようにデータが再配置される。
(ストレージシステムSMのデータ移行処理手順)
つぎに、実施例2にかかるストレージシステムSMのデータ移行処理手順について説明する。なお、図32および図33では、移行先ストレージ装置2902として、基本ノードN1に相当する部分のみを表記して説明する。
図32および図33は、ストレージシステムSMのデータ移行処理手順の一例を示すシーケンス図である。図32のシーケンス図において、CEは、移行先ストレージ装置2902を、移行元ストレージ装置2901が接続されているI/O用LANに接続する(ステップS3201)。この結果、移行元ストレージ装置2901のストレージ制御部#3により、移行元ストレージ装置2901と移行先ストレージ装置2902とが接続される。
CEは、業務サーバBSとの論理的な接続を移行元ストレージ装置2901から切り離す(ステップS3202)。移行元ストレージ装置2901のストレージ制御部#3は、移行元ストレージ装置2901の移行対象ボリュームに対するアクセス許可を、業務サーバBSから移行先ストレージ装置2902に変更する(ステップS3203)。
管理サーバMSは、装置管理GUIを通して、移行先ストレージ装置2902に対して、移行元ストレージ装置2901のボリューム情報の読み出しを指示する(ステップS3204)。移行先ストレージ装置2902の移行VOL制御部#1は、移行元ストレージ装置2901のボリューム情報を読み出す(ステップS3205)。
移行VOL制御部#1は、読み出したボリューム情報に基づいて、移行元先ボリューム対応表3100を作成する(ステップS3206)。なお、図32では、移行元先ボリューム対応表3100を単に「対応表」と表記する。移行VOL制御部#1は、移行元先ボリューム対応表3100を参照して、移行元のボリュームと同じサイズのボリュームの作成をボリューム管理Mに指示する(ステップS3207)。
ボリューム管理Mは、作成すべきボリュームを各PU#1,#2に均等に割り当てる(ステップS3208)。この結果、ボリューム管理Mから、各PU#1,#2のボリューム管理A#1,#2に対してボリュームの作成指示が通知される。各ボリューム管理A#1,#2は、作成すべきボリュームのセグメントの割り当てを各SU#1のストレージ制御部#1に指示する(ステップS3209)。
この結果、各SU#1のストレージ制御部#1により、指定されたセグメントデータがLUN#nに対して書き込まれ、割当完了通知が依頼元のボリューム管理A#1,#2に通知される。そして、VOL作成完了通知がボリューム管理A#1,#2からボリューム管理Mに通知され、移行用VOL作成完了通知がボリューム管理Mから移行VOL制御部#1に通知される。
移行VOL制御部#1は、移行先のボリュームの作成が完了したか否かを判断する(ステップS3210)。ここで、移行先のボリュームの作成が完了していない場合(ステップS3210:No)、移行VOL制御部#1は、ステップS3207に戻る。一方、移行先のボリュームの作成が完了した場合(ステップS3210:Yes)、移行VOL制御部#1は、移行元先ボリューム対応表3100を管理サーバMSの装置管理GUIから参照できるように公開する(ステップS3211)。
移行VOL制御部#1は、移行先のボリュームが割り当てられたPU#1,#2ごとに、移行元ストレージ装置2901からの移行対象データの読み出しを指示する(ステップS3212)。この結果、不図示のデータ移行制御部#1により、移行元ストレージ装置2901の移行元のボリュームからデータを読み出し、移行先のボリュームへデータを書き出す処理を開始する。
なお、データ転送処理におけるデータ長(チャンクサイズ)は、例えば、256[KB]である。ただし、チャンクサイズについては、256[KB]に固定である必要はなく、転送効率に応じてその都度可変としてもよいし、1[MB]のようなサイズであってもよい。
移行VOL制御部#1は、移行先のボリュームへのデータ移行が完了したか否かを判断する(ステップS3213)。ここで、移行先のボリュームへのデータ移行が完了していない場合(ステップS3213:No)、移行VOL制御部#1は、ステップS3212に戻る。一方、移行先のボリュームへのデータ移行が完了した場合(ステップS3213:Yes)、図33のシーケンス図において、業務サーバBSを移行先ストレージ装置2901と接続する(ステップS3214)。
管理サーバMSは、装置管理GUIから参照できる移行元先ボリューム対応表3100を基に移行先のボリュームへアクセスできるように業務サーバBS側の設定を行う(ステップS3215)。この設定は、通常業務サーバBSにてボリュームをアクセスするための設定(例えば、デバイスの認識、認識したデバイスをマルチパスで束ねる等の設定)を指す。
移行先ストレージ装置2902は、業務サーバBSから移行先ストレージ装置2902上の移行先のボリュームに対するReadアクセスを受け付けた場合、IO領域が移行済みの領域か否かを判断する(ステップS3216)。ここで、IO領域が移行済みの領域の場合(ステップS3216:Yes)、移行先ストレージ装置2902は、移行先のボリュームからデータを読み出して業務サーバBSへ応答する。
一方、IO領域が移行済みの領域ではない場合(ステップS3216:No)、移行先ストレージ装置2902は、移行元ストレージ装置2901の対応するボリュームからデータを読み出して(ステップS3217)、移行先のボリュームに書き出すとともに業務サーバBSへ応答する。
また、移行先ストレージ装置2902は、業務サーバBSから移行先ストレージ装置2902上の移行先のボリュームに対するWriteアクセスを受け付けた場合、IO領域が移行済みの領域か否かを判断する(ステップS3216)。ここで、IO領域が移行済みの領域の場合(ステップS3216:Yes)、移行先ストレージ装置2902は、移行先のボリュームにデータを書き出して業務サーバBSへ応答する。
一方、IO領域が移行済みの領域ではない場合(ステップS3216:No)、移行先ストレージ装置2902は、データ補完が必要であれば、移行元ストレージ装置2901から補完の必要となる部分のデータを読み出して、業務サーバBSからのデータとマージし、移行先のボリュームに書き出す。データ補完が不要であれば、移行先ストレージ装置2902は、業務サーバBSからのデータを移行先のボリュームに書き出す。
なお、データ補完は、Writeされるデータのデータ長が移行元ストレージ装置2901から移行先ストレージ装置2902へのデータ転送時のチャンクサイズ256[KB]よりも小さい場合に必要となる。また、Writeされるデータのデータ長がチャンクサイズをまたぐ場合の不定となるデータ領域についてもデータ補完が必要となる。
以上説明したように、実施例2にかかるストレージシステムSMによれば、データ移行時に、移行先ストレージ装置2902が、自律的に移行元のボリュームに対応するボリュームを移行先ストレージ装置2902上に作成することができる。これにより、データ移行時に、人手により移行先ストレージ装置2902上に移行元のボリュームに対応するボリュームを用意する必要がなくなり、データ移行作業にかかる作業負荷を軽減させることができる。
また、ストレージシステムSMによれば、データ移行中にストレージシステムSMがスケールアウトされた場合、スケールアウト前に格納されたデータおよび移行対象データをストレージシステムSM内のSU全体に再割り当てすることができる。これにより、スケールアウト後のストレージシステムSMが有するポテンシャルに相当するアクセス性能の向上を図ることができる。
なお、上述した説明では、ストレージシステムSMのスケールアウト時に、PUよりもSUを先に組み込んでPUを後から組み込む場合を例に挙げて説明したが、SUよりもPUを先に組み込んでSUを後から組み込むことにしてもよい。
本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有するストレージ装置と、
前記ストレージ装置に増設された、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットとを備え、
前記第1の制御ユニットは、
前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う再配置制御部と、
を有することを特徴とするストレージシステム。
(付記2)前記再配置制御部は、
前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた際に所定の偏りが検出されたとき、前記第1のストレージにおける割当中の記憶領域の一部の配置を前記第2のストレージにおける未割当の記憶領域に再配置する再配置制御を行うことを特徴とする付記1に記載のストレージシステム。
(付記3)前記第1の制御ユニットは、
前記割当情報に基づいて、前記第1のストレージおよび前記第2のストレージにそれぞれに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出する算出部と、
前記算出部によって算出された前記差分に基づいて、前記第1のストレージおよび前記第2のストレージの記憶領域の割当状況に所定の偏りがあるか否かを判定する判定部と、を有し、
前記再配置制御部は、
前記判定部によって前記所定の偏りがあると判定された場合に、前記割当情報に基づき割当中の記憶領域の再配置制御を行うことを特徴とする付記1または2に記載のストレージシステム。
(付記4)前記算出部は、
前記割当情報に基づいて、前記複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、
前記判定部は、
前記算出部によって算出された前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記第1のストレージおよび前記第2のストレージの記憶領域の割当状況に所定の偏りがあると判定することを特徴とする付記3に記載のストレージシステム。
(付記5)前記判定部は、
前記算出部によって算出された前記差分が所定のサイズ以上の場合に、前記第1のストレージおよび前記第2のストレージの記憶領域の割当状況に所定の偏りがあると判定することを特徴とする付記3または4に記載のストレージシステム。
(付記6)前記再配置制御部は、
前記第1のストレージおよび前記第2のストレージに含まれる複数の記憶装置の記憶装置間で割当中の記憶領域の記憶容量が均等になるように、前記割当情報に基づき割当中の記憶領域の再配置制御を行うことを特徴とする付記1〜5のいずれか一つに記載のストレージシステム。
(付記7)前記第1の制御ユニットは、
前記割当情報に基づいて、前記第1のストレージおよび前記第2のストレージの間で割当中の記憶領域の再配置計画を作成する作成部を有し、
前記再配置制御部は、
前記作成部によって作成された前記再配置計画に従って、前記第1のストレージおよび前記第2のストレージにおける割当中の記憶領域の再配置制御を行うことを特徴とする付記6に記載のストレージシステム。
(付記8)前記作成部は、
前記割当情報に基づいて、前記第1のストレージおよび前記第2のストレージの各ストレージにおいて再配置によるデータ移動のためのコピー処理が少なくなるような再配置計画を作成することを特徴とする付記7に記載のストレージシステム。
(付記9)前記再配置制御部は、
他のストレージユニットから前記第1のストレージユニットへのデータ移行処理中に前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた際に所定の偏りが検出されたとき、前記第1のストレージにおける割当中の記憶領域の一部の配置を前記第2のストレージにおける未割当の記憶領域に再配置する再配置制御を行うことを特徴とする付記1〜8のいずれか一つに記載のストレージシステム。
(付記10)前記判定部は、
前記第1のストレージおよび前記第2のストレージの記憶領域の割当状況に所定の偏りがあるか否かを定期的に判定することを特徴とする付記3〜5のいずれか一つに記載のストレージシステム。
(付記11)前記第1の制御ユニットおよび前記第2の制御ユニットは、前記第1のストレージユニットおよび前記第2のストレージユニットにそれぞれ接続され、前記第1の制御ユニットは、前記第2のストレージユニットに直接アクセス可能であり、前記第2の制御ユニットは、前記第1のストレージユニットに直接アクセス可能であることを特徴とする付記1〜10のいずれか一つに記載のストレージシステム。
(付記12)前記割当情報は、前記第1のストレージおよび前記第2のストレージの記憶領域に割り当てられた各セグメントの割り当て情報を含み、
前記算出部は、
割当中のセグメント数に基づいて前記第1のストレージおよび前記第2のストレージにそれぞれに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出することを特徴とする付記3または4に記載のストレージシステム。
(付記13)第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有し、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットが増設されるストレージ装置であって、
前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた状態における前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う再配置制御部と、
を有することを特徴とするストレージ装置。
(付記14)第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有し、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットが増設されるストレージ装置の制御プログラムであって、
前記第1の制御ユニットに、
前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた状態における前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を取得し、
前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う、
処理を実行させることを特徴とする制御プログラム。
101 第1のストレージ筐体
102 第2のストレージ筐体
111 第1の制御ユニット
112 第1のストレージユニット
113 第1のストレージ
114 第1のストレージ制御部
121 第2の制御ユニット
122 第2のストレージユニット
123 第2のストレージ
124 第2のストレージ制御部
301 記憶部
302 算出部
303 判定部
304 作成部
305 再配置制御部
SM ストレージシステム

Claims (10)

  1. 第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有するストレージ装置と、
    前記ストレージ装置に増設された、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットとを備え、
    前記第1の制御ユニットは、
    前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
    前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う再配置制御部と、
    を有することを特徴とするストレージシステム。
  2. 前記再配置制御部は、
    前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた際に所定の偏りが検出されたとき、前記第1のストレージにおける割当中の記憶領域の一部の配置を前記第2のストレージにおける未割当の記憶領域に再配置する再配置制御を行うことを特徴とする請求項1に記載のストレージシステム。
  3. 前記第1の制御ユニットは、
    前記割当情報に基づいて、前記第1のストレージおよび前記第2のストレージにそれぞれに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出する算出部と、
    前記算出部によって算出された前記差分に基づいて、前記第1のストレージおよび前記第2のストレージの記憶領域の割当状況に所定の偏りがあるか否かを判定する判定部と、を有し、
    前記再配置制御部は、
    前記判定部によって前記所定の偏りがあると判定された場合に、前記割当情報に基づき割当中の記憶領域の再配置制御を行うことを特徴とする請求項1または2に記載のストレージシステム。
  4. 前記算出部は、
    前記割当情報に基づいて、前記複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、
    前記判定部は、
    前記算出部によって算出された前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記第1のストレージおよび前記第2のストレージの記憶領域の割当状況に所定の偏りがあると判定することを特徴とする請求項3に記載のストレージシステム。
  5. 前記割当情報は、前記第1のストレージおよび前記第2のストレージの記憶領域に割り当てられた各セグメントの割り当て情報を含み、
    前記算出部は、
    割当中のセグメント数に基づいて前記第1のストレージおよび前記第2のストレージにそれぞれに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出することを特徴とする請求項3または4に記載のストレージシステム。
  6. 前記第1の制御ユニットは、
    前記割当情報に基づいて、前記第1のストレージおよび前記第2のストレージの間で割当中の記憶領域の再配置計画を作成する作成部を有し、
    前記再配置制御部は、
    前記作成部によって作成された前記再配置計画に従って、前記第1のストレージおよび前記第2のストレージにおける割当中の記憶領域の再配置制御を行うことを特徴とする請求項1〜5のいずれか一つに記載のストレージシステム。
  7. 前記再配置制御部は、
    他のストレージユニットから前記第1のストレージユニットへのデータ移行処理中に前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた際に所定の偏りが検出されたとき、前記第1のストレージにおける割当中の記憶領域の一部の配置を前記第2のストレージにおける未割当の記憶領域に再配置する再配置制御を行うことを特徴とする請求項1〜6のいずれか一つに記載のストレージシステム。
  8. 前記第1の制御ユニットおよび前記第2の制御ユニットは、前記第1のストレージユニットおよび前記第2のストレージユニットにそれぞれ接続され、前記第1の制御ユニットは、前記第2のストレージユニットに直接アクセス可能であり、前記第2の制御ユニットは、第1のストレージユニットに直接アクセス可能であることを特徴とする請求項1〜7のいずれか一つに記載のストレージシステム。
  9. 第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有し、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットが増設されるストレージ装置であって、
    前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた状態における前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
    前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う再配置制御部と、
    を有することを特徴とするストレージ装置。
  10. 第1のストレージと前記第1のストレージに対するアクセスを制御する第1のストレージ制御部を有する第1のストレージユニットと、前記第1のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第1の制御ユニットを有し、第2のストレージと前記第2のストレージに対するアクセスを制御する第2のストレージ制御部を有する第2のストレージユニットと、前記第2のストレージユニットを含むアクセス可能なストレージユニットの制御を行う第2の制御ユニットが増設されるストレージ装置の制御プログラムであって、
    前記第1の制御ユニットに、
    前記第1のストレージユニットおよび前記第1の制御ユニットに前記第2のストレージユニットおよび前記第2の制御ユニットが接続されて記憶容量の拡張処理が行われた状態における前記第1のストレージの記憶領域の割当状況および前記第2のストレージの記憶領域の割当状況を含む割当情報を取得し、
    前記第1のストレージにおける割当中の記憶領域の記憶容量と前記第2のストレージにおける割当中の記憶領域の記憶容量との間に生じた偏りの度合いに応じて、前記割当情報に基づき割当中の記憶領域の再配置制御を行う、
    処理を実行させることを特徴とする制御プログラム。
JP2013055602A 2013-03-18 2013-03-18 ストレージシステム、ストレージ装置および制御プログラム Active JP6142599B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013055602A JP6142599B2 (ja) 2013-03-18 2013-03-18 ストレージシステム、ストレージ装置および制御プログラム
US14/133,795 US9690693B2 (en) 2013-03-18 2013-12-19 Storage system, storage apparatus, and computer product
EP13198935.2A EP2782001B1 (en) 2013-03-18 2013-12-20 Storage system, storage apparatus, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013055602A JP6142599B2 (ja) 2013-03-18 2013-03-18 ストレージシステム、ストレージ装置および制御プログラム

Publications (2)

Publication Number Publication Date
JP2014182508A true JP2014182508A (ja) 2014-09-29
JP6142599B2 JP6142599B2 (ja) 2017-06-07

Family

ID=49916886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013055602A Active JP6142599B2 (ja) 2013-03-18 2013-03-18 ストレージシステム、ストレージ装置および制御プログラム

Country Status (3)

Country Link
US (1) US9690693B2 (ja)
EP (1) EP2782001B1 (ja)
JP (1) JP6142599B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6221564B2 (ja) * 2013-09-25 2017-11-01 富士通株式会社 ストレージ制御装置、制御方法および制御プログラム
US9916096B2 (en) * 2014-02-05 2018-03-13 International Business Machines Corporation Increasing data storage capacity
US10007556B2 (en) * 2015-12-07 2018-06-26 International Business Machines Corporation Reducing utilization speed of disk storage based on rate of resource provisioning
US11256428B2 (en) * 2019-07-11 2022-02-22 Dell Products L.P. Scaling raid-based storage by redistributing splits

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223047A (ja) * 1996-02-16 1997-08-26 Hitachi Ltd コンピュータネットワークの制御方法
JP2005141528A (ja) * 2003-11-07 2005-06-02 Hitachi Ltd ファイルサーバおよびファイルサーバ制御装置
JP2008165620A (ja) * 2006-12-28 2008-07-17 Hitachi Ltd ストレージ装置構成管理方法、管理計算機及び計算機システム
WO2010122679A1 (ja) * 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びその制御方法

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
US6526478B1 (en) * 2000-02-02 2003-02-25 Lsi Logic Corporation Raid LUN creation using proportional disk mapping
US6715054B2 (en) * 2001-05-16 2004-03-30 Hitachi, Ltd. Dynamic reallocation of physical storage
US6954824B2 (en) * 2001-10-15 2005-10-11 International Business Machines Corporation Method, system, and program for determining a configuration of a logical array including a plurality of storage devices
US7644136B2 (en) 2001-11-28 2010-01-05 Interactive Content Engines, Llc. Virtual file system
US6912635B2 (en) * 2002-05-08 2005-06-28 Hewlett-Packard Development Company, L.P. Distributing workload evenly across storage media in a storage array
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
JP4418286B2 (ja) * 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム
US7908413B2 (en) * 2003-07-15 2011-03-15 International Business Machines Corporation Data allocation in a distributed storage system
US7185163B1 (en) * 2003-09-03 2007-02-27 Veritas Operating Corporation Balancing most frequently used file system clusters across a plurality of disks
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
JP2005276017A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd ストレージシステム
US7523286B2 (en) * 2004-11-19 2009-04-21 Network Appliance, Inc. System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
US7711897B1 (en) * 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
US7836250B2 (en) * 2005-07-15 2010-11-16 International Business Machines Corporation Automatic rebalancing of a data storage system
JP4699837B2 (ja) * 2005-08-25 2011-06-15 株式会社日立製作所 ストレージシステム、管理計算機及びデータ移動方法
JP2007265270A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ストレージシステム及び記憶領域割当て方法
JP2007280089A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
EP2357552A1 (en) * 2006-05-24 2011-08-17 Compellent Technologies System and method for RAID management, reallocation and restriping
US7904681B1 (en) * 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption
JP2008083939A (ja) * 2006-09-27 2008-04-10 Hitachi Ltd 計算機システム及び動的ポート割当方法
JP4914173B2 (ja) * 2006-10-30 2012-04-11 株式会社日立製作所 再配置システムおよび再配置方法
JP5379956B2 (ja) 2007-03-19 2013-12-25 株式会社日立製作所 ストレージ装置及び記憶領域配置方法
JP5087309B2 (ja) * 2007-04-24 2012-12-05 株式会社日立製作所 管理装置及び管理方法
JP2009134397A (ja) * 2007-11-29 2009-06-18 Hitachi Ltd 仮想ボリュームに割り当て済みの全ての実記憶領域を解放するか否かを制御する計算機及び方法
US8386610B2 (en) * 2007-12-31 2013-02-26 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US8423739B2 (en) * 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
JP5302582B2 (ja) * 2008-07-09 2013-10-02 株式会社日立製作所 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法
JP2010086424A (ja) 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置
US8572346B2 (en) * 2009-02-20 2013-10-29 Hitachi, Ltd. Storage system and method for efficiently utilizing storage capacity within a storage system
US8250327B2 (en) * 2009-02-25 2012-08-21 Hitachi Ltd. Storage apparatus and its control method
JP5781925B2 (ja) * 2009-04-23 2015-09-24 株式会社日立製作所 計算機システム及びその制御方法
US8914598B2 (en) * 2009-09-24 2014-12-16 Vmware, Inc. Distributed storage resource scheduler and load balancer
JP5021018B2 (ja) * 2009-11-30 2012-09-05 株式会社日立製作所 データ配置方法及びデータ管理システム
US8364858B1 (en) * 2009-12-07 2013-01-29 Emc Corporation Normalizing capacity utilization within virtual storage pools
JP5712932B2 (ja) * 2009-12-11 2015-05-07 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
WO2011104741A1 (en) * 2010-02-23 2011-09-01 Hitachi, Ltd. Management system for storage system and method for managing storage system
JP5533252B2 (ja) * 2010-05-21 2014-06-25 富士通株式会社 ディスクアレイ装置及びディスクアレイ装置の制御方法
US8539197B1 (en) * 2010-06-29 2013-09-17 Amazon Technologies, Inc. Load rebalancing for shared resource
US9003157B1 (en) * 2010-06-30 2015-04-07 Emc Corporation Techniques for dynamic data storage configuration in accordance with an allocation policy
JP5636853B2 (ja) * 2010-10-04 2014-12-10 富士通株式会社 ストレージシステムの仮想化制御装置及び制御プログラム
JP5632082B2 (ja) * 2011-02-02 2014-11-26 株式会社日立製作所 ストレージ装置及びデータ管理方法
US8745354B2 (en) * 2011-03-02 2014-06-03 Hitachi, Ltd. Computer system for resource allocation based on orders of proirity, and control method therefor
US8452819B1 (en) * 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
US8924676B1 (en) * 2011-06-29 2014-12-30 Emc Corporation Efficient storage load redistribution
WO2013057751A1 (en) * 2011-10-18 2013-04-25 Hitachi, Ltd. Method for data tiering and computer system using the same
WO2013061375A1 (en) * 2011-10-27 2013-05-02 Hitachi, Ltd. Storage system and its management method
US9128819B2 (en) * 2011-11-18 2015-09-08 Hitachi, Ltd. Storage system and management method therefor
US9015411B2 (en) * 2011-12-02 2015-04-21 Compellent Technologies System and method for unbalanced raid management
US9043545B2 (en) * 2012-01-06 2015-05-26 Netapp, Inc. Distributing capacity slices across storage system nodes
JP2013164822A (ja) * 2012-02-13 2013-08-22 Fujitsu Ltd 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法
JP5981563B2 (ja) * 2012-04-26 2016-08-31 株式会社日立製作所 情報記憶システム及び情報記憶システムの制御方法
US9354879B2 (en) * 2012-07-03 2016-05-31 Apple Inc. System and method for register renaming with register assignment based on an imbalance in free list banks
US8904133B1 (en) * 2012-12-03 2014-12-02 Hitachi, Ltd. Storage apparatus and storage apparatus migration method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223047A (ja) * 1996-02-16 1997-08-26 Hitachi Ltd コンピュータネットワークの制御方法
JP2005141528A (ja) * 2003-11-07 2005-06-02 Hitachi Ltd ファイルサーバおよびファイルサーバ制御装置
JP2008165620A (ja) * 2006-12-28 2008-07-17 Hitachi Ltd ストレージ装置構成管理方法、管理計算機及び計算機システム
WO2010122679A1 (ja) * 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びその制御方法

Also Published As

Publication number Publication date
EP2782001A2 (en) 2014-09-24
US9690693B2 (en) 2017-06-27
EP2782001B1 (en) 2018-04-04
EP2782001A3 (en) 2016-12-07
JP6142599B2 (ja) 2017-06-07
US20140281337A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
JP5685676B2 (ja) 計算機システム及びデータ管理方法
JP6437656B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
US10853139B2 (en) Dynamic workload management based on predictive modeling and recommendation engine for storage systems
US9785381B2 (en) Computer system and control method for the same
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
US8271718B2 (en) Storage system and control method for the same, and program
US8984221B2 (en) Method for assigning storage area and computer system using the same
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
JP5681413B2 (ja) 書込み可能コピーオンライト・スナップショット機能のためのi/oレイテンシーの削減
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
US9875056B2 (en) Information processing system, control program, and control method
US8768883B2 (en) Storage apparatus and control method of the same
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
WO2013140447A1 (en) Storage apparatus and data management method
WO2013134105A1 (en) Virtualized data storage system architecture using prefetching agent
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US20130036279A1 (en) Storage system using real data storage area dynamic allocation method
JP6221564B2 (ja) ストレージ制御装置、制御方法および制御プログラム
US20210223959A1 (en) Transitioning from an original device to a new device within a data storage array
JP6142599B2 (ja) ストレージシステム、ストレージ装置および制御プログラム
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
JP6229385B2 (ja) ストレージ制御装置、制御方法およびストレージ制御プログラム
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法
WO2018116392A1 (ja) 情報処理システム、及び、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161114

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: 20170411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170424

R150 Certificate of patent or registration of utility model

Ref document number: 6142599

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150