JP2006293863A - ディスクアレイ装置及びその制御方法 - Google Patents

ディスクアレイ装置及びその制御方法 Download PDF

Info

Publication number
JP2006293863A
JP2006293863A JP2005116289A JP2005116289A JP2006293863A JP 2006293863 A JP2006293863 A JP 2006293863A JP 2005116289 A JP2005116289 A JP 2005116289A JP 2005116289 A JP2005116289 A JP 2005116289A JP 2006293863 A JP2006293863 A JP 2006293863A
Authority
JP
Japan
Prior art keywords
controller
fiber channel
array device
disk array
disk
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.)
Withdrawn
Application number
JP2005116289A
Other languages
English (en)
Inventor
Toshikatsu Nakamura
俊克 中村
Kenji Onabe
賢二 大鍋
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005116289A priority Critical patent/JP2006293863A/ja
Priority to US11/159,654 priority patent/US7370147B2/en
Priority to EP07012449A priority patent/EP1840745A1/en
Priority to DE602005001851T priority patent/DE602005001851T2/de
Priority to EP05256133A priority patent/EP1712997B1/en
Priority to CNB2005101322342A priority patent/CN100418047C/zh
Publication of JP2006293863A publication Critical patent/JP2006293863A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】 バックインターフェースの耐障害性を向上させながらも、低コストのディスクアレイ装置を提供する。
【解決手段】 本発明のディスクアレイ装置10は、ホスト装置70からのデータ入出力要求に応答してディスクドライブDRV0〜DRV14へのデータ入出力処理を行うデュアルコントローラを備えた装置であって、各々のコントローラ20,30は、1パスのFC41,51を介してホスト装置70にインターフェース接続するとともに、1パスのFC42,52を介してディスクドライブDRV0〜DRV14にインターフェース接続するFCコントローラ25,35と、ディスクドライブDRV0〜DRV14にループ接続する二つFC−AL61〜64の中から選択された何れか一つのFC−ALをFC42,52に接続切り替えするPBC27,37を備える。
【選択図】 図1

Description

