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

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

Info

Publication number
JP6229385B2
JP6229385B2 JP2013187754A JP2013187754A JP6229385B2 JP 6229385 B2 JP6229385 B2 JP 6229385B2 JP 2013187754 A JP2013187754 A JP 2013187754A JP 2013187754 A JP2013187754 A JP 2013187754A JP 6229385 B2 JP6229385 B2 JP 6229385B2
Authority
JP
Japan
Prior art keywords
storage
allocated
control
rearrangement
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.)
Expired - Fee Related
Application number
JP2013187754A
Other languages
English (en)
Other versions
JP2015055941A (ja
Inventor
千明 永島
千明 永島
藤田 賢一
賢一 藤田
村山 浩
浩 村山
内田 剛志
剛志 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013187754A priority Critical patent/JP6229385B2/ja
Priority to US14/464,984 priority patent/US9423982B2/en
Priority to EP14182256.9A priority patent/EP2846251A1/en
Publication of JP2015055941A publication Critical patent/JP2015055941A/ja
Application granted granted Critical
Publication of JP6229385B2 publication Critical patent/JP6229385B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0617Improving the reliability of storage systems in relation to availability
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

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 Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ制御装置、制御方法およびストレージ制御プログラムに関する。
従来、物理的な記憶装置のボリューム構成や記憶容量に縛られることなく、自由なボリューム構成、記憶容量の記憶装置を実現することができるストレージシステムとして、仮想化環境向けストレージ、いわゆる仮想化ストレージ装置がある。仮想化ストレージ装置は、装置内部に物理的な記憶装置に対するアクセスを制御する実ストレージ装置を有し、実ストレージ装置を管理するプロセッサにより仮想的なボリュームを作成する。
また、仮想化ストレージ装置は、例えば、ワイドストライピングによるデータアクセスを行う。ワイドストライピングとは、1つのボリュームに対するデータアクセスを、複数のLUN(Logical Unit Number)に分散し、固定長のストリップと呼ばれる単位でアクセスする技術である。
また、仮想化ストレージ装置に要求される記憶容量の増加に伴って、仮想化ストレージ装置全体の記憶領域の拡張が行われる場合がある。仮想化ストレージ装置全体の記憶領域の拡張方法としては、例えば、実ストレージ装置を管理するプロセッサと実ストレージ装置を1セットとする拡張セットの追加が挙げられる。
また、仮想化ストレージ装置内のプロセッサの故障等の障害発生時における縮退運転を可能にするため、仮想化ストレージ装置内のプロセッサと実ストレージ装置がスイッチを介してフルメッシュ接続される場合がある。また、仮想化ストレージ装置への拡張セットの追加に伴ってスイッチが増設されると、スイッチ間をカスケード接続することにより、プロセッサと実ストレージ装置のフルメッシュ接続が実現される。
関連する先行技術としては、例えば、複数のディスクによりグループを構成し、複数のグループからそれぞれ記憶領域を仮想ボリュームに割り当て、外部操作に基づいて、仮想ボリュームが使用している各グループの記憶領域を再配置する技術がある。また、複数のスイッチポートを有し、あるスイッチポートにデータフレームが入力された場合に、データフレームに指定される宛先の接続ポートに繋がるスイッチポートにデータフレームを出力するスイッチを含んで構成されるストレージシステムがある。
特開2008−234158号公報 特開2003−330762号公報
しかしながら、従来技術によれば、システム内の複数の実ストレージ装置に分散配置されるデータへのアクセス時に、スイッチ間をカスケード接続する経路上の通信量が増大して、実ストレージ装置へのアクセス性能の低下を招くという問題がある。
一つの側面では、本発明は、システム内に分散配置されるデータに対するアクセス性能の低下を防ぐことができるストレージ制御装置、制御方法およびストレージ制御プログラムを提供することを目的とする。
本発明の一側面によれば、ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うストレージ制御装置、制御方法およびストレージ制御プログラムが提案される。
本発明の一態様によれば、システム内に分散配置されるデータに対するアクセス性能の低下を防ぐことができるという効果を奏する。
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。 図2は、PU#1等のハードウェア構成例を示すブロック図である。 図3は、PU#1の機能的構成例を示すブロック図である。 図4は、PU#1のストレージ制御処理手順の一例を示すフローチャートである。 図5は、実施例にかかるストレージシステム100の基本構成例を示す説明図である。 図6は、VDISKの構成例を示す説明図である。 図7は、実施例にかかるPUの機能的構成例を示す説明図である。 図8は、SWグループ管理テーブル700の記憶内容の一例を示す説明図である。 図9は、SWグループ管理テーブル700の更新例を示す説明図である。 図10は、ボリュームインデックステーブル1000の記憶内容の一例を示す説明図である。 図11は、ミラーボリュームインデックステーブル1100の記憶内容の一例を示す説明図である。 図12は、ボリュームセグメントテーブル1200の記憶内容の一例を示す説明図である。 図13は、再配置計画テーブル720の記憶内容の一例を示す説明図(その1)である。 図14は、再配置計画テーブル720の記憶内容の一例を示す説明図(その2)である。 図15は、ボリュームの再配置計画例を示す説明図である。 図16は、ボリュームの再配置例を示す説明図(その1)である。 図17は、ボリュームの配置例を示す説明図である。 図18は、ボリュームインデックステーブル1000の更新例を示す説明図である。 図19は、再配置計画テーブル720の更新例を示す説明図である。 図20は、ボリュームの再配置例を示す説明図(その2)である。 図21は、SU増設時のデータ再配置の一例を示す説明図(その1)である。 図22は、SU増設時のデータ再配置の一例を示す説明図(その2)である。 図23は、ストレージシステム100のノード増設処理手順の一例を示すシーケンス図(その1)である。 図24は、ストレージシステム100のノード増設処理手順の一例を示すシーケンス図(その2)である。 図25は、ストレージシステム100の再配置処理手順の一例を示すシーケンス図(その1)である。 図26は、ストレージシステム100の再配置処理手順の一例を示すシーケンス図(その2)である。 図27は、ストレージシステム100の再配置処理手順の一例を示すシーケンス図(その3)である。 図28は、ストレージシステム100の再配置処理手順の一例を示すシーケンス図(その4)である。 図29は、ストレージシステム100の第1再配置停止処理手順の一例を示すシーケンス図である。 図30は、ストレージシステム100の第2再配置停止処理手順の一例を示すシーケンス図である。 図31は、ストレージシステム100の再配置一時停止処理手順の一例を示すシーケンス図である。 図32は、ストレージシステム100の再配置再開処理手順の一例を示すシーケンス図である。
以下に図面を参照して、本発明にかかるストレージ制御装置、制御方法およびストレージ制御プログラムの実施の形態を詳細に説明する。なお、本明細書では、ストレージ制御装置を「PU(Processor Unit)」と表記し、ストレージユニットを「SU(Storage Unit)」と表記し、スイッチを「SW(Switch)」と表記する場合がある。
(制御方法の一実施例)
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。図1(A)において、ストレージシステム100は、PU#1〜#4と、SU#1〜#3と、SW#1,#2と、を含む。ここで、PU#1は、ストレージシステム100内の他のPU(例えば、PU#2〜#4)を管理し、システム全体を制御するマスタ制御部として動作する。また、PU#1は、ストレージシステム100にSUが追加されると、そのSUを利用可能な状態にしてストレージシステム100全体の記憶容量を拡張する機能を有する。
各PU#1〜#4は、自配下のSU#1〜#3を制御するコンピュータである。各PU#1〜#4は、自配下のSU#1〜#3に対するアクセスを受け付ける。また、各PU#1〜#4は、追加されたSUが接続されてアクセス可能な状態になると、そのSUも自配下のSUとして管理する。
SU#1〜#3は、それぞれストレージ(以下、「ST」と称する)を有し、各STに対するアクセスをそれぞれ制御するコンピュータである。STは、それぞれ一以上の記憶装置Dを含む。記憶装置Dは、例えば、ハードディスク、光ディスク、フラッシュメモリ、磁気テープなどの物理的な記憶装置であってもよく、また、論理的な記憶装置であるLUNであってもよい。
SW#1,#2は、スイッチング機能を有するコンピュータである。SW#1,#2は、受信したデータの宛先に対応する経路(ポート)を選択してデータを中継する。ストレージシステム100では、冗長化されたSW#1,#2を介してPU#1〜#4とSU#1〜#3がフルメッシュ接続される(図1(A)参照)。
これにより、ストレージシステム100内の全PUから全SUへのアクセスが可能となり、PUの故障等の障害発生時における縮退運転が可能となる。なお、縮退運転とは、システムに障害が発生したときに性能や機能を部分的に停止させた状態で稼働を続行することである。
また、ストレージシステム100は、例えば、ワイドストライピングによるデータアクセスを行う。ワイドストライピングによれば、アクセス集中による性能低下を抑止し、サーバ等の上位装置からのストレージシステム100へのアクセス量やボリュームの物理的位置を意識した複雑な性能設計を行うことなく、安定した性能を確保することができる。
また、ストレージシステム100は、ストレージシステム100に要求される記憶容量の増加に伴って、ストレージシステム100全体の記憶領域を拡張することができる。例えば、ストレージシステム100では、PUとSUを1セットとして、ストレージシステム100全体の記憶領域を拡張することができる。
以下の説明では、PUとSUを1セットとする拡張セットを、ストレージシステム100に追加することを「スケールアウト」と表記し、PUとSUのペアを「ノード」と表記する場合がある。ただし、基本構成では、ストレージシステム100は、冗長化のために1台のSUに2台のPUが接続される場合を想定する。すなわち、図1の例では、PU#1,#2とSU#1が1ノード(基本ノード)となる。
スケールアウト後に格納されるデータは、ワイドストライピングにより、複数のSU上にデータが格納される可能性があり、複数のSU分のアクセス性能が期待できる。一方、各SWが有するポートの数は有限であり、各SWに接続できるPUやSUの数には限りがある。このため、ストレージシステム100では、スケールアウトが繰り返し行われてSWのポートが不足すると、SWが増設される。
一例として、SWが24ポート仕様である場合を想定する。また、図1ではSUとSWを接続する経路として2本の線を示したが、SUとSWは物理的に2本のケーブルにより接続される場合を想定する。この場合、図1(A)に示す状態からスケールアウトを進めていくと、7ノード構成から、SW#1,#2のポートが不足するため、SW#3,#4が増設される。
この際、ストレージシステム100では、SW同士をカスケード接続することでPUとSUとのフルメッシュ接続を実現する。カスケード接続とは、複数のSWを直列に接続して、より多くの機器(例えば、PUやSU)を接続できるようにすることである。図1(B)の例では、SW#1,#3間がカスケード接続され、SW#2,#4間がカスケード接続される。なお、SW#1,#2は、冗長性のために2台用意されており、SW#1,#2間はカスケード接続されない。SW#3,#4についても同様である。
ここで、スケールアウト前に格納されたデータに対するアクセス性能は、スケールアウト前のSUの性能のままに留まってしまう。スケールアウト前後で格納されたデータに対するアクセス性能にアンバランスがあることは、ストレージシステム100の性能を管理する上で望ましくない。
このため、データに対するアクセス性能の最適化を図るべく、スケールアウト時に、ストレージシステム100内のSU間に生じたデータの偏りの度合いに応じて、SU間でデータの再配置を行うことが考えられる。ところが、スケールアウト時のデータ再配置を実施すると、既設SU(例えば、SU#1〜#6)に格納されているデータを増設SU(例えば、SU#7)に分散配置することになる。
この配置状態において、例えば、PU#1からデータアクセスする場合、SU#1〜#7に分散されたデータへアクセスすることになる。ところが、SU#7上のデータへアクセスするには、SW間をカスケード接続する経路を使うことになる。この経路の帯域は、PU/SU間を接続する経路の帯域と同じであるため、SW間を行き来するデータ転送が多くなるとSUへのアクセス性能が低下し、データの分散配置によるアクセス性能の最適化が期待できなくなってしまう。
そこで、本実施の形態では、PU#1は、各SWに直接接続されるPUとSUとをグループ化し、各グループ(以下、「スイッチグループG」と称する)に属するSUにおいてデータの再配置制御を行う。この際、PU#1は、サーバ等から接続する場合のアクセス経路が、データが格納されているスイッチグループG内のPUを通るようにパス構成を制御する。
具体的には、例えば、図1(B)に示す例では、PU#1は、SW#1(SW#2)に直接接続されるPU#1〜#7とSU#1〜#6とをスイッチグループG1としてグループ化する。また、PU#1は、SW#3(SW#4)に直接接続されるPU#8とSU#7とをスイッチグループG2としてグループ化する。
そして、PU#1は、スイッチグループG1については、スイッチグループG1に属するSU#1〜#6においてデータの再配置制御を行う。また、PU#1は、スイッチグループG2については、スイッチグループG2に属するSU#7においてデータの再配置制御を行う。
これにより、ストレージシステム100のスケールアウトに伴ってSW間をカスケード接続する場合であっても、データアクセス時にSW間のカスケード経路を使わなくなり、データアクセス時のアクセス性能の低下を防ぐことができる。
また、SW間をカスケード接続することにより、ストレージシステム100の可用性を高めることができる。例えば、PU#8の増設時に、既設のPU#1〜#7のクラスタにPU#8を含めて、同一クラスタの構成要素としてPU#8を管理することにより、クラスタを管理するマスタ制御部をPU#1の1台とすることができる。
また、例えば、PU#8に異常が発生した場合に、PU#8に割り当てられたボリュームを他のPU(例えば、PU#1〜#7)にフェイルオーバーさせることができる。フェイルオーバーとは、例えば、あるPUに異常が発生した場合に、他のPUが、異常PUに代わって処理やデータを引き継ぐ機能である。
また、例えば、スイッチグループG1内のPU異常等により、アクセス性能を維持できない、あるいは、代替PUが不足するという状況に陥った場合に、スイッチグループGの枠を外してスイッチグループG2内のPU#8およびSU#7を活用することが可能となる。
(PU#1等のハードウェア構成例)
つぎに、図1に示したPU#1〜#8、SU#1〜#7およびSW#1〜#4等のコンピュータ(ここでは、単に「PU#1等」と称する)のハードウェア構成例について説明する。
図2は、PU#1等のハードウェア構成例を示すブロック図である。図2において、PU#1等は、CPU(Central Processing Unit)201と、メモリ202と、I/F(Interface)203と、を有する。また、各構成部はバス210によってそれぞれ接続されている。
ここで、CPU201は、PU#1等の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有している。より具体的には、例えば、フラッシュROMがOS(Operating System)やファームウェアなどのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されているプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させることになる。
I/F203は、他のコンピュータからのデータの入出力を制御する。具体的には、例えば、I/F203は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークに接続され、このネットワークを介して他のコンピュータに接続される。そして、I/F203は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
(PU#1の機能的構成例)
つぎに、ストレージシステム100内のマスタ制御部となるPU#1の機能的構成例について説明する。ただし、ストレージシステム100において、PU#1がダウンした場合は、他のPU(例えば、PU#2〜#8)が、PU#1の機能を引き継ぐ。
図3は、PU#1の機能的構成例を示すブロック図である。図3において、PU#1は、記憶部301と、分類部302と、算出部303と、判定部304と、作成部305と、再配置制御部306と、を含む構成である。分類部302〜再配置制御部306は、具体的には、例えば、図2に示したメモリ202に記憶されたプログラムをCPU201に実行させることにより、または、I/F203により、その機能を実現する。また、各機能部の処理結果は、例えば、メモリ202に記憶される。
記憶部301は、ストレージシステム100内のSUの記憶領域の割当状況を含む割当情報を記憶する。ここで、割当情報は、例えば、ストレージシステム100内のPU上で作成されるボリュームがSU内のどの記憶装置Dに割り当てられているかを示す情報である。
また、ボリュームは、ストレージシステム100の管理単位となる記憶領域である。具体的には、例えば、ボリュームは、複数の物理的な記憶装置または記憶装置(例えば、ハードディスク)内のパーティションをグループ化して、仮想的に一つのボリュームとした論理ボリュームであってもよい。
詳細な説明は図6を用いて後述するが、例えば、ボリュームは、複数のセグメントセットの集合体であり、各セグメントセットは、複数のセグメントの集合体である。この場合、割当情報は、ボリュームを構成する各セグメントがSU内のどの記憶装置Dに割り当てられているかを示す情報となる。
なお、ボリューム作成時において、ボリュームを構成する各セグメントは、同一スイッチグループGに属するいずれかのSU内の記憶装置Dに割り当てられる。すなわち、ストレージシステム100では、ボリュームはスイッチグループGを跨がないように作成される。
割当情報は、例えば、SU#1のメモリ202に記憶されている。PU#1は、例えば、SU#1のメモリ202から割当情報を読み出して記憶部301に記憶する。この割当情報は、例えば、ストレージシステム100内の各SUの記憶領域の割当状況に応じて更新される。
なお、割当情報は、冗長化のために複数のSU(例えば、SU#2〜#7)のメモリ202に記憶されることにしてもよい。割当情報の具体例については、図8〜図10を用いて後述する。記憶部301は、例えば、PU#1のメモリ202により実現される。
分類部302は、ストレージシステム100内のSWに直接接続されるPUとSUとをグループ化する。具体的には、例えば、分類部302は、ストレージシステム100がスケールアウトされたことに応じて、ストレージシステム100内の各SWに直接接続されるPUとSUとをグループ化する。分類された分類結果は、例えば、後述の図7に示すSWグループ管理テーブル700に記憶される。
算出部303は、記憶部301に記憶された割当情報に基づいて、スイッチグループGに属するSUにそれぞれ含まれる記憶装置D間における割当中の記憶領域の記憶容量の差分dを算出する。以下の説明では、記憶装置Dの割当中の記憶領域の記憶容量を「割当量q」と表記する場合がある。
具体的には、例えば、算出部303は、スイッチグループG1(図1参照)に属するSU#1〜#6に含まれる複数の記憶装置Dのうち、割当量qが最大となる記憶装置Dの最大割当量q_maxを算出する。また、算出部303は、スイッチグループG1(図1参照)に属するSU#1〜#6に含まれる複数の記憶装置Dのうち、割当量qが最小となる記憶装置Dの最小割当量q_minを算出する。そして、算出部303は、最大割当量q_maxと最小割当量q_minとの差分dを算出することにしてもよい。
なお、各記憶装置Dの割当量qは、例えば、各記憶装置Dに割り当てられているボリュームのセグメント数から求めることができる。例えば、セグメントの容量を256[MB]とし、ある記憶装置Dに割り当てられているセグメント数が「2」の場合、この記憶装置Dの割当量qは512[MB]となる。セグメントは、所定容量で規定された管理単位の記憶領域であり、ホストからボリュームへの記録再生指示アドレス(LBA:Logical Block Addressing)等の位置情報で管理される。
判定部304は、算出部303によって算出された差分dに基づいて、スイッチグループGに属するSUの記憶領域の割当状況に所定の偏りがあるか否かを判定する。ここで、所定の偏りがある状態とは、スイッチグループGに属するSUにおける割当中の記憶領域(例えば、セグメント)を再配置したほうが望ましい程度に記憶領域の割当状況が偏っている状態である。
具体的には、例えば、判定部304は、最大割当量q_maxと最小割当量q_minとの差分dが、最大割当量q_maxの所定の割合α以上の場合に、スイッチグループGに属するSUの記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。また、判定部304は、算出された最大割当量q_maxと最小割当量q_minとの差分dが、所定のサイズβ以上の場合に、スイッチグループGに属するSUの記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。
さらに、判定部304は、最大割当量q_maxと最小割当量q_minとの差分dが、最大割当量q_maxの所定の割合α以上の場合、かつ、所定のサイズβ以上の場合に、スイッチグループGに属するSUの記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。
既設のSUに比べて記憶容量の大きなSUを増設した場合には、増設したSUに多くのセグメントが配分されてしまう場合がある。このため、判定部304は、上述したように、使用可能な記憶容量に対する使用量から得られる使用率ではなく、割当量、すなわち、絶対使用量の比較を用いて、SUの記憶領域の割当状況に所定の偏りがあるか否かを判定する。
なお、ストレージグループGに既設のSUが存在する状態でSUを増設した直後は、増設したSUに対する記憶領域の割り当てが行われておらず、増設したSUの割当量(割当中の記憶領域の記憶容量)は0である。このため、判定部304は、割当量qの差分dを検出することにより、スイッチグループGに属するSUの記憶領域の割当量の偏りを容易に検出することができる。
判定部304による判定処理は、例えば、予め設定された時間間隔で定期的に行われてもよく、また、ストレージシステム100の管理者等の操作入力により任意のタイミングで行われてもよい。なお、割合αおよびサイズβは、例えば、メモリ202に記憶されている。また、割合αおよびサイズβの具体的な値については後述する。
作成部305は、記憶部301に記憶された割当情報に基づいて、スイッチグループGに属するSU間で記憶装置Dの割当量qが均等になるような再配置計画を作成する。ここで、再配置計画とは、例えば、ボリュームを構成するセグメントを、どのSUのどの記憶装置Dに再配置するかを表すものである。具体的には、例えば、作成部305は、スイッチグループG1に属するSU#1〜#6に含まれる記憶装置D間で割当量qが均等になるような再配置計画を作成する。
また、作成部305は、記憶部301に記憶された割当情報に基づいて、スイッチグループGに属するSUの各STにおいて再配置によるデータ移動のためのコピー処理が少なくなるような再配置計画を作成することにしてもよい。作成された再配置計画は、例えば、後述の図7に示す再配置計画テーブル720に記憶される。
再配置制御部306は、記憶部301に記憶された割当情報に基づいて、スイッチグループGに属するSUにおいて割当中の記憶領域の再配置制御を行う。具体的には、例えば、再配置制御部306は、スイッチグループGに属するSUにおける割当中の記憶領域の偏りの度合いに応じて、スイッチグループGに属するSUにおいて割当中の記憶領域の再配置制御を行う。
より具体的には、例えば、再配置制御部306は、スイッチグループG1に属するSU#1〜#6を制御して、作成部305によって作成されたスイッチグループG1の再配置計画に従って、SU#1〜#6における割当中の記憶領域の配置を再配置する。
再配置制御部306による再配置制御処理は、例えば、判定部304によってスイッチグループGに属するSUの記憶領域の割当状況に所定の偏りがあると判定されたことに応じて実行される。また、再配置制御部306による再配置制御処理は、例えば、ストレージシステム100のスケールアウトが行われたことを検出したことに応じて実行されることにしてもよい。
ただし、スイッチグループGの増加を伴うスケールアウト直後は、新しいスイッチグループGに属するSUへの記憶領域の割り当ては行われていない。このため、再配置制御部306は、スイッチグループGの増加を伴うスケールアウト直後は再配置制御処理を行わないことにしてもよい。
(PU#1のストレージ制御処理手順)
つぎに、PU#1のストレージ制御処理手順について説明する。このストレージ制御処理は、例えば、ストレージシステム100のスケールアウトが行われ、かつ、スケールアウトによってスイッチグループGが増えない場合に実行される。また、このストレージ制御処理は、管理者等の操作入力による任意のタイミング、あるいは、定期的に実行される。
図4は、PU#1のストレージ制御処理手順の一例を示すフローチャートである。図4のフローチャートにおいて、まず、PU#1は、SU#1のメモリ202から割当情報を読み出す(ステップS401)。
つぎに、PU#1は、ストレージシステム100内のスイッチグループGを選択する(ステップS402)。そして、PU#1は、読み出した構成情報に基づいて、スイッチグループGに属するSUに含まれる複数の記憶装置Dのうち、割当量qが最大となる記憶装置Dの最大割当量q_maxを算出する(ステップS403)。
つぎに、PU#1は、スイッチグループGに属するSUに含まれる複数の記憶装置Dのうち、割当量qが最小となる記憶装置Dの最小割当量q_minを算出する(ステップS404)。そして、PU#1は、算出した最大割当量q_maxと最小割当量q_minとの差分dを算出する(ステップS405)。
つぎに、PU#1は、算出した差分dが最大割当量q_maxの割合α以上か否かを判断する(ステップS406)。ここで、差分dが最大割当量q_maxの割合α未満の場合(ステップS406:No)、PU#1は、ステップS410に移行する。
一方、差分dが最大割当量q_maxの割合α以上の場合(ステップS406:Yes)、PU#1は、差分dがサイズβ以上か否かを判断する(ステップS407)。ここで、差分dがサイズβ未満の場合(ステップS407:No)、PU#1は、ステップS410に移行する。
一方、差分dがサイズβ以上の場合(ステップS407:Yes)、PU#1は、読み出した割当情報に基づいて、スイッチグループGに属するSUに含まれる記憶装置D間で割当量qが均等になるような再配置計画を作成する(ステップS408)。つぎに、PU#1は、スイッチグループGに属するSUを制御して、作成した再配置計画に従って、スイッチグループGに属するSUにおける割当中の記憶領域の配置を再配置する(ステップS409)。
そして、PU#1は、ストレージシステム100内から選択していない未選択のスイッチグループGがあるか否かを判断する(ステップS410)。ここで、未選択のスイッチグループGがある場合(ステップS410:Yes)、PU#1は、ステップS402に戻って、ストレージシステム100内の未選択のスイッチグループGを選択する。
一方、未選択のスイッチグループGがない場合(ステップS410:No)、PU#1は、本フローチャートによる一連の処理を終了する。
これにより、ストレージシステム100内のスイッチグループGごとに、スイッチグループGに属するSUの記憶領域の割当状況を判定して、スイッチグループGに属するSUにおける割当中の記憶領域の再配置制御を行うことができる。
以上説明したように、実施の形態にかかるPU#1によれば、ストレージシステム100内の各SWに直接接続されるPUとSUをグループ化し、各スイッチグループGに属するSUにおいて割当中の記憶領域の再配置制御を行うことができる。これにより、ストレージシステム100のスケールアウトに伴ってSW間をカスケード接続する場合であっても、データアクセス時にSW間のカスケード経路を使わなくなり、データアクセス時のアクセス性能の低下を抑制することができる。
また、PU#1によれば、各スイッチグループGに属するSUにおける割当中の記憶領域の偏りの度合いに応じて、各スイッチグループGに属するSUにおいて割当中の記憶領域の再配置制御を行うことができる。これにより、ストレージシステム100内に分散配置されるデータに対するアクセス性能の最適化を図ることができる。
また、PU#1によれば、各スイッチグループGに属するSUに含まれる記憶装置Dの最大割当量q_maxと記憶装置Dの最小割当量q_minとの差分dを算出することができる。そして、PU#1によれば、算出した差分dが、最大割当量q_maxの割合α以上で、かつ、サイズβ以上の場合に、各スイッチグループGに属するSUの記憶領域の割当状況に所定の偏りがあると判定することができる。これにより、各スイッチグループGに属するSUにおける割当中の記憶領域を再配置したほうが望ましい程度にST間の記憶領域の割当状況が偏っているか否かを判断することができる。
また、PU#1によれば、各スイッチグループGに属するSUに含まれる記憶装置D間で割当量qが均等になるように、各スイッチグループGに属するSUにおいて割当中の記憶領域の再配置制御を行うことができる。これにより各スイッチグループGに属するSU間でデータに対するアクセスが均等になるように分散することができる。
(実施例)
つぎに、実施の形態にかかるストレージシステム100の実施例について説明する。
(ストレージシステム100の基本構成例)
図5は、実施例にかかるストレージシステム100の基本構成例を示す説明図である。図5において、ストレージシステム100は、PU#1と、PU#2と、SW#1と、SW#2と、SU#1と、を含む。
ここで、PU#1,#2は、SU#1を制御する。PU#1,#2は、各PU#1,#2上にボリュームを作成する場合、各PU#1,#2が属するスイッチグループG1に属するSU(例えば、SU#1)のLUNをボリュームに割り当てる。PU#1,#2は、例えば、後述する業務サーバBSや管理サーバMSがアクセス可能なサーバである。SU#1は、RAID(Redundant Arrays of Inexpensive Disks)#1〜#4を有し、RAID#1〜#4に対するアクセスを制御する。
各RAID#1〜#4は、複数の記憶装置(例えば、ハードディスク)をまとめて一つの記憶装置としたRAIDグループである。具体的には、各RAID#1〜#4は、それぞれ2つのLUNで構成されている。図1に示したSTは、例えば、RAID#1〜#4に相当し、図1に示した記憶装置Dは、例えば、LUNに相当する。
以下の説明では、ストレージシステム100に含まれるPU#1,#2とSU#1を「基本ノード」と表記し、ストレージシステム100に追加される拡張セットを「増設ノード」と表記する場合がある。また、ストレージシステム100により提供される仮想的なボリュームを「VDISK」と表記する場合がある。
(VDISKの構成例)
図6は、VDISKの構成例を示す説明図である。図6において、VDISK#iは、セグメントセット#1〜#nの集合体である(i:自然数、n:2以上の自然数)。各セグメントセット#1〜#nは、8個のセグメント#1〜#8の集合体である。ここでは、各セグメントセット#1〜#8の容量は、例えば、2[GB]であり、また、各セグメント#1〜#8の容量は、例えば、256[MB]である。
図5に示したストレージシステム100を例に挙げると、各セグメント#1〜#8は、SU#1内のLUN#1〜#8ごとに割り当てられる。ユーザのデータは、固定長のストリップ(1[MB])単位で記録される。また、このストリップはセグメント#1〜#8を順に利用する形でストライピングされる。
(ストレージシステム100内のPUの機能的構成例)
図7は、実施例にかかるPUの機能的構成例を示す説明図である。図7において、ストレージシステム100は、基本ノードN1と、増設ノードN2と、を含む。図7では、ストレージシステム100に増設ノードN2を増設した直後、すなわち、スケールアウト直後のストレージシステム100の状態を表す。基本ノードN1は、PU#1と、PU#2と、SU#1と、を含む。増設ノードN2は、PU#3と、SU#2と、を含む。
基本ノードN1内のPU#1,#2と、増設ノードN2内のPU#3と、管理サーバMSとは、管理用LANを介して接続される。管理サーバMSは、ストレージシステム100の管理者が使用するコンピュータであり、装置管理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内のST(ストレージ)に対するアクセスを制御するプログラムである。
構成管理DB#1,#2には、ボリューム管理テーブル710と再配置計画テーブル720とが含まれる。ボリューム管理テーブル710と再配置計画テーブル720は、PU#1によって構成管理DB#1(または、構成管理DB#2)から読み出されて使用される。
ここで、ボリューム管理テーブル710は、ボリュームインデックステーブル1000(図10参照)と、ミラーボリュームインデックステーブル1100(図11参照)と、ボリュームセグメントテーブル1200(図12参照)と、を含む。上述した割当情報は、例えば、ボリューム管理テーブル710に相当する。
ボリュームインデックステーブル1000は、ボリューム(VDISK)を管理するテーブルである。ミラーボリュームインデックステーブル1100は、ミラーボリュームを管理するテーブルである。ボリュームセグメントテーブル1200は、ボリュームのセグメントを管理するテーブルである。各テーブル1000,1100,1200は、ボリューム番号をインデックスとして関連付けられる。
また、再配置計画テーブル720は、VDISKを構成する各セグメントをどこへ配置するかを計画した計画後の配置先のストレージ装置(SU)、LUN番号および再配置状況を管理するテーブルである。既に再配置が完了した(もしくは、再配置が不要な)セグメントの再配置状況については「再配置完了(もしくは、再配置不要)」とする。また、現状再配置中のセグメントの再配置状況については「再配置中」とし、今後再配置されるセグメントの再配置状況については「再配置待」とする。
再配置の一時停止中は、PU#1は、再配置計画テーブル720を削除することなく保持しておく。再配置が停止された場合は、PU#1は、再配置計画テーブル720を破棄する。また、再配置の一時停止中にボリューム(VDISK)が削除された場合、PU#1は、ボリューム管理テーブル710のボリュームインデックステーブル1000から該当レコードを削除するとともに、再配置計画テーブル720から該当レコードを削除する。なお、ボリューム管理テーブル710と再配置計画テーブル720についての詳細な説明は、図10〜図14を用いて後述する。
PU#1は、I/O制御部#1と、PU制御部#1と、クラスタ制御Mと、装置管理GUI制御部#1と、PU負荷監視部#1と、SU制御部#1と、ボリューム管理Mと、ボリューム管理A#1と、を含む。また、PU#1は、SWグループ管理テーブル700と、ボリューム管理テーブル710と、再配置計画テーブル720と、を有する。図3に示した分類部302、算出部303、判定部304、作成部305および再配置制御部306は、例えば、ボリューム管理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からの指示に従って、ストレージシステム100の状態を判断したり、新規ボリュームを作成したりする。PU負荷監視部#1〜#3は、各PU#1〜#3にかかる負荷を監視する。SU制御部#1〜#3は、各SU#1,#2を制御する。
ボリューム管理Mは、ボリューム管理A#1〜#3を制御する。具体的には、例えば、ボリューム管理Mは、再配置制御スレッドを起動して、ボリューム管理A#1〜#3に実行させる。ボリューム管理A#1〜#3は、ボリューム管理Mの制御に従って、ボリュームを管理する。
なお、ストレージシステム100において、PU#1がダウンした場合は、例えば、PU#2またはPU#3が、PU#1の機能を引き継ぐ。また、業務サーバBS、管理サーバMSのハードウェア構成は、例えば、CPU、メモリ、磁気ディスクドライブ、磁気ディスク、ディスプレイ、I/F、キーボード、マウス等により実現される。
(SWグループ管理テーブル700の記憶内容)
ここで、SWグループ管理テーブル700の記憶内容について説明する。
図8は、SWグループ管理テーブル700の記憶内容の一例を示す説明図である。図8において、SWグループ管理テーブル700は、SW#1系のSWのSWグループ管理情報(例えば、SWグループ管理情報811)と、SW#2系のSWのSWグループ管理情報(例えば、SWグループ管理情報821)と、を含む。
SW#1系は、SW#1とカスケード接続されるSWであり、SW#2系は、SW#2とカスケード接続されるSWである。図8に示すSWグループ管理テーブル700の記憶内容は、ストレージシステム100が3ノード構成時の記憶内容である(基本ノードN1:PU#1,#2+SU#1、増設ノードN2:PU#3+SU#2、増設ノードN3:PU#4+SU#3)。
SWグループ管理情報は、SWグループ番号、SW番号、ポート数、接続機器数および総使用ポート数を表す。SWグループ番号は、スイッチグループGの識別子である。SW番号は、SWの識別子である。ポート数は、SWが有するポート数である。接続機器数は、SWに接続されている機器(PU、SU等)の数である。総使用ポート数は、使用中のポートの総数である。
また、SWグループ管理情報は、接続機器と使用ポート数とを対応付けて表す。接続機器は、SWに接続されている機器である。使用ポート数は、機器との接続に使用しているポートの数である。なお、SWが有するポートのうちの2つのポートは、SW間のカスケード接続用(for Cascade)およびSWの管理用(for Management)にリザーブされる。
例えば、SWグループ管理情報811は、SW#1のSWグループ番号「1」、SW番号「1」、ポート数「24」、接続機器数「9」および総使用ポート数「12」を表す。また、SWグループ管理情報811は、例えば、接続機器「PU#1」の使用ポート数「1」や接続機器「SU#1」の使用ポート数「2」を表す。なお、接続機器「NULL(0)」は、未使用のポートがあることを示す。
(SWグループ管理テーブル700の更新例)
つぎに、SWグループ管理テーブル700の更新例について説明する。ここでは、ストレージシステム100が3ノード構成から7ノード構成に拡張した場合を例に挙げて、SWグループ管理テーブル700の更新例について説明する。
図9は、SWグループ管理テーブル700の更新例を示す説明図である。図9において、SWグループ管理テーブル700は、SW#1系のSW#1,#3のSWグループ管理情報811,812と、SW#2系のSW#2,#4のSWグループ管理情報821,822と、を含む。
ここでは、SW#1,#2のポート数「24」に対して、総使用ポート数が「22」であり、増設単位である「PU×1+SU×1のポート数=3」を賄うことができない。このため、ストレージシステム100内にSE#3,#4が増設され、SWグループ管理テーブル700にSW#3,#4のSWグループ管理情報812,822が新たに作成されている。
例えば、SWグループ管理情報812は、SW#3のSWグループ番号「2」、SW番号「3」、ポート数「24」、接続機器数「4」および総使用ポート数「5」を表す。また、SWグループ管理情報812は、例えば、接続機器「PU#8」の使用ポート数「1」や接続機器「SU#7」の使用ポート数「2」を表す。
(ボリューム管理テーブル710の記憶内容)
つぎに、ボリューム管理テーブル710の記憶内容について説明する。
図10は、ボリュームインデックステーブル1000の記憶内容の一例を示す説明図である。図10において、ボリュームインデックステーブル1000は、ボリューム番号、ボリューム名、稼働PU番号、ボリューム属性、ボリュームサイズ、ボリューム状態および再配置状況のフィールドを有する。各フィールドに情報を設定することで、ボリューム情報1000−1〜1000−nがレコードとして記憶される。
ここで、ボリューム番号は、VDISKの識別子である。ボリューム名は、VDISKの名称である。稼働PU番号は、VDISKが稼働しているPUの識別子である。ボリューム属性は、VDISKの属性である。ボリュームサイズは、業務サーバBSからみたVDISKのサイズ(GB)である。ボリューム状態は、VDISKにアクセスできるか否かを示す状態である。再配置状況は、VDISKの再配置状況を示す。
例えば、ボリューム情報1000−1は、VDISK1のボリューム名「Vdisk1」、稼働PU番号「1」、ボリューム属性「シンプロボリューム」、ボリュームサイズ「500」、ボリューム状態「正常」および再配置状況「再配置中」を示している。なお、ボリューム情報1000−nのように、ボリューム名が「NULL(0)」のボリューム情報は、未作成のVDISKの情報である。
図11は、ミラーボリュームインデックステーブル1100の記憶内容の一例を示す説明図である。図11において、ミラーボリュームインデックステーブル1100は、ボリューム番号、ミラー数、ミラーボリューム番号1およびミラーボリューム番号2のフィールドを有する。各フィールドに情報を設定することで、ミラーボリューム情報(例えば、ミラーボリューム情報1100−1,1100−2)がレコードとして記憶される。
ここで、ボリューム番号は、ミラーボリュームの識別子である。ミラー数は、ミラーリングするボリュームの数である。ミラーボリューム番号1,2は、ミラーボリュームの実体であるVDISKの識別子である。例えば、ミラーボリューム情報1100−1は、VDISK2のミラー数「2」、ミラーボリューム番号1「127」およびミラーボリューム番号2「128」を示している。
図12は、ボリュームセグメントテーブル1200の記憶内容の一例を示す説明図である。図12の例は、ストレージシステム100に7ノード目の増設ノード(PU#8+SU#7)が追加された後に、ボリューム(ボリューム番号701)が作成された場合のボリュームセグメントテーブル1200の記憶内容である。
図12において、ボリュームセグメントテーブル1200は、ボリューム番号、セグメントセット番号、セグメント番号、SWグループ番号、ストレージ装置、LUN番号およびセグメント状態のフィールドを有する。各フィールドに情報を設定することで、セグメント情報(例えば、セグメント情報1200−1,1200−2)がレコードとして記憶される。
ここで、ボリューム番号は、VDISKの識別子である。セグメントセット番号は、VDISKを構成するセグメントセットの識別子である。セグメント番号は、セグメントセットを構成するセグメントの識別子である。SWグループ番号は、セグメントが属するスイッチグループGの識別子である。
ストレージ装置は、セグメントが属するSUの識別子である。LUN番号は、セグメントが割り当てられたLUNの識別子である。セグメント状態は、セグメントにアクセスできるか否かを示す状態である。例えば、セグメント情報1200−1は、VDISK1のセグメントセット1のセグメント1のSWグループ番号「1」、ストレージ装置「1」、LUN番号「1」およびセグメント状態「有効」を示している。
(再配置計画テーブル720の記憶内容)
つぎに、再配置計画テーブル720の記憶内容について説明する。
図13は、再配置計画テーブル720の記憶内容の一例を示す説明図(その1)である。図13の例は、ストレージシステム100に6ノード目までの増設ノードが追加された場合の再配置計画テーブル720の記憶内容である。
図13において、再配置計画テーブル720は、ボリューム番号、セグメントセット番号、セグメント番号、SWグループ番号、現ストレージ装置、現LUN番号、再配置ストレージ装置、再配置LUN番号および再配置状況のフィールドを有する。各フィールドに情報を設定することで、再配置計画情報(例えば、再配置計画情報1300−1〜1300−5)がレコードとして記憶される。
ここで、ボリューム番号は、VDISKの識別子である。セグメントセット番号は、VDISKを構成するセグメントセットの識別子である。セグメント番号は、セグメントセットを構成するセグメントの識別子である。SWグループ番号は、セグメントが属するスイッチグループGの識別子である。
現ストレージ装置は、再配置前のセグメントが属するSUの識別子である。現LUN番号は、再配置前のセグメントが割り当てられたLUNの識別子である。再配置ストレージ装置は、再配置後のセグメントが属するSUの識別子である。再配置LUN番号は、再配置後のセグメントが割り当てられるLUNの識別子である。再配置状況は、セグメントの再配置状況を示す。
例えば、再配置計画情報1300−1は、VDISK1のセグメントセット1のセグメント1のSWグループ番号「1」、現ストレージ装置「1」、現LUN番号「1」、再配置ストレージ装置「1」、再配置LUN番号「1」および再配置状況「再配置済」を示す。
図14は、再配置計画テーブル720の記憶内容の一例を示す説明図(その2)である。図14の例は、ストレージシステム100に7ノード目の増設ノード(PU#8+SU#7)が追加された後に、ボリューム(ボリューム番号701)が作成され、その後、ストレージシステム100に8ノード目の増設ノード(PU#9+SU#8)が追加された場合の再配置計画テーブル720の記憶内容である。
図14において、再配置計画テーブル720には、スイッチグループG2に属するセグメントの再配置計画情報(例えば、再配置計画情報1400−1〜1400−4)が記憶されている。例えば、再配置計画情報1400−1は、VDISK701のセグメントセット1のセグメント1のSWグループ番号「2」、現ストレージ装置「7」、現LUN番号「1」、再配置ストレージ装置「7」、再配置LUN番号「1」および再配置状況「再配置不要」を示す。
また、例えば、再配置計画情報1400−2は、VDISK701のセグメントセット1のセグメント2のSWグループ番号「2」、現ストレージ装置「7」、現LUN番号「2」、再配置ストレージ装置「8」、再配置LUN番号「1」および再配置状況「再配置中」を示す。
(セグメントの割当量qの偏りの判定例)
つぎに、スイッチグループGに属するSUに含まれる各LUNのセグメントの割当量qの偏りの判定例について説明する。PU#1は、スイッチグループGに属する各LUNのセグメントの割当量qを監視し、「偏りあり」と検出した場合に、装置管理GUI制御部により、偏りが発生している旨を通知する。監視契機としては、例えば、ノードの増設に伴うシステム構成変更時、定期的な監視時間の到来、SUの搭載量の増加時などがある。
具体的には、例えば、まず、PU#1は、SWグループ管理テーブル700を参照して、スイッチグループGに属するSUを特定する。図9に示したSWグループ管理テーブル700を例に挙げると、PU#1は、スイッチグループG1に属するSU#1〜#6を特定する。また、PU#1は、スイッチグループG2に属するSU#7を特定する。
つぎに、PU#1は、ボリューム管理テーブル710を参照して、スイッチグループGごとに、スイッチグループGに属する各LUNのセグメントの割当量qを算出する。つぎに、PU#1は、スイッチグループGごとに、スイッチグループGに属する全LUNのうち、セグメントの割当量qが最大であるLUNの最大割当量q_maxとセグメントの割当量qが最小であるLUNの最小割当量q_minとを特定する。
そして、PU#1は、スイッチグループGごとに、最大割当量q_maxと最小割当量q_minとの差分dが、最大割当量q_maxの割合α以上、かつ、差分dがサイズβ以上であるか否かを判断する。ここで、最大割当量q_maxの割合α以上、かつ、差分dがサイズβ以上の場合、PU#1は、スイッチグループGに属する各LUNのセグメントの割当量qに偏りがあると判定する。
なお、割合αおよびサイズβは、任意に設定可能である。割合αは、例えば、5〜10[%]程度の値に設定される。サイズβは、例えば、64[GB]や128[GB]程度の値に設定される。
(ボリュームの再配置計画)
つぎに、ボリューム(VDISK)の再配置計画について説明する。PU#1は、SUを構成するLUNにおけるセグメントの割当量qにより再配置計画を立てる。このため、増設されるSUの搭載容量が既存のSUの搭載容量と異なる場合であっても均等な再配置を行うことができる。
図15は、ボリュームの再配置計画例を示す説明図である。図15の1項に示すように、スイッチグループG1において、8.4[TB]の基本セット(SU#1)に、8.4[TB]の拡張セット(SU#2)を増設する場合を想定する。この場合、PU#1は、SU#1とSU#2との間で各LUNのセグメントの割当量qが均等になるように分散配置する。
図15の2項に示すように、スイッチグループG1において、8.4[TB]の基本セット(SU#1)に、16.8[TB]の拡張セット(SU#2)を増設する場合を想定する。この場合、PU#1は、SU#1とSU#2との間で各LUNのセグメントの割当量qが均等になるように分散配置する。
図15の3項に示すように、スイッチグループG1において、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が均等になるように分散配置する。
ここで、図16を用いて、スケールアウトによって増設されるSU#2に対して、スイッチグループG内の既存のボリュームがどのように再配置されるのかを説明する。ここでは、スケールアウト後に自動で再配置処理が起動される場合について説明するが、管理サーバMSのGUI画面から再配置指示を手動で行うこともできる。
図16は、ボリュームの再配置例を示す説明図(その1)である。図16において、ボリューム1を構成するセグメントA0〜A31と、ボリューム2を構成するセグメントB0〜B15とがSU#1に配置されている(図16中、再配置前)。なお、図16中、各SU#1,#2内の円柱は、各SU#1,#2内のLUNを表す。
まず、PU#1は、SU#1とSU#2との間で各LUNのセグメントの割当量qが均等になるように再配置計画テーブル720を作成する(図16中、再配置の案)。なお、各セグメントの配置位置は暫定的なものである。
つぎに、PU#1は、再配置計画テーブル720を参照して、ボリューム1のセグメントA0〜A31について再配置する。ここでは、ボリューム1のセグメントA8〜A15およびA24〜A31がSU#2に再配置されている(図16中、再配置中)。
つぎに、PU#1は、再配置計画テーブル720を参照して、ボリューム2のセグメントB0〜B15について再配置する。ここでは、ボリューム2のセグメントB8〜B15がSU#2に再配置されている(図16中、再配置後)。これにより、SU#1とSU#2とで物理容量としては均等となる。
なお、LUNの使用状況は不連続に見えるが、ボリュームがワイドストライピングされたセグメントで構成されていれば性能面で問題はない。すなわち、LUNの使用状況の不連続性は性能面に影響しない。このため、不要な移動処理を避ける意味でもセグメントA16〜A23やセグメントB0〜B7を移動させないほうが、装置として無駄な処理を削減することができる。
また、各PUや各SUの保守点検等で一時的に再配置処理を止めたい場合のために、ストレージシステム100は、再配置処理の一時停止機能および再開機能を有する。また、ストレージシステム100は、再配置処理の停止機能を有する。ただし、再配置処理を停止すると、一度計画した再配置計画を破棄することになり、再配置を再度実行する際に、ストレージシステム100内の各LUNのセグメントの割当量qの偏り判定および再計画テーブル作成の処理が実行されることとなる。
これに対し、一時停止機能を利用した場合は、再配置の一時停止中、PU#1は、ボリュームの再配置のために立てた再配置計画を破棄せずに保持しておく。そして、PU#1は、再開指示を受けた場合に、ボリューム管理テーブル710および再配置計画テーブル720を参照して、再開すべきエントリから再配置処理を継続する。これにより、再配置中の一時停止および一時停止からの再開が可能となる。
(ボリュームインデックステーブル1000の更新例)
つぎに、ボリュームインデックステーブル1000の更新例について説明する。
図17は、ボリュームの配置例を示す説明図である。図17において、VDISK1を構成するセグメント#1〜#16がSU#1に配置されている。また、基本ノードN1に、PU#3とSU#2をセットとする増設ノードN2が増設されている。この場合、スイッチグループG1に属するSU#1,#2に含まれる各LUNのセグメントの割当量qに偏りが生じるため、VDISK1の再配置処理が行われる。
図18は、ボリュームインデックステーブル1000の更新例を示す説明図である。図18において、基本ノードN1に増設ノードN2が増設されると、ボリュームインデックステーブル1000内のボリューム情報1800−1の再配置状況が「再配置待」から「再配置中」に更新される。
(再配置計画テーブル720の更新例)
図19は、再配置計画テーブル720の更新例を示す説明図である。図19の(19−1)において、PU#1は、VDISK1のセグメントセット単位でスイッチグループGに属するすべてのSUに割り付け、かつ、セグメントを割り付ける。また、PU#1は、LUN番号についても連続LUNを利用するように割り付けるように計画を立てる。具体的には、例えば、PU#1は、偶数セグメントをSU#2の連続LUNに割り付けるように計画する。また、PU#1は、奇数セグメントをSU#1の連続LUNに割り付けるように計画する。
図19の(19−2)において、PU#1は、上述したように機械的に再配置計画を立てた後、再配置によるデータ移動のためのコピー処理が少なくなるように再配置計画の見直しを行う。具体的には、例えば、PU#1は、現状(現ストレージ装置および現LUN番号)と、再配置後(再配置ストレージ装置および再配置LUN番号)とをセグメントセット単位で比べる。
例えば、セグメントセット番号3については、現LUN番号と再配置LUN番号がすべて不一致であるが、現LUN番号を見ると2つのセグメントが同じLUN番号に割り当たっている以外は、異なるLUNに割り振られている。このため、PU#1は、同じLUNに2つのセグメントが割り付けられているものだけをその他のLUNに割り振るように再計画する(LUN番号的にはセグメント順ではないが、異なるLUNに割り付けられているならば性能影響はないと判断)。
再配置すべきセグメントについては、PU#1は、再配置状況を「再配置待ち」とする。また、再配置不要なセグメントについては、PU#1は、再配置計画テーブル720の再配置状況を「再配置不要」とする。
(同一SU内の再配置計画)
つぎに、同一SUにおいて再配置によるセグメント移動のためのコピー処理が少なくなるようにする再配置計画について説明する。同一SU内の再配置計画は、例えば、SU間で各LUNのセグメントの割当量qが均等になるようにするSU間の再配置計画が行われた後に作成される。
図20は、ボリュームの再配置例を示す説明図(その2)である。図20において、あるSU(例えば、SU#1)内にセグメントa〜pから構成されるセグメントセットが「再配置前」のように配置されていたとする。この場合、例えば、PU#1は、「再配置の案」のように、セグメントの未使用領域(図20中、白抜き四角)とセグメント移動により空くセグメントを利用してセグメントa〜hを整列させることができる。なお、図20中、黒塗り四角は、セグメントの使用中領域である。
ただし、セグメントa〜dおよびセグメントe〜gが互いに異なるRAIDグループに配置されているので、セグメントhだけを別のRAIDグループに移動すればIOアクセス性能の観点からは十分改善される。このため、PU#1は、セグメントhだけを移動させる再配置計画を立てる。
この結果、「再配置後」のように、セグメントhだけが別のLUNに移動されて、LUN間で均等になる。このように、同一SUにおいて再配置によるセグメント移動のためのコピー処理が少なくなるようにする再配置計画を立てることにより、余分なセグメントの移動を抑えつつ、アクセス性能を向上させることができる。また、再配置のためにPU/SU間のアクセスも削減することができる。
(SU増設時のデータ再配置)
つぎに、ストレージシステム100へのSU増設時のデータ再配置について説明する。
図21および図22は、SU増設時のデータ再配置の一例を示す説明図である。図21(i)において、ストレージシステム100内のスイッチグループG1(SU#1〜#5)にSU#6が増設されている。PU#1は、スイッチグループG1にSU#6を増設するまでは、スイッチグループG1の中でデータ再配置を実施する。
図21(ii)において、ストレージシステム100にSU#7が増設されると、SW#1(SW#2)にSW#3(SW#4)がカスケード接続されてスイッチグループG2が作成される。SU#7増設時は、スイッチグループG2には増設されたSU#7のみがある状態である。また、PU#1は、スイッチグループGをまたいだデータ再配置は行わない。このため、PU#1は、SU#7増設時にデータ再配置を実施しない。
図22(iii)において、ストレージシステム100内のスイッチグループG2(SU#7)にSU#8が増設されている。この場合、PU#1は、スイッチグループG2の中でデータ再配置を実施する。このように、データ配置をスイッチグループG内に収めることでデータアクセス性能を最適に保つことが可能となり、さらに、データ再配置範囲の極小化(スイッチグループG内)によってデータ再配置処理量を低減することができる。
(再配置処理の具体的処理内容)
つぎに、ボリュームの再配置処理の具体的な処理内容の一例について説明する。各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である。
(ストレージシステム100の各種処理手順)
つぎに、実施例にかかるストレージシステム100の各種処理手順について説明する。まず、ストレージシステム100のノード増設処理手順について説明する。ここでは、基本ノードN1に増設ノードN2を追加する場合を例に挙げて、ストレージシステム100のノード増設処理手順について説明する。
<ノード増設処理手順>
図23および図24は、ストレージシステム100のノード増設処理手順の一例を示すシーケンス図である。図23のシーケンス図において、CE(Customer Engineer)は、基本ノードN1に増設ノードN2を物理的に接続し、SU#2の電源を投入する(ステップS2301)。
クラスタ制御Mは、SU#2の増設を検出する(ステップS2302)。クラスタ制御Mは、装置管理GUI制御部#1にSU#2の増設検出を通知する(ステップS2303)。装置管理GUI制御部#1は、SU増設検出事象を管理サーバMSのGUIに出力する(ステップS2304)。
クラスタ制御Mは、SU#2のストレージ制御部#2に対して、新たな管理用IPアドレスの割り付けを指示する(ステップS2305)。SU#2のストレージ制御部#2は、管理用IPアドレスを指示された値に設定する(ステップS2306)。クラスタ制御Mは、PU#1のSU制御部#1とPU#2のSU制御部#2にSU#2への接続を指示する(ステップS2307)。
SU制御部#1は、SU#2のディスクを問い合わせて、SU#2の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS2308)。SU制御部#2は、SU#2のディスクを問い合わせて、SU#2の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS2309)。SU制御部#1は、検出したLUNに対してログイン処理を行う(ステップS2310)。SU制御部#2は、検出したLUNに対してログイン処理を行う(ステップS2311)。
SU制御部#1は、SU#2との接続完了をクラスタ制御Mに通知する(ステップS2312)。SU制御部#2は、SU#2との接続完了をクラスタ制御Mに通知する(ステップS2313)。クラスタ制御Mは、装置管理GUI制御部#1にSU#2の追加完了を通知する(ステップS2314)。装置管理GUI制御部#1は、SU追加完了事象を管理サーバMSのGUIに出力する(ステップS2315)。
CEは、増設ノードN2のPU#3の電源を投入する(ステップS2316)。クラスタ制御Mは、PU#3の増設を検出すると、装置管理GUI制御部#1にPU#3の増設検出を通知する(ステップS2317)。装置管理GUI制御部#1は、PU検出事象を管理サーバMSのGUIに出力する(ステップS2318)。
図24のシーケンス図において、クラスタ制御Mは、検出したPU#3のIPアドレスの設定をPU制御部#3に指示する(ステップS2401)。PU制御部#3は、IPアドレスを管理用IPアドレスに変更する(ステップS2402)。クラスタ制御Mは、PU#3のSU制御部#3にSU#1およびSU#2への接続を指示する(ステップS2403)。
SU制御部#3は、SU#1のディスクを問い合わせて、SU#1の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS2404)。SU制御部#3は、検出したLUNに対してログイン処理を行う(ステップS2405)。SU制御部#3は、SU#2のディスクを問い合わせて、SU#2の管理DB用のLUNおよびユーザデータ用のLUNを検出する(ステップS2406)。
SU制御部#3は、検出したLUNに対してログイン処理を行う(ステップS2407)。SU制御部#3は、SU#1およびSU#2との接続完了をクラスタ制御Mに通知する(ステップS2408)。クラスタ制御Mは、PU#2のクラスタ制御部#2およびPU#3のクラスタ制御部#3に対してクラスタ変更を指示する(ステップS2409)。
クラスタ制御Mは、PU#3をクラスタ管理情報に組み込むことにより、クラスタ構成をPU#1,#2,#3に更新する(ステップS2410)。クラスタ制御部#2は、PU#3をクラスタ管理情報に組み込むことにより、クラスタ構成をPU#1,#2,#3に更新する(ステップS2411)。クラスタ制御部#3は、PU#3をクラスタ管理情報に組み込むことにより、クラスタ構成をPU#1,#2,#3に更新する(ステップS2412)。
クラスタ制御Mは、装置管理GUI制御部#1にPU#3の追加完了を通知する(ステップS2413)。装置管理GUI制御部#1は、PU追加完了事象を管理サーバMSのGUIに出力する(ステップS2414)。装置管理GUI制御部#1は、スケールアウトボタンを管理サーバMSのGUIに出力する(ステップS2415)。
利用者が、接続および内部的な装置組み込みが完了したことを了承する意味で、管理サーバMSのGUI上の「スケールアウトボタン」をクリックすると増設処理が完了する。スケールアウトの完了指示により、ストレージシステム100としてのストレージ容量はSU#2の分だけ増加し、SU#2上にも新たなデータを格納できるようになる。
また、例えば、ステップS2413において、クラスタ制御Mは、ボリューム管理MにPU#3の追加完了を通知する。ボリューム管理Mは、PU#3の追加完了を受け付けると、ストレージシステム100内のSWに直接接続されるPUとSUとをグループ化して、SWグループ管理テーブル700を更新する。
<再配置処理手順>
つぎに、ストレージシステム100の再配置処理手順について説明する。再配置処理は、例えば、ストレージシステム100のスケールアウト完了後、または管理サーバMSのGUI画面から再配置指示を行った場合に実行される。
図25〜図28は、ストレージシステム100の再配置処理手順の一例を示すシーケンス図である。図25のシーケンス図において、管理サーバMSの装置管理GUIは、スケールアウト指示または再配置指示をPU#1の装置管理GUI制御部#1に通知する(ステップS2501)。スケールアウト指示は、例えば、GUI画面上の「スケールアウトボタン」がクリックされると通知される。また、再配置指示は、例えば、GUI画面上の「再配置ボタン」がクリックされると通知される。
PU#1の装置管理GUI制御部#1は、スケールアウト指示を受け付けたか否かを判断する(ステップS2502)。ここで、スケールアウト指示を受け付けた場合(ステップS2502:Yes)、装置管理GUI制御部#1からボリューム管理Mにスケールアウト指示が通知され、ボリューム管理Mは、追加されたSU#2の容量分をストレージシステム100全体の容量に加えて、SU#2の領域も利用できる状態にする(ステップS2503)。
一方、再配置指示を受け付けた場合(ステップS2502:No)、装置管理GUI制御部#1は、ボリューム管理Mに再配置指示を通知する(ステップS2504)。ボリューム管理Mは、SWグループ管理テーブル700を参照して、スケールアウトでスイッチグループGが増えたか否かを判断する(ステップS2505)。
ここで、スイッチグループGが増えた場合(ステップS2505:Yes)、ボリューム管理Mは、ステップS2803に移行する。一方、スイッチグループGが増えていない場合(ステップS2505:No)、ボリューム管理Mは、図26に示すステップS2601に移行する。
図26のシーケンス図において、ボリューム管理Mは、構成管理DBからボリューム管理テーブル710を読み出す(ステップS2601)。ボリューム管理Mは、ボリューム管理テーブル710を参照して、ストレージシステム100内の各スイッチグループGに属するSUに含まれる各LUNのセグメントの割当量qを算出する(ステップS2602)。
ボリューム管理Mは、算出した各LUNのセグメントの割当量qに基づいて、ストレージシステム100内の各スイッチグループGに属するSUに含まれる各LUNのセグメントの割当量qに偏りがあるか否かを判断する(ステップS2603)。
ここで、スイッチグループGに偏りがない場合(ステップS2603:No)、ボリューム管理Mは、図28のステップS2803に移行する。一方、スイッチグループGに偏りがある場合(ステップS2603:Yes)、ボリューム管理Mは、スイッチグループGごとの再配置計画を立てて再配置計画テーブル720を作成する(ステップS2604)。この際、ボリューム管理Mは、再配置すべきセグメントについて、再配置計画テーブル720の再配置状況を「再配置待」にする。
ボリューム管理Mは、再配置計画テーブル720を参照して、各PU#1,#2,#3の再配置制御スレッドを生成する(ステップS2605)。各PU#1,#2,#3の再配置制御スレッドは、ボリューム管理Mから指示されたボリュームの再配置をセグメント単位で各PU#1,#2,#3のボリューム管理A#1,#2,#3に指示する(ステップS2606)。
具体的には、例えば、各PU#1,#2,#3の再配置制御スレッドは、各PU#1,#2,#3のボリューム管理A#1,#2,#3に再配置すべきディスク情報(ディスクを特定するための情報、移動すべきセグメント)および移動先の情報を通知する。
図27のシーケンス図において、各ボリューム管理A#1,#2,#3は、業務IOの現IOPSが最大IOPSの95%以上か否かを判断する(ステップS2701)。ここで、現IOPSが最大IOPSの95%以上の場合(ステップS2701:Yes)、各ボリューム管理A#1,#2,#3は、一定時間スリープして(ステップS2702)、ステップS2701に戻る。
一方、現IOPSが最大IOPSの95%未満の場合、(ステップS2701:No)、各ボリューム管理A#1,#2,#3は、指示に従ってセグメントのコピーを行うことにより、指示されたセグメントを更新する(ステップS2703)。
各ボリューム管理A#1,#2,#3は、業務IOのIOPSが15%ダウンしたか否かを判断する(ステップS2704)。ここで、15%ダウンした場合(ステップS2704:Yes)、各ボリューム管理A#1,#2,#3は、一定時間スリープして(ステップS2705)、ステップS2704に戻る。
一方、15%ダウンしていない場合(ステップS2704:No)、各ボリューム管理A#1,#2,#3は、指示を依頼してきた各PU#1,#2,#3の再配置制御スレッドに対してコピー完了を通知する(ステップS2706)。なお、コピー完了の通知を受けた再配置制御スレッドは、コピー完了したセグメントについて、再配置計画テーブル720の再配置状況を「再配置完了」にする。
図28のシーケンス図において、各PU#1,#2,#3の再配置制御スレッドは、再配置計画テーブル720を参照して、再配置していない残セグメントがあるか否かを判断する(ステップS2801)。ここで、残セグメントがある場合(ステップS2801:Yes)、各PU#1,#2,#3の再配置制御スレッドは、図26に示したステップS2606に戻る。
一方、残セグメントがない場合(ステップS2801:No)、各PU#1,#2,#3の再配置制御スレッドは、ボリュームの再配置完了をボリューム管理Mに通知する。ボリューム管理Mは、再配置計画テーブル720を参照して、未処理のボリュームがあるか否かを判断する(ステップS2802)。
ここで、未処理のボリュームがある場合(ステップS2802:Yes)、ボリューム管理Mは、図26に示したステップS2605に戻る。一方、未処理のボリュームがない場合(ステップS2802:No)、ボリューム管理Mは、再配置指示を契機として動作したか否かを判断する(ステップS2803)。
ここで、再配置指示を契機として動作した場合(ステップS2803:Yes)、ストレージシステム100は一連の処理を終了する。一方、スケールアウト指示を契機として動作した場合(ステップS2803:No)、ボリューム管理Mは、一定時間スリープして(ステップS2804)、図25に示したステップS2505に戻る。
これにより、各スイッチグループGに属するSU間で各LUNのセグメントの割当量qが均等になるようにボリュームの再配置を行うことができる。また、スケールアウト指示を契機として動作した場合には、ストレージシステム100内の各スイッチグループGに属するSUに含まれる各LUNのセグメントの割当量qに偏りがあるか否かを定期的に判断してボリュームの再配置を行うことができる。
<再配置停止処理手順>
つぎに、ストレージシステム100の再配置停止処理手順について説明する。まず、管理サーバMSのユーザにより再配置処理の停止指示が行われる場合の再配置停止処理手順について説明する。
図29は、ストレージシステム100の第1再配置停止処理手順の一例を示すシーケンス図である。図29のシーケンス図において、管理サーバMSの装置管理GUIは、再配置処理の停止指示を受け付けた場合、再配置処理の停止指示をPU#1の装置管理GUI制御部#1に通知する(ステップS2901)。
装置管理GUI制御部#1は、再配置処理の停止指示を受け付けた場合、再配置処理の停止指示をボリューム管理Mに通知する(ステップS2902)。ボリューム管理Mは、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況を「再配置済」に変更する(ステップS2903)。
ボリューム管理Mは、再配置処理を実施中の各PU#1,#2,#3の再配置制御スレッドに対して再配置処理の停止指示を通知する(ステップS2904)。各PU#1,#2,#3の再配置制御スレッドは、仕掛け中の再配置処理を中止する(ステップS2905)。ボリューム管理Mは、再配置計画テーブル720を破棄して(ステップS2906)、ストレージシステム100は一連の処理を終了する。これにより、管理サーバMSのユーザにより、実施中の再配置処理を任意のタイミングで停止することができる。
つぎに、再配置の停止事象が発生した場合のストレージシステム100の再配置停止処理手順について説明する。再配置の停止事象としては、例えば、新たなスケールアウトが実施された場合、RAIDグループが閉塞した場合、SUにおけるLUNが削除された場合などがある。
図30は、ストレージシステム100の第2再配置停止処理手順の一例を示すシーケンス図である。図30のシーケンス図において、ボリューム管理Mは、再配置の停止事象が発生した場合、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況を「再配置済」に変更する(ステップS3001)。
ボリューム管理Mは、再配置処理を実施中の各PU#1,#2,#3の再配置制御スレッドに対して再配置処理の停止指示を通知する(ステップS3002)。各PU#1,#2,#3の再配置制御スレッドは、仕掛け中の再配置処理を中止する(ステップS3003)。ボリューム管理Mは、再配置計画テーブル720を破棄して(ステップS3004)、ストレージシステム100は一連の処理を終了する。これにより、再配置の停止事象が発生した場合に、実施中の再配置処理を停止することができる。
<再配置一時停止処理手順>
つぎに、ストレージシステム100の再配置一時停止処理手順について説明する。再配置一時停止処理は、例えば、各PUや各SUの保守点検等で一時的に再配置処理を止めたい場合に行われる。
図31は、ストレージシステム100の再配置一時停止処理手順の一例を示すシーケンス図である。図31のシーケンス図において、管理サーバMSの装置管理GUIは、再配置処理の一時停止指示を受け付けた場合、再配置処理の一時停止指示をPU#1の装置管理GUI制御部#1に通知する(ステップS3101)。
装置管理GUI制御部#1は、再配置処理の一時停止指示を受け付けた場合、再配置処理の一時停止指示をボリューム管理Mに通知する(ステップS3102)。ボリューム管理Mは、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況が「再配置中」のエントリについて、再配置状況を「一時停止」に変更する(ステップS3103)。
ボリューム管理Mは、再配置処理を実施中の各PU#1,#2,#3の再配置制御スレッドに対して再配置処理の停止指示を通知する(ステップS3104)。各PU#1,#2,#3の再配置制御スレッドは、仕掛け中の再配置処理を中止して(ステップS3105)、ストレージシステム100は一連の処理を終了する。これにより、管理サーバMSのユーザにより、実施中の再配置処理を任意のタイミングで一時停止することができる。
<再配置再開処理手順>
つぎに、ストレージシステム100の再配置再開処理手順について説明する。再配置再開処理は、例えば、各PUや各SUの保守点検等で一時的に再配置処理を止めた後に再配置を再開する場合に行われる。
図32は、ストレージシステム100の再配置再開処理手順の一例を示すシーケンス図である。図32のシーケンス図において、管理サーバMSの装置管理GUIは、再配置処理の再開指示を受け付けた場合、再配置処理の再開指示をPU#1の装置管理GUI制御部#1に通知する(ステップS3201)。
装置管理GUI制御部#1は、再配置処理の再開指示を受け付けた場合、再配置処理の再開指示をボリューム管理Mに通知する(ステップS3202)。ボリューム管理Mは、ボリューム管理テーブル710および再配置計画テーブル720の再配置状況が「一時停止」のエントリを検索して(ステップS3203)、図26に示したステップS2605に移行する。これにより、管理サーバMSのユーザにより、一時停止中の再配置処理を任意のタイミングで再開することができる。
以上説明したように、実施例にかかるストレージシステム100によれば、スケールアウト前に格納されたデータについても、ストレージシステム100内のスイッチグループGごとに、スイッチグループGに含まれるSU全体に再割り当てすることができる。これにより、スケールアウト後のストレージシステム100が有するポテンシャルに相当するアクセス性能の向上を図ることができる。
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う制御部と、
を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
前記各グループに属するストレージユニットにおける割当中の記憶領域の偏りの度合いに応じて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記割当情報に基づいて、前記各グループに属するストレージユニットに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分に基づいて、前記各グループに属するストレージユニットにおける割当中の記憶領域の割当状況に所定の偏りがあるか否かを判定し、前記所定の偏りがあるとの判定に基づいて、前記割当情報に基づき割当中の記憶領域の再配置制御を行うことを特徴とする付記2に記載のストレージ制御装置。
(付記4)前記制御部は、
前記割当情報に基づいて、前記複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記所定の偏りがあると判定することを特徴とする付記3に記載のストレージ制御装置。
(付記5)前記制御部は、
算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上で、かつ、所定のサイズ以上の場合に、前記所定の偏りがあると判定することを特徴とする付記4に記載のストレージ制御装置。
(付記6)前記割当情報は、前記各グループに属するストレージユニットの記憶領域に割り当てられた各セグメントの割り当て情報を含み、
前記制御部は、割当中のセグメント数に基づいて前記差分を算出することを特徴とする付記3〜5のいずれか一つに記載のストレージ制御装置。
(付記7)前記制御部は、
前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置計画を作成し、作成した前記再配置計画に従って、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする付記1〜6のいずれか一つに記載のストレージ制御装置。
(付記8)前記制御部は、
前記各グループに属するストレージユニットにおける割当中の記憶領域の割当状況に所定の偏りがあるか否かを定期的に判定することを特徴とする付記3〜5のいずれか一つに記載のストレージ制御装置。
(付記9)コンピュータが、
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
処理を実行することを特徴とする制御方法。
(付記10)コンピュータに、
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
処理を実行させることを特徴とするストレージ制御プログラム。
100 ストレージシステム
301 記憶部
302 分類部
303 算出部
304 判定部
305 作成部
306 再配置制御部
700 SWグループ管理テーブル
710 ボリューム管理テーブル
720 再配置計画テーブル
1000 ボリュームインデックステーブル
1100 ミラーボリュームインデックステーブル
1200 ボリュームセグメントテーブル
#1〜#8 PU
#1〜#7 SU
#1〜#4 SW

Claims (8)

  1. ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内のストレージ制御装置上で作成されるボリュームに対する前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
    前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記割当情報に基づいて、前記各グループに属するストレージユニットに含まれる複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記割当情報に基づき前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う制御部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記制御部は、
    算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上で、かつ、所定のサイズ以上の場合に、前記割当情報に基づき前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記割当情報は、前記各グループに属するストレージユニットの記憶領域に割り当てられた各セグメントの割り当て情報を含み、
    前記制御部は、割当中のセグメント数に基づいて前記差分を算出することを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 前記制御部は、
    前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置計画を作成し、作成した前記再配置計画に従って、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする請求項1〜3のいずれか一つに記載のストレージ制御装置。
  5. コンピュータが、
    ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージ制御装置上で作成されるボリュームに対する前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットに含まれる複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記割当情報に基づき前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
    処理を実行することを特徴とする制御方法。
  6. コンピュータに、
    ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージ制御装置上で作成されるボリュームに対する前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットに含まれる複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記割当情報に基づき前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
    処理を実行させることを特徴とするストレージ制御プログラム。
  7. ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内のストレージ制御装置上で作成されるボリュームに対する前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
    前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記割当情報に含まれる前記各グループに属するストレージユニットの記憶領域に割り当てられた各セグメントの割り当て情報から特定される割当中のセグメント数に基づいて、前記各グループに属するストレージユニットに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分に基づいて、前記割当情報に基づき前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う制御部と、
    を有することを特徴とするストレージ制御装置。
  8. コンピュータに、
    ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージ制御装置上で作成されるボリュームに対する前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記割当情報に含まれる前記各グループに属するストレージユニットの記憶領域に割り当てられた各セグメントの割り当て情報から特定される割当中のセグメント数に基づいて、前記各グループに属するストレージユニットに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分に基づいて、前記割当情報に基づき前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2013187754A 2013-09-10 2013-09-10 ストレージ制御装置、制御方法およびストレージ制御プログラム Expired - Fee Related JP6229385B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013187754A JP6229385B2 (ja) 2013-09-10 2013-09-10 ストレージ制御装置、制御方法およびストレージ制御プログラム
US14/464,984 US9423982B2 (en) 2013-09-10 2014-08-21 Storage control apparatus, control method, and computer product
EP14182256.9A EP2846251A1 (en) 2013-09-10 2014-08-26 Storage control apparatus, control method, and storage control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013187754A JP6229385B2 (ja) 2013-09-10 2013-09-10 ストレージ制御装置、制御方法およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2015055941A JP2015055941A (ja) 2015-03-23
JP6229385B2 true JP6229385B2 (ja) 2017-11-15

Family

ID=51429056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013187754A Expired - Fee Related JP6229385B2 (ja) 2013-09-10 2013-09-10 ストレージ制御装置、制御方法およびストレージ制御プログラム

Country Status (3)

Country Link
US (1) US9423982B2 (ja)
EP (1) EP2846251A1 (ja)
JP (1) JP6229385B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6221564B2 (ja) * 2013-09-25 2017-11-01 富士通株式会社 ストレージ制御装置、制御方法および制御プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931487B2 (en) * 2001-10-22 2005-08-16 Hewlett-Packard Development Company L.P. High performance multi-controller processing
JP2003330762A (ja) 2002-05-09 2003-11-21 Hitachi Ltd ストレージシステムの制御方法、ストレージシステム、スイッチ、及びプログラム
JP4100968B2 (ja) * 2002-06-06 2008-06-11 株式会社日立製作所 データマッピング管理装置
JP4313650B2 (ja) * 2003-11-07 2009-08-12 株式会社日立製作所 ファイルサーバ、冗長度回復方法、プログラム及び記録媒体
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
US8543742B2 (en) 2007-02-22 2013-09-24 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
JP5379956B2 (ja) 2007-03-19 2013-12-25 株式会社日立製作所 ストレージ装置及び記憶領域配置方法

Also Published As

Publication number Publication date
US9423982B2 (en) 2016-08-23
EP2846251A1 (en) 2015-03-11
JP2015055941A (ja) 2015-03-23
US20150074348A1 (en) 2015-03-12

Similar Documents

Publication Publication Date Title
JP5916958B2 (ja) 計算機システム及び計算機システム制御方法
JP5555260B2 (ja) 仮想ボリュームを提供するストレージシステム
JP5793196B2 (ja) 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法
JP5781925B2 (ja) 計算機システム及びその制御方法
US8001351B2 (en) Data migration method and information processing system
JP6221564B2 (ja) ストレージ制御装置、制御方法および制御プログラム
US8850152B2 (en) Method of data migration and information storage system
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
JP5685676B2 (ja) 計算機システム及びデータ管理方法
WO2011104741A1 (en) Management system for storage system and method for managing storage system
CN105657066A (zh) 用于存储系统的负载再均衡方法及装置
WO2014013524A1 (en) Storage system and storage control method
WO2013124876A1 (en) Storage apparatus and method thereof for performance control based on usage cases of snapshots
JP6142599B2 (ja) ストレージシステム、ストレージ装置および制御プログラム
JP6229385B2 (ja) ストレージ制御装置、制御方法およびストレージ制御プログラム
JP2015143945A (ja) ストレージ制御装置、ストレージ装置および制御プログラム
JP2011242862A (ja) ストレージサブシステム及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171002

R150 Certificate of patent or registration of utility model

Ref document number: 6229385

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees