JP2008242872A - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP2008242872A
JP2008242872A JP2007083225A JP2007083225A JP2008242872A JP 2008242872 A JP2008242872 A JP 2008242872A JP 2007083225 A JP2007083225 A JP 2007083225A JP 2007083225 A JP2007083225 A JP 2007083225A JP 2008242872 A JP2008242872 A JP 2008242872A
Authority
JP
Japan
Prior art keywords
command
protocol
target
devices
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007083225A
Other languages
English (en)
Other versions
JP4869123B2 (ja
Inventor
Yoshihiro Oikawa
芳弘 及川
Ikuya Yagisawa
育哉 八木沢
Fumiitsu Ando
文逸 安藤
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 JP2007083225A priority Critical patent/JP4869123B2/ja
Priority to EP08250091A priority patent/EP1975797A3/en
Priority to US12/007,641 priority patent/US7904744B2/en
Publication of JP2008242872A publication Critical patent/JP2008242872A/ja
Priority to US13/020,350 priority patent/US8312312B2/en
Application granted granted Critical
Publication of JP4869123B2 publication Critical patent/JP4869123B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】ストレージシステムの性能低下を抑える。
【解決手段】コントローラが、ターゲットにコマンドを送信するために確立された接続が該ターゲットでの該コマンドの処理中にも接続が確立されているタイプの第一のプロトコルに従うコマンドである第一プロトコルコマンドに相当するコマンドとして定義された、ターゲットでのコマンドの処理中には接続が切断されているタイプの第二のプロトコルに従うコマンドである第二プロトコルコマンドを、一以上のスイッチデバイスのうちのいずれかのターゲットに送信する。
【選択図】図2

Description

本発明は、ストレージシステムに関する。
例えば、ストレージシステムの障害に関する情報である障害情報の通知に関して、例えば特許文献1の技術が知られている。特許文献1によれば、第一のストレージシステムが、障害を検出した場合には、第一のストレージシステムと通信可能な第二のストレージシステムに障害情報を通知し、第二のストレージシステムが、第一のストレージシステムから受信した障害情報を、第二のストレージシステムと通信可能な第三のストレージシステムに送信し、第三のストレージシステムが、第二のストレージシステムから受信した障害情報を、ホストコンピュータに通知する。
特開2006−127217号公報
ストレージシステムには、一般に、複数の記憶装置と、上位装置からI/Oコマンドを受信しそのI/Oコマンドに応答して複数の記憶装置のうちの一以上の記憶装置にデータのライト又はリードのコマンドを送信するコントローラとが備えられる。
ストレージシステム内での通信のI/Fとして、SAS(Serial Attached
SCSI)が採用されることがある。この場合、コントローラと各記憶装置との間に、スイッチデバイスとしてSASエクスパンダが介在する。コントローラを最上位とした場合、最上位から下位にかけて、SASエクスパンダがカスケード接続され(例えば直列に或いは木構造に接続され)、各SASエクスパンダに、一以上の記憶装置が接続される。
ストレージシステムで行われる処理としては、上位装置からのI/Oコマンドに応答して行われる処理(以下、上位I/O処理)の他に、上位装置からのコマンドと関係なく実行されるバックエンドの処理がある。バックエンドの処理としては、例えば、ディスカバリの要求、SASエクスパンダに対しての情報の設定、障害情報の採取などがある。SASでは、コントローラ(イニシエータ)からSASエクスパンダに対するコマンドの送信を、SMP(Serial Management Protocol)で行うのが一般的である。しかし、SMPによれば、SMPに従うコマンド(以下、SMPコマンド)がSMPターゲットエクスパンダ(SMPコマンドの送信先のSASエクスパンダ)に発行され、そのSMPコマンドがSMPターゲットエクスパンダで処理されている間、コントローラとSMPターゲットエクスパンダとの間におけるリソース(例えば、コントローラとSMPターゲットエクスパンダまでの一本のパスを構成する一以上の物理リンクやphy(物理ポート))が、占有されてしまう。リソースが占有されている間、そのリソースにおける物理リンクやphyを他のコマンドが経由することはできない。このため、ストレージシステムの性能の低下につながるおそれがある。
また、SASでは、コントローラとターゲット間で接続が確立している間に、コマンドや応答が発行されるが、コントローラとターゲット間での接続に失敗する場合がある。その失敗の原因によっては、その原因を解消することもできる。そのため、接続できないことの原因の特定が望まれる。
また、ストレージシステムには、種々の監視対象デバイス(例えば、温度計、ファン、電源デバイス)があり、バックエンドの処理として、各種監視対象デバイスの監視が行われる。コントローラから各種監視対象デバイスをポーリングすることにより、監視を実行することが可能であるが、SASの規格によれば、監視を実行するデバイスを、コントローラの下位にあるSASエクスパンダにオフロードすることができる。SASエクスパンダは、自分の監視対象のデバイスを監視し、例えばそのデバイスの状態変化を検知した場合には、BP(SES)(BPは「Broadcast Primitive」の略)を、上位及び下位のデバイスにブロードキャストすることができる。しかし、この場合、SASエクスパンダとそれの監視対象デバイスとの間の接続やSASエクスパンダそれ自体に障害が発生したなどの後は、コントローラにBP(SES)が届かない。
上述した問題点は、ストレージシステム内での通信のI/FがSASである場合に限らず、他種のI/Fが採用される場合にも存在し得る。
従って、本発明の第一の目的は、ストレージシステムの性能低下を抑えることにある。
本発明の第二の目的は、ストレージシステム内でコントローラとターゲットとの間の接続ができない原因を特定できるようにすることにある。
本発明の第三の目的は、ストレージシステム内のコントローラよりも下位にあるデバイスがストレージシステム内の監視対象デバイスを監視してもその監視の結果をコントローラに届けられるようにすることにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
階層状に接続された(例えばカスケード状に接続された)一以上のスイッチデバイスに、複数の記憶装置が接続される。一以上のスイッチデバイスのうちの少なくとも一つ(例えば最上位のスイッチデバイス)に、コントローラが接続される。
第一の観点として、コントローラが、第一プロトコルコマンドに相当するコマンドとして定義された第二プロトコルコマンドを、一以上のスイッチデバイスのうちのいずれかのターゲットに送信する。これにより、ストレージシステムの性能低下を抑えることができる。ちなみに、第一プロトコルコマンドとは、第一のプロトコルに従うコマンドである。第一のプロトコルとは、ターゲットにコマンドを送信するために確立された接続が該ターゲットでの該コマンドの処理中にも接続が確立されているタイプのプロトコルである。第二プロトコルコマンドとは、第二のプロトコルに従うコマンドである。第二のプロトコルとは、ターゲットでのコマンドの処理中には接続が切断されているタイプのコマンドである。
第二の観点として、コントローラに、コマンドを発行するコマンド発行部と、発行されたコマンドが蓄積される複数のキューと、複数のキューの各々をチェックし蓄積されているコマンドをターゲットへと吐き出すコマンド発行制御部とが備えられても良い。コマンド発行部は、外部装置から第一のI/Oコマンドを受信し、該第一のI/Oコマンドに応答して前記複数の記憶装置のうちの一以上の記憶装置にI/Oを実行させるための第二のI/Oコマンドを発行するよう構成されていて、発行するコマンドが、前述した第一プロトコルコマンドであるか或いは第二のI/Oコマンドであるかに応じて、蓄積先とするキューを選択し、選択したキューにコマンドを蓄積してもよい。これにより、ストレージシステムの性能低下を抑えることができる。
第三の観点として、コントローラが、第二プロトコルコマンドを一以上のスイッチデバイスのうちのいずれかのターゲットに送信するための接続に失敗、及び/又は、その第二プロトコルコマンドのレスポンスをターゲットから送信するための接続に失敗の場合、該ターゲットに第一プロトコルコマンドを送信するための接続を試行する。この接続が成功となれば、物理的な障害ではなく論理的な障害が原因であることが推測される。
第四の観点として、コントローラ及び一以上のスイッチデバイスを冗長化し、冗長化されているスイッチデバイス間を接続し、冗長化されているスイッチデバイスの各々に、要求インタフェースと、監視制御部とを備える。要求インタフェースは、ブロードキャスト要求のインタフェースである。監視制御部は、冗長化されているスイッチデバイスに共通の監視対象デバイスを監視し、該監視対象デバイスの障害を検知した場合に、上位及び下位に所定種類の情報をブロードキャストし、且つ、要求インタフェースを通じてブロードキャスト要求を他方のスイッチデバイスに送信する。この場合、他方のスイッチデバイスにおける監視制御部が、該他方のスイッチデバイスにおける要求インタフェースを通じてブロードキャスト要求を受ける。その監視制御部は、そのブロードキャスト要求に応答して、該他方のスイッチデバイスの上位及び下位に所定種類の情報をブロードキャストする。これにより、他方において、監視対象デバイスの監視結果をコントローラに届けられる。
ストレージシステムには、複数の記憶装置と、複数の記憶装置が接続された一以上のスイッチデバイスと、複数の記憶装置及び前記一以上のスイッチデバイスのうちのいずれかのターゲットにコマンドを発行するコマンド発行部を有したコントローラとが備えられる。コマンド発行部が、外部装置(例えばホスト計算機或いは他のストレージシステム)から第一のI/Oコマンドを受信し、該第一のI/Oコマンドに応答して前記複数の記憶装置のうちの一以上の記憶装置にデータのI/Oを実行させるための第二のI/Oコマンドを発行するよう構成されており、コントローラ及び一以上のスイッチデバイスの各々が、ルーティングテーブルを保持することができる。コントローラが保持するルーティングテーブルには、該コントローラより下位のスイッチデバイスに接続されているデバイスに関するデバイス情報要素が記録される。スイッチデバイスが保持するルーティングテーブルには、該スイッチデバイス及びそれより下位のスイッチデバイスに接続されているデバイスに関するデバイス情報要素(例えば後述の行き先情報要素)が記録される。コントローラ及び一以上のスイッチデバイスの各々において、第一のプロトコルでコマンドを発行する際の接続のために参照する第一のアドレスと、第二のプロトコルでコマンドを発行する際の接続のために参照する第二のアドレスとの両方のアドレスに、一つのデバイスについてのデバイス情報要素が存在する。すなわち、或るスイッチデバイスをターゲットとした接続が行われる場合、その接続が、第一プロトコルコマンドの送信のための接続であれば、該或るスイッチデバイスに対応した第一のアドレスにあるデバイス情報要素が参照され、一方、第二プロトコルコマンドの送信のための接続であれば、該或るスイッチデバイスに対応した第二のアドレスであるデバイス情報要素が参照される。
一つの実施形態では、コマンド発行部が、第一プロトコルコマンドに相当するコマンドとして定義された第二プロトコルコマンドを、一以上のスイッチデバイスのうちのいずれかのターゲットに送信することができる。前述したように、第一プロトコルコマンドとは、第一のプロトコルに従うコマンドである。第一のプロトコルとは、ターゲットにコマンドを送信するために確立された接続が該ターゲットでの該コマンドの処理中にも接続が確立されているタイプのプロトコルである。第二プロトコルコマンドとは、第二のプロトコルに従うコマンドである。第二のプロトコルとは、ターゲットでのコマンドの処理中には接続が切断されているタイプのコマンドである。
一つの実施形態では、第二プロトコルコマンドとして、ターゲットであるスイッチデバイスのポートに接続されているデバイスに関する情報のディスカバリを要求する第二プロトコルディスカバリコマンドがある。各スイッチデバイスが、コマンド発行部からのコマンドを解釈し処理するコマンド処理部を有することができる。コマンド処理部が、コマンドの解釈によって第二プロトコルディスカバリコマンドを検出したならば、自分が有する複数のポート全てにそれぞれ対応した複数のポート情報要素を含むレスポンスを作成し、そのレスポンスをコマンド発行部に送信することができる。
一つの実施形態では、第二プロトコルコマンドとして、更に、ルーティングテーブルの更新を要求する第二プロトコルテーブル更新コマンドがある。コマンド発行部が、受信したレスポンスに含まれている複数のポート情報要素を基に、複数のポート情報要素から特定される全てのデバイスのデバイス情報要素を有した第二プロトコルテーブル更新コマンドを準備し(例えば、コマンドの作成や、コマンドを送信可能な状態とし)、該第二プロトコルテーブル更新コマンドを、ターゲットのスイッチデバイスより上位のスイッチデバイスに送信することができる。これは、例えば、ターゲットのスイッチデバイスより上位のスイッチデバイスについて、下位から上位にかけて順次に、或いは、上位から下位にかけて順次に行うことができる。ターゲットのスイッチデバイスより上位にある(つまりコントロール寄りの)スイッチデバイスのコマンド処理部が、コマンドの解釈によって第二プロトコルテーブル更新コマンドを検出したならば、該スイッチデバイスが有するルーティングテーブルに、該第二プロトコルテーブル更新コマンドが有するデバイス情報要素を書込むことができる。第二プロトコルテーブル更新コマンドによるルーティングテーブル更新は、例えば、第一プロトコルでのディスカバリコマンドにより発見されたデバイスに関するデバイス情報要素をまとめて書込むことに利用されても良い。
一つの実施形態では、コマンド発行部が、ターゲットに第二プロトコルコマンドを送信するための接続に失敗、及び/又は、第二プロトコルコマンドのレスポンスをターゲットから送信するための接続に失敗の場合、第一プロトコルコマンドの送信のための接続を試行することができる。
一つの実施形態では、コマンド発行部が、第一プロトコルコマンドの送信のためのターゲットとの接続に成功した場合に、該ターゲットと前記コントローラとの間に存在する各々のスイッチデバイスについて、スイッチデバイスからルーティングテーブルを取得するための第一プロトコルコマンドを発行することでルーティングテーブルを取得し、コントローラが保持するルーティングテーブルと上記取得されたルーティングテーブルとの比較を行い、不一致であれば、一致となるよう上記取得されたルーティングテーブルを修正するために第一プロトコルコマンドをそのスイッチデバイスに送信することができる。
一つの実施形態では、コマンド発行部が、第一プロトコルコマンドの送信のためのターゲットとの接続に成功した場合に、コントローラより下位に存在するルーティングテーブルを第一のプロトコルコマンドで修正することができる。
一つの実施形態では、コマンド発行部が、第二のI/Oコマンドの送信のための接続に失敗、及び/又は、その第二のI/Oコマンドのレスポンスを記憶装置から送信するための接続に失敗の場合、該記憶装置が直接されているスイッチデバイスに、該記憶装置が接続されているか否か及び/又は該記憶装置との間の接続が正常か否かの問合せを第二プロトコルコマンドで送信することができる。また、この実施形態では、コントローラ及び一以上のスイッチデバイスの各々が冗長化されていてよい。この場合、一方のコントローラにおけるコマンド発行部が、上記問合せのための第二プロトコルコマンドに対する応答として、記憶装置が接続されている及び/又は該記憶装置との間の接続は正常である旨を受けた場合には、他方のコントローラから該記憶装置に対して第二のI/Oコマンドを発行させ、該第二のI/Oコマンドの送信のための接続が成功した場合には、一方のコントローラより下位に存在するルーティングテーブルを第一のプロトコルコマンドで修正することができる。また、他方のコントローラにおけるコマンド発行部が、第二のI/Oコマンドの送信のための接続に失敗、及び/又は、その第二のI/Oコマンドのレスポンスを記憶装置から送信するための接続に失敗の場合、該記憶装置が直接されている他方のスイッチデバイスに、該記憶装置が接続されているか否か及び/又は該記憶装置との間の接続が正常か否かの問合せを第二プロトコルコマンドで送信することができる。その他方のコントローラにおけるコマンド発行部は、該問合せのための第二プロトコルコマンドに対する応答として、記憶装置が接続されている及び/又は該記憶装置との間の接続は正常である旨を受けた場合には、その他方のコントローラより下位に存在するルーティングテーブルを第一のプロトコルコマンドで修正することができる。
一つの実施形態では、コントローラ及び一以上のスイッチデバイスの各々が冗長化されている。冗長化されているスイッチデバイス間が接続されており(例えばケーブル等で物理的に接続されている)。冗長化されているスイッチデバイス(例えばSASエクスパンダ)の各々が、ブロードキャスト要求(例えば後述のBP(SES)の生成要求)のインタフェースである要求インタフェース(例えば、ハードウェア、コンピュータプログラム或いはそれらの組合せ)と、冗長化されているスイッチデバイスに共通の監視対象デバイスを監視し該監視対象デバイスの障害を検知した場合に上位及び下位に所定種類の情報(例えば後述のBP(SES))をブロードキャストすると共に上記要求インタフェースを通じてブロードキャスト要求を他方のスイッチデバイスに送信する監視制御部とを備えることができる。他方のスイッチデバイスにおける監視制御部が、該他方のスイッチデバイスにおける要求インタフェースを通じてブロードキャスト要求を受けたことに応答して、該他方のスイッチデバイスの上位及び下位に所定種類の情報をブロードキャストすることができる。冗長化されているコントローラの各々が、所定種類の情報の受信に応答して、第二のプロトコルコマンドをスイッチデバイスに送信することにより、該スイッチデバイスで検知された障害に関する情報の採取を行うことができる。
一つの実施形態では、コマンド発行部が、第二のI/Oコマンドを第一プロトコルコマンドよりも優先して出力することができる。この実施形態では、第一プロトコルコマンドが特定の種類のコマンドであれば、該第一プロトコルコマンドの優先度が第二のI/Oコマンドと同等とされてもよい。また、この実施形態では、第一プロトコルコマンドが定期的に発行される種類のコマンドであって、二以上の第一プロトコルコマンドと二以上の第二のI/Oコマンドとの発行時期がそれぞれ同時期の場合には、第二のI/Oコマンドと第一のプロトコルコマンドとが交互に出力されてもよい。
上述した各部は、手段と読み替えても良い。上述した各部は、ハードウェア(例えば回路)、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
以下、図面を参照して、本発明の一実施形態に係るストレージシステムを詳細に説明する。
<システム構成>。
図1は、本発明の一実施形態に係るストレージシステムの構成例を示す。以下、同種の要素には、親番号(例えば107)と子符号(例えばA、B、或いはC)との組合せで構成された参照番号を付している。以下、同種の要素を特に区別しないで説明する場合には、親番号のみを用いて説明し、同種の要素を特に区別して説明する場合には、親番号と子符号との組合せを用いて説明することがある。
ストレージシステム101は、基本筐体105と、一台以上の(例えば三台の)増設筐体107A〜107Cとで構成される。基本筐体105に対して、一以上の増設筐体107が直列に接続される。
基本筐体105には、二重化されたコントローラデバイス109A及び109Bと、複数のディスクドライブ111とが搭載される(基本筐体105にはディスクドライブ111は無くても良い)。コントローラデバイス109A及び109Bの両方又は一方が、上位装置(例えば、ホスト計算機、或いは他のストレージシステム)103からI/Oコマンドを受け付けることができる。ディスクドライブ111は、例えば、SATA(Serial Attached SCSI)或いはSASのインタフェースを搭載したハードディスクドライブである。ハードディスクドライブに限らず、他種の記憶装置(例えばフラッシュメモリドライブ)が採用されても良い。
増設筐体107には、二重化されたエンクロージャデバイス113A及び113Bと、複数のディスクドライブ111とが搭載される。一方において、一方のコントローラデバイス109Aから、増設筐体107A〜107Cにおける一方のエンクロージャデバイス113Aが直列に接続される。同様に、他方においても、他方のコントローラ109Bから、増設筐体107A〜107Cにおける他方のエンクロージャデバイス113Bが直列に接続される。具体的には、一方及び他方の両方において、後述するコントローラを最上位に、複数のSASエクスパンダが直列に接続される。以下、コントローラと複数のSASエクスパンダとが直列に接続された構成を、「カスケード構成」と呼ぶことがある。
図2Aは、基本筐体105の構成例を示す。なお、以下の説明では、混同を避けるために、外部装置103からのI/Oコマンドを、「ボリュームI/Oコマンド」と呼ぶ。外部装置103からのI/Oコマンドでは、一以上のディスクドライブ111を基に形成された論理ボリュームのID(例えばLUN)を指定することが一般的であるためである。一方、コントローラからディスクドライブ111に対して発行されるI/Oコマンドを、「ドライブI/Oコマンド」と呼ぶ。
二重化されたコントローラデバイス109A及び109Bのうち、コントローラデバイス109Aを代表的に例に採って説明する。
コントローラデバイス109Aは、例えばハードウェア回路である。コントローラデバイス109Aには、コントローラ110Aと、一つの(又は複数の)SASエクスパンダ131Aとが備えられる。コントローラ110Aは、RAID制御部121AとSAS制御部123Aを備えている。上位から下位にかけて、RAID制御部121A、SAS制御部123A及びSASエクスパンダ131Aが直列に接続されている。
RAID制御部121Aは、例えば、コンピュータプログラムを実行するCPUを含んだモジュールであり、コマンドの処理を実行する。具体的には、例えば、RAID制御部121Aにおける記憶資源(例えばメモリ)では、どの二以上のディスクドライブ111によってどんなRAIDレベルのAIDグループが構成されていてそのRAIDグループにはどんなIDを有する論理ボリュームが形成されているかを表す情報(以下、RAID構成情報)が記憶されている。RAID制御部121Aは、外部装置103からのボリュームI/Oコマンドに応答して、RAID構成情報を基に、ボリュームI/Oコマンドから特定される論理ボリュームに対応したい二以上のディスクドライブ111を特定し、特定した二以上のディスクドライブ111にそれぞれ対応した二以上のドライブI/Oコマンドを生成する。RAID制御部121Aは、各ドライブI/Oコマンドを、SAS制御部123Aに指示することで、そのドライブI/Oコマンドの宛先とするディスクドライブ111に送信させる。また、RAID制御部121Aは、他方のRAID制御部121Bに接続されており、他方のRAID制御部121Bに、ディスクドライブ111に対してドライブI/Oコマンドを発行することを指示することができる。
SAS制御部123Aは、例えば、ハードウェア回路(例えばICチップ)である。SAS制御部123Aは、RAID制御部121Aからの指示に応答して、RAID制御部121AからのドライブI/Oコマンドを、そのドライブI/Oコマンドで指定されているディスクドライブ111に送信する。
SASエクスパンダ131Aには、複数のディスクドライブ111が接続される。SAS制御部123Aから送信された、基本筐体105内のディスクドライブ111を宛先としたドライブI/Oコマンドは、そのSASエクスパンダ131Aを経由して、そのディスクドライブ111に送信される。基本筐体105内のSASエクスパンダ131Aには、増設筐体107内のSASエクスパンダ131Aが接続される。
図2Bは、増設筐体107の構成例を示す。
増設筐体107内には、二重化されたエンクロージャデバイス113A及び113Bに加えて、監視対象のデバイス(例えば、電源デバイスやFAN)141が備えられている。二重化されたエンクロージャデバイス113A及び113Bのうちエンクロージャデバイス113Aを代表的に例に採って説明する。
エンクロージャデバイス113Aは、例えばハードウェア回路である。エンクロージャデバイス113Aには、一つの(又は複数の)SASエクスパンダ131Aと、SASエクスパンダ131Aによる監視対象のデバイス133Aと、SASエクスパンダ131Aによって使用されるフラッシュメモリ137A、補助メモリ135A及びPLD(Programmable Logic Device)139Aとが備えられる。監視対象デバイス133Aと違って、参照番号141の監視対象デバイスは、二重化されたSASエクスパンダ131A及び131Bの両方から監視されるデバイスである。
図2Bに示した監視対象デバイス133、141、フラッシュメモリ137、補助メモリ135及びPLD139は、いずれも、図2Aには示されていないが、監視対象デバイス141が、基本筐体105にも備えられていても良いし、監視対象デバイス133、フラッシュメモリ137、補助メモリ135及びPLD139のうちの少なくとも一つが、基本筐体103内のコントローラデバイス109に備えられていても良い。
図3は、SASエクスパンダ131Aの構成例を示す。図3では、他方のエンクロージャデバイス113B及び他方のSASエクスパンダ131Bにも存在する要素には、子符号“A”を含んだ参照番号を付している(つまり、他方のエンクロージャデバイス113B及び他方のSASエクスパンダ131Bについては、子符号“A”が“B”に代わるだけである)。以下の説明では、適宜に、一方のカスケード構成における要素を代表的に例に採って説明することにする。
SASエクスパンダ131Aは、例えばLSI(Large Scale
Integration)である。SASエクスパンダ131Aには、複数のphy151Aと、エクスパンダスイッチ制御部157Aと、プロセッサ(例えばCPU)165Aと、メモリ153Aと、UART(Universal
Asynchronous Receiver Transmitter)163Aと、IIC(Inter Integrated Circuit)161Aとが備えられる。
phy151Aは、物理ポートである。phy151Aには、ディスクドライブ111或いは他の筐体105又は107内のSASエクスパンダ131Aなど種々のデバイスを接続することができる。phy151Aの数は幾つでも良い。
エクスパンダスイッチ制御部157Aは、SASのI/F制御やスイッチ制御を行うハードウェア回路である。エクスパンダスイッチ制御部157Aには、複数のphy151Aとプロセッサ165Aとが接続されている。エクスパンダスイッチ制御部157Aには、レジスタ159Aが設けられている。スイッチ制御は、そのルーティングテーブル154Aを基に行われる。
メモリ153Aには、前述したように、ルーティングテーブル154Aが記憶される。ルーティングテーブル154Aには、そのテーブル154Aを有するSASエクスパンダ131Aより下位に存在する各デバイスとそのSASエクスパンダ131Aのphy151Aに直接接続されている(一本の物理リンクで接続されている)各デバイスとについて、行き先を表す情報要素(行き先情報要素)が記録される。より上位のSASエクスパンダ131Aに記憶されるルーティングテーブル154Aほど、通常、より多くの行き先情報要素が記録される。なぜなら、より上位のSASエクスパンダ131Aほど、下位に存在するデバイスの数がより多くなるためである。ルーティングテーブル154Aは、RAID制御部121A及びSAS制御部123Aの両方も保持するが、そのような理由から、RAID制御部121A及びSAS制御部123Aが保持するルーティングテーブル154Aに、一番多くの数の行き先情報要素(すなわち、下位に存在する全てのデバイス(SASエクスパンダ131Aやディスクドライブ111)の行き先情報要素)が記録されることになる。行き先情報要素は、例えば、SASエクスパンダのSAS規格に従うアドレス(SASアドレス)とphyの番号とで構成することができる。
補助メモリ135Aは、メモリ153Aの記憶容量を補助するためのメモリである。具体的には、例えば、プロセッサ165Aがワーク領域をメモリ153Aに展開する場合に、容量が不足した場合には、補助メモリ135Aに、不足分を展開することができる。
フラッシュメモリ137Aには、プロセッサ165Aにロードされて実行されるコンピュータプログラムが記憶される。そのコンピュータプログラムは、例えばファームウェア140Aである。
PLD139Aは、GPIO(General Purpose Input/Output)ポートを増やす目的で設けられたデバイスである。PLD139の各ポートを介して、監視対象デバイス141の監視などが行われる。
UART163Aを介して、例えば、図示しない管理端末からの情報の入出力を行うことが可能である。
IIC161Aを介して、ファームウェア140Aを実行するプロセッサ165Aにより、監視対象デバイス133Aの監視が行われる。また、IIC161Aには、他方のSASエクスパンダ131Bが接続され、IIC161Aを介して、他方のSASエクスパンダ131Bと通信することが可能である。
図4Aは、RAID制御部121A内のプロセッサで実行されるコンピュータプログラムを示す。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサ(CPU)によって処理が行われるものとする。
RAID制御部121内のプロセッサが実行するコンピュータプログラムとして、例えば、コマンドの発行処理を実行するコマンド発行部672Aと、コマンド発行部672AからSAS制御部123Aへのコマンド発行を制御するコマンド発行制御部742Aと、BP処理を実行するBP処理部674Aとがある。BP(Broadcast Primitive)とは、SASの規格でサポートされている情報フレームである。BPとしては、例えば、BP(SES)と、BP(CHANGE)とがある(SESは、「SCSI
Enclosure Service」の略である)。BP(SES)は、例えば、監視対象デバイス133、141の監視においてそのデバイス133、141の状態変化が検知された場合に作成されて送信される情報フレームである。BP(CHANGE)は、例えば、SASエクスパンダ131で管理されているトポロジに変化があったこと(例えばディスクドライブ111が新たに追加或いは取り外されたこと)が検知された場合に作成されて送信される情報フレームである。
コマンド発行部627Aには、例えば、拡張SSPコマンドを発行する拡張SSPコマンド発行部682Aがある。SSPとは、「Serial SCSI Protocol」の略である。拡張SSPコマンドとは、SMPでのファンクションが置き換えられたSSPコマンドである。拡張SSPコマンドについては、後に詳述する。
図4Bは、ファームウェア140Aの構成例を示す。
ファームウェア140Aには、例えば、受信したコマンドを処理するコマンド処理部684Aと、BPの生成の要求を他方のSASエクスパンダ131Bから受け付けたり他方のSASエクスパンダ131BにBPの生成を要求したりするインタフェースであるBP指示I/F692Aと、監視対象デバイス133A、141の監視を行う監視制御部694Aとを有する。コマンド処理部684Aには、拡張SSPコマンドを解釈し実行する拡張SSPコマンド処理部686がある。ファームウェア140Aの処理については後に詳述する。
<SMPの特性とSSPの特性の違い>。
本実施形態では、SMPの特性とSSPの特性の違いに着目し、SMPコマンドとSSPコマンドの使い分けが実行される。
まず、図5Aを参照して、SMPの特性を説明する。
図5Aに示すように、SMPによれば、SAS制御部123とSMPターゲットエクスパンダ#3(3番目の下位のSASエクスパンダ131)との間の接続が確立し、SAS制御部123からSMPに従うコマンド(SMPコマンド)がSMPターゲットエクスパンダ#3に発行され、そのSMPコマンドがSMPターゲットエクスパンダ#3で処理され、処理の結果としてのレスポンス(SMPレスポンス)が準備されて(例えばレスポンスが作成されてメモリ等で一時保持され)、そのSMPレスポンスがSMPターゲットエクスパンダ#3からSAS制御部123に届き、接続が切断されるまでの間、SAS制御部123とSMPターゲットエクスパンダ#3との間におけるリソース(例えば、点線枠の楕円に示すように、SAS制御部123とSMPターゲットエクスパンダ#3までの一本のパスを構成する一以上の物理リンク162やphy)が、占有されてしまう。リソースが占有されている間、そのリソースにおける物理リンク123やphyを他のコマンドが経由することはできない。また、リソース占有時間長が、SMPターゲットエクスパンダ#3の性能に影響を受けることになる。SMPコマンドの処理中も、SAS制御部123とSASターゲットエクスパンダ#3との間が接続状態(つまりリソース占有状態)となるからである。このため、例えば、SASターゲットエクスパンダ#3の性能が低く、SMPコマンドの処理に長い時間を要する場合、その分、リソース占有時間長が長くなる。
また、一つのSAS制御部123から同時期に発行できるSMPコマンドの数は一つであり、例えば、一つのSMPコマンドが発行されてからそれによるリソース占有が行われている間は、他のSMPコマンドを送信することはできない。
また、SMPの場合、SMPコマンドがターゲット(ここではSASエクスパンダ#3)に届いたならば、SAS制御部123とターゲットとの間のリソースに物理的な障害が発生する等の特段のケースを除くと、ターゲットからSAS制御部123にSMPレスポンスが戻ってくることが保証される。
次に、図5Bを参照して、SSPの特性を説明する。
図5Bに示すように、SSPによれば、SAS制御部123とSSPターゲットエクスパンダ#3(3番目の下位のSASエクスパンダ131)との間の接続が確立し、SSPに従うコマンド(SSPコマンド)がSAS制御部123からSSPターゲットエクスパンダ#3(3番目の下位のSASエクスパンダ131)に発行されSSPターゲットエクスパンダ#3に届いたならば、SSPターゲットエクスパンダ#3により接続が切断される。SSPコマンドの処理が終わった場合に、SSPターゲットエクスパンダ#3からSAS制御部123に再接続され(つまり接続が再び確立され)、SSPコマンドのレスポンス(SSPレスポンス)が、SSPターゲットエクスパンダ#3からSAS制御部123に返され、その後、接続が切断される。
すなわち、SSPによれば、SSPコマンドの処理中は、SAS制御部123とSMPターゲットエクスパンダ#3との間におけるリソースは解放されている。このため、SMPと違って、SSPの場合には、コマンドの処理中に、他のコマンド(例えばドライブI/Oコマンド)をそのリソースを介して流すことが可能となる。
しかし、SSPの場合、SSPコマンドがターゲットに届いて接続が切られた後、必ずしも再接続に成功するとは限らない。なぜなら、SSPコマンドの処理中に、トポロジ障害が発生する(典型的には、SAS制御部123が保持するルーティングテーブル154や、SAS制御部123とターゲットとの間に存在するSASエクスパンダ131が保持するルーティングテーブル154が壊れる)可能性があるからである。
以上のように、SMPの特性やSSPの特性にはそれぞれ一長一短がある。本実施形態では、SMPの特性とSSPの特性との違いに着目した使い分けが実行される。
<第一のトポロジ障害特定>。
図6は、SASエクスパンダ131AにSSPコマンドが発行される場合に実行される処理の流れを示す。なお、以下の説明では、ターゲットとするSASエクスパンダを「ターゲットエクスパンダ」と呼ぶ。
RAID制御部121Aのコマンド発行部672Aが、ターゲットエクスパンダ131Aに対応したSSP用アドレス(RAID制御部121Aが保持するルーティングテーブル154Aにおけるアドレス)を参照し、そのSSP用アドレスにある行き先情報要素が表すSASアドレスを用いて接続要求をSAS制御部123Aに発行する(S101)。RAID制御部121Aが保持するルーティングテーブル154Aには、ルーティングテーブル154Aを参照するときに使用されるアドレスがあり、各SASエクスパンダにつき、SSP用アドレスとSMP用アドレスとがある。つまり、同一のSASエクスパンダに接続するのであっても、SSPコマンドを送信するための接続なのか、SMPコマンドを送信するための接続なのかによって、参照先となるアドレスが異なる。
SAS制御部123Aが、接続要求に応答して、指定されたSASアドレスを有するターゲットエクスパンダ131Aとの間の接続を試みる。具体的には、SAS制御部123Aが、自分が保持するルーティングテーブル154Aを参照し、ターゲットエクスパンダ131Aに接続するための直近のSASエクスパンダ131Aを見つけ、そのSASエクスパンダ131Aに、接続を指示する。以降、そのSASエクスパンダ131Aから下位への順次に(バケツリレー的に)、物理リンクの確保が行われていく。物理リンクの確保は、その確保を行うSASエクスパンダ131Aが、自分が保持するルーティングテーブル154Aを用いて行われる。上位の物理リンクから、ターゲットエクスパンダ131Aに接続されている物理リンクまで確保された場合に、接続の成功(確立)となる。
接続失敗の場合、具体的には、ターゲットエクスパンダ131Aとの間で接続確立とならない場合、或いは、コマンド発行部672AからのSSPコマンド発行のための接続には成功したが、そのSSPコマンドの到達による切断が行われてから一定時間経っても再接続が行われない場合(S102:YES)、トポロジ障害のおそれがあるため、S103に進む。一方、接続の成功となった場合(S102:NO)、トポロジ障害は発生していないと考えられるため、終了となる。
S103で、コマンド発行部672Aは、ターゲットエクスパンダ131Aに対応したSMP用アドレス(RAID制御部121Aが保持するルーティングテーブル154Aにおけるアドレス)を参照し、そのSMP用アドレスにある行き先情報要素が表すSASアドレスを用いて接続要求を発行する。それでもターゲットエクスパンダ131との間で接続確立とならない場合(S104:YES)、コマンド発行部672Aは、物理的な壊れ(ハードウェアの壊れ)が考えられるため、例えば、管理者にその旨を通知する等の特定のエラー処理を実行する。S103によって接続が確立した場合には、トポロジ障害が原因でSSPコマンドが通らない可能性が高いため、コマンド発行部672Aは、図8の診断・復旧処理を実行する。
SSP用アドレスから取得された行き先情報要素が表すSASアドレスで接続要求が発行された場合も、SMP用アドレスから取得された行き先情報要素が表すSASアドレスで接続要求が発行された場合も、RAID制御部121Aとターゲットエクスパンダ131Aとの間に存在するSAS制御部123AやSASエクスパンダ131Aにおいて、それらの各々が保持するルーティングテーブル154Aを用いたルーティング処理が実行される。そのルーティングテーブル154Aに誤りがあれば、接続に失敗することになる。
すなわち、SSP用アドレスにある行き先情報要素を使用した接続に失敗したがSMP用アドレスにある行き先情報要素を使用した接続に成功することがある理由は、同一のSASエクスパンダについてSSP用アドレスとSMP用アドレスは異なるアドレスであるが故に、SSP用アドレスにある行き先情報要素が壊れてもSMP用アドレスにある行き先情報要素は壊れておらず正しい内容であることがあるためである。
ドライブI/OコマンドはSSPで発行されるが、その場合にも、トポロジ障害特定を行うことが可能である。但し、ドライブI/OコマンドはSSPでのみ送信されるため、SMP用アドレスは存在しないが、下記工夫により、トポロジ障害を特定することが可能である。
<第二のトポロジ障害特定>。
図7は、ディスクドライブ111にSSPでドライブI/Oコマンドが発行される場合に実行される処理の流れを示す。なお、以下の説明では、ターゲットとするディスクドライブを「ターゲットドライブ」と呼ぶ。
RAID制御部121Aのコマンド発行部672Aが、ルーティングテーブル154Aにおける、ターゲットドライブ111に対応したアドレスを参照し、そのアドレスにある行き先情報要素を用いてターゲットドライブ111に接続する要求を発行する(S111)。
接続できなければ(S112:YES)、トポロジ障害のおそれがあるため、S113に進む。一方、接続できれば(S112:NO)、トポロジ障害は発生していないと考えられるため、終了となる。
S113で、コマンド発行部672Aは、ターゲットドライブ111が挿入状態であり、且つ、ターゲットドライブ111とそれの接続先のSASエクスパンダ(以下、図7の説明では、便宜上「ターゲットエクスパンダ」と呼ぶ)131Aとの間のリンク(物理リンク)がダウンしていないか否かの判定を行う。具体的には、例えば、コマンド発行部672の拡張SSPコマンド発行部682Aが、ターゲットエクスパンダ131A(ターゲットドライブ111が一本の物理リンクで接続されているSASエクスパンダ131A)に、ターゲットドライブ111が挿入状態であるかどうかやリンクダウンしていないかどうかの問合せを意味する拡張SSPコマンドを送信する。その拡張SSPコマンドに対するレスポンスを解析することにより、ターゲットドライブ111が挿入状態であり、且つ、ターゲットドライブ111とターゲットエクスパンダ131Aとの間がリンクダウンしていないか否かの判定が可能となる。挿入状態且つリンクダウンしていないとの判定結果になれば(S113:YES)、S115に進み、挿入状態ではない又はリンクダウンしているとの判定結果になれば(S113:NO)、S114に進む。
S114で、コマンド発行部672Aは、ドライブ障害処理を実行する。ここで言うドライブ障害処理とは、障害発生部位が、ターゲットドライブ111であるのかターゲットエクスパンダ131Aであるのかを特定するための処理である。具体的には、例えば、コマンド発行部672Aの拡張SSPコマンド発行部682Aが、障害発生部位がターゲットドライブ111であるのかターゲットエクスパンダ131Aであるのかを問い合わせる拡張SSPコマンドを、ターゲットエクスパンダ131Aに発行し、その拡張SSPコマンドに対するレスポンスを受領し、そのレスポンスを解析することで、特定することができる。コマンド発行部672Aは、特定された障害発生部位を表す情報を、例えばRAID制御部121A内のメモリに記録したり、図示しない管理端末に報告したりすることができる。
S115で、コマンド発行部672Aは、冗長パスからのアクセスは正常であるか否かの判定を行う。例えば、コマンド発行部672Aが、他方のRAID制御部121Bに、ターゲットドライブ111にドライブI/Oコマンドを発することを指示する。他方のRAID制御部121Bは、一方のRAID制御部121Aからのその指示に応答して、そのRAID制御部121Bが保持するルーティングテーブル154Bを用いて、ターゲットドライブ111に接続することの要求を発行することができ、接続に成功したか失敗したかを表す応答を、一方のRAID制御部121Aに返すことができる。コマンド発行部672Aは、その応答が接続成功を表していれば、アクセスは正常と判定し、接続失敗を表していれば、アクセスは正常ではないと判定する。アクセスは正常との判定結果になれば(S115:YES)、図8の診断・復旧処理を実行し、アクセスは正常ではないとの判定結果になれば(S115:NO)、S116を実行する。
S116で、コマンド発行部672Aは、ターゲットドライブ111が挿入状態であり、且つ、ターゲットドライブ111とそれの接続先である他方のターゲットエクスパンダ131Bとの間がリンクダウンしていないか否かの判定を行う。挿入状態且つリンクダウンしていないとの判定結果になれば(S116:YES)、図8の診断・復旧処理を実行し、挿入状態ではない又はリンクダウンしているとの判定結果になれば(S116:NO)、S114に進む。この場合でのS114では、ターゲットは、他方のSASエクスパンダ131Bとなる。
S115でYESの場合には、一方のカスケード構成において、トポロジ障害の可能性がある。S116でYESの場合には、一方のカスケード構成と他方のカスケード構成の両方において、トポロジ障害の可能性がある。いずれの場合でも、図8の診断・復旧処理により、解消することが可能である。
また、図7の処理において、SSPコマンドを使用した問合せのための接続もできなければ、図6のS103にすすんでも良い。
<診断・復旧処理>。
図8は、診断・復旧処理の流れを示す。なお、図では、ループの開始(Start)と終了(End)を、「図番:S又はE:ループ番号」の規則に従って表している。これは、後の図(例えば図11)でも同様である。
S121、S122及びS123が、例えば、RAID制御部121Aの下位に存在するルーティングテーブル154Aの数(例えば、SAS制御部123AとSASエクスパンダ131Aとの合計)と同数回実行される。また、S121、S122及びS123は、RAID制御部121Aから下位にかけてバケツリレー的に順次に実行される。
S121で、RAID制御部121Aが、SAS制御部123Aにあるルーティングテーブル154A或いはSASエクスパンダ131Aにあるルーティングテーブル154Aを取得する。具体的には、コマンド発行部672Aが、ルーティングテーブル154Aを取得するためのSMPコマンドを、SAS制御部123A或いはSASエクスパンダ131Aに発行する。そのSMPコマンドを受けたSAS制御部123A或いはSASエクスパンダ131Aは、そのSMPコマンドに応答して、自分が保持するルーティングテーブル154Aを、RAID制御部121Aに送信する。なお、例えば、冗長パス(他方のカスケード構成)についてもトポロジ障害の可能性ありの場合には(すなわち、この診断・復旧処理が、図16のS116:YESにより実行されている場合には)、他方のカスケード構成においても、例えば一方のRAID制御部121Aから他方のRAID制御部121Bへの指示により、診断・復旧処理を行うことができる。
S122で、RAID制御部121Aが、自分が有するメモリ(図示せず)にあるルーティングテーブル(以下、図8の説明において「第一テーブル」と呼ぶ)と、取得されたルーティングテーブル(以下、図8の説明において「第二テーブル」と呼ぶ)154Aとを比較し、取得された第二テーブル154Aに、第一テーブルと不一致となる部分(行き先情報要素)があるか否かを判定する。不一致有りとの判定結果になれば、S123に進み、不一致無しとの判定結果になれば、一つ下位のSASエクスパンダ131Aについて、S121を実行する。
S123で、RAID制御部121のコマンド発行部672Aが、第二テーブル154Aの取得元のSASエクスパンダ131Aに、第二テーブル154Aの書込みのためのSMPコマンドを送信する。これにより、そのSASエクスパンダ131における第二テーブル154Aの壊れが修復される。正しい第二テーブル154Aに修復できるのであれば、SMPコマンドでの書込みの対象としては、第一のテーブルを基に作成された壊れの無い正しい第二テーブル154Aそれ自体であっても良いし、上記不一致部分のみを修正するための情報要素であっても良い。
<拡張SSPコマンド>。
本実施形態では、SMPでの複数のファンクションがそれぞれ置き換えられた複数のSSPコマンドが用意される。それら複数のSSPコマンドの各々を、本実施形態の説明において「拡張SSPコマンド」と呼んでいる。
図9は、SMPファンクションと拡張SSPコマンドとの対応関係を示す。
例えば、9種類の拡張SSPコマンドが用意され、各種拡張SSPコマンドと各SMPファンクションとの対応関係は、図示の通りである。RAID制御部121のコマンド発行部672における拡張SSPコマンド発行部682(図4A参照)は、図示のような拡張SSPコマンドを作成して発行するよう構成されており、各SASエクスパンダ131のファームウェア140における拡張SSPコマンド処理部686(図4B参照)が、拡張SSPコマンドを受けた場合には、その受けた拡張SSPコマンドの種類に応じた処理を実行し、拡張SSPコマンドのレスポンスを作成して返信するよう構成されている。
以下、SMPファンクション“DISCOVER”が置き換えられた拡張SSPコマンドである“SSP
Discover Extended”を代表的に例に取り説明する。
図10Aは、拡張SSPコマンド“SSP Discover Extended”の構成例を示す。
拡張SSPコマンド“SSP Discover Extended”は、例えば6バイトで構成されている。
拡張SSPコマンド“SSP Discover Extended”の或るバイト位置(例えば“2”)に、ページコードとして、例えば“B2H”が設定される。“B2H”は、SAS規格におけるSSP仕様で定められている、複数のベンダユニークなコードのうちの一つである。従って、ページコードとして設定されるコードは、“B2H”に限らず、他のベンダユニークなコードであれば何でも良い。
拡張SSPコマンド“SSP Discover Extended”の所定の範囲(例えばバイト位置“3”〜“5”)に、本コマンドに対するレスポンスのデータサイズが記録される。本実施形態ではそのレスポンスのデータサイズは一定のため、ページコード“B2H”が設定される際には、所定の範囲には所定のデータサイズが設定される。
図10Bは、拡張SSPコマンド“SSP Discover Extended”のレスポンスの構成例を示す。
拡張SSPコマンド“SSP Discover Extended”のレスポンスの或るバイト位置(例えば“008H”)に、phyの数(例えば37)が記録される。そして、拡張SSPコマンド“SSP
Discover Extended”のレスポンスの所定の範囲に、phyの数と同数(例えば37)のphy情報要素“PHY INFORMATION”が記録される。図10Bに例示のレスポンスに含まれる各phy情報要素“PHY
INFORMATION”は、一つのSMPコマンドでのディスカバリ要求の際に受け取ることができる一つのphy情報要素と実質的に同じにすることができる。
以上、拡張SSPコマンド“SSP Discover Extended”とそれのレスポンスとを代表的に例に採り説明したが、他種の拡張SSPコマンド及び/又はそれのレスポンスでも、SMPコマンドで一件ずつやり取りされる情報要素を複数個設定される。言い換えれば、本実施形態では、SSPの特性に着目し、RAID制御部121で実行されるコンピュータプログラム(コマンド発行部672)と各SASエクスパンダ131で実行されるファームウェア140の構成を工夫することで、SMPコマンドの発行とそれのレスポンスの受領とを複数回行うことで実行される処理を、拡張SSPコマンドの発行とそれのレスポンスの受領とを1回行うだけで実行することができるようになっている。
<ディスカバリ処理及びルーティングテーブル設定処理>。
ストレージシステム101には、外部装置103からボリュームI/Oコマンドを受け付けたままの状態で、新たに増設筐体107を増設することができる。以下、増設された増設筐体107を「新規増設筐体107」と呼ぶ。新規増設筐体107が増設され(例えば、最下位のSASエクスパンダ131A及び131Bに、新規増設筐体107内のSASエクスパンダ131A及び131Bが例えば電気的に接続され)、RAID制御部121A及び121Bが、新規増設筐体107内のSASエクスパンダ131A及び131Bに接続されているデバイスにアクセスするためには、新規増設筐体107より上位にある全てのルーティングテーブルに、SASエクスパンダ131A及び131Bにどんなデバイスが接続されているかに関する情報が登録されなければならない。
RAID制御部121A及び121Bは、新規増設筐体107が増設されたことを検知したことを契機に、ディスカバリ処理を実行する。具体的には、RAID制御部121A及び121Bは、新規増設筐体107内のSASエクスパンダ131A及び131Bに、どんなデバイスが接続されているのかの情報の開示を要求し、それの応答で、その情報を受信する。そして、RAID制御部121A及び121Bは、その要求に応答して送られて来た情報を基に、新規増設筐体107よりも上位にある全てのルーティングテーブルを更新するルーティングテーブル設定処理を実行する。
ディスカバリ処理の方法として、一般に、SMPが利用される。具体的には、図11Aに示すように、ディスカバリ処理では、ディスカバリ用のSMPコマンド“DISCOVER”が発行される。SMPコマンド“DISCOVER”で指定可能なphyの数は一つであり、故に、一回のSMPコマンド“DISCOVER”の発行で取得可能なphy情報要素は1つである(すなわち、その指定されたphyに接続されているデバイスに関する情報要素が取得される)。このため、一方のカスケード構成について言えば、SMPコマンド“DISCOVER”の発行は、認識された新規増設筐体107一つにつき、その筐体107内のSASエクスパンダ131Aに備えられているphyの数と同数分行われる。
認識された新規増設筐体107一つにつき、全てのphyについてのphy情報要素が取得された場合、図11Aによれば、ルーティングテーブル設定処理が実行されるが、そのルーティングテーブル設定処理でも、一般に、SMPコマンドが利用される。具体的には、図12Aに示すように、ルーティングテーブルに記録する情報要素を設定するためのSMPコマンド“Configure Route Information”が発行される。SMPコマンド“Configure Route
Information”でルーティグテーブル154Aに設定可能な行き先情報要素は、一つのphy情報要素に対応した一デバイス分である。このため、一方のカスケード構成について、新規増設筐体107一つ分に関して言えば、新規増設筐体107よりも上位のSASエクスパンダ131A一つに対して、SMPコマンド“Configure
Route Information”の発行は、取得されたphy情報要素(つまり、発見されたデバイス)の数と同数分行われる。これが、新規増設筐体107より上位にある全てのSASエクスパンダ131Aについて、下位から上位にかけて順次に1つずつ実行される。
SMPコマンドを利用するディスカバリ処理及びルーティングテーブル設定処理では、コマンドの発行回数が、phyの数や発見されたデバイスの数に依存する。このため、phyの数や発見されたデバイスの数が多くなるほど、SMPコマンドの発行回数が多くなる。新規増設筐体の増設は、外部装置103からのボリュームI/Oコマンドを受け付けている状態において実行されるため、ディスカバリ処理及びルーティングテーブル設定処理では、SMPコマンドの発行や処理等によるリソース占有によって、ボリュームI/Oコマンドを基に発行されるドライブI/Oコマンドが経由できる物理リンクの数が減ってしまう(図13A参照)。
そこで、本実施形態では、SSPで、ディスカバリ処理及びルーティングテーブル設定処理が行われる。具体的には、図9に示したように、SMPコマンド“DISCOVER”を置き換えた拡張SSPコマンドとして“SSP Discover Extended”が用意され、SMPコマンド“Configure
Route Information”を置き換えた拡張SSPコマンドとして“SSP Configure Route Information Extended”が用意される。これらの拡張SSPコマンドを発行できるよう、前述した拡張SSP発行部682が構成され、且つ、その拡張SSPコマンドを解釈して実行できるよう、前述したファームウェア140が構成される。
SSPでのディスカバリ処理を、図11Bに示す。一方のカスケード構成について言えば、新規増設筐体107一つにつき、RAID制御部121Aにおける拡張SSPコマンド発行部682Aが、拡張SSPコマンド“SSP Discover Extended”(図10A参照)を作成し、その拡張SSPコマンド“SSP Discover Extended”を、新規増設筐体107内のSASエクスパンダ131Aに送信する。そのSASエクスパンダ131Aがその拡張SSPコマンド“SSP
Discover Extended”を受信した場合、SAS制御部123Aとの接続が切断される。そのSASエクスパンダ131Aにおいて、ファームウェア140Aは、拡張SSPコマンド“SSP
Discover Extended”に含まれるページコード“B2H”を検出したならば、そのSASエクスパンダ131Aの全てのphy151Aに接続されている全てのデバイスについてのphy情報要素を含んだレスポンス(図10B参照)を作成する。SASエクスパンダ131AからSAS制御部123Aに再接続され、ファームウェア140Aが、そのレスポンスを、拡張SSPコマンド発行部682Aに送信する。
認識された新規増設筐体107一つにつき、拡張SSPコマンド“SSP Discover
Extended”の一回の発行で、全てのphyについてのphy情報要素を含んだレスポンスが取得された後、図11Bによれば、ルーティングテーブル設定処理が実行される。そのルーティングテーブル設定処理を、図12Bを参照して説明する。RAID制御部121Aにおける拡張SSPコマンド発行部682Aが、拡張SSPコマンド“SSP
Configure Route Information Extended”を作成する。その拡張SSPコマンド“SSP Configure Route
Information Extended”には、全てのphy情報要素から取得される全てのデバイスについての行き先情報要素(つまり、一回の拡張SSPコマンド“SSP
Discover Extended”の発行で発見された全てのデバイスについての行き先情報要素)が含まれる。その拡張SSPコマンド“SSP Configure
Route Information Extended”が、新規増設筐体107内のSASエクスパンダ131Aに送信される。そのSASエクスパンダ131Aがその拡張SSPコマンド“SSP
Configure Route Information Extended”を受信した場合、SAS制御部123Aとの接続が切断される。そのSASエクスパンダ131Aにおいて、ファームウェア140Aは、拡張SSPコマンド“SSP
Configure Route Information Extended”に含まれる全ての行き先情報要素を、ルーティングテーブル154Aに設定する。その後、SASエクスパンダ131Aから再接続され、拡張SSPコマンド“SSP
Configure Route Information Extended”に対するレスポンスが返され、切断される。以上の処理が、新規増設筐体107より上位にある全てのSASエクスパンダ131Aについて、下位から上位にかけて順次に1つずつ実行される。
以上の流れによれば、一回の拡張SSPコマンド“SSP Discover
Extended”の発行で、一つのSASエクスパンダ131Aにある全てのphy151Aについての全てのデバイスが発見される。そして、一回の拡張SSPコマンド“SSP
Configure Route Information Extended”の発行で、発見された全てのデバイスについての行き先情報要素がルーティングテーブル154Aに書き込まれる。これにより、図11Aや図12Aに示したSMPを利用する方法に比して、少ないコマンド発行回数且つ短いリソース占有時間長で、ディスカバリ処理やルーティングテーブル設定処理を行うことができる。拡張SSPコマンド“SSP
Discover Extended”に対するレスポンスの準備や、拡張SSPコマンド“SSP Configure Route Information
Extended”に応答したルーティングテーブル154Aに対する書込みが、SMPの場合に比して長くても、コマンド処理中は、SAS制御部123AとSASエクスパンダ131Aとの間のリソースが解放されているため、ドライブI/OコマンドをSMPの場合に比してより多く流すことができる(図13B参照)。
なお、ディスカバリ処理及びルーティングテーブル設定処理のうちの少なくとも一つ(或いは、拡張SSPコマンド或いは他種のSSPコマンドを発行する他の処理)において、拡張SSPコマンドが通らない場合には、図6のS103以降の処理が行われても良い(つまり、SMPコマンドを発行し通るか否かの判断や、診断復旧処理が行われても良い)。
<複数種類のキューを利用したコマンド発行制御>。
RAID制御部121Aのコマンド発行部672Aから、ドライブI/Oコマンド(SSPコマンド)、拡張SSPコマンド及びSMPコマンドなどが発行されるが、単純に発行順序通りにSAS制御部123Aにコマンドを発行すると、ストレージシステム101の性能低下が生じるおそれが考えられる。
その一例を図14Aに示す。SAS制御部123Aに、コマンドが蓄積されるキュー(以下、コマンドキュー)603Aがある。コマンドキュー603Aには、RAID制御部121Aから発行された順序でコマンドが蓄積される。この場合、複数のSMPコマンドの発行順序が連続してしまうと、ストレージシステム101の性能低下が生じるおそれがある。なぜなら、SMPコマンドは、一つのSAS制御部123Aからは同時期に一つしか送信することができず、それ故、連続したSMPコマンドの後続にあるドライブI/Oコマンドがコマンドキュー603Aからなかなか吐き出されずに残ってしまうためである。
そこで、本実施形態では、以下の工夫が施されている。
すなわち、図14Bに示すように、RAID制御部121A内に、二種類のキューが用意される。第一種のキューとして、処理要求キューが備えられる。処理要求キューは、複数個備えられており、各々の処理要求キューは他の処理要求キューと優先度が異なる。一例として、優先度“高”、“中”、“低”に対応した3つの処理要求キュー6011A、6012A及び6013Aが備えられる。第二種のキューとして、処理均等要求キュー602Aが備えられる。
コマンド発行部672Aが、コマンドを、処理要求キュー6011A〜6013Aと処理均等要求キュー602Aとの4つのキューの中から選択したキューに蓄積する。コマンド発行制御部742Aが、各キュー6011A〜6013A及び602Aの各々を定期的にチェックする。キューにコマンドが蓄積されていることを見つけた場合に、そのキュー内のコマンド一つをSAS制御部123Aに出力する。SAS制御部123Aのコマンドキュー603Aには、RAID制御部121Aから受けた順番にコマンドが蓄積される。
コマンド発行制御の第一の例として、コマンド発行部672Aは、ドライブI/Oコマンド(SSPコマンド)を発行する場合には、優先度“高”の処理要求キュー6011AにドライブI/Oコマンド(SSPコマンド)を蓄積し、SMPコマンドを発行する場合には、ドライブI/Oコマンドよりも優先度の低い優先度“中”の処理要求キュー6012A(又は優先度“低”の処理要求キュー6013A)にSMPコマンドを蓄積する。コマンド発行制御部742Aは、優先度“高”の処理要求キュー6011Aに蓄積されているドライブI/Oコマンドを優先的にSAS制御部123Aに吐き出す。具体的には、例えば、コマンド発行制御部742Aは、優先度“高”の処理要求キュー6011Aのチェック時間間隔を最も短く、優先度“中”の処理要求キュー6012Aのチェック時間間隔を次に短く、優先度“低”の処理要求キュー6013Aのチェック時間間隔を最も長くし、チェックの結果としてコマンドを見つけた場合には、見つけた一つのコマンドをキューから吐き出させるよう構成されている。このため、優先度が高い処理要求キューほど、コマンドの蓄積が早く発見されてSAS制御部123Aに吐き出されるようになっている。
コマンド発行制御の第二の例として、緊急度の高いSMPコマンドは、優先度がドライブI/Oコマンドと同等である。すなわち、コマンド発行部672Aは、緊急度の高いSMPコマンドを、優先度“高”の処理要求キュー6011Aに蓄積する。緊急度の高いSMPコマンドとしては、障害特定処理で使用されるSMPコマンド(例えば図6のS103で発行されるSMPコマンド)、及び/又は、ルーティングテーブル154Aの修復のために発行されるSMPコマンド(つまり図8の処理において発行されるSMPコマンド)がある。
コマンド発行制御の第三の例として、コマンド発行部672Aは、定期的に発行する種類のSMPコマンドを、処理均等要求キュー602Aに蓄積する。コマンド発行制御部742Aは、優先度“高”の処理要求キュー6011Aと同じチェック時間間隔で処理均等要求キュー602Aをチェックする。このため、ドライブI/Oコマンドが優先度“高”の処理要求キュー6011Aに蓄積された時点とSMPコマンドが処理均等要求キュー602Aに蓄積された時点とが実質的に同じ場合には、そのドライブI/OコマンドとそのSMPコマンドとが交互にSAS制御部123Aに吐き出されることになる。
<BP(Broadcast Primitive)のブロードキャスト>。
SASの規格によれば、コントローラ110より下位のデバイスであるSASエクスパンダ131に監視機能をオフロードすることができる。
例えば図17に示すように、一方のカスケード構成及び他方のカスケード構成の両方において、3つのSASエクスパンダ131(SASエクスパンダ#1、#2及び#3)がカスケード状に接続されており、SASエクスパンダ#2A及び#2Bのファームウェア140A及び140Bが(具体的には、監視制御部694A及び694Bが)、監視対象である監視対象デバイス141について状態変化(例えば障害発生)が検知されたとする。この場合、両方のSASエクスパンダ#2A及び#2Bが、それぞれ、BP(SES)を作成してブロードキャストする。これにより、BP(SES)が、SASエクスパンダ#2A及び#2Bより上位及び下位の両方に、バケツリレー的に、送信される。この結果、コントローラ110A及び110Bが、SASエクスパンダ#2A及び#2BからそれぞれブロードキャストされたBP(SES)を受信する。具体的には、SAS制御部123A及び123Bを経由してRAID制御部121A及び121Bが、BP(SES)を受信する。
しかし、SASエクスパンダ#2A及び#2BからそれぞれブロードキャストされたBP(SES)がコントローラ110A及び110Bの両方に届かない異常ケースがある。
第一の異常ケースとして、例えば、図18Aに示すケースがある。すなわち、他方のコントローラが無く、一方のSASエクスパンダ#2Aと監視対象デバイス141との間に障害が発生したケースである。この場合、図18Aに示すように、一方のSASエクスパンダ#2Aでは、監視対象デバイス141の状態変化を検知できないため、一方のSASエクスパンダ#2Aからは、BP(SES)が送信されない。従って、コントローラ110Aには、BP(SES)は届かない。また、他方のSASエクスパンダ#2Bからは、BP(SES)がブロードキャストされても、他方のコントローラは無いため、他方でも、コントローラにBP(SES)が届かない。
また、第二の異常ケースとして、例えば、図19Aに示すケースがある。すなわち、一方のSASエクスパンダ#2Aと監視対象デバイス141との間に障害が発生し、且つ、他方のSASエクスパンダ#1Bと他方のSASエクスパンダ#2Bとの間に障害が発生したケースである。この場合、図19Aに示すように、一方のSASエクスパンダ#2Aでは、監視対象デバイス141の状態変化を検知できないため、一方のSASエクスパンダ#2Aからは、BP(SES)が送信されない。従って、コントローラ110Aには、BP(SES)は届かない。また、他方のSASエクスパンダ#2Bからは、BP(SES)がブロードキャストされるが、その上位のSASエクスパンダ#1Bとの間に障害が生じているため、上位にはBP(SES)が送信されない。従って、他方のコントローラ110Bにも、BP(SES)が届かない。
そこで、本実施形態では、一方のSASエクスパンダ131Aと他方のSASエクスパンダ131Bとが、IIC161Aを介して物理的に接続され(図3参照)、且つ、SASエクスパンダ131A及び131Bで実行されるファームウェア140A及び140Bに、BP生成の指示を授受するためのインタフェースであるBP生成I/F692A及び692Bが備えられる(図4B参照)。
上述した第一の異常ケースでは、図18Bに示すように、他方のSASエクスパンダ#2Bで実行されるファームウェア140Bにおいて、監視制御部694Bが、BP生成I/F692Bを通じて、一方のSASエクスパンダ#2Aに、BP(SES)生成の要求を送信する。一方のSASエクスパンダ#2Aで実行されるファームウェア140Aにおいて、監視制御部694Aが、BP生成I/F692Aを通じて、他方のSASエクスパンダ#2BからのBP(SES)生成要求を受信し、その要求に応答して、BP(SES)を作成しブロードキャストする。これにより、第一の異常ケースが生じても、BP(SES)がコントローラ110に届く。
また、上述した第二の異常ケースでも、第一の異常ケースと同様に、図19Bに示すように、他方のSASエクスパンダ#2Bから一方のSASエクスパンダ#2AにBP(SES)生成要求が送信される。これにより、一方のSASエクスパンダ#2AからBP(SES)が送信され、その結果、第二の異常ケースが生じても、BP(SES)がコントローラ110Aに届く。
図20A及び図20Cを参照して、上記の第一及び第二の異常ケースについて、他方のSASエクスパンダ#2Bで実行されるファームウェア140B内の監視制御部694Bが行う処理を説明する。また、図20Bを参照して、一方のSASエクスパンダ#2Aで実行されるファームウェア140A内の監視制御部694Aが行う処理を説明する。なお、その説明では、便宜上、SASエクスパンダ#2A、#2Bを例に採るが、図20A、図20B及び図20Cをそれぞれ参照して説明する処理は、他の各SASエクスパンダでの各ファームウェア140についても適用される。
図20Aに示すように、監視制御部694Bは、監視対象デバイス133B、141を監視する(ポーリングする)。監視制御部694Bは、状態変化を検知した場合(S401:YES)、BP(SES)を作成してブロードキャストする(S402)。その後、相手側送信処理(S403)が行われる。すなわち、図20Cに示すように、監視制御部694Bは、BP(SES)を生成したか否かを判定し(S421)、BP(SES)の生成を検知したならば(例えばS402でBP(SES)を生成したので)、BP生成I/F692Bを通じて、BP(SES)生成要求を相手のSASエクスパンダ#2Aに送信する。BP(SES)生成要求は、IIC161Bを通じて、相手のSASエクスパンダ#2Aに送られる。
図20Bに示すように、相手のSASエクスパンダ#2Aでは、ファームウェア140A内の監視制御部694Aが、例えば何らかの要求の入力に応答して、BP(SES)生成要求を受信したか否かを判定する(S411)。BP(SES)生成要求の入力であれば、監視制御部694Aが、BP(SES)を生成してブロードキャストする(S412)。一方、他種の要求の入力であれば、その要求に応答した通信処理がファームウェア140Aによって実行される(S413)。
図21は、RAID制御部121AのBP処理部674Aが行うBP処理の流れの一例を示す。
BP処理部674Aは、BPを受信したことを契機にBP処理を開始することができる。BP処理部674Aは、BP(CHANGE)の受信であるか否かの判定を行う(S431)。BP(CHANGE)の受信との判定結果になれば、BP処理部674Aは、BP(CHANGE)処理を実行する(S432)。BP(CHANGE)処理として、例えば、図11Bに示したディスカバリ処理を開始することができる。
S431の判定の結果がBP(CHANGE)の受信ではないであれば、BP処理部674Aは、BP(SES)の受信であるか否かの判定を行う(S433)。BP(SES)の受信との判定結果になれば、BP処理部674Aは、BP(SES)処理を実行し(S432)、一方、BP(SES)の受信ではないとの判定結果になれば、受信したBPに応じた処理を実行する(S435)。
図22は、BP処理部674Aが行うBP(SES)処理の流れの一例を示す。
S451で、BP処理部674Aが、ターゲットのSASエクスパンダ131AからSES情報を採取する(S451)。具体的には、例えば、BP処理部674Aが、コマンド発行部672Aから、ターゲットのSASエクスパンダ131Aに、SES情報取得のためのSSPコマンドを送信させ、それの応答として、コマンド発行部672Aを通じてSES情報を受信する。S452で、BP処理部674Aが、採取されたSES情報から、ターゲットのSASエクスパンダ131Aで監視対象デバイス133A又は141の状態変化が検知されたか否かの判定(つまり、監視対象デバイス133A又は141の状態変化があったか否かの判定)を行う。その判定の結果が肯定的である場合、S453で、BP処理部674Aは、その採取されたSES情報に応じた処理(例えば、障害発生を検知したのであれば、障害発生に対処するための処理)を実行する。
以上のS451、S452及びS453は、基本筐体105内のSASエクスパンダ131Aから最下位のSASエクスパンダ131Aにかけて、最上位より順次に、実行される。
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、RAID制御部121は、SAS制御部123、SASエクスパンダ131及びディスクドライブ111のうちの少なくとも一つを定期的に診断することができ、その診断のための状態問合せのためのコマンドをSSPで送信することができる。そのSSPでのコマンド送信のための接続ができない等の場合には、図6のS103に進むことができる。
図1は、本発明の一実施形態に係るストレージシステムの構成例を示す。 図2Aは、基本筐体の構成例を示す。図2Bは、増設筐体の構成例を示す。 図3は、SASエクスパンダの構成例を示す。 図4Aは、RAID制御部内のプロセッサが実行するコンピュータプログラムを示す。図4Bは、ファームウェアの構成例を示す。 図5Aは、SMPでのリソース占有を示す。図5Bは、SSPでのリソース占有を示す。 図6は、SASエクスパンダにSSPコマンドが発行される場合に実行される処理の流れを示す。 図7は、ディスクドライブにSSPでドライブI/Oコマンドが発行される場合に実行される処理の流れを示す。 図8は、診断・復旧処理の流れを示す。 図9は、SMPファンクションと拡張SSPコマンドとの対応関係を示す。 図10Aは、拡張SSPコマンド“SSP Discover Extended”の構成例を示す。図10Bは、拡張SSPコマンド“SSPDiscover Extended”のレスポンスの構成例を示す。 図11Aは、SMPコマンド“DISCOVER”を利用したディスカバリ処理の流れの一例を示す。図11Bは、拡張SSPコマンド“SSPDiscover Extended”を利用したディスカバリ処理の流れの一例を示す。 図12Aは、SMPコマンド“Configure RouteInformation”を利用したルーティングテーブル設定処理の流れの一例を示す。図12Bは、拡張SSPコマンド“SSP Configure RouteInformation Extended”を利用したルーティングテーブル設定処理の流れの一例を示す。 図13Aは、SMPコマンドを利用したディスカバリ処理やルーティングテーブル設定処理においてSMPコマンド処理中にリソースが占有されるためドライブI/Oコマンドを流せる物理リンクが制限されてしまうことを示す。図13Bは、拡張SSPコマンドを利用したディスカバリ処理やルーティングテーブル設定処理では拡張SSPコマンド処理中はリソースが解放されているためにドライブI/Oコマンドを流せる物理リンクが制限されないことを示す。 図14Aは、RAID制御部からのコマンド発行順序通りの順番でコマンドが並んだ、SAS制御部内のコマンドキューの一例を示す。図14Bは、コマンド発行制御の第一の例の説明図である。 図15は、コマンド発行制御の第二の例の説明図である。 図16は、コマンド発行制御の第三の例の説明図である。 図17は、BP(SES)がコントローラに届く正常ケースを示す。 図18Aは、BP(SES)がコントローラに届かない第一の異常ケースを示す。図18Bは、第一の異常ケースが生じてもBP(SES)がコントローラに届くようにした解決方法の説明図である。 図19Aは、BP(SES)がコントローラに届かない第二の異常ケースを示す。図19Bは、第二の異常ケースが生じてもBP(SES)がコントローラに届くようにした解決方法の説明図である。 図20Aは、SASエクスパンダのファームウェアにおける監視制御部が実行する監視処理の流れの一例を示す。図20Bは、SASエクスパンダのファームウェアにおける監視制御部が実行する受信側処理の一例を示す。図20Cは、SASエクスパンダのファームウェアにおける監視制御部が実行する相手側送信処理の流れの一例を示す。 図21は、RAID制御部が行うBP処理の流れの一例を示す。 図22は、RAID制御部が行うBP(SES)処理の流れの一例を示す。
符号の説明
101…ストレージシステム 105…基本筐体 107…増設筐体

Claims (20)

  1. 複数の記憶装置と、
    前記複数の記憶装置が接続された一以上のスイッチデバイスと、
    前記複数の記憶装置及び前記一以上のスイッチデバイスのうちのいずれかのターゲットにコマンドを発行するコマンド発行部を有したコントローラと
    を備え、
    前記コマンド発行部が、第一プロトコルコマンドに相当するコマンドとして定義された第二プロトコルコマンドを、前記一以上のスイッチデバイスのうちのいずれかのターゲットに送信し、
    前記第一プロトコルコマンドとは、第一のプロトコルに従うコマンドであり、
    前記第一のプロトコルとは、ターゲットにコマンドを送信するために確立された接続が該ターゲットでの該コマンドの処理中にも接続が確立されているタイプのプロトコルであり、
    前記第二プロトコルコマンドとは、第二のプロトコルに従うコマンドであり、
    前記第二のプロトコルとは、ターゲットでのコマンドの処理中には接続が切断されているタイプのコマンドである、
    ストレージシステム。
  2. 前記第二プロトコルコマンドとして、ターゲットであるスイッチデバイスのポートに接続されているデバイスに関する情報のディスカバリを要求する第二プロトコルディスカバリコマンドがあり、
    各スイッチデバイスが、前記コマンド発行部からのコマンドを解釈し処理するコマンド処理部を有し、前記コマンド処理部が、コマンドの解釈によって前記第二プロトコルディスカバリコマンドを検出したならば、自分が有する複数のポート全てにそれぞれ対応した複数のポート情報要素を含むレスポンスを作成し、そのレスポンスを前記コマンド発行部に送信する、
    請求項1記載のストレージシステム。
  3. 前記第二プロトコルコマンドとして、更に、ルーティングテーブルの更新を要求する第二プロトコルテーブル更新コマンドがあり、
    前記ルーティングテーブルには、該ルーティングテーブルを保持するスイッチデバイス及びそれより下位のスイッチデバイスに接続されているデバイスに関するデバイス情報要素が記録されており、
    前記コマンド発行部が、受信した前記レスポンスに含まれている複数のポート情報要素を基に、前記複数のポート情報要素から特定される全てのデバイスのデバイス情報要素を有した第二プロトコルテーブル更新コマンドを準備し、該第二プロトコルテーブル更新コマンドを、ターゲットのスイッチデバイスより上位のスイッチデバイスに送信し、
    ターゲットのスイッチデバイスより上位のスイッチデバイスの前記コマンド処理部が、コマンドの解釈によって前記第二プロトコルテーブル更新コマンドを検出したならば、該スイッチデバイスが有するルーティングテーブルに、該第二プロトコルテーブル更新コマンドが有するデバイス情報要素を書込む、
    請求項2記載のストレージシステム。
  4. 前記第二プロトコルコマンドとして、ルーティングテーブルの更新を要求する第二プロトコルテーブル更新コマンドがあり、
    前記ルーティングテーブルには、該ルーティングテーブルを保持するスイッチデバイス及びそれより下位のスイッチデバイスに接続されているデバイスに関するデバイス情報要素が記録されており、
    前記コマンド発行部が、ディスカバリ処理により発見された全てのデバイスのデバイス情報要素を有した第二プロトコルテーブル更新コマンドを準備し、該第二プロトコルテーブル更新コマンドを、ターゲットのスイッチデバイスより上位のスイッチデバイスに送信し、
    ターゲットのスイッチデバイスより上位のスイッチデバイスの前記コマンド処理部が、コマンドの解釈によって前記第二プロトコルテーブル更新コマンドを検出したならば、該スイッチデバイスが有するルーティングテーブルに、該第二プロトコルテーブル更新コマンドが有するデバイス情報要素を書込む、
    請求項1記載のストレージシステム。
  5. 前記コマンド発行部が、ターゲットに前記第二プロトコルコマンドを送信するための接続に失敗、及び/又は、前記第二プロトコルコマンドのレスポンスをターゲットから送信するための接続に失敗の場合、第一プロトコルコマンドの送信のための接続を試行する、
    請求項1記載のストレージシステム。
  6. 前記コントローラ及び前記一以上のスイッチデバイスの各々が、ルーティングテーブルを保持し、前記コントローラが保持するルーティングテーブルには、該コントローラより下位のスイッチデバイスに接続されているデバイスに関するデバイス情報要素が記録されており、スイッチデバイスが保持するルーティングテーブルには、該スイッチデバイス及びそれより下位のスイッチデバイスに接続されているデバイスに関するデバイス情報要素が記録されており、
    前記コントローラ及び前記一以上のスイッチデバイスの各々において、第一のプロトコルでコマンドを発行する際の接続のために参照する第一のアドレスと、第二のプロトコルでコマンドを発行する際の接続のために参照する第二のアドレスとの両方のアドレスに、一つのデバイスについてのデバイス情報要素が存在し、
    前記コマンド発行部が、前記第一プロトコルコマンドの送信のためのターゲットとの接続に成功した場合に、該ターゲットと前記コントローラとの間に存在する各々のスイッチデバイスについて、スイッチデバイスからルーティングテーブルを取得するための第一プロトコルコマンドを発行することでルーティングテーブルを取得し、前記コントローラが保持するルーティングテーブルと前記取得されたルーティングテーブルとの比較を行い、不一致であれば、一致となるよう前記取得されたルーティングテーブルを修正するために第一プロトコルコマンドをそのスイッチデバイスに送信する、
    請求項5記載のストレージシステム。
  7. 複数の記憶装置と、
    前記複数の記憶装置が接続された一以上のスイッチデバイスと、
    前記複数の記憶装置及び前記一以上のスイッチデバイスのうちのいずれかのターゲットにコマンドを発行するコマンド発行部を有したコントローラと
    を備え、
    前記コマンド発行部が、第二プロトコルコマンドを前記一以上のスイッチデバイスのうちのいずれかのターゲットに送信するための接続に失敗、及び/又は、その第二プロトコルコマンドのレスポンスをターゲットから送信するための接続に失敗の場合、該ターゲットに第一プロトコルコマンドを送信するための接続を試行し、
    前記第一プロトコルコマンドとは、第一のプロトコルに従うコマンドであり、
    前記第一のプロトコルとは、ターゲットにコマンドを送信するために確立された接続が該ターゲットでの該コマンドの処理中にも接続が確立されているタイプのプロトコルであり、
    前記第二プロトコルコマンドとは、第二のプロトコルに従うコマンドであり、
    前記第二のプロトコルとは、ターゲットでのコマンドの処理中には接続が切断されているタイプのコマンドである、
    ストレージシステム。
  8. 前記コマンド発行部が、前記第一プロトコルコマンドの送信のためのターゲットとの接続に成功した場合に、前記コントローラより下位に存在するルーティングテーブルを第一のプロトコルコマンドで修正する、
    請求項7記載のストレージシステム。
  9. 前記コマンド発行部が、外部装置から第一のI/Oコマンドを受信し、該第一のI/Oコマンドに応答して前記複数の記憶装置のうちの一以上の記憶装置に前記一以上のスイッチデバイスを介して、第二のI/Oコマンドを、前記第二のプロトコルで送信するよう構成されており、第二のI/Oコマンドの送信のための接続に失敗、及び/又は、その第二のI/Oコマンドのレスポンスを記憶装置から送信するための接続に失敗の場合、該記憶装置が直接されているスイッチデバイスに、該記憶装置が接続されているか否か及び/又は該記憶装置との間の接続が正常か否かの問合せを第二プロトコルコマンドで送信する、
    請求項7記載のストレージシステム。
  10. 前記コントローラ及び前記一以上のスイッチデバイスの各々が冗長化されており、
    一方のコントローラにおける前記コマンド発行部が、前記問合せのための第二プロトコルコマンドに対する応答として、記憶装置が接続されている及び/又は該記憶装置との間の接続は正常である旨を受けた場合には、他方のコントローラから該記憶装置に対して第二のI/Oコマンドを発行させ、該第二のI/Oコマンドの送信のための接続が成功した場合には、前記一方のコントローラより下位に存在するルーティングテーブルを第一のプロトコルコマンドで修正する、
    請求項9記載のストレージシステム。
  11. 前記他方のコントローラにおけるコマンド発行部が、第二のI/Oコマンドの送信のための接続に失敗、及び/又は、その第二のI/Oコマンドのレスポンスを記憶装置から送信するための接続に失敗の場合、該記憶装置が直接されている他方のスイッチデバイスに、該記憶装置が接続されているか否か及び/又は該記憶装置との間の接続が正常か否かの問合せを第二プロトコルコマンドで送信し、該問合せのための第二プロトコルコマンドに対する応答として、記憶装置が接続されている及び/又は該記憶装置との間の接続は正常である旨を受けた場合には、前記他方のコントローラより下位に存在するルーティングテーブルを第一のプロトコルコマンドで修正する、
    請求項10記載のストレージシステム。
  12. 前記コントローラ及び前記一以上のスイッチデバイスの各々が冗長化されており、
    冗長化されているスイッチデバイス間が接続されており、冗長化されているスイッチデバイスの各々が、ブロードキャスト要求のインタフェースである要求インタフェースと、冗長化されているスイッチデバイスに共通の監視対象デバイスを監視し該監視対象デバイスの障害を検知した場合に上位及び下位に所定種類の情報をブロードキャストすると共に前記要求インタフェースを通じてブロードキャスト要求を他方のスイッチデバイスに送信する監視制御部とを備え、
    前記他方のスイッチデバイスにおける監視制御部が、該他方のスイッチデバイスにおける要求インタフェースを通じてブロードキャスト要求を受けたことに応答して、該他方のスイッチデバイスの上位及び下位に所定種類の情報をブロードキャストし、
    冗長化されているコントローラの各々が、前記所定種類の情報の受信に応答して、第二のプロトコルコマンドをスイッチデバイスに送信することにより該スイッチデバイスで検知された障害に関する情報の採取を行う、
    請求項7記載のストレージシステム。
  13. 前記コマンド発行部が、外部装置から第一のI/Oコマンドを受信し、該第一のI/Oコマンドに応答して前記複数の記憶装置のうちの一以上の記憶装置に前記一以上のスイッチデバイスを介して、第二のI/Oコマンドを、前記第二のプロトコルで送信するよう構成されており、第二のI/Oコマンドを第一プロトコルコマンドよりも優先して出力する、
    請求項7記載のストレージシステム。
  14. 第一プロトコルコマンドが特定の種類のコマンドであれば、該第一プロトコルコマンドの優先度が第二のI/Oコマンドと同等とされる、
    請求項13記載のストレージシステム。
  15. 第一プロトコルコマンドが定期的に発行される種類のコマンドであって、二以上の第一プロトコルコマンドと二以上の第二のI/Oコマンドとの発行時期がそれぞれ同時期の場合には、第二のI/Oコマンドと第一のプロトコルコマンドとが交互に出力される、
    請求項13記載のストレージシステム。
  16. 複数の記憶装置と、
    前記複数の記憶装置が接続された一以上のスイッチデバイスと、
    前記複数の記憶装置及び前記一以上のスイッチデバイスのうちのいずれかのターゲットにコマンドを発行するコマンド発行部を有したコントローラと
    を備え、
    前記コントローラ及び前記一以上のスイッチデバイスの各々が冗長化されており、
    冗長化されているスイッチデバイス間が接続されており、冗長化されているスイッチデバイスの各々が、ブロードキャスト要求のインタフェースである要求インタフェースと、冗長化されているスイッチデバイスに共通の監視対象デバイスを監視し該監視対象デバイスの障害を検知した場合に上位及び下位に所定種類の情報をブロードキャストすると共に前記要求インタフェースを通じてブロードキャスト要求を他方のスイッチデバイスに送信する監視制御部とを備え、
    前記他方のスイッチデバイスにおける監視制御部が、該他方のスイッチデバイスにおける要求インタフェースを通じてブロードキャスト要求を受けたことに応答して、該他方のスイッチデバイスの上位及び下位に所定種類の情報をブロードキャストする、
    ストレージシステム。
  17. 冗長化されているコントローラの各々が、前記所定種類の情報の受信に応答して、第二のプロトコルコマンドをスイッチデバイスに送信することにより該スイッチデバイスで検知された障害に関する情報の採取を行う、
    請求項16記載のストレージシステム。
  18. 前記第一のプロトコルは、SAS(Serial Attached SCSI)におけるSMP(Serial
    Management Protocol)であり、前記第一プロトコルコマンドは、SMPコマンドであり、
    前記第二のプロトコルは、SASにおけるSSP(Serial SCSI
    Protocol)であり、前記第二プロトコルコマンドは、SSPコマンドであり、
    前記スイッチデバイスは、SASエクスパンダであり、
    SSPコマンドとして、ターゲットであるスイッチデバイスのポートに接続されているデバイスに関する情報のディスカバリを要求するSMPコマンドに相当するものとして定義されたSSPディスカバリコマンドと、ルーティングテーブルの更新を要求するSMPコマンドに相当するものとして定義されたSSPテーブル更新コマンドとがあり、
    前記ルーティングテーブルには、該ルーティングテーブルを保持するSASエクスパンダ及びそれより下位のSASエクスパンダに接続されているデバイスに関するデバイス情報要素が記録されており、
    各SASエクスパンダが、前記コマンド発行部からのコマンドを解釈し処理するコマンド処理部を有し、前記コマンド処理部が、コマンドの解釈によって前記SSPディスカバリコマンドを検出したならば、自分が有する複数のポート全てにそれぞれ対応した複数のポート情報要素を含むレスポンスを作成し、そのレスポンスを前記コマンド発行部に送信し、
    前記コマンド発行部が、受信した前記レスポンスに含まれている複数のポート情報要素を基に、前記複数のポート情報要素から特定される全てのデバイスのデバイス情報要素を有したSSPテーブル更新コマンドを準備し、該SSPテーブル更新コマンドを、ターゲットのSASエクスパンダより上位のSASエクスパンダに送信し、
    ターゲットのSASエクスパンダの前記コマンド処理部が、コマンドの解釈によって前記SSPテーブル更新コマンドを検出したならば、該SASエクスパンダが有するルーティングテーブルに、該SSPテーブル更新コマンドが有するデバイス情報要素を書込む、
    請求項1記載のストレージシステム。
  19. 前記コマンド発行部が、前記一以上のスイッチデバイスのうちのいずれかのターゲットにSSPコマンドを送信するための接続に失敗、及び/又は、そのSSPコマンドのレスポンスをターゲットから送信するための接続に失敗の場合、SMPコマンドを送信するための接続を試行し、該接続に成功した場合に、前記コントローラより下位に存在するルーティングテーブルをSSPコマンドで修正する、
    請求項18記載のストレージシステム。
  20. 複数の記憶装置と、
    前記複数の記憶装置が接続された一以上のスイッチデバイスと、
    前記複数の記憶装置及び前記一以上のスイッチデバイスのうちのいずれかのターゲットにコマンドを発行するコマンド発行部を有したコントローラと
    を備え、
    前記コントローラが、
    発行されたコマンドが蓄積される複数のキューと、
    複数のキューの各々をチェックし蓄積されているコマンドをターゲットへと吐き出すコマンド発行制御部と
    を更に備え、
    前記コマンド発行部が、外部装置から第一のI/Oコマンドを受信し、該第一のI/Oコマンドに応答して前記複数の記憶装置のうちの一以上の記憶装置にI/Oを実行させるための第二のI/Oコマンドを発行するよう構成されており、発行するコマンドが、第一プロトコルコマンドであるか、第二のプロトコルで送信される前記第二のI/Oコマンドであるかに応じて、蓄積先とするキューを選択し、選択したキューにコマンドを蓄積し、
    前記第一プロトコルコマンドとは、第一のプロトコルに従うコマンドであり、
    前記第一のプロトコルとは、ターゲットにコマンドを送信するために確立された接続が該ターゲットでの該コマンドの処理中にも接続が確立されているタイプのプロトコルであり、
    前記第二のプロトコルとは、ターゲットでのコマンドの処理中には接続が切断されているタイプのコマンドである、
    ストレージシステム。
JP2007083225A 2007-03-28 2007-03-28 ストレージシステム Expired - Fee Related JP4869123B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007083225A JP4869123B2 (ja) 2007-03-28 2007-03-28 ストレージシステム
EP08250091A EP1975797A3 (en) 2007-03-28 2008-01-09 Storage system
US12/007,641 US7904744B2 (en) 2007-03-28 2008-01-14 Data storage using multiple protocols
US13/020,350 US8312312B2 (en) 2007-03-28 2011-02-03 Data storage system using multiple communication protocols

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007083225A JP4869123B2 (ja) 2007-03-28 2007-03-28 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2008242872A true JP2008242872A (ja) 2008-10-09
JP4869123B2 JP4869123B2 (ja) 2012-02-08

Family

ID=39650632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007083225A Expired - Fee Related JP4869123B2 (ja) 2007-03-28 2007-03-28 ストレージシステム

Country Status (3)

Country Link
US (2) US7904744B2 (ja)
EP (1) EP1975797A3 (ja)
JP (1) JP4869123B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146525A (ja) * 2008-12-22 2010-07-01 Fujitsu Ltd ディスク搭載機構及びストレージ装置
JP2010277317A (ja) * 2009-05-28 2010-12-09 Fujitsu Ltd 記憶制御システムおよび記憶制御装置
JP2011003021A (ja) * 2009-06-18 2011-01-06 Fujitsu Ltd 制御装置
JP2011129052A (ja) * 2009-12-21 2011-06-30 Fujitsu Ltd 記憶装置接続装置,ストレージ装置,情報管理方法及び情報管理プログラム
JP2011243064A (ja) * 2010-05-19 2011-12-01 Fujitsu Ltd 接続拡張装置、ストレージシステム、接続拡張制御プログラム及び接続拡張制御方法
WO2011151861A1 (en) 2010-06-02 2011-12-08 Hitachi, Ltd. Storage system having sas as its backend communication standard
US8095820B2 (en) 2009-06-02 2012-01-10 Hitachi, Ltd. Storage system and control methods for the same
JP2012073983A (ja) * 2010-09-30 2012-04-12 Internatl Business Mach Corp <Ibm> マルチパスを使用するシステム及び方法
JP2013515981A (ja) * 2010-05-12 2013-05-09 株式会社日立製作所 ストレージ装置、及びストレージ装置の制御方法
WO2013105433A1 (ja) * 2012-01-13 2013-07-18 株式会社日立製作所 情報処理システム
JP2013246713A (ja) * 2012-05-28 2013-12-09 Fujitsu Ltd 中継装置、接続管理方法、及び情報通信システム
US8972771B2 (en) 2011-11-02 2015-03-03 Fujitsu Limited Connection control apparatus, storage system, and control method of connection control apparatus
JP2015075965A (ja) * 2013-10-09 2015-04-20 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US9218276B2 (en) 2012-02-17 2015-12-22 Fujitsu Limited Storage pool-type storage system, method, and computer-readable storage medium for peak load storage management
US9304695B2 (en) 2013-04-03 2016-04-05 Hitachi, Ltd. Access route switching method in disk array system
JP2019200709A (ja) * 2018-05-18 2019-11-21 キヤノン株式会社 ストレージシステム及びその制御方法、プログラム、並びに記憶制御システム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4869123B2 (ja) * 2007-03-28 2012-02-08 株式会社日立製作所 ストレージシステム
US8589593B2 (en) * 2009-02-10 2013-11-19 Alcatel Lucent Method and apparatus for processing protocol messages for multiple protocol instances
EP2508896B1 (en) * 2009-12-03 2019-04-17 Hitachi High-Technologies Corporation Automatic analyzing device
JP5531639B2 (ja) * 2010-01-19 2014-06-25 富士通株式会社 ストレージ装置および同装置の増設方法
US8589755B2 (en) * 2010-06-16 2013-11-19 Nec Laboratories America, Inc. Reduced-complexity LDPC decoding
US8719455B2 (en) * 2010-06-28 2014-05-06 International Business Machines Corporation DMA-based acceleration of command push buffer between host and target devices
US8631282B2 (en) 2010-11-30 2014-01-14 Hitachi, Ltd. Storage system using SAS standard back-end communication
US8560878B2 (en) * 2011-03-23 2013-10-15 Hitachi, Ltd. System and method for failure detection by a storage expander preceding an expander experiencing a failure
JP2012212202A (ja) * 2011-03-30 2012-11-01 Fujitsu Ltd 制御装置、ストレージシステムおよび制御方法
US20120278552A1 (en) * 2011-04-28 2012-11-01 Lsi Corporation Remote execution of raid in large topologies
US8612656B2 (en) * 2011-06-02 2013-12-17 International Business Machines Corporation Implementing device physical location identification in serial attached SCSI (SAS) fabric using resource path groups
TW201324163A (zh) * 2011-12-02 2013-06-16 Hon Hai Prec Ind Co Ltd 籍由記憶體介面擴展器連接設備的電子裝置及其連接方法
JP2013134607A (ja) * 2011-12-26 2013-07-08 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
JP5923976B2 (ja) * 2011-12-27 2016-05-25 富士通株式会社 接続装置、ストレージ装置、接続装置における処理方法、および処理プログラム
US8756355B2 (en) * 2012-05-08 2014-06-17 Lsi Corporation Methods and structure for configuring a Serial Attached SCSI domain via a Universal Serial Bus interface of a Serial Attached SCSI expander
US8972618B2 (en) * 2012-07-31 2015-03-03 Hewlett-Packard Develpment Company, L.P. Staged discovery in a data storage fabric
WO2015136619A1 (ja) 2014-03-11 2015-09-17 株式会社日立製作所 ストレージ装置
WO2016171687A1 (en) * 2015-04-22 2016-10-27 Hewlett Packard Enterprise Development Lp Storage system enclosures
US9824054B2 (en) * 2015-07-17 2017-11-21 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. Firmware updating method
CN108959154A (zh) * 2018-09-20 2018-12-07 郑州云海信息技术有限公司 一种pcie扩展卡和pcie扩展系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216283A (ja) * 2004-01-30 2005-08-11 Internatl Business Mach Corp <Ibm> シングル・チップ・プロトコル・コンバーター
JP2005339216A (ja) * 2004-05-27 2005-12-08 Hitachi Ltd 記憶制御システム
JP2006011932A (ja) * 2004-06-28 2006-01-12 Hitachi Ltd ストレージ装置及びストレージ装置の排他制御方法
JP2006072636A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd ディスクアレイ装置
JP2006215615A (ja) * 2005-02-01 2006-08-17 Nec Corp 情報記録再生装置およびその制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334042B2 (en) * 2004-08-18 2008-02-19 Lsi Logic Corporation Systems and methods for initiator mode connection management in SAS connections
JP2006127217A (ja) 2004-10-29 2006-05-18 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
US7644168B2 (en) * 2004-11-05 2010-01-05 Hewlett-Packard Development Company, L.P. SAS expander
US7428665B2 (en) * 2004-11-12 2008-09-23 Lsi Corporation Methods and structure for detection and handling of catastrophic SCSI errors
JP4830618B2 (ja) 2005-08-24 2011-12-07 富士ゼロックス株式会社 塗布装置、塗装方法
US7738366B2 (en) * 2005-09-13 2010-06-15 Lsi Corporation Methods and structure for detecting SAS link errors with minimal impact on SAS initiator and link bandwidth
US7536584B2 (en) * 2006-06-08 2009-05-19 Dot Hill Systems Corporation Fault-isolating SAS expander
JP4869123B2 (ja) * 2007-03-28 2012-02-08 株式会社日立製作所 ストレージシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216283A (ja) * 2004-01-30 2005-08-11 Internatl Business Mach Corp <Ibm> シングル・チップ・プロトコル・コンバーター
JP2005339216A (ja) * 2004-05-27 2005-12-08 Hitachi Ltd 記憶制御システム
JP2006011932A (ja) * 2004-06-28 2006-01-12 Hitachi Ltd ストレージ装置及びストレージ装置の排他制御方法
JP2006072636A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd ディスクアレイ装置
JP2006215615A (ja) * 2005-02-01 2006-08-17 Nec Corp 情報記録再生装置およびその制御方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146525A (ja) * 2008-12-22 2010-07-01 Fujitsu Ltd ディスク搭載機構及びストレージ装置
JP2010277317A (ja) * 2009-05-28 2010-12-09 Fujitsu Ltd 記憶制御システムおよび記憶制御装置
US8307244B2 (en) 2009-05-28 2012-11-06 Fujitsu Limited Storage system and storage control apparatus
US8095820B2 (en) 2009-06-02 2012-01-10 Hitachi, Ltd. Storage system and control methods for the same
JP2011003021A (ja) * 2009-06-18 2011-01-06 Fujitsu Ltd 制御装置
JP2011129052A (ja) * 2009-12-21 2011-06-30 Fujitsu Ltd 記憶装置接続装置,ストレージ装置,情報管理方法及び情報管理プログラム
JP2013515981A (ja) * 2010-05-12 2013-05-09 株式会社日立製作所 ストレージ装置、及びストレージ装置の制御方法
JP2011243064A (ja) * 2010-05-19 2011-12-01 Fujitsu Ltd 接続拡張装置、ストレージシステム、接続拡張制御プログラム及び接続拡張制御方法
US8443117B2 (en) 2010-05-19 2013-05-14 Fujitsu Limited Connection expansion device, storage system, connection expansion control program, and connection expansion control method
US8463949B2 (en) 2010-06-02 2013-06-11 Hitachi, Ltd. Storage system having SAS as its backend communication standard
US8843680B2 (en) 2010-06-02 2014-09-23 Hitachi, Ltd. Storage system having SAS as its backend communication standard
WO2011151861A1 (en) 2010-06-02 2011-12-08 Hitachi, Ltd. Storage system having sas as its backend communication standard
JP2013516666A (ja) * 2010-06-02 2013-05-13 株式会社日立製作所 バックエンドでの通信の規格がsasであるストレージシステム
JP2012073983A (ja) * 2010-09-30 2012-04-12 Internatl Business Mach Corp <Ibm> マルチパスを使用するシステム及び方法
US8972771B2 (en) 2011-11-02 2015-03-03 Fujitsu Limited Connection control apparatus, storage system, and control method of connection control apparatus
WO2013105433A1 (ja) * 2012-01-13 2013-07-18 株式会社日立製作所 情報処理システム
JPWO2013105433A1 (ja) * 2012-01-13 2015-05-11 株式会社日立製作所 情報処理システム
US9361043B2 (en) 2012-01-13 2016-06-07 Hitachi, Ltd. Information processing and control system for inter processing apparatus control of storage devices
US9218276B2 (en) 2012-02-17 2015-12-22 Fujitsu Limited Storage pool-type storage system, method, and computer-readable storage medium for peak load storage management
JP2013246713A (ja) * 2012-05-28 2013-12-09 Fujitsu Ltd 中継装置、接続管理方法、及び情報通信システム
US9304695B2 (en) 2013-04-03 2016-04-05 Hitachi, Ltd. Access route switching method in disk array system
JP2015075965A (ja) * 2013-10-09 2015-04-20 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
JP2019200709A (ja) * 2018-05-18 2019-11-21 キヤノン株式会社 ストレージシステム及びその制御方法、プログラム、並びに記憶制御システム
JP7179489B2 (ja) 2018-05-18 2022-11-29 キヤノン株式会社 ストレージシステム及びその制御方法、プログラム、並びに記憶制御システム

Also Published As

Publication number Publication date
US20080244098A1 (en) 2008-10-02
EP1975797A3 (en) 2010-06-16
US20110125943A1 (en) 2011-05-26
US8312312B2 (en) 2012-11-13
EP1975797A2 (en) 2008-10-01
JP4869123B2 (ja) 2012-02-08
US7904744B2 (en) 2011-03-08

Similar Documents

Publication Publication Date Title
JP4869123B2 (ja) ストレージシステム
US11983406B2 (en) Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US11983129B2 (en) Self-configuring baseboard management controller (BMC)
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
US7487285B2 (en) Using out-of-band signaling to provide communication between storage controllers in a computer storage system
US7475294B2 (en) Computer system including novel fault notification relay
US10027532B2 (en) Storage control apparatus and storage control method
WO2012120565A1 (en) Storage apparatus and method of comparing an expected communication rate between a storage controller and an expander with an operational connection rate
EP1674982A1 (en) Storage system
JP2005326935A (ja) 仮想化ストレージを備える計算機システムの管理サーバおよび障害回避復旧方法
US20130254429A1 (en) Storage system having sas as its backend communication standard
WO2012127529A1 (en) Storage apparatus and failure detection method
US8234447B2 (en) Storage control device for storage system provided with storage device coupled to switch network
JP5982909B2 (ja) 制御装置、ストレージ装置、ストレージ装置の試験方法及びストレージ装置の試験プログラム
US8015434B2 (en) Management apparatus, storage system, and storage apparatus management method
US8918571B2 (en) Exposing expanders in a data storage fabric
KR20140090171A (ko) 연결 방법
JP2017091355A (ja) ストレージシステム、および制御装置
US10599510B2 (en) Computer system and error isolation method
US10977107B2 (en) Apparatus and method to control a storage device
JP2017220267A (ja) ディスクアレイ装置およびそのケーブル誤接続検出方法
JP2019049866A (ja) 情報処理システム,制御装置および制御プログラム
JP2014170364A (ja) ディスクアレイ装置およびそのケーブル誤接続検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees