JP6547600B2 - ストレージシステム、および制御装置 - Google Patents

ストレージシステム、および制御装置 Download PDF

Info

Publication number
JP6547600B2
JP6547600B2 JP2015223045A JP2015223045A JP6547600B2 JP 6547600 B2 JP6547600 B2 JP 6547600B2 JP 2015223045 A JP2015223045 A JP 2015223045A JP 2015223045 A JP2015223045 A JP 2015223045A JP 6547600 B2 JP6547600 B2 JP 6547600B2
Authority
JP
Japan
Prior art keywords
master
port
condition
fpga
management
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.)
Active
Application number
JP2015223045A
Other languages
English (en)
Other versions
JP2017091355A (ja
Inventor
進之介 松田
進之介 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015223045A priority Critical patent/JP6547600B2/ja
Priority to US15/297,654 priority patent/US10235045B2/en
Publication of JP2017091355A publication Critical patent/JP2017091355A/ja
Application granted granted Critical
Publication of JP6547600B2 publication Critical patent/JP6547600B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • 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/0653Monitoring storage devices or systems
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージシステム、および制御装置に関する。
ストレージシステムでは、記憶容量や性能が不足すると、例えばスケールアウトが行われる。スケールアウトでは、複数のハードディスクを実装したDE(Device Enclosure)とCE(Controller Enclosure)とがストレージシステムに増設される。CEは、複数のCM(Controller Module)を有している。CMはハードディスクに接続されており、ハードディスクへのホスト装置からのアクセスを制御する。
ストレージシステムの中には、ストレージ装置の増設が容易なスケールアウト型ストレージシステムがある。スケールアウト型ストレージシステムでは、例えばFE(Front End controller)と呼ばれる装置内に設けられたSVC(Service Controller)によって、CMが管理される。例えば各CMは、マネジメントバスによってSVCに接続される。SVCは、マネジメントバスを介して各CMと通信し、CMの動作を管理する。例えばSVCは、CMの電源制御、CMの状態監視、CMからのログ採取、リセット制御、LED(Light Emitting Diode)消灯・点灯処理などを行う。
なお、ストレージシステムの管理には、様々な技術が利用されている。例えばファイル管理情報の一貫性を維持するため、乱数およびモジュロ演算によってファイルごとのマスタ2次記憶制御装置を、複数の2次記憶制御装置の中から選択して決定するシステムがある。また二重制御装置においてリアルタイムで同期したミラー型メモリを使用することで、ディスク記憶システムの制御装置またはそのメモリが故障した場合に即時に正確な故障回復を行うシステムも考えられている。
特開平7−244642号公報 特開平8−241173号公報
従来のスケールアウト型ストレージシステムでは、SVCによって各CMを管理するため、SVCに障害が発生すると、システムを正しく運用できなくなる。そこで、信頼性向上のため、FEにはSVCが2台搭載される。SVCが2台あれば、一方のSVCに障害が発生しても、他方のSVCが正常にCMを管理することができる。ただし、SVCを2台搭載した結果、FEが大規模化し、FEの配置スペースの増加やコストの増加を招いている。
そこで、SVCをなくし、複数のCMのいずれかに、すべてのCMを管理させることが考えられる。いずれかのCMにおいて、CM全体を管理することができれば、スケールアウト型ストレージシステムにおいてSVCが不要となり、システムの設置スペースを縮小できる。しかし、従来は、SVCと同様の管理機能を複数のCMそれぞれに搭載したとしても、どのCMに管理させるのかを決定することができない。そのため、SVCを用いずに、複数のCM内の一部のCMにCM全体を管理させることが困難である。
なお、以上の説明におけるCMは、ストレージ装置を制御する制御装置の一例である。そして、制御装置一般においてもCMの場合と同様に、一部の制御装置に複数の制御装置全体を管理させようとしても、どの制御装置に管理させるのかを決定できないという問題がある。
1つの側面では、本件は、複数の制御装置全体の管理をどの制御装置に実施させるのかを容易に決定できるようにすることを目的とする。
1つの態様では、ストレージ装置、第1の制御装置、第2の制御装置、および通信ケーブルを有するストレージシステムが提供される。
第1の制御装置は、ストレージ装置を制御し、所定の管理処理の実行条件のうちの、管理処理を実行する実行装置に接続される通信ポートに関する隣接ポート条件を満たす第1の通信ポートを有し、かつ実行条件のうちの、実行装置に隣接する隣接装置に関する隣接装置条件を満たす。
第2の制御装置は、ストレージ装置を制御し、実行条件のうちの、隣接装置に接続される通信ポートに関する接続ポート条件を満たす第2の通信ポートを有し、かつ実行条件のうちの、実行装置に関する実行装置条件を満たしており、第2の通信ポートが第1の通信ポートに接続されたときに実行条件が満たされたと判定し、管理処理を実行する。
通信ケーブルは、第1の制御装置の第1の通信ポートと、第2の制御装置の第2の通信ポートとを接続する。
複数の制御装置全体の管理をどの制御装置に実施させるのかを容易に決定できる。
第1の実施の形態のストレージシステムの構成例を示す図である。 第2の実施の形態のストレージシステムの一例を示す図である。 CMのハードウェア例を示す図である。 FPGA内の通信ポートの一例を示す図である。 CM間の通信に用いる信号の一例を示す図である。 CM間の接続形態の一例を示す図である。 FPGAの機能の一例を示すブロック図である。 マスタ条件テーブルの一例を示す図である。 マスタ決定例を示す図である。 制御パケットのフォーマットの一例を示す図である。 「マスタ1」と「マスタ2」との制御パケット内のデータ例を示す図である。 「マスタ3」と「マスタ4」との制御パケット内のデータ例を示す図である。 2台のCEの接続例を示す図である。 DC−ONの手順を示すシーケンス図の前半である。 DC−ONの手順を示すシーケンス図の後半である。 マスタ決定処理の手順を示すシーケンス図(1/3)である。 マスタ決定処理の手順を示すシーケンス図(2/3)である。 マスタ決定処理の手順を示すシーケンス図(3/3)である。 監視対象の一例を示す図である。 マスタCM故障時のフェイルオーバの例を示す図である。 2つのマスタCM故障時のフェイルオーバの例を示す図である。 マスタとなるCM間の監視処理の一例を示すシーケンス図である。 システム情報のミラーリング処理の一例を示すシーケンス図である。 フェイルオーバ処理の手順の一例を示すシーケンス図である。 CM間の接続形態の変形例を示す図である。 FPGAが実施するDC−ON制御処理の手順の一例を示すフローチャートである。 FPGAが実施するマスタ判定処理の手順の一例を示すフローチャートの前半である。 FPGAが実施するマスタ判定処理の手順の一例を示すフローチャートの後半である。 FPGAが実施するマスタ1,2判定処理の手順の一例を示すフローチャートである。 FPGAが実施する監視処理の手順の一例を示すフローチャートである。
以下、実施の形態について図面を参照して詳細に説明する。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
図1は、第1の実施の形態のストレージシステムの構成例を示す図である。ストレージシステムは、複数のストレージ装置1〜3と、ストレージ装置1〜3に接続された筐体10a〜10cを有する。
筐体10aには、装置番号「0」の制御装置11と装置番号「1」の制御装置12が搭載されている。制御装置11は、ポート番号「0」の通信ポート11aとポート番号「1」の通信ポート11bとを備えた管理回路11cを有する。制御装置12は、ポート番号「0」の通信ポート12aとポート番号「1」の通信ポート12bとを備えた管理回路12cを有する。管理回路11cと管理回路12cとは、筐体10a内部の信号線で接続されている。
筐体10bには、装置番号「0」の制御装置13と装置番号「1」の制御装置14が搭載されている。制御装置13は、ポート番号「0」の通信ポート13aとポート番号「1」の通信ポート13bとを備えた管理回路13cを有する。制御装置14は、ポート番号「0」の通信ポート14aとポート番号「1」の通信ポート14bとを備えた管理回路14cを有する。管理回路13cと管理回路14cとは、筐体10b内部の信号線で接続されている。
筐体10cには、装置番号「0」の制御装置15と装置番号「1」の制御装置16が搭載されている。制御装置15は、ポート番号「0」の通信ポート15aとポート番号「1」の通信ポート15bとを備えた管理回路15cを有する。制御装置16は、ポート番号「0」の通信ポート16aとポート番号「1」の通信ポート16bとを備えた管理回路16cを有する。管理回路15cと管理回路16cとは、筐体10c内部の信号線で接続されている。
各制御装置11〜16は、ストレージ装置1〜3へのアクセスを制御する。各制御装置11〜16の装置番号は、その制御装置が搭載されている筐体10a〜10c内での制御装置の識別子である。
通信ポート11a,11b,12a,12b,13a,13b,14a,14b,15a,15b,16a,16bは、他の筐体内の制御装置と通信するための通信ケーブル4a〜4fの接続ポートである。各通信ポート11a,11b,12a,12b,13a,13b,14a,14b,15a,15b,16a,16bのポート番号は、その通信ポートが搭載されている制御装置内での通信ポートの識別子である。
通信ケーブル4aは、制御装置11の通信ポート11aと制御装置16の通信ポート16bとを接続している。通信ケーブル4bは、制御装置11の通信ポート11bと制御装置16の通信ポート16aとを接続している。通信ケーブル4cは、制御装置12の通信ポート12aと制御装置13の通信ポート13aとを接続している。通信ケーブル4dは、制御装置12の通信ポート12bと制御装置13の通信ポート13bとを接続している。通信ケーブル4eは、制御装置14の通信ポート14aと制御装置15の通信ポート15aとを接続している。通信ケーブル4fは、制御装置14の通信ポート14bと制御装置15の通信ポート15bとを接続している。
制御装置11〜16は、マスタ条件5を記憶する記憶装置を有する。マスタ条件5には、所定の管理処理の実行条件や、管理処理を実行する装置を監視する条件を示す監視実行条件が含まれる。
実行条件には、例えば、隣接ポート条件、隣接装置条件、接続ポート条件、および実行装置条件が含まれる。隣接ポート条件は、管理処理を実行する実行装置に接続される通信ポートに関する条件である。隣接装置条件は、実行装置に隣接する隣接装置に関する条件である。接続ポート条件は、隣接装置に接続される通信ポートに関する条件である。実行装置条件は、実行装置に関する条件である。
監視実行条件は、例えば、監視隣接ポート条件、監視隣接装置条件、監視接続ポート条件、および監視装置条件が含まれる。監視隣接ポート条件は、監視処理を実行する監視装置に接続される通信ポートに関する条件である。監視隣接装置条件は、監視装置に隣接する監視隣接装置に関する条件である。監視接続ポート条件は、監視隣接装置に接続される通信ポートに関する条件である。監視装置条件は、監視装置に関する条件である。
なお隣接ポート条件および監視隣接ポート条件は、例えば、装置内で通信ポートを識別するポート番号に関する条件である。隣接装置条件および監視隣接装置条件は、例えば筐体内で装置を識別する識別番号に関する条件である。接続ポート条件および監視接続ポート条件は、例えば装置内で通信ポートを識別するポート番号に関する条件である。実行装置条件および監視装置条件は、例えば筐体内で装置を識別する識別番号に関する条件である。
以下、管理処理を実行する装置を「マスタ1」、管理装置を監視する装置を「マスタ2」と呼ぶこととする。図1の例では、「マスタ1」になる条件(実行条件)として、「マスタ1」となる制御装置に隣接する制御装置の装置番号が「1」、「マスタ1」となる制御装置に接続される隣接装置側の通信ポートの通信ポート番号が「0」であることが定義されている。また、「マスタ1」になる条件では、「マスタ1」となる制御装置の装置番号が「0」であり、「マスタ1」となる制御装置において隣接する制御装置に接続される通信ポートのポート番号が「1」であることが定義されている。
「マスタ2」になる条件(監視実行条件)として、監視する制御装置に隣接する制御装置の装置番号が「0」であり、監視する制御装置に接続される隣接装置側の通信ポートの通信ポート番号が「0」であることが定義されている。また「マスタ2」になる条件では、監視する制御装置の装置番号が「1」であり、隣接する制御装置に接続される通信ポートのポート番号が「1」であることが定義されている。
通信ケーブル4a〜4fを接続する際には、複数の制御装置11〜16のうちの1台が、「マスタ1」となり、別の1台が「マスタ2」となるように接続される。図1の例では、制御装置11は、自身が「マスタ1」となり、制御装置16が「マスタ2」となる。
第1の実施の形態では、各制御装置11〜16は、自身がいずれかのマスタになるか否かを自己判断することができる。例えば、各制御装置11〜16は、通信ポートごとに、自身の装置番号と通信ポートのポート番号との組、およびその通信ポートの接続先の制御装置の装置番号と、接続先の通信ポートのポート番号との組が、「マスタ1」になる条件を満たしているか否を判断する。「マスタ1」になる条件を満たす通信ポートがあった場合、その通信ポートを有する制御装置は、自身が、制御装置11〜16すべてを管理するものと決定する。この決定は、例えば各制御装置11〜16内の管理回路11c,12c,13c,14c,15c,16cで行われる。
同様に各制御装置11〜16は、通信ポートごとに、自身の装置番号と通信ポートのポート番号との組、およびその通信ポートの接続先の制御装置の装置番号と、接続先の通信ポートのポート番号との組が、「マスタ2」になる条件を満たしているか否を判断する。「マスタ2」になる条件を満たす通信ポートがあった場合、その通信ポートを有する制御装置は、自身が、「マスタ1」の制御装置を監視するものと決定する。また「マスタ2」の制御装置は、「マスタ1」の制御装置が故障したときに「マスタ1」に昇格し、制御装置11〜16すべてを管理する。
なお、複数の通信ケーブル4a〜4fのうちの1本のケーブルのみが、そのケーブルの一端の制御装置が、「マスタ1」となる条件を満たすように接続されている。「マスタ1」となる条件を満たすように接続されたケーブル以外のケーブルは、「マスタ1」となる条件を満たさないように接続されている。
このように、第1の実施の形態では、通信ケーブル4a〜4fの接続状態に基づいて、「マスタ1」および「マスタ2」となる制御装置が一意に決まる。しかも制御装置11〜16それぞれが、「マスタ1」または「マスタ2」となるか否かを、通信ケーブル4a〜4fの接続状態に基づいて、自身で容易に判断できる。その結果、SVCのような外部の管理装置が不要となり、システム全体の小規模化を図ることができる。
さらに、「マスタ1」となった制御装置が故障したときは、「マスタ2」の制御装置が即座に「マスタ1」となり、制御装置11〜16の管理を開始するため、システムの高い信頼性が確保される。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、スケールアウト型のストレージシステムにおいて、CM内マネジメント用のFPGA(Field Programmable Gate Array)配置し、SVCやCM内のプロセッサの介在なしに、CMの管理を実現するものである。SVCを削減することで、ストレージシステムの規模を縮小することが可能となる。
図2は、第2の実施の形態のストレージシステムの一例を示す図である。図2に示すストレージシステムは、CE100,200,300,400、DE500,600,700,800およびホスト装置900を含む。ホスト装置900は、CE100,200,300,400を介して、DE500,600,700,800内のハードディスク装置(HDD:Hard Disk Drive)に対するデータの入出力を行う。
CE100は、CM110,120を有する。CE200は、CM210,220を有する。CE300は、CM310,320を有する。CE400は、CM410,420を有する。各CM110,120,210,220,310,320,410,420には、各CE100,200,300,400内での識別番号(CM番号)が設定されている。CM110,210,310,410のCM番号は「0」,CM120,220,320,420のCM番号は「1」である。
CM110とCM420は、接続されている。CM120とCM210は、接続されている。CM220とCM310は、接続されている。CM320とCM410は、接続されている。例えば、2つのCMは、シリアルケーブルを介して接続される。
また、CM110,120,210,220,310,320,410,420には、ホスト装置900が接続されている。CM110,120,210,220,310,320,410,420とホスト装置900とは、例えば、ファイバチャネル(FC:Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)を介して接続される。なお、図2では例として1台のホスト装置900がCM110,120,210,220,310,320,410,420に接続されているが、例えば、複数台のホスト装置のそれぞれが1台以上のCMに接続されていてもよい。
DE500,600,700,800は、それぞれ複数の記憶装置を搭載するディスクアレイ装置である。例えばDE500には、複数のHDD511,・・・,51nが搭載されている。DE600には、複数のHDD611,・・・,61nが搭載されている。DE700には、複数のHDD711,・・・,71nが搭載されている。DE800には、複数のHDD811,・・・,81nが搭載されている。図2の例では、DE500,600,700,800は、記憶装置としてHDDを用いているが、SSD(Solid State Drive)などの他の種類の記憶装置を用いることもできる。
CM110,120には、DE500が接続されている。CM110,120は、ホスト装置900または他のCMからの要求に応じて、DE500に搭載されたHDD511,・・・,51nに対するアクセスを制御する。CM210,220には、DE600が接続されている。CM210,220は、ホスト装置900または他のCMからの要求に応じて、DE600に搭載されたHDD611,・・・,61nに対するアクセスを制御する。CM310,320には、DE700が接続されている。CM310,320は、ホスト装置900または他のCMからの要求に応じて、DE700に搭載されたHDD711,・・・,71nに対するアクセスを制御する。CM410,420は、ホスト装置900または他のCMからの要求に応じて、DE800に搭載されたHDD811,・・・,81nに対するアクセスを制御する。
なお、CE100とDE500とは、例えば、1つの筐体に搭載されるストレージ装置として実現される。CE200とDE600、CE300とDE700、CE400とDE800についても同様である。図2のストレージシステムは、このようなストレージ装置単位でスケールアウトが可能な構成となっている。
また、ストレージシステムに含まれるCEの数は4台に限定されるものではなく、各CEに含まれるCMの数も2台に限定されるものではない。例えば、ストレージシステムには、2台以上のCMを備えるCEが4台以上含まれていてもよい。
図3は、CMのハードウェア例を示す図である。CM110は、プロセッサ111、RAM112、SSD113、CA(Channel Adapter)114、FPGA115、DI(Device Interface)116および読み取り装置117を有する。
プロセッサ111は、CM110の情報処理を制御する。プロセッサ111には、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)などを含み得る。プロセッサ111は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。
RAM112は、CM110の主記憶装置である。RAM112は、プロセッサ111に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM112は、プロセッサ111による処理に用いる各種データを記憶する。
SSD113は、CM110の補助記憶装置である。SSD113は、不揮発性の半導体メモリである。SSD113には、OSのプログラム、ファームウェアのプログラム、アプリケーションプログラム、および各種データが格納される。なお、CM110は、補助記憶装置として、SSD113の代わりにHDDを備えていてもよい。
CA114は、ホスト装置900と通信するためのインタフェースである。ホスト装置900から送られたアクセス要求は、CA114で受信され、プロセッサ111に送られる。
FPGA115は、製造後に内部論理回路を定義・変更可能な集積回路である。FPGA115は、マネジメントバスにより、CE100内の他のCM120に接続されている。またFPGA115は、マネジメントバスにより、他のCE400内のCM420にも接続されている。FPGA115は、マネジメントバスを介して、接続されたCM120,420と通信し、CM110が、すべてのCMを管理するマスタとなるか否かを判断する。そしてFPGA115は、マスタとなる場合、マネジメントバスを介して他のCMを管理する。
なお、CM110全体には、DC(直流)−ONの指示があったときに電源供給が開始されるが、FPGA115についてのみ、CEに対して交流(AC)電源が供給されたときに、電源供給が開始される。そしてFPGA115は、DC−ON指示の入力などに応じて、CM110全体に対する電源供給を開始する。
DI116は、DE500と通信するためのインタフェースである。読み取り装置117は、可搬型の記録媒体117aに記録されたプログラムやデータを読み取る装置である。記録媒体117aとして、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体117aとして、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置117は、例えば、プロセッサ111からの命令に従って、記録媒体117aから読み取ったプログラムやデータをプロセッサ111に送信する。
なお、CM120,210,220,310,320,410,420もCM110と同様のハードウェアにより実現できる。
次に、FPGA115内の通信ポートについて詳細に説明する。
図4は、FPGA内の通信ポートの一例を示す図である。FPGA115は、2つのマネジメントポート115a,115bと1つの内部通信ポート115cとを有している。マネジメントポート115a,115bには、それぞれポート番号が付与されている。マネジメントポート115aのポート番号は「0」、マネジメントポート115bのポート番号は「1」である。
FPGA125は、2つのマネジメントポート125a,125bと1つの内部通信ポート125cとを有している。マネジメントポート125aのポート番号は「0」、マネジメントポート125bのポート番号は「1」である。
FPGA115内のマネジメントポート115a,115bは、CE100とは別のCE400のCM420内のFPGAが有するマネジメントポートに、マネジメントケーブル21,22で接続されている。FPGA125内のマネジメントポート125a,125bは、CE100とは別のCE200のCM210内のFPGAが有するマネジメントポートに、マネジメントケーブル23,24で接続されている。CM110内のFPGA115の内部通信ポート115cと、CM120内のFPGA125の内部通信ポート125cとは、マネジメントケーブル31で接続されている。
マネジメントケーブルは、4本の信号線を有している。そのうちの2本の信号線は、データ送信用であり、他の2本はデータ受信用である。図4では、各通信ポートの送信用の信号線の接続部を「T」、受信用の信号線の接続部を「R」と表している。送信用の信号線の接続部には、ID「0」が割り当てられている。受信用の信号線の接続部には、ID「1」が割り当てられている。
CM間のFPGAによる通信方式は、例えば、同期式のシリアル伝送方式である。
図5は、CM間の通信に用いる信号の一例を示す図である。送信クロックの信号名は「TXCLK」である。送信クロックの通信方向は、送信(Out)である。送信データの信号名は「TXDATA」である。送信データの通信方向は、送信(Out)である。受信クロックの信号名は「RXCLK」である。受信クロックの通信方向は、受信(In)である。受信データの信号名は「RXDATA」である。受信データの通信方向は、受信(In)である。
このように、マネジメントケーブルは、データ線とクロック線とのペアで構成されている。そして各FPGAは、マネジメントケーブルを介して、クロック信号を用いた同期式のシリアル伝送によるマネジメント通信を行う。クロック周波数は、例えば100MHzである。
第2の実施の形態では、以下の条件を満たすようにマネジメントケーブルが接続される。
1)CM番号「0」のCMのポート番号「0」のマネジメントポートと、そのCMとは別のCEに搭載されているCMのCM番号「1」のCMのポート番号「1」のマネジメントポートとを接続するマネジメントケーブルが1本だけある。
2)CM番号「1」のCMのポート番号「0」のマネジメントポートと、そのCMとは別のCEに搭載されているCMのCM番号「0」のCMのポート番号「1」のマネジメントポートとを接続するマネジメントケーブルが1本だけある。
3)上記1),2)の場合を除き、CM番号「0」のCMのポート番号「0」のマネジメントポートと、そのCMとは別のCEに搭載されているCMのCM番号「1」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブルで接続されている。
4)上記1),2)の場合を除き、CM番号「1」のCMのポート番号「1」のマネジメントポートと、そのCMとは別のCEに搭載されているCMのCM番号「0」のCMのポート番号「1」のマネジメントポートとが、マネジメントケーブルで接続されている。
以上の4つの条件を満たすようにCM間をマネジメントケーブルで接続することで、ストレージシステム全体を管理するマスタとなるCMを、マネジメントケーブルの接続形態に基づいて一意に決定可能となる。
図6は、CM間の接続形態の一例を示す図である。CE100と同様に、他のCE200,300,400内の各CM210,220,310,320,410,420も、それぞれFPGA215,225,315,325,415,425を有している。FPGA215,225,315,325,415,425は、FPGA115,125と同様に、マネジメントポート215a,215b,225a,225b,315a,315b,325a,325b,415a,415b,425a,425bを有している。マネジメントポート215a,225a,315a,325a,415a,425aのポート番号は「0」、マネジメントポート215b,225b,315b,325b,415b,425bのポート番号は「1」である。
CE100のCM110内のFPGA115とCE400のCM420内のFPGA425とが、マネジメントケーブル21,22で接続されている。マネジメントケーブル21は、FPGA115のポート番号「0」のマネジメントポート115aと、FPGA425のポート番号「1」のマネジメントポート425bとを接続している。マネジメントケーブル22は、FPGA115のポート番号「1」のマネジメントポート115bと、FPGA425のポート番号「0」のマネジメントポート425aとを接続している。
CE100のCM120内のFPGA125とCE200のCM210内のFPGA215とが、マネジメントケーブル23,24で接続されている。マネジメントケーブル23は、2つのFPGA125,215それぞれのポート番号「0」のマネジメントポート125a,215a同士を接続している。マネジメントケーブル24は、2つのFPGA125,215それぞれのポート番号「1」のマネジメントポート125b,215b同士を接続している。
CE200のCM220内のFPGA225とCE300のCM310内のFPGA315とが、マネジメントケーブル25,26で接続されている。マネジメントケーブル25は、2つのFPGA225,315それぞれのポート番号「0」のマネジメントポート225a,315a同士を接続している。マネジメントケーブル26は、2つのFPGA225,315それぞれのポート番号「1」のマネジメントポート225b,315b同士を接続している。
CE300のCM320内のFPGA325とCE400のCM410内のFPGA415とが、マネジメントケーブル27,28で接続されている。マネジメントケーブル27は、2つのFPGA325,415それぞれのポート番号「0」のマネジメントポート325a,415a同士を接続している。マネジメントケーブル28は、2つのFPGA325,415それぞれのポート番号「1」のマネジメントポート325b,415b同士を接続している。
このように、マネジメントケーブル23〜28は、同じポート番号のマネジメントポート同士を接続している。それに対し、マネジメントケーブル21,22は、異なるポート番号のマネジメントポート同士を接続している。
図6に示すマネジメントケーブルの接続関係に基づいて、マスタとなるCMが決定される。第2の実施の形態では、マスタには、「マスタ1」〜「マスタ4」の4つのレベルがある。この場合、いずれか4台のCMが、それぞれ「マスタ1」〜「マスタ4」となる。「マスタ1」となったCMは、ストレージシステム内のすべてのCM110,120,210,220,310,320,410,420を管理する。「マスタ2」となったCMは、「マスタ1」のCMを監視し、そのCMの障害を検出すると「マスタ1」となる。「マスタ3」となったCMは、「マスタ1」のCMを監視し、そのCMの障害を検出すると「マスタ2」となる。「マスタ4」となったCMは、「マスタ2」のCMを監視し、そのCMの障害を検出すると「マスタ2」となる。
なお、図6の例では、複数のCM110,120,210,220,310,320,410,420がリング型のデイジーチェーンで接続されている。ここで、同じポート番号のマネジメントポート同士を接続しているマネジメントケーブル23〜28とCE100,200,300,400の内部接続とによる直列の接続関係に着目する(マネジメントケーブル21,22の接続を考慮に入れない)と、「マスタ1」となるCM110と「マスタ2」となるCM40は、最も外側となる。そして、「マスタ3」のCM120は、直列の接続関係において、「マスタ1」のCM110内側に位置する。また「マスタ4」のCM410は、直列の接続関係において「マスタ2」の内側に位置する。このような配置とすることで、外側の「マスタ1」または「マスタ2」のCM110,420が故障したとき、CE内接続で接続された、すぐ内側のCM120,410にフェイルオーバにより機能を容易に移管することができる。これにより、冗長性が強化されている。
各FPGA115,125,215,225,315,325,415,425は、マネジメントケーブル21〜28で接続された相手のCMとの間で、制御パケットを受け渡すことで、自身が「マスタ1」または「マスタ2」になるか否かを判断する。
例えば接続されたFPGA同士で、互いに、CM番号や接続されたマネジメントポートのポート番号を含む制御パケットを交換する。そして、例えば、受信した制御パケットのCM番号とポート番号の組と、その制御パケットを受信したCMのCM番号とマネジメントポートのポート番号との組に関する所定の条件が満たされたCMが、「マスタ1」または「マスタ2」になる。
「マスタ3」となるCMは、例えば「マスタ1」となったCMと同じCE内の他のCMである。「マスタ4」となるCMは、例えば「マスタ2」となったCMと同じCE内の他のCMである。
このように、第2の実施の形態では、マネジメントケーブル21〜28を用いた接続関係に基づいて、マスタが決定される。
どのCMがマスタになるのかは、各FPGA115,125,215,225,315,325,415,425が自立的に判断する。また「マスタ1」となったCMは、他のCMを管理する。また、1台のCMがDC−ONの指示を受けたときに、各FPGA115,125,215,225,315,325,415,425は、互いに連携動作し、すべてのCMにおいて直流電源の供給を開始することができる。
図7は、FPGAの機能の一例を示すブロック図である。FPGA115は、記憶部115d、DC−ON制御部115e、マスタ決定部115f、および監視部115gを有する。
記憶部115dは、FPGA115が実装されたCM110のCM番号115ca、マスタ条件テーブル115cb、システム情報115ccなどを記憶する。マスタ条件テーブル115cbは、CM110が「マスタ1」または「マスタ2」となるための条件が定義されたデータテーブルである。システム情報115ccは、ストレージシステム内の全てのCM110,120,210,220,310,320,410,420から収集された管理情報である。なお、システム情報115ccは、CM110がマスタになった場合に、記憶部115dに格納される。記憶部115dは、例えばFPGA115内のRAMなどのメモリにより実現される。
DC−ON制御部115eは、CM110への直流電源の供給を制御する。例えばDC−ON制御部115eは、外部からDC−ONの指示が入力されると、CM110のへの直流電源の供給を開始させるとともに、他のCM内のFPGAに対して、DC−ONを指示する制御パケットを送信する。またDC−ON制御部115eは、他のCM内のFPGAから、DC−ONを指示する制御パケットを受信すると、CM110のへの直流電源の供給を開始させる。そしてDC−ON制御部115eは、受信した制御パケットの送信元とは別のCM内のFPGAに対して、DC−ONを指示する制御パケットを送信する。
マスタ決定部115fは、各CM110,120,210,220,310,320,410,420への直流電源の供給が完了すると、CM110がマスタとなるか否かを決定する。例えばマスタ決定部115fは、ポート番号「0」のマネジメントポートから、マネジメントケーブルで接続された他のCMに対して、制御パケットの一種であるCPD(CM/Port/Direction)パケットを送信する。CPDパケットは、送信元のCMのCM番号、送信するマネジメントポートのポート番号、および通信方向を示す情報(CPD)を含む。またマスタ決定部115fは、ポート番号「0」のマネジメントポートを介して、マネジメントケーブルで接続された他のCMが送信したCPDパケットを受信する。マスタ決定部115fは、受信したCPDパケットの内容に基づいて、CM110が「マスタ1」または「マスタ2」となるか否かを決定する。マスタ決定部115fは、CM110が「マスタ1」となる場合、同じCE100内の他のCM120に対して、「マスタ2」となるように指示する。またマスタ決定部115fは、CM110が「マスタ2」となる場合、同じCE100内の他のCM120に対して、「マスタ4」となるように指示する。さらにマスタ決定部115fは、同じCE100内の他のCM120から、「マスタ3」または「マスタ4」となるように指示を受けると、CM110を指示されたマスタに決定する。
監視部115gは、CM110がマスタになることが決定された場合、マスタの種別に応じ、他のCMが正常に動作しているかどうかを監視する。例えばCM110が「マスタ1」に決定されると、監視部115gは、「マスタ2」となったCMの動作を監視し、そのCMの障害を検知すると、フェイルオーバ処理により他のCMのマスタレベルを「マスタ2」に変更させる。CM110が「マスタ2」に決定された場合、監視部115gは、「マスタ1」となったCMの動作を監視し、そのCMの障害を検知すると、フェイルオーバ処理によりCM110のマスタのレベルを「マスタ1」に変更する。CM110が「マスタ3」に決定された場合、監視部115gは、「マスタ1」となったCMの動作を監視し、そのCMの障害を検知すると、フェイルオーバ処理によりCM110のマスタのレベルを「マスタ2」に変更する。CM110が「マスタ4」に決定された場合、監視部115gは、「マスタ2」となったCMの動作を監視し、そのCMの障害を検知すると、フェイルオーバ処理によりCM110のマスタのレベルを「マスタ2」に変更する。
FPGA115以外のFPGA125,215,225,315,325,415,425も、FPGA115と同様の機能を有する。これにより、SVCを用いずに、CM110,120,210,220,310,320,410,420を管理することができる。
CM110が「マスタ1」となった場合、CM110が、すべてのCM110,120,210,220,310,320,410,420を管理することとなる。CM110が「マスタ1」または「マスタ2」となるか否かは、マスタ条件テーブル115cbに定義されている。
図8は、マスタ条件テーブルの一例を示す図である。マスタ条件テーブル115cbには、マスタレベル、CPDパケット内のCPD、および受信ポートのCPDの欄が設けられている。マスタレベルの欄には、決定対象のマスタのレベルが設定されている。CPDパケット内のCPDの欄には、CM110が対応するマスタになるための、受信したCPDパケットに含まれるCPDの値の条件が設定される。受信ポートのCPDの欄には、CM110が対応するマスタになるための、CPDパケットを受信したマネジメントポートのCPDの値の条件が設定される。なおCPDの値は、左から、CM番号、ポート番号、通信方向(送信:0、受信:1)を示している。
なお、他のCMから受信するCPDパケットに含まれるCPDの通信方向の値は、常に「0」である。またCPDパケットを受信するマネジメントポートのCPDの通信方向の値は、常に「1」である。そこで、図8の例では、CM番号「1」のCMのポート番号「0」のマネジメントポートから出力されたCPDパケットを、CM番号「0」のCMのポート番号「1」のマネジメントポートで受信した場合、受信したCMが、「マスタ1」のレベルのマスタになる。また、CM番号「0」のCMのポート番号「0」のマネジメントポートから出力されたCPDパケットを、CM番号「1」のCMのポート番号「1」のマネジメントポートで受信した場合、受信したCMが、「マスタ2」のレベルのマスタになる。
図9は、マスタ決定例を示す図である。例えばストレージシステム全体にAC電源が供給されると、各FPGA115,125,215,225,315,325,415,425が、マネジメントポートからCPDパケットを送信する。なお、図8に示したマスタ条件テーブル115cbの例では、「マスタ1」または「マスタ2」となる条件を満たすのは、ポート番号「0」のマネジメントポートから出力されるCPDパケットのみである。そのため、図8に示したマスタ条件テーブル115cbを使用する場合、ポート番号「0」のマネジメントポートのみが、CPDパケットを送信するようにしてもよい。
例えばFPGA115のポート番号「0」のマネジメントポート115aから送信されるCPDパケット41に含まれるCPDの値は「000」である。このCPDパケット41は、FPGA425のポート番号「1」のマネジメントポート425bで受信される。マネジメントポート425bの受信側に対応するCPDの値は「111」である。この場合、マスタ条件テーブル115cbにおける「マスタ2」の条件に合致する。そこで、FPGA425は、CM420が「マスタ2」のレベルのマスタになることを決定する。
なお、FPGA125のポート番号「0」のマネジメントポート125aからも、CPDパケット41と同様のCPDを含むCPDパケット43が送信される。このCPDパケット43は、FPGA215のポート番号「0」のマネジメントポート215aで受信される。マネジメントポート215aの受信側に対応するCPDの値は「001」である。この場合、マスタ条件テーブル115cbにおけるいずれの条件にも合致しない。そこで、FPGA215は、CM210が「マスタ1」および「マスタ2」のいずれのレベルのマスタにもならないことを決定する。
またFPGA425のポート番号「0」のマネジメントポート425aから送信されるCPDパケット42に含まれるCPDの値は「100」である。このCPDパケット42は、FPGA115のポート番号「1」のマネジメントポート115bで受信される。マネジメントポート115bの受信側に対応するCPDの値は「011」である。この場合、マスタ条件テーブル115cbにおける「マスタ1」の条件に合致する。そこで、FPGA115は、CM110を「マスタ1」のレベルのマスタにすることを決定する。
また、FPGA215のポート番号「0」のマネジメントポート215aからも、CPDパケット41と同様のCPDを含むCPDパケット44が送信される。このCPDパケット44は、FPGA125のポート番号「0」のマネジメントポート125aで受信される。マネジメントポート125aの受信側に対応するCPDの値は「101」である。この場合、マスタ条件テーブル115cbにおけるいずれの条件にも合致しない。そこで、FPGA125は、CM120が「マスタ1」および「マスタ2」のいずれのレベルのマスタにもならないことを決定する。
CM110を「マスタ1」に決定したFPGA115は、同じCE100内の他のFPGA125に対して、「マスタ3」のレベルのマスタになることを指示する。この指示に従って、FPGA125は、CM120を「マスタ3」のレベルのマスタにすることを決定する。
CM420を「マスタ2」に決定したFPGA425は、同じCE400内の他のFPGA415に対して、「マスタ4」のレベルのマスタになることを指示する。この指示に従って、FPGA415は、CM410を「マスタ4」のレベルのマスタにすることを決定する。
このようにして、「マスタ1」〜「マスタ4」の各マスタとして動作するCMが決定される。このようなマスタ決定処理は、非常に短時間で実行できる。例えば、AC電源投入から1秒以内に、マスタを決定することができる。
なお、CPDパケット41〜44などの制御パケットは、FPGA115,125,215,225,315,325,415,425間での制御用の情報の送受信に用いられるパケットである。各CE100,200,300,400において他のCEからの制御パケットを受信したCMは、自身が宛先(ターゲットCM)でなければ、同じCE内の別のCMへ、CE内通信によって、その制御パケットを転送する。
CE内通信で制御パケットを受信したCMは、自身が宛先でなければ、他のCE内のCMへその制御パケットを転送する。この際、他のCEからの制御パケットを受信したCMのマネジメントポートのポート番号が「0」であれば、CE内通信で制御パケットを受信したCMは、ポート番号「1」のマネジメントポートから制御パケットを送信する。また他のCEからの制御パケットを受信したCMのマネジメントポートのポート番号が「1」であれば、CE内通信で制御パケットを受信したCMは、ポート番号「0」のマネジメントポートから制御パケットを送信する。すなわちCEにおいて制御パケットを受信したときのポート番号とは別のポート番号のマネジメントポートから、その制御パケットが送信される。
図10は、制御パケットのフォーマットの一例を示す図である。制御パケット40は、12個のフィールド40a〜40lを含んでいる。
フィールド40aのサイズは4ビットである。フィールド40aには、SOF(Start Of Frame)ヘッダが格納される。SOFヘッダは、パケットの先頭を示す所定値である。例えばSOFヘッダの値は、「1111(2進数)」である。
フィールド40bのサイズは1バイトである。フィールド40bには、プロセッサID(PID)が格納される。PIDは、ストレージシステム内でCMを一意に識別する識別子である。PIDには、例えば「255(10進数)」〜「0000(10進数)」のいずれかの値が設定される。
フィールド40cのサイズは1バイトである。フィールド40cには、シーケンスID(SID)が格納される。SIDは、制御パケットを送信するCMによってパケットに割り振られる番号である。SIDとしては、例えばメモリアドレスやコマンド種別などに基づいて、「255(10進数)」〜「0000(10進数)」のいずれかの値が設定される。
フィールド40dのサイズは1バイトである。フィールド40dには、CPDの値が設定される。
フィールド40eのサイズは1バイトである。フィールド40eには、データ保護用に、CPDのCRC(Cyclic Redundancy Check)コード(CRC#0)が格納される。CRCコードは、例えばCRC−8−ATM(Asynchronous Transfer Mode)と呼ばれる多項式によって算出される値である。
フィールド40fのサイズは1バイトである。フィールド40fには、転送段数設定値(TID_SET)が格納される。転送段数設定値は、送信元のCMから送信先のCMまでのCM間転送の段数の指定値である。例えば、CM110がマネジメントケーブル21で直接接続されたCM420へ制御パケットを転送する場合の段数は「1」である。また、CM110が、CM420を経由して、CM420と同じCE内の他のCM410へ制御パケットを転送する場合の段数は「2」である。
フィールド40gのサイズは1バイトである。フィールド40gには、CM間の転送制御設定値(TID_CNT)が格納される。TID_CNTは、転送現状値を加算しながら転送(加算転送)するのか、減算しながら転送(減算転送)するのかを指定する情報、あるいはターゲットCM(宛先のCM)を特定する情報である。ターゲットCMを特定する情報としては、例えばマスタとなっているCMのマスタのレベルを指定する番号(マスタCM番号)を用いることができる。
フィールド40hのサイズは1バイトである。フィールド40hには、データ保護用に、転送段数設定値(TID_SET)のCRCコード(CRC#1)が格納される。CRCコードは、例えばCRC−8−ATMによって算出される値である。
フィールド40iのサイズは1バイトである。フィールド40iには、転送現状値(TID_VAL)が格納される。加算転送の場合、転送現状値の初期値は「00」(16進数)で、CM間で転送されるごとに1ずつカウントアップされる。減算転送の場合、転送現状値の初期値は転送段数設定値であり、CM間で転送されるごとに1ずつカウントダウンされる。
フィールド40jのサイズは4バイトである。フィールド40jはペイロードである。フィールド40jには、メッセージ、または制御データが格納される。
フィールド40kのサイズは1バイトである。フィールド40kには、データ保護用に、PIDのCRCコード(CRC#2)が格納される。CRCコードは、例えばCRC−8−ATMによって算出される値である。
フィールド40lのサイズは4ビットである。フィールド40lには、EOF(End Of Frame)ヘッダが格納される。EOFヘッダは、パケットの終わりを示す所定値である。例えばEOFヘッダの値は、「0000(2進数)」である。
以上のようなフォーマットの制御パケット40により、マスタとなったCM間での制御用の通信が行われる。図11および図12に、「マスタ1」〜「マスタ4」の各CMが送信する制御パケット内の主要なデータの例を示す。図11は、「マスタ1」と「マスタ2」との制御パケット内のデータ例を示す図である。図12は、「マスタ3」と「マスタ4」との制御パケット内のデータ例を示す図である。
図11,図12に示すように、「マスタ1」となったCMが送信する制御パケットのPIDは、「0x01」である。「マスタ2」となったCMが送信する制御パケットのPIDは、「0x02」である。「マスタ3」となったCMが送信する制御パケットのPIDは、「0x03」である。「マスタ4」となったCMが送信する制御パケットのPIDは、「0x04」である。
SIDとしては、データ、マスタ通知通信、WatchDog通信などがある。WatchDog通信とは、正常に動作していることを示す信号の通信である。マスタとなったCMがWatchDog通信により、定期的に信号を他のCMに送信することで、他のCMが正常に動作していることを認識できる。
このように、各FPGA115,125,215,225,315,325,415,425は、受信したCPDパケット内のCPDと、CPDパケットを受信したマネジメントポートのCPDとを照合することで、マスタになるか否かを決定できる。
なお、図2の例では、4台のCE100,200,300,400が示されているが、ストレージシステムの運用開始時には2台のCE100,200で運用し、その後の負荷の上昇に応じて、スケールアウトを行うこともできる。CEが2台であっても、マネジメントケーブルの接続方法、およびマスタの決定方法は、CEが4台の場合と同じである。
図13は、2台のCEの接続例を示す図である。図13の例では、CE100のCM番号「0」のCMのポート番号「0」のマネジメントポートと、CE200のCM番号「1」のCMのポート番号「1」のマネジメントポートとが、マネジメントケーブル51で接続されている。CE100のCM番号「0」のCMのポート番号「1」のマネジメントポートと、CE200のCM番号「1」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブル52で接続されている。CE100のCM番号「1」のCMのポート番号「0」のマネジメントポートと、CE200のCM番号「0」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブル53で接続されている。CE100のCM番号「1」のCMのポート番号「1」のマネジメントポートと、CE200のCM番号「0」のCMのポート番号「1」のマネジメントポートとが、マネジメントケーブル54で接続されている。
このように接続することで、CE100のCM番号「0」のCMが「マスタ1」、CE200のCM番号「1」のCMが「マスタ2」、CE100のCM番号「1」のCMが「マスタ3」、CE200のCM番号「0」のCMが「マスタ4」となる。
次に、図13のような接続状態のときの、各CM110,120,210,220のDC−ONの手順について説明する。
図14は、DC−ONの手順を示すシーケンス図の前半である。図14の例では、CE200に対して、DC−ONを指示する操作が行われたものとする。このとき、CE200内のCM番号「0」のCM210内のFPGA215が、DC−ONの指示を受け付ける(ステップS111)。FPGA215は、ポート番号「0」のマネジメントポートから、DC-ONstartパケットを送信する(ステップS112)。送信されたDC-ONstartパケットは、CM120内のFPGA125で受信される。
DC-ONstartパケットを受信したFPGA125は、CM210にCompletion応答を送信する(ステップS113)。さらにFPGA125は、同じCE100内の他系のCM110に、CE内通信でDC-ONstartパケットを送信する(ステップS114)。
DC-ONstartパケットを受信したCM110内のFPGA115は、CM120にCompletion応答を送信する(ステップS115)。さらにFPGA115は、ポート番号「1」のマネジメントポートから、DC-ONstartパケットを送信する(ステップS116)。送信されたDC-ONstartパケットは、CM220内のFPGA225で受信される。
DC-ONstartパケットを受信したFPGA225は、CM110にCompletion応答を送信する(ステップS117)。さらにFPGA225は、同じCE200内の他系のCM210に、CE内通信でDC-ONstartパケットを送信する(ステップS118)。
DC-ONstartパケットを受信したCM210内のFPGA215は、CM220にCompletion応答を送信する(ステップS119)。FPGA215は、DC-ONstartパケットを受信したことにより、構成されている全CMのDC−ON指示が完了したと判定する。
図15は、DC−ONの手順を示すシーケンス図の後半である。全CMのDC−ON指示が完了したと判定したFPGA215は、ポート番号「0」のマネジメントポートから、DC-ONendパケットを送信する(ステップS121)。送信されたDC-ONendパケットは、CM120内のFPGA125で受信される。
DC-ONendパケットを受信したFPGA125は、CM210にCompletion応答を送信する(ステップS122)。さらにFPGA125は、同じCE100内の他系のCM110に、CE内通信でDC-ONendパケットを送信する(ステップS123)。
DC-ONendパケットを受信したCM110内のFPGA115は、CM120にCompletion応答を送信する(ステップS124)。さらにFPGA115は、ポート番号「1」のマネジメントポートから、DC-ONendパケットを送信する(ステップS125)。送信されたDC-ONendパケットは、CM220内のFPGA225で受信される。
DC-ONendパケットを受信したFPGA225は、CM110にCompletion応答を送信する(ステップS126)。さらにFPGA225は、同じCE200内の他系のCM210に、CE内通信でDC-ONendパケットを送信する(ステップS127)。
DC-ONendパケットを受信したCM210内のFPGA215は、CM220にCompletion応答を送信する(ステップS128)。
これにより各CM110,120,210,220へのDC−ON処理が完了する。DC−ON処理が完了すると、マスタ決定処理が開始される。以下、図16〜図18を参照して、マスタ決定処理の手順について詳細に説明する。
図16は、マスタ決定処理の手順を示すシーケンス図(1/3)である。各CE100,200内のCM番号「0」のCM110,210のFPGA115,215は、それぞれCPDパケットを、ポート番号「0」、「1」の両方のマネジメントポートから送信する(ステップS211,S212)。FPGA115から送信されたCPDパケットは、CM220内のFPGA225で受信される。FPGA215から送信されたCPDパケットは、CM120内のFPGA125で受信される。
CPDパケットを受信したFPGA225は、CM110にCompletion応答を送信する(ステップS213)。同様に、CPDパケットを受信したFPGA125は、CM210にCompletion応答を送信する(ステップS214)。また、CPDパケットを受信した各FPGA125,225は、それぞれ、同じCE100,200内の他系のCM110,210に、Completion応答を送信する(ステップS215,S216)。
次に、各CE100,200内のCM番号「1」のCM120,220のFPGA125,225は、それぞれCPDパケットを、ポート番号「0」、「1」の両方のマネジメントポートから送信する(ステップS217,S218)。FPGA125から送信されたCPDパケットは、CM210内のFPGA215で受信される。FPGA225から送信されたCPDパケットは、CM110内のFPGA115で受信される。
CPDパケットを受信したFPGA115は、CM220にCompletion応答を送信する(ステップS219)。同様に、CPDパケットを受信したFPGA215は、CM120にCompletion応答を送信する(ステップS220)。また、CPDパケットを受信した各FPGA115,215は、それぞれ、同じCE100,200内の他系のCM120,220に、Completion応答を送信する(ステップS221,S222)。
各FPGA115,125,215,225は、CPDパケット送信のCompletion応答が確認できたタイミングで、CPDに基づくマスタ判定を行い、「マスタ1」または「マスタ2」になるか否かを判定する(ステップS223〜S226)。図16の例では、FPGA115において、CM110が「マスタ1」になると判定されている。またFPGA225において、CM220が「マスタ2」になると判定されている。
「マスタ1」および「マスタ2」が決定されると、各CMが「マスタ1」のCMまでのホップ数を把握するために、「マスタ1」となったCMの通知処理が行われる。以下に、マスタ決定処理のうちの、CM通知処理移行の処理を説明する。
図17は、マスタ決定処理の手順を示すシーケンス図(2/3)である。「マスタ1」となったCMの通知処理は、「マスタ1」となったCM110のFPGA115が有する2つのマネジメントポートそれぞれのルートで行われる。
まず「マスタ1」となったCM110のFPGA115は、ポート番号「0」のマネジメントポート115aから、マスタ1決定通知パケットを送信する(ステップS241)。FPGA115から送信されたマスタ1決定通知パケットは、CM220内のFPGA225で受信される。マスタ1決定通知パケットは、例えばTID_CNTを加算転送とする。これによりマスタ1決定通知パケットは、CMで中継されるごとに、TID_VALの値が1ずつカウントアップされる。またマスタ1決定通知パケットを受信した各CM内のFPGAは、受信したマスタ1決定通知パケットのTID_VALに基づいて、「マスタ1」のCMまでのホップ数を把握する。
マスタ1決定通知パケットを受信したFPGA225は、CM110にCompletion応答を送信する(ステップS242)。さらにFPGA225は、同じCE200内の他系のCM210に、CE内通信でマスタ1決定通知パケットを送信する(ステップS243)。
マスタ1決定通知パケットを受信したCM210のFPGA215は、CM220にCompletion応答を送信する(ステップS244)。またFPGA215は、ポート番号「1」のマネジメントポート215bから、マスタ1決定通知パケットを送信する(ステップS245)。FPGA215から送信されたマスタ1決定通知パケットは、CM120内のFPGA125で受信される。
マスタ1決定通知パケットを受信したFPGA125は、CM210にCompletion応答を送信する(ステップS246)。さらにFPGA125は、同じCE100内の他系のCM110に、CE内通信でマスタ1決定通知パケットを送信する(ステップS247)。
マスタ1決定通知パケットを受信したCM110のFPGA115は、CM120にCompletion応答を送信する(ステップS248)。
FPGA115は、CM120からマスタ1決定通知を受信したことにより、ポート番号「0」のマネジメントポート115aを経由するルートでの通知が完了したものと判断する。FPGA115は、ステップS241でのマスタ1決定通知の送信から所定の時間を経過しても、CM120からマスタ1決定通知を受信できない場合は、受信できるまで、ステップS241の処理を繰り返し実行する。
図18は、マスタ決定処理の手順を示すシーケンス図(3/3)である。CM110のFPGA115は、ポート番号「1」のマネジメントポート115bから、マスタ1決定通知パケットを送信する(ステップS251)。FPGA115から送信されたマスタ1決定通知パケットは、CM220内のFPGA225で受信される。
マスタ1決定通知パケットを受信したFPGA225は、CM110にCompletion応答を送信する(ステップS252)。さらにFPGA225は、同じCE200内の他系のCM210に、CE内通信でマスタ1決定通知パケットを送信する(ステップS253)。
マスタ1決定通知パケットを受信したCM210のFPGA215は、CM220にCompletion応答を送信する(ステップS254)。またFPGA215は、ポート番号「0」のマネジメントポート215aから、マスタ1決定通知パケットを送信する(ステップS255)。FPGA215から送信されたマスタ1決定通知パケットは、CM120内のFPGA125で受信される。
マスタ1決定通知パケットを受信したFPGA125は、CM210にCompletion応答を送信する(ステップS256)。さらにFPGA125は、同じCE100内の他系のCM110に、CE内通信でマスタ1決定通知パケットを送信する(ステップS257)。
マスタ1決定通知パケットを受信したCM110のFPGA115は、CM120にCompletion応答を送信する(ステップS258)。
FPGA115は、CM120からマスタ1決定通知を受信したことにより、ポート番号「1」のマネジメントポート115bを経由するルートでの通知が完了したものと判断する。FPGA115は、ステップS251でのマスタ1決定通知の送信から所定の時間を経過しても、CM120からマスタ1決定通知を受信できない場合は、受信できるまでステップS251の処理を繰り返し実行する。
2つのルートによるマスタ1決定通知が完了したとき、「マスタ2」となったCM220のFPGA225は、受信したマスタ1決定通知パケットのTID_VALにより、CM220が、「マスタ1」のCM110から各ルートの何ホップ目になるのを把握できる。そこで、CM220のFPGA225は、「マスタ1」のCM110に対して、マスタ2ルート通知を送信する(ステップS259)。マスタ2ルート通知は、例えば、CM110までのホップ数がTID_SETに設定され、TID_CNTでは減算転送が指定される。「マスタ1」のCM110のFPGA115は、受信したマスタ2ルート通知のTID_SETの値を参照し、「マスタ2」のCM220までのホップ数を認識する。そして、マスタ2ルート通知を受信したCM110のFPGA115は、CM220までのホップ数に基づいて、CM220にCompletion応答を送信する(ステップS260)。
次にCM110のFPGA115は、同じCE100内の他のCM120に対して、CM120が「マスタ3」になることを示すマスタ3決定通知を送信する(ステップS261)。マスタ3決定通知を受信したCM120のFPGA125は、CM110にCompletion応答を送信する(ステップS262)。
またCM220のFPGA225は、同じCE200内の他のCM210に対して、CM210が「マスタ4」になることを示すマスタ4決定通知を送信する(ステップS263)。マスタ4決定通知を受信したCM210のFPGA215は、CM220にCompletion応答を送信する(ステップS264)。
このようにして、各CM110,120,210,220の連携動作により、「マスタ1」〜「マスタ4」の各マスタとなるCMが決定される。しかもCM110,120,210,220内のFPGA115,125,215,225によってマスタ決定処理が実行できるため、他のCMのプロセッサ(ファームウェアに基づくプロセッサの処理)の介在なしに、マスタを決定できる。
「マスタ1」となったCM110は、他のCM120,210,220を管理する。例えばCM110は、他のCM120,210,220から動作ログを採取する。また「マスタ1」〜「マスタ4」となった各CM110,120,210,220は、それぞれ、他のいずれかのマスタのCMを監視し、監視対象のCMの故障に備える。
図19は、監視対象の一例を示す図である。第2の実施の形態では、例えば「マスタ1」のCMは、「マスタ2」のCMの動作を監視する。「マスタ2」のCMは、「マスタ1」のCMの動作を監視する。「マスタ3」のCMは、「マスタ1」のCMの動作を監視する。「マスタ4」のCMは、「マスタ2」のCMの動作を監視する。
CMの監視は、例えばWatchDog通信によって行われる。この場合、監視しているCMが監視対象のCMとの間で、WatchDog通信を行う。例えば監視しているCMは、監視対象のCMに対して、定期的に生存確認要求を送信する。他のCMを監視しているCMは、監視対象のCMからの生存確認要求に対する応答が一定期間以上受信できない場合、所定回数だけ生存確認要求を再送する。所定回数だけ生存確認要求を再送しても応答を受信できない場合、監視しているCMは、監視対象のCMに異常が発生したと判断する。
また他のCMからの監視対象となっているCMのマスタレベルが、監視しているCMより上の場合、監視対象となっているCMは、ストレージシステム全体の動作状態に関する情報(システム情報)を、監視しているCMにミラーリングによって配信する。例えば「マスタ1」のCMでは、そのCMが集約したシステム情報を、そのCM内のFPGAが、CMのプロセッサの介在なしに、「マスタ2」のCMと「マスタ3」のCMとに同時に配信する。「マスタ1」のCMからシステム情報を受信した「マスタ2」のCMでは、そのCM内のFPGAが、CMのプロセッサの介在なしに、受信したシステム情報を「マスタ4」のCMに配信する。
このように、システム情報をミラーリングで配信しておくことで、マスタレベルが上位のCMが故障したとき、そのCMを監視している、マスタレベルが下位のCMが、フェイルオーバ処理によって、上位のマスタレベルに移行することができる。なお、故障したCMは、いずれのレベルのマスタでもなくなる。以下、マスタではなくなることを「degrade」と称する。
図20は、マスタCM故障時のフェイルオーバの例を示す図である。例えば、「マスタ1」のCMが故障によりdegradeした場合、「マスタ2」のCMがフェイルオーバにより「マスタ1」に移行する。「マスタ3」のCMは、フェイルオーバにより「マスタ2」に移行する。「マスタ4」のCMは、フェイルオーバにより「マスタ3」に移行する。
「マスタ2」のCMが故障によりdegradeした場合、「マスタ4」のCMがフェイルオーバにより「マスタ2」に移行する。「マスタ3」および「マスタ4」のCMが故障によりdegradeした場合、他のCMのマスタのレベルの変更はない。
また、マスタとなっている4つのCMのうちの2つが同時に故障する場合も考えられる。この場合、正常に動作しているCMが、「マスタ1」と「マスタ2」となる。
図21は、2つのマスタCM故障時のフェイルオーバの例を示す図である。例えば「マスタ1」のCMと「マスタ3」のCMとが同時に故障し、共にdegradeした場合、「マスタ2」のCMがフェイルオーバにより「マスタ1」に移行する。「マスタ4」のCMは、フェイルオーバにより「マスタ2」に移行する。「マスタ2」のCMと「マスタ4」のCMとが同時に故障し、共にdegradeした場合、「マスタ3」のCMがフェイルオーバにより「マスタ2」に移行する。「マスタ1」のCMと「マスタ2」のCMとが同時に故障し、共にdegradeした場合、「マスタ3」のCMがフェイルオーバにより「マスタ1」に移行する。「マスタ4」のCMは、フェイルオーバにより「マスタ2」に移行する。「マスタ3」のCMと「マスタ4」のCMとが同時に故障し、共にdegradeした場合、フェイルオーバは行われない。
以下、図13に示すような接続状態の場合を例に採り、マスタとなるCM間での監視、システム情報のミラーリング、および故障時のフェイルオーバ処理について、詳細に説明する。
図22は、マスタとなるCM間の監視処理の一例を示すシーケンス図である。「マスタ1」のCM110内のFPGA115は、「マスタ2」の生存を確認するための生存確認要求を、「マスタ2」のCM220に送信する(ステップS311)。FPGA115から送信された生存確認要求は、CM220内のFPGA225で受信される。生存確認要求を受信したFPGA225は、CM110にCompletion応答を送信する(ステップS312)。
「マスタ2」のCM220内のFPGA225は、「マスタ1」の生存を確認するための生存確認要求を、「マスタ1」のCM110に送信する(ステップS313)。FPGA225から送信された生存確認要求は、CM110内のFPGA115で受信される。生存確認要求を受信したFPGA115は、CM220にCompletion応答を送信する(ステップS314)。
FPGA125は、「マスタ1」の生存を確認するための生存確認要求を、「マスタ1」のCM110に送信する(ステップS315)。FPGA125から送信された生存確認要求は、CM110内のFPGA115で受信される。生存確認要求を受信したFPGA115は、CM120にCompletion応答を送信する(ステップS316)。
FPGA215は、「マスタ2」が生存していることを示す生存確認要求を、「マスタ2」のCM220に送信する(ステップS317)。FPGA215から送信された生存確認要求は、CM220内のFPGA225で受信される。生存確認要求を受信したFPGA225は、CM210にCompletion応答を送信する(ステップS318)。
「マスタ1」のCM110内のFPGA115は、生存確認要求の送信、およびCompletion応答の受信によるWatchDog通信が問題なく完了すると、CM110内のプロセッサへ、生存確認完了を通知する(ステップS319)。「マスタ2」のCM220内のFPGA225は、WatchDog通信が問題なく完了すると、CM220内のプロセッサへ、生存確認完了を通知する(ステップS320)。
図23は、システム情報のミラーリング処理の一例を示すシーケンス図である。WatchDog通信が完了すると、CM110のプロセッサからFPGA115に、システム情報のミラー配置の指示が出される。この指示に応じて、FPGA115は、CM110のプロセッサがストレージシステム全体から収集したシステム情報を、プロセッサから取得する(ステップS331)。取得したシステム情報は、一的に記憶部115dに格納される。
FPGA115は、取得したシステム情報を、「マスタ2」のCM220と「マスタ3」のCMとに送信する(ステップS332,S333)。FPGA115から送信されたシステム情報は、CM220内のFPGA225とCM120内のFPGA125とで受信される。FPGA225が受信したシステム情報はCM220のプロセッサに送信され、そのプロセッサにより管理される。FPGA125が受信したシステム情報はCM120のプロセッサに送信され、そのプロセッサにより管理される。システム情報を受信したFPGA225は、CM110にCompletion応答を送信する(ステップS334)。また、システム情報を受信したFPGA125は、CM110にCompletion応答を送信する(ステップS335)。
その後、CM220のプロセッサからFPGA225に、システム情報のミラー配置の指示が出される。この指示に応じて、FPGA225は、CM220のプロセッサが管理するシステム情報を、プロセッサから取得する(ステップS336)。FPGA225は、取得したシステム情報を、「マスタ4」のCM210に送信する(ステップS337)。FPGA225から送信されたシステム情報は、CM210内のFPGA215で受信される。FPGA215が受信したシステム情報はCM210のプロセッサに送信され、そのプロセッサにより管理される。システム情報を受信したFPGA215は、CM220にCompletion応答を送信する(ステップS338)。
FPGA225は、「マスタ1」のCM110へ、システム情報の転送完了通知を送信する(ステップS339)。転送完了通知は、CM110内のFPGA115で受信される。転送完了通知を受信したFPGA115は、CM220にCompletion応答を送信する(ステップS340)。
そして、CM110のFPGA115が、CM110のプロセッサへ、システム情報の転送が完了したことを通知する(ステップS341)。
このようにして、FPGA115,125,215,225によるシステム情報の転送が、CM110,120,210,220内のプロセッサを介さずに実施される。システム情報が各CM110,120,210,220に予め渡されていることで、いずれかのCMが故障した場合に、迅速にフェイルオーバ処理を実施できる。
図24は、フェイルオーバ処理の手順の一例を示すシーケンス図である。図24には、「マスタ2」のCM220が故障した場合のフェイルオーバ処理の例を示している。なお、「マスタ1」のCM110と「マスタ2」のCM220とは、互いに監視し合っており、双方から生存確認要求が送信される。この場合、「マスタ1」のCM110内のFPGA115は、生存確認要求に対するCompletion応答がCM220から送られてこない場合に、CM220を故障と判定することができる。また、FPGA115は、CM220が定期的に送信するはずの生存確認要求が所定期間以上送られてこない場合にも、CM220を故障と判定することができる。図24では、Completion応答が送られてこないことによる故障検知例が示されている。
「マスタ1」のCM110内のFPGA115は、生存確認要求を、「マスタ2」のCM220と「マスタ3」のCM120とに送信する(ステップS351,S352)。CM120は正常に動作しているため、FPGA125からは、CM110にCompletion応答が送信される(ステップS353)。しかし、CM220は故障しており、CM110のFPGA115は、CM220からのCompletion応答を受信できない。
FPGA115は、生存確認要求を送信してから200ms経過してもCompletion応答を受信できない場合、生存確認要求の送信(2回目)を実行する(ステップS354)。再送信した生存確認要求に対してもCompletion応答を受信できない場合、生存確認要求を送信してから200ms経過後に、生存確認要求の送信(3回目)を実行する(ステップS355)。
3回目の生存確認要求の送信に対しても、Completion応答を受信できない場合、CM120に対して、「マスタ4」のCM210をターゲットCMとしたフェイルオーバ指示を送信する(ステップS356)。CM120のFPGA125は、CM210に対して、フェイルオーバ指示を転送する(ステップS357)。
フェイルオーバ指示を受信したCM210のFPGA215は、CM210のマスタレベルを「マスタ4」から「マスタ2」に変更する(ステップS358)。そしてFPGA215は、CM110をターゲットCMとするCompletion応答を、CM120に送信する(ステップS359)。CM120のFPGA125は、Completion応答をCM110に転送する(ステップS360)。
このようにして、「マスタ2」となったCMが故障しても、すぐにフェイルオーバが行われ、他のCMが故障したCMに変わって、ストレージシステム全体のCMの管理を実施することができる。
なお、マネジメントケーブルの接続に関する条件を満たす接続形態は、さまざまなものが考えられる。
図25は、CM間の接続形態の変形例を示す図である。図25の例では、3台のCE100,200,300が設けられている。
CE100のCM番号「0」のCMのポート番号「0」のマネジメントポートと、CE300のCM番号「1」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブル61で接続されている。CE100のCM番号「0」のCMのポート番号「1」のマネジメントポートと、CE200のCM番号「1」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブル62で接続されている。CE100のCM番号「1」のCMのポート番号「0」のマネジメントポートと、CE200のCM番号「0」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブル63で接続されている。CE100のCM番号「1」のCMのポート番号「1」のマネジメントポートと、CE300のCM番号「0」のCMのポート番号「0」のマネジメントポートとが、マネジメントケーブル64で接続されている。CE200のCM番号「0」のCMのポート番号「1」のマネジメントポートと、CE300のCM番号「1」のCMのポート番号「1」のマネジメントポートとが、マネジメントケーブル65で接続されている。CE200のCM番号「1」のCMのポート番号「1」のマネジメントポートと、CE300のCM番号「0」のCMのポート番号「1」のマネジメントポートとが、マネジメントケーブル66で接続されている。
この場合、CE100内のCM番号「0」のCM110が「マスタ1」となる。またCE100内のCM番号「1」のCM120が「マスタ2」となる。この場合、「マスタ1」のCM110と同じCE100内の他のCM120は、既に「マスタ2」である。そのため、そのCM120を「マスタ3」にすることができない。このような、マスタの競合が発生する場合、例えば、「マスタ1」のCM110のポート番号「0」のマネジメントポートを介して接続された他のCMを、「マスタ3」とする。図25の例では、CE300内のCM番号「1」のCM320が、「マスタ3」となる。「マスタ4」についても競合が発生している。この場合、「マスタ2」のCM120のポート番号「0」のマネジメントポートを介して接続された他のCMを、「マスタ4」とする。図25の例では、CE200内のCM番号「0」のCM210が、「マスタ4」となる。
このように、マネジメントケーブルの接続条件を満たしていれば、さまざまな接続形態が許容される。そして各CM内のFPGAがマネジメントケーブル経由で制御パケットを用いた通信を行うことで、DC−ON制御、マスタ決定、およびフェイルオーバを含む監視処理を実施することができる。
以下、CM110のFPGA115を例に採り、FPGA115が実行する処理を詳細に説明する。
図26は、FPGAが実施するDC−ON制御処理の手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS411]DC−ON制御部115eは、DC−ON指示が入力されたか否かを判断する。DC−ON指示が入力された場合、DC−ON制御部115eは、CM110に直流電源の供給を開始し、処理をステップS412に進める。DC−ON指示が入力されていなければ、処理がステップS416に進められる。
[ステップS412]DC−ON制御部115eは、DC−ONstartパケットを、マネジメントケーブルで接続された他のCE内のCMに送信する。DC−ON制御部115eは、DC−ONstartパケットに対するCompletion応答を受信すると、処理をステップS413に進める。
[ステップS413]DC−ON制御部115eは、DC−ONstartパケットを、同じCE100内の他のCM120から受信したか否かを判断する。DC−ONstartパケットを受信した場合、CM120にCompletion応答を送信し、処理をステップS414に進める。DC−ONstartパケットを受信していなければ、受信するまでステップS413の判断を繰り返す。
[ステップS414]DC−ON制御部115eは、DC−ONendパケットを、マネジメントケーブルで接続された他のCE内のCMに送信する。DC−ON制御部115eは、DC−ONendパケットに対するCompletion応答を受信すると、処理をステップS415に進める。
[ステップS415]DC−ON制御部115eは、DC−ONendパケットを、同じCE100内の他のCM120から受信したか否かを判断する。DC−ONendパケットを受信した場合、CM120にCompletion応答を送信し、処理を終了する。DC−ONendパケットを受信していなければ、受信するまでステップS415の処理が繰り返される。
[ステップS416]DC−ON制御部115eは、他のCMからDC−ONstartパケットを受信したか否かを判断する。DC−ONstartパケットを受信した場合、DC−ONstartパケットの送信元のCMにCompletion応答を送信すると共に、DC−ON制御部115eは、CM110に直流電源の供給を開始し、処理をステップS417に進める。DC−ONstartパケットを受信していなければ、処理がステップS411に進められる。
[ステップS417]DC−ON制御部115eは、受信したDC−ONstartパケットの送信元とは別のCMに、DC−ONstartパケットを送信する。DC−ON制御部115eは、DC−ONstartパケットに対するCompletion応答を受信すると、処理をステップS418に進める。
[ステップS418]DC−ON制御部115eは、他のCMからDC−ONendパケットを受信したか否かを判断する。DC−ONendパケットを受信した場合、DC−ONendパケットの送信元のCMにCompletion応答を送信し、処理をステップS419に進める。DC−ONendパケットを受信していなければ、受信するまでステップS418の処理が繰り返される。
[ステップS419]DC−ON制御部115eは、受信したDC−ONendパケットの送信元とは別のCMに、DC−ONendパケットを送信する。DC−ON制御部115eは、DC−ONendパケットに対するCompletion応答を受信すると、処理を終了する。
このようにして、FPGA115によってCM110のDC−ONが制御される。
次に、FPGA115によるマスタ決定処理について詳細に説明する。
図27は、FPGAが実施するマスタ判定処理の手順の一例を示すフローチャートの前半である。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS431]マスタ決定部115fは、2つのマネジメントポートそれぞれから、他のCM宛てのCPDパケットを送信する。マスタ決定部115fは、CPDパケットに対するCompletion応答を受信すると、処理をステップS432に進める。
[ステップS432]マスタ決定部115fは、他のCMからCPDパケットを受信したか否かを判断する。マスタ決定部115fは、CPDパケットを受信した場合、CPDパケットの送信元のCMにCompletion応答を送信し、処理をステップS433に進める。CPDパケットを受信していない場合、ステップS432の処理が繰り返される。
[ステップS433]マスタ決定部115fは、マスタ1,2判定処理を行う。この処理の詳細は後述する(図29参照)。
[ステップS434]マスタ決定部115fは、マスタ1,2判定処理により、「マスタ1」と判定されたか否かを判断する。「マスタ1」と判定された場合、処理がステップS435に進められる。「マスタ1」と判定されていない場合、処理がステップS451(図28参照)に進められる。
[ステップS435]マスタ決定部115fは、CM110をマスタレベル「マスタ1」のマスタに設定する。
[ステップS436]マスタ決定部115fは、FPGA115の2つのマネジメントポート115a,115bそれぞれからマスタ1決定通知(2ルート分)を送信する。マスタ決定部115fは、送信した2ルート分のマスタ1決定通知それぞれに対するCompletion応答を受信すると、処理をステップS437に進める。
[ステップS437]マスタ決定部115fは、他のCMから、2ルート分のマスタ1決定通知を受信したか否かを判断する。マスタ決定部115fは、マスタ1決定通知を受信するごとに、マスタ1決定通知の送信元のCMにCompletion応答を送信する。そして、2ルート分のマスタ1決定通知を受信した場合、処理がステップS438に進められる。2ルート分のマスタ1決定通知を受信していなければ、ステップS437の処理が繰り返される。
[ステップS438]マスタ決定部115fは、他のCMからマスタ2ルート通知を受信したか否かを判断する。マスタ2ルート通知を受信した場合、処理がステップS439に進められる。マスタ2ルート通知を受信していなければ、ステップS438の処理が繰り返される。
[ステップS439]マスタ決定部115fは、「マスタ2」となるCMと「マスタ3」にする第1候補であるCMとが競合するか否かを判断する。例えばCM110と同じCE100内の他のCM120が「マスタ2」となる場合、競合が発生する。競合が発生しなければ、処理がステップS440に進められる。競合が発生する場合、処理がステップS441に進められる。
[ステップS440]マスタ決定部115fは、CM110と同一CE100内の他のCM120を「マスタ3」に決定する。その後、処理がステップS442に進められる。
[ステップS441]マスタ決定部115fは、FPGA115のポート番号「0」のマネジメントポート115aを介して接続されているCMを、「マスタ3」に決定する。
[ステップS442]マスタ決定部115fは,「マスタ3」に決定したCMに対して、マスタ3決定通知を送信する。マスタ決定部115fは、マスタ3決定通知に対するCompletion応答を受信すると、処理を終了する。
図28は、FPGAが実施するマスタ判定処理の手順の一例を示すフローチャートの後半である。以下、図28に示す処理をステップ番号に沿って説明する。
[ステップS451]マスタ決定部115fは、マスタ1,2判定処理により、「マスタ2」と判定されたか否かを判断する。「マスタ2」と判定された場合、処理がステップS452に進められる。「マスタ2」と判定されていない場合、処理がステップS459に進められる。
[ステップS452]マスタ決定部115fは、CM110をマスタレベル「マスタ2」のマスタに設定する。
[ステップS453]マスタ決定部115fは、他のCMから、マスタ1決定通知を受信したか否かを判断する。マスタ1決定通知は、異なるルートで2回受信する。マスタ決定部115fは、マスタ1決定通知を受信した場合、マスタ1決定通知の送信元のCMにCompletion応答を送信し、処理をステップS454に進める。ステップS453の処理は、2ルート分のマスタ1決定通知を受信するまで繰り返される。
[ステップS45]マスタ決定部115fは、マスタ1決定通知を受信した場合、そのマスタ1決定通知の送信元のCMとは別のCMに、マスタ1決定通知を送信する。マスタ決定部115fは、2ルート分のマスタ1決定通知の送信、およびマスタ1決定通知に対するCompletion応答の受信が完了すると、処理をステップS455に進める。
[ステップS45]マスタ決定部115fは、「マスタ1」となるCMと「マスタ4」にする第1候補であるCMとが競合するか否かを判断する。例えばCM110と同じCE100内の他のCM120が「マスタ1」となる場合、競合が発生する。競合が発生しなければ、処理がステップS456に進められる。競合が発生する場合、処理がステップS457に進められる。
[ステップS456]マスタ決定部115fは、CM110と同一CE100内の他のCM120を「マスタ4」に決定する。その後、処理がステップS458に進められる。
[ステップS457]マスタ決定部115fは、FPGA115のポート番号「0」のマネジメントポート115aを介して接続されているCMを、「マスタ4」に決定する。
[ステップS458]マスタ決定部115fは,「マスタ4」に決定したCMに対して、マスタ4決定通知を送信する。マスタ決定部115fは、マスタ4決定通知に対するCompletion応答を受信すると、処理を終了する。
[ステップS459]マスタ決定部115fは、マスタ3決定通知を受信したか否かを判断する。マスタ決定部115fは、マスタ3決定通知を受信した場合、マスタ3決定通知の送信元のCMにCompletion応答を送信し、処理をステップS460に進める。マスタ3決定通知を受信していなければ、処理がステップS461に進められる。
[ステップS460]マスタ決定部115fは、CM110をマスタレベル「マスタ3」のマスタに設定し、処理を終了する。
[ステップS461]マスタ決定部115fは、マスタ4決定通知を受信したか否かを判断する。マスタ決定部115fは、マスタ4決定通知を受信した場合、マスタ4決定通知の送信元のCMにCompletion応答を送信し、処理をステップS462に進める。マスタ4決定通知を受信していなければ、処理がステップS463に進められる。
[ステップS462]マスタ決定部115fは、CM110をマスタレベル「マスタ4」のマスタに設定し、処理を終了する。
[ステップS463]マスタ決定部115fは、マスタ3決定通知およびマスタ4決定通知の何れも受信せずに、マスタ決定処理が開始されてから所定時間が経過したか否かを判断する。所定時間以内に、マスタ3決定通知またはマスタ4決定通知を受信できなかった場合、マスタ決定部115fは、CM110がマスタにならないと判断し、処理を終了する。マスタ決定部115fは、マスタ決定処理が開始されてから所定時間が経過していなければ、処理をステップS459に進め、マスタ3決定通知またはマスタ4決定通知が送られてくるのを待つ。
次に、マスタ1,2判定処理の詳細について説明する。
図29は、FPGAが実施するマスタ1,2判定処理の手順の一例を示すフローチャートである。以下、図29に示す処理を、ステップ番号に沿って説明する。
[ステップS471]FPGA115のマスタ決定部115fは、CPDパケットを受信すると、CPDパケット内のCPDの値が「000」か否かを判断する。CPDの値が「000」であれば、処理がステップS472に進められる。CPDの値が「000」でなければ、処理がステップS474に進められる。
[ステップS472]マスタ決定部115fは、CPDパケットを受信したマネジメントポートのCPDが「111」か否かを判断する。マネジメントポートのCPDが「111」であれば、処理がステップS473に進められる。マネジメントポートのCPDが「111」でなければ、処理がステップS474に進められる。
[ステップS473]マスタ決定部115fは、CM110がマスタレベル「マスタ2」のマスタになると判定し、処理を終了する。
[ステップS474]マスタ決定部115fは、受信したCPDパケット内のCPDの値が「100」か否かを判断する。CPDの値が「100」であれば、処理がステップS475に進められる。CPDの値が「100」でなければ、処理が終了する。
[ステップS475]マスタ決定部115fは、CPDパケットを受信したマネジメントポートのCPDが「011」か否かを判断する。マネジメントポートのCPDが「011」であれば、処理がステップS476に進められる。マネジメントポートのCPDが「011」でなければ、処理が終了する。
[ステップS476]マスタ決定部115fは、CM110がマスタレベル「マスタ1」のマスタになると判定し、処理を終了する。
以上のようにして、いずれかのレベルのマスタになるのか否かが決定される。CM110がマスタになった場合、CM110内のFPGA115は、監視対象のCMの動作を監視する。
図30は、FPGAが実施する監視処理の手順の一例を示すフローチャートである。以下、図30に示す処理を、ステップ番号に沿って説明する。なお、図30に示す処理は、定期的に実行される。
[ステップS481]監視部115gは、監視先のCMに対して生存確認要求を送信する。
[ステップS482]監視部115gは、生存確認要求の送信先から、Completion応答を受信したか否かを判断する。Completion応答を受信した場合、処理がステップS485に進められる。所定期間(例えば200ms)以内にCompletion応答を受信しなかった場合、処理がステップS483に進められる。
[ステップS483]監視部115gは、生存確認要求を3回送信したか否かを判断する。生存確認要求の送信が3回に満たなければ、処理がステップS481に進められる。生存確認要求が既に3回送信されていれば、処理がステップS484に進められる。
[ステップS484]監視部115gは、監視対象のCMに故障が発生したものと判断し、監視対象のCMのマスタレベルと、自己のCM110のマスタレベルとに応じたフェイルオーバ処理を行う。例えば監視対象のCMのマスタレベルが「マスタ1」であり、CM110のマスタレベルが「マスタ2」であれば、監視部115gは、CM110のマスタレベルを「マスタ1」に変更する。
[ステップS485]監視部115gは、CM110のプロセッサ111で管理されているシステム情報を取得する。例えば監視部115gは、RAM112またはSSD113の所定の領域からシステム情報を読み出し、記憶部115dに格納する。
[ステップS486]監視部115gは、CM110を監視対象としている他のCMに、システム情報を送信する。監視部115gは、送信したシステム情報に対するCompletion応答を受信すると、処理を終了する。
このようにして、CMへのDC−ON制御、マスタ決定、マスタCMの監視およびフェイルオーバを、ファームウェアに基づくプロセッサの処理を介在させずに、FPGAで実行することができる。
以上説明した第2の実施の形態によれば、スケールアウト型ストレージシステム設備の削減が可能となる。具体的には、2台のSVCが不要となることで、配置スペースの削減や装置価格削減が可能となる。さらに、「マスタ1」以外に「マスタ2」〜「マスタ4」を設け、CM管理機能に冗長性を持たせたことで、2台のSVCを不要としながらも、信頼性の高いCM管理が可能となる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1〜3 ストレージ装置
4a〜4f 通信ケーブル
5 マスタ条件
10a〜10c 筐体
11〜16 制御装置
11a,11b,12a,12b,13a,13b,14a,14b,15a,15b,16a,16b 通信ポート
11c〜16c 管理回路

Claims (6)

  1. ストレージ装置と、
    前記ストレージ装置を制御し、所定の管理処理の実行条件のうちの、前記管理処理を実行する実行装置に接続される通信ポートに関する隣接ポート条件を満たす第1の通信ポートを有し、かつ前記実行条件のうちの、前記実行装置に隣接する隣接装置に関する隣接装置条件を満たす第1の制御装置と、
    前記ストレージ装置を制御し、前記実行条件のうちの、前記隣接装置に接続される通信ポートに関する接続ポート条件を満たす第2の通信ポートを有し、かつ前記実行条件のうちの、前記実行装置に関する実行装置条件を満たしており、前記第2の通信ポートが前記第1の通信ポートに接続されたときに前記実行条件が満たされたと判定し、前記管理処理を実行する第2の制御装置と、
    前記第1の制御装置の前記第1の通信ポートと、前記第2の制御装置の前記第2の通信ポートとを接続する通信ケーブルと、
    を有するストレージシステム。
  2. 前記隣接ポート条件は、前記隣接装置内で通信ポートを識別するポート番号に関する条件であり、前記隣接装置条件は、前記隣接装置が実装された第1の筐体内で前記隣接装置を識別する識別番号に関する条件であり、前記接続ポート条件は、前記実行装置内で通信ポートを識別するポート番号に関する条件であり、前記実行装置条件は、前記実行装置が実装された第2の筐体内で前記実行装置を識別する識別番号に関する条件である、
    請求項1記載のストレージシステム。
  3. 前記第2の制御装置は、前記通信ケーブルを介して、前記第1の制御装置から、前記第1の通信ポートのポート番号と、前記第1の制御装置の装置番号とを含む制御情報を取得し、前記制御情報に基づいて、前記隣接ポート条件および前記隣接装置条件が満たされたと判定する、
    請求項2記載のストレージシステム。
  4. さらに、
    前記ストレージ装置を制御し、前記管理処理を実行する前記第2の制御装置の監視処理を実行する条件を示す監視実行条件のうちの、前記監視処理を実行する監視装置に接続される通信ポートに関する監視隣接ポート条件を満たす第3の通信ポートを有し、かつ前記監視実行条件のうちの、前記監視装置に隣接する監視隣接装置に関する監視隣接装置条件を満たす第3の制御装置と、
    前記ストレージ装置を制御し、前記監視実行条件のうちの、前記監視隣接装置に接続される通信ポートに関する監視接続ポート条件を満たす第4の通信ポートを有し、かつ前記監視実行条件のうちの、前記監視装置に関する監視装置条件を満たしており、前記第4の通信ポートが前記第3の通信ポートに接続されたときに前記監視実行条件が満たされたと判定し、前記監視処理を実行する第4の制御装置と、
    前記第3の制御装置の前記第3の通信ポートと、前記第4の制御装置の前記第4の通信ポートとを接続する監視装置接続通信ケーブルと、
    を有する請求項1乃至3のいずれかに記載のストレージシステム。
  5. 前記第4の制御装置は、前記第2の制御装置の監視により、前記第2の制御装置の故障を検知した場合、前記管理処理を実行する、
    請求項4記載のストレージシステム。
  6. ストレージ装置を制御する制御装置であって、
    管理処理を実行する実行装置に接続される通信ポートに関する隣接ポート条件、前記実行装置に隣接する隣接装置に関する隣接装置条件、前記隣接装置に接続される通信ポートに関する接続ポート条件、および前記実行装置に関する実行装置条件を含む、所定の管理処理の実行条件を記憶する記憶装置と、
    前記接続ポート条件を満たす第1の通信ポートを有し、前記制御装置が前記実行装置条件を満たし、前記第1の通信ポートが、前記隣接装置条件を満たす他の制御装置の前記隣接ポート条件を満たす第2の通信ポートに接続されたときに前記実行条件が満たされたと判定し、前記管理処理を実行する管理回路と、
    を有する制御装置。
JP2015223045A 2015-11-13 2015-11-13 ストレージシステム、および制御装置 Active JP6547600B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015223045A JP6547600B2 (ja) 2015-11-13 2015-11-13 ストレージシステム、および制御装置
US15/297,654 US10235045B2 (en) 2015-11-13 2016-10-19 Storage system and control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015223045A JP6547600B2 (ja) 2015-11-13 2015-11-13 ストレージシステム、および制御装置

Publications (2)

Publication Number Publication Date
JP2017091355A JP2017091355A (ja) 2017-05-25
JP6547600B2 true JP6547600B2 (ja) 2019-07-24

Family

ID=58691058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015223045A Active JP6547600B2 (ja) 2015-11-13 2015-11-13 ストレージシステム、および制御装置

Country Status (2)

Country Link
US (1) US10235045B2 (ja)
JP (1) JP6547600B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111025959B (zh) * 2019-11-20 2021-10-01 华为技术有限公司 一种数据管理的方法、装置、设备及智能汽车
JP7197545B2 (ja) * 2020-09-29 2022-12-27 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244642A (ja) 1994-03-04 1995-09-19 Sanyo Electric Co Ltd 並列処理計算機
EP0721162A2 (en) 1995-01-06 1996-07-10 Hewlett-Packard Company Mirrored memory dual controller disk storage system
US5553230A (en) * 1995-01-18 1996-09-03 Hewlett-Packard Company Identifying controller pairs in a dual controller disk array
JP4009434B2 (ja) * 2001-04-18 2007-11-14 株式会社日立製作所 磁気ディスク装置間結合装置
JP4319017B2 (ja) * 2003-12-02 2009-08-26 株式会社日立製作所 ストレージシステムの制御方法、ストレージシステム、及び記憶装置
JP4688514B2 (ja) * 2005-02-14 2011-05-25 株式会社日立製作所 ストレージ制御装置
JP4414399B2 (ja) * 2006-01-30 2010-02-10 富士通株式会社 ディスク制御装置
JP5115085B2 (ja) * 2006-10-27 2013-01-09 富士通株式会社 ネットワーク管理プログラム及びネットワーク管理装置
US8201020B2 (en) * 2009-11-12 2012-06-12 International Business Machines Corporation Method apparatus and system for a redundant and fault tolerant solid state disk

Also Published As

Publication number Publication date
US10235045B2 (en) 2019-03-19
US20170139598A1 (en) 2017-05-18
JP2017091355A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
US7814241B2 (en) Storage system with free ports where logical connections via physical paths connecting free ports are controlled
JP4869123B2 (ja) ストレージシステム
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
US9852096B2 (en) High speed serial link in-band lane fail over for RAS and power management
JP5363924B2 (ja) 単一sasエクスパンダの機能性を提供するために複数のsasエクスパンダを組み合わせる方法、及び、単一sasエクスパンダ
JP2007280258A (ja) 記憶制御装置
JP2008071209A (ja) ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法
US10027532B2 (en) Storage control apparatus and storage control method
TW201319824A (zh) 透過虛擬序列附接式小電腦系統介面擴展器分享的伺服器直接附接儲存器
JP2009540436A (ja) 障害を分離するsasエクスパンダ
JP2006195821A (ja) 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
JP2009266119A (ja) ストレージ装置及びデータ転送方法
US8099634B2 (en) Autonomic component service state management for a multiple function component
US9342418B2 (en) Storage system, storage control device and data transfer method
KR101437735B1 (ko) 정보 처리 장치 및 동작 상태 감시 방법
JP6547600B2 (ja) ストレージシステム、および制御装置
JP4509089B2 (ja) 仮想化制御装置及びデータ移行制御方法
EP3429128A1 (en) Hard drive operation method and hard drive manager
KR20050033060A (ko) 네트워크를 이용한 핫 스페어 구성 시스템 및 방법
KR102018225B1 (ko) 연결 방법
JP6244970B2 (ja) ストレージシステム、制御装置及び制御プログラム
JP4511455B2 (ja) ファイバーチャネルスイッチおよびそれを用いたコンピュータシステム
JP4483947B2 (ja) 入出力制御装置
US7958263B2 (en) Address reduction for data storage enclosures
JP5365747B2 (ja) 処理システム,通信装置および処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190515

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190610

R150 Certificate of patent or registration of utility model

Ref document number: 6547600

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150