JP2017058736A - ストレージシステム、ストレージ制御装置およびアクセス制御方法 - Google Patents

ストレージシステム、ストレージ制御装置およびアクセス制御方法 Download PDF

Info

Publication number
JP2017058736A
JP2017058736A JP2015180599A JP2015180599A JP2017058736A JP 2017058736 A JP2017058736 A JP 2017058736A JP 2015180599 A JP2015180599 A JP 2015180599A JP 2015180599 A JP2015180599 A JP 2015180599A JP 2017058736 A JP2017058736 A JP 2017058736A
Authority
JP
Japan
Prior art keywords
access
node
storage
logical area
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015180599A
Other languages
English (en)
Inventor
安仁 菊地
Yasuhito Kikuchi
安仁 菊地
明雅 吉田
Akimasa Yoshida
明雅 吉田
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 JP2015180599A priority Critical patent/JP2017058736A/ja
Priority to US15/257,950 priority patent/US20170075631A1/en
Publication of JP2017058736A publication Critical patent/JP2017058736A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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

Abstract

【課題】アクセス要求を適切に処理できる。【解決手段】制御部11bは、記憶装置群13に属する論理領域L1と記憶装置群14に属する論理領域L2とを合わせた論理領域L3に対する第1のアクセス要求をアクセス元装置20から受信する。制御部11bは、論理領域L3のうち論理領域L1に含まれる部分L1aにアクセスして第1のアクセス結果を取得する。制御部11bは、論理領域L3の未アクセス部分に対する第2のアクセス要求をストレージ制御装置12に送信し、第2のアクセス要求に応じた第2のアクセス結果を受信する。制御部11bは、第1および第2のアクセス結果に基づいて、第1のアクセス要求に対する第3のアクセス結果をアクセス元装置20に送信する。【選択図】図1

Description

本発明はストレージシステム、ストレージ制御装置およびアクセス制御方法に関する。
現在、データの保存にストレージシステムが利用されている。ストレージシステムは、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置を複数有し、大容量の記憶領域を利用可能とする。ストレージシステムは、記憶装置に対するデータの書き込みや読み出しのアクセス制御を行うストレージ制御装置を有する。ストレージシステムでは、ストレージ制御装置を複数搭載して、データアクセスの分散化や冗長化を図り、データアクセスの性能や信頼性を向上させることもある。
例えば、複数のファイル共有装置がそれぞれ有するディレクトリ構成を仮想的に一元化した論理的ディレクトリ構成を、クライアント装置に提供する提案がある。
また、例えば、複数の物理ドライブとそれらのアクセス制御回路とを備えたユニットを複数備えるようにし、各ユニットが、上位装置から送られる仮想ドライブの論理アドレスを物理ドライブの物理アドレスに変換する仮想ディスクシステムの提案がある。この提案では、あるユニットが他ユニットの物理ドライブに対するアクセス要求を受信した場合、当該アクセス要求を他ユニットに転送する。他ユニットは、転送されたアクセス要求に応じて上位装置との接続を確立し、物理ドライブへのデータの書き込みなどを行って、完了報告を上位装置に対して応答する。
特開2009−3499号公報 特開平7−152491号公報
ストレージシステムにおいて、複数の記憶装置を含む集合(記憶装置群)を複数設け、各記憶装置群へのアクセスを担当するストレージ制御装置を、1つの記憶装置群に対して1つ以上設けることが考えられる。すると、各記憶装置群において独立した論理領域を設けたり、記憶装置群とストレージ制御装置との組単位にスケールアウトを行ったり、柔軟な運用を実現し得る。
ここで、各記憶装置群に作成した論理領域を組み合わせて、複数の記憶装置群を跨ぐ論理領域(仮想ボリューム)を作成することが考えられる。しかし、この場合、仮想ボリュームのうち、複数の記憶装置群に跨る領域に対するアクセス要求が生じ得る。例えば、あるストレージ制御装置が当該アクセス要求を受け付けても、自ストレージ制御装置の担当外の部分についてはアクセスを行えず、アクセスが中断するおそれがある。そこで、アクセスが中断しないようアクセス要求を適切に処理可能とする仕組みをどのように実現するかが問題となる。
1つの側面では、本発明は、アクセス要求を適切に処理できるストレージシステム、ストレージ制御装置およびアクセス制御方法を提供することを目的とする。
1つの態様では、複数の記憶装置群を備え、複数の記憶装置群それぞれを用いてデータを格納する論理領域を作成可能なストレージシステムが提供される。このストレージシステムは、第1のストレージ制御装置と第2のストレージ制御装置とを有する。第1のストレージ制御装置は、第1の記憶装置群に属する第1の論理領域と第2の記憶装置群に属する第2の論理領域とを合わせた第3の論理領域に対する第1のアクセス要求をアクセス元装置から受信すると、第3の論理領域のうち第1の論理領域に含まれる部分にアクセスして第1のアクセス結果を取得し、第3の論理領域の未アクセス部分に対する第2のアクセス要求を送信し、第2のアクセス要求に応じた第2のアクセス結果を受信すると、第1および第2のアクセス結果に基づいて第1のアクセス要求に対する第3のアクセス結果をアクセス元装置に送信する。第2のストレージ制御装置は、第2のアクセス要求を受信すると、第3の論理領域のうち第2の論理領域に含まれる部分にアクセスし、第2のアクセス結果を第1のストレージ制御装置に送信する。
また、1つの態様では、複数の記憶装置群を備えており複数の記憶装置群それぞれを用いてデータを格納する論理領域を作成可能なストレージシステムに用いられ、第1の記憶装置群に属する第1の論理領域に対するアクセスを制御するストレージ制御装置が提供される。このストレージ制御装置は、制御部を有する。制御部は、第1の論理領域と第2の記憶装置群に属する第2の論理領域とを合わせた第3の論理領域に対する第1のアクセス要求をアクセス元装置から受信すると、第3の論理領域のうち第1の論理領域に含まれる部分にアクセスして第1のアクセス結果を取得し、第3の論理領域の未アクセス部分に対する第2のアクセス要求を他のストレージ制御装置に送信し、第2のアクセス要求に応じた第2のアクセス結果を受信すると、第1および第2のアクセス結果に基づいて第1のアクセス要求に対する第3のアクセス結果をアクセス元装置に送信する。
また、1つの態様では、複数の記憶装置群を備え、複数の記憶装置群それぞれを用いてデータを格納する論理領域を作成可能なストレージシステムで実行されるアクセス制御方法が提供される。このアクセス制御方法では、第1のストレージ制御装置が、第1の記憶装置群に属する第1の論理領域と第2の記憶装置群に属する第2の論理領域とを合わせた第3の論理領域に対する第1のアクセス要求をアクセス元装置から受信すると、第3の論理領域のうち第1の論理領域に含まれる部分にアクセスして第1のアクセス結果を取得し、第3の論理領域の未アクセス部分に対する第2のアクセス要求を送信し、第2のストレージ制御装置が、第2のアクセス要求を受信すると、第3の論理領域のうち第2の論理領域に含まれる部分にアクセスして第2のアクセス要求に応じた第2のアクセス結果を第1のストレージ制御装置に送信し、第1のストレージ制御装置が、第2のアクセス結果を受信すると、第1および第2のアクセス結果に基づいて第1のアクセス要求に対する第3のアクセス結果をアクセス元装置に送信する。
1つの側面では、アクセス要求を適切に処理できる。
第1の実施の形態のストレージシステムを示す図である。 第2の実施の形態のストレージシステムを示す図である。 シェルフに含まれるノードの例を示す図である。 ノードのハードウェア例を示す図である。 コントローラユニットのハードウェア例を示す図である。 業務サーバのハードウェア例を示す図である。 コントローラユニットの機能例を示す図である。 仮想ボリュームの例を示す図である。 仮想ボリュームに対する論理セグメントの割り当て例を示す図である。 仮想ボリュームに対するIOの処理例を示す図である。 仮想ボリュームの作成例を示す図である。 各ノードが保持するテーブルの例を示す図である。 アイランドマスタアドレス管理テーブルの例を示す図である。 仮想ボリューム管理テーブルの例を示す図である。 ノードアドレス管理テーブルの例を示す図である。 担当ノード管理テーブルの例を示す図である。 変換テーブルの例(その1)を示す図である。 変換テーブルの例(その2)を示す図である。 ログイン要求に含まれる情報の例を示す図である。 仮想ボリューム作成の第1のシーケンス例を示す図である。 仮想ボリューム作成の第2のシーケンス例を示す図である。 IO処理の第1のシーケンス例を示す図である。 IO処理の第2のシーケンス例を示す図である。 IO処理の第2のシーケンス例(続き)を示す図である。 IO処理の第3のシーケンス例を示す図である。 IO処理の第3のシーケンス例(続き)を示す図である。 担当ノードによるIO処理例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージシステムを示す図である。ストレージシステム10は、HDDやSSDなどの記憶装置を複数備え、複数の記憶装置によりデータを記憶する。ストレージシステム10は、アクセス元装置20と接続されている。アクセス元装置20は、例えば、ストレージシステム10に記憶されたデータを用いて業務処理を実行する情報処理装置である。
ストレージシステム10は、ストレージ制御装置11,12および記憶装置群13,14を有する。ストレージ制御装置11,12は、通信可能である。ストレージ制御装置11は、記憶装置群13へのアクセス(データの書き込みや読み出し)を担当する。ストレージ制御装置12は、記憶装置群14へのアクセスを担当する。ストレージ制御装置11を第1のストレージ制御装置と呼ぶことができる。ストレージ制御装置12を第2のストレージ制御装置と呼ぶことができる。
記憶装置群13,14は、複数の記憶装置の集合である。記憶装置群13は、記憶装置13a,13b,13cを含む。記憶装置群14は、記憶装置14a,14b,14cを含む。記憶装置群13を第1の記憶装置群と呼ぶことができる。記憶装置群14を第2の記憶装置群と呼ぶことができる。
ストレージ制御装置11は、記憶装置13a,13b,13cそれぞれの記憶領域の一部を組み合わせて、論理領域L1を作成する。ストレージ制御装置12は、記憶装置14a,14b,14cそれぞれの記憶領域の一部を組み合わせて、論理領域L2を作成する。この場合、ストレージ制御装置11は、論理領域L1に対するアクセスを担当することになる。ストレージ制御装置12は、論理領域L2に対するアクセスを担当することになる。
更に、ストレージ制御装置11は、論理領域L1,L2を組み合わせた論理領域L3を作成する。ストレージ制御装置11は、アクセス元装置20からは論理領域L3を参照可能とする。例えば、ストレージシステム10では、論理領域L3に対するアクセス元装置20からのアクセス要求をストレージ制御装置11によって受け付ける。
ストレージ制御装置11は、記憶部11aおよび制御部11bを有する。ストレージ制御装置12は、記憶部12aおよび制御部12bを有する。記憶部11a,12aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDDやフラッシュメモリなどの不揮発性記憶装置でもよい。制御部11b,12bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。制御部11b,12bはプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部11aは、記憶装置13a,13b,13cそれぞれの記憶位置を示す物理アドレスと論理領域L1における論理アドレスとの対応情報を記憶する。記憶部11aは、論理領域L1における論理アドレスと論理領域L3における論理アドレスとの対応情報を記憶する。また、記憶部11aは、論理領域L3と論理領域L1,L2との対応情報、および、論理領域L2と論理領域L2を管理するストレージ制御装置12の識別情報との対応情報を記憶する。
ここで、記憶部12aも、記憶部11aと同様に、ストレージ制御装置12がアクセスを担当する記憶装置14a,14b,14cそれぞれの記憶位置を示す物理アドレスと論理領域L2における論理アドレスとの対応情報を記憶する。また、記憶部12aは、論理領域L2における論理アドレスと論理領域L3における論理アドレスとの対応情報を記憶する。
制御部11bは、アクセス元装置20により発行された論理領域L3に対するアクセス要求を受け付けると、論理領域L3に対するアクセスを実行する。論理領域L3に対するアクセスは、論理領域L3全体に対するアクセスでもよい。論理領域L3に対するアクセスは、論理領域L3の一部の論理アドレス範囲に対するアクセスでもよい。このとき、アクセス元装置20により、論理領域L3へのアクセス要求として、論理領域L1,L2の境界を跨ぐアクセスを要求する第1のアクセス要求が発行され得る。
第1のアクセス要求では、アクセス対象となる論理領域L3および論理領域L3の論理アドレス範囲を特定するための情報が含まれる。論理領域L3の当該論理アドレス範囲は、第1の部分が論理領域L1の部分L1aに対応し、第2の部分が論理領域L2の部分L2aに対応する。この場合、制御部11b,12bは、次のようにして第1のアクセス要求を処理する。
まず、制御部11bは、アクセス元装置20が発行した第1のアクセス要求を受信する(ステップS1)。すると、制御部11bは、記憶部11aに記憶された論理領域L3と論理領域L1との論理アドレスの対応情報を基に、論理領域L1の部分L1aにアクセスする(ステップS2)。このとき、制御部11bは、記憶部11aに記憶された論理領域L1の論理アドレスと記憶装置13a,13b,13cの物理アドレスとの対応情報により、部分L1aに相当する記憶装置13a,13b,13c上の物理アドレス群を特定できる。
こうして、制御部11bは、第1のアクセス要求で要求される論理領域L3の論理アドレス範囲のうち、部分L1aに相当する論理アドレス範囲について第1のアクセス結果を取得する。第1のアクセス結果は、例えば、データの書き込みであれば、第1のアクセス要求で要求されたデータの一部について書き込みを行ったことを示す情報であり、データの読み出しであれば、第1のアクセス要求で要求されたデータの一部の読み出し結果である。
制御部11bは、第1のアクセス要求で要求される論理領域L3の論理アドレス範囲のうち、ストレージ制御装置11が担当する部分L1a以外の未アクセスの部分(未アクセス部分)が存在することを検出する。すると、制御部11bは、記憶部11aに記憶された論理領域L3と論理領域L1,L2との対応情報および論理領域L2とストレージ制御装置12との対応情報を参照して、未アクセス部分がストレージ制御装置12により管理されていると判断する。そして、制御部11bは、論理領域L3の未アクセス部分に対する第2のアクセス要求を生成し、ストレージ制御装置12に送信する(ステップS3)。このとき、制御部11bは、ストレージ制御装置12とデータアクセス用のコネクションを確立することになる。コネクションの確立に先立って、制御部11bは、ストレージ制御装置12に対する所定のログイン処理(例えば、制御部11bがイニシエータとして機能し、ターゲットであるストレージ制御装置12にログインするなど)を行ってもよい。
制御部12bは、ストレージ制御装置11が発行した第2のアクセス要求を受信する。すると、制御部12bは、記憶部12aに記憶された論理領域L3と論理領域L2との論理アドレスの対応情報を基に、論理領域L2の部分L2aにアクセスする(ステップS4)。このとき、制御部12bは、記憶部12aに記憶された論理領域L2の論理アドレスと記憶装置14a,14b,14cの物理アドレスとの対応情報により、部分L2aに相当する記憶装置14a,14b,14c上の物理アドレス群を特定できる。また、部分L2aは、第1のアクセス要求で要求された論理領域L3のアドレス範囲のうち、ストレージ制御装置11側で未アクセスであった部分に相当する。
こうして、制御部12bは、第2のアクセス要求に対する第2のアクセス結果を取得する。第2のアクセス結果は、例えば、データの書き込みであれば、第2のアクセス要求で要求されたデータ(すなわち、第1のアクセス要求で要求された残り部分のデータ)について書き込みを行ったことを示す情報である。あるいは、データの読み出しであれば、第2のアクセス結果は、第2のアクセス要求で要求されたデータの読み出し結果(すなわち、第1のアクセス要求で要求されたデータの残り部分の読み出し結果)である。制御部12bは、ストレージ制御装置11に第2のアクセス結果を送信する(ステップS5)。
制御部11bは、ストレージ制御装置12から第2のアクセス結果を受信する。制御部11bは、第1のアクセス結果と第2のアクセス結果とに基づいて、第1のアクセス要求に対する第3のアクセス結果を生成する。例えば、第1のアクセス要求が、データの書き込み要求であれば、第3のアクセス結果は、論理領域L3に対する当該データの書き込みが完了したことを示す情報である。また、例えば、第1のアクセス要求が、データの読み出し要求であれば、第3のアクセス結果は、論理領域L3から読み出した当該データ(第1のアクセス結果(読み出し結果)と第2のアクセス結果(読み出し結果)とを合わせたデータ)である。制御部11bは、生成した第3のアクセス結果を、アクセス元装置20に送信する(ステップS6)。
こうして、ストレージ制御装置11は、論理領域L3のうち、論理領域L1,L2の境界を跨ぐアクセスを適切に処理できる。具体的には次の通りである。例えば、ストレージ制御装置11では、アクセス元装置20により発行された第1のアクセス要求を受け付けたとき、論理領域L3のうち、論理領域L1に含まれる部分については、ストレージ制御装置11が保持する対応情報によってアクセス可能である。しかし、論理領域L3のうち、論理領域L2に含まれる部分(残り部分)については、ストレージ制御装置11によるアクセスの担当外であるため、ストレージ制御装置11によるアクセスは不可能である。すると、当該残り部分については、ストレージ制御装置11でアクセスできずに、第1のアクセス要求に対するアクセス処理が中断されることになる。
例えば、中断後、アクセス元装置20により、ストレージ制御装置12との接続を確立させて、ストレージ制御装置12により残り部分のアクセスを実行し、ストレージ制御装置12からアクセス元装置20へ残り部分のアクセス結果を応答することも考えられる。しかし、この方法では、ストレージ制御装置12に対するログイン処理などの接続確立のための処理や、再度のアクセス要求の発行をアクセス元装置20に強いるだけでなく、第1のアクセス要求によるアクセスが中断されることを避けることはできない。
そこで、ストレージ制御装置11は、第1のアクセス要求に対し、ストレージ制御装置11で処理可能な論理領域L3の一部分について、アクセスを実行し、残り部分に対するアクセス要求をストレージ制御装置12に送信する。ストレージ制御装置11は、ストレージ制御装置11による第1のアクセス結果と、ストレージ制御装置12による第2のアクセス結果とを合わせて、第1のアクセス要求に対する第3のアクセス結果を生成し、アクセス元装置20に応答する。これにより、アクセスを中断させずに、また、アクセス元装置20に対する影響を抑えて、第1のアクセス要求を適切に処理できる。
なお、論理領域L1,L2と論理領域L3との対応関係、および、論理領域L1,L2が何れのストレージ制御装置の管理下にあるかを管理する他のストレージ制御装置を、ストレージ制御装置11,12とは別個に設けてもよい。この場合、他のストレージ制御装置が、第1のアクセス要求の送信先として、ストレージ制御装置11の通信アドレス(例えば、IP(Internet Protocol)アドレスなど)をアクセス元装置20に提供してもよい。また、ストレージ制御装置11は、他のストレージ制御装置に問い合わせることで、第2のアクセス要求の送信先であるストレージ制御装置12の通信アドレスを取得してもよい。
[第2の実施の形態]
図2は、第2の実施の形態のストレージシステムを示す図である。第2の実施の形態のストレージシステムは、シェルフSH1,SH2,SH3,SH4、業務サーバ30および管理サーバ40を有する。シェルフSH1,SH2,SH3,SH4および業務サーバ30は、SAN(Storage Area Network)50に接続されている。シェルフSH1,SH2,SH3,SH4および管理サーバ40は、LAN(Local Area Network)60に接続されている。
シェルフSH1,SH2,SH3,SH4は、データを記憶するノードを搭載する筐体である。シェルフSH1,SH2,SH3,SH4は、グループ分けされている。1つのグループを、1つのアイランドと称する。具体的には、シェルフSH1,SH2は、アイランド70に属する。シェルフSH3,SH4は、アイランド70aに属する。
第2の実施の形態のストレージシステムでは、アイランド毎に独立した論理領域(仮想ボリュームと称する)を作成することができる。また、複数のアイランドを跨いだ仮想ボリュームを作成することもできる。
業務サーバ30は、SAN50を介して、シェルフSH1,SH2,SH3,SH4に格納されたデータにアクセスし、当該データを用いて業務処理を実行するサーバコンピュータである。
管理サーバ40は、アイランド70,70aにおける仮想ボリュームを管理するサーバコンピュータである。例えば、システムの管理者は、管理サーバ40を操作して、仮想ボリュームの新規作成や、シェルフ単位のスケールアウトによる容量増強や性能向上などの運用を行える。
図3は、シェルフに含まれるノードの例を示す図である。シェルフSH1は、ノードN1,N2を有する。シェルフSH2は、ノードN3,N4を有する。シェルフSH3は、ノードN5,ノードN6を有する。シェルフSH4は、ノードN7,N8を有する。シェルフSH1,SH2は、アイランド70に属しているので、ノードN1,N2,N3,N4もアイランド70に属しているということができる。同様に、シェルフSH3,SH4は、アイランド70aに属しているので、ノードN5,N6,N7,N8もアイランド70aに属しているということができる。
図4は、ノードのハードウェア例を示す図である。ノードN1は、コントローラユニット100およびストレージユニット200を有する。コントローラユニットは、データへのアクセスを制御する。コントローラユニット100は、第1の実施の形態のストレージ制御装置11,12の一例である。ストレージユニット200は、HDDやSSDなどの複数の記憶装置を備える。ノードN2,N3,N4,N5,N6,N7,N8も、ノードN1と同様に、それぞれが、コントローラユニットとストレージユニットとを有する。
具体的には、ノードN2は、コントローラユニット100aおよびストレージユニット200aを有する。ノードN3は、コントローラユニット100bおよびストレージユニット200bを有する。ノードN4は、コントローラユニット100cおよびストレージユニット200cを有する。ノードN5は、コントローラユニット100dおよびストレージユニット200dを有する。ノードN6は、コントローラユニット100eおよびストレージユニット200eを有する。ノードN7は、コントローラユニット100fおよびストレージユニット200fを有する。ノードN8は、コントローラユニット100gおよびストレージユニット200gを有する。各コントローラユニットが、SAN50およびLAN60に接続されることになる(図4では、1つのネットワーク線により簡略化して表わしている)。
ここで、第2の実施の形態のストレージシステムにおいて、ノードN1は、アイランド70,70aによって作成された仮想ボリュームを管理するノード(マネージャノードと称することがある)である。
また、ノードN2は、アイランド70内の仮想ボリュームへのアクセスを担当するノード(担当ノードと称することがある)を管理するノード(アイランドマスタと称することがある)である。ノードN5は、アイランド70a内の仮想ボリュームへのアクセスを担当する担当ノードを管理するアイランドマスタである。
ただし、マネージャノードとアイランドマスタとの両方の機能を同一のノードに設けてもよい。更に、マネージャノードやアイランドマスタが担当ノードとして機能することもある。
なお、コントローラユニットは、プロセッサユニットと呼ばれることもある。また、アイランド70は、ノードN1,N2,N3,N4それぞれのストレージユニットを含むので、各ストレージユニットに含まれる複数の記憶装置(記憶装置群)を有しているといえる。アイランド70aは、ノードN5,N6,N7,N8それぞれのストレージユニットを含むので、各ストレージユニットに含まれる複数の記憶装置(記憶装置群)を有しているといえる。
また、同一シェルフ内に属する2つのコントローラユニットを、冗長構成とすることができる。例えば、シェルフSH1において、仮にノードN1が故障したとしても、ノードN2によりノードN1の処理を代替して実行することができる(他のシェルフも同様)。
図5は、コントローラユニットのハードウェア例を示す図である。コントローラユニット100は、プロセッサ101、RAM102、NVRAM(Non-Volatile RAM)103、CA(Channel Adapter)104、NA(Network Adapter)105、DI(Drive Interface)106および媒体リーダ107を有する。他のノードが有するコントローラユニットも、コントローラユニット100と同様のハードウェアにより実現できる。
プロセッサ101は、コントローラユニット100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、コントローラユニット100の主記憶装置である。RAM102は、プロセッサ101に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
NVRAM103は、コントローラユニット100の補助記憶装置である。NVRAM103は、例えば、不揮発性の半導体メモリである。NVRAM103は、ファームウェアのプログラムや各種データなどを記憶する。
CA104は、SAN50を介して業務サーバ30と通信するためのインタフェースである。ここで、一例として、CA104は、iSCSI(Internet Small Computer System Interface)のインタフェースであるものとする。この場合、SAN50をIP−SANと呼ぶことができる。ただし、CA104として、ファイバチャネル(FC:Fibre Channel)などの他のインタフェースを用いてもよい。
NA105は、LAN60を介して管理サーバ40と通信するためのインタフェースである。例えば、NA105として、イーサネット(登録商標)のインタフェースを用いることができる。
DI106は、ストレージユニット200と通信するためのインタフェースである。例えば、DI106として、SAS(Serial Attached SCSI)などのインタフェースを用いることができる。DI106は、コントローラユニット100aとの冗長構成を実現するために、ストレージユニット200aと接続されてもよい。
媒体リーダ107は、可搬型の記録媒体81に記録されたプログラムやデータを読み取る装置である。記録媒体81として、例えば、フラッシュメモリなどの不揮発性の半導体メモリを使用することができる。媒体リーダ107は、例えば、プロセッサ101からの命令に従って、記録媒体81から読み取ったプログラムやデータを、RAM102やNVRAM103に格納することもできる。
なお、コントローラユニット100は、コントローラユニット100aとシェルフSH1内での通信を行うための所定のインタフェースを有し、当該インタフェースを介してコントローラユニット100aとも接続されている。
ストレージユニット200は、IOM(Input/Output Module)201および記憶装置群210を有する。他のノードが有するストレージユニットも、ストレージユニット200と同様のハードウェアにより実現できる。IOM201は、コントローラユニット100からの指示に応じてHDD211,212,213,214に対するデータアクセスを行う。記憶装置群210は、HDDの集合である。記憶装置群210は、HDD211,212,213,214を含む。
図6は、業務サーバのハードウェア例を示す図である。業務サーバ30のハードウェア例を示す図である。業務サーバ30は、プロセッサ31、RAM32、HDD33、画像信号処理部34、入力信号処理部35、媒体リーダ36および接続アダプタ37を有する。各ユニットは業務サーバ30のバスに接続されている。管理サーバ40も業務サーバ30と同様のユニットを用いて実現できる。
プロセッサ31は、業務サーバ30の情報処理を制御する。プロセッサ31は、マルチプロセッサであってもよい。プロセッサ31は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ31は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM32は、業務サーバ30の主記憶装置である。RAM32は、プロセッサ31に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM32は、プロセッサ31による処理に用いる各種データを記憶する。
HDD33は、業務サーバ30の補助記憶装置である。HDD33は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD33は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。業務サーバ30は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部34は、プロセッサ31からの命令に従って、業務サーバ30に接続されたディスプレイ82に画像を出力する。ディスプレイ82としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部35は、業務サーバ30に接続された入力デバイス83から入力信号を取得し、プロセッサ31に出力する。入力デバイス83としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ36は、記録媒体84に記録されたプログラムやデータを読み取る装置である。記録媒体84として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体84として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ36は、例えば、プロセッサ31からの命令に従って、記録媒体84から読み取ったプログラムやデータをRAM32またはHDD33に格納する。
接続アダプタ37は、SAN50を介して仮想ボリュームにアクセスするためのインタフェースである。接続アダプタ37は、例えばiSCSIアダプタである。ただし、SAN50にFCを用いる場合、接続アダプタ37としてFCアダプタを利用できる。なお、業務サーバ30は、LAN60に接続して、他のコンピュータと通信するための通信インタフェースを有してもよい。
図7は、コントローラユニットの機能例を示す図である。前述のように、ノードN1は、マネージャノードとして機能する。また、ノードN2,N5は、アイランドマスタとして機能する。このため、コントローラユニット100は、マネージャノードの機能(マネージャ機能)を有する点が他のコントローラユニットと異なる。また、コントローラユニット100a,100dは、アイランドマスタの機能(マスタ機能)を有する点が他のコントローラユニットと異なる。
コントローラユニット100は、記憶部110、IO(Input/Output)処理部120およびマネージャ処理部130を有する。記憶部110は、RAM102またはNVRAM103に確保された記憶領域として実現され得る。IO処理部120およびマネージャ処理部130は、RAM102に記憶されたプログラムをプロセッサ101が実行することで実現され得る。
記憶部110は、仮想ボリュームと当該仮想ボリュームが属するアイランドとの対応関係の情報を記憶する。また、記憶部110は、各アイランドマスタのアドレス情報を記憶する。第2の実施の形態の例では、SAN50は、IP−SANなので、SAN50の通信に用いるアドレスはIPアドレスである。SAN50がFCを用いたFC−SANであれば、アドレスとしてWWN(World Wide Name)を用いることができる。
また、LAN60側(主にノード間の通信に用いられる)で通信に用いるアドレスはIPアドレスである。また、記憶部110は、仮想ボリュームの論理アドレスとストレージユニット200に含まれるHDD上の物理アドレスとの対応関係の情報(変換テーブルと称する)を記憶する。
IO処理部120は、記憶部110に記憶された変換テーブルに基づいて、ストレージユニット200へのアクセスを実行する。例えば、IO処理部120は、受け付けたアクセス要求(単にIOと称することがある)を分割し、要求されたデータをストレージユニット200から読み出したり、ストレージユニット200にデータを書き込んだりする。
マネージャ処理部130は、コントローラユニット100のマネージャ機能を担う。具体的には、マネージャ処理部130は、業務サーバ30に対して、仮想ボリュームを提供する。このため、業務サーバ30は、第2の実施の形態の仮想ボリュームへアクセスするために、まずは、コントローラユニット100に対してログイン要求を行うことになる。業務サーバ30は、ログイン要求において、仮想ボリュームの識別情報およびアクセスを開始する論理ブロックアドレス(LBA:Logical Block Address)をマネージャ処理部130に対して指定できる。すると、マネージャ処理部130は、該当の仮想ボリュームへアクセスするためのアイランドマスタへ代理でログイン要求を送り、アイランドマスタにより、業務サーバ30のアクセス先を該当の仮想ボリュームの担当ノードにリダイレクトさせる。
また、マネージャ処理部130は、管理サーバ40の指示に応じて、アイランド70,70a内の仮想ボリュームの作成を制御する。マネージャ処理部130は、アイランド70,70aに跨った仮想ボリュームを作成することも可能である。マネージャ処理部130は、新たな仮想ボリュームを作成する際に、仮想ボリュームと、当該仮想ボリュームが属するアイランドとの対応関係の情報を作成し、記憶部110に格納する。
コントローラユニット100aは、記憶部110a、IO処理部120aおよびマスタ処理部140を有する。記憶部110aは、コントローラユニット100aが備えるRAMまたはNVRAMに確保された記憶領域として実現され得る。IO処理部120aおよびマスタ処理部140は、コントローラユニット100aが備えるRAMに記憶されたプログラムを、コントローラユニット100aが備えるプロセッサが実行することで実現され得る。
ここで、記憶部110aおよびIO処理部120aの機能は、記憶部110およびIO処理部120と同様であるため説明を省略する。ただし、記憶部110aは、仮想ボリュームと仮想ボリュームへのアクセスを担当する担当ノードとの対応関係の情報(アイランドマスタの処理に用いられる情報)を記憶し、マネージャ処理部130の処理に用いられる情報を記憶しなくてよい点が記憶部110と異なる。
マスタ処理部140は、コントローラユニット100aのマスタ機能を担う。具体的には、マスタ処理部140は、業務サーバ30から受け付けるログイン要求(マネージャ処理部130から転送されたもの)に対して、仮想ボリュームに対するアクセスを担当するノードのIPアドレスを、業務サーバ30に提供する。すると、業務サーバ30は、提供されたIPアドレスのノードとコネクションを確立して、当該ノードに対して、IOを発行できる。マスタ処理部140は、他のコントローラユニットから、ログイン要求(マネージャ処理部130から転送されたもの)を受け付け、仮想ボリュームに対するアクセスを担当するノードのIPアドレスを、当該他のコントローラユニットに、提供することもある。
なお、アイランドマスタとして機能するコントローラユニット100dも、コントローラユニット100aと同様の機能を有する。
コントローラユニット100bは、記憶部110bおよびIO処理部120bを有する。記憶部110bは、コントローラユニット100bが備えるRAMまたはNVRAMに確保された記憶領域として実現され得る。IO処理部120bは、コントローラユニット100bが備えるRAMに記憶されたプログラムを、コントローラユニット100bが備えるプロセッサが実行することで実現され得る。
ここで、記憶部110bおよびIO処理部120bの機能は、記憶部110およびIO処理部120と同様であるため説明を省略する。ただし、記憶部110bは、マネージャ処理部130やマスタ処理部140の処理に用いられる情報を記憶しなくてよい点が記憶部110,110aと異なる。また、コントローラユニット100c,100e,100f,100gも、コントローラユニット100bと同様の機能を有する。更に、各コントローラユニットは、マネージャノードとして機能するコントローラユニット100のIPアドレスを記憶している。
図8は、仮想ボリュームの例を示す図である。第2の実施の形態のストレージシステムでは、例えば、HDD211,212などの物理ディスクにおける物理的な記憶領域を、1MB(メガバイト)単位のセグメントと呼ばれる領域に区切る。物理セグメントPSは、当該セグメントの1つである。仮想ボリュームは、HDD211,212,・・・から、複数のセグメントが割り当てられた論理的な記憶領域である。仮想ボリュームに割り当てられた物理セグメントに対応するセグメントを、論理セグメントと称する。論理セグメントLSは、物理セグメントPSに対応する論理セグメントである。
このように、1つの論理的なボリュームに対して、複数の物理的な記憶装置の記憶領域を割り当てる手法を、ストライピングと呼ぶことがある。ここで、複数の論理セグメントを纏めた1単位を、セグメントグループと呼ぶこととする。また、複数のセグメントグループを纏めた1単位を、セグメントセットと呼ぶこととする。
図9は、仮想ボリュームに対する論理セグメントの割り当て例を示す図である。仮想ボリュームは、複数のセグメントセットを含む。仮想ボリュームの複製を作成して、冗長させることもできる(ミラーリング)。
セグメントセットは、m個(mは2以上の整数)のセグメントグループを含む。例えば、1つのセグメントグループは、1つのHDDに属する。この場合、ストライプ幅はmである。また、セグメントグループは、n個(nは2以上の整数)の論理セグメントを含む。1論理セグメント(1物理セグメント)のサイズ(ストリップサイズ)を1MBとすれば、1つのセグメントグループのサイズは、1MB×n個=nMBである。すると、1つのセグメントセットのサイズは、nMB×m個=nmMBである。
図10は、仮想ボリュームに対するIOの処理例を示す図である。図10では、一例として、IO処理部120の処理を説明するが、他のIO処理部も同様の処理を実行する。まず、IO処理部120は、IOを受信すると、仮想ボリュームのミラー数でIOを複製する(ミラーリングしていなければ複製しなくてよい)。IO処理部120は、そのうちの1つのIOに対して、次の処理を実行する。ただし、複製した他のIOも、ミラー先ボリュームに対して同様に処理される。
IO処理部120は、IOで指定されたアクセス対象の論理アドレス範囲(IO範囲)が、何れのセグメントセットに属するかを特定する。IO処理部120は、IO範囲がセグメントセット境界を含む場合は、IOを分割する。ここで、「IOを分割する」とは、ある論理アドレス範囲を指定したIOに対して、当該論理アドレス範囲よりも細かい複数の論理アドレス範囲に分けた複数のIOを生成することを意味する。特に、IO範囲がセグメントセット境界を含む場合のIO分割は、論理アドレス範囲のセグメントセット境界に相当する論理アドレスで、当該論理アドレス範囲を分割する。セグメントセット境界が1つであれば、2つに分割されるし、セグメントセット境界が2つであれば、3つに分割されることになる。ただし、IO範囲がセグメントセット境界を含まなければ、IOを分割しなくてよい。
IO処理部120は、分割後の1つのIOについて、ストリップサイズ(論理セグメントのサイズであり、上記の例によれば1MB)単位にIOを更に分割する。IO処理部120は、セグメントグループのミラー数でストリップサイズに分割した後のIOを複製する。ただし、セグメントグループ単位でのミラーリングを行っていない場合は、当該複製を行わなくてよい。IO処理部120は、HDD211,212,・・・に対して、ストリップサイズに分割した後のIOを実行する。IO処理部120は、各IOに対応する物理アドレスを、変換テーブルによって特定する。IO処理部120は、セグメントグループ単位にミラーリング(あるセグメントグループのデータを別のセグメントグループに複製してもつ)を行っている場合には、ストリップサイズに分割した後に複製したIOについても、同様にIOを実行する。
このようにして、IO処理部120は、IO分割を行って、HDD211,212,・・・に対するIOを実行する。上記の例では、仮想ボリュームの階層およびセグメントグループの階層でミラーリングを行うケースも含めて説明したが、何れか一方のみでミラーリングされてもよいし、両方のミラーリングを行わなくてもよい。
図11は、仮想ボリュームの作成例を示す図である。前述のように、第2の実施の形態のストレージシステムでは、アイランド70,70aそれぞれにおいて独立した仮想ボリュームV1を作成することもできるし、アイランド70,70aを跨いだ仮想ボリュームV2を作成することもできる。
具体的には、仮想ボリュームV1は、アイランド70に属するノードN1,N2,N3,N4(すなわち、ストレージユニット200,200a,200b,200c)が備える各HDDの物理セグメントによって作成された仮想ボリュームである。
仮想ボリュームV2は、アイランド70に属するノードN1,N2,N3,N4(すなわち、ストレージユニット200,200a,200b,200c)が備える各HDD、および、アイランド70aに属するノードN5,N6,N7,N8(すなわち、ストレージユニット200d,200e,200f,200g)が備える各HDDの物理セグメントによって作成された仮想ボリュームである。
ここで、管理サーバ40は、マネージャノードであるノードN1に対して、仮想ボリュームの作成指示を行える。ノードN1は、管理サーバ40の指示に応じて、アイランドマスタであるノードN2やノードN5に仮想ボリュームの作成を指示する。ノードN1,N2,N3,N4,N5,N6,N7,N8は、仮想ボリュームの作成に応じて、自ノードが管理する変換テーブルなどの管理情報を更新する。
管理情報では、各ノードや各論理ボリュームなどの識別情報に対応付けて、各種の情報が管理される。第2の実施の形態の例では、次のように識別情報が付与されているものとする。
アイランド70の識別情報は“i1”である。アイランド70aの識別情報は“i2”である。
ノードN1の識別情報は“node1”である。ノードN2の識別情報は“node2”である。ノードN3の識別情報は“node3”である。ノードN4の識別情報は“node4”である。ノードN5の識別情報は“node5”である。ノードN6の識別情報は“node6”である。ノードN7の識別情報は“node7”である。ノードN8の識別情報は“node8”である。
仮想ボリュームV1の識別情報は“Volume1”である。仮想ボリュームV2の識別情報は“Volume2”である。
図12は、各ノードが保持するテーブルの例を示す図である。ノードの役割によって、保持するテーブルが異なる。マネージャノードであるノードN1は、アイランドマスタアドレス管理テーブルT11および仮想ボリューム管理テーブルT12を有する。
アイランドマスタアドレス管理テーブルT11は、アイランドマスタのIPアドレスを管理するためのテーブルである。仮想ボリューム管理テーブルT12は、仮想ボリュームにおける論理アドレス範囲と、当該論理アドレス範囲を担当するアイランドとの対応関係を管理するためのテーブルである。
アイランド70のアイランドマスタであるノードN2は、ノードアドレス管理テーブルT21および担当ノード管理テーブルT31を有する。ノードアドレス管理テーブルT21は、アイランド70に属するノードのIPアドレスを管理するためのテーブルである。担当ノード管理テーブルT31は、アイランド70に属する仮想ボリュームと、当該仮想ボリュームに対するアクセスを担当する担当ノードとの対応関係を管理するためのテーブルである。
仮想ボリュームV1に対するアクセスを担当するノードN3は、変換テーブルT41を有する。変換テーブルT41は、仮想ボリュームV1(“Volume1”)の変換テーブルである。なお、変換テーブルT41は、コントローラユニット100bが備えるRAMおよびストレージユニット200bの所定のHDD内に格納される。変換テーブルT41は、コントローラユニット100bと同一シェルフであるシェルフSH2に属するコントローラユニット100cが備えるRAMおよびストレージユニット200cの所定のHDD内にも格納されてもよい。仮にコントローラユニット100bが故障しても、コントローラユニット100cによりアクセスを代替して実行可能になるからである。
仮想ボリュームV2(アイランド70に属する部分)に対するアクセスを担当するノードN4は、変換テーブルT42を有する。変換テーブルT42は、仮想ボリュームV2(“Volume2”)の変換テーブル(ただし、アイランド70に属する部分)である。変換テーブルT42は、コントローラユニット100cが備えるRAMおよびストレージユニット200cの所定のHDDに格納される。変換テーブルT42も、変換テーブルT41と同様に、コントローラユニット100bおよびストレージユニット200b上に変換テーブルT42の複製が配置される。ただし、同一シェルフSH2内に限らず、同一アイランド70内に属するコントローラユニット100,100a,100b,100cおよびストレージユニット200,200a,200b,200cに、変換テーブルT41,T42の複製が配置されてもよい。
アイランド70aのアイランドマスタであるノードN5は、ノードアドレス管理テーブルT22および担当ノード管理テーブルT32を有する。ノードアドレス管理テーブルT22は、アイランド70aに属するノードのIPアドレスを管理するためのテーブルである。担当ノード管理テーブルT32は、アイランド70aに属する仮想ボリュームと、当該仮想ボリュームに対するアクセスを担当する担当ノードとの対応関係を管理するためのテーブルである。
仮想ボリュームV2(アイランド70aに属する部分)に対するアクセスを担当するノードN6は、変換テーブルT43を有する。変換テーブルT43は、仮想ボリュームV2(“Volume2”)の変換テーブル(ただし、アイランド70aに属する部分)である。なお、同一シェルフSH3に属するノードN5、または、同一アイランド70aに属するノードN5,N7,N8の各コントローラユニットおよび各ストレージユニットに、変換テーブルT43の複製が配置されてもよい。
図13は、アイランドマスタアドレス管理テーブルの例を示す図である。アイランドマスタアドレス管理テーブルT11は、記憶部110に格納される。アイランドマスタアドレス管理テーブルT11は、アイランド、ホスト側IPアドレスおよびノード間通信用IPアドレスの項目を含む。
アイランドの項目には、アイランドの識別情報が登録される。ホスト側IPアドレスの項目には、SAN50(IP−SAN)側の通信に用いられるIPアドレスが登録される。ノード間通信用IPアドレスの項目には、LAN60側の通信に用いられるIPアドレスが登録される。
例えば、アイランドマスタアドレス管理テーブルT11には、アイランドが“i1”、ホスト側IPアドレスが“192.168.0.2”、ノード間通信用IPアドレスが“192.168.10.2”という情報が登録される。これは、識別情報“i1”に対応するアイランド70のアイランドマスタであるノードN2のSAN50側通信用のIPアドレスが“192.168.0.2”であり、LAN60側通信用のIPアドレスが“192.168.10.2”であることを示す。なお、何れのIPアドレスもサブネットマスクは“/24”とする(以下、同様)。
また、アイランドマスタアドレス管理テーブルT11には、アイランドが“i2”、ホスト側IPアドレスが“192.168.0.5”、ノード間通信用IPアドレスが“192.168.10.5”という情報が登録される。これは、識別情報“i2”に対応するアイランド70aのアイランドマスタであるノードN5のSAN50側通信用のIPアドレスが“192.168.0.5”であり、LAN60側通信用のIPアドレスが“192.168.10.5”であることを示す。
図14は、仮想ボリューム管理テーブルの例を示す図である。仮想ボリューム管理テーブルT12は、記憶部110に格納される。仮想ボリューム管理テーブルT12は、仮想ボリューム、セグメントセット、論理セグメント、LBAおよびアイランドの項目を含む。
仮想ボリュームの項目には、仮想ボリュームの識別情報が登録される。セグメントセットの項目には、セグメントセットの識別番号が登録される。論理セグメントの項目には、仮想ボリュームの当該セグメントセットにおける論理セグメントの識別番号が登録される。LBAの項目には、仮想ボリュームの各論理セグメントに対応するLBAの範囲が登録される。アイランドの項目には、アイランドの識別情報が登録される。
例えば、仮想ボリューム管理テーブルT12には、仮想ボリュームが“Volume12”、セグメントセットが“1”、論理セグメントが“1”、LBAが“0−255”、アイランドが“i1”という情報が登録される。これは、仮想ボリュームV1(“Volume1”)の識別番号“1”のセグメントセットに含まれる識別番号“1”の論理セグメントが、“0”から“255”までのLBA範囲であり、当該LBA範囲がアイランド70(“i1”)に属することを示す。
仮想ボリューム管理テーブルT12によれば、仮想ボリュームV1は、アイランド70のHDDによって作成されるため、何れのLBA範囲もアイランド70に属している。一方、仮想ボリュームV2(“Volume2”)は、アイランド70,70aのHDDによって作成されるため、一部のLBA範囲がアイランド70に属し、他の一部のLBA範囲がアイランド70aに属している。
例えば、仮想ボリュームV2の識別番号“1”のセグメントセットにおける識別番号“1”の論理セグメントに相当するLBA範囲“0−255”、および、同識別番号“2”の論理セグメントに相当するLBA範囲“256−511”は、アイランド70(“i1”)に属する。
一方、仮想ボリュームV2の識別番号“1”のセグメントセットにおける識別番号“3”の論理セグメントに相当するLBA範囲“512−767”、および、同識別番号“4”の論理セグメントに相当するLBA範囲“768−1023”は、アイランド70a(“i2”)に属する。
図15は、ノードアドレス管理テーブルの例を示す図である。図15(A)は、ノードアドレス管理テーブルT21を例示している。ノードアドレス管理テーブルT21は、記憶部110aに格納される。図15(B)は、ノードアドレス管理テーブルT22を例示している。ノードアドレス管理テーブルT22は、ノードN5が有する記憶部に格納される。ノードアドレス管理テーブルT21,T22は、ノード、ホスト側IPアドレスおよびノード間通信用IPアドレスの項目を含む。
ノードの項目には、ノードID(IDentifier)が登録される。ホスト側IPアドレスの項目には、SAN50(IP−SAN)側の通信に用いられるIPアドレスが登録される。ノード間通信用IPアドレスの項目には、LAN60側の通信に用いられるIPアドレスが登録される。
例えば、ノードアドレス管理テーブルT21には、ノードが“node1”、ホスト側IPアドレスが“192.168.0.1”、ノード間通信用IPアドレスが“192.168.10.1”という情報が登録される。これは、ノードID“node1”に対応するノードN1のSAN50側通信用のIPアドレスが“192.168.0.1”であり、LAN60側通信用のIPアドレスが“192.168.10.1”であることを示す。ノードアドレス管理テーブルT21は、アイランド70内のノードのアドレスを管理するための情報なので、ノードN1,N2,N3,N4に関するアドレス情報が登録されることになる。
また、例えば、ノードアドレス管理テーブルT22には、ノードが“node5”、ホスト側IPアドレスが“192.168.0.5”、ノード間通信用IPアドレスが“192.168.10.5”という情報が登録される。これは、ノードID“node5”に対応するノードN5のSAN50側通信用のIPアドレスが“192.168.0.5”であり、LAN60側通信用のIPアドレスが“192.168.10.5”であることを示す。ノードアドレス管理テーブルT22は、アイランド70a内のノードのアドレスを管理するための情報なので、ノードN5,N6,N7,N8に関するアドレス情報が登録されることになる。
図16は、担当ノード管理テーブルの例を示す図である。図16(A)は、担当ノード管理テーブルT31を例示している。担当ノード管理テーブルT31は、記憶部110aに格納される。図16(B)は、担当ノード管理テーブルT32を例示している。担当ノード管理テーブルT32は、ノードN5が有する記憶部に格納される。担当ノード管理テーブルT31,T32は、仮想ボリュームおよびノードの項目を含む。
仮想ボリュームの項目には、仮想ボリュームの識別情報が登録される。ノードの項目には、ノードIDが登録される。
例えば、担当ノード管理テーブルT31には、仮想ボリュームが“Volume1”、ノードが“node3”という情報が登録される。これは、仮想ボリュームV1(“Volume1”)のアクセスを担当する担当ノードが、ノードN3(“node3”)であることを示す。
また、例えば、担当ノード管理テーブルT31には、仮想ボリュームが“Volume2”、ノードが“node4”という情報が登録される。これは、仮想ボリュームV2(Volume2)のアクセス(ただし、アイランド70に属する部分)を担当する担当ノードが、ノードN4(“node4”)であることを示す。
更に、例えば、担当ノード管理テーブルT32には、仮想ボリュームが“Volume2”、ノードが“node6”という情報が登録される。これは、仮想ボリュームV2(ただし、アイランド70aに属する部分)のアクセスを担当する担当ノードが、ノードN6(“node6”)であることを示す。
図17は、変換テーブルの例(その1)を示す図である。変換テーブルT41は、記憶部110bに格納される。変換テーブルT41は、仮想ボリュームV1におけるLBAと物理アドレスとの変換に用いられるテーブルである。変換テーブルT41は、仮想ボリューム、セグメントセット、論理セグメント、ストレージ、LUN(Logical Unit Number)および物理セグメントの項目を含む。
仮想ボリュームの項目には、仮想ボリュームの識別情報が登録される。セグメントセットの項目には、セグメントセットの識別番号が登録される。論理セグメントの項目には、論理セグメントの識別番号が登録される。ストレージの項目には、該当の論理セグメントに対応する物理セグメントを有するHDDを備えたノードのノードIDが登録される。LUNの項目には、当該ノードにおけるLUNが登録される。物理セグメントの項目には、物理セグメントの識別番号が登録される。
例えば、変換テーブルT41には、仮想ボリュームが“Volume1”、セグメントセットが“1”、論理セグメントが“1”、ストレージが“node1”、LUNが“LUN1”、物理セグメントが“0”という情報が登録される。これは、仮想ボリュームV1(“Volume1”)の識別番号“1”のセグメントセットの識別番号“1”の論理セグメント(LBA範囲“0−255”)が、ノードN1(“node1”)のLUN“LUN1”の識別番号“0”の物理セグメントに対応することを示す。
また、変換テーブルT41には、仮想ボリュームが“Volume1”、セグメントセットが“1”、論理セグメントが“2”、ストレージが“node1”、LUNが“LUN2”、物理セグメントが“0”という情報が登録される。これは、仮想ボリュームV1(“Volume1”)の識別番号“1”のセグメントセットの識別番号“2”の論理セグメント(LBA範囲“256−511”)が、ノードN1(“node1”)のLUN“LUN2”の識別番号“0”の物理セグメントに対応することを示す。
このように、変換テーブルT41には、仮想ボリュームV1の各論理セグメント(LBA範囲)に対して、ノードN1,N2,N3,N4が備えるHDD内の物理セグメントが対応付けられる。
ここで、例えば、物理セグメントの識別番号と各HDDおよびHDD上の物理アドレスとの対応情報は、各コントローラユニットによって予め保持されている。このため、物理セグメントの識別番号が判明すれば、各コントローラユニットは、当該対応情報に基づいて、該当の物理セグメントにアクセス可能である。その際、各コントローラユニットは、仮想ボリュームの指定されたLBA範囲に対して、物理セグメント上の物理アドレス範囲への変換を行うことができる。
図18は、変換テーブルの例(その2)を示す図である。図18(A)は、変換テーブルT42を例示している。変換テーブルT42は、ノードN4が有する記憶部に格納される。図18(B)は、変換テーブルT43を例示している。変換テーブルT43は、ノードN6が有する記憶部に格納される。変換テーブルT42,T43は、仮想ボリュームV2におけるLBAと物理アドレスとの変換に用いられるテーブルである。変換テーブルT42,T43は、仮想ボリューム、セグメントセット、論理セグメント、ストレージ、LUNおよび物理セグメントの項目を含む。ここで、変換テーブルT42,T43の各項目に登録される情報は、変換テーブルT41に含まれる同名の項目に登録される情報と同様である。
例えば、変換テーブルT42には、仮想ボリュームが“Volume2”、セグメントセットが“1”、論理セグメントが“1”、ストレージが“node3”、LUNが“LUN1”、物理セグメントが“0”という情報が登録される。これは、仮想ボリュームV2(“Volume2”)の識別番号“1”のセグメントセットの識別番号“1”の論理セグメント(LBA範囲“0−255”)が、ノードN3(“node3”)のLUN“LUN1”の識別番号“0”の物理セグメントに対応することを示す。
また、変換テーブルT42には、仮想ボリュームが“Volume2”、セグメントセットが“1”、論理セグメントが“2”、ストレージが“node4”、LUNが“LUN2”、物理セグメントが“0”という情報が登録される。これは、仮想ボリュームV2(“Volume2”)の識別番号“1”のセグメントセットの識別番号“2”の論理セグメント(LBA範囲“256−511”)が、ノードN4(“node4”)のLUN1(“LUN2”)の識別番号“0”の物理セグメントに対応することを示す。
また、例えば、変換テーブルT43には、仮想ボリュームが“Volume2”、セグメントセットが“1”、論理セグメントが“3”、ストレージが“node5”、LUNが“LUN1”、物理セグメントが“0”という情報が登録される。これは、仮想ボリュームV2(“Volume2”)の識別番号“1”のセグメントセットの識別番号“3”の論理セグメント(LBA範囲“512−767”)が、ノードN5(“node5”)のLUN“LUN1”の識別番号“0”の物理セグメントに対応することを示す。
また、変換テーブルT43には、仮想ボリュームが“Volume2”、セグメントセットが“1”、論理セグメントが“4”、ストレージが“node6”、LUNが“LUN1”、物理セグメントが“0”という情報が登録される。これは、仮想ボリュームV2(“Volume2”)の識別番号“1”のセグメントセットの識別番号“4”の論理セグメント(LBA範囲“768−1023”)が、ノードN6(“node6”)のLUN“LUN1”の識別番号“0”の物理セグメントに対応することを示す。
このように、仮想ボリュームV2は、アイランド70,70aに跨って作成されるため、変換テーブルも、アイランド70の担当分(変換テーブルT42)と、アイランド70aの担当分(変換テーブルT43)とが分けて作成されることになる。
図19は、ログイン要求に含まれる情報の例を示す図である。ログイン要求R1は、複数の項目と、各項目に対する値を含む。例えば、ログイン要求R1は、アクセスボリューム、アクセス開始LBAおよびアクセス元IPアドレスの項目を含む。
アクセスボリュームは、アクセス先の仮想ボリュームの識別情報である。アクセス開始LBAは、当該仮想ボリュームに対してアクセスを開始するLBAである。アクセス元IPアドレスは、ログイン要求R1の発行元装置のIPアドレスである。
例えば、ログイン要求R1は、アクセスボリュームが“Volume1”、アクセス開始LBAが“256”、アクセス元IPアドレスが“192.168.0.200”という情報を含む。これは、ログイン要求R1が、仮想ボリュームV1(“Volume1”)のLBA“256”を起点としたアクセスを行うためのログインの要求であり、アクセス元装置のIPアドレスが“192.168.0.200”であることを示す。なお、IPアドレス“192.168.0.200”は、業務サーバ30のIPアドレスである。
ここで、ログイン要求R1は、アクセス元装置(業務サーバ30であることもあるし、ストレージシステムの何れかのノードであることもある)からマネージャノードであるノードN1に対して送信される、仮想ボリュームとの接続要求であるということができる。
以下、第2の実施の形態のストレージシステムにおける処理手順を説明する。まず、仮想ボリュームの作成手順を説明する。仮想ボリュームを作成する方法には、2つのパターンがある。第1には、1つのアイランド内に1つの仮想ボリュームV1を作成する場合である(図20)。第2には、2つのアイランドに跨って1つの仮想ボリュームV2を作成する場合である(図21)。
図20は、仮想ボリューム作成の第1のシーケンス例を示す図である。以下、図20に示す処理をステップ番号に沿って説明する。なお、以下の説明では、ノードN1がマネージャノードであること、および、ノードN2がアイランドマスタであることが分かり易いように、マネージャノードN1およびアイランドマスタN2のように明記する。
(S11)管理サーバ40は、仮想ボリュームV1の作成命令(ボリューム作成命令)を、マネージャノードN1に送信する。ボリューム作成命令は、新規に作成する仮想ボリュームV1のサイズを含む。ボリューム作成命令は、仮想ボリュームV1におけるミラーリングの有無やストライプ幅などの指定を含んでもよい。また、ボリューム作成命令は、仮想ボリュームV1を作成するアイランドを指定する情報を含んでもよい。マネージャノードN1は、管理サーバ40からボリューム作成命令を受信する。
(S12)マネージャノードN1は、ボリューム作成命令に応じて、新規に仮想ボリュームV1を作成するアイランドを選択する。例えば、マネージャノードN1は、現時点で、仮想ボリュームとしての使用率が最も低いアイランドを仮想ボリュームの作成先として選択することが考えられる。あるいは、ボリューム作成命令に、作成先のアイランドを指定する情報が含まれる場合には、マネージャノードN1は、ボリューム作成命令で指定されたアイランドを仮想ボリュームV1の作成先として選択してもよい。マネージャノードN1は、アイランド70を仮想ボリュームV1の作成先として選択する。
(S13)マネージャノードN1は、ステップS12で選択したアイランド70のアイランドマスタN2に対して、仮想ボリュームV1の作成命令(ボリューム作成命令)を送信する。ここで、マネージャノードN1は、アイランドマスタN2のIPアドレス(ボリューム作成命令の宛先IPアドレス)を、アイランドマスタアドレス管理テーブルT11から取得する。アイランドマスタN2は、マネージャノードN1からボリューム作成命令を受信する。
(S14)アイランドマスタN2は、ストレージユニット200,200a,200b,200cが備える各HDDの物理セグメントを仮想ボリュームV1に割り当てる。アイランドマスタN2は、割り当て結果に基づいて変換テーブルT41を作成する。
(S15)アイランドマスタN2は、仮想ボリュームV1の担当ノードをノードN3と決定する。例えば、アイランドマスタN2は、アクセスを担当する仮想ボリュームの数が最も少ないノードを、仮想ボリュームV1の担当ノードとすることが考えられる。あるいは、アイランドマスタN2は、ラウンドロビンによって順番に仮想ボリュームに対する担当ノードの割り当てを行ってもよい。アイランドマスタN2は、変換テーブルの更新を指示する変換テーブル更新命令をノードN3に送信する。変換テーブル更新命令は、ステップS14で作成された変換テーブルT41を含む。ノードN3は、アイランドマスタN2から変換テーブル更新命令を受信する。
(S16)ノードN3は、アイランドマスタN2から受信した変換テーブルT41を、記憶部110bに登録する(変換テーブル更新)。ノードN3は、変換テーブル更新の完了通知をアイランドマスタN2に送信する。アイランドマスタN2は、変換テーブル更新の完了通知をノードN3から受信する。
(S17)アイランドマスタN2は、iSCSIターゲット(単にターゲットという)の作成命令をノードN3に送信する。ノードN3は、ターゲットの作成命令をアイランドマスタN2から受信する。
(S18)ノードN3は、アイランド70に属するノードN1,N2,N3,N4を制御して、仮想ボリュームV1に対応するターゲットを作成する。ノードN3は、ターゲット作成の完了通知をアイランドマスタN2に送信する。アイランドマスタN2は、ターゲット作成の完了通知をノードN3から受信する。
(S19)アイランドマスタN2は、仮想ボリュームV1の作成が完了したことを示すボリューム作成完了通知をマネージャノードN1に送信する。マネージャノードN1は、ボリューム作成完了通知を、アイランドマスタN2から受信する。
(S20)マネージャノードN1は、新たに作成された仮想ボリュームV1に関する情報を、仮想ボリューム管理テーブルT12に登録する(仮想ボリューム管理テーブルT12を更新する)。
(S21)マネージャノードN1は、ボリューム作成完了通知を管理サーバ40に送信する。管理サーバ40は、ボリューム作成完了通知をマネージャノードN1から受信する。こうして、業務サーバ30により、仮想ボリュームV1に相当する記憶デバイスをマウントして利用することが可能となる。
図21は、仮想ボリューム作成の第2のシーケンス例を示す図である。以下、図21に示す処理をステップ番号に沿って説明する。
(S31)管理サーバ40は、仮想ボリュームV2の作成命令(ボリューム作成命令)を、マネージャノードN1に送信する。ボリューム作成命令は、新規に作成する仮想ボリュームV2のサイズを含む。ボリューム作成命令は、仮想ボリュームV2におけるミラーリングの有無やストライプ幅などの指定を含んでもよい。また、ボリューム作成命令は、仮想ボリュームV2を作成するアイランドの組を指定する情報を含んでもよい。マネージャノードN1は、ボリューム作成命令を管理サーバ40から受信する。
(S32)マネージャノードN1は、ボリューム作成命令に応じて、新規に仮想ボリュームV2を作成するアイランドを選択する。例えば、マネージャノードN1は、使用率が最も低いアイランドのみでは要求されたボリュームサイズを実現できない場合に、使用率が最も低いアイランドと使用率が2番目に低いアイランドとを、仮想ボリュームV2の作成先として選択することが考えられる。あるいは、ボリューム作成命令に、作成先のアイランドの組を指定する情報が含まれる場合には、マネージャノードN1は、ボリューム作成命令で指定されたアイランドの組を仮想ボリュームV2の作成先として選択してもよい。マネージャノードN1は、アイランド70,70aを仮想ボリュームV2の作成先として選択する。
(S33)マネージャノードN1は、ステップS32で選択したアイランド70のアイランドマスタN2に対して、仮想ボリュームV2の第1部分(アイランド70に属する部分)の作成命令(ボリューム作成命令)を送信する。ここで、マネージャノードN1は、アイランドマスタN2のIPアドレス(ボリューム作成命令の宛先IPアドレス)を、アイランドマスタアドレス管理テーブルT11から取得する。アイランドマスタN2は、マネージャノードN1からボリューム作成命令を受信する。
(S34)アイランドマスタN2は、ストレージユニット200,200a,200b,200cが備える各HDDの物理セグメントを仮想ボリュームV2の第1部分に割り当てる。アイランドマスタN2は、割り当て結果に基づいて変換テーブルT42を作成する。
(S35)アイランドマスタN2は、仮想ボリュームV2の第1部分の担当ノードをノードN4と決定する。担当ノードの決定方法は、図20のステップS15で例示した方法と同様である。アイランドマスタN2は、変換テーブルの更新を指示する変換テーブル更新命令をノードN4に送信する。変換テーブル更新命令は、ステップS34で作成された変換テーブルT42を含む。ノードN4は、アイランドマスタN2から変換テーブル更新命令を受信する。
(S36)ノードN4は、アイランドマスタN2から受信した変換テーブルT42を、ノードN4が備える記憶部に登録する(変換テーブル更新)。ノードN4は、変換テーブル更新の完了通知をアイランドマスタN2に送信する。アイランドマスタN2は、変換テーブル更新の完了通知をノードN4から受信する。
(S37)アイランドマスタN2は、ターゲットの作成命令をノードN4に送信する。ノードN4は、ターゲットの作成命令をアイランドマスタN2から受信する。
(S38)ノードN4は、アイランド70に属するノードN1,N2,N3,N4を制御して、仮想ボリュームV2の第1部分に対応するターゲットを作成する。ノードN4は、ターゲット作成の完了通知をアイランドマスタN2に送信する。アイランドマスタN2は、ターゲット作成の完了通知をノードN4から受信する。
(S39)アイランドマスタN2は、仮想ボリュームV2の第1部分の作成が完了したことを示すボリューム作成完了通知をマネージャノードN1に送信する。マネージャノードN1は、ボリューム作成完了通知を、アイランドマスタN2から受信する。
(S40)マネージャノードN1は、仮想ボリューム管理テーブルT12に新たに作成された仮想ボリュームV2の第1部分に関する情報を登録する(仮想ボリューム管理テーブルT12を更新する)。
(S41)マネージャノードN1は、ステップS32で選択したアイランド70aのアイランドマスタN5に対して、仮想ボリュームV2の第2部分(アイランド70aに属する部分)の作成命令(ボリューム作成命令)を送信する。ここで、マネージャノードN1は、アイランドマスタN5のIPアドレス(ボリューム作成命令の宛先IPアドレス)を、アイランドマスタアドレス管理テーブルT11から取得する。アイランドマスタN5は、マネージャノードN1からボリューム作成命令を受信する。
(S42)アイランドマスタN5は、ストレージユニット200,200a,200b,200cが備える各HDDの物理セグメントを仮想ボリュームV2の第2部分に割り当てる。アイランドマスタN5は、割り当て結果に基づいて変換テーブルT43を作成する。
(S43)アイランドマスタN5は、仮想ボリュームV2の第2部分の担当ノードをノードN6と決定する。担当ノードの決定方法は、図20のステップS15で例示した方法と同様である。アイランドマスタN5は、変換テーブルの更新を指示する変換テーブル更新命令をノードN6に送信する。変換テーブル更新命令は、ステップS42で作成された変換テーブルT43を含む。ノードN6は、アイランドマスタN5から変換テーブル更新命令を受信する。
(S44)ノードN6は、アイランドマスタN5から受信した変換テーブルT43を、ノードN6が備える記憶部に登録する(変換テーブル更新)。ノードN6は、変換テーブル更新の完了通知をアイランドマスタN5に送信する。アイランドマスタN5は、変換テーブル更新の完了通知をノードN6から受信する。
(S45)アイランドマスタN5は、ターゲットの作成命令をノードN6に送信する。ノードN6は、ターゲットの作成命令をアイランドマスタN5から受信する。
(S46)ノードN6は、アイランド70aに属するノードN5,N6,N7,N8を制御して、仮想ボリュームV2の第2部分に対応するターゲットを作成する。ノードN6は、ターゲット作成の完了通知をアイランドマスタN5に送信する。アイランドマスタN5は、ターゲット作成の完了通知をノードN6から受信する。
(S47)アイランドマスタN5は、仮想ボリュームV2の第2部分の作成が完了したことを示すボリューム作成完了通知をマネージャノードN1に送信する。マネージャノードN1は、ボリューム作成完了通知を、アイランドマスタN5から受信する。
(S48)マネージャノードN1は、新たに作成された仮想ボリュームV2の第2部分に関する情報を、仮想ボリューム管理テーブルT12に登録する(仮想ボリューム管理テーブルT12を更新する)。
(S49)マネージャノードN1は、ボリューム作成完了通知を管理サーバ40に送信する。管理サーバ40は、ボリューム作成完了通知をマネージャノードN1から受信する。こうして、業務サーバ30により、仮想ボリュームV2に相当する記憶デバイスをマウントして利用することが可能となる。
ここで、図20,21におけるマネージャノードN1の処理は、マネージャ処理部130によって実行される。また、図20,21におけるアイランドマスタN3の処理は、マスタ処理部140によって実行される。更に、図21におけるアイランドマスタN5の処理は、コントローラユニット100dが備えるマスタ処理部によって実行される。それ以外の処理は、各コントローラユニットのIO処理部によって実行されると考えてよい。
なお、図21の例では、2つのアイランドを跨いで仮想ボリュームV2を作成する方法を例示したが、3以上のアイランドを跨ぐ仮想ボリュームを作成するときも、同様の方法で作成することができる。具体的には、マネージャノードN1は、ステップS32において、3以上のアイランドを選択する。そして、マネージャノードN1は、ステップS48の後、ステップS49の前に、更に他のアイランドマスタに対してボリューム作成命令を送信し、他のアイランドマスタに仮想ボリュームの残り部分に相当するターゲットを作成させる。
次に、仮想ボリュームに対するIO処理の手順を説明する。IO処理の方法にも、2つのパターンがある。第1には、IOが1つのアイランド内に収まる場合である(図22)。第2には、IOが2つ以上のアイランドに跨る場合である(図23〜26)。
図22は、IO処理の第1のシーケンス例を示す図である。以下、図22に示す処理をステップ番号に沿って説明する。
(S51)業務サーバ30は、マネージャノードN1に対してログイン要求を送信する。例えば、ログイン要求は、アクセス先の仮想ボリュームV1、アクセスを開始する仮想ボリュームV1のLBAおよび業務サーバ30のIPアドレスを含むとする。マネージャノードN1は、業務サーバ30からログイン要求を受信する。
(S52)マネージャノードN1は、ステップS51で受信したログイン要求に含まれる情報と、仮想ボリューム管理テーブルT12とに基づいて、アイランドを選択する。例えば、ログイン要求で、仮想ボリュームV1、アクセスを開始するLBA“256”が指定されている場合、仮想ボリューム管理テーブルT12によれば、アイランド70(識別情報“i1”)を選択することになる。マネージャノードN1は、アイランドマスタアドレス管理テーブルT11を参照して、アイランド70のアイランドマスタN2のIPアドレス(ログイン要求の転送先アドレス)を取得する。
(S53)マネージャノードN1は、アイランドマスタN2にログイン要求を転送する。アイランドマスタN2は、マネージャノードN1により転送されたログイン要求を受信する。
(S54)アイランドマスタN2は、担当ノード管理テーブルT31を参照して、ログイン要求に含まれるアクセス先の仮想ボリュームV1の担当ノードがノードN3であることを特定する。アイランドマスタN2は、ノードアドレス管理テーブルT21を参照して、ノードN3のIPアドレスを取得する。アイランドマスタN2は、ログイン要求に含まれる業務サーバ30のIPアドレスを宛先として、ノードN3のIPアドレスを送信する(業務サーバ30に対する物理アドレスの提供)。業務サーバ30は、ノードN3のIPアドレスをアイランドマスタN2から受信する。こうして、業務サーバ30は、仮想ボリュームV1にアクセスするためのコネクションの確立先のIPアドレス(ノードN3のIPアドレス)を解決する。
(S55)業務サーバ30は、iSCSIのプロトコルに従った所定のログイン要求をノードN3に対して送信する。ノードN3は、業務サーバ30からログイン要求を受信する。
(S56)ノードN3は、ステップS55で受信したログイン要求による認証に成功すると、業務サーバ30との間でコネクションを確立する。
(S57)業務サーバ30は、ノードN3に対して、仮想ボリュームV1に対するIO要求を発行する。例えば、IO要求は、仮想ボリュームV1、仮想ボリュームV1におけるアクセス先のLBA範囲などの情報を含み得る。
(S58)ノードN3は、変換テーブルT41に基づいて、論理セグメント単位にIOを分割する。具体的な方法は、図10で例示した通りである。ここで、ノードN3は、仮想ボリュームV1におけるLBA範囲と論理セグメントとの対応関係の情報を保持しており、アクセス先のLBA範囲が指定されることで、論理セグメント単位にIOを分割できる。ただし、アクセス先のLBA範囲が1つの論理セグメントに収まる場合には、IOを分割しなくてよい(以降の処理でも同様)。
(S59)ノードN3は、変換テーブルT41に基づいて、論理セグメント単位のIOを、物理セグメント単位のIOに変換する(IOのアクセス先を、各HDD上の物理アドレスに変換する)。
(S60)ノードN3は、ノードN1,N2,N3,N4を制御してIOを実行する。例えば、IOがデータの読み出しであれば、該当のデータの読み出しを実行する。また、IOがデータの書き込みであれば、該当のデータの書き込みを実行する。
(S61)ノードN3は、IOの完了通知を業務サーバ30に送信する。完了通知は、データの読み出しであれば、読み出したデータを含む。また、完了通知は、IOがデータの書き込みであれば、書き込み完了の通知を含む。業務サーバ30は、ノードN3から完了通知を受信する。
図23は、IO処理の第2のシーケンス例を示す図である。以下、図23に示す処理をステップ番号に沿って説明する。
(S71)業務サーバ30は、マネージャノードN1に対してログイン要求を送信する。例えば、ログイン要求は、アクセス先の仮想ボリュームV2、アクセスを開始する仮想ボリュームV2のLBAおよび業務サーバ30のIPアドレスを含むとする。マネージャノードN1は、業務サーバ30からログイン要求を受信する。
(S72)マネージャノードN1は、ステップS71で受信したログイン要求に含まれる情報と、仮想ボリューム管理テーブルT12とに基づいて、アイランドを選択する。例えば、ログイン要求で、仮想ボリュームV2、アクセスを開始するLBA“256”が指定されている場合、仮想ボリューム管理テーブルT12によれば、アイランド70(識別情報“i1”)を選択することになる。マネージャノードN1は、アイランドマスタアドレス管理テーブルT11を参照して、アイランド70のアイランドマスタN2のIPアドレス(ログイン要求の転送先アドレス)を取得する。
(S73)マネージャノードN1は、アイランドマスタN2にログイン要求を転送する。アイランドマスタN2は、マネージャノードN1により転送されたログイン要求を受信する。
(S74)アイランドマスタN2は、担当ノード管理テーブルT31を参照して、ログイン要求に含まれるアクセス先の仮想ボリュームV2の担当ノードがノードN4であることを特定する。アイランドマスタN2は、ノードアドレス管理テーブルT21を参照して、ノードN4のIPアドレスを取得する。アイランドマスタN2は、ログイン要求に含まれる業務サーバ30のIPアドレスを宛先として、ノードN4のIPアドレスを送信する(業務サーバ30に対する物理アドレスの提供)。業務サーバ30は、ノードN4のIPアドレスをアイランドマスタN2から受信する。こうして、業務サーバ30は、仮想ボリュームV2にアクセスするためのコネクションの確立先のIPアドレス(ノードN4のIPアドレス)を解決する。
(S75)業務サーバ30は、iSCSIのプロトコルに従った所定のログイン要求をノードN4に対して送信する。ノードN4は、業務サーバ30からログイン要求を受信する。業務サーバ30は、ターゲットであるノードN4に対し、イニシエータとして機能する。
(S76)ノードN4は、ステップS75で受信したログイン要求による認証に成功すると、業務サーバ30との間でコネクションを確立する。
(S77)業務サーバ30は、ノードN4に対して、仮想ボリュームV2に対するIO要求を発行する。例えば、IO要求は、仮想ボリュームV2、仮想ボリュームV2におけるアクセス先のLBA範囲などの情報を含み得る。
(S78)ノードN4は、変換テーブルT42に基づいて、論理セグメント単位にIOを分割する。具体的な方法は、図10で例示した通りである。ここで、ノードN4は、仮想ボリュームV2の第1部分(アイランド70に属する部分)におけるLBA範囲と論理セグメントとの対応関係を保持しており、アクセス先のLBA範囲が指定されることで、論理セグメント単位にIOを分割できる。ただし、ノードN4は、仮想ボリュームV2の第2部分(アイランド70aに属する部分)におけるLBA範囲については、ノードN4では処理できないことになる(仮想ボリュームの第2部分については、ステップS79,S80でも処理されない)。具体的には、業務サーバ30からのIOで、仮想ボリュームV2のLBA範囲“256−767”が指定されたとする。この場合、LBA範囲“256−511”(第1部分。仮想ボリュームV2のセグメントセット“1”、論理セグメント“2”に相当)は、ノードN4で処理できるが、LBA範囲“512−767”(第2部分。仮想ボリュームV2のセグメントセット“1”、論理セグメント“3”に相当)は、ノードN4では処理できない。
(S79)ノードN4は、変換テーブルT42に基づいて、論理セグメント単位のIOを、物理セグメント単位のIOに変換する(IOのアクセス先を、各HDD上の物理アドレスに変換する)。
(S80)ノードN4は、ノードN1,N2,N3,N4を制御してIOを実行する。例えば、IOがデータの読み出しであれば、該当のデータの読み出しを実行する。また、IOがデータの書き込みであれば、該当のデータの書き込みを実行する。ノードN4は、業務サーバ30から要求されたIOに未実行の部分があるため、IO結果(アクセス結果)をRAMなどの記憶装置に保持する。
(S81)ノードN4は、仮想ボリュームV2の未アクセス部分に対するIOを行うために、マネージャノードN1にログイン要求を送信する。当該ログイン要求は、例えば、アクセス先の仮想ボリュームとして仮想ボリュームV2、未アクセス部分に相当する仮想ボリュームV2のLBA範囲におけるアクセス開始LBA、送信元IPアドレスとしてノードN4のIPアドレスを含む。マネージャノードN1は、ノードN4からログイン要求を受信する。
(S82)マネージャノードN1は、ステップS81で受信したログイン要求に含まれる情報と、仮想ボリューム管理テーブルT12とに基づいて、アイランドを選択する。例えば、ログイン要求で、仮想ボリュームV2、アクセスを開始するLBA“512”が指定されている場合、仮想ボリューム管理テーブルT12によれば、アイランド70a(識別情報“i2”)を選択することになる。マネージャノードN1は、アイランドマスタアドレス管理テーブルT11を参照して、アイランド70aのアイランドマスタN5のIPアドレス(ログイン要求の転送先アドレス)を取得する。
(S83)マネージャノードN1は、アイランドマスタN5にログイン要求を転送する。アイランドマスタN5は、マネージャノードN1により転送されたログイン要求を受信する。
(S84)アイランドマスタN5は、担当ノード管理テーブルT32を参照して、ログイン要求に含まれるアクセス先の仮想ボリュームV2の担当ノードがノードN6であることを特定する。アイランドマスタN5は、ノードアドレス管理テーブルT22を参照して、ノードN6のIPアドレスを取得する。アイランドマスタN5は、ログイン要求に含まれるノードN4のIPアドレスを宛先として、ノードN6のIPアドレスを送信する(ノードN4に対する物理アドレスの提供)。ノードN4は、ノードN6のIPアドレスをアイランドマスタN5から受信する。こうして、ノードN4は、仮想ボリュームV2の未アクセス部分にアクセスするためのコネクションの確立先のIPアドレス(ノードN6のIPアドレス)を解決する。
(S85)ノードN4は、iSCSIのプロトコルに従った所定のログイン要求をノードN6に対して送信する。ノードN6は、ノードN4からログイン要求を受信する。ノードN4は、ターゲットであるノードN6に対し、イニシエータとして機能する。
(S86)ノードN4は、ステップS75で受信したログイン要求による認証に成功すると、業務サーバ30との間でコネクションを確立する。
(S87)ノードN4は、ノードN6に対して、仮想ボリュームV2に対するIO要求を発行する。例えば、IO要求は、仮想ボリュームV2、仮想ボリュームV2におけるアクセス先のLBA範囲などの情報を含み得る。
図24は、IO処理の第2のシーケンス例(続き)を示す図である。以下、図24に示す処理をステップ番号に沿って説明する。
(S88)ノードN6は、変換テーブルT43に基づいて、論理セグメント単位にIOを分割する。具体的な方法は、図10で例示した通りである。ここで、ノードN6は、仮想ボリュームV2の第2部分(アイランド70aに属する部分)におけるLBA範囲と論理セグメントとの対応関係を保持しており、アクセス先のLBA範囲が指定されることで、論理セグメント単位にIOを分割できる。
(S89)ノードN6は、変換テーブルT43に基づいて、論理セグメント単位のIOを、物理セグメント単位のIOに変換する(IOのアクセス先を、各HDD上の物理アドレスに変換する)。
(S90)ノードN6は、ノードN5,N6,N7,N8を制御してIOを実行する。例えば、IOがデータの読み出しであれば、該当のデータの読み出しを実行する。また、IOがデータの書き込みであれば、該当のデータの書き込みを実行する。
(S91)ノードN6は、IOの完了通知をノードN4に送信する。完了通知は、データの読み出しであれば、読み出したデータを含む。また、完了通知は、IOがデータの書き込みであれば、書き込み完了の通知を含む。ノードN4は、ノードN6から完了通知を受信する。
(S92)ノードN4は、ノードN6から受信した完了通知に含まれるIO結果と、ノードN4がステップS80において保持したIO結果とをマージして、業務サーバ30からのIO要求に対するIO結果を生成し、業務サーバ30に送信する。例えば、IOがデータの読み出しであれば、ステップS80で読み出した部分と、ステップS91で取得した部分とをマージしたデータを、読み出しデータとして業務サーバ30に送信する。また、IOがデータの書き込みであれば、ステップS80で書き込んだ部分の書き込み結果と、ステップS91で取得した書き込み結果とをマージした書き込み結果(例えば、全ての書き込みが成功した、何れかの部分で書き込みが失敗したなど)を、業務サーバ30に送信する。
こうして、各ノードは、業務サーバ30から受け付けた仮想ボリュームV2に対するアクセス要求を適切に処理することができる。
なお、ステップS90におけるIO実行でも、未アクセス部分が生じることもある(アクセス先が3以上のアイランドに跨る場合)。その場合、ノードN6は、次のようにIO処理を実行する。以下の説明では、3つ目のアイランドのアイランドマスタをアイランドマスタN9とする。また、3つ目のアイランドにおいて、アクセス対象の仮想ボリュームに対するアクセスを担当する担当ノードをノードN10とする。
図25は、IO処理の第3のシーケンス例を示す図である。以下、図25に示す処理をステップ番号に沿って説明する。ここで、図25では、図24のステップS90のIO処理で未アクセス部分が発生した場合を例示する。すなわち、アイランド70,70aを含む3つのアイランドに跨る仮想ボリュームに対するIOが業務サーバ30により要求されたケースである。当該仮想ボリュームのアイランド70,70aそれぞれに属する部分に対するIO処理の手順は、図23,24で説明した方法と同様であるため、ステップS90までの説明を省略する。ただし、図25の手順では、ステップS90において、ノードN6は、ノードN6によるアクセス済の部分をRAMなどに保持する。
(S100)ノードN6は、アクセス対象の仮想ボリュームの未アクセス部分に対するIOを行うために、マネージャノードN1にログイン要求を送信する。当該ログイン要求は、例えば、アクセス先の仮想ボリューム、および、未アクセス部分に相当する当該仮想ボリュームのLBA範囲におけるアクセス開始LBA、送信元IPアドレスとしてノードN6のIPアドレスを含む。マネージャノードN1は、ノードN6からログイン要求を受信する。
(S101)マネージャノードN1は、ステップS100で受信したログイン要求に含まれる情報と、仮想ボリューム管理テーブルT12とに基づいて、3つ目のアイランドを選択する。マネージャノードN1は、アイランドマスタアドレス管理テーブルT11を参照して、選択したアイランドのアイランドマスタN9のIPアドレス(ログイン要求の転送先アドレス)を取得する。
(S102)マネージャノードN1は、アイランドマスタN9にログイン要求を転送する。アイランドマスタN9は、マネージャノードN1により転送されたログイン要求を受信する。
(S103)アイランドマスタN9は、担当ノード管理テーブルを参照して、ログイン要求に含まれるアクセス先の仮想ボリュームの担当ノードがノードN10であることを特定する。アイランドマスタN9は、ノードアドレス管理テーブルを参照して、ノードN10のIPアドレスを取得する。アイランドマスタN9は、ログイン要求に含まれるノードN6のIPアドレスを宛先として、ノードN10のIPアドレスを送信する(ノードN6に対する物理アドレスの提供)。ノードN6は、ノードN10のIPアドレスをアイランドマスタN9から受信する。こうして、ノードN6は、仮想ボリュームの未アクセス部分にアクセスするためのコネクションの確立先のIPアドレス(ノードN10のIPアドレス)を解決する。
(S104)ノードN6は、iSCSIのプロトコルに従った所定のログイン要求をノードN10に対して送信する。ノードN10は、ノードN6からログイン要求を受信する。ノードN6は、ターゲットであるノードN10に対し、イニシエータとして機能する。
(S105)ノードN10は、ステップS104で受信したログイン要求による認証に成功すると、業務サーバ30との間でコネクションを確立する。
(S106)ノードN6は、ノードN10に対して、仮想ボリュームに対するIO要求を発行する。例えば、IO要求は、仮想ボリューム、当該仮想ボリュームにおけるアクセス先のLBA範囲などの情報を含み得る。
図26は、IO処理の第3のシーケンス例(続き)を示す図である。以下、図26に示す処理をステップ番号に沿って説明する。
(S107)ノードN10は、ノードN10が保持する変換テーブルに基づいて、論理セグメント単位にIOを分割する。
(S108)ノードN10は、変換テーブルに基づいて、論理セグメント単位のIOを、物理セグメント単位のIOに変換する(IOのアクセス先を、各HDD上の物理アドレスに変換する)。
(S109)ノードN10は、ノードN10が属するアイランドの各ノードを制御してIOを実行する。例えば、IOがデータの読み出しであれば、該当のデータの読み出しを実行する。また、IOがデータの書き込みであれば、該当のデータの書き込みを実行する。
(S110)ノードN10は、IOの完了通知をノードN6に送信する。完了通知は、データの読み出しであれば、読み出したデータを含む。また、完了通知は、IOがデータの書き込みであれば、書き込み完了の通知を含む。ノードN6は、ノードN10から完了通知を受信する。
(S111)ノードN6は、ノードN10から受信した完了通知に含まれるIO結果と、ノードN6が保持しているIO結果とをマージして、ノードN4からのIO要求に対する完了通知を生成し、ノードN4に送信する。
(S112)ノードN4は、ノードN6から受信した完了通知に含まれるIO結果と、ノードN4が保持しているIO結果とをマージして、業務サーバ30からのIO要求に対するIO結果を生成し、業務サーバ30に送信する。
このようにして、各ノードは、自アイランド内ではIO要求に、仮想ボリュームの未アクセス部分が存在する場合には、次のアイランドに属する担当ノードに、当該未アクセス部分へのアクセスを順次依頼する。そして、最終的なIO結果をノードN4により作成して、業務サーバ30に応答する。このように、各ノードは、3以上のアイランドに跨る仮想ボリュームに対するアクセスも適切に処理することができる。
ここで、図22〜26におけるマネージャノードN1の処理は、マネージャ処理部130によって実行される。また、図22〜26における各アイランドマスタの処理は、各アイランドマスタのコントローラユニットが備えるマスタ処理部によって実行される。それ以外の処理は、各コントローラユニットのIO処理部によって実行されると考えてよい。
次に、図22のステップS58〜ステップS61、ステップS78(図23)〜ステップS92(図24)、および、ステップS88(図25)〜ステップS112(図26)に相当する処理を実現するための、各ノードによるIO処理の手順を説明する。
図27は、担当ノードによるIO処理例を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。以下では、IO処理部120の処理手順を主に説明するが、他のノードのIO処理部も同様の処理を実行する。
(ST1)IO処理部120は、IO要求を受信する。
(ST2)IO処理部120は、自ノード(この場合、ノードN1)で保持する変換テーブルに基づいて、IOを論理セグメント単位に分割し、アクセス先の論理セグメントを物理セグメント(各HDD上のアドレス)に変換する。
(ST3)IO処理部120は、IOを実行し、IO結果を取得する。
(ST4)IO処理部120は、ステップST1で受信したIO要求に対して、未アクセス部分があるか否かを判定する。未アクセス部分がない場合、処理をステップST5に進める。未アクセス部分がある場合、処理をステップST6に進める。
(ST5)IO処理部120は、ステップST3で取得したIO結果を、IO要求元に応答する。そして、処理を終了する。
(ST6)IO処理部120は、ステップST3で取得したアクセス済部分のIO結果を記憶部110に格納して保持する。
(ST7)IO処理部120は、次のアクセス先ノードのIPアドレスを解決する。具体的には、IO処理部120は、マネージャ処理部130に仮想ボリュームの識別情報と、仮想ボリュームにおける未アクセス部分の先頭LBAと、自ノード(ノードN1)のIPアドレスとを通知する。すると、マネージャ処理部130は、アイランドマスタアドレス管理テーブルT11および仮想ボリューム管理テーブルT12に基づいて、該当の仮想ボリュームの該当の先頭LBAにアクセスするためのアイランドマスタへ、ログイン要求を転送する。そして、IO処理部120は、当該アイランドマスタから、ログイン要求に対する応答として、次のアクセス先ノードのIPアドレスを受信する。
(ST8)IO処理部120は、次のアクセス先ノード(以下、単にアクセス先ノードと称する)に対して、iSCSIなどのプロトコルに応じたログインを実行し、アクセス先ノードとコネクションを確立する。なお、プロトコルによっては(例えば、FCを用いる場合など)、ログインを実行しなくてよい場合もある。
(ST9)IO処理部120は、確立したコネクションを用いて、アクセス先ノードにIOを発行する。
(ST10)IO処理部120は、ステップST9で発行したIOに対して、アクセス先ノードからIO結果を受信する。
(ST11)IO処理部120は、ステップST6で保持したIO結果と、ステップST10で受信したIO結果をマージして、ステップST1で受信したIO要求の要求元に、当該IO結果を含むアクセスの完了通知を応答する。
このようにして、各ノードのコントローラユニットは、仮想ボリュームに対するIOを実行する。特に、IOが複数のアイランドに跨る場合、各コントローラユニットが内部的に連携して、IOを実行する。このため、業務サーバ30から受け付けるIO要求が複数のアイランドに跨る場合にも、IOを中断させることなく適切に処理することができる。
また、第2の実施の形態のストレージシステムでは、各シェルフの起動時間を短縮できるという利点もある。具体的には、まず、アイランドマネージャとなるノードN1を含むシェルフSH1を起動し、その後、ノードN1により、アイランド単位に並列で各シェルフや仮想ボリュームを提供するためのサービスを開始させる。並列に起動処理を行えるため、サービスの起動までの時間を短縮することができる。
また、例えば、スケールアウト後などに行われるデータの再配置(既存ストレージユニットから新規ストレージユニットへのデータの移動)についてもアイランド単位に実行できる。アイランド内に閉じてデータ再配置を行うことにより、データの移動量を少なく抑えることができ、アイランド構成を用いずにストレージユニット全体でデータの再配置を行う場合よりも、データ再配置の時間を短くすることができる。
更に、第2の実施オン形態のストレージシステムでは、障害の影響を局所化できるという利点もある。例えば、あるノードが使用不可になったとしても、その影響を受ける範囲をアイランド内に限定できる。このため、アイランド構成を用いない場合に比べて、ユーザの業務への影響を小さくすることができる。
なお、第1の実施の形態の情報処理は、制御部11b,12bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、各コントローラユニットが備えるプロセッサにプログラムを実行させることで実現できる。ストレージ制御装置11,12や各コントローラユニットは、プロセッサとRAMとを含むコンピュータを備えていると考えてもよい。プログラムは、コンピュータ読み取り可能な記録媒体81,84に記録できる。
例えば、プログラムを記録した記録媒体81,84を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体81,84に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やNVRAM103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
10 ストレージシステム
11,12 ストレージ制御装置
11a,12a 記憶部
11b,12b 制御部
13,14 記憶装置群
13a,13b,13c,14a,14b,14c 記憶装置
L1,L2,L3 論理領域
L1a,L2a 部分

Claims (7)

  1. 複数の記憶装置群を備え、前記複数の記憶装置群それぞれを用いてデータを格納する論理領域を作成可能なストレージシステムであって、
    第1の記憶装置群に属する第1の論理領域と第2の記憶装置群に属する第2の論理領域とを合わせた第3の論理領域に対する第1のアクセス要求をアクセス元装置から受信すると、前記第3の論理領域のうち前記第1の論理領域に含まれる部分にアクセスして第1のアクセス結果を取得し、前記第3の論理領域の未アクセス部分に対する第2のアクセス要求を送信し、前記第2のアクセス要求に応じた第2のアクセス結果を受信すると、前記第1および前記第2のアクセス結果に基づいて前記第1のアクセス要求に対する第3のアクセス結果を前記アクセス元装置に送信する第1のストレージ制御装置と、
    前記第2のアクセス要求を受信すると、前記第3の論理領域のうち前記第2の論理領域に含まれる部分にアクセスし、前記第2のアクセス結果を前記第1のストレージ制御装置に送信する第2のストレージ制御装置と、
    を有するストレージシステム。
  2. 前記第3の論理領域の前記未アクセス部分に対するアクセスを担当する前記第2のストレージ制御装置のアドレスを管理する第3のストレージ制御装置を更に有し、
    前記第1のストレージ制御装置は、前記第2のアクセス要求の送信先のアドレスを前記第3のストレージ制御装置から取得する、請求項1記載のストレージシステム。
  3. 前記第3の論理領域におけるアクセス先の論理ブロックを指定した接続要求に応じて、前記第3のストレージ制御装置に前記接続要求を転送する第4のストレージ制御装置を更に有し、
    前記第1のストレージ制御装置は、前記第2のアクセス要求の送信先の前記アドレスを把握するために、前記第4のストレージ制御装置に前記接続要求を送信し、前記接続要求に対する応答として、前記第3のストレージ制御装置から第2のアクセス要求の送信先の前記アドレスを取得する、請求項2記載のストレージシステム。
  4. 前記第1のストレージ制御装置は、前記第2のストレージ制御装置に前記第2のアクセス要求を送信する前に、前記第2のストレージ制御装置とのコネクションを確立する、請求項1乃至3の何れか1項に記載のストレージシステム。
  5. 前記第2のストレージ制御装置は、前記第3の論理領域の未アクセス部分に対する第3のアクセス要求を第5のストレージ制御装置に送信し、前記第5のストレージ制御装置から前記第3のアクセス要求に応じた第4のアクセス結果を受信すると、前記第4のアクセス結果を含む前記第2のアクセス結果を前記第1のストレージ制御装置に送信する、請求項1乃至4の何れか1項に記載のストレージシステム。
  6. 複数の記憶装置群を備えており前記複数の記憶装置群それぞれを用いてデータを格納する論理領域を作成可能なストレージシステムに用いられ、第1の記憶装置群に属する第1の論理領域に対するアクセスを制御するストレージ制御装置であって、
    前記第1の論理領域と第2の記憶装置群に属する第2の論理領域とを合わせた第3の論理領域に対する第1のアクセス要求をアクセス元装置から受信すると、前記第3の論理領域のうち前記第1の論理領域に含まれる部分にアクセスして第1のアクセス結果を取得し、前記第3の論理領域の未アクセス部分に対する第2のアクセス要求を他のストレージ制御装置に送信し、前記第2のアクセス要求に応じた第2のアクセス結果を受信すると、前記第1および前記第2のアクセス結果に基づいて前記第1のアクセス要求に対する第3のアクセス結果を前記アクセス元装置に送信する制御部、
    を有するストレージ制御装置。
  7. 複数の記憶装置群を備え、前記複数の記憶装置群それぞれを用いてデータを格納する論理領域を作成可能なストレージシステムで実行されるアクセス制御方法であって、
    第1のストレージ制御装置が、第1の記憶装置群に属する第1の論理領域と第2の記憶装置群に属する第2の論理領域とを合わせた第3の論理領域に対する第1のアクセス要求をアクセス元装置から受信すると、前記第3の論理領域のうち前記第1の論理領域に含まれる部分にアクセスして第1のアクセス結果を取得し、前記第3の論理領域の未アクセス部分に対する第2のアクセス要求を送信し、
    第2のストレージ制御装置が、前記第2のアクセス要求を受信すると、前記第3の論理領域のうち前記第2の論理領域に含まれる部分にアクセスして前記第2のアクセス要求に応じた第2のアクセス結果を前記第1のストレージ制御装置に送信し、
    前記第1のストレージ制御装置が、前記第2のアクセス結果を受信すると、前記第1および前記第2のアクセス結果に基づいて前記第1のアクセス要求に対する第3のアクセス結果を前記アクセス元装置に送信する、
    アクセス制御方法。
JP2015180599A 2015-09-14 2015-09-14 ストレージシステム、ストレージ制御装置およびアクセス制御方法 Pending JP2017058736A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015180599A JP2017058736A (ja) 2015-09-14 2015-09-14 ストレージシステム、ストレージ制御装置およびアクセス制御方法
US15/257,950 US20170075631A1 (en) 2015-09-14 2016-09-07 Storage system, storage control device, and access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015180599A JP2017058736A (ja) 2015-09-14 2015-09-14 ストレージシステム、ストレージ制御装置およびアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2017058736A true JP2017058736A (ja) 2017-03-23

Family

ID=58238392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015180599A Pending JP2017058736A (ja) 2015-09-14 2015-09-14 ストレージシステム、ストレージ制御装置およびアクセス制御方法

Country Status (2)

Country Link
US (1) US20170075631A1 (ja)
JP (1) JP2017058736A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020177501A (ja) * 2019-04-19 2020-10-29 株式会社日立製作所 ストレージシステム、そのドライブ筐体、およびパリティ演算方法。

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11782610B2 (en) * 2020-01-30 2023-10-10 Seagate Technology Llc Write and compare only data storage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071570A1 (en) * 2003-09-26 2005-03-31 Takasugl Robin Alexis Prefetch controller for controlling retrieval of data from a data storage device
JP5111204B2 (ja) * 2008-03-31 2013-01-09 株式会社日立製作所 ストレージシステム及びストレージシステムの管理方法
US8209496B2 (en) * 2008-12-22 2012-06-26 International Business Machines Corporation Method and system for accessing data
WO2011135636A1 (ja) * 2010-04-30 2011-11-03 株式会社日立製作所 計算機システム及びその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020177501A (ja) * 2019-04-19 2020-10-29 株式会社日立製作所 ストレージシステム、そのドライブ筐体、およびパリティ演算方法。