本発明はディスクアレイ装置及びその制御方法に関する。
近年、IT技術の進展等によりディスクアレイ装置の高性能化、大容量化、低価格化の要求が高まっている。ディスクアレイ装置は、アレイ状に配置された多数のディスクドライブを備えており、RAID(Redundant Array of Independent Inexpensive Disks)に基づいて構築されている。ホスト装置は、ディスクアレイ装置に対してライトアクセスコマンド又はリードアクセスコマンドを発行することにより、ディスクドライブに対して、データの読み書きを行うことができる。このようなディスクアレイ装置においては、耐障害性向上や高性能化を目的として、デュアルコントローラ(二重化コントローラ)構成を採用するなど、内部装置を冗長構成している場合が多い(例えば、特許文献1)。ディスクアレイ装置においては、データ転送の高速化を図るため、ホスト装置とのインターフェース(以下、フロントインターフェースと称する。)、及びディスクドライブとのインターフェース(以下、バックインターフェースと称する。)のそれぞれについて、ファイバチャネルインターフェースを採用する場合があり、デュアルコントローラ構成のディスクアレイ装置においては、コントローラ一つあたりにつき、フロントインターフェース接続用のファイバチャネルプロトコルコントローラと、バックインターフェース接続用のファイバチャネルプロトコルコントローラをそれぞれ1つ備えていた。
特開2003−256150号公報
しかし、上述の構成では、高価なファイバチャネルプロトコルコントローラをコントローラ一つあたり2つ備えているため、製品コストが高くなる。ディスクアレイ装置の更なる普及のためには、製品コストの低下が求められている。そこで、コントローラ一つあたりのファイバチャネルプロトコルコントローラ数を1つに減らし、1つのファイバチャネルプロトコルコントローラでフロントインターフェース接続とバックインターフェース接続とを兼用させる構成も考えられる。しかし、バックインターフェース接続するファイバチャネルが1パスのみだと、高信頼性が要求されるディスクアレイ装置においては、耐障害性の観点で課題が残る。
一方、デュアルコントローラ構成を採用するディスクアレイ装置においては、一方のコントローラにコントローラを閉塞すべき障害が生じると、当該コントローラは、自身を閉塞するための閉塞処理を実行し、上位ホスト装置のI/Oは他方のコントローラにフェイルオーバーするように構成されている。従来の閉塞処理では、各種レジスタ情報等(障害情報)をキャッシュメモリに退避させる処理と、障害が生じたファイバチャネルプロトコルコントローラのホストインターフェースに実装されているGBICモジュール(Gigabit Interface Converter Module)の光出力機能を抑止する処理と、当該ファイバチャネルプロトコルコントローラを初期化する処理を実行していた。この閉塞処理により、ディスクアレイ装置からホスト装置へ応答信号が返送されなくなるので、ホスト装置は、ディスクアレイ装置に何等かの障害が発生したものと判断し、パス切り替えを行う。また、ストレージ管理者は、キャッシュメモリに退避された障害情報から障害原因を解析できる。
閉塞処理において、GBICモジュールの光出力機能を抑止するとともに、ファイバチャネルプロトコルコントローラを初期化する理由は以下の通りである。ファイバチャネルプロトコルコントローラは、ホスト装置との間で光信号の送受信を行うことによりファイバチャネルプロトコルに準拠したデータ通信を行う。データ通信が行われている間は、絶えずイベントが発生し、ファイバチャネルプロトコルコントローラからCPUに割り込み処理要求が入力される。この割り込み処理要求は、通常、コントローラ閉塞を行うためのタスク処理よりも優先順位が高く設定されている。このため、コントローラに障害が発生しても、ファイバチャネルプロトコルコントローラがホスト装置との間でデータ通信を行っている間は、ファイバチャネルプロトコルコントローラからCPUに絶えず割り込み処理要求が入力されるので、CPUは、いつまで経っても、コントローラ閉塞を行うためのタスク処理ができないこととなる。そこで、ディスクアレイ装置がホスト装置とSAN(Storage Area Network)を介してファイバチャネルプロトコルによるデータ通信を行うためのGBICモジュールの光出力機能を抑止するとともに、ファイバチャネルプロトコルコントローラをリセットすることにより、ホスト装置とファイバチャネルプロトコルコントローラとの間でデータ通信が行われないようにする。すると、ホスト装置とファイバチャネルプロトコルコントローラとの間のデータ通信に伴うイベントの発生が抑止され、ファイバチャネルプロトコルコントローラからCPUに割り込み処理要求がなされなくなるので、CPUは、コントローラ閉塞を行うためのタスク処理を実行できる。
ところが、ホスト装置とコントローラとの間のファイバチャネルプロトコルを制御するコア(以下、フロント側コアと称する。)と、コントローラとディスクドライブとの間のファイバチャネルプロトコルを制御するコア(以下、バック側コアと称する。)を単一のLSI内に実装したファイバチャネルプロトコルコントローラにおいては、両コアがPCI−Xバスで接続されている関係上、何れか一方のコアのみを初期化するということができない。このため、上述の閉塞処理においては、両コアを同時に初期化することになる。フロント側コアを制御するモジュールは、突然の初期化に対応できるように従来から設計されているが、バック側コアを制御するモジュールは、そのような配慮がなされていない。突然の初期化に対応できるように、バック側コアを制御するモジュールを改良するには、相当の労力を要する。このような理由から、両コアを単一のLSI内に実装するファイバチャネルプロトコルコントローラにおいては、安定した閉塞処理を行うための代替技術が必要になる。
本発明は上記の問題点に鑑みてなされたもので、本発明の目的の一つは、バックインターフェースの耐障害性を向上させながらも、低コストのディスクアレイ装置を提供することにある。
本発明の他の目的は、フロント側コアとバック側コアを単一のLSI内に実装するファイバチャネルプロトコルコントローラを備えたディスクアレイ装置において、コントローラの障害発生時に安定したコントローラ閉塞処理を行えるディスクアレイ装置の制御方法を提供することにある。
本発明の更に他の目的は、コントローラ障害を上位ホスト装置又はパス切り替えソフトウェアに検出させ、上位ホスト装置からのI/Oパスをフェイルオーバーさせるためのディスクアレイ装置の制御方法を提供することにある。
上記の課題を解決するため、本発明のディスクアレイ装置は、上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、デュアルコントローラを構成する各々のコントローラは、1パスのフロントインターフェース接続用ファイバチャネルを介して上位ホスト装置にインターフェース接続するとともに、1パスのバックインターフェース接続用ファイバチャネルを介してディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、ディスクドライブにループ接続する二つのFC−ALと、二つのFC−ALの中から選択された何れか一つのFC−ALをバックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、を備える。
接続切り替え回路は、例えば、二つのFC−ALのうち何れかのFC−ALにループ障害が生じた場合に、バックインターフェース接続用ファイバチャネルを、ループ障害が生じていないFC−ALに切り替え接続する。
本発明のディスクアレイ装置の制御方法は、上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うCPUと、上位ホスト装置又はディスクドライブとの間で入出力されるデータを一時的に格納するキャッシュメモリと、1パスのフロントインターフェース接続用ファイバチャネルを介して上位ホスト装置にインターフェース接続し、上位ホスト装置との間のファイバチャネルプロトコルを制御するコアと、1パスのバックインターフェース接続用ファイバチャネルを介してディスクドライブにインターフェース接続し、ディスクドライブとの間のファイバチャネルプロトコルを制御するコアとを単一のLSI回路内に実装したファイバチャネルプロトコルコントローラと、フロントインターフェース接続用ファイバチャネルを介して上位ホスト装置との間で光信号の送受信を行うGBICモジュールと、ディスクドライブにループ接続する二つのFC−ALと、二つのFC−ALの中から選択された何れか一つのFC−ALをバックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、を各コントローラ内に備えたデュアルコントローラ構成のディスアレイ装置の制御方法であって、CPUがファイバチャネルプロトコルコントローラからCPUへの割り込みを禁止するステップと、CPUが上位ホスト装置との間におけるファイバチャネルプロトコル上のデータ通信開始前のネゴシエーションを遮断するステップと、CPUがGBICモジュールからの光信号出力を抑止するステップと、CPUが障害情報をキャッシュメモリに退避させるステップと、を備える。
何れか一方のコントローラがこの制御方法によって閉塞する場合、或いはこの制御方法によって閉塞できない場合に、他方のコントローラが一方のコントローラのGBICモジュールからの光信号出力を抑止するのが好ましい。
本発明によれば、バックインターフェースの耐障害性を向上させながらも、低コストのディスクアレイ装置を提供できる。また、本発明によれば、コントローラの障害発生時に安定したコントローラ閉塞処理を行うことができ、その上、上位ホスト装置のI/Oパスフェイルオーバーが上手く動作するように誘導することができる。
以下、各図を参照して本発明の実施例について説明する。各実施例は特許請求の範囲を限定するものではなく、また実施例の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は本実施例に係るディスクアレイ装置10の構成を示している。ディスクアレイ装置10は、通信ネットワーク71を介してホスト装置(上位ホスト装置)70に接続している。ホスト装置70は、ディスクアレイ装置10の上位ホスト装置として機能するサーバ、パーソナルコンピュータ、ワークステーション、メインフレーム等である。通信ネットワーク71としては、例えば、LAN(Local Area Network)、SAN(Storage Area Network)、インターネット、専用回線等を挙げることができる。オープン系ホストの場合は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)、FCP(Fibre Channel Protocol )、iSCSI(internet Small Computer System Interface)等のプロトコルに基づいてデータ転送が行われる。メインフレーム系ホストの場合は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに基づいてデータ転送が行われる。
尚、ホスト装置70からNFS(Network File System)等のプロトコルにより、ファイル名指定によるデータ出力要求を受け付けるように構成されたNAS(Network Attached Storage)機能を搭載してもよい。
ディスクアレイ装置10は、二重化されたコントローラ20,30を備えたデュアルコントローラ構成を採用している。コントローラ20は、主に、CPU21、ローカルメモリ(LM)22、データコントローラ(D−CTL)23、キャッシュメモリ(CM)24、ファイバチャネルプロトコルコントローラ(F−CTL)25、PBC(Port Bypass Circuit)27、エンクロージャーコントローラ(E−CTL)28、及びFC−AL(Fibre Channel Arbitrated Loop)61,62を備える。
CPU21は、ホスト装置70からのデータ入出力要求に応答して、複数のディスクドライブDRV0〜DRV14へのデータ入出力処理(ライトアクセス、又はリードアクセス)を制御するプロセッサであり、ローカルメモリ22に格納されたマイクロプログラムを実行することによりデータコントローラ23、ファイバチャネルプロトコルコントローラ25、及びPBC27等を制御する。データコントローラ23は、CPU21の制御により、ファイバチャネルプロトコルコントローラ25とキャッシュメモリ24との間のデータ転送を制御する。キャッシュメモリ24は、ファイバチャネルプロトコルコントローラ25を介してフロントインターフェース又はバックインターフェースとの間で授受されるデータを一時的に記憶する。
ファイバチャネルプロトコルコントローラ25は、フロントインターフェース接続用ファイバチャネル41を介してホスト装置70にインターフェース接続し、ファイバチャネルプロトコルによるブロックアクセス要求を受信する機能を有する。更に、ファイバチャネルプロトコルコントローラ25は、バックインターフェース接続用ファイバチャネル42を介してディスクドライブDRV0〜DRV14にインターフェース接続し、ディスクドライブDRV0〜DRV14を制御するコマンド等を規定するプロトコルに従って、ディスクドライブDRV0〜DRV14へのデータ入出力要求を送信する機能を有する。PBC27は、バックインターフェース接続用ファイバチャネル42の接続先として、二つのFC−AL61,62のうち何れか一方又は両者を選択し、接続切り替えを行う。
FC−AL61は、FC−AL62上に実装されたPBC82を介して、偶数番号のディスクドライブDRV0,DRV2,…,DRV14にループ接続している。FC−AL62は、FC−AL62上に実装されたPBC82を介して、奇数番号のディスクドライブDRV1,DRV3,…,DRV13にループ接続している。PBC82は、システム運用上の障害を最小限に止めて、ノードの追加や削除が行えるようにFC−AL61,62を自動的にオープン又はクローズする電子スイッチである。PBC82は、ファイバチャネルプロトコルコントローラ25やディスクドライブDRV0〜DRV14をバイパスして、これらをFC−AL61,62から電気的に除外する機能を有する。例えば、PBC82は、障害が発生したディスクドライブDRV0〜DRV14をFC−AL61,62から切り離して、他のディスクドライブDRV0〜DRV14とファイバチャネルプロトコルコントローラ25との間の通信を可能にする。また、PBC82は、FC−AL61,62の動作を維持したままで、ディスクドライブDRV0〜DRV14の抜き差しを可能にする。例えば、ディスクドライブDRV15(図示せず)が新たに装着された場合には、そのディスクドライブDRV15をFC−AL61,62に取り込み、ファイバチャネルプロトコルコントローラ25との間の通信を可能にする。
エンクロージャーコントローラ(E−CTL)28は、SES(SCSI Enclosure Surcuit)ドライブを制御する。SESドライブは、SCSI3(Small Computer System Interface 3)規格に規定されるSES(SCSI Enclosure Services)やESI(Enclosure Service I/F)の機能を備えており、SES(SCSI Enclosure Service)やESI(Enclosure Service I/F)の機能を動作させることができる。本実施例では、SESドライブは、FC−AL61〜64の他に、エンクロージャーコントローラ28とも通信可能なディスクドライブである。ここでは、各FC−ALにつき2台のディスクドライブDRV0〜DRV3をSESドライブとしているが、全てのディスクドライブDRV0,DRV2,…,DRV14をSESドライブとしてもよい。
尚、コントローラ20に実装されているフロントインターフェース接続用ファイバチャネル41、及びバックインターフェース接続用ファイバチャネル42はそれぞれ1パスである。
一方、コントローラ30は、コントローラ20と同様に構成されており、CPU31、ローカルメモリ(LM)32、データコントローラ(D−CTL)33、キャッシュメモリ(CM)34、ファイバチャネルプロトコルコントローラ(FC−CTL)35、PBC37、エンクロージャーコントローラ(E−CTL)38、フロントインターフェース接続用ファイバチャネル51、バックインターフェース接続用ファイバチャネル52、及びFC−AL63,64を備えている。PBC37は、バックインターフェース接続用ファイバチャネル52の接続先として、二つのFC−AL63,64のうち何れか一方又は両者を選択し、接続切り替えを行う。FC−AL63は、PBC82を介して偶数番号のディスクドライブDRV0,DRV2,…,DRV14にループ接続している。FC−AL64は、PBC82を介して奇数番号のディスクドライブDRV1,DRV3,…,DRV13にループ接続している。
尚、コントローラ30に実装されているフロントインターフェース接続用ファイバチャネル51、及びバックインターフェース接続用ファイバチャネル52はそれぞれ1パスである。
データコントローラ23,33はバス81を介して相互に接続されており、一方のデータコントローラ23(又は33)がバス81を介して他方のデータコントローラ33(又は23)に対して、コマンド転送やデータ転送等を行うこともできる。例えば、両コントローラ20,30が分担して同一の論理ボリュームに対するアクセスを行う場合に、両コントローラ間でライトデータ又はリードデータの転送を行うこともできる。
コントローラ20,30は、ディスクドライブDRV0,DRV2,…,DRV14をいわゆるRAID方式に規定されるRAIDレベル(例えば、0,1,5)で制御することができる。RAID方式においては、複数のディスクドライブDRV0,DRV2,…,DRV14が一つのグループ(以下、RAIDグループと称する。)として管理される。RAIDグループ上には、ホスト装置70からのアクセス単位である論理ボリュームが形成されている。各論理ボリュームには、LUN(Logical Unit Number)と呼ばれる識別子が付与されている。
尚、PBC27とFC−AL61,62との間には、それぞれPBC101,102が実装されている。PBC101は、FC−AL61に障害が生じた場合には、バックインターフェース接続用ファイバチャネル42を、ファイバチャネル111(点線)を介してFC−AL63に接続する。PBC102は、FC−AL62に障害が生じた場合には、バックインターフェース接続用ファイバチャネル42を、ファイバチャネル112(点線)を介してFC−AL64に接続する。
同様に、PBC37とFC−AL63,64との間には、それぞれPBC103,104が実装されている。PBC103は、FC−AL63に障害が生じた場合には、バックインターフェース接続用ファイバチャネル52を、ファイバチャネル113(点線)を介してFC−AL61に接続する。PBC104は、FC−AL64に障害が生じた場合には、バックインターフェース接続用ファイバチャネル52を、ファイバチャネル114(点線)を介してFC−AL62に接続する。
仮に、各コントローラ20,30に実装されている全てのPBC101〜104がファイバチャネル111〜114に接続することにより、バックインターフェース接続用ファイバチャネル42,52が相手コントローラ側のFC−AL61〜64に接続された状態を想定すると、この状態は、例えば、特開2000−187561号の図1に示されているように、両コントローラ間を接続するファイバチャネルループに複数のディスクドライブが接続する状態と同じになる。
以下の説明においては、FCAL61をコントローラ20の稼働系FC−AL、FC−AL62をコントローラ20の待機系FC−AL、FC−AL63をコントローラ30の待機系FC−AL、FC−AL64をコントローラ30の稼働系FC−ALとした場合を想定して説明を進める。
図2は複数のディスクドライブDRV0〜DRV14に形成される論理ボリュームを示している。ここでは、説明の便宜上、二つの論理ボリュームLU1,LU2が示されている。ホスト装置70に搭載されているOS(Operating System)は、論理ボリューム名を指定してディスクアレイ装置10にアクセスする。仮に、各論理ボリュームLU1,LU2を構成する物理ディスクを一つにすると、その物理ディスクが故障したときに、その論理ボリュームLU1,LU2は使用不能となる。これを防止するために、RAID方式では、各論理ボリュームLU1,LU2が異なる複数のディスクドライブDRV0〜DRV14上に形成されている。その一方で、コントローラ20の稼働系FC−AL61は偶数番号のディスクドライブDRV0,2,4,…,14に接続し、コントローラ30の稼働系FC−AL64は奇数番号のディスクドライブDRV1,3,4,…,13に接続しているので、各々の論理ボリュームLU1,LU2へのアクセスは、必ずしも何れか一方のコントローラ20又は30のみが行うものではなく、両コントローラ20,30が協調制御の下、協力して行うように構成してもよい。
さて、ホスト装置70からディスクアレイ装置10の論理ボリュームLU1又はLU2に対して、ライトアクセスが行われると、一方のコントローラ20内のキャッシュメモリ24に格納されるライトデータは、バス81を介して他方のコントローラ30内のキャッシュメモリ34にも格納される。このようにデータを二重化することで、一方のコントローラ20に障害が生じた場合でも、他方のコントローラ30にフェイルオーバーできる。キャッシュメモリ24,34にライトデータが格納された時点でディスクアレイ装置10はホスト装置70に対してライトアクセス完了の通知を行う。次いで、コントローラ20は、FC−AL61を介してディスクドライブDRV0,DRV2,…,DRV14へのライトアクセスを行う。ライトアクセスが行われる論理ボリュームLU1又はLU2は、偶数番号のディスクドライブDRV0,DRV1,…,DRV14だけでなく、奇数番号のディスクドライブDRV1,DRV3,…,DRV13をも含むので、奇数番号のディスクドライブDRV1,DRV3,…,DRV13へのライトアクセスは、コントローラ30がFC−AL64を介して行う。
一方、ホスト装置70からディスクアレイ装置10の論理ボリュームLU1又はLU2に対して、リードアクセスが行われると、コントローラ20はキャッシュメモリ24をチェックし、リードアクセスの対象となるデータがある場合には、該当データを読み取ってホスト装置70に送信する。キャッシュメモリ24に該当データがない場合には、コントローラ20は、FC−AL61を介してディスクドライブDRV0,DRV2,…,DRV14へのリードアクセスを行う。リードアクセスが行われる論理ボリュームLU1又はLU2は、偶数番号のディスクドライブDRV0,DRV1,…,DRV14だけでなく、奇数番号のディスクドライブDRV1,DRV3,…,DRV13をも含むので、奇数番号のディスクドライブDRV1,DRV3,…,DRV13へのリードアクセスはコントローラ30がFC−AL64を介して行う。各コントローラ20,30によって読み出されたリードデータはキャッシュメモリ24,34に二重書きされる。
このように、一つの論理ボリュームに対するアクセスを、両コントローラ20,30が協調制御の下、協力して行うことにより、各コントローラ20,30の処理負荷を均等化できる。本実施例では、偶数番号のディスクドライブDRV0,DRV1,…,DRV14と、奇数番号のディスクドライブDRV1,DRV3,…,DRV13とに二分して、各コントローラ20,30の処理負荷を均等化する例を示したが、各コントローラ20,30が担当するディスクドライブ数が略同程度になるように、例えば、ディスクドライブDRV0〜DRV7と、ディスクドライブDRV8〜DRV14とに二分して、各コントローラ20,30の処理負荷を均等化してもよい。
また、本実施例では、二つのPBC27,37を制御して、バックインターフェース接続用ファイバチャネル42,52を稼働系FC−AL61,64に接続するだけで、全てのディスクドライブDRV0〜DRV14は、何れか一方のコントローラ20又は30に接続されるため、FC−AL61〜64上に実装された個々のPBC82を個別に制御する必要がなく、制御が容易である。また、各CPU21,31は、各コントローラ内の稼働系FC−ALと待機系のFC−ALを区別することなく、両者とも同一のデバイスとして認識しているので、制御が容易である。
ところで、FC−AL61〜64に接続する各ディスクドライブDRV0〜DRV14のポートに障害が生じると、当該ポートに接続するFC−AL61〜64にはパケットが流れなくなり、ループ障害が生じる。ループ障害が生じると、ディスクドライブDRV0〜DRV14へのアクセスが不能になるので、障害を回避する必要がある。ここでは、説明を簡略化するため、FC−AL61側に接続するディスクドライブDRV2の片側のポートP1に障害が生じた場合を想定し、その障害回避処理について、図3を参照しながら説明する。
図3はループ障害回避処理ルーチンを示している。同図において、FC−AL61側に接続するディスクドライブDRV2のポートP1に障害が生じると(S101;YES)、CPU21は、バックインターフェース接続用ファイバチャネル42の接続先をFC−AL61(稼働系FC−AL)からFC−AL62(待機系FC−AL)に切り替える(S102)。障害発生の有無は、例えば、エラーメッセージの検出、アクノリッジ信号の未到達或いはタイムアウト等によって検出され、ファイバチャネルプロトコルコントローラ25からデータコントローラ23経由でCPU21に通知される。
次いで、CPU21は、FC−AL62からSESドライブ経由でエンクロージャーコントローラ28又は38にSESコマンドを送信する(S103)。SESコマンドには、被疑ディスクドライブ(障害が生じていると推定されるディスクドライブ)のFCループ上におけるAL_PA(Arbitrated Loop Physical Address)が含まれている。
SESコマンドを受信したエンクロージャーコントローラ28又は38は、PBC82を制御して、AL_PAによって指定された被疑ディスクドライブとFC−AL61との接続を解除する(S104)。例えば、ディスクドライブDRV0が被疑ディスクドライブとして指定されると、ディスクドライブDRV0とFC−AL61との接続が解除される。
次いで、CPU21は、バックインターフェース接続用ファイバチャネル42の接続先をFC−AL62からFC−AL61に切り替えて(S105)、FC−AL61のループ障害が解消したか否かをループ診断する(S106)。本例では、ディスクドライブDRV2のポートP1(片側のポート)に障害が生じた場合を想定しているので、ディスクドライブDRV0を接続解除してもFC−AL61のループ障害は解消しない。
ループ障害が解消しない場合は(S106;NO)、被疑ディスクドライブを逐次変更しながら、ループ障害が解消するまでS102〜S105を繰り返し実行する。そして、ディスクドライブDRV2とFC−AL61との接続が解除されたところで、FC−AL61のループ障害が解消される。
このように、稼働系のFC−AL61にループ障害が生じても、バックインターフェース接続用ファイバチャネル42の接続先を待機系のFC−AL62に切り替えて、SESドライブ経由でエンクロージャーコントローラ28又は38にSESコマンドを送信し、PBC82によって被疑ディスクドライブの接続解除を行うことにより、FC−AL61のループ障害を解消できる。また、本例では、FC−AL63側に接続するディスクドライブDRV2のポートP2には障害が生じていないので、FC−AL63又は64からSESドライブ経由でエンクロージャーコントローラ28又は38にSESコマンドを送信し、被疑ディスクドライブの接続解除を行うこともできる。
尚、例えば、ディスクドライブDRV2の両ポートP1,P2に障害が生じると、FC−AL61,63にLISM(Loop Initialization Select Master)障害が生じることとなるが、PBC27を制御して、バックインターフェース接続用ファイバチャネル42の接続先を待機系のFC−AL62に切り替えて、SESドライブ経由でエンクロージャーコントローラ28又は38にSESコマンドを送信することにより、或いはバックインターフェース接続用ファイバチャネル52に常時接続している稼働系のFC−AL64からSESドライブ経由でエンクロージャーコントローラ28又は38にSESコマンドを送信することにより、被疑ディスクドライブの接続解除を行うことができる。
更に、各FC−AL61〜64に生じるループ障害は、これらFC−AL61〜64自体の破損又は経年劣化等によるインタミテント障害によるものや、これらFC−AL61〜64に実装されているデバイス(例えば、PBC82)の不具合等によるインタミテント障害によっても生じ得る。このような原因によるループ障害に対しては、FC−AL61〜64とディスクドライブDRV0〜DRV14との接続を解除しても解消されないので、バックインターフェース接続用ファイバチャネル42,52の接続先を、それぞれ待機系のFC−AL62,63に切り替える必要がある。
本実施例によれば、各コントローラ20,30に実装されるバックインターフェース接続用ファイバチャネル42,52は1パスのみであるが、ディスクドライブDRV0〜DRV14にインターフェース接続するFC−ALを各コントローラ20,30につき二重化(冗長構成)しているので、耐障害性に優れている。
図4はファイバチャネルプロトコルコントローラ25,35を中心とするディスクアレイ装置10の主要部を示している。説明の便宜上、コントローラ内の一部の回路要素(ローカルメモリ22,32、エンクロージャーコントローラ28,38等)と、バックインターフェース周辺のハードウエア(PBC27,37,101,102,103,104、FC−AL61,62,63,64等)の図示は省略している。
ファイバチャネルプロトコルコントローラ25は、フロント側コア25aとバック側コア25bを単一のLSI内に実装した回路構成を備えている。コア25aは、ホスト装置70に対するデータ通信におけるファイバチャネルプロトコルを制御するための回路であり、例えば、ホスト装置70からのファイバチャネルプロトコルによるブロックアクセス要求を受け付ける機能を有する。コア25bは、ディスクドライブDRV0〜DRV14に対するデータ入出力におけるファイバチャネルプロトコルを制御するための回路であり、例えば、ディスクドライブDRV0〜DRV14を制御するコマンド等を規定するプロトコルに従って、ディスクドライブDRV0〜DRV14へのデータ入出力要求を処理する。コア25aとコア25bは、それぞれ独立したモジュールによって制御されている。
PCI−Xバス29は、コントローラ20のフロントインターフェース、バンクインターフェース、ファイバチャネルプロトコルコントローラ25、及びデータコントローラ23を相互に接続する。PCI−Xバス29は、ファイバチャネルプロトコルコントローラ25内において二股に分岐し、コア25a,25bに接続している。フラッシュメモリ(FM)161は、CPU21とデータコントローラ23とを結線するPCI−Xバスに分岐接続しており、コントローラ閉塞時に必要最小限の障害情報を退避できるように構成されている。ここでは、必要最小限の障害情報を格納するメモリ装置として、フラッシュメモリを例示するが、その他の不揮発性メモリを使用することもできる。コントローラ20のフロントインターフェースには、GBICモジュール151が実装されている。通信ネットワーク71は、例えば、光ファイバネットワークによって構成されたSANである。ホスト装置70と通信ネットワーク71とのインターフェースには、HBA(Host Bus Adapter)72が実装されている。
尚、コントローラ30内部の回路構成は、コントローラ20の回路構成と同様であるため、詳細な説明は省略する。35aはフロント側コア、35bはバック側コア、39はPCI−Xバス、152はGBICモジュール、162はフラッシュメモリである。
また、各コントローラ20,30内のCPU21,31は、通信線83を介して接続されており、コントローラ障害発生時には、相互に情報交換できるように構成されている。
ディスクアレイ装置10には、システムを保守又は管理するための管理端末200が通信インターフェース170を介して接続されており、両者間では、ファイバチャネルプロトコル又はTCP/IP等の所定の通信プロトコルに基づいてデータ通信が行われる。両者の通信プロトコルがファイバチャネルプロトコルであるならば、通信インターフェース170には、GBICモジュールと、ファイバチャネルプロトコルコントローラを実装すればよい。両者の通信プロトコルがTCP/IPであるならば、通信インターフェース170には、LANポートコネクタと、TCP/IPを制御するLSIを実装すればよい。オペレータは、管理端末200を操作することにより、例えば、ディスクドライブDRV0〜DRV14上に定義される論理ボリュームの設定、ディスクドライブDRV0〜DRV14の増設又は減設、RAID構成の設定変更(例えば、RAIDレベル5からRAIDレベル1への変更)等を行うことができる。また、後述するように、コントローラ20又は30に障害が発生した場合に、キャッシュメモリ24,34に退避された障害情報を取得し、障害原因を解析する機能も有する。
尚、管理端末200は、ディスクアレイ装置10に内蔵してもよく、或いは外付けの構成としてもよい。
図5はコントローラ閉塞処理の各処理手順を示している。この処理はコントローラを閉塞すべき障害が発生したコントローラが自身の判断で自身を閉塞する処理である。ここでは、コントローラ30に障害が発生し、自身の判断でコントローラ30を閉塞する場合を例にとって説明する。コントローラ30を閉塞すべき障害が発生すると、CPU31は、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求を禁止し(S201)、ホスト装置70との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し(S202)、GBICモジュール152からホスト装置70への光信号出力を抑止し(S203)、更に、必要最小限の障害情報をフラッシュメモリ162に退避させる(S204)。これら一連の処理S201〜S204は、コントローラ30に障害が発生した時点において、CPU31が実行しているコントローラタスクの延長において実行される場合もあれば、或いはファイバチャネルプロトコルコントローラ35からの割り込み要求処理の延長において実行される場合もある。
このように、ファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断することで、ホスト装置70とディスアレイ装置10との間では、同プロトコルに基づくデータ通信が開始されなくなる。すると、両者間のデータ通信に伴うイベントの発生が抑止され、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求が行われなくなる。但し、いつまで経っても、両者間のネゴシエーションが確立されない場合には、ネゴシエーションが確立しない場合のイベントが発生し、CPU31に割り込み要求されるので、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求を禁止することで、このような割り込み要求をも遮断できる。これにより、CPU31は、コントローラ30を閉塞するためのダウンタスク処理を実行できる(S205)。ダウンタスク処理には、例えば、障害情報をキャッシュメモリ34に退避させる処理等が含まれる。このダウンタスクは、通常のコントローラタスクよりも優先順位が高く設定されているが、ファイバチャネルプロトコルコントローラ35からの割り込み要求処理よりも優先順位は低く設定されている。
尚、GBICモジュール152からホスト装置70への光信号出力が抑止されると、コントローラ30からホスト装置70への応答が遮断されるので、ホスト装置70はコントローラ30に障害が発生されたものと判断し、パス切り替えを行う。
本明細書では、CPU31によるダウンタスク処理(S205)と、CPU31にダウンタスク処理を実行させ易くするための前処理(S201〜S204)を含めて、「閉塞処理」と称する。この前処理は、必ずしも上述の順番で実行しなければならないものではなく、各処理の順番を入れ替えてもよい。また、光信号抑止処理(S203)は、ホスト装置70にパス切り替えを行わせるためのものであるから、この処理をダウンタスク処理に含めてもよい。
この閉塞処理によれば、ファイバチャネルプロトコルコントローラ25,35を初期化することなく、ファイバチャネルプロトコルコントローラ25,35からCPU21,31への割り込み要求を遮断できるので、CPU21,31は障害発生時に自身を閉塞するためのダウンタスク処理を実行することが可能になる。万が一、ダウンタスク処理を実行できなかった場合や、ダウンタスク処理は正常に実行できたものの、その後、キャッシュメモリ24,34に障害が生じて、キャッシュメモリ24,34から障害情報を取り出すことができなくなった場合でも、フラッシュメモリ161,162には、必要最小限の障害情報が退避されているので、障害原因を解析することが可能である。
図6はコントローラ間の相互通信によりコントローラ閉塞を行う処理手順を記述したシーケンス図である。ここでは、コントローラ30にコントローラ30を閉塞すべき障害が発生し、コントローラ30が自身の判断で自身を閉塞する場合を想定している。説明の便宜上、コントローラ20をCTL♯0と称し、コントローラ30をCTL♯1と称する。
CTL#1にCTL#1を閉塞すべき障害が発生すると(S301)、CTL#1のモジュールは、その障害に対して、CTL#1を閉塞すると判断する(S302)。CTL#1の閉塞を判断するモジュールとしては、例えば、CTL#1内で生じる全ての障害に対して、どのような回復処理を実行すべきかを判断するモジュールが予め用意されている場合には、そのようなモジュールでもよく、或いは障害要因別に回復処理を実行するモジュールが予め用意されている場合には、そのようなモジュールでもよい。
次いで、CTL#1は、自身が閉塞することをCTL#0に通知する(S303)。更に、CTL#1は、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求を禁止し(S304)、ホスト装置70との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し(S305)、GBICモジュール152からホスト装置70への光信号出力を抑止し(S306)、必要最小限の障害情報をフラッシュメモリ162に退避させ(S307)、ダウンタスク処理を実行する(S308)。
一方、CTL#0は、CTL#1からコントローラ閉塞の通知を受けると、GBICモジュール152からホスト装置70への光信号出力が抑止されるように、CTL#1を制御する(S309)。次いで、CTL♯0は、コントローラ間のデータ転送路であるバス81と、コントローラ間で情報交換を行うための通信線83のデータ通信を遮断する(S310)。S309とS310の実行順序は、上述の順番に限られるものではなく、例えば、両者の実行順序を入れ替えてもよく、或いは同時に実行してもよい。
このように、CTL#1が自身の判断で自身を閉塞する場合には、自身を閉塞するための閉塞処理(S304〜S308)とは別に、GBICモジュール152からホスト装置70への光信号出力が抑止されるように、CTL#0がCTL#1を制御することにより(S309)、仮に、CTL#1による閉塞処理が失敗しても、ホスト装置70はCTL#1の障害発生を検出し、パス切り替えを行うことができる。
尚、CTL#1の閉塞処理(S304〜S308)と、CTL#0の光出力抑止処理(S309)は、それぞれのコントローラが互いの処理の進歩状況をチェックしながら処理タイミングを計っている訳ではないので、それぞれの処理は非同期的に進行する。両コントローラの処理を同期させてもよいが、同期が外れる可能性を考慮して、同期が外れた場合は、CTL#0は、CTL#1による光出力抑止処理(S306)の進歩状況を無視して、光出力抑止処理(S309)を実行するように構成すればよい。
図7はコントローラ間の相互通信によりコントローラ閉塞を行う処理手順を記述したシーケンス図である。ここでは、コントローラ30にコントローラ30を閉塞すべき障害が発生して、CPU31又はキャッシュメモリ34が故障する等の理由により、コントローラ30がCPU処理を続行できなくなったことをコントローラ20が検出した場合を想定している。説明の便宜上、コントローラ20をCTL♯0と称し、コントローラ30をCTL♯1と称する。
CTL#1に障害が発生した後において(S401)、CTL#0のあるモジュールがCTL#1との間で情報のやりとりを行うために、CTL#1にアクセスを行うと(S402)、CTL#1は処理を行うことができないので(S403)、CTL#0のあるモジュールは、CTL#1の障害発生(具体的には、CPU処理不能)を検出する(S404)。CTL#1の障害発生を検出するモジュールとは、例えば、CTL#1との間で情報をやりとりしようとしたモジュールでもよく、或いはCTL#1との間で情報のやりとりを行う専用のモジュールが予め用意されていて、CTL#1が応答しないことをタイムアウト等で検出できるように構成されている場合には、その専用モジュールでもよい。CTL#1がCPU処理不能になると、CTL#1による自身の閉塞処理を行うことができないので、CTL#0は、GBICモジュール152からホスト装置70への光信号出力が抑止されるように、CTL#1を制御する(S405)。
このように、CTL#1が自身の閉塞処理を行うことができない場合に、GBICモジュール152からホスト装置70への光信号出力が抑止されるように、CTL#0がCTL#1を制御することで(S405)、ホスト装置70はCTL#1の障害発生を検出し、パス切り替えを行うことができる。
図8はディスクアレイ装置10が計画停止を行うときの各コントローラ20,30内のCPU21,31が実行する処理手順を記述したフローチャートである。計画停止とは、ディスクアレイ装置10の主電源を計画的に落とすことをいう。ここでは、コントローラ30内のCPU31の処理を例にとって説明する。計画停止が行われると(S501;YES)、CPU31は、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求を禁止し(S502)、ホスト装置70との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し(S503)、GBICモジュール152からホスト装置70への光信号出力を抑止し(S504)、キャッシュメモリ34に残っているダーティデータをディスクドライブDRV0〜DRV14にデステージする(S505)。
デステージ処理(S505)は、CPU31が実行するコントローラタスクの一種であり、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求よりも優先順位が低く設定されている。ディスクアレイ装置10の計画停止の際に、上述した割り込み禁止処理(S502)と、オフライン処理(S503)を実行することにより、CPU31によるデステージ処理を実行し易くできる。
図9はコントローラ20,30に軽度の障害が発生した場合に、ホスト装置70からのI/O処理をリセットする処理手順を記述したフローチャートである。軽度の障害とは、例えば、コントローラ20,30を閉塞する必要はないが、I/O処理が正常に実行できない傷害等をいう。ここでは、コントローラ30内のCPU31の処理を例にとって説明する。コントローラ30に軽度の障害が発生し(S601;YES)、ホスト装置70からのI/O処理をリセットする必要が生じると、CPU31は、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求を禁止し(S602)、ホスト装置70との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し(S603)、ホスト装置70からのI/O処理をリセットする(S604)。
I/O処理のリセットとは、例えば、ホスト装置70から受け取ったコマンド情報等の内部情報をリセットすることをいう。I/O処理のリセットは、CPU31が実行するコントローラタスクの一種であり、ファイバチャネルプロトコルコントローラ35からCPU31への割り込み要求よりも優先順位が低く設定されている。コントローラ30に軽度の障害が発生した際に、上述した割り込み禁止処理(S602)と、オフライン処理(S603)を実行することにより、CPU31によるI/O処理のリセットを実行し易くできる。
図10は本実施例に係るディスクアレイ装置11の構成を示している。図1に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。本実施例では、バックインターフェース接続用ファイバチャネル42,52の接続切り替え回路として、上述したPBC27,37に替えて、スイッチ26,36を備えている。スイッチ26には、それぞれ異なるポートIDを有するポートを介して、FC−SATA変換インターフェース93と、FC−AL62とが接続されている。同様にして、スイッチ36には、それぞれ異なるポートIDを有するポートを介して、FC−SATA変換インターフェース94と、FC−AL64とが接続されている。スイッチ26,36は、そのポートに接続するデバイスをそれぞれ独立したデバイスとして認識し、インテリジェントに切り替え制御する。
FC−SATA変換インターフェース93,94は、ファイバチャネルプロトコルとSATAプロトコルとを変換する回路であり、偶数番号のディスクドライブDRV0,DRV1,…,DRV14にポイント・ツー・ポイント接続する。偶数番号のディスクドライブDRV0,DRV1,…,DRV14として、例えば、安価なシリアルATAディスクドライブを採用できる。FC−AL62,64は、奇数番号のディスクドライブDRV1,DRV3,…,DRV13にループ接続している。奇数番号のディスクドライブDRV1,DRV3,…,DRV13として、例えば、応答速度の速い高性能なファイバチャネル・ディスクドライブを採用できる。
このように、応答速度の異なる複数種類のディスクドライブを混載したディスクアレイ装置11においては、例えば、あるデータが時間的価値変化を生じた場合に、同一筺体内で、ファイバチャネル・ディスクドライブからシリアルATAディスクドライブへ、或いはシリアルATAディスクドライブからファイバチャネル・ディスクドライブへデータを移動させることが可能になる。例えば、頻繁にアクセスされるデータや、高速応答が要求されるデータをファイバチャネル・ディスクドライブに格納する一方で、アクセス間隔の比較的長いデータや、応答速度がそれ程要求されないデータをシリアルATAディスクドライブへ格納するようにしてもよい。また、応答速度の異なる複数種類のディスクドライブとして、例えば、SCSIディスクドライブ、パラレルATAディスクドライブ、シリアルATAディスクドライブ、ファイバチャネル・ディスクドライブを混載してもよい。
本実施例によれば、スイッチ26,36を利用することにより、バックインターフェース接続用ファイバチャネル42,52の接続先をインテリジェントに切り替え制御できるので、各スイッチ26,36のそれぞれのポートに性能の異なる複数種類のディスクドライブを接続しておき、データの時間的価値変化等に基づいてデータの格納先を筺体内で変えることができる。
図11は本実施例に係るストレージシステム12の構成を示している。図1に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。ストレージシステム12は、ホスト装置70、ディスクアレイ装置10、及びディスクアレイ装置13を備えており、これらは通信ネットワーク71を介して相互に接続されている。ディスクアレイ装置10は、実施例1において上述した構成を備えている。
ディスクアレイ装置13は、二重化されたコントローラ20,30を備えたデュアルコントローラ構成を採用している。ディスクアレイ装置13のコントローラ20は、フロントインターフェース接続用のファイバチャネルプロトコルコントローラ131と、バックインターフェース接続用のファイバチャネルプロトコルコントローラ132を備えている。ファイバチャネルプロトコルコントローラ131は、2パスのフロントインターフェース接続用ファイバチャネル43,44を介してホスト装置70にインターフェース接続し、ファイバチャネルプロトコルによるブロックアクセス要求を受信する機能を有する。ファイバチャネルプロトコルコントローラ132は、2パスのバックインターフェース接続用ファイバチャネル45,46を介してディスクドライブDRV0〜DRV14にインターフェース接続し、ディスクドライブDRV0〜DRV14を制御するコマンド等を規定するプロトコルに従って、ディスクドライブDRV0〜DRV14へのデータ入出力要求を送信する機能を有する。バックインターフェース接続用ファイバチャネル45,46はそれぞれFC−AL61,62を通じて、ディスクドライブDRV0〜DRV14にループ接続している。
コントローラ30も同様に、2パスのフロントインターフェース接続用ファイバチャネル53,54を介してホスト装置70にインターフェース接続するファイバチャネルプロトコルコントローラ141と、2パスのバックインターフェース接続用ファイバチャネル55,56を介してディスクドライブDRV0〜DRV14にインターフェース接続し、ディスクドライブDRV0〜DRV14を制御するコマンド等を規定するプロトコルに従って、ディスクドライブDRV0〜DRV14へのデータ入出力要求を送信するファイバチャネルプロトコルコントローラ142とを備えている。
尚、説明の便宜上、ディスクアレイ装置10,13の装置内部を構成するCPU21,31、ローカルメモリ22,32、キャッシュメモリ24,34、エンクロージャーコントローラ28,38等の図示は省略している。
ディスクアレイ装置10では、何れかのコントローラ20又は30に障害が生じると、障害が生じていない他方のコントローラ20又は30からディスクドライブDRV0〜DRV14にアクセスする必要がある。ここで、何れのコントローラ20,30についても、バックインターフェース接続用ファイバチャネル42,52は1パスのみの構成であるので、各ディスクドライブDRV0〜DRV14にアクセスするには、PBC27,37をその都度切り替える必要があり、アクセス速度が低下する。
これに対し、ディスクアレイ装置13の各コントローラ20,30には、それぞれ2パスのバックインターフェース接続用ファイバチャネル45,46、又はバックインターフェース接続用ファイバチャネル55,56が実装されているため、何れかのコントローラ20又は30に障害が生じると、障害が生じていない他方のコントローラ20又は30から2パスのバックインターフェース接続用ファイバチャネル45,46、又はバックインターフェース接続用ファイバチャネル55,56を通じてディスクドライブDRV0〜DRV14にアクセスできるので、アクセス速度が低下することはない。
従って、ディスクアレイ装置10,13に障害が生じた場合を想定すると、ホスト装置70から高速なアクセス速度が要求される場合又はアクセス頻度の高いデータに対するアクセスの場合には、主として、ディスクアレイ装置13へアクセスするように構成し、低速なアクセス速度で足りる場合又はアクセス頻度の低いデータに対するアクセスの場合には、主として、ディスクアレイ装置10へアクセスするように構成するのが好ましい。データの格納先をどのように決定付けるかは、例えば、ホスト装置70で動作しているアプリケーションプログラムの種類や、データの最終更新日時などのパラメータによって決定してもよい。
本実施例によれば、データのアクセス速度、アクセス頻度、アプリケーションプログラムの種類、最終更新日時等のパラメータに基づいて、データの格納先となるディスクアレイ装置10,13を変更するので、ディスクアレイ装置10,13を適切に使い分けることができる。
図12は本実施例に係るディスクアレイ装置14の構成を示している。図1に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。各コントローラ20,30が実装するファイバチャネルプロトコルコントローラ25,35には、フロントインターフェース接続用ファイバチャネル41,51と、バックインターフェース接続用ファイバチャネル42,52とがそれぞれ1パスずつ接続されている。各コントローラ20,30には、各ディスクドライブDRV0〜DRV14にループ接続する単一のFC−AL61,63が実装されている。バックインターフェース接続用ファイバチャネル42,52は、それぞれFC−AL61,63に接続している。
各コントローラ20,30はそれぞれFC−AL61,63を介して全てのディスクドライブDRV0〜DRV14へのライトアクセス又はリードアクセスを行うことができる。どのコントローラ20,30がどのディスクドライブDRV0〜DRV14へライトアクセス又はリードアクセスするかは、静的に、或いは動的に設定可能である。例えば、各コントローラ20,30がライトアクセス又はリードアクセスするディスクドライブDRV0〜DRV14を予め固定的に設定しておき、当該ディスクドライブDRV0〜DRV14へのライトアクセス又はリードアクセスは、担当コントローラ20又は30が実行するように構成してもよく、或いは各コントローラ20,30の処理負荷やアクセス頻度等に応じて動的に担当コントローラ20,30を決めてもよい。各コントローラ20,30とディスクドライブDRV0〜DRV14との接続は、FC−AL61,63上に実装されたPBC82によって制御される。
FC−AL61,63に接続する各ディスクドライブDRV0〜DRV14の一方のポートに障害が生じると、当該ポートに接続するFC−AL61,63にはループ障害が生じる。例えば、FC−AL61に接続する側のディスクドライブDRV2の一方のポートに障害生じると、FC−AL61にはパケットが流れなくなる。このような障害に対しては、コントローラ30がFC−AL63からSESドライブ経由でエンクロージャーコントローラ28,38にSESコマンドを送信し、PBC82を制御して、被疑ディスクドライブとFC−AL61との接続を解除することで、ループ障害を解消できる。
更に、各FC−AL61,63に生じるループ障害は、これらFC−AL61,63自体の破損又は経年劣化等によるインタミテント障害によるものや、これらFC−AL61,63に実装されているデバイス(例えば、PBC82)の不具合等によるインタミテント障害によっても生じ得る。このような原因によるループ障害に対しては、障害が生じていないFC−AL61又は63から各ディスクドライブDRV0〜DRV14へライトアクセス又はリードアクセスすればよい。
本実施例によれば、装置構成を簡略化できるので、ディスクアレイ装置11の低コスト化を実現できる。
図13は本実施例に係るディスクアレイ装置15の構成を示している。図1に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。各コントローラ20,30が実装するファイバチャネルプロトコルコントローラ25,35は、フロントインターフェース接続用ファイバチャネル41,51を介してホスト装置70に接続する一方、バックインターフェース接続用ファイバチャネル42,52及びFC−SATA変換インターフェース91,92を介して各ディスクドライブDRV0〜DRV14に接続している。
本実施例によれば、各コントローラ20,30につきファイバチャネルプロトコルコントローラ25,35を一つにしつつ、しかもディスクドライブDRV0〜DRV14として、安価なシリアルATAディスクドライブを採用できるので、製品の低コスト化を実現できる。
実施例1のディスクアレイ装置の構成図である。 論理ボリュームの説明図である。 実施例1の障害回復処理である。 実施例1のディスクアレイ装置の構成図である。 実施例1のコントローラ閉塞処理である。 実施例1のコントローラ閉塞シーケンスである。 実施例1のコントローラ閉塞シーケンスである。 実施例1の計画停止処理である。 実施例1のI/Oリセット処理である。 実施例2のディスクアレイ装置の構成図である。 実施例3のディスクアレイシステムの構成図である。 実施例4のディスクアレイ装置の構成図である。 実施例5のディスクアレイ装置の構成図である。
符号の説明
10,11,13…ディスクアレイ装置 12…ストレージシステム 20,30…コントローラ 21,31…CPU 22,32…ローカルメモリ 23,33…データコントローラ 24,34…キャッシュメモリ 25,35…ファイバチャネルプロトコルコントローラ 27,37…PBC 28,38…エンクロージャーコントローラ 61〜64…FC−AL 70…ホスト装置 71…通信ネットワーク 81…バス 82…PBC 91,92…FC−SATA変換インターフェース DRV0〜DRV14…ディスクドライブ

