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

ストレージシステム Download PDF

Info

Publication number
JP2021192306A
JP2021192306A JP2021151799A JP2021151799A JP2021192306A JP 2021192306 A JP2021192306 A JP 2021192306A JP 2021151799 A JP2021151799 A JP 2021151799A JP 2021151799 A JP2021151799 A JP 2021151799A JP 2021192306 A JP2021192306 A JP 2021192306A
Authority
JP
Japan
Prior art keywords
controller
port
storage system
controllers
identifier
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
JP2021151799A
Other languages
English (en)
Other versions
JP7213928B2 (ja
Inventor
信介 井澤
Shinsuke Izawa
定広 杉本
Sadahiro Sugimoto
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 JP2021151799A priority Critical patent/JP7213928B2/ja
Publication of JP2021192306A publication Critical patent/JP2021192306A/ja
Application granted granted Critical
Publication of JP7213928B2 publication Critical patent/JP7213928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ストレージシステムにおいて、スイッチのポートとコントローラの接続状態に応じた処理を可能とする。【解決手段】ストレージシステムは、ボリュームを指定した入出力要求を受け付けて処理する複数のコントローラと、それぞれが複数のポートを有する複数のスイッチと、を含む。複数のコントローラは、並列に接続された前記複数のスイッチを介して互いに通信する。複数のスイッチの各スイッチは、各々のコントローラから、各々のポートを介して、コントローラ識別子を受信し、ポート識別子と、ポートを介して受信したコントローラ識別子とを対応付けてポート情報に記憶する。複数のコントローラの各コントローラは、各スイッチが作成した複数の前記ポート情報に基づいて、コントローラとスイッチとの接続の適否を判断して処理を行う。【選択図】図8

Description

本発明はストレージシステムに関する。
クラウドサービスを提供する企業は、導入コストを削減するために、サービスの初期稼働時は当面必要となる資源でストレージシステムを構築する。企業は、サービスが稼動し、資源の利用量が増加してきたら、ストレージシステムのストレージコントローラ台数を増やして、システム全体の処理能力を向上させるスケールアウト型ストレージシステムを用いることが多い。
スケールアウト型ストレージシステムは、複数のストレージコントローラを統合して一つのストレージシステムとして制御し、ストレージシステム内のストレージコントローラは、相互にメッセージの送受信および制御情報の読み書きを行う。ストレージコントローラ間で通信を行うために、各ストレージコントローラにアドレスを割り当てる必要がある。さらに、各ストレージコントローラにアドレスを割り当てるために、各ストレージコントローラは固有の識別番号を持つ必要がある。アドレスの割り当て方法としては、例えば、特許文献1には、コントローラ外で各コントローラの識別番号を管理し割り当てることが記載されている。
特開2010−170351号公報
本発明の一態様のストレージシステムは、ボリュームを指定した入出力要求を受け付けて処理する複数のコントローラと、それぞれが複数のポートを有する複数のスイッチと、を含む。前記複数のコントローラは、並列に接続された前記複数のスイッチを介して互いに通信する。前記複数のスイッチの各スイッチは、各々の前記コントローラから、各々の前記ポートを介して、コントローラ識別子を受信し、ポート識別子と、前記ポートを介して受信したコントローラ識別子とを対応付けてポート情報に記憶する。前記複数のコントローラの各コントローラは、前記各スイッチが作成した複数の前記ポート情報に基づいて、前記コントローラと前記スイッチとの接続の適否を判断して処理を行う。
計算機システムの構成例を示す図である。 メモリの構成を示す図である。 メモリの論理構成を示す図である。 プログラム格納領域の構成を示す図である。 共有メモリ領域の構成を示す図である。 ストレージ装置とSWのパス接続構成を示す図である。 コントローラ番号決定処理を説明するフローチャートの例である。 コントローラ番号決定処理を説明するシーケンス図である。 1パス接続障害または誤接続の一例を示す図である。 2パス誤接続の一例を示す図である。 誤接続によるコントローラ閉塞の一例を示す図である。 HCA障害によるコントローラ閉塞の一例を示す図である。
以下、本発明の実施の形態を図面に基づいて説明する。本実施形態では、スケールアウト型ストレージシステムにおいて、複数のストレージコントローラの識別番号を自動で決定することが可能となる例を説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特長の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、計算機システムの構成例を示す図である。計算機システムは、複数のストレージ装置101とホスト102と、ホスト102とストレージ装置101を接続する外部ネットワーク103を含む。なお、ストレージ装置101の数は2以上の任意数であり、ホスト102の数は任意である。
ストレージ装置101は、1又は複数のストレージコントローラ(以下、コントローラ)104を持ち、各コントローラ104は内部に一つ以上のマイクロプロセッサ(以下、プロセッサ)105と、一つ以上のメモリ106と、一つ以上のホストインタフェース(I/F)107と、一つ以上のドライブI/F108と、一つ以上のHCA(Host ChAnnel ADApter)111を有している。
また、コントローラ104は、コントローラ間パス109で接続されており、互いのメモリ106にはプロセッサ105、又は図示されていないDMA(DireCt Memory ACCess)回路などによってアクセス可能である。
これ以降、簡単のため二つのコントローラを有するストレージ装置101の例を説明するが、コントローラの実装数は任意である。また、プロセッサがマルチコアプロセッサの場合、プロセッサ内のいくつかのコアをグループとして、論理的に複数のプロセッサとして管理してもよい。
ホストI/F107は、例えば、SAN(StorAge AreA Network)などの外部ネットワーク103を通してホスト102に接続する。外部ネットワーク103はデータ通信ができる任意のプロトコルを使用できる。
ストレージ装置101のコントローラ104は、ドライブI/F108を介して一つ以上の記憶デバイス110に接続される。記憶デバイス110は、例えばHDD(HarD Disk Drive)やSSD(Solid State Drive)又はテープ型の記憶デバイスなどであってもよい。
記憶デバイス110は、その記憶領域を基に論理ボリュームを構成し、コントローラ104に論理ボリュームを提供することができる。複数の記憶デバイス110は、冗長化のためにRAID(Redundant Array of Independent Disks)グループを構成していてもよく、構成されたRAIDグループから論理ボリュームを提供してもよい。
コントローラ104は、論理ボリュームを、ホスト102に対して、LU(Logical Unit)として提供可能であり、ホスト102が指定するアドレスに対して書き込み要求及び読み出し要求を受け付けることが可能である。なお、各論理ボリュームには、I/O処理を担当するプロセッサ105が一つ設定されている。
ストレージ装置101は、HCA111と一つ以上のSW(Switch)112を介し、一つ以上の他のストレージ装置101と接続される。計算機システムは複数のSW112を含み、複数のSW112はストレージ装置101それぞれに並列に接続されている。SW112は、互いに通信可能に接続されている。各SW112は、メモリ113を有している。複数のストレージ装置101及び複数のSW112は、ストレージシステムに含まれる。以下の説明において、ストレージシステムは、スケールアウト型ストレージシステムである。
図2は、SW112のメモリ113の論理構成を示す図である。メモリ113内のポート情報格納領域204は、対象ポート番号201と、接続先コントローラ固有情報202と、ハード無効情報203の領域を含む。対象ポート番号201は、SW112が持つポート番号の情報が格納されている領域である。
対象ポート番号201は、SW112の全てのポート(物理ポート)の番号を格納している。接続先コントローラ固有情報202は、対象ポート番号201のポートに接続されているコントローラから受信したコントローラ固有識別子、例えば、コントローラ固有ID又はコントローラ固有番号を格納する領域である。コントローラ識別子は、例えばPCB(Printed Circuit Board)のリビジョンである。ハード無効情報203は、対象ポート番号201のポートが有効か無効かの情報を格納する。
図3は、コントローラ104のメモリ106の論理構成を示す図である。メモリ106は、プログラム格納領域301、共有メモリ領域302、ローカルメモリ領域303、データバッファ領域304、キャッシュメモリ領域305を含む。
プログラム格納領域301は、同一コントローラ104のプロセッサ105が処理を実施するためのプログラムを格納する領域である。共有メモリ領域302は、ストレージシステム内の全てのプロセッサ105からアクセスされる領域で、各種制御情報を格納する。ローカルメモリ領域303は、特定のプロセッサ105のみがアクセスする領域である。メモリ106は、ストレージシステム内のプロセッサ105の数と同一数のローカルメモリ領域303を含む。図3においては、一つのローカルメモリ領域303のみが例として図示されている。
データバッファ領域304およびキャッシュメモリ領域305は、ホストI/F107、ドライブI/F108又はコントローラ間パス109等によるデータ転送の際に、一時的にデータを格納しておく領域である。なお、キャッシュメモリ領域305は、キャッシュセグメントに区切られている。
図4は、プログラム格納領域301の論理構成を示す図である。プログラム格納領域301は、メモリ106と同一コントローラ104のプロセッサ105が処理を実施するためのプログラムを格納している。例えば、プログラム格納領域301は、ポート番号判定プログラム401、コントローラ番号決定プログラム402、コマンド振り分けプログラム403、I/O処理プログラム404、RAID処理プログラム405、コントローラ間データ転送処理プログラム406を格納している。
ポート番号判定プログラム401と、コントローラ番号決定プログラム402はストレージ装置101の初期立ち上げ処理に必要なプログラムの一部である。
ポート番号判定プログラム401は、HCA111を介して、接続されているSW112それぞれから、対象ポート番号201に格納されているポート番号と接続先コントローラ固有情報202に格納されているコントローラ固有識別子を取得する。
ポート番号判定プログラム401は、各ポート番号に対して、対応するコントローラ固有識別子が一意に定まるか判定する。一つのポート番号に複数のコントローラ固有識別子が対応付けられている場合、又は、一つのコントローラ固有識別子に複数のポート番号が対応付けられている場合、各ポート番号に対して、対応するコントローラ固有識別子が一意に定まらない。各ポート番号に対して、対応するコントローラ固有識別子が一意に定まらない場合やポート番号に対しコントローラ固有識別子が割り当てられていない場合は、ポート番号判定プログラム401は、そのポート番号の対象のハード無効情報203を無効にする。
コントローラ番号決定プログラム402は、対象ポート番号201においてポート番号判定プログラム401が定めたコントローラ104に対応するポート番号に基づき、当該コントローラ104のストレージシステム内の識別番号(以下、コントローラ番号)を決定する。当該識別番号は、システム内識別子の例である。
コマンド振り分けプログラム403と、I/O処理プログラム404と、RAID処理プログラム405と、コントローラ間データ転送処理プログラム406とは、I/O処理に必要なプログラムの一部である。ホスト102から送られてきたリード/ライト要求は、コマンド振り分けプログラム403により、リード/ライト対象の論理ボリュームのI/O処理を担当するプロセッサ105に振り分けられる。
次に、I/O処理を担当するプロセッサ105が、I/O処理プログラム404により、対象領域のリード/ライト処理を実施する。その際、必要に応じて、RAID処理プログラム405が、記憶デバイス110へのステージング及びデステージを実施する。また、コントローラ間データ転送処理プログラム406が、コントローラ間のデータ転送を実施する。
図5は、共有メモリ領域302の構成を示す図である。共有メモリ領域302は、全てのプロセッサからアクセスされる領域で、ドライブ情報テーブル501と、論理ボリューム情報テーブル502と、キャッシュセグメント属性管理情報503と、キャッシュセグメント管理情報504と、キャッシュディレクトリ505と、キャッシュセグメント再配置管理情報506と、稼働情報507と、共有フリーセグメント数管理情報508、ポート−コントローラ関連付け情報509の各種制御情報が格納されている。
キャッシュセグメントはキャッシュセグメント属性管理情報503、キャッシュセグメント管理情報504、キャッシュディレクトリ505により管理されている。ポート−コントローラ関連付け情報509は、ポート番号とコントローラ104に対して割り当てられているストレージシステム内で固有の識別子とを関連付ける。ポート−コントローラ関連付け情報509は、コントローラ間データ転送処理プログラム406に参照される。共有メモリ領域302内の各種制御情報は、複数のコントローラ104それぞれに含まれるメモリ106間でコピーされていてもよく、記憶デバイス110又は他の不揮発性メモリに保存されてもよい
図6は、ストレージ装置101とSW112のパス接続構成を示す図である。なお、図6は、ストレージ装置101はn台、SWは4台(112A、112B、112C、112D)、各SWのポート数が2n+2(0〜2n+1)個の構成例を示すが、ストレージ装置台数、SW台数、各SWのポート数はこれに限らない。
各コントローラ104A、104B、104C、104Dと複数のSWを接続する際、接続する各SWのポート番号はコントローラごとに固定とする。例えば、コントローラ104Aは、SW112Aのポート0番と、SW112Bのポート0番と、SW112Cのポート0番と、SW112Dのポート0番にパスを接続する。また、コントローラ104Cは、SW112Aのポート2n番と、SW112Bのポート2n番と、SW112Cのポート2n番と、SW112Dのポート2n番にパスを接続する。
上記のパス接続構成を前提とし、本実施形態は、各コントローラ104と接続されているポート番号に基づき、コントローラ番号を決定する。ポート番号からコントローラ番号を一致に決定できる任意の関数を使用できる。例えば、SW112Aのポート0番と、SW112Bのポート0番と、SW112Cのポート0番と、SW112Dのポート0番に接続されているコントローラ104Aのコントローラ番号0番とする。また、SW112Aのポート2n番と、SW112Bのポート2n番と、SW112Cのポート2n番と、SW112Dのポート2n番に接続されているコントローラ104Cをコントローラ番号2n番とする。
図7は、コントローラ番号決定処理を説明するフローチャートの例である。ストレージシステムの初期立ち上げ、また、立ち上げ後の増減設において、各コントローラ104が当該フローチャートに従った処理を実行する。フローチャートに基づく動作は以下のとおりである。
ステップ701において、コントローラ104のプロセッサ105は、ポート番号判定プログラム401によって、HCA111を介して、接続されている全てのSW112のポート情報格納領域204に格納されている情報を取得する。
ステップ702において、ポート番号判定プログラム401は、ハード無効情報が有効なポート番号とコントローラ固有識別子のペアについて、全てのSW112からの情報が一致するか判定を行う。一つのポート番号が複数のコントローラ固有識別子とペアを構成している場合、又は、複数のポート番号が共通のコントローラ固有識別子とペアを構成している場合、当該ポート番号は、一致しないペアに含まれている。
全てのペアが一致した場合、フローはステップ703へ遷移する。いずれかのペアが一致しない場合、ポート番号判定プログラム401は、例えば図10から図12で説明する規定に基づき、一致しないペアに含まれるポート番号のポートを無効に設定するか判定を行う。無効判定された場合、ポート番号判定プログラム401は、SW112の対象ポートのハード無効情報203の情報を無効に設定する。無効判定されない場合、フローはステップ703へ遷移する。
ステップ703において、コントローラ番号決定プログラム402は、ステップ702で一致したと判定したポート番号に基づき、コントローラ番号を決定する。ステップ704において、コントローラ番号決定プログラム402は、ステップ703で決定したコントローラ番号とポート番号を、ポート−コントローラ関連付け情報509に格納する。コントローラ番号とポート番号は、他の記憶領域、例えば、コントローラ104内のメモリ106の他の記憶領域やストレージ装置101内に搭載する不揮発性メモリに格納されてもよい。
図8は、ストレージシステムの初期立ち上げにおける、コントローラ番号決定処理を説明するシーケンス図である。ストレージ装置101の電源投入後、プロセッサ105は、ファームウェア(F/W)及びそのコントローラ固有識別子を不図示の不揮発性メモリからローディング801する。その後、プロセッサ105は、プロセッサ初期設定802及びコントローラ初期設定803を行い、HCA初期設定804でHCAに初期立ち上げのためのメッセージ通知を行う。HCA111は初期立ち上げ完了後、SW112とリンクアップを行い、通信可能な状態となる。
一方、SW112は電源投入後、SW初期設定811を行い、SW112とストレージ装置101それぞれとの間のパスがリンクアップされるまでポーリング812を実施する。SW112は、HCA111とのパス接続確認をパスのリンクアップ検出813で行う。SW112は、パスのリンクアップ検出813時にHCA111を介して、接続先コントローラ固有情報202に格納されているストレージコントローラ固有識別子を取得する。その後、SW112は、パス構成の設定814を行い、図2で示した対象ポート番号201、接続先コントローラ固有情報202、ハード無効情報203に情報を格納する。リンクアップが検出されている場合、当該ポートのハード無効情報203の情報は有効を示す。
次に、SW112は、対象ポート番号201、接続先コントローラ固有情報202、ハード無効情報203に格納した情報を、接続先HCA111それぞれにライトする。プロセッサ105は、ポート情報取得805で、対象ポート番号201、接続先コントローラ固有情報202、ハード無効情報203に格納されている情報を、HCA111からリードする。
その後、プロセッサ105は、ポート番号判定806及びコントローラ番号決定807を行い、キャッシュの初期設定808を行う。ここで、ポート情報取得805、ポート番号判定806、コントローラ番号決定807は、それぞれ図7のステップ701、ステップ702、ステップ703の処理に従う。
上述のようにストレージ装置101とSW112のパス接続構成を固定することで、パスの誤接続が生じる可能性がある。そこで、HCA111のポートおよびSW112のポートにランプを備え、ストレージ装置101及びSW112は、誤接続時に、例えばランプを点滅又は赤点灯してもよい。これにより、ユーザに誤接続を知らせることができる。または、ストレージ装置101及びSW112は、接続するパスの順番にランプを点灯させ、ユーザのパス接続作業を手引きしてもよい。
パスの誤接続や接続障害が生じた際のコントローラ番号決定方法について、以下図9から図12を参照して説明する。図9は、1パス接続障害又は誤接続の一例を示す図である。図6で説明したパス接続構成を前提とし、コントローラ104AとSW112Aとの間で、接続障害又は誤接続の影響でパス接続されていない場合を例に、コントローラ番号決定方法を説明する。
コントローラ104Aは、SW112A、112B、112C、112Dそれぞれからポート情報を取得する際に、SW112Aとパス接続していないため、SW112Aからポート情報を取得できない。一方、SW112B、SW112C、SW112Dの各ポート0番にコントローラ104Aのパスが接続されているため、コントローラ104Aは、SW112B、SW112C、SW112Dからポート情報を取得可能である。この場合、SW112B、SW112C、SW112Dから取得したポート情報から、コントローラ104Aは自装置及び他のコントローラのコントローラ番号を決定する。
このように、あるパスが接続障害または誤接続によりパス接続されていない場合でも、他のパスが正常にパス接続されている場合は、コントローラは、他のSWからパス情報を取得し全てのコントローラのコントローラ番号を決定することができる。図9では1本のパスが不通の例を示したが、いずれかのSWを介して全てのコントローラに接続可能な場合、複数のパスが不通となってもコントローラ番号の決定は可能である。
図10は、2パス誤接続の一例を示す図である。図6で説明したパス接続構成を前提とし、コントローラ104Aとコントローラ104Bが誤ったポートに接続されている場合を例にコントローラ番号決定方法を説明する。
任意のコントローラ104は、SW112A、112B、112C、112Dそれぞれからポート情報を取得する。例えば、SW112Aからのポート情報は、コントローラ104Aがポート1番と接続されていることを示し、SW112B、SW112C、SW112Dからのポート情報はコントローラ104Aがポート0番と接続されていることを示す。また、SW112Aからのポート情報は、コントローラ104Bがポート0番と接続されていることを示し、SW112B、SW112C、SW112Dからのポート情報は、コントローラ104Bがポート1番と接続されていることを示す。
ポート番号判定プログラム401は、ポート番号を判定する際に、各SWからのポート情報を比較し、最多数のポートが接続しているポート番号を採用する。これにより、最も多くのポートを使用することができる。このとき少数のポートが接続しているSW112のポートは使用しないため、ポート番号判定プログラム401はSW112のメモリ113のハード無効情報203を無効に設定する。
図10の場合は、ポート番号判定プログラム401は、コントローラ104Aは各SW112のポート0番に接続されていると判定し、コントローラ104Bは、各SW112のポート1番に接続されていると判定する。また、SW112Aのポート0番とポート1番のハード無効情報203が無効に設定される。
図11は、誤接続によるコントローラ104閉塞の一例を示す図である。図6で説明したパス接続構成を前提とし、コントローラ104Aとコントローラ104Cを同じポート番号のポートに接続した場合を例にコントローラ番号決定方法を説明する。
SW112A、112Bからのポート情報は、コントローラ104AがSW112A、SW112Bのポート0番と接続されていることを示す。また、SW112C、112Dからポート情報は、コントローラ104Cは、SW112C、SW112Dのポート0番と接続されていることを示す。
ポート番号判定プログラム401は、ポート番号を判定する際に、各SWからのポート情報を比較し、同一のポート番号に異なる接続先コントローラ固有情報202が割り当てられている場合、例えば接続先コントローラ固有情報202が数値のときは、より小さい数値のコントローラ固有情報202を採用する。ここで、採用する接続先コントローラ固有情報202は数値の大きいほうでもよいし、文字列などのID情報の場合はアルファベット順で先順位または逆順位を採用してもよい。
このとき非採用となるコントローラが接続しているSW112のポートは使用しないため、ポート番号判定プログラム401はSW112のメモリ113のハード無効情報203を無効に設定し、他のコントローラに通知する。ハード無効情報203が更新された後、改めてポート番号判定プログラム401はポート番号を判定し、接続されているポートのハード無効情報203が全て無効の場合、対象コントローラに閉塞を指示し、残りのコントローラのみで初期立ち上げを実施する。
図11の場合は、コントローラ104Aおよびコントローラ104Cは、いずれも各SW112のポート0番に接続されていると判定される。例えば、ポート番号判定プログラム401によりコントローラ104Aに割り当てたポートが採用された場合、SW112Cのポート0番およびSW112Dのポート0番のハード無効情報203を無効に設定する。その後、コントローラ104Cは、いずれのポートにも接続されていないと判定されるため、コントローラ104Cは閉塞し、コントローラ104C以外のコントローラで初期立ち上げを継続する。
図12は、HCA111障害によるコントローラ104閉塞の一例を示す図である。図6で説明したパス接続構成を前提とし、HCA111AとHCA111Dが障害により閉塞している場合を例にコントローラ番号決定方法を説明する。
コントローラ104Aは、HCA111Aが閉塞しているため、SW112AとSW112Bに接続されていない。また、コントローラ104Dは、HCA111Dが閉塞しているため、SW112CとSW112Dに接続されていない。この場合、コントローラ104Aとコントローラ104DはいずれのSW112を介しても相互に接続することが出来ない。
ポート番号判定プログラム401は、ポート番号を判定する際に、各SWからのポート情報を比較し、いずれのSW112を介しても相互接続が不可能なコントローラのペアがある場合は、例えば接続先コントローラ固有情報202が数値のときは、より小さい数値のコントローラ固有情報202を有するコントローラを採用する。ここで、採用する接続先コントローラ固有情報202の条件は図11同様である。
このとき非採用となるコントローラが接続しているSW112のポートは使用しないため、ポート番号判定プログラム401はSW112のメモリ113のハード無効情報203を無効に設定する。ハード無効情報203が更新された後、改めてポート番号判定プログラム401はポート番号を判定し、接続されているポートのハード無効情報203が全て無効の場合、対象コントローラに閉塞を指示し、残りのコントローラのみで初期立ち上げを実施する。
図12の場合は、コントローラ104Aとコントローラ104Dは、いずれのSW112を介しても相互に接続することが出来ない。例えばポート番号判定プログラム401によりコントローラ104Aを採用した場合、SW112A、112B、112C、112Dそれぞれのポート2n+1番のハード無効情報203が無効に設定される。その後、コントローラ104Dは、いずれのポートにも接続されていないと判定されるため、コントローラ104Dは閉塞し、コントローラ104D以外のコントローラで初期立ち上げを継続する。
上記の通り本実施例に従えば、スケールアウト型ストレージシステムは、各ストレージコントローラの識別番号を自律的に決定することができる。また、ストレージコントローラのネットワーク上の配置位置に応じた識別番号に割り当てることができる。保守員がストレージコントローラごとに各スイッチの同一番号のポートに接続することで、保守員が意図した識別番号を割り当てることができる。また、割り当てられた各ストレージコントローラの識別番号をもとに、各ストレージコントローラのアドレスを一意に決定することが出来る。
なお、上記例は、各ストレージコントローラが、自装置及び他装置のコントローラ番号を決定する。他の例において、各ストレージコントローラは自装置のコントローラ番号のみを決定し、それを他のストレージコントローラにブロードキャストにより通知してもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(SoliD StAte Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
特許請求範囲に記載されている構成に加え、本開示の特徴の概要を以下に記載する。
(1)
ストレージシステムであって、
複数のボリュームのうちいずれかを指定した入出力要求を外部デバイスから受け付けて処理する複数のコントローラと、
それぞれが複数のポートを有する複数のスイッチと、を含み、
前記複数のコントローラは、前記複数のスイッチに並列に接続され、前記複数のスイッチを介して互いに通信し、
前記複数のコントローラの各コントローラは、
前記接続されているスイッチから、接続されている複数のポートを同定する複数のポート識別子を取得し、
前記取得した複数のポート識別子に基づき、前記ストレージシステム内のコントローラ識別子を決定する、ことを特徴とするストレージシステム。
(2)
(1)に記載のストレージシステムであって、
前記複数のスイッチは、それぞれ、前記ポート識別子を格納するメモリを含む、ことを特徴とするストレージシステム。
(3)
(1)に記載のストレージシステムであって、
前記複数のストレージコントローラは、それぞれ、前記コントローラ識別子を格納するメモリを含む、ことを特徴とするストレージシステム。
(4)
(1)に記載のストレージシステムであって、
前記複数のスイッチは、それぞれが同じポート識別子のセットを有していることを特徴とするストレージシステム。
(5)
(4)に記載のストレージシステムであって、
前記複数のスイッチと前記複数のコントローラにおける第1コントローラとの間の一部の接続が不通である場合、
前記第1コントローラは、
前記複数のスイッチのいずれかを介して前記複数のコントローラの他の全てのコントローラに接続可能な場合に、前記複数のスイッチにおいて前記第1コントローラが接続されているスイッチそれぞれから取得した、前記第1コントローラが接続されているポートのポート識別子に基づき、前記第1コントローラの前記コントローラ識別子を決定する、ことを特徴とするストレージシステム。
(6)
(4)に記載のストレージシステムであって、
前記複数のコントローラにおける第1コントローラは、
前記複数のスイッチにおいて接続されているスイッチそれぞれから、前記第1コントローラが接続されているポートのポート識別子を取得し、
前記ポート識別子において最多のポート識別子に基づき、前記第1コントローラの前記コントローラ識別子を決定する、ことを特徴とするストレージシステム。
(7)
(4)に記載のストレージシステムであって、
前記複数のコントローラにおける第1コントローラと第2コントローラとが、異なるスイッチの同一のポート識別子のポートに接続している場合、
前記第1コントローラは閉塞し、
前記第2コントローラは、前記同一のポート識別子に基づき前記第2コントローラの前記コントローラ識別子を決定する、ことを特徴とするストレージシステム。
(8)
(4)に記載のストレージシステムであって、
前記複数のコントローラにおける第1コントローラと第2コントローラとが、前記複数のスイッチを介して通信不可能な場合、
前記第1コントローラは閉塞し、
前記第2コントローラは、前記複数のスイッチにおいて前記第2コントローラに接続されているスイッチから取得した前記第2コントローラが接続されているポートのポート識別子に基づいて、前記第2コントローラの前記コントローラ識別子を決定する、ことを特徴とするストレージシステム。
(9)
ストレージコントローラのストレージシステム内の識別子を決定する方法であって、
前記ストレージシステムは、
複数のボリュームのうちいずれかを指定した入出力要求を外部デバイスから受け付けて処理する複数のコントローラと、
それぞれが複数のポートを有する複数のスイッチと、を含み、
前記複数のコントローラは、前記複数のスイッチに並列に接続され、前記複数のスイッチを介して互いに通信し、
前記方法は、
前記複数のコントローラの各コントローラが、接続されているスイッチから、接続されている複数のポートを同定する複数のポート識別子を取得し、
前記複数のコントローラの各コントローラが、前記取得した複数のポート識別子に基づき、前記ストレージシステム内のコントローラ識別子を決定する、ことを含むことを特徴とする方法。
101…ストレージシステム、102…ホスト、103…外部ネットワーク、104…ストレージコントローラ、105…マイクロプロセッサ、106…メモリ、107…ホストI/F、108…ドライブI/F、109…コントローラ間パス、110…記憶デバイス、111…HCA、112…SW、113…メモリ、201…対象ポート番号、202…接続先コントローラ固有情報、203…ハード無効情報、204…ポート情報格納領域、301…プログラム格納領域、302…共有メモリ領域、303…ローカルメモリ領域、304…データバッファ領域、305…キャッシュメモリ領域、401…ポート番号判定プログラム、402…コントローラ番号決定プログラム、403…コマンド振り分けプログラム、404…I/O処理プログラム、405…RAID処理プログラム 、406…コントローラ間データ転送処理プログラム

Claims (10)

  1. ストレージシステムであって、
    ボリュームを指定した入出力要求を受け付けて処理する複数のコントローラと、
    それぞれが複数のポートを有する複数のスイッチと、を含み、
    前記複数のコントローラは、並列に接続された前記複数のスイッチを介して互いに通信し、
    前記複数のスイッチの各スイッチは、
    各々の前記コントローラから、各々の前記ポートを介して、コントローラ識別子を受信し、
    ポート識別子と、前記ポートを介して受信したコントローラ識別子とを対応付けてポート情報に記憶し、
    前記複数のコントローラの各コントローラは、
    前記各スイッチが作成した複数の前記ポート情報に基づいて、前記コントローラと前記スイッチとの接続の適否を判断して処理を行う
    ことを特徴とするストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記ポート情報は、さらに、前記ポート識別子にかかるポートの有効/無効を示す無効情報が格納されており、
    前記コントローラは、前記複数のポート情報を比較して、前記無効情報を設定する
    ことを特徴とするストレージシステム。
  3. 請求項2に記載のストレージシステムであって、
    前記スイッチは、同じ組み合わせのポート識別子を有しており、
    前記複数のポート情報で、1つのポート識別子に異なるコントローラ識別子が対応付けられている場合、1つのコントローラ識別子以外に対応付けられたポートを、無効に設定する
    ことを特徴とするストレージシステム。
  4. 請求項1に記載のストレージシステムであって、
    前記複数のコントローラは、複数の前記ポート情報に基づいて,同じ識別子のポートに接続されたコントローラが複数存在することが判明した場合、前記複数のコントローラのうち1つ以外を閉塞する
    ことを特徴とするストレージシステム。
  5. 請求項3に記載のストレージシステムであって、
    前記複数のコントローラは、あらかじめ設定されたルールに基づいて、無効にするポートを決定する
    ことを特徴とするストレージシステム。
  6. 請求項4に記載のストレージシステムであって、
    前記複数のコントローラは、あらかじめ設定されたルールに基づいて、無効にするポートを決定し、
    接続するすべてのポートに無効が設定されたコントローラは、自身を閉塞する
    ことを特徴とするストレージシステム。
  7. 請求項1に記載のストレージシステムであって、
    前記複数のコントローラは、複数の前記ポート情報に基づいて互いに通信ができないコントローラの組が存在することが判明した場合、そのコントローラのうち一方を閉塞する
    ことを特徴とするストレージシステム。
  8. 請求項1に記載のストレージシステムであって、
    前記ポート情報は、前記ポート情報を作成したスイッチと、前記スイッチに接続されたコントローラと、に記憶されている
    ことを特徴とするストレージシステム。
  9. 請求項1に記載のストレージシステムであって、
    前記複数のスイッチは、前記ポートに接続された複数のコントローラに、接続されたポートのポート識別子を送信し、
    前記複数のコントローラの各コントローラは、
    前記接続されているスイッチから、接続されている複数のポートを同定する複数のポート識別子を取得し、
    前記取得した複数のポート識別子に基づき、前記ストレージシステム内のコントローラ番号を決定する、
    ことを特徴とするストレージシステム。
  10. ストレージシステムを制御する方法であって、
    前記ストレージシステムは、
    ボリュームを指定した入出力要求を受け付けて処理する複数のコントローラと、
    それぞれが複数のポートを有する複数のスイッチと、を含み、
    前記方法は、
    前記複数のコントローラが、並列に接続された前記複数のスイッチを介して互いに通信し、
    前記複数のスイッチの各スイッチが、
    各々の前記コントローラから、各々の前記ポートを介して、コントローラ識別子を受信し、
    ポート識別子と、前記ポートを介して受信したコントローラ識別子とを対応付けてポート情報に記憶し、
    前記複数のコントローラの各コントローラが、前記各スイッチが作成した複数の前記ポート情報に基づいて、前記コントローラと前記スイッチとの接続の適否を判断して処理を行う
    ことを含む、方法。
JP2021151799A 2018-11-07 2021-09-17 ストレージシステム Active JP7213928B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021151799A JP7213928B2 (ja) 2018-11-07 2021-09-17 ストレージシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018209342A JP6948303B2 (ja) 2018-11-07 2018-11-07 ストレージシステム
JP2021151799A JP7213928B2 (ja) 2018-11-07 2021-09-17 ストレージシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018209342A Division JP6948303B2 (ja) 2018-11-07 2018-11-07 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2021192306A true JP2021192306A (ja) 2021-12-16
JP7213928B2 JP7213928B2 (ja) 2023-01-27

Family

ID=69951809

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018209342A Active JP6948303B2 (ja) 2018-11-07 2018-11-07 ストレージシステム
JP2021151799A Active JP7213928B2 (ja) 2018-11-07 2021-09-17 ストレージシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018209342A Active JP6948303B2 (ja) 2018-11-07 2018-11-07 ストレージシステム

Country Status (2)

Country Link
US (2) US10606508B1 (ja)
JP (2) JP6948303B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7197545B2 (ja) * 2020-09-29 2022-12-27 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US11467994B2 (en) 2020-12-11 2022-10-11 Hewlett Packard Enterprise Development Lp Identifiers for connections between hosts and storage devices
JP2023125009A (ja) * 2022-02-28 2023-09-07 株式会社日立製作所 ストレージシステム、パス制御方法、及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293460A (ja) * 2005-04-06 2006-10-26 Hitachi Ltd ファイバチャネルスイッチ装置、情報処理システム及びログイン処理方法
US20080109584A1 (en) * 2006-11-06 2008-05-08 Dot Hill Systems Corp. Method and apparatus for verifying fault tolerant configuration
JP2009187483A (ja) * 2008-02-08 2009-08-20 Hitachi Ltd ストレージサブシステム及びこれの制御方法
JP2010287209A (ja) * 2009-06-09 2010-12-24 Lsi Corp 組込み専用スケール・アウト・ネットワーク
JP2012074879A (ja) * 2010-09-28 2012-04-12 Hitachi Ltd ケーブルの誤接続をチェックする計算機システム、装置及び方法
JP2016212474A (ja) * 2015-04-30 2016-12-15 富士通株式会社 制御装置、ストレージシステムおよびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010170351A (ja) 2009-01-23 2010-08-05 Hitachi Ltd 計算機システムのブート制御方法
JP5279873B2 (ja) * 2010-12-10 2013-09-04 株式会社東芝 情報処理装置および情報処理方法
JP6035726B2 (ja) * 2011-11-02 2016-11-30 富士通株式会社 接続制御装置、ストレージシステム及び接続制御装置の制御方法
US9396065B2 (en) * 2014-06-25 2016-07-19 Intel Corporation Extensible memory hub
US10649847B2 (en) * 2015-05-11 2020-05-12 Nec Corporation Communication apparatus, system, method, and non-transitory medium
WO2018198325A1 (ja) * 2017-04-28 2018-11-01 株式会社日立製作所 ストレージシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293460A (ja) * 2005-04-06 2006-10-26 Hitachi Ltd ファイバチャネルスイッチ装置、情報処理システム及びログイン処理方法
US20080109584A1 (en) * 2006-11-06 2008-05-08 Dot Hill Systems Corp. Method and apparatus for verifying fault tolerant configuration
JP2009187483A (ja) * 2008-02-08 2009-08-20 Hitachi Ltd ストレージサブシステム及びこれの制御方法
JP2010287209A (ja) * 2009-06-09 2010-12-24 Lsi Corp 組込み専用スケール・アウト・ネットワーク
JP2012074879A (ja) * 2010-09-28 2012-04-12 Hitachi Ltd ケーブルの誤接続をチェックする計算機システム、装置及び方法
JP2016212474A (ja) * 2015-04-30 2016-12-15 富士通株式会社 制御装置、ストレージシステムおよびプログラム

Also Published As

Publication number Publication date
US10606508B1 (en) 2020-03-31
JP7213928B2 (ja) 2023-01-27
US11137935B2 (en) 2021-10-05
JP2020077137A (ja) 2020-05-21
JP6948303B2 (ja) 2021-10-13
US20200210099A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
US7650446B2 (en) Storage system for back-end communications with other storage system
JP2021192306A (ja) ストレージシステム
US20190310925A1 (en) Information processing system and path management method
US7536508B2 (en) System and method for sharing SATA drives in active-active RAID controller system
US8977781B1 (en) Computer system
JP5057656B2 (ja) ストレージシステム及びストレージシステムの運用方法
US6928514B2 (en) Method and apparatus for teaming storage controllers
US10467176B2 (en) Information processing apparatus
US9137148B2 (en) Information processing system and information processing apparatus
US9098466B2 (en) Switching between mirrored volumes
US8412892B2 (en) Storage system and ownership control method for storage system
US9262087B2 (en) Non-disruptive configuration of a virtualization controller in a data storage system
JP2012133405A (ja) ストレージ装置及びそのデータ転送制御方法
JP6068676B2 (ja) 計算機システム及び計算機システムの制御方法
US8275958B2 (en) Storage system with remote copy controllers
US10095625B2 (en) Storage system and method for controlling cache
US8312234B2 (en) Storage system configured from plurality of storage modules and method for switching coupling configuration of storage modules
US10732901B2 (en) Storage system and storage control method
US20140136581A1 (en) Storage system and control method for storage system
US11836386B2 (en) Storage system and method of controlling storage system that set ports associated with a logical unit
JP5335848B2 (ja) ストレージシステム及びストレージシステムの運用方法
US20240134806A1 (en) Storage system
US20200133764A1 (en) Software-assisted fine-grained data protection for non-volatile memory storage devices
CN113342261A (zh) 伺服器与应用于伺服器的控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230117

R150 Certificate of patent or registration of utility model

Ref document number: 7213928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350