Also Published As

Publication number Publication date
US20170075631A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
US9639277B2 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
JP5057656B2 (ja) ストレージシステム及びストレージシステムの運用方法
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
US9098466B2 (en) Switching between mirrored volumes
US9262087B2 (en) Non-disruptive configuration of a virtualization controller in a data storage system
US8069217B2 (en) System and method for providing access to a shared system image
US9122415B2 (en) Storage system using real data storage area dynamic allocation method
US9058127B2 (en) Data transfer in cluster storage systems
JP2004220450A (ja) ストレージ装置、その導入方法、及びその導入プログラム
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US8972656B1 (en) Managing accesses to active-active mapped logical volumes
JP2008134712A (ja) ファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法
JP5352490B2 (ja) サーバイメージ容量の最適化
US10884622B2 (en) Storage area network having fabric-attached storage drives, SAN agent-executing client devices, and SAN manager that manages logical volume without handling data transfer between client computing device and storage drive that provides drive volume of the logical volume
US9875059B2 (en) Storage system
US10782889B2 (en) Fibre channel scale-out with physical path discovery and volume move
US11392329B1 (en) Uniform host attachment
JP6005446B2 (ja) ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法
JP2004355638A (ja) 計算機システム及びそのデバイスの割り当て方法
JP2017058736A (ja) ストレージシステム、ストレージ制御装置およびアクセス制御方法
US9612769B1 (en) Method and apparatus for automated multi site protection and recovery for cloud storage
JP6398417B2 (ja) ストレージ装置、ストレージシステム及びストレージ制御プログラム
US20170038991A1 (en) Storage management
JP5335848B2 (ja) ストレージシステム及びストレージシステムの運用方法
US11971835B2 (en) Techniques for creating connections in a network fabric