Claims (18)

  1. 上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、
    前記デュアルコントローラを構成する各々のコントローラは、
    1パスのフロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、1パスのバックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、
    前記ディスクドライブにループ接続する二つのFC−ALと、
    前記二つのFC−ALの中から選択された何れか一つのFC−ALを前記バックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、
    を備える、ディスクアレイ装置。
  2. 請求項1に記載のディスクアレイ装置であって、
    前記二つのFC−ALのうち何れかのFC−ALにループ障害が生じた場合に、前記接続切り替え回路は、前記バックインターフェース接続用ファイバチャネルを、ループ障害が生じていないFC−ALに切り替え接続する、ディスクアレイ装置。
  3. 請求項1に記載のディスクアレイ装置であって、
    前記各々のコントローラは、前記複数のディスクドライブに形成された論理ボリュームに対するライトアクセス、又はリードアクセスを分担して実行する、ディスククアレイ装置。
  4. 請求項1に記載のディスクアレイ装置であって、
    前記複数のディスクドライブのそれぞれを前記FC−ALに接続させる複数のPBCを更に備え、
    前記複数のディスクドライブのうち何れかのディスクドライブに障害が生じた場合に、前記PBCは、障害が生じたディスクドライブと前記FC−ALとの接続を切り離す、ディスクアレイ装置。
  5. 請求項4に記載のディスクアレイ装置であって、
    前記PBCを制御するエンクロージャーコントローラを更に備え、
    前記複数のディスクドライブのうち何れかのディスクドライブに障害が生じた場合に、前記コントローラは、障害が生じたディスクドライブと前記FC−ALとの接続を切り離すためのコマンドを、ループ障害が生じていないFC−ALを通じて前記エンクロージャーコントローラに送信する、ディスクアレイ装置。
  6. 請求項1に記載のディスクアレイ装置であって、
    前記接続切り替え回路はPBCである、ディスクアレイ装置。
  7. 請求項1に記載のディスクアレイ装置であって、
    前記接続切り替え回路はスイッチである、ディスクアレイ装置。
  8. 請求項7に記載のディスクアレイ装置であって、
    前記スイッチには、応答速度の異なる複数種類のディスクドライブに接続する複数のファイバチャネルが接続されている、ディスクアレイ装置。
  9. 請求項8に記載のディスクアレイ装置であって、
    前記ディスクドライブとして、ファイバチャネル・ディスクドライブと、シリアルATAディスクドライブとが混載されており、
    前記バックインターフェース接続用ファイバチャネルを前記シリアルATAディスクドライブに接続するFC−SATA変換インターフェースを更に備え、
    前記スイッチは、前記ファイバチャネル・ディスクドライブにループ接続する前記FC−ALと、前記FC−SATA変換インターフェースとにそれぞれ接続されている、ディスクアレイ装置。
  10. 請求項1に記載のディスクアレイ装置であって、
    前記二つのFC−ALが接続しているディスクドライブの台数は略同数である、ディスクアレイ装置。
  11. 請求項1に記載のディスクアレイ装置であって、
    前記ファイバチャネルプロトコルコントローラは、前記上位ホスト装置との間におけるファイバチャネルプロトコルを制御するコアと、前記ディスクドライブとの間におけるファイバチャネルプロトコルを制御するコアを単一のLSIに実装した回路である、ディスクアレイ装置。
  12. 第1ディスクアレイ装置と、第2ディスクアレイ装置と、前記第1ディスクアレイ装置及び前記第2ディスクアレイ装置に対してデータの入出力を要求する上位ホスト装置とを備えたストレージシステムであって、
    前記第1ディスクアレイ装置は、
    前記上位ホスト装置からのデータ入出力要求に応答して第1ディスクドライブに対するデータ入出力処理を行う第1デュアルコントローラを備え、
    前記第1デュアルコントローラを構成する各々のコントローラは、
    1パスの第1フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、1パスの第1バックインターフェース接続用ファイバチャネルを介して前記第1ディスクドライブにインターフェース接続する第1ファイバチャネルプロトコルコントローラと、
    前記第1ディスクドライブにループ接続する複数の第1FC−ALと、
    前記二つの第1FC−ALの中から選択された何れか一つの第1FC−ALを前記第1バックインターフェース接続用ファイバチャネルに接続切り替えする第1接続切り替え回路と、を備え、
    前記第2ディスクアレイ装置は、
    前記上位ホスト装置からのデータ入出力要求に応答して第2ディスクドライブに対するデータ入出力処理を行う第2デュアルコントローラを備え、
    前記第2デュアルコントローラを構成する各々のコントローラは、
    2パスの第2フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続する第2ファイバチャネルプロトコルコントローラと、
    2パスの第2バックインターフェース接続用ファイバチャネルを介して前記第2ディスクドライブにインターフェース接続する第3ファイバチャネルプロトコルコントローラと、
    前記第2バックインターフェース接続用ファイバチャネルに接続するとともに、前記第2ディスクドライブにループ接続する二つの第2FC−ALと、
    を備える、ストレージシステム。
  13. 請求項12に記載のストレージシステムであって、
    前記上位ホスト装置は、前記第1ディスクアレイ装置に対して低速のアクセス要求を行い、前記第2ディスクアレイ装置に対して高速のアクセス要求を行う、ストレージシステム。
  14. 上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、
    前記デュアルコントローラを構成する各々のコントローラは、
    1パスのフロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、1パスのバックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、
    前記バックインターフェース接続用ファイバチャネルを前記ディスクドライブに接続するFC−SATA変換インターフェースと、
    を備える、ディスクアレイ装置。
  15. 請求項14に記載のディスクアレイ装置であって、
    前記ディスクドライブは、シリアルATAディスクドライブである、ディスクアレイ装置。
  16. 上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うCPUと、
    前記上位ホスト装置又は前記ディスクドライブとの間で入出力されるデータを一時的に格納するキャッシュメモリと、
    1パスのフロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続し、前記上位ホスト装置との間のファイバチャネルプロトコルを制御するコアと、1パスのバックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続し、前記ディスクドライブとの間のファイバチャネルプロトコルを制御するコアとを単一のLSI回路内に実装したファイバチャネルプロトコルコントローラと、
    前記フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置との間で光信号の送受信を行うGBICモジュールと、
    前記ディスクドライブにループ接続する二つのFC−ALと、
    前記二つのFC−ALの中から選択された何れか一つのFC−ALを前記バックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、
    を各コントローラ内に備えたデュアルコントローラ構成のディスアレイ装置の制御方法であって、
    前記CPUが前記ファイバチャネルプロトコルコントローラから前記CPUへの割り込みを禁止するステップと、
    前記CPUが前記上位ホスト装置との間におけるファイバチャネルプロトコル上のデータ通信開始前のネゴシエーションを遮断するステップと、
    前記CPUが前記GBICモジュールからの光信号出力を抑止するステップと、
    前記CPUが障害情報を前記キャッシュメモリに退避させるステップと、
    を備える、ディスクアレイ装置の制御方法。
  17. 請求項16に記載のディスアレイ装置の制御方法であって、
    何れか一方のコントローラが前記制御方法によって閉塞する場合に、他方のコントローラが前記一方のコントローラのGBICモジュールからの光信号出力を抑止する、制御方法。
  18. 請求項16に記載のディスアレイ装置の制御方法であって、
    何れか一方のコントローラが前記制御方法によって閉塞できない場合に、他方のコントローラが前記一方のコントローラのGBICモジュールからの光信号出力を抑止する、制御方法。
JP2005116289A 2005-04-13 2005-04-13 ディスクアレイ装置及びその制御方法 Withdrawn JP2006293863A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005116289A JP2006293863A (ja) 2005-04-13 2005-04-13 ディスクアレイ装置及びその制御方法
US11/159,654 US7370147B2 (en) 2005-04-13 2005-06-22 Disk array device and control method therefor
EP07012449A EP1840745A1 (en) 2005-04-13 2005-09-30 Disk array device and control method therefor
DE602005001851T DE602005001851T2 (de) 2005-04-13 2005-09-30 Speicherplattenanordnungsgerät und Steuerverfahren dafür
EP05256133A EP1712997B1 (en) 2005-04-13 2005-09-30 Disk array device and control method therefor
CNB2005101322342A CN100418047C (zh) 2005-04-13 2005-12-22 磁盘阵列装置以及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005116289A JP2006293863A (ja) 2005-04-13 2005-04-13 ディスクアレイ装置及びその制御方法

Publications (1)

Publication Number Publication Date
JP2006293863A true JP2006293863A (ja) 2006-10-26

Family

ID=35788715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005116289A Withdrawn JP2006293863A (ja) 2005-04-13 2005-04-13 ディスクアレイ装置及びその制御方法

Country Status (5)

Country Link
US (1) US7370147B2 (ja)
EP (2) EP1840745A1 (ja)
JP (1) JP2006293863A (ja)
CN (1) CN100418047C (ja)
DE (1) DE602005001851T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100451993C (zh) * 2006-12-21 2009-01-14 威盛电子股份有限公司 多来源数据处理方法
JP2009110218A (ja) * 2007-10-30 2009-05-21 Fujitsu Ltd 仮想化スイッチおよびそれを用いたコンピュータシステム
KR101406455B1 (ko) * 2007-08-20 2014-06-13 엘지전자 주식회사 컴퓨터의 데이터 전송 장치 및 데이터 전송 채널 변경 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4432388B2 (ja) * 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US7903556B2 (en) * 2005-11-03 2011-03-08 Hewlett-Packard Development Company, L.P. Method of controlling data transfers between nodes in a computer system
CN101377748B (zh) * 2007-08-29 2010-08-25 英业达股份有限公司 校验储存装置的读写功能的方法
CN101488105B (zh) * 2008-01-18 2011-09-21 中兴通讯股份有限公司 实现存储双控制器高可用性的方法及存储双控制器系统
CN101645915B (zh) * 2008-08-06 2012-10-10 中兴通讯股份有限公司 一种磁盘阵列主机通道子卡、在线切换系统及其切换方法
US8954780B1 (en) * 2012-10-11 2015-02-10 Symantec Corporation Systems and methods for transferring input/output operations within computer clusters
JP5985403B2 (ja) * 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
US9208039B2 (en) * 2013-10-21 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for detecting server removal from a cluster to enable fast failover of storage
CN104536923B (zh) * 2014-11-27 2018-03-23 成都龙腾中远信息技术有限公司 一种多通道的干扰信号采集与处理验证系统
CN105094706B (zh) * 2015-07-27 2018-03-30 北京华胜天成软件技术有限公司 定时更新磁盘smart信息的方法及双控系统
TWI676890B (zh) * 2017-12-12 2019-11-11 緯穎科技服務股份有限公司 機箱監控系統及機箱監控方法
CN108959045B (zh) * 2018-06-08 2021-11-09 郑州云海信息技术有限公司 一种nas集群故障切换性能的测试方法和系统
CN116501263B (zh) * 2023-06-21 2023-09-12 苏州浪潮智能科技有限公司 数据存储装置、服务器、数据存储方法、电子设备和介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694615A (en) 1995-06-26 1997-12-02 Hewlett Packard Company Storage system having storage units interconnected to form multiple loops to provide simultaneous access from multiple hosts
US5812754A (en) * 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
US6098155A (en) * 1996-10-28 2000-08-01 Sun Microsystems, Inc. Apparatus and method for streamlining data transfer with existing interconnect bandwidth
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
WO1999063442A1 (en) 1998-06-05 1999-12-09 Mylex Corporation Fibre channel topological structure and method and application with raid devices and controllers
JP4392877B2 (ja) * 1998-09-18 2010-01-06 株式会社日立製作所 ディスクアレイ制御装置
JP2000187561A (ja) 1998-12-24 2000-07-04 Hitachi Ltd 記憶装置システム
US6349357B1 (en) * 1999-03-04 2002-02-19 Sun Microsystems, Inc. Storage architecture providing scalable performance through independent control and data transfer paths
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US6772270B1 (en) * 2000-02-10 2004-08-03 Vicom Systems, Inc. Multi-port fibre channel controller
US7263476B1 (en) * 2000-06-12 2007-08-28 Quad Research High speed information processing and mass storage system and method, particularly for information and application servers
US7146522B1 (en) * 2001-12-21 2006-12-05 Network Appliance, Inc. System and method for allocating spare disks in networked storage
JP4219602B2 (ja) * 2002-03-01 2009-02-04 株式会社日立製作所 記憶制御装置および記憶制御装置の制御方法
JP4166516B2 (ja) * 2002-06-14 2008-10-15 株式会社日立製作所 ディスクアレイ装置
US7392333B2 (en) * 2004-11-30 2008-06-24 Xyratex Technology Limited Fibre channel environment supporting serial ATA devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100451993C (zh) * 2006-12-21 2009-01-14 威盛电子股份有限公司 多来源数据处理方法
KR101406455B1 (ko) * 2007-08-20 2014-06-13 엘지전자 주식회사 컴퓨터의 데이터 전송 장치 및 데이터 전송 채널 변경 방법
JP2009110218A (ja) * 2007-10-30 2009-05-21 Fujitsu Ltd 仮想化スイッチおよびそれを用いたコンピュータシステム

