JP2021026436A - 情報処理システム、情報処理装置およびストレージ装置 - Google Patents

情報処理システム、情報処理装置およびストレージ装置 Download PDF

Info

Publication number
JP2021026436A
JP2021026436A JP2019142917A JP2019142917A JP2021026436A JP 2021026436 A JP2021026436 A JP 2021026436A JP 2019142917 A JP2019142917 A JP 2019142917A JP 2019142917 A JP2019142917 A JP 2019142917A JP 2021026436 A JP2021026436 A JP 2021026436A
Authority
JP
Japan
Prior art keywords
storage
storage device
path
volume
identification information
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
JP2019142917A
Other languages
English (en)
Inventor
創 渡邉
So Watanabe
創 渡邉
秀和 河野
Hidekazu Kawano
秀和 河野
正人 河村
Masato Kawamura
正人 河村
信和 桐ヶ谷
Nobukazu Kirigatani
信和 桐ヶ谷
市川 浩
Hiroshi Ichikawa
浩 市川
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 JP2019142917A priority Critical patent/JP2021026436A/ja
Publication of JP2021026436A publication Critical patent/JP2021026436A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】スイッチを削減可能にすること。【解決手段】ストレージ装置10は、記憶装置11と制御装置12とを有する。ストレージ装置20は、記憶装置21と制御装置22とを有する。制御装置22は、記憶装置11の記憶領域R1と同一の識別情報を記憶装置21の記憶領域R2に付与し、記憶領域R1に格納されたデータの複製を、接続パス41を介して記憶領域R2に格納する。情報処理装置30は、ストレージ装置10との間のパス42を当該識別情報に対する主パスとする指示をストレージ装置10から受信し、ストレージ装置20との間のパス43を当該識別情報に対する副パスとする指示をストレージ装置20から受信する。情報処理装置30は、主パスを介して当該識別情報に対応する記憶領域R1へのアクセスを行い、主パスを介したアクセスを行えなくなると、当該識別情報に対する副パスを介して当該識別情報に対応する記憶領域R2へのアクセスを行う。【選択図】図17

Description

本発明は情報処理システム、情報処理装置およびストレージ装置に関する。
データの保存にストレージ装置が利用されている。ストレージ装置は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶デバイスを複数搭載可能であり、大容量の記憶領域を提供する。ストレージ装置は、例えば、記憶デバイスに対するデータの書き込みや読み出しのアクセス制御を行う制御装置を内蔵する。
ここで、データアクセスの可用性向上を図るため、サーバコンピュータなどのホスト装置(情報処理装置)からストレージ装置へのアクセス経路が冗長化されることがある。
例えば、1つのディスクを、1次ノードおよび2次ノードの両方と物理的に接続し、所与のノードによるディスク・アクセス要求を1次ノードに送信するクラスタ化コンピューティング・システムの提案がある。提案のシステムでは、ディスクへのアクセス・パスで障害が検出されると、ディスクへのそれ以降の全てのアクセス要求を2次ノードに送るように全てのノード上の代理ソフトウェアに通知する。
また、複数のコントローラ内の複数ポートの各々に現用系、待機系を設定し、コントローラあるいはポートの故障時には他のコントローラ内のポートに交替する記憶制御装置の提案もある。提案の記憶制御装置では、正常時には、全てのコントローラを稼動させ、コントローラを現用系/待機系に分けて稼働させるよりも高性能化を図る。
更に、ホストシステムと、ホストシステムと通信するドライバと、ドライバと通信する複数のホストバスアダプタとを備えるシステムの提案もある。提案のシステムでは、ホストバスアダプタによりホストシステムと記憶装置との間に複数のデータ伝送路を構成する。ドライバは、オペレーティングシステムに負荷をかけることなく、伝送路間のデータ伝送負荷を調整するように動作する。
特開平8−255122号公報 特開2001−216204号公報 特表2006−504186号公報
2つのストレージ装置のうちの一方のストレージ装置が有するボリュームをアクティブボリュームとし、他方のストレージ装置が有するボリュームをスタンバイボリュームとして、ボリュームの冗長化を図ることがある。この場合、ホスト装置と各ストレージ装置とをスイッチに接続し、スイッチの機能により、障害時におけるボリュームへのパス切り替えを行える。スイッチは、ホスト装置が該当のボリュームにアクセスするための各ストレージ装置のポートに対して、1つのアドレス(例えば、WWN(World Wide Name)など)を割り当て、スタンバイ側のストレージ装置のポートをリンクダウンさせる。すると、該当のアドレスに対応するアクティブボリュームがホスト装置に認識され、ホスト装置からアクティブボリュームへのアクセスを行える。
アクティブ側のストレージ装置へのアクセスに障害が発生すると、スイッチは、アクティブ側のストレージ装置のポートのアドレスを引き継いだ、スタンバイ側のストレージ装置のポートをリンクアップさせる。すると、アクティブボリュームと同じアドレスに対応するスタンバイボリュームがホスト装置に認識され、ホスト装置からスタンバイボリュームへのアクセスを行える。
しかし、上記の方法によるボリュームの冗長化はスイッチの機能に依存するため、システム構成にスイッチを要するという問題がある。
1つの側面では、本発明は、スイッチを削減できる情報処理システム、情報処理装置およびストレージ装置を提供することを目的とする。
1つの態様では、情報処理システムが提供される。この情報処理システムは、第1のストレージ装置と第2のストレージ装置と情報処理装置とを有する。第1のストレージ装置は、第1の記憶領域を含む第1の記憶装置と、第1の記憶領域に所定の識別情報を付与する第1の制御装置と、を備える。第2のストレージ装置は、第2の記憶領域を含む第2の記憶装置と、第1のストレージ装置と接続パスを介して接続され、第2の記憶領域に識別情報と同一の識別情報を付与し、第1の記憶領域に格納されたデータの複製を、接続パスを介して第2の記憶領域に格納する第2の制御装置と、を備える。情報処理装置は、第1のストレージ装置と自装置とを接続する第1のパスを識別情報に対する主パスとする指示を第1のストレージ装置から受信し、第2のストレージ装置と自装置とを接続する第2のパスを識別情報に対する副パスとする指示を第2のストレージ装置から受信し、主パスを介して識別情報に対応する第1の記憶領域へのアクセスを行い、主パスを介したアクセスを行えなくなると、識別情報に対する副パスを特定し、副パスを介して識別情報に対応する第2の記憶領域へのアクセスを行う。
また、1つの態様では、情報処理装置が提供される。この情報処理装置は、第1のポートと第2のポートと処理部とを有する。第1のポートは、第1の記憶領域を含む第1の記憶装置を有する第1のストレージ装置に接続される。第2のポートは、第1のストレージ装置と接続パスを介して接続された第2のストレージ装置であって、第1の記憶領域に格納されたデータの複製が接続パスを介して格納される第2の記憶領域を含む第2の記憶装置を有する第2のストレージ装置に接続される。処理部は、第1のストレージ装置と第1のポートとを接続する第1のパスを第1の記憶領域の識別情報に対する主パスとする指示を第1のストレージ装置から受信し、第2のストレージ装置と第2のポートとを接続する第2のパスを、識別情報と同一である、第2の記憶領域の識別情報に対する副パスとする指示を第2のストレージ装置から受信し、主パスを介して識別情報に対応する第1の記憶領域へのアクセスを行い、主パスを介したアクセスを行えなくなると、識別情報に対する副パスを特定し、副パスを介して識別情報に対応する第2の記憶領域へのアクセスを行う。
また、1つの態様では、ストレージ装置が提供される。このストレージ装置は、第1の記憶装置と制御装置とを有する。第1の記憶装置は、第1の記憶領域を含む。制御装置は、他のストレージ装置が有する第2の記憶装置における第2の記憶領域の識別情報と同一の識別情報を第1の記憶領域に付与し、第2の記憶領域に格納されたデータの複製を、他のストレージ装置と自装置とを接続する接続パスを介して第1の記憶領域に格納し、情報処理装置と自装置とを接続するパスを、識別情報に対する副パスとする指示を情報処理装置に送信し、他のストレージ装置と情報処理装置とを接続する主パスを介して情報処理装置から第2の記憶領域へのアクセスを行えなくなると、副パスを介して、情報処理装置によるアクセスを受け付け、第1の記憶領域へのアクセスを行う。
1つの側面では、スイッチを削減できる。
第1の実施の形態の情報処理システムの例を示す図である。 第2の実施の形態のストレージシステムの例を示す図である。 ストレージ装置のハードウェア例を示す図である。 サーバ装置のハードウェア例を示す図である。 ポート間のケーブルによる接続例を示す図である。 サーバ装置およびストレージ装置のポート間の接続例を示す図である。 ストレージシステムの機能例を示す図である。 クラスタ設定テーブルの例を示す図である。 クラスタ状態テーブルの例を示す図である。 Inquiry変換情報の例を示す図である。 パス管理テーブルの例を示す図である。 ストレージ監視テーブルの例を示す図である。 書き込み時のアクセス例(その1)を示す図である。 書き込み時のアクセス例(その2)を示す図である。 読み出し時のアクセス例(その1)を示す図である。 読み出し時のアクセス例(その2)を示す図である。 主パス障害時の切り替え例を示す図である。 アクティブ側ストレージ装置のダウン時の切り替え例を示す図である。 RECパス障害時の例を示す図である。 ストレージ起動処理の例を示すフローチャートである。 パス報告処理の例を示すフローチャートである。 読み出し処理の例を示すフローチャートである。 相手ストレージ読み出し処理の例を示すフローチャートである。 書き込み処理の例を示すフローチャートである。 相手ストレージ書き込み処理の例を示すフローチャートである。 サーバIO処理の例を示すフローチャートである。 アクティブ/スタンバイ切り替えの例を示すフローチャートである。 ペア監視処理の例を示すフローチャートである。 ストレージシステムの比較例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理システムの例を示す図である。
情報処理システム1は、ストレージ装置10,20および情報処理装置30を有する。ストレージ装置10,20は、それぞれがHDDやSSDなどの記憶装置を複数有し、大容量の記憶領域を情報処理装置30に提供する。例えば、ストレージ装置10は、記憶装置11を有する。記憶装置11は、記憶領域R1を含む。ストレージ装置20は、記憶装置21を有する。記憶装置21は、記憶領域R2を含む。
また、ストレージ装置10は、制御装置12を有する。制御装置12は、記憶装置11に対するデータの書き込みや読み出しのアクセスを制御する。ストレージ装置20は、制御装置22を有する。制御装置22は、記憶装置21に対するデータの書き込みや読み出しのアクセスを制御する。
制御装置12,22は、接続パス41により接続されている。接続パス41は、制御装置12が備えるポートと、制御装置22が備えるポートとを所定のケーブルで接続することで形成される。接続パス41は、ストレージ装置10,20相互の連携に用いられる。
ストレージ装置10,20は、相互に連携することで、ストレージクラスタを構成する。例えば、制御装置12,22は、互いに通信して、記憶領域R1,R2によりボリュームの冗長構成を実現する。一例では、制御装置12,22は、記憶領域R1をアクティブボリューム(運用系ボリューム)、記憶領域R2をスタンバイボリューム(待機系ボリューム)とする。記憶領域R1(アクティブボリューム)においてデータ更新が生じると、当該データ更新は記憶領域R2(スタンバイボリューム)にも適用され、これにより記憶領域R1,R2に記憶されたデータが同期される。
制御装置12と情報処理装置30とは、パス(アクセスパス)42により接続されている。パス42は、制御装置12が備えるポートと情報処理装置30が備えるポートとを所定のケーブルで接続することで形成される。パス42は、情報処理装置30からストレージ装置10へのデータアクセスに用いられる。
制御装置22と情報処理装置30とは、パス43により接続されている。パス43は、制御装置22が備えるポートと情報処理装置30が備えるポートとを所定のケーブルで接続することで形成される。パス43は、情報処理装置30からストレージ装置20へのデータアクセスに用いられる。
情報処理装置30は、記憶部31と処理部32とポート33,34とを有する。記憶部31は、RAM(Random Access Memory)などの揮発性記憶装置、またはHDDやSSDなどの不揮発性記憶装置である。処理部32は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などのプロセッサである。
記憶部31は、ストレージ装置10,20が提供する記憶領域に対する冗長パス(パス42,43)に関する情報を記憶する。処理部32は、記憶部31に記憶された情報に基づいて、ストレージ装置10,20に格納されたデータにアクセスする。ポート33,34は、ストレージ装置10,20と接続するための通信ポートである。例えば、ポート33は、制御装置12とケーブルで接続される(制御装置12も接続用のポートを有するが図示を省略している)。ポート34は、制御装置22とケーブルで接続される(制御装置22も接続用のポートを有するが図示を省略している)。
情報処理システム1では、情報処理装置30からストレージ装置10,20へのデータアクセスに用いられるパスが次のように制御される。
制御装置12は、アクティブボリュームである記憶領域R1に対して、識別情報「ID_a」(ID:IDentifier)を付与する。制御装置12は、記憶領域R1の識別情報「ID_a」を、接続パス41を介してストレージ装置20に送信する。ここで、記憶領域R1に対して付与される識別情報は、例えば、SCSI(Small Computer System Interface)におけるInquiry情報でもよい。Inquiry情報は、ベンダID、記憶装置のプロダクトID、記憶装置を収納する筐体の筐体ID、記憶領域R1に対応するボリュームのボリューム番号などの組み合わせである。
制御装置22は、スタンバイボリュームである記憶領域R2に対して、識別情報「ID_b」を付与する。更に、制御装置22は、接続パス41を介して、記憶領域R2に対するアクティブボリュームである記憶領域R1の識別情報「ID_a」を制御装置12から取得し、記憶領域R2に識別情報「ID_a」も付与する。あるいは、制御装置22は、識別情報「ID_b」に識別情報「ID_a」を対応付けるとも言える。
制御装置12は、情報処理装置30からボリュームの問い合わせを受け付ける。制御装置12は、ボリュームの問い合わせに対し、アクティブボリュームである記憶領域R1の識別情報「ID_a」とともに、識別情報「ID_a」に対して、パス42を主パスとする指示を、情報処理装置30に応答する。例えば、情報処理装置30によるボリュームの問い合わせは、SCSIのInquiryコマンドでもよい。
情報処理装置30は、制御装置12からの応答に基づいて、識別情報「ID_a」のボリュームに対する主パスとして、パス42を設定する。パス42の識別情報を「#1」と表す。
制御装置22は、情報処理装置30からボリュームの問い合わせを受け付ける。制御装置22は、ボリュームの問い合わせに対し、スタンバイボリュームである記憶領域R2に対応付けた識別情報「ID_a」とともに、識別情報「ID_a」に対して、パス43を副パスとする指示を情報処理装置30に応答する。
情報処理装置30は、制御装置22からの応答に基づいて、識別情報「ID_a」のボリュームに対する副パスとして、パス43を設定する。パス43の識別情報を「#2」と表す。
例えば、処理部32は、制御装置12,22に対する上記の問い合わせを行うことで、パスの管理情報50を生成し、記憶部31に格納する。管理情報50は、識別情報「ID_a」に対して、主パスをパス42(#1)、副パスをパス43(#2)とすることを示す。
処理部32は、管理情報50に基づいて、主パス(パス42)を介して識別情報「ID_a」に対応する記憶領域R1へのアクセスを行う。
制御装置12は、パス42を介してアクセスを受け付ける。制御装置12は、読み出しのアクセスに対して、読み出し対象のデータを記憶領域R1から読み出し、情報処理装置30に送信する。制御装置12は、書き込みのアクセスに対して、書き込み対象のデータを記憶領域R1に書き込む。制御装置12は、書き込み対象のデータの書き込み指示を制御装置22に送信する。制御装置22は、データの書き込み指示を制御装置12から受信すると、書き込み対象のデータを記憶領域R2に書き込み、書き込み完了を制御装置12に送信する。制御装置12は、制御装置22から書き込み完了を受信すると、書き込み完了を情報処理装置30に送信する。こうして、記憶領域R1,R2のデータが同期される。
情報処理装置30は、アクティブボリュームである記憶領域R1に対して主パス(パス42)を介したアクセスを行えなくなると、該当の識別情報「ID_a」に対する副パスを特定し、副パスを介して当該識別情報に対応する記憶領域R2へのアクセスを行う。例えば、パス42の障害や、ストレージ装置10の障害により、情報処理装置30からアクティブボリュームである記憶領域R1へのアクセスが不能になり得る。この場合、処理部32は、記憶部31に記憶された管理情報50に基づいて、識別情報「ID_a」に対する副パスであるパス43を特定する。処理部32は、副パスであるパス43を介して、記憶領域R2へのアクセスを行う。例えば、ストレージ装置20は、識別情報「ID_a」のボリュームに対するアクセスを受け付けたとき、当該アクセスを、識別情報「ID_a」に対応付けられた、ストレージ装置20における識別情報「ID_b」の記憶領域R2に対するアクセスに変換する。これにより、情報処理装置30からスタンバイボリュームである記憶領域R2へのアクセスが実現される。
記憶領域R2に記憶されたデータは、記憶領域R1に記憶されたデータと同期されている。このため、上記の障害が発生しても、情報処理装置30は、通常のデータアクセスを継続できる。
情報処理システム1によれば、情報処理装置30と、ストレージ装置10,20との間にスイッチを設けなくても、アクティブボリュームへのアクセス障害時に、スタンバイボリュームへのアクセスに切り替えることができる。このため、パス切替用のスイッチを削減できる。スイッチを省略することで、スイッチの設定工数や運用工数を省け、ユーザの作業を省力化できる。
また、ストレージ装置10,20において、アクティブ/スタンバイのボリュームセットが複数存在する場合に、各ボリュームセットにおけるアクティブボリュームをストレージ装置10,20に分散して振り分けることが可能である。これにより、1ノード(ストレージ装置)当たりの負荷を軽減でき、ストレージ装置10,20において負荷分散を図れる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態のストレージシステムの例を示す図である。
ストレージシステム2は、ストレージ装置100,200、サーバ装置300および管理装置400を有する。ストレージ装置100,200は、ケーブルにより直接接続される。ストレージ装置100およびサーバ装置300は、ケーブルにより直接接続される。ストレージ装置200およびサーバ装置300は、ケーブルにより直接接続される。
ストレージ装置100,200の間、ストレージ装置100およびサーバ装置300の間、ストレージ装置200およびサーバ装置300の間の接続用のインタフェースには、例えば、FC(Fibre Channel)、iSCSI(Internet SCSI)、SAS(Serial Attached SCSI)などが用いられる。
ストレージ装置100,200、サーバ装置300および管理装置400は、ネットワーク60に接続されている。ネットワーク60は、運用管理用のネットワークであり、例えば、LAN(Local Area Network)である。
ストレージ装置100,200は、HDDやSSDなどの記憶装置を複数備え、大容量の記憶領域をサーバ装置300に提供する。ストレージ装置100,200は、相互に連携してストレージクラスタを構成し、ストレージ装置100,200により冗長化されたアクティブボリューム/スタンバイボリュームを提供することでデータアクセスの高可用性を実現する。ストレージ装置100,200は、第1の実施の形態のストレージ装置10,20の一例である。
サーバ装置300は、アプリケーションを実行し、アプリケーションの処理に応じてストレージ装置100,200に格納されたデータにアクセスするサーバコンピュータである。サーバ装置300は、ストレージ装置100,200に格納されたデータを読み出すこともあるし、ストレージ装置100,200にデータを書き込むこともある。サーバ装置300は、第1の実施の形態の情報処理装置30の一例である。
管理装置400は、ストレージ装置100,200の死活監視を行うサーバコンピュータである。管理装置400は、ネットワーク60を介して、ストレージ装置100,200に死活監視用のパケットを送信し、当該パケットの応答(あるいは応答の有無)を基に、ストレージ装置100,200が稼働中であるか、停止中であるかを監視する。あるいは、管理装置400は、ストレージ装置100,200から定期的に管理装置400に送信される所定の生存通知の受信の有無に応じて、ストレージ装置100,200の死活監視を行ってもよい。
図3は、ストレージ装置のハードウェア例を示す図である。
ストレージ装置100は、コントローラモジュール(CM:Controller Module)110,120およびドライブ収納部130を有する。
CM110,120は、ドライブ収納部130に収納されたHDDやSSDなどの記憶装置へのアクセスを制御する制御装置である。CM110,120は、ストレージ装置200と通信し、ボリュームのアクティブ/スタンバイの状態を管理する。
CM110は、CPU111、RAM112、NVRAM(Non-Volatile RAM)113、DI(Drive Interface)114、NA(Network Adapter)115およびCA(Channel Adapter)116,117を有する。
CPU111は、CM110の全体を制御するプロセッサである。CPU111は、NVRAM113に記憶されたファームウェアのプログラムやデータの少なくとも一部をRAM112にロードし、ファームウェアのプログラムを実行する。
RAM112は、CM110の主記憶装置である。RAM112は、CPU111により実行されるファームウェアのプログラムや、CPU111の処理に用いられる各種のデータを記憶する。
NVRAM113は、CM110の補助記憶装置である。NVRAM113は、RAM112にロードされるファームウェアのプログラムやCPU111の処理に用いられる各種のデータを記憶する。
DI114は、ドライブ収納部130に収納された記憶装置にアクセスするためのインタフェースである。
NA115は、ネットワーク60に接続され、ネットワーク60を介して管理装置400などの他のコンピュータと通信する通信インタフェースである。
CA116,117は、ストレージ装置200およびサーバ装置300に接続される通信インタフェースである。CA116,117は、それぞれ複数のポートを有する。
CM120もCM110と同様のハードウェアにより実現される。CM110,120は、CM間の所定のインタフェースにより接続され、冗長構成となっている(例えば、何れか一方のCMが故障しても他方のCMでデータアクセスを継続可能である)。
ドライブ収納部130は、HDDやSSDなどの記憶装置を複数収納する。例えば、ドライブ収納部130は、HDD131,132,…を収納する。
ストレージ装置200もストレージ装置100と同様のハードウェアにより実現される。
図4は、サーバ装置のハードウェア例を示す図である。
サーバ装置300は、CPU301、RAM302、HDD303、媒体リーダ304、出力IF305、入力IF306、NIC(Network Interface Card)307およびHBA(Host Bus Adapter)308,309を有する。CPU301は、第1の実施の形態の処理部32に対応する。RAM302またはHDD303は、第1の実施の形態の記憶部31に対応する。
CPU301は、プログラムの命令を実行するプロセッサである。CPU301は、HDD303に記憶されたプログラムやデータの少なくとも一部をRAM302にロードし、プログラムを実行する。
RAM302は、サーバ装置300の主記憶装置である。RAM302は、CPU301が実行するプログラムやCPU301が演算に用いるデータを一時的に記憶する。
HDD303は、サーバ装置300の補助記憶装置である。HDD303は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する。なお、サーバ装置300は、SSDなどの他の種類の記憶装置を備えてもよい。
媒体リーダ304は、記録媒体61に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体61として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ304は、例えば、記録媒体61から読み取ったプログラムやデータを、RAM302やHDD303などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU301によって実行される。なお、記録媒体61は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体61やHDD303を、コンピュータ読み取り可能な記録媒体と言うことがある。
出力IF305は、CPU301からの命令に従って、サーバ装置300に接続されたディスプレイ62に画像を出力する。ディスプレイ62としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力IF306は、サーバ装置300に接続された入力デバイス63から入力信号を取得し、CPU301に出力する。入力デバイス63としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、サーバ装置300に、複数の種類の入力デバイスが接続されていてもよい。
NIC307は、ネットワーク60に接続され、ネットワーク60を介して管理装置400などの他のコンピュータと通信を行うインタフェースである。
HBA308,309は、ストレージ装置100,200と接続される通信インタフェースである。HBA308,309は、それぞれ複数のポートを有する。
管理装置400もサーバ装置300と同様のハードウェアにより実現される。
図5は、ポート間のケーブルによる接続例を示す図である。
HBA308は、ポートp1,p2を有する。各ポートには、アダプタ単位のポート番号が付与されている。ポートp1のポート番号は「0」である。ポートp2のポート番号は「1」である。HBA309は、ポートp3,p4を有する。ポートp3のポート番号は「0」である。ポートp4のポート番号は「1」である。
CM110,120は、ボリューム140にアクセス可能である。ボリューム140は、HDD131,132,…の所定の記憶領域である。
また、ストレージ装置200は、CM210,220を有する。CM210,220は、ボリューム240にアクセス可能である。ボリューム240は、ストレージ装置200に内蔵された複数のHDDの所定の記憶領域である。
ストレージ装置100,200は、ボリューム140,240をクラスタ化し、一方をアクティブボリューム、他方をスタンバイボリュームとして運用する。
ここで、CM120は、CA126,127を有する。CM210は、CA216,217を有する。CM220は、CA226,227を有する。各CMにおけるCAは次のポートを有する。
CA116は、ポートq1,q2を有する。ポートq1のポート番号は「0」である。ポートq2のポート番号は「1」である。CA117は、ポートq3,q4を有する。ポートq3のポート番号は「0」である。ポートq4のポート番号は「1」である。CA126は、ポートq5,q6を有する。ポートq5のポート番号は「0」である。ポートq6のポート番号は「1」である。CA127は、ポートq7,q8を有する。ポートq7のポート番号は「0」である。ポートq8のポート番号は「1」である。
CA216は、ポートr1,r2を有する。ポートr1のポート番号は「0」である。ポートr2のポート番号は「1」である。CA217は、ポートr3,r4を有する。ポートr3のポート番号は「0」である。ポートr4のポート番号は「1」である。CA226は、ポートr5,r6を有する。ポートr5のポート番号は「0」である。ポートr6のポート番号は「1」である。CA227は、ポートr7,r8を有する。ポートr7のポート番号は「0」である。ポートr8のポート番号は「1」である。
ポートp1,q1は、互いにケーブルで接続されている。ポートp2,r1は、互いにケーブルで接続されている。ポートp3,q5は、互いにケーブルで接続されている。ポートp4,r5は、互いにケーブルで接続されている。
また、CM故障時の冗長化を保つため、ストレージ装置100,200の各CM間が次のように接続されている。ポートq2,r2は、互いにケーブルで接続されている。ポートq3,r7は、互いにケーブルで接続されている。ポートq6,r6は、互いにケーブルで接続されている。ポートq7,r3は、互いにケーブルで接続されている。
ここで、ストレージ装置100,200の間に形成されるパス(ポートq2,r2を繋ぐパス、ポートq3,r7を繋ぐパス、ポートq6,r6を繋ぐパス、ポートq7,r3を繋ぐパス)をREC(Remote Equivalent Copy)パスと称する。RECパスは、第1の実施の形態の接続パス41の一例である。
なお、ポートq4,q8,r4,r8にはケーブルが接続されていない。
図6は、サーバ装置およびストレージ装置のポート間の接続例を示す図である。
サーバ装置300により認識される各ポートの識別情報を次の通りとする。
ポートp1の識別情報は、「Port1」である。例えば、ポートp1の識別情報「Port1」は、HBA308の識別番号とポートp1のポート番号との組み合わせでもよい(サーバ装置300の他のポートも同様)。ポートp2の識別情報は、「Port2」である。ポートp3の識別情報は、「Port3」である。ポートp4の識別情報は、「Port4」である。
また、ポートq1の識別情報は、「PortA」である。例えば、ポートq1の識別情報「PortA」は、CM110の識別番号と、ポートq1のポート番号との組み合わせでもよい(CM110の他のポートおよび他のCMの他のポートも同様)。ポートq5の識別情報は、「PortB」である。ポートr1の識別情報は、「PortC」である。ポートr5の識別情報は、「PortD」である。
前述のように、ポートp1,q1がケーブルで直接接続される。ポートp2,r1がケーブルで直接接続される。ポートp3,q5がケーブルで直接接続される。ポートp4,r5がケーブルで直接接続される。
なお、ボリューム140,240は、クラスタボリュームを構成する。当初の段階では、ボリューム140,240のうち、ボリューム140がアクティブボリュームであり、ボリューム240がスタンバイボリュームである。ボリューム140において更新されたデータは、ストレージ装置100,200の間のRECパスを介して、ボリューム240にもコピーされる。
図7は、ストレージシステムの機能例を示す図である。
ストレージ装置100は、記憶部150、クラスタ制御部160およびIO(Input/Output)処理部170を有する。記憶部150は、RAM112やNVRAM113の記憶領域により実現される。クラスタ制御部160およびIO処理部170は、RAM112に記憶されたプログラムをCPU111により実行することで実現される。CM120も記憶部150、クラスタ制御部160およびIO処理部170の機能を有し、これらの機能がCM110,120で冗長化されてもよい。
記憶部150は、クラスタ設定テーブル、クラスタ状態テーブルおよびInquiry変換情報を記憶する。クラスタ設定テーブルは、クラスタボリュームを構成するボリュームのペアを管理するための情報である。クラスタ状態テーブルは、クラスタボリュームの現在の状態を管理するための情報である。クラスタボリュームの状態としては、等価(同期済)、同期コピー中およびコピー中断中がある。Inquiry変換情報は、クラスタボリュームのペアにおけるInquiry情報の対応関係を示す情報である。
クラスタ制御部160は、クラスタボリュームの状態を管理する。クラスタ制御部160は、相手ストレージ(ストレージ装置200)がアクティブボリュームであり、自ストレージ(ストレージ装置100)がスタンバイボリュームであるクラスタボリュームについて、アクティブボリューム側がダウンした場合には、自ストレージにおけるスタンバイボリュームをアクティブ化する。
IO処理部170は、クラスタボリュームに対するIO処理を実行する。IO処理部170は、自ストレージのアクティブボリュームに対する書き込み要求をサーバ装置300から受け付けた場合、自ストレージに対する書き込みを実行する。IO処理部170は、相手ストレージに当該書き込み要求を送信し、相手ストレージでも当該書き込みが実行されると、書き込み完了をサーバ装置300に応答する。
また、IO処理部170は、自ストレージのスタンバイボリュームに対する書き込み要求を相手ストレージから受け付けた場合、自ストレージのスタンバイボリュームに対して書き込みを実行し、相手ストレージに書き込み完了を応答する。
更に、IO処理部170は、自ストレージのスタンバイボリュームに対する書き込み要求をサーバ装置300から受け付けた場合、相手ストレージのアクティブボリュームに対して当該書き込み要求を送信し、相手ストレージから当該書き込み要求を受け付ける。IO処理部170は、相手ストレージからの書き込み要求により自ストレージのスタンバイボリュームに対して書き込みを実行し、書き込み完了を相手ストレージに応答する。IO処理部170は、相手ストレージから書き込み完了の応答を受信すると、書き込み完了をサーバ装置300に応答する。
なお、クラスタ制御部160は、自ストレージがスタンバイボリュームであるクラスタボリュームへの書き込み要求の受信数に応じて、当該スタンバイボリュームをアクティブボリュームに切り替えることがある。
データの読み出しの要求については、IO処理部170は、自ストレージがアクティブボリュームである場合には、当該アクティブボリュームからデータを読み出してサーバ装置300に応答する。IO処理部170は、自ストレージがスタンバイボリュームである場合には、当該スタンバイボリュームが同期済であれば、当該スタンバイボリュームからデータを読み出して、サーバ装置300に応答する。一方、スタンバイボリュームが同期済でなければ、IO処理部170は、読み出し対象のデータをアクティブ側のストレージ装置200に要求し、ストレージ装置200により読み出されたデータをサーバ装置300に応答する。
ストレージ装置200は、記憶部250、クラスタ制御部260およびIO処理部270を有する。記憶部250、クラスタ制御部260およびIO処理部270の機能は、ストレージ装置100における同名の構成の機能と同様であるため、説明を省略する。
サーバ装置300は、記憶部310、パス制御部320およびアクセス処理部330を有する。記憶部310は、RAM302またはHDD303の記憶領域を用いて実現される。パス制御部320およびアクセス処理部330は、RAM302に記憶されたプログラムをCPU301により実行することで実現される。
記憶部310は、パス管理テーブルを記憶する。パス管理テーブルは、サーバ装置300が認識するボリュームに対して、主パス(プライマリパス)および副パス(セカンダリパス)を管理するための情報である。
パス制御部320は、記憶部310に記憶されたパス管理テーブルに基づいて、ボリュームにアクセスする際に用いるパスを制御する。パス制御部320は、あるボリュームに対して通常は主パスを介してアクセスするが、主パスを介して当該ボリュームへのアクセスを行えなくなると、副パスを用いて当該ボリュームにアクセスする。パス制御部320の機能は、例えば、マルチパスドライバと呼ばれるソフトウェアの機能により実現される。
アクセス処理部330は、ストレージ装置100,200に対してデータの書き込みやデータの読み出しなどのアクセス要求を発行する。
管理装置400は、記憶部410および監視部420を有する。
記憶部410は、管理装置400が有するRAMやHDDなどの記憶領域を用いて実現される。監視部420は、管理装置400が有するRAMに記憶されたプログラム(エージェントプログラム)を管理装置400が有するCPUにより実行することで実現される。
記憶部410は、ストレージ監視テーブルを記憶する。ストレージ監視テーブルは、クラスタ構成のストレージ装置100,200の状態を管理するための情報である。ストレージ装置100,200の状態としては、稼働中および停止中がある。
監視部420は、ストレージ装置100,200に対して死活監視を行い、ストレージ監視テーブルを更新する。例えば、監視部420は、ストレージ装置100,200に対して死活監視用のパケットを、ネットワーク60を介して送信し、当該パケットに対する応答の有無などに基づいて、ストレージ装置100,200の死活監視を行う。
次に、上記で説明した各記憶部に格納される情報のデータ構造例を説明する。
図8は、クラスタ設定テーブルの例を示す図である。
クラスタ設定テーブル151は、記憶部150に格納される。クラスタ設定テーブル151は、クラスタボリューム番号、ストレージ#1ボリューム番号、状態(1)、ストレージ#2ボリューム番号および状態(2)の項目を含む。
クラスタボリューム番号の項目には、クラスタボリューム番号が登録される。クラスタボリューム番号は、ストレージ装置100,200のクラスタにおけるクラスタボリュームの識別番号である。ストレージ#1ボリューム番号の項目には、該当のクラスタボリューム番号のクラスタに属する「ストレージ#1」のボリュームの識別番号(ボリューム番号)が登録される。ここで、「ストレージ#1」は、ストレージ装置100の名称である。状態(1)の項目には、ストレージ#1ボリューム番号で示されるボリュームの状態が登録される。ボリュームの状態には、「Active」および「Standby」がある。「Active」はアクティブボリュームであることを示す。「Standby」はスタンバイボリュームであることを示す。ストレージ#2ボリューム番号の項目には、該当のクラスタボリューム番号のクラスタに属する「ストレージ#2」のボリュームの識別番号(ボリューム番号)が登録される。ここで、「ストレージ#2」は、ストレージ装置200の名称である。状態(2)の項目には、ストレージ#2ボリューム番号で示されるボリュームの状態が登録される。
例えば、クラスタ設定テーブル151には、クラスタボリューム番号が「0」、ストレージ#1ボリューム番号が「0」、状態(1)が「Active」、ストレージ#2ボリューム番号が「0」、状態(2)が「Standby」というレコードが登録されている。このレコードは、クラスタボリューム番号「0」のクラスタに、ストレージ装置100におけるボリューム番号「0」のボリュームと、ストレージ装置200におけるボリューム番号「0」のボリュームとが所属することを示す。また、このうち、ストレージ装置100におけるボリューム番号「0」のボリュームがアクティブボリュームであり、ストレージ装置200におけるボリューム番号「0」のボリュームがスタンバイボリュームであることを示す。
また、クラスタ設定テーブル151には、クラスタボリューム番号が「1」、ストレージ#1ボリューム番号が「1」、状態(1)が「Standby」、ストレージ#2ボリューム番号が「3」、状態(2)が「Active」というレコードが登録されている。このレコードは、クラスタボリューム番号「1」のクラスタに、ストレージ装置100におけるボリューム番号「1」のボリュームと、ストレージ装置200におけるボリューム番号「3」のボリュームとが所属することを示す。また、このうち、ストレージ装置100におけるボリューム番号「1」のボリュームがスタンバイボリュームであり、ストレージ装置200におけるボリューム番号「3」のボリュームがアクティブボリュームであることを示す。
クラスタ設定テーブル151には、他のクラスタボリュームに関するレコードも登録され得る。
図9は、クラスタ状態テーブルの例を示す図である。
クラスタ状態テーブル152は、記憶部150に格納される。クラスタ状態テーブル152は、クラスタボリューム番号および状態の項目を含む。クラスタボリューム番号の項目には、クラスタボリューム番号が登録される。状態の項目には、クラスタボリュームの状態が登録される。クラスタボリュームの状態には、前述のように、「等価」、「同期コピー中」および「コピー中断中」がある。「コピー中断中」の場合、クラスタボリュームに属するペアの何れか一方が異常な状態(異常系)となっていることになる。
例えば、クラスタ状態テーブル152には、クラスタボリューム番号が「0」、状態が「等価」というレコードが登録されている。このレコードは、クラスタボリューム番号「0」のクラスタでは、アクティブボリュームとスタンバイボリュームとが等価(すなわち、データを同期済)であることを示す。
また、クラスタ状態テーブル152には、クラスタボリューム番号が「1」、状態が「同期コピー中」というレコードが登録されている。このレコードは、クラスタボリューム番号「1」のクラスタでは、アクティブボリュームに対するデータの更新内容が、RECパスを介して、クラスタボリュームにコピーされている最中であることを示す。
クラスタ状態テーブル152には、他のクラスタボリュームに関するレコードも登録され得る。
図10は、Inquiry変換情報の例を示す図である。
Inquiry変換情報153は、記憶部150に格納される。Inquiry変換情報は、クラスタボリューム番号、相手ボリュームInquiry情報および自ボリュームInquiry情報の項目を含む。
クラスタボリューム番号の項目には、クラスタボリューム番号が登録される。相手ボリュームInquiry情報の項目には、クラスタボリュームにおける相手ボリュームのInquiry情報が登録される。自ボリュームInquiry情報の項目には、クラスタボリュームにおける自ボリュームのInquiry情報が登録される。
ここで、Inquiry情報は、SCSIにおけるボリュームの管理情報である。Inquiry情報は、例えば、ベンダID、プロダクトID、筐体シリアル番号およびボリューム番号などの組により表される。ベンダIDは、該当のボリュームを提供するHDDやSSDなどの製造元の識別情報である。プロダクトIDは、当該記憶装置の識別情報である。筐体シリアル番号は、当該記憶装置を収納するストレージ装置の識別情報である。ボリューム番号は、当該ストレージ装置におけるボリュームの識別番号である。
例えば、Inquiry変換情報153には、クラスタボリューム番号が「0」、相手ボリュームInquiry情報が「ベンダID:AAA、プロダクトID:BBB、筐体シリアル番号:CCC、ボリューム番号:0」、自ボリュームInquiry情報が「ベンダID:XXX、プロダクトID:YYY、筐体シリアル番号:ZZZ、ボリューム番号:0」というレコードが登録されている。このレコードは、クラスタボリューム番号「0」のクラスタにおける相手ボリュームのInquiry情報「ベンダID:AAA、プロダクトID:BBB、筐体シリアル番号:CCC、ボリューム番号:0」に、自ボリュームのInquiry情報「ベンダID:XXX、プロダクトID:YYY、筐体シリアル番号:ZZZ、ボリューム番号:0」が対応することを示す。
Inquiry変換情報153には、他のクラスタボリュームに関するレコードも登録される。
例えば、ストレージ装置100は、ストレージ装置200のアクティブボリュームの代わりに自ストレージのスタンバイボリュームにアクセスする場合、Inquiry変換情報153を使用できる。すなわち、ストレージ装置100は、アクセス先のアクティブボリュームの識別情報をInquiry変換情報153によりスタンバイボリュームの識別情報に変換することで、スタンバイボリュームを特定し、当該スタンバイボリュームにアクセスできる。
図11は、パス管理テーブルの例を示す図である。
パス管理テーブル311は、記憶部310に格納される。パス管理テーブル311は、ボリューム名、Inquiry情報、主パスおよび副パスの項目を含む。
ボリューム名の項目には、サーバ装置300において認識されるボリュームのボリューム名が登録される。Inquiry情報の項目には、該当のボリュームのInquiry情報が登録される。主パスの項目には、該当のボリュームにアクセスするための主パスを示す情報が登録される。副パスの項目には、該当のボリュームにアクセスするための副パスを示す情報が登録される。
例えば、パス管理テーブル311には、ボリューム名が「V1」、Inquiry情報が「ベンダID:AAA、プロダクトID:BBB、筐体シリアル番号:CCC、ボリューム番号:0」、主パスが「Port1−PortA」,「Port3−PortB」、副パスが「Port2−PortC」,「Port4−PortD」というレコードが登録されている。このレコードは、サーバ装置300では、ボリューム名「V1」のボリュームのInquiry情報を「ベンダID:AAA、プロダクトID:BBB、筐体シリアル番号:CCC、ボリューム番号:0」と認識していることを示す。また、当該ボリュームに対する主パスがポートp1,q1(Port1−PortA)を結ぶパス、または、ポートp3,q5(Port3−PortB)を結ぶパスであることを示す。更に、当該ボリュームに対する副パスがポートp2,r1(Port2−PortC)を結ぶパス、または、ポートp4,r5(Port4−PortD)を結ぶパスであることを示す。
パス管理テーブル311には、他のボリュームに関するInquiry情報、主パスおよび副パスの情報も登録され得る。
図12は、ストレージ監視テーブルの例を示す図である。
ストレージ監視テーブル411は、記憶部410に格納される。ストレージ監視テーブル411は、ストレージ#1状態およびストレージ#2状態の項目を含む。
ストレージ#1状態の項目には、ストレージ装置100の状態が登録される。ストレージ#2状態の項目には、ストレージ装置200の状態が登録される。ストレージ装置100,200の状態には、前述のように、稼働中および停止中がある。
例えば、ストレージ監視テーブル411には、ストレージ#1状態が「稼働中」、ストレージ#2状態が「稼働中」というレコードが登録されている。このレコードは、ストレージ装置100,200が、正常に稼働中であることを示す。
次に、サーバ装置300からストレージ装置100,200に対するアクセスの処理例を、書き込み時、読み出し時に分けて説明する。
図13は、書き込み時のアクセス例(その1)を示す図である。
以下のアクセス例の説明では、ボリューム140,240がクラスタボリュームを構成しており、ボリューム140がアクティブボリューム、ボリューム240がスタンバイボリュームであるとする。この場合、サーバ装置300は、ポートp1,q1を結ぶパスとポートp3,q5を結ぶパスとを、それぞれボリューム140に対する主パスとして認識する。また、サーバ装置300は、ポートp2,r1を結ぶパスとポートp4,r5を結ぶパスとを、それぞれボリューム140に対する副パスとして認識する。サーバ装置300は、ボリューム140へのアクセスに主パスを優先して用いる。
CM110は、サーバ装置300からデータの書き込み要求を受信する(ステップST10)。
CM110は、書き込み要求を受信するとボリューム140にデータを書き込む(ステップST11)。
CM110は、該当のデータの書き込み要求を、RECパスを介してCM210に送信する。CM210は、当該書き込み要求を受信すると、ボリューム240にデータを書き込み、RECパスを介して、書き込み完了をCM110に応答する(ステップST12)。
CM110は、CM210から書き込み完了を受信すると、書き込み要求が完了した旨を、サーバ装置300に応答する(ステップST13)。
図14は、書き込み時のアクセス例(その2)を示す図である。
図14では、ポートp1,q1を結ぶパスおよびポートp3,q5を結ぶパスを介して、サーバ装置300からストレージ装置100のボリューム140へアクセス不能になった場合を例示する。この場合、サーバ装置300は、ボリューム140への全ての主パスを介したアクセスができなくなったと認識し、副パスを介してボリューム140に対する書き込み要求を送信する。
CM210は、サーバ装置300からデータの書き込み要求を受信する(ステップST20)。
CM210は、書き込み要求を受信すると、ボリューム240がスタンバイボリュームであることから、RECパスを介して、当該書き込み要求をCM110に送信する(ステップST21)。
CM110は、CM210から書き込み要求を受信すると、ボリューム140にデータを書き込む(ステップST22)。
CM110は、該当のデータの書き込み要求を、RECパスを介してCM210に送信する。CM210は、当該書き込み要求を受信すると、ボリューム240にデータを書き込み、RECパスを介して、書き込み完了をCM110に応答する。CM110は、CM210から書き込み完了を受信すると、書き込み要求が完了した旨を、CM210に応答する(ステップST23)。
CM210は、CM110から書き込み完了を受信すると、書き込み要求が完了した旨を、サーバ装置300に応答する(ステップST24)。
このように、ストレージ装置200を介して、ストレージ装置100におけるアクティブボリュームへの書き込みが行われることもある。ただし、この方法では、サーバ装置300に対する書き込み完了の応答が遅延し得る。このため、ストレージ装置200は、該当のクラスタボリュームに対して、ストレージ装置200が受信する要求数が、所定期間内に一定数(閾値)に達すると、自ストレージのスタンバイボリュームをアクティブボリュームに切り替える。当該要求数が閾値に達する前に、該当のアクティブボリュームに対する主パスが復旧する場合には、ストレージ装置200は、スタンバイボリュームをアクティブボリュームとする切り替えを行わないことになる。
図15は、読み出し時のアクセス例(その1)を示す図である。
CM110は、サーバ装置300からデータの読み出し要求を受信する(ステップST30)。
CM110は、読み出し要求を受信すると、ボリューム140から該当のデータを読み出す(ステップST31)。
CM110は、読み出したデータをサーバ装置300に応答する(ステップST32)。
図16は、読み出し時のアクセス例(その2)を示す図である。
図16では、ポートp1,q1を結ぶパスおよびポートp3,q5を結ぶパスを介して、サーバ装置300からストレージ装置100のボリューム140へアクセス不能になった場合を例示する。この場合、サーバ装置300は、ボリューム140への全ての主パスを介したアクセスができなくなったと認識し、副パスを介してボリューム140に対する読み出し要求を送信する。
CM210は、サーバ装置300からデータの読み出し要求を受信する(ステップST40)。
CM210は、読み出し要求を受信すると、ボリューム140,240が同期済であることを確認する。すると、CM210は、ボリューム140に対応するスタンバイボリュームであるボリューム240から該当のデータを読み出す(ステップST41)。
CM210は、読み出したデータをサーバ装置300に応答する(ステップST42)。
このように、ボリューム140,240が同期済である場合、ストレージ装置200で読み出し要求を受け付けた際に、スタンバイボリュームからもデータの読み出しを行える。このため、データの読み出しを高速化できる。
次に、スタンバイボリュームからアクティブボリュームへの切り替え例を説明する。
図17は、主パス障害時の切り替え例を示す図である。
図17では、ポートp1,q1を結ぶパスおよびポートp3,q5を結ぶパスを介して、サーバ装置300からストレージ装置100のボリューム140へアクセス不能になった場合を例示する。この場合、サーバ装置300は、ボリューム140への全ての主パスを介したアクセスができなくなったと認識し、副パスを介してボリューム140に対する書き込み要求、および、読み出し要求を送信する。
CM210は、書き込み要求に対し、図14で例示したデータの書き込みを行う。CM210は、読み出し要求に対し、図16で例示したデータの読み出しを行う。しかし、CM210は、相手ストレージのアクティブボリュームに対する書き込み要求、および、読み出し要求の受信数の累計が閾値に達すると、主パスがダウンしたと判断して、自ストレージのスタンバイボリュームをアクティブボリュームに変更する。このとき、CM210は、RECパスを介して、CM110にアクティブボリュームをスタンバイボリュームに変更するように指示する。CM110は、CM210からの指示に応じて、自ストレージにおけるアクティブボリュームをスタンバイボリュームに変更する。
このように、クラスタボリュームにおけるボリュームのペアにおいて、アクティブボリュームとスタンバイボリュームとの切り替えが行われる。
以降、サーバ装置300は、ボリューム140に対するアクセス要求を、副パスを介して、CM210(あるいは、CM220)に送信する。CM210,220は、当該アクセス要求に応じたデータの書き込みや読み出しを、ボリューム240に対して行い、アクセス結果をサーバ装置300に応答する。ボリューム240に対するデータの更新内容は、スタンバイに変更されたボリューム140にも反映される。
このように、ストレージ装置200は、自身がスタンバイボリュームを有するクラスタボリュームに対してサーバ装置300からアクセスの要求を受信すると、アクセスの要求を、接続パスを介してストレージ装置100に送信する。ストレージ装置200は、サーバ装置300からの当該クラスタボリュームに対するアクセスの要求の数が閾値に達すると、サーバ装置300からの全てのアクセスをストレージ装置200により処理するとともに、ストレージ装置200におけるボリューム240に格納されたデータの複製を、RECパスを介して、ボリューム240に対応するストレージ装置100のボリューム140に格納する動作に切り替える。アクセスの要求の数が閾値に達してからアクティブ/スタンバイの切り替えを行うことで、主パスにおける一時的なパス障害(例えば、単に一時的に主パスの負荷が過大であったなど)によりアクティブ/スタンバイの切り替えが発生することを抑制できる。
図18は、アクティブ側ストレージ装置のダウン時の切り替え例を示す図である。
図18では、アクティブ側であるストレージ装置100がダウンした場合を例示する。
この場合、サーバ装置300からは、ボリューム140に対する主パスは、リンクダウン(障害パス)として認識される。
管理装置400は、ストレージ装置100と通信できないことを検知して、ストレージ装置100の状態を「稼働中」から「停止中」に変更する。
CM210(あるいは、CM220)は、ストレージ装置100と、RECパスを介して通信できないことを検知して、ストレージ装置100の状態を管理装置400に確認する。
CM210(あるいは、CM220)は、管理装置400からストレージ装置100の状態が「停止中」である旨の応答を受信する。すると、CM210(あるいは、CM220)は、ストレージ装置200のスタンバイボリュームであるボリューム240を、アクティブに切り替える。
以降、サーバ装置300は、ボリューム140に対するアクセス要求を、副パスを介して、CM210(あるいは、CM220)に送信する。CM210,220は、当該アクセス要求に応じたデータの書き込みや読み出しを、ボリューム240に対して行い、アクセス結果をサーバ装置300に応答する。
なお、その後、ストレージ装置100が復旧した場合には、次のような手順を採ることが考えられる。まず、ストレージ装置100が起動し、アクセス可能な状態となる。この時点では、ポートp1,q1を結ぶパス、および、ポートp3,q5を結ぶパスはリンクダウンした状態である。ストレージ装置100内のボリュームはスタンバイボリュームとして稼働する。そして、ストレージ装置200におけるアクティブボリュームとストレージ装置100におけるスタンバイボリュームとの同期が開始される。
同期が完了すると、ストレージ装置100は、ポートp1,q1を結ぶパス、および、ポートp3,q5を結ぶパスをリンクアップする。その後、ストレージ装置100,200におけるアクティブボリュームとスタンバイボリュームとの役割を、障害前の状態に戻すか、戻さずにそのままにするかは、ユーザの設定に応じて決定される。
図19は、RECパス障害時の例を示す図である。
図19では、ストレージ装置100,200の間のRECパスが全てダウンした場合を例示する。この場合、ストレージ装置100,200は、稼働を継続する。ただし、ストレージ装置100,200それぞれは、RECパスを介して、相手のストレージ装置と通信できなくなる。このため、ストレージ装置100,200は、それぞれ管理装置400に対して、相手ストレージの状態確認を行う。
ストレージ装置100,200は、管理装置400に対する状態確認の結果、ペアの相手ストレージが停止中であれば、相手ストレージがダウンしたものと認識し、自ストレージのボリュームを全てアクティブボリュームに変更して、運用を継続する。
一方、ストレージ装置100,200は、管理装置400に対する状態確認の結果、ペアの相手ストレージが稼働中であれば、データの整合性を保つために、自ストレージのうち、アクティブボリュームのみについてアクセスを受け付ける。具体的には、ストレージ装置100,200は、それぞれ、スタンバイボリュームに対するアクセスをサーバ装置300から受け付けると、サーバ装置300に対してエラーを応答する。すると、サーバ装置300では、アクセスに用いるパスが切り替えられて、アクティブボリュームへのリトライが行われる。
例えば、ストレージ装置200は、RECパスを介してストレージ装置100との通信が不能になると、ストレージ装置100の状態を管理装置400に確認する。ストレージ装置200は、確認の結果、ストレージ装置100が停止中の場合、サーバ装置300からの全てのアクセスをストレージ装置200により処理する動作に切り替える。これにより、ストレージ装置200によりデータアクセスを継続できる。
また、ストレージ装置200は、確認の結果、ストレージ装置100が稼働中の場合、スタンバイボリュームに対するサーバ装置300からのアクセスにエラーを応答することで、サーバ装置300によりストレージ装置100へのアクセスをリトライさせる。これにより、サーバ装置300からアクティブボリュームに対して適切にアクセスさせることができる。
次に、ストレージシステム2の処理手順を説明する。以下では、主にストレージ装置100の処理手順を説明するが、ストレージ装置200も同様の処理手順を実行する。
図20は、ストレージ起動処理の例を示すフローチャートである。
例えば、ストレージ装置100,200は、ほぼ同じタイミングで起動が開始される。
(S10)クラスタ制御部160は、ストレージ装置100が起動されるとRECパス経由でペアの相手ストレージ(ストレージ装置200)の生存確認要求を送信する。
(S11)クラスタ制御部160は、生存確認要求に対する応答があるか否かを判定する。応答がある場合、ステップS17に処理が進む。応答がない場合、ステップS12に処理が進む。
(S12)クラスタ制御部160は、管理装置400にペアの相手ストレージの状態を確認する。
(S13)クラスタ制御部160は、管理装置400に対する確認の結果、相手ストレージが稼働中であるか否かを判定する。相手ストレージが稼働中の場合、ステップS14に処理が進む。相手ストレージが停止中の場合、ステップS15に処理が進む。
(S14)クラスタ制御部160は、RECパス切断を検出し、起動を停止する。例えば、クラスタ制御部160は、ユーザに対して、起動エラーを通知してもよい。そして、ストレージ起動処理が終了する。この場合、例えば、異常終了となり、異常が解消されるまでは相手ストレージ単独での運用となる。
(S15)クラスタ制御部160は、自ストレージのボリューム(全てのボリューム)に対して「Active」を設定する。クラスタ制御部160は、設定に応じて、クラスタ設定テーブル151の各ボリューム番号に対する状態を、デフォルトの状態から更新する。
(S16)クラスタ制御部160は、管理装置400に稼働報告を行い、自ストレージのIOポート(ポートq1〜q8)をリンクアップさせる。そして、ストレージ起動処理が終了する。
(S17)クラスタ制御部160は、ペアのクラスタ設定テーブルを複製し、自ストレージのボリュームの同期を開始する。ここで、デフォルト設定が反映されたクラスタ設定テーブルは、ストレージ装置100,200の何れか一方が保持すればよい。この場合、デフォルトのクラスタ設定テーブルを有していないストレージ装置はペアの相手ストレージから当該クラスタ設定テーブルを取得し、デフォルト設定を自身のクラスタ設定テーブル(例えば、クラスタ設定テーブル151)に反映させる。あるいは、ストレージ装置100,200の両方が、デフォルトのクラスタ設定テーブルを予め保持していてもよい。このとき、クラスタ制御部160は、各ボリュームについて、相手ストレージの相手側Inquiry情報を取得して、Inquiry変換情報153を生成する。
(S18)クラスタ制御部160は、クラスタ設定テーブル151に基づいて、自ストレージの各ボリュームの「Active」または「Standby」を設定する。そして、ステップS16に処理が進む。
図21は、パス報告処理の例を示すフローチャートである。
(S20)クラスタ制御部160は、サーバ装置300からボリュームの問い合わせを受信する。ボリュームの問い合わせは、例えば、サーバ装置300によるSCSIのInquiryコマンドの発行により行われる。
(S21)クラスタ制御部160は、Inquiry変換情報153に基づいて、自ストレージにおけるスタンバイボリュームのInquiry情報を相手ストレージのアクティブボリュームのInquiry情報に変換する。
(S22)クラスタ制御部160は、自ストレージのアクティブボリュームに関して、自ストレージへのパスを主パスとする指示を、Inquiry情報とともにサーバ装置300に送信する。
(S23)クラスタ制御部160は、自ストレージにおけるスタンバイボリュームに関して、自ストレージへのパスを副パスとする指示を、ステップS21における変換後のInquiry情報とともにサーバ装置300に送信する。そして、パス報告処理が終了する。
サーバ装置300は、Inquiryコマンドに対するステップS22,S23の応答を受信することで、パス管理テーブル311を生成し、記憶部310に格納する。
このように、ストレージ装置100,200は、サーバ装置300起動時などに、サーバ装置300のOSのデバイス認識処理で発生するInquiryコマンドに応答する。このとき、ストレージ装置100,200は、クラスタボリュームに属するアクティブストレージ、スタンバイストレージを、別経路の同一ボリュームとして、サーバ装置300に報告する。すると、サーバ装置300からは両ボリュームが同一ボリュームとして認識される。特に、当該Inquiryコマンドへの応答時に、アクティブボリュームへのパスを主パス、スタンバイボリュームへのパスを副パスとして報告することで、サーバ装置300からのIOは、主パスを優先して行われるようになる。
図22は、読み出し処理の例を示すフローチャートである。
(S30)IO処理部170は、ボリューム140に対するデータの読み出し要求を、サーバ装置300から受信する(なお、ボリューム140は、アクティブボリュームでもよいし、スタンバイボリュームでもよい)。IO処理部170は、クラスタ状態テーブル152を参照して、ボリューム140が属するクラスタ(クラスタボリューム)の状態を判定する。クラスタの状態が「等価」の場合、ステップS31に処理が進む。クラスタの状態が「コピー中断中」の場合、ステップS33に処理が進む。クラスタの状態が「同期コピー中」の場合、ステップS37に処理が進む。
(S31)IO処理部170は、自ストレージで該当のデータを読み出す。
(S32)IO処理部170は、サーバ装置300に、読み出されたデータを送信する。そして、読み出し処理が終了する。
(S33)IO処理部170は、自ストレージが正常系であるか否かを判定する。自ストレージが正常系である場合、ステップS31に処理が進む。自ストレージが正常系でない、すなわち、異常系である場合、ステップS34に処理が進む。
(S34)IO処理部170は、相手ストレージ(ストレージ装置200)に読み出し依頼を行う。具体的には、IO処理部170は、該当のデータの読み出し要求を、RECパスを介して、相手ストレージに送信する。
(S35)相手ストレージは、データの読み出し処理を実行する。相手ストレージによるデータの読み出し処理の詳細は後述される。
(S36)IO処理部170は、相手ストレージから、ステップS35により読み出されたデータを受信する。そして、ステップS32に処理が進む。
(S37)IO処理部170は、該当のクラスタボリュームに関して、自ストレージが同期コピーのコピー元であるか否かを判定する。自ストレージが同期コピーのコピー元である場合、ステップS31に処理が進む。自ストレージが同期コピーのコピー元でない場合、ステップS38に処理が進む。
(S38)IO処理部170は、読み出し対象のデータが格納されたボリューム140における領域がコピー済領域であるか否かを判定する。コピー済領域である場合、ステップS31に処理が進む。コピー済領域でない場合、ステップS34に処理が進む。
図23は、相手ストレージ読み出し処理の例を示すフローチャートである。
相手ストレージ読み出し処理は、ステップS35に相当する。
(S40)IO処理部270は、ストレージ装置100からデータの読み出し要求を受信すると、ボリューム140のペアであるボリューム240から該当のデータを読み出す。
(S41)IO処理部270は、読み出したデータをペア側のストレージ(ストレージ装置100)に送信する。
(S42)IO処理部270は、読み出し完了をペア側のストレージに通知する。そして、相手ストレージ読み出し処理が終了する。
図24は、書き込み処理の例を示すフローチャートである。
(S50)IO処理部170は、ボリューム140に対するデータの書き込み要求を、サーバ装置300から受信する(なお、ボリューム140は、アクティブボリュームであるとする)。IO処理部170は、クラスタ状態テーブル152を参照して、ボリューム140が属するクラスタ(クラスタボリューム)の状態を判定する。クラスタの状態が「等価」の場合、ステップS51に処理が進む。クラスタの状態が「コピー中断中」の場合、ステップS56に処理が進む。クラスタの状態が「同期コピー中」の場合、ステップS58に処理が進む。
(S51)IO処理部170は、自ストレージのボリューム140に対してデータの書き込みを行う。
(S52)IO処理部170は、相手ストレージ(ストレージ装置200)に書き込み依頼を行う。具体的には、IO処理部170は、該当のデータの書き込み要求を、RECパスを介して、相手ストレージに送信する。
(S53)相手ストレージは、データの書き込み処理を実行する。相手ストレージによるデータの書き込み処理の詳細は後述される。
(S54)IO処理部170は、相手ストレージから、ステップS52の書き込み要求に対する書き込み完了通知を受信する。
(S55)IO処理部170は、サーバ装置300に書き込み完了通知を送信する。そして、書き込み処理が終了する。
(S56)IO処理部170は、自ストレージが正常系であるか否かを判定する。自ストレージが正常系である場合、ステップS57に処理が進む。自ストレージが正常系でない場合、ステップS52に処理が進む。
(S57)IO処理部170は、自ストレージのボリューム140に対してデータの書き込みを行う。そして、ステップS55に処理が進む。
(S58)IO処理部170は、ボリューム140における該当のデータの書き込み対象の領域がコピー済領域であるか否かを判定する。コピー済領域の場合、ステップS51に処理が進む。コピー済領域でない場合、ステップS59に処理が進む。
(S59)IO処理部170は、該当のクラスタボリュームに関して、自ストレージが同期コピーのコピー元であるか否かを判定する。自ストレージが同期コピーのコピー元である場合、ステップS57に処理が進む。自ストレージが同期コピーのコピー元でない場合、ステップS52に処理が進む。
図25は、相手ストレージ書き込み処理の例を示すフローチャートである。
相手ストレージ書き込み処理は、ステップS53に相当する。
(S60)IO処理部270は、ストレージ装置100からデータの書き込み要求を受信する。すると、IO処理部270は、記憶部250に格納されたクラスタ状態テーブルを参照して、書き込み対象のボリューム240が属するクラスタ(クラスタボリューム)の状態が「同期コピー中」であるか否かを判定する。クラスタの状態が「同期コピー中」の場合、ステップS63に処理が進む。クラスタの状態が「同期コピー中」でない場合、ステップS61に処理が進む。
(S61)IO処理部270は、データの書き込み要求に応じて、ボリューム240にデータを書き込む。
(S62)IO処理部270は、書き込み完了をペア側のストレージ(ストレージ装置100)に通知する。そして、相手ストレージ書き込み処理が終了する。
(S63)IO処理部270は、自ストレージ(ストレージ装置200)が同期コピーのコピー先であるか否かを判定する。自ストレージが同期コピーのコピー先である場合、ステップS64に処理が進む。自ストレージが同期コピーのコピー先でない場合(すなわち、コピー元である場合)、ステップS61に処理が進む。
(S64)IO処理部270は、書き込み要求に応じたデータの書き込み対象の領域と同じ領域への書き込み要求をペア側のストレージに送信済であるか否かを判定する。同じ領域への書き込み要求をペア側のストレージに送信済である場合、ステップS65に処理が進む。同じ領域への書き込み要求をペア側のストレージに送信済でない場合、ステップS61に処理が進む。
(S65)IO処理部270は、異常終了をペア側のストレージに通知する。そして、相手ストレージ書き込み処理が終了する。
次に、サーバ装置300によるパス制御の手順を説明する。
図26は、サーバIO処理の例を示すフローチャートである。
(S70)アクセス処理部330は、パス管理テーブル311を参照して、アクセス対象のボリュームに対する主パスを特定し、特定した主パスのうち、正常な主パスがあるか否かを判定する。正常な主パスがある場合、ステップS71に処理が進む。正常な主パスがない場合、ステップS74に処理が進む。
(S71)アクセス処理部330は、主パスを使用してIO要求(データの読み出し要求、または、書き込み要求)を発行する。
(S72)アクセス処理部330は、ステップS71で発行したIO要求に対するストレージ装置100(または、ストレージ装置200)の応答は正常であるか否かを判定する。正常である場合、サーバIO処理が終了する。正常でない場合、ステップS73に処理が進む。
(S73)アクセス処理部330は、ステップS71でIO要求の発行に用いた主パスを異常とする。そして、ステップS70に処理が進む。
(S74)アクセス処理部330は、パス管理テーブル311を参照して、アクセス対象のボリュームに対する副パス(正常な副パス)を特定し、特定した副パスを使用して、IO要求を発行する。
(S75)アクセス処理部330は、ステップS74で発行したIO要求に対するストレージ装置200(または、ストレージ装置100)の応答は正常であるか否かを判定する。正常である場合、ステップS76に処理が進む。正常でない場合、ステップS77に処理が進む。
(S76)ストレージ装置200(または、ストレージ装置100)は、アクティブ/スタンバイ切り替え処理を実行する。アクティブ/スタンバイ切り替え処理の詳細は後述される。そして、サーバIO処理が終了する。
(S77)アクセス処理部330は、ステップS74でIO要求の発行に用いた副パスを異常とする。
(S78)アクセス処理部330は、アクセス対象のボリュームに対する副パスのうち、正常な副パスがあるか否かを判定する。正常な副パスがある場合、ステップS74に処理が進む。正常な副パスがない場合、ステップS79に処理が進む。
(S79)アクセス処理部330は、ユーザに異常を通知する。例えば、アクセス処理部330は、ログに異常を示すメッセージを記録したり、ディスプレイ62に異常を示すメッセージを表示したりする。そして、サーバIO処理が終了する。
図27は、アクティブ/スタンバイ切り替えの例を示すフローチャートである。
アクティブ/スタンバイ切り替えの処理は、ステップS76に相当する。ストレージ装置200の手順を説明するが、ストレージ装置100のクラスタ制御部160も自ストレージのスタンバイボリュームへのアクセスに応じて同様の手順を実行する。
(S80)クラスタ制御部260は、ストレージ内のIOカウントアップを行う。すなわち、クラスタ制御部260は、ストレージ装置200がサーバ装置300から受信したスタンバイボリュームに対するIO要求のカウント値(IOカウント値)をインクリメントする。
(S81)クラスタ制御部260は、IOカウント値が閾値に達したか否かを判定する。IOカウント値が閾値に達した場合、ステップS82に処理が進む。IOカウント値が閾値に達していない場合、アクティブ/スタンバイ切り替えの処理が終了する。
(S82)クラスタ制御部260は、自ストレージのスタンバイボリュームをアクティブボリュームに切り替える。クラスタ制御部260は、切り替えに応じて、記憶部250に記憶されたクラスタ設定テーブルの各ボリュームの状態を更新する。このとき、クラスタ制御部260は、相手ストレージ(ストレージ装置100)に対して、アクティブボリュームをスタンバイボリュームに切り替えるように指示する。すると、クラスタ制御部160は、ストレージ装置100のアクティブボリュームをスタンバイボリュームに切り替える。そして、アクティブ/スタンバイ切り替えの処理が終了する。
なお、クラスタ制御部160,260は、例えば、所定期間、自ストレージにおけるスタンバイボリュームに対するIOカウント値の更新がない場合、IO要求のカウント数を0にリセットする。
図26,図27の手順によれば、主パス障害時においても、図17で例示したように、スタンバイ側のストレージ装置で副パスを介したボリュームへのアクセスを適切に継続できる。
次に、ストレージ装置100によるペア監視処理の手順を説明する。ペア監視処理は、所定の周期で実行される。また、ストレージ装置100による手順を説明するが、ストレージ装置200も同様の手順を実行する。更に、管理装置400は、ストレージ装置100,200に対して、定期的に死活監視用のパケットを送信し、ストレージ装置100,200の状態を、ストレージ監視テーブル411に記録している。
図28は、ペア監視処理の例を示すフローチャートである。
(S90)クラスタ制御部160は、ペアのストレージ装置200へポーリングする。 (S91)クラスタ制御部160は、ストレージ装置200からポーリングに対する応答があるか否かを判定する。応答がある場合、ペア監視処理が終了する。応答がない場合、ステップS92に処理が進む。
(S92)クラスタ制御部160は、管理装置400にペアのストレージ(ストレージ装置200)の状態を確認する。
(S93)クラスタ制御部160は、管理装置400に対する確認結果に基づいて、ストレージ装置200の状態を判定する。ストレージ装置200の状態が「停止中」の場合、ステップS94に処理が進む。ストレージ装置200の状態が「稼働中」の場合、ステップS95に処理が進む。
(S94)クラスタ制御部160は、自ストレージのボリュームをアクティブに設定する。すなわち、クラスタ制御部160は、自ストレージのスタンバイボリュームを全てアクティブボリュームに変更する。クラスタ制御部160は、設定変更の内容をクラスタ設定テーブル151に反映させる。そして、ペア監視処理が終了する。
(S95)クラスタ制御部160は、自ストレージのスタンバイボリュームに対するIO要求に対してエラーを応答するように制御する。そして、ペア監視処理が終了する。
図28の手順によれば、アクティブ側ストレージ装置がダウンした場合や全てのRECパスを介した通信が不能となっても、サーバ装置300によるボリュームへのアクセスを適切に継続できる。
次に、ストレージシステム2に対する比較例として、スイッチを用いるストレージシステムを説明する。
図29は、ストレージシステムの比較例を示す図である。
ストレージシステム3は、ストレージ装置100,200、サーバ装置300およびスイッチ500を有する。スイッチ500は、例えば、ファイバチャネルスイッチである。比較例のシステム構成では、ストレージ装置100,200およびサーバ装置300は、直接接続されず、スイッチ500により間接的に接続される。スイッチ500は、ポートt1,t2,t3,t4,t5,t6を有する。
ポートp1は、ポートt1と、ケーブルで接続される。ポートp3は、ポートt2と、ケーブルで接続される。ポートq1は、ポートt3と、ケーブルで接続される。ポートq5は、ポートt4と、ケーブルで接続される。ポートr1は、ポートt5と、ケーブルで接続される。ポートr5は、ポートt6と、ケーブルで接続される。
また、ポートq2は、ポートr2と、ケーブルで接続される。ポートq6は、ポートr6と、ケーブルで接続される。これら以外のポートp2,p4,q3,q4,q7,q8,r3,r4,r7,r8にはケーブルが接続されていない。
ストレージシステム3では、サーバ装置300からクラスタ化されたストレージ装置100,200へのアクセスパスの切り替えはスイッチ500により行われる。例えば、スイッチ500は、サーバ装置300からアクティブ側のストレージ装置100にアクセス不能となった場合、スタンバイ側のストレージ装置200へ、サーバ装置300からのアクセスパスの切り替えを行う。
具体的には、スイッチ500は、ポートq1,r1に同じWWNを付与し、ポートq5,r5に同じWWNを付与する。1台のスイッチ500に同一WWNのポートを接続することはできないため、スタンバイ側であるストレージ装置200のポートr1,r5はリンクダウンされる。すると、スイッチ500のポートt3,t4経由で、アクティブ側のストレージ装置100のボリューム140がサーバ装置300から認識され、ボリューム140へアクセスが可能になる。
アクティブ側のストレージ装置100へのアクセスに障害が発生した場合、スイッチ500は、ポートq1,q5のWWNをそれぞれ引き継いだポートr1,r5をリンクアップさせる。これにより、サーバ装置300からはスイッチ500のポートt5,t6を介して、同一のWWNによりスタンバイ側のボリューム240が認識され、ボリューム140に代えて、ボリューム240へのアクセスが可能になる。
しかし、ストレージシステム3のシステム構成では、同一WWNをもつポートをリンクダウン/リンクアップさせる方式のため、ストレージクラスタを構成するためにスイッチ500を要する。この場合、スイッチ500を用意するためのコストが問題となる。近年では、システムの大規模化に伴いスイッチの数が過大になる可能性がある。また、スイッチ500に対する設定作業や運用管理の工数も増える。
一方、ストレージシステム2では、ストレージクラスタを構成するためにスイッチ500を用いなくてよい。スイッチ500を省略可能にすることで、スイッチのコストや設定作業などの工数を削減できる。
また、ストレージシステム2では、アクティブ/スタンバイのボリュームセットが複数存在する場合、アクティブボリュームを各ノードに振り分けることで、1ノード(1つのストレージ装置)当たりの負荷が分散される。その結果、サーバ装置300からストレージ装置100,200に格納されたデータへのデータアクセスを高速化できる。
1 情報処理システム
10,20 ストレージ装置
11,21 記憶装置
12,22 制御装置
30 情報処理装置
31 記憶部
32 処理部
33,34 ポート
41 接続パス
42,43 パス
50 管理情報

Claims (7)

  1. 第1の記憶領域を含む第1の記憶装置と、前記第1の記憶領域に所定の識別情報を付与する第1の制御装置と、を備える第1のストレージ装置と、
    第2の記憶領域を含む第2の記憶装置と、前記第1のストレージ装置と接続パスを介して接続され、前記第2の記憶領域に前記識別情報と同一の前記識別情報を付与し、前記第1の記憶領域に格納されたデータの複製を、前記接続パスを介して前記第2の記憶領域に格納する第2の制御装置と、を備える第2のストレージ装置と、
    前記第1のストレージ装置と自装置とを接続する第1のパスを前記識別情報に対する主パスとする指示を前記第1のストレージ装置から受信し、前記第2のストレージ装置と自装置とを接続する第2のパスを前記識別情報に対する副パスとする指示を前記第2のストレージ装置から受信し、前記主パスを介して前記識別情報に対応する前記第1の記憶領域へのアクセスを行い、前記主パスを介したアクセスを行えなくなると、前記識別情報に対する前記副パスを特定し、前記副パスを介して前記識別情報に対応する前記第2の記憶領域へのアクセスを行う情報処理装置と、
    を有する情報処理システム。
  2. 前記第2のストレージ装置は、前記情報処理装置から前記アクセスの要求を受信すると、前記アクセスの要求を前記接続パスを介して前記第1のストレージ装置に送信し、前記アクセスの要求の数が閾値に達すると、前記情報処理装置からの全ての前記アクセスを前記第2のストレージ装置により処理するとともに、前記第2の記憶領域に格納されたデータの複製を、前記接続パスを介して、前記第1の記憶領域に格納する動作に切り替える、
    請求項1記載の情報処理システム。
  3. 前記第1のストレージ装置および前記第2のストレージ装置の死活監視を行う管理装置を更に有し、
    前記第2のストレージ装置は、前記接続パスを介して前記第1のストレージ装置との通信が不能になると、前記第1のストレージ装置の状態を前記管理装置に確認し、確認の結果、前記第1のストレージ装置が停止中の場合、前記情報処理装置からの全ての前記アクセスを前記第2のストレージ装置により処理する動作に切り替える、
    請求項1記載の情報処理システム。
  4. 前記第2のストレージ装置は、前記確認の結果、前記第1のストレージ装置が稼働中の場合、前記情報処理装置からの前記アクセスにエラーを応答することで、前記情報処理装置により前記第1のストレージ装置への前記アクセスをリトライさせる、
    請求項3記載の情報処理システム。
  5. 前記第1のストレージ装置は、前記情報処理装置からInquiryコマンドを受信すると、前記識別情報および前記主パスの情報を前記情報処理装置に報告し、
    前記第2のストレージ装置は、前記情報処理装置から前記Inquiryコマンドを受信すると、前記識別情報および前記副パスの情報を前記情報処理装置に報告する、
    請求項1乃至4の何れか1項に記載の情報処理システム。
  6. 第1の記憶領域を含む第1の記憶装置を有する第1のストレージ装置に接続された第1のポートと、
    前記第1のストレージ装置と接続パスを介して接続された第2のストレージ装置であって、前記第1の記憶領域に格納されたデータの複製が前記接続パスを介して格納される第2の記憶領域を含む第2の記憶装置を有する前記第2のストレージ装置に接続された第2のポートと、
    前記第1のストレージ装置と前記第1のポートとを接続する第1のパスを前記第1の記憶領域の識別情報に対する主パスとする指示を前記第1のストレージ装置から受信し、前記第2のストレージ装置と前記第2のポートとを接続する第2のパスを、前記識別情報と同一である、前記第2の記憶領域の前記識別情報に対する副パスとする指示を前記第2のストレージ装置から受信し、前記主パスを介して前記識別情報に対応する前記第1の記憶領域へのアクセスを行い、前記主パスを介したアクセスを行えなくなると、前記識別情報に対する前記副パスを特定し、前記副パスを介して前記識別情報に対応する前記第2の記憶領域へのアクセスを行う処理部と、
    を有する情報処理装置。
  7. 第1の記憶領域を含む第1の記憶装置と、
    他のストレージ装置が有する第2の記憶装置における第2の記憶領域の識別情報と同一の前記識別情報を前記第1の記憶領域に付与し、前記第2の記憶領域に格納されたデータの複製を、前記他のストレージ装置と自装置とを接続する接続パスを介して前記第1の記憶領域に格納し、情報処理装置と自装置とを接続するパスを、前記識別情報に対する副パスとする指示を前記情報処理装置に送信し、前記他のストレージ装置と前記情報処理装置とを接続する主パスを介して前記情報処理装置から前記第2の記憶領域へのアクセスを行えなくなると、前記副パスを介して、前記情報処理装置による前記アクセスを受け付け、前記第1の記憶領域への前記アクセスを行う制御装置と、
    を有するストレージ装置。
JP2019142917A 2019-08-02 2019-08-02 情報処理システム、情報処理装置およびストレージ装置 Pending JP2021026436A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019142917A JP2021026436A (ja) 2019-08-02 2019-08-02 情報処理システム、情報処理装置およびストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019142917A JP2021026436A (ja) 2019-08-02 2019-08-02 情報処理システム、情報処理装置およびストレージ装置

Publications (1)

Publication Number Publication Date
JP2021026436A true JP2021026436A (ja) 2021-02-22

Family

ID=74663032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019142917A Pending JP2021026436A (ja) 2019-08-02 2019-08-02 情報処理システム、情報処理装置およびストレージ装置

Country Status (1)

Country Link
JP (1) JP2021026436A (ja)

Similar Documents

Publication Publication Date Title
JP4738941B2 (ja) ストレージシステム及びストレージシステムの管理方法
JP5087249B2 (ja) ストレージシステムおよびストレージシステムの制御方法
JP4371724B2 (ja) 記憶システム及び記憶装置システム
US6883065B1 (en) System and method for a redundant communication channel via storage area network back-end
US7003688B1 (en) System and method for a reserved memory area shared by all redundant storage controllers
JP4480756B2 (ja) ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
US7127633B1 (en) System and method to failover storage area network targets from one interface to another
JP5057656B2 (ja) ストレージシステム及びストレージシステムの運用方法
US6996741B1 (en) System and method for redundant communication between redundant controllers
US6938122B2 (en) Remote mirroring in a switched environment
JP5412882B2 (ja) 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
JP6237406B2 (ja) 情報処理装置、ストレージシステム、およびプログラム
JP5959733B2 (ja) ストレージシステムおよびストレージシステムの障害管理方法
JP2007066162A (ja) ストレージシステム及びストレージシステムの管理方法
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
JP2006011874A (ja) ボリューム提供システム及び方法
JP4653965B2 (ja) 入出力インタフェースモジュールの管理方法
US20130124915A1 (en) Remote copy system and method
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
JP4911198B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP2014026321A (ja) ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム
US20090024768A1 (en) Connection management program, connection management method and information processing apparatus
US20160246746A1 (en) Sas configuration management
US7752340B1 (en) Atomic command retry in a data storage system
JP4433372B2 (ja) データアクセスシステム及び方法