Also Published As

Publication number Publication date
US20060236030A1 (en) 2006-10-19
CN1848064A (zh) 2006-10-18
CN100418047C (zh) 2008-09-10
US7370147B2 (en) 2008-05-06
EP1712997A1 (en) 2006-10-18
EP1712997B1 (en) 2007-08-01
EP1840745A1 (en) 2007-10-03
DE602005001851D1 (de) 2007-09-13
DE602005001851T2 (de) 2008-04-10

Similar Documents

Publication Publication Date Title
JP2006293863A (ja) ディスクアレイ装置及びその制御方法
US8074105B2 (en) High data availability SAS-based RAID system
US7607035B2 (en) Disk array apparatus and method for controlling the same
US8402189B2 (en) Information processing apparatus and data transfer method
EP1746490B1 (en) Storage controller and storage system
US8443237B2 (en) Storage apparatus and method for controlling the same using loopback diagnosis to detect failure
US7568119B2 (en) Storage control device and storage control device path switching method
US20090265584A1 (en) Storage control unit with control signal path between coupled controllers
JP5959733B2 (ja) ストレージシステムおよびストレージシステムの障害管理方法
JP5561622B2 (ja) 多重化システム、データ通信カード、状態異常検出方法、及びプログラム
JP2004220216A (ja) San/nas統合型ストレージ装置
JP2017010390A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
EP1901167B1 (en) Storage system performing remote copying
US8095820B2 (en) Storage system and control methods for the same
US9507677B2 (en) Storage control device, storage apparatus, and computer-readable recording medium having storage control program stored therein
JP2007334764A (ja) Nasシステムおよびnasシステムの情報処理方法
JP2007299079A (ja) ストレージ装置及びその障害回復方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080122

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090217

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090527