JP5898790B2 - PCI−Express接続ソリッドステートドライブを適用したストレージ装置 - Google Patents

PCI−Express接続ソリッドステートドライブを適用したストレージ装置 Download PDF

Info

Publication number
JP5898790B2
JP5898790B2 JP2014558326A JP2014558326A JP5898790B2 JP 5898790 B2 JP5898790 B2 JP 5898790B2 JP 2014558326 A JP2014558326 A JP 2014558326A JP 2014558326 A JP2014558326 A JP 2014558326A JP 5898790 B2 JP5898790 B2 JP 5898790B2
Authority
JP
Japan
Prior art keywords
drive
switch
port
dpc
slot
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.)
Expired - Fee Related
Application number
JP2014558326A
Other languages
English (en)
Other versions
JPWO2014115257A1 (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.)
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
Application granted granted Critical
Publication of JP5898790B2 publication Critical patent/JP5898790B2/ja
Publication of JPWO2014115257A1 publication Critical patent/JPWO2014115257A1/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
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral 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/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
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3802Harddisk connected to a computer port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3804Memory card connected to a computer port directly or by means of a reader/writer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージ装置に係わり、特に、記憶媒体としてPCI-Express接続ソリッドステートドライブを適用したストレージ装置に関する。
ストレージ装置は、一般的に、ランダムアクセス可能な不揮発性記憶媒体を備える。ランダムアクセス可能な不揮発性記憶媒体は、例えば、磁気ディスクドライブ、光ディスクドライブ等である。また、現在主流のストレージ装置は、ハードディスクドライブ(HDD)を複数備える。
また、半導体技術の進歩に伴って、ストレージ装置の記憶媒体として使用可能な不揮発性半導体メモリが開発されている。このような不揮発性半導体メモリには、例えば、フラッシュメモリがある。フラッシュメモリは、リードオンリーメモリ(ROM)のように不揮発性でありながら、リードだけでなく、ランダムアクセスメモリのようにライトも可能な半導体メモリである。フラッシュメモリを記憶媒体とするソリッドステートドライブ(SSD)を備えるストレージ装置は、HDDのみを備えるストレージ装置に比べ、寿命、省電力、アクセス時間等に優れている。
ストレージ装置は、ストレージ装置に接続したホストシステム及びストレージ装置内の記憶媒体との間のデータ転送を制御するストレージコントローラを備える。ストレージコントローラは、ホストシステムを接続するフロントエンドインターフェース、記憶媒体として多数のドライブを接続するバックエンドインターフェース、ストレージ装置を制御するためのプロセッサ及びプロセッサに接続されたメモリ等を備える。また、プロセッサ、フロントエンドインターフェース及びバックエンドインターフェース等を接続するための通信ネットワークの標準規格として、「PCI-Express」(以下「PCIe」とも記す、何れも登録商標)が知られている。
従来のストレージ装置において、バックエンドインターフェースと複数のHDDは、例えば、Serial Attached SCSI(SAS)プロトコルによって接続される。また、SASインターフェースを備えるSSD(SAS-SSD)も、バックエンドネットインターフェースに接続される。
また最近、SSDの高性能化を目的として、ストレージコントローラにPCIeで接続するSSDが登場している。PCIeインターフェースを備えるPCIe接続SSD(PCIe-SSD)は、SASプロトコル変換オーバーヘッド無しにデータ転送を行えるので、SAS-SSDに比べてデータ転送の高速化が可能である。
さらに、SASインターフェースを備えるHDDとPCIe接続SSDのコネクタを共通化し、ストレージ装置内における両種ドライブの混載や、同じスロットに対するHDDとPCIe接続SSDの差し替えを可能にするフォームファクタが、規格化されている。
HDDをドライブエンクロージャのスロットから取り外す場合、ディスク媒体破損を避けるため、ディスク回転を停止させた後にスロットからHDDを取り外す必要があった。そのためドライブエンクロージャは、例えば、HDDを挿入する各スロットに対応させてHDDへの給電状態を示すLEDを備える。ストレージ装置のオペレーターは、LEDが給電停止を示しドライブの回転停止が確実になった場合に、スロットからHDDを取り外すことができる。
一方のPCIe接続SSDでは、非同期取り外しが検討されている。非同期取り外しとは、例えば、ストレージコントローラへの事前通知無しに、ドライブエンクロージャのスロットからPCIe接続SSDを取り外すことである。非同期取り外しは、突然の取り外しとも呼ばれる。
非特許文献1には、HDDとPCIe接続SSDの差し替えを可能にするフォームファクタ及びPCIe接続SSDの突然の取り外しに関する技術が開示されている。
また、非特許文献2及び非特許文献3には、PCIe接続SSDの非同期取り外しに関する技術が開示されている。
「Enterprise SSD Form Factor Version 1.0」、2011年発行、著者SSDForm Factor Working Group、第14頁及び第31頁〜38頁 「PCI-SIG ENGINEERING CHANGE NOTICE、Downstream Port Containment(DPC)」、2012年発行、著者PCI-SIG、第1頁〜20頁 「PCI-SIG ENGINEERING CHANGE NOTICE、Enhanced DPC(eDPC)」、2012年発行、著者PCI-SIG、第1頁〜34頁
非同期取り外しに際し、SSDへのデータ書き込みが進行中であった場合、そのSSDへのデータ書き込みは失敗するので障害発生となる。
また、非同期取り外しでは、SSDにおける障害発生と正常な取り外し処理の区別ができない。つまり、SSDが突然故障してデータ転送ができなくなる現象と、非同期取り外し処理によりデータ転送ができなくなる現象を、ストレージコントローラは区別できない。
従って、SSDの非同期取り外しを実行するたびに、ストレージコントローラが障害処理プログラムを実行しなければならない、という課題がある。
さらに、HDDとPCIe接続SSDで取り外し方法が異なる課題がある。つまり、スロットにHDDが挿入されている場合は、HDDへの給電停止が表示されるのを待って、オペレーターはHDDを取り外す。それ対して、スロットにSSDが挿入されている場合は、ストレージコントローラへの事前通知無しに、オペレーターはSSDを取り外す。このように、ストレージ装置のオペレーターがスロットに挿入されているドライブ種別を考慮しながら取り外し方法を選択しなければならない、という課題が生じる。
本発明は、以上のような問題に鑑みてなされたものであり、その主な目的は、記憶媒体としてHDDとPCIe接続SSDを適用したストレージ装置において、安全且つ容易なPCIe接続SSDの取り外し方法を提供することである。
前記目的を達成するために、スロットに挿入されたHDDまたはPCIe接続SSDの取り外し可否を表示する表示手段が、スロットにHDDが挿入されている場合には、そのHDDへの給電が停止された時にHDDが取り外し可能であることを表示し、スロットにSSDが挿入されている場合には、そのスロットに挿入されているSSDを接続したPCI-Expressスイッチ(以下、「PCIeスイッチ」という)のダウンストリームポートにおいてDownstream Port Containment(DPC)が起動されている時に、前記SSDが取り外し可能であることを表示する。
本発明によれば、HDDとPCIe接続SSDの取り外し手順を共通化でき、且つPCIe接続SSDを安全に取り外すことができ、ストレージ装置のオペレーターは、取り外し対象となるドライブ種別を格別意識することなしに取り外し可否を表示する表示手段に従った取り外しが可能となり、簡便かつ安心して作業を遂行することができる。
図1は、実施例1に係るSSD取り外しのフローチャートである。 図2は、実施例1に係るSSD取り外しフロー内で実行されるサブプログラムのフローチャートである。 図3は、実施例1に係るSSD取り外しフロー内で起動される割り込みハンドラのフローチャートである。 図4は、DPCの機能を説明する図である。 図5は、DPCコントロールレジスタを示す図である。 図6は、DPCステータスレジスタを示す図である。 図7は、実施例1に係るストレージ装置の構成を示す図である。 図8は、実施例1に係るドライブエンクロージャ内コンポーネントの接続を示す図である。 図9は、ドライブ識別方法を示す図である。 図10は、実施例1に係るシャットダウンLEDの表示内容を示す図である。 図11は、実施例1に係るドライブエンクロージャを前面から示す図である。 図12は、実施例1に係るドライブエンクロージャを裏面から示す図である。 図13は、実施例1に係るドライブエンクロージャを上面から見た断面を示す図である。 図14は、実施例1に係るストレージコントローラユニットを裏面から示す図である。 図15は、実施例1に係るドライブ管理テーブルを示す図である。 図16は、実施例1に係るドライブスロット管理テーブルを示す図である。 図17は、スロットケイパビリティーレジスタを示す図である。 図18は、実施例1に係るケーブルスロット管理テーブルを示す図である。 図19は、実施例1に係るオペレーターから見たドライブ取り外し手順を示す図である。 図20は、実施例2に係るSSD取り付けのフローチャートである。 図21は、実施例2に係るSSD取り付けフロー内で実行されるサブプログラムのフローチャートである。 図22は、実施例2に係るオペレーターから見たドライブ取り付け手順を示す図である。 図23は、実施例3に係るSSD取り外しのフローチャートである。 図24は、実施例3に係るSSD取り外しフロー内で実行されるサブプログラムのフローチャートである。 図25は、実施例3に係るSSD取り外しフロー内で起動される割り込みハンドラのフローチャートである。 図26は、実施例4に係るケーブル取り外しのフローチャートである。 図27は、実施例4に係るケーブル取り外しフロー内で起動される割り込みハンドラのフローチャートである。 図28は、実施例5に係るケーブル取り外しのフローチャートである。 図29は、実施例5に係るケーブル取り外しフロー内で起動される割り込みハンドラのフローチャートである。 図30は、実施例6に係るSSD取り外しのフローチャートである。 図31は、実施例6に係るSSD取り外しフロー内で実行されるサブプログラムのフローチャートである。 図32は、実施例7に係るケーブル取り外しのフローチャートである。 図33は、従来技術におけるSSD取り外しのフローチャートである。 図34は、従来技術におけるSSD取り外しフロー内で起動される割り込みハンドラのフローチャートである。 図35は、実施例8に係るドライブエンクロージャを示す図である。 図36は、実施例8に係るフェールオーバー後のドライブエンクロージャを示す図である。
以下、図面を参照しながら、本発明の幾つかの実施例を説明する。なお、全ての実施例を通して、同一符号が付されている構成要素は、実質的に同じものである。
なお、以下の説明において、PCIeスイッチを単に「スイッチ」、取り外し対象のSSD、ケーブルを、それぞれ「対象SSD」、「対象ケーブル」と呼ぶ。また、取り外し対象のSSD、またはケーブルのアップストリーム側が、接続されているスイッチのポートを「対象スイッチポート」と呼ぶ。デュアルポートSSDの場合には、対象スイッチポートは2個ある。さらに、対象SSD、ケーブルのアップストリーム側が、挿入されているスロットを、それぞれ「対象ドライブスロット」、「対象ケーブルスロット」と呼ぶ。また、割り込みハンドラとは、DPC起動に伴い送信される割り込みにより実行される割り込みハンドラを指す。
また、以下の説明において、SSDはPCIeインターフェースを備えるPCIe接続SSDであり、HDDはSASインターフェースを備えるSAS-HDDである。
図1から図19を用いて、本発明の実施例1に係るストレージ装置の構成及びそれに搭載されるSSDの取り外し方法について説明する。その後比較のために、図33及び図3を用いて従来技術におけるSSD取り外し方法についても説明する。
始めに、それに先立って、本発明において使用するスイッチ(PCIeスイッチ)において提供されるDPC(Downstream Port Containment)について説明する。
<DPCの説明>
図4は、非特許文献2及び非特許文献3に記載されているDPCの機能を説明する図である。図4において、スイッチ401のダウンストリームポート402〜405は、それぞれSSD406〜409を接続している。また、スイッチ401と接続するルートコンプレックス400のダウンストリームポート411は、SSD410を接続している。
ここにおいて、DPCの第1の機能は、一つのSSDの障害が他のPCIe接続コンポーネントに影響しないようにすることである。また、DPCの第2の機能は、SSDの非同期取り外しを実現することである。
上記DPCの第1の機能に関し、DPCは、スイッチ401及びルートコンプレックス400のダウンストリームポート(402〜405及び411)に、アンコレクタブル・エラーを検出すると自動的にリンクをダウンさせる機能を追加する。例えば、SSD408に障害が発生し、エラーを含むパケットをスイッチ401のダウンストリームポート404へ送信したとする。エラーを検出したダウンストリームポート404は、ダウンストリームポート404とSSD408との間のリンクをダウンさせる。その結果、DPCは、エラーに後続する全てのトランザクションパケットが、スイッチ401のアップストリームポートまたはダウンストリームポートへ伝播するのを防ぐことができ、データ破損が広がる可能性を防ぐことができる。
上記DPCの第2の機能は、システムへの事前の通知無しに取り外しを実行する、いわゆる非同期取り外しに適用される。例えば、SSD406に対して非同期取り外しを実行すると、ダウンストリームポート402とSSD406とを接続していたリンクが、DL_ActiveからDL_Downへ遷移する。この遷移はSurprise Downエラーを招く。そして、Surprise DownエラーはDPCを引き起こす。DPCは、システムに対してSurprise Downエラーを隠蔽する。その結果、SSDの非同期取り外しに伴うリンクダウンを、システムは障害として扱わないようにすることができる。
図5は、非特許文献3に記載されている、DPC機能を利用可能なスイッチのポートが備えるDPCコントローラレジスタ500を示す図である。
DPCコントロールレジスタのビット1と0(501)は、DPCの起動可否を設定する「DPC Trigger Enableフィールド」である。このフィールドを、“00”に設定することによりDPC機能を無効化できる。このフィールドを、“01”または“10”に設定することにより、DPC機能を有効化することができる。
DPCコントロールレジスタのビット3(502)は、DPCの起動による割り込み送信可否を設定する「DPC Interrupt Enableビット」である。このビットを、“0”に設定することによりDPCによる割り込み送信を無効化できる。このビットを、“1”に設定することによりDPCによる割り込み送信を有効化することができる。
DPCコントロールレジスタのビット6(503)は、ソフトウェアによるDPC起動を可能にする「DPC Software Triggerビット」である。このビットを“0”から“1”に設定することにより、ソフトウェアがDPCを起動することができる。
図6は、非特許文献3に記載されている、DPC機能を利用可能なスイッチのポートが備えるDPCステータスレジスタ600を示す図である。
DPCステータスレジスタのビット0(601)は、DPCの起動有無を表示する「DPC Trigger Statusビット」である。このビットが、“0”の場合、DPCは未起動であることを示し、“1”の場合、DPCは起動済であることを示す。DPC起動済の場合、ソフトウェアがこのフィールドをクリアすることにより、DPCは正常動作に復帰する。
次に、実施例1に係るストレージ装置の構成について説明する。
図7は、そのストレージ装置の構成例を示す図である。
ストレージ装置700は、ストレージコントローラ701及びドライブエンクロージャ721、751で構成される。
ストレージコントローラ701は、プロセッサ702、708、フロントエンドインターフェース703、709、メモリ705、711及びバックエンドインターフェース706、712を備える。
フロントエンドインターフェース703、709は、それぞれチャネル704、710を介してホストシステム(図示せず)を接続する。また、フロントエンドインターフェース703、709は、ホストシステムとストレージコントローラ701間のデータ転送プロトコルと、ストレージコントローラ701内のデータ転送プロトコルを変換する。
バックエンドインターフェース706、712は、ストレージコントローラ701とドライブエンクロージャ721を接続する。また、バックエンドインターフェース706、712は、ストレージコントローラ701内のデータ転送プロトコルと、ストレージコントローラ701とドライブエンクロージャ721、751間のデータ転送プロトコルを変換する。
バックエンドインターフェース706、712は、エクスパンダを介してHDDを接続するためのSASのポートと、PCIe接続SSDを接続するためのダウンストリームポート707、713を備える。
ダウンストリームポート707、713は、バックエンドインターフェース706、712内に備えられたスイッチの一部であってもよいし、プロセッサ702、708の一部であってもよい。
メモリ705は、プロセッサ702の主記憶であり、プロセッサ702が実行するプログラム(ストレージ制御プログラム等)や、プロセッサ702が参照する管理テーブル等が格納される。
メモリ711は、プロセッサ708の主記憶であり、プロセッサ708が実行するプログラム(ストレージ制御プログラム等)や、プロセッサ708が参照する管理テーブル等が格納される。
また、メモリ705、711は、ストレージコントローラ701のキャッシュメモリとしても使用される。
プロセッサ702、708は、フロントエンドインターフェース703、709を介して接続したホストシステムと、バックエンドインターフェースを介して接続したHDDまたはSSDとの間の、データ転送を制御する。
プロセッサ702と708は、信号線719で接続されている。これにより、プロセッサ702はメモリ711を、プロセッサ708はメモリ705をアクセス可能である。
管理インターフェース714は、ストレージ装置のオペレーターがストレージコントローラ701に対して設定情報を入力するための入力装置を備える。また、管理インターフェース714は、ストレージコントローラ701がストレージ装置のオペレーターに対してストレージ装置の情報を表示するための表示装置を備える。
ドライブエンクロージャ721は、スイッチ722、727、エクスパンダ724、729、エンクロージャ制御部723、728及びコネクタ741〜744を備える。コネクタ741〜744は、デュアルポートを備えるSSDまたはHDDを接続可能である。スイッチ722とコネクタ741〜744は、信号線725を介して接続される。スイッチ727とコネクタ741〜744は、信号線730を介して接続される。エクスパンダ724とコネクタ741〜744は、信号線726を介して接続される。エクスパンダ729とコネクタ741〜744は、信号線731を介して接続される。
なお、ストレージ装置700内のスイッチは、全てのダウンストリームポートにおいてDPCがサポートされている。
ドライブエンクロージャ751は、ドライブエンクロージャ721と同様に、スイッチ752、757、エクスパンダ754、759、エンクロージャ制御部753、758及びコネクタ771〜774を備える。コネクタ771〜774は、単一ポートを備えるSSDまたはデュアルポートを備えるHDDを接続可能である。スイッチ752とコネクタ771、772は、信号線755を介して接続される。スイッチ757とコネクタ773、774は、信号線760を介して接続される。エクスパンダ754とコネクタ771〜774は、信号線756を介して接続される。エクスパンダ759とコネクタ771〜774は、信号線761を介して接続される。さらに、スイッチ752のDPCをサポートするダウンストリームポートは、スイッチ757のDPCをサポートするダウンストリームポートと、信号線762で接続される。
ストレージコントローラ701内のダウンストリームポート707とドライブエンクロージャ721内のスイッチ722は、ケーブル716で接続される。ストレージコントローラ701内のダウンストリームポート713とドライブエンクロージャ721内のスイッチ727は、ケーブル717で接続される。ストレージコントローラ701内のバックエンドインターフェース706とドライブエンクロージャ721内のエクスパンダ724は、ケーブル715で接続される。ストレージコントローラ701内のバックエンドインターフェース712とドライブエンクロージャ721内のエクスパンダ729は、ケーブル718で接続される。
ドライブエンクロージャ721内のスイッチ722とドライブエンクロージャ751内のスイッチ752は、ケーブル733で接続される。ドライブエンクロージャ721内のスイッチ727とドライブエンクロージャ751内のスイッチ757は、ケーブル734で接続される。ドライブエンクロージャ721内のエクスパンダ724とドライブエンクロージャ751内のエクスパンダ754は、ケーブル732で接続される。ドライブエンクロージャ721内のエクスパンダ729とドライブエンクロージャ751内のエクスパンダ759は、ケーブル735で接続される。
ストレージ装置700は、図7では2個のドライブエンクロージャ(721及び751)を備えているが、3個以上のドライブエンクロージャを備えることもできる。その場合、増設するドライブエンクロージャ内のスイッチのアップストリームを、既設ドライブエンクロージャ内スイッチのダウンストリームポートに接続することにより、ドライブエンクロージャを多段に接続する。例えば、ドライブエンクロージャ751内スイッチ752、757のダウンストリームポートに、増設するドライブエンクロージャ内スイッチのアップストリームポートをケーブル等で接続する。増設するドライブエンクロージャ内スイッチのダウンストリームポートも、既設のドライブエンクロージャ内スイッチと同様に、DPCをサポートする。また、ドライブエンクロージャ751内エクスパンダ754、759のポートに、増設するドライブエンクロージャ内エクスパンダのポートをケーブル等で接続する。このように、同じドライブエンクロージャ内に備えられる2個のスイッチの、ストレージコントローラ701からのスイッチ接続段数が同じになるように、ドライブエンクロージャを多段に接続する。ストレージ装置700は、ドライブエンクロージャ721のみを1個以上備えても、あるいは、ドライブエンクロージャ751のみを1個以上備えてもよい。また、ストレージ装置700は、1個以上のドライブエンクロージャ721及び751を、任意の順でストレージコントローラ701に接続してもよい。
図8は、実施例1に係るドライブエンクロージャ内コンポーネントの接続を示す図である。図8では、エンクロージャ制御部723、LED801〜803、コネクタ741及び電源ユニット817、820との間の接続、また、エンクロージャ制御部728、LED801〜803、コネクタ741及び電源ユニット817、820との間の接続、を示す。なお、説明を簡単にするため、スイッチ722とコネクタ741間の接続、スイッチ727とコネクタ741間の接続及びHDD用の信号接続は、省略している。
シャットダウンLED802は、図10に従い、コネクタ741へ接続されたドライブへの給電状態等を表示する。
エンクロージャ制御部723は、LED駆動回路804と、信号線805を介して接続される。エンクロージャ制御部728は、LED駆動回路808と、信号線809を介して接続される。LED駆動回路804と808は、共にシャットダウンLED802を駆動する。つまり、ストレージコントローラ701は、エンクロージャ制御部723または728を介して、シャットダウンLED802の点灯と消灯を制御できる。
ロケーションLED801は、コネクタ741に対応するドライブスロットが操作対象であるか否かを表示する。例えば、複数のドライブに対する操作が必要な場合に、ストレージコントローラが各ドライブに対応するロケーションLED801を逐次点灯させることにより、オペレーターが操作対象ドライブを逐次操作する。
エンクロージャ制御部723は、LED駆動回路806と、信号線807を介して接続される。エンクロージャ制御部728は、LED駆動回路810と、信号線811を介して接続される。LED駆動回路806と810は、共にロケーションLED801を駆動する。つまり、ストレージコントローラ701は、エンクロージャ制御部723または728を介して、ロケーションLED801の点灯と消灯を制御できる。
コネクタ741から出力されるIfDet#信号は、プルアップされた信号線812を介してエンクロージャ制御部723、728に入力される。コネクタ741から出力されるPRSNT#信号も、プルアップされた信号線813を介してエンクロージャ制御部723、728に入力される。ストレージコントローラ701は、IfDet#信号とPRSNT#信号に基づき、図9の通り、コネクタ741に接続されたドライブの種別を判別することができる。
アクティビティLED803は、コネクタ741に接続されたドライブの動作状態を表示する。
コネクタ741から出力されるActivity信号は、信号線815を介してLED駆動回路814に入力される。LED駆動回路814は、入力されたActivity信号に従い、アクティビティLED803の点灯と消灯を制御する。
ストレージコントローラ701は、ドライブを接続するコネクタ毎に、電源ユニット817及び820の出力を制御する。
電源ユニット817は、電源配線816を介してコネクタ741に接続され、コネクタ741に接続されたドライブに電力を供給する。ストレージコントローラ701は、エンクロージャ制御部723と信号線818を介して、電源ユニット817の出力を制御する。また、ストレージコントローラ701は、エンクロージャ制御部728と信号線819を介して電源ユニット817の出力を制御する。
電源ユニット820は、電源配線816を介してコネクタ741に接続され、コネクタ741に接続されたドライブに電力を供給する。ストレージコントローラ701は、エンクロージャ制御部723と信号線821を介して電源ユニット820の出力を制御する。また、ストレージコントローラ701は、エンクロージャ制御部728と信号線822を介して電源ユニット820の出力を制御する。
電源ユニット817、820の出力は、適切に分圧された後、信号線804を介して、エンクロージャ制御部723、728に入力される。ストレージコントローラ701は、エンクロージャ制御部723、728に入力された信号に従い、電源ユニット817、820の出力状態を判別することができる。
図9は、非特許文献1の記載に基づくドライブ識別方法を示す図である。
HDD(SAS HDD)とSSD(PCIe SSD)は、PRSNT#信号(904)とIfDet#信号(905)を出力する。ここで、これらの信号は、図8に示すようにプルアップされているとする。PRSNT#信号(904)とIfDet#信号(905)が共にLowである場合、コネクタ741に接続されているドライブはHDDである(901)。PRSNT#信号(904)がHighであり、IfDet#信号(905)がLowである場合、コネクタ741に接続されているドライブはSSDである(902)。PRSNT#信号(904)とIfDet#信号(905)が共にHighである場合、コネクタ741にドライブは接続されていない(903)。
図10は、実施例1に係るシャットダウンLEDの表示内容を示す図である。
シャットダウンLEDは、ドライブスロットに挿入されているドライブの種類によって、点灯する条件が異なる。HDD(SAS HDD)がドライブスロットに挿入されている場合(1001)は、HDDへの電源供給がない場合にシャットダウンLEDが点灯し(1003)、HDDへの電源供給がある場合にはシャットダウンLEDが消灯する(1004)。
SSD(PCIe SSD)がドライブスロットに挿入されている場合(1002)は、デュアルポートSSDを接続しているスイッチのポートの両方においてDPCが起動している場合に、シャットダウンLEDが点灯する(1003)。デュアルポートSSDを接続しているスイッチのポートの何れかがDPCを起動していない場合は、シャットダウンLEDは消灯する(1004)。
なお、ドライブスロットにドライブが挿入されていない場合は、給電は停止し、且つスイッチポートにおいてDPCを起動させることにする。従って、その場合、シャットダウンLEDは点灯する。
図11は、実施例1に係るドライブエンクロージャを前面から示す図である。
ドライブエンクロージャ721は、HDDまたはSSD(1100)を挿入するドライブスロット1101〜1104を備える。また、ドライブエンクロージャ721は、ドライブスロット1101〜1104のそれぞれに対応した、ロケーションLED801、シャットダウンLED802及びアクティビティLED803を備える。これらのLED表示により、オペレーターは、各ドライブスロットに挿入されているドライブの状態を知ることができる。
図12は、実施例1に係るドライブエンクロージャを裏面から示す図である。
ドライブエンクロージャ721の裏面には、スイッチパッケージ1210、1230、エクスパンダパッケージ1220、1240、電源ユニット817、820、エンクロージャ番号表示部1201及びエンクロージャ番号設定部1202が配置される。
エンクロージャ番号設定部1202は、プッシュボタンによりエンクロージャ番号を設定可能であり、設定されたエンクロージャ番号はエンクロージャ番号表示部1201に表示される。また、設定されたエンクロージャ番号は、図17に示すレジスタの「Physical Slot Numberフィールド」の上位部1703に格納される。
スイッチパッケージ1210は、スイッチ722、エンクロージャ制御部723、ケーブル716を接続するケーブルスロット1212、ケーブル733を接続するケーブルスロット1213及びLED1211、1214〜1216を備える。LED1211は、ダウンストリームポート707におけるDPC起動の有無を表示するためのスイッチLEDである。LED1214は、スイッチパッケージ1210が操作対象であるか否かを表示するためのロケーションLEDである。LED1215は、ケーブルスロット1213に対応するダウンストリームポートにおけるDPC起動の有無を表示するためのスイッチLEDである。LED1216は、ケーブル733に対応するリンク状態を表示するためのアクティビティLEDである。
エクスパンダパッケージ1220は、エクスパンダ724、ケーブル715を接続するスロット1221及びケーブル732を接続するスロット1222を備える。
スイッチパッケージ1230は、スイッチ727、エンクロージャ制御部728、ケーブル717を接続するケーブルスロット1232、ケーブル734を接続するケーブルスロット1233及びLED1231、1234〜1236を備える。LED1231は、ダウンストリームポート713におけるDPC起動の有無を表示するためのスイッチLEDである。LED1234は、スイッチパッケージ1230が操作対象であるか否かを表示するためのロケーションLEDである。LED1235は、ケーブルスロット1233に対応するダウンストリームポートにおけるDPC起動の有無を表示するためのスイッチLEDである。LED1236は、ケーブル734に対応するリンク状態を表示するためのアクティビティLEDである。
スイッチパッケージ1210のLED1211、1214〜1216及びスイッチパッケージ1230のLED1231、1234〜1236は、図8のLED801〜803と同様に、ストレージコントローラ701がエンクロージャ制御部を介して、その点灯と消灯が制御される。
また、スイッチLED(1211、1215、1231、1235)は、各LEDに対応するスイッチポートのDPCステータスを表示することに加えて、リンクダウンの有無を表示する。つまり、ストレージコントローラ701は、DPCが有効であるスイッチポートにおいて、DPCステータスに関わらず、リンクダウンを契機にスイッチLEDを点灯させる。
スイッチパッケージ1210において、スイッチLED1211が点灯する場合、PCIe基本仕様に基づきスイッチ722の全てのダウンストリームポートにおいてリンクがダウンすることになる。つまり、スイッチLED1215も点灯する。スイッチLED1211と1215が両方とも点灯した場合、ドライブエンクロージャ721からスイッチパッケージ1210を取り外すことができる。
同様に、スイッチパッケージ1230において、スイッチLED1231が点灯する場合、PCIe基本仕様に基づきスイッチ727の全てのダウンストリームにおいてリンクがダウンすることになる。つまり、スイッチLED1235も点灯する。スイッチLED1231と1235が両方とも点灯した場合、ドライブエンクロージャ721からスイッチパッケージ1230を取り外すことができる。
エクスパンダパッケージ1240は、エクスパンダ729、ケーブル718を接続するスロット1241及びケーブル735を接続するスロット1242を備える。
図13は、実施例1に係るドライブエンクロージャを上面から見た断面を示す図である。
ドライブエンクロージャ721は、内部に配線基板であるミッドプレーン1300を備える。ミッドプレーン1300の裏面には、スイッチパッケージ1210、1230、エクスパンダパッケージ1220、1240及び電源ユニット817、820が接続される。ミッドプレーン1300はそれらを相互に接続する。ミッドプレーン1300の表面には、コネクタ741〜744が接続される。ドライブスロット1101〜1104に挿入されたHDDまたはSSDは、コネクタ741〜744を介して、ミッドプレーン1300裏面に接続されたスイッチパッケージ等のコンポーネントと接続される。
図14は、実施例1に係るストレージコントローラユニットを裏面から示す図である。
ストレージコントローラ701の裏面には、バックエンドパッケージ1410、1430、プロセッサパッケージ1401、1402、フロントエンドパッケージ1403、1404及び電源ユニット1407、1408が配置される。
プロセッサパッケージ1401は、プロセッサ702とメモリ705を備える。プロセッサパッケージ1402は、プロセッサ708とメモリ711を備える。
フロントエンドパッケージ1403は、フロントエンドインターフェース703と、ホストシステムとケーブル接続するためのスロット1405を備える。フロントエンドパッケージ1404は、フロントエンドインターフェース709と、ホストシステムとケーブル接続するためのスロット1406を備える。
バックエンドパッケージ1410は、バックエンドインターフェース706、ダウンストリームポート707、ケーブル716を接続するケーブルスロット1411、ケーブル715を接続するスロット1421及びLED1412〜1414を備える。LED1412は、バックエンドパッケージ1410が操作対象であるか否かを表示するためのロケーションLEDである。LED1413は、スロット1411に対応するダウンストリームポート(707)におけるDPC起動の有無を表示するためのスイッチLEDである。LED1414は、ケーブル716に対応するリンク状態を表示するためのアクティビティLEDである。
バックエンドパッケージ1430は、バックエンドインターフェース712、ダウンストリームポート713、ケーブル717を接続するケーブルスロット1431、ケーブル718を接続するスロット1441及びLED1432〜1434を備える。LED1432は、バックエンドパッケージ1430が操作対象であるか否かを表示するためのロケーションLEDである。LED1433は、スロット1431に対応するダウンストリームポート(713)におけるDPC起動の有無を表示するためのスイッチLEDである。LED1434は、ケーブル717に対応するリンク状態を表示するためのアクティビティLEDである。
図15は、実施例1に係るドライブ管理テーブル1500を示す図である。
ドライブ管理テーブル1500は、ストレージコントローラ701内のメモリ705とメモリ711の2カ所に格納される。プロセッサ702はメモリ705内のドライブ管理テーブル1500を、プロセッサ708はメモリ711内のドライブ管理テーブル1500を、それぞれ参照する。
ドライブ管理テーブル1500は、論理スロット番号1501、論理ドライブ番号1502、ドライブ(媒体)種別情報1503、ポート1識別情報1504、ポート2識別情報1505及びドライブ識別情報1506を格納する。
論理スロット番号1501は、プロセッサ702と708が使用するドライブスロットの識別情報である。
論理ドライブ番号1502は、プロセッサ702と708が使用するHDDまたはSSDの識別情報である。
ドライブ(媒体)種別1503は、ドライブスロットに挿入されているドライブ(媒体)がHDDかSSDか、あるいはドライブ未挿入かを示す情報である。
ポート1識別情報1504とポート2識別情報1505は、ドライブ種別がSSDの場合、SSDを接続するスイッチポート(対象スイッチポート)の物理スロット番号である。また、ポート1識別情報1504とポート2識別情報1505は、ドライブ(媒体)種別がHDDの場合、HDDのPort IDである。ポート1識別情報1504とポート2識別情報1505を使うことにより、ストレージコントローラ701は、2個のドライブポートが同じドライブに属するか否かを判別することができる。
ドライブ識別情報1506は、ドライブ(媒体)種別がSSDの場合、ネームスペースのEUI64(IEEE Extended Unique Identifier)であり、ドライブ(媒体)種別がHDDの場合、論理ユニットのWorld-Wide Nameである。ドライブ識別情報1506を使うことにより、ストレージコントローラ701は、異なるスロット間でドライブを差し替えた場合でも、特定のドライブを識別することができる。
図16は、実施例1に係るドライブスロット管理テーブル1600を示す図である。
ドライブスロット管理テーブル1600は、ストレージコントローラ701内のメモリ705とメモリ711の2カ所に格納される。プロセッサ702はメモリ705内のドライブスロット管理テーブル1600を、プロセッサ708はメモリ711内のドライブスロット管理テーブル1600を、それぞれ参照する。
論理スロット番号1601は、図15の1501に同じ、プロセッサ702と708が使用するドライブスロットの識別情報である。
DPCステータス1602は、2ビットの情報であり、両ビットともDPC起動の有無を示すもので、その下位1ビットは、取り外し対象SSDのポートを接続する、プロセッサ702側からアクセス可能なスイッチポートの状態を示し、その上位1ビットは、取り外し対象SSDのポートを接続する、プロセッサ708側からアクセス可能なスイッチポートの状態を示す。
ホットリムーブ制御情報1603は、「ON」の場合、正常なSSD取り外し手順の一部として割り込みハンドラが動作する。「OFF」の場合、障害処理の一部として割り込みハンドラが動作する。
シャットダウンLED制御情報1604は、シャットダウンLEDの点灯または消灯を制御すると共に、現在のシャットダウンLEDの状態を示す。
ロケーションLED制御情報1605は、ロケーションLEDの点灯または消灯を制御すると共に、現在のロケーションLEDの状態を示す。
図17は、PCIe基本仕様で定められている、スイッチのスロットケイパビリティー(Slot Capabilities)レジスタ(1700)を示す図である。
スロットケイパビリティーレジスタ(1700)の「フィジカルスロットナンバー(Physical Slot Number)フィールド」(1701)は、スイッチ起動時に設定される情報を格納する。例えば、このフィールドの上位部1703にはドライブエンクロージャの識別情報を格納する。そして、このフィールドの下位部1702にはドライブエンクロージャ内のスロット識別情報を格納する。ソフトウェアは、このフィールドに格納された情報を、スロット識別情報として使用することができる。
図18は、実施例1に係るケーブルスロット管理テーブル1800を示す図である。
ケーブルスロット管理テーブル1800は、ストレージコントローラ701内のメモリ705とメモリ711の2カ所に格納される。プロセッサ702はメモリ705内のケーブルスロット管理テーブル1800を、プロセッサ708はメモリ711内のケーブルスロット管理テーブル1800を、それぞれ参照する。
論理スロット番号1801は、プロセッサ702と708が使用するケーブルスロットの識別情報である。
物理スロット番号1802は、図17のフィジカルスロットナンバー(1701)の値が格納される。
バックエンドインターフェース情報1803は、そのケーブルスロットがプロセッサ702とプロセッサ708のどちら側で使用されかを示す。プロセッサ702側の場合は「1」、プロセッサ708側の場合は「2」が設定される。
DPCステータス1804は、対象ケーブルのアップストリーム側を接続したスイッチポートにおける、DPC起動有無を示す。DPC未起動の場合は「0」、DPC起動済の場合は「1」が設定される。
ホットリムーブ制御情報1805は、「ON」の場合、正常なケーブル取り外し手順の一部として割り込みハンドラが動作する。「OFF」の場合、障害処理の一部として割り込みハンドラが動作する。
シャットダウンLED制御情報1806は、シャットダウンLEDの点灯または消灯を制御すると共に、現在のシャットダウンLEDの状態を示す。
ロケーションLED制御情報1807は、ロケーションLEDの点灯または消灯を制御すると共に、現在のロケーションLEDの状態を示す。
<取り外しフローの説明>
次に、本発明の実施例1に係るSSD取り外し方法について説明する。
まず、ドライブスロットからSSDを取り外す際のフローの概要を示す。
1)対象SSDに関連するI/O動作を停止させる。
2)割り込みハンドラの動作を、取り外しに設定する。
3)対象スイッチポートにおいて、ソフトウェアによりDPCを起動させる。
4)対象ドライブスロットに対応して備えられたLEDが、SSD取り外し準備完了を示す状態を表示する。
図1は、本発明の実施例1に係るSSD取り外しのフローチャートである。
ステップ101において、ストレージ装置700のオペレーターは、管理インターフェース714を介してストレージコントローラ701に、対象SSDを指定する。ストレージコントローラ701は、対象ドライブスロットに対応するロケーションLEDを点灯させる。
ステップ102において、ストレージコントローラ701は、プロセッサ702によりサブプログラム1を実行する。ここで、先にサブプログラム1のフローチャート及びサブプログラム1内で実行される割り込みハンドラのフローチャートを説明した後、再び図1のフローチャートに戻って説明する。
図2は、図1のフロー内で実行されるサブプログラム1のフローチャートである。
ステップ201において、サブプログラム1は、管理テーブル1600から、取り外し対象のSSDが接続されているスイッチポートのDPCステータス1602のエントリを読み出す。
ステップ202において、サブプログラム1は、サブプログラム1が実行されているプロセッサ702からアクセス可能な対象スイッチポートにおいて、DPCが未起動であった場合(N)はステップ203へ進み、DPCが起動済みであった場合(Y)はサブプログラム1を終了する。
DPCが未起動であった場合(N)、ステップ203において、サブプログラム1は対象SSDに関連するI/Oを停止させる。
ステップ204において、サブプログラム1は、割り込みハンドラの動作を、「ホットリムーブ」に設定する。つまり、管理テーブル1600において、対象ドライブスロットに対応するホットリムーブ制御1603のエントリを「OFF」から「ON」に書き換える。
ステップ205において、サブプログラム1は、サブプログラム1が実行されているプロセッサ702からアクセス可能な対象スイッチポートの「DPC Software Triggerビット」をセットする。その結果、DPCが起動し、スイッチからプロセッサ702へ割り込みが送信される。割り込みを受信したプロセッサ702は、割り込みハンドラを実行する。
以上で、サブプログラム1は終了する。
図3は、割り込みハンドラのフローチャートである。
ステップ301において、割り込みハンドラは、ドライブスロット管理テーブル1600において、対象スイッチポートのDPCステータス1602を更新する。プロセッサ702が割り込みハンドラを実行している場合は、DPCステータスの下位1ビットを「1」にセットする。また、プロセッサ708が割り込みハンドラを実行している場合は、DPCステータスの上位1ビットを「1」にセットする。
ステップ302において、割り込みハンドラは、ドライブスロット管理テーブル1600から、対象ドライブスロットに対応するホットリムーブ制御1603のエントリを読み出す。
ステップ303において、読み出した結果が「ON(ホットリムーブ)」の場合(Y)は、ステップ307へ進む。読み出した結果が「OFF(ホットリムーブではない)」の場合(N)は、ステップ304へ進む。
ステップ304から306は、ストレージコントローラ701に対する事前通知無しにDPCが起動した場合、つまり障害発生時の処理である。
ステップ304において、割り込みハンドラは、割り込み送信元スイッチポートに関連する新規I/Oの発行を停止させる。
ステップ305において、割り込みハンドラは、割り込み送信元スイッチポートに関連する未完了I/Oの処理を中止させる。
ステップ306において、割り込みハンドラは、割り込み送信元スイッチポートにおいて障害が検出されたことを、管理インターフェース714に表示する。
ステップ307において、割り込みハンドラは、ドライブスロット管理テーブル1600から、対象スイッチポートのDPCステータス1602を読み出す。
SSDがデュアルポートSSDの場合は、2個の対象スイッチポートがあることになる。
ステップ308において、割り込みハンドラは、その2個の対象スイッチポートにおいて、両ポート共にDPCを起動済か否かを判断する。つまり、読み出したDPCステータスが「3」(2ビットの各ビットが「1」「1」)の場合(Y)はステップ309へ進み、それ以外の場合(N)は割り込みハンドラは終了する。
ステップ309において、割り込みハンドラは、対象ドライブスロットに対応するシャットダウンLEDを点灯させる。
以上で、割り込みハンドラが終了する。
次に、図1のフローチャートの説明に戻る。
ステップ103において、ストレージコントローラ701は、プロセッサ708によりサブプログラム1を実行する。サブプログラム1の内容は前述したとおりであるので、説明を省略する。
ステップ104において、オペレーターは、ロケーションLEDとシャットダウンLEDが点灯しているドライブスロットから、対象SSDを取り外す。
ステップ105において、ストレージコントローラ701は、ドライブ管理テーブル1500及びドライブスロット管理テーブル1600から、対象SSDに関連するエントリを削除する。
さらに、ストレージコントローラ701は、対象ドライブスロットに対応するロケーションLEDを消灯させる。
以上で、実施例1におけるSSDの取り外しが完了する。
<実施例1の効果の説明>
図19は、実施例1に係るオペレーターから見たドライブ取り外し手順を示す図である。
先ず、ドライブエンクロージャのスロットからHDDを取り外す場合の手順(1904)を説明する。
第1のステップ(1901)において、オペレーターは管理インターフェース714を使って、対象HDDをストレージコントローラ701に指示する。
指示を受けたストレージコントローラ701は、対象HDDが挿入されているドライブスロット(対象ドライブスロット)において対象HDDへの給電を停止する。その結果、対象ドライブスロットに対応するシャットダウンLEDは点灯する。
第2のステップ(1902)において、オペレーターは、対象ドライブスロットにおけるシャットダウンLEDの点灯により、対象HDDへの給電停止を確認できる。
第3のステップ(1903)において、オペレーターは対象ドライブスロットから対象HDDを取り外す。
次に、ドライブエンクロージャのスロットからSSDを取り外す場合の手順(1905)を説明する。
第1のステップ(1901)において、オペレーターは管理インターフェース714を使って、対象SSDをストレージコントローラ701に指示する。
指示を受けたストレージコントローラ701は、対象SSDを接続する2個のスイッチポート(対象スイッチポート)においてDPCを起動する。その結果、対象SSDが挿入されているドライブスロット(対象ドライブスロット)に対応するシャットダウンLEDは点灯する。
第2のステップ(1902)において、オペレーターは、対象ドライブスロットにおけるシャットダウンLEDの点灯により、対象SSDの対象スイッチポートにおけるDPC起動を確認できる。
第3のステップ(1903)において、オペレーターは対象ドライブスロットから対象SSDを取り外す。
このように実施例1によれば、オペレーターは、ドライブの種別に関わらず、HDDとSSDを同様の手順でドライブエンクロージャのスロットから取り外すことができる。
なお、SSDを取り外す際にSSDへの給電を停止するか否かは、任意である。対象スイッチポートにおけるDPC起動操作に加えて、SSDへの給電を停止させてからシャットダウンLEDを点灯させてもよい。あるいは、SSDが対象ドライブスロットから取り外された後に、給電を停止させてもよい。
<実施例1を使用しない、従来技術の例>
図33と図34は、実施例1で説明した方法を使用しない従来技術による場合の、SSD取り外し方法を説明する図である。
取り外しを行う装置構成は、図7、8等で説明した実施例1と同じであるが、取り外し以前に取り外し対象SSDに関連するI/Oを停止しない点と、取り外しに伴い割り込みハンドラの動作を変更しない点が、実施例1の取り外し方法とは異なる。
図33は、従来技術におけるSSD取り外しのフローチャートである。
ステップ3301において、ストレージ装置のオペレーターが、ストレージコントローラ701への事前通知無しに、対象ドライブスロットから対象SSDを取り外す。つまり、非同期取り外しを行う。
ステップ3302において、対象SSDの非同期取り外しの結果、対象スイッチポートにおいてDPCが起動し、プロッセッサ702、708へ割り込みが送信される。割り込みを受信したプロセッサ702,708は、割り込みハンドラを実行する。
次に、割り込みハンドラのフローチャートを説明した後、再び図33のフローチャートに戻って説明する。
図34は、従来技術におけるSSD取り外しフロー内で起動される割り込みハンドラのフローチャートである。
ステップ3401において、ストレージコントローラ701は、対象SSDに関連する新規I/Oの発行を停止する。
ステップ3402において、ストレージコントローラ701は、対象SSDに関連する未完了I/Oを中止させる。
ステップ3403において、ストレージコントローラ701は、対象SSDにおける障害発生を管理インターフェース714に表示する。
ステップ3404において、ストレージコントローラ701は、ドライブスロット管理テーブル1600から、対象スイッチポートのDPCステータスを読み出してDPC起動状況を調べる。
ステップ3405において、2個の対象スイッチポートにおいてDPCが起動済であった場合(Y)は、ステップ3406へ進む。それ以外(N)は割り込みハンドラを終了する。
ステップ3406において、ストレージコントローラ701は、対象ドライブスロットに対応するシャットダウンLEDを点灯させる。
以上で、図34の割り込みハンドラが終了する。
図33のフローチャートの説明に戻る。
ステップ3303において、オペレーターは、シャットダウンLEDの点灯により、対象スイッチポートにおけるDPC起動を確認する。
以上で、従来技術によるSSD取り外しが終了する。
以上のように、従来技術によるSSD取り外し方法では、SSD取り外しを障害として扱わなくてはならない。それに対して、実施例1のSSD取り外し方法は、障害処理を実施する必要はなく、SSDを安全に取り外すことができる。また、SSD取り外しに伴うプロセッサ702、708の負荷を低減することができる。
以下、図20から図22を参照して、実施例2に係るSSDの取り付け方法を説明する。
始めに、実施例2において、SSDを取り付ける際のフローの概要を示す。
1)ドライブスロットへのSSDの挿入後、先ず取り付け先ドライブスロットに対応するスイッチポートの「DPC Trigger Enable」を無効化する。
2)そのスイッチポートの「DPC Trigger Status」をクリアする。
3)ドライブスロット対応してに備えられたLEDが、SSD取り外し不可能を示す状態を表示する。
なお、実施例2の説明において、ドライブスロットへ挿入するSSDまたはHDDを、それぞれ「対象SSD」、「対象HDD」と呼ぶ。また、対象SSDまたは対象HDDが挿入されるドライブスロットを「対象ドライブスロット」と呼ぶ。
図20は、実施例2に係るSSD取り付けのフローチャートである。
ステップ2001において、ストレージ装置のオペレーターが、空いているスロット(対象ドライブスロット)へ対象SSDを挿入する。ストレージコントローラ701は、エンクロージャ制御部を介して、SSDの挿入を検出する。
ステップ2002において、ストレージコントローラ701は、プロセッサ702によりサブプログラム2を実行する。ここで、先にサブプログラム2のフローチャートを説明した後、再び図20のフローチャートに戻って説明する。
図21は、実施例2に係るSSD取り付けフロー内で実行されるサブプログラム2のフローチャートである。
ステップ2101において、サブプログラム2は、サブプログラム2を実行しているプロセッサ702からアクセス可能な対象スイッチポートにおいて、「DPC Trigger Enable」を無効化する。この設定をした対象スイッチポートにおいて、DPCは起動不可となる。
ステップ2102において,サブプログラム2は、サブプログラム2を実行しているプロセッサ702からアクセス可能な対象スイッチポートにおいて、「DPC Trigger Status」をクリアする。その結果、対象SSDが正常であれば、サブプログラム2を実行しているプロセッサからアクセス可能な対象スイッチポートと対象SSDの間がリンクアップする。
ステップ2103において,サブプログラム2は、ドライブ管理テーブル1500及びドライブスロット管理テーブル1600に、対象SSDに関連するエントリを追加する。
ステップ2104において,サブプログラム2は、対象ドライブスロットに対応するシャットダウンLEDを消灯するように、LED駆動回路804または808を制御する。実際にシャットダウンLEDが消灯するのは、LED駆動回路804と808の両方がオフになった場合である。
図20のフローチャートの説明に戻る。
ステップ2003において、ストレージコントローラ701は、プロセッサ708によりサブプログラム2を実行する。ここで、対象ドライブスロットに対応するシャットダウンLEDは消灯する。また、対象SSDが正常な場合、対象SSDは動作を開始する。
ステップ2004において、ストレージコントローラ701は、2個の対象スイッチポートと対象SSDの間がリンクアップしたか否かを確認する。2個の対象スイッチポートに接続する2個のリンクが両方リンクアップした場合(Y)は、ステップ2005ヘ進む。それ以外(N)はステップ2008ヘ進む。
ステップ2005において、ストレージコントローラ701は、対象SSDのコンフィグレーションレジスタ等の設定を行う。
ステップ2006において、ストレージコントローラ701は、対象SSDが正常起動したか否かを確認する。正常起動は、例えば、対象SSDのコンフィグレーションレジスタの特定のステータスを読み出すことにより、確認する。
次に、正常起動時(Y)には、ステップ2007においてストレージコントローラ701は、2個の対象スイッチポートにおいて、「DPC Trigger Enable」を有効化する。これ以降、対象スイッチポートにおいてエラーが検出された場合に、DPCが起動することになる。
ステップ2008と2009は、対象SSDに初期故障等があり、対象SSDの正常起動に失した場合(N)に実行する処理である。
ステップ2008において、ストレージコントローラ701は、2個の対象スイッチポートにおいてDPCを起動する。
ステップ2009において、ストレージコントローラ701は、対象ドライブスロットに対応するシャットダウンLED及びロケーションLEDを点灯させる。また、ストレージコントローラ701は、対象SSDに故障があることを、管理インターフェース714に表示する。
そして、シャットダウンLED及びロケーションLEDが点灯したドライブスロットから、オペレーターは対象SSDを取り外し、新しいSSDに交換する。
図22は、実施例2に係るオペレーターから見たドライブ取り付け手順を示す図である。
先ず、ドライブエンクロージャのドライブスロットへHDDを取り付ける場合の手順(2204)を説明する。
第1のステップ(2201)において、オペレーターは、空いているスロット(対象ドライブスロット)へ対象HDDを挿入する。
ストレージコントローラ701は、エンクロージャ制御部を介してHDDの挿入を検出する。そして、ストレージコントローラ701は、対象ドライブスロットにおいてHDDへの給電を開始する。その結果、対象ドライブスロットに対応するシャットダウンLEDは消灯する。
第2のステップ(2202)において、オペレーターは、対象ドライブスロットに対応するシャットダウンLEDの消灯により、対象HDDへの電源供給開始を確認できる。
第3のステップ(2203)において、オペレーターは、対象ドライブスロットに対応するアクティビティLEDの点滅開始により、HDDの動作開始を確認できる。
次に、ドライブエンクロージャのドライブスロットへSSDを取り付ける場合の手順(2205)を説明する。
第1のステップ(2201)において、オペレーターは、空いているスロット(対象ドライブスロット)へ対象SSDを挿入する。
ストレージコントローラ701は、エンクロージャ制御部を介して、SSDの挿入を検出する。対象ドライブスロットにおいて給電が停止されていた場合は、ストレージコントローラ701が電源817または820に給電開始を指示する。そして、ストレージコントローラ701は、2個の対象スイッチポートにおいて、DPCを解除する(「DPC Trigger Status」をクリアする)。その結果、対象ドライブスロットに対応するシャットダウンLEDは消灯する。
第2のステップ(2202)において、オペレーターは、対象ドライブスロットに対応するシャットダウンLEDの消灯により、対象SSDの対象スイッチポートにおけるDPC解除を確認できる。
第3のステップ(2203)において、オペレーターは、対象ドライブスロットに対応するアクティビティLEDの点滅開始により、SSDの動作開始を確認できる。
このように実施例2によれば、オペレーターは、ドライブの種別に関わらず、HDDとSSDを同様の手順でドライブエンクロージャのドライブスロットに取り付けることができる。
以下、図23から図25を参照して、実施例3に係るSSDの取り外し方法を説明する。
始めに、実施例3において、ドライブスロットからSSDを取り外す際のフローの概要は示す。
1)対象SSDに関連するI/O動作を停止させる。
2)割り込みハンドラの動作を、取り外しに設定する。
3)対象ドライブスロットに対応して備えられたLEDが、対象SSDの取り外し準備完了を示す状態を表示する。
4)対象ドライブスロットから対象SSDを取り外すことにより、対象スイッチポートにおいてDPCを起動させる。
5)対象ドライブスロット対応してに備えられたLEDが、SSD取り外し完了を示す状態を表示する。
図23は、実施例3に係るSSD取り外しのフローチャートである。
ステップ2301において、ストレージ装置700のオペレーターは、管理インターフェース714を介してストレージコントローラ701に、対象SSDを指定する。ストレージコントローラ701は、対象ドライブスロットに対応するロケーションLEDを点灯させる。
ステップ2302において、ストレージコントローラ701は、プロセッサ702によりサブプログラム3を実行する。ここで、先にサブプログラム3のフローチャートと、サブプログラム3内で実行される割り込みハンドラのフローチャートを説明した後、再び図23のフローチャートの説明に戻る。
図24は、図23のフロー内で実行されるサブプログラム3のフローチャートである。
図24のフローチャートは、図2のフローチャートからステップ205を除いたフローチャートと同様である。つまり、サブプログラム3は、対象スイッチポートの「DPC Software Triggerビット」をセットしない。つまり、実施例3では、ソフトウェアによるDPC起動を行わない。それ以外は、サブプログラム3はサブプログラム1と同様のフローチャートであるので、説明を省略する。
次に、図23のフローチャートの説明に戻る。
ステップ2303において、ストレージコントローラ701は、プロセッサ708によりサブプログラム3を実行する。
ステップ2304において、ストレージコントローラ701は、ドライブスロット管理テーブル1600から、対象スイッチポートのDPCステータスを読み出す。2個の対象スイッチポートにおいてDPC起動済み、つまりに対象ドライブスロットに対応するシャットダウンLEDが点灯している場合(Y)は、ステップ2306へ進む。それ以外の場合(N)、つまりに対象ドライブスロットに対応するシャットダウンLEDが消灯している場合は、ステップ2305へ進む。
ステップ2305において、ストレージコントローラ701は、対象ドライブスロットに対応するシャットダウンLEDが点滅させる。
ステップ2306において、オペレーターは、ロケーションLEDが点灯し、シャットダウンLEDが点滅または点灯しているドライブスロットから、対象SSDを取り外す。この取り外しの結果、対象スイッチポートにおいてDPCが起動し、図25の割り込みハンドラが実行される。つまり、実施例3では、対象SSDの取り外しを契機として、DPCを起動させる。
ステップ2307において、ストレージコントローラ701は、ドライブ管理テーブル1500及びドライブスロット管理テーブル1600から、対象SSDに関連するエントリを削除する。さらに、ストレージコントローラ701は、対象ドライブスロットに対応するロケーションLEDを消灯させる。
図25は、実施例3に係る割り込みハンドラのフローチャートである。
図25のフローチャートは、ステップ2503を除いて,図3のフローチャートと同じであるところ、このステップ2503において、割り込みハンドラの動作がホットリムーブに設定されている場合には、ステップ2509へ進む。対象SSDが取り外された結果割り込みハンドラが実行されているので、DPCステータスの確認を省略することができる。
図25の残りのステップは、図3と同様なので説明を省略する。また、実施例3における割り込みハンドラの処理を、図25のフローチャートに替えて図3のフローチャートとしても、実施例3は実施可能である。
以上で、実施例3におけるSSDの取り外しが完了する。
実施例3によれば、オペレーターは実施例1と同様に、シャットダウンLEDの表示に従って、安全にSSDを取り外すことができる。
以下、図26から図27を参照して、実施例4に係るケーブルの取り外し方法を説明する。
始めに、実施例4において、概要としては、ケーブルスロットからケーブルを取り外す際のフローの概要を示す。
1)対象ケーブルに関連するI/O動作を停止させる。
2)割り込みハンドラの動作を、取り外しに設定する。
3)対象スイッチポートにおいて、ソフトウェアによりDPCを起動させる。
4)対象ケーブルスロット対応してに備えられたLEDが、ケーブル取り外し準備完了を示す状態を表示する。
図26は、本発明の実施例4に係るケーブル取り外しのフローチャートである。
ステップ2601において、ストレージ装置700のオペレーターは、管理インターフェース714を介してストレージコントローラ701に、対象ケーブルを指定する。ストレージコントローラ701は、対象ケーブルスロットに対応するロケーションLEDを点灯させる。
ステップ2602において、ストレージコントローラ701は、管理テーブル1800から、対象スイッチポートのDPCステータス1804のエントリを読み出す。
ステップ2603において、ストレージコントローラ701は、対象スイッチポートにおいて、DPC未起動であった場合(N)にはステップ2604へ進み、DPC起動済であった場合(Y)はステップ2607へ進む。
ステップ2604において、ストレージコントローラ701は、対象ケーブルに関連するI/Oを停止させる。
ステップ2605において、ストレージコントローラ701は、割り込みハンドラの動作を、「ホットリムーブ」に設定する。つまり、ケーブルスロット管理テーブル1800において、対象ケーブルスロットに対応するホットリムーブ制御1805のエントリを「OFF」から「ON」に書き換える。
ステップ2606において、ストレージコントローラ701は、対象スイッチポートの「DPC Software Triggerビット」をセットする。その結果DPCが起動し、スイッチからプロセッサ702またはプロセッサ708へ割り込みが送信される。割り込みを受信したプロセッサ702または708は、割り込みハンドラを実行する。
ここで割り込みハンドラのフローチャートを説明した後、再び図26のフローチャートに戻って説明する。
図27は、割り込みハンドラのフローチャートである。
ステップ2701において、割り込みハンドラは、ケーブルスロット管理テーブル1800において、対象スイッチポートのDPCステータス1804を更新する。
ステップ2702において、割り込みハンドラは、ケーブルスロット管理テーブル1800から、対象ケーブルスロットに対応するホットリムーブ制御1805のエントリを読み出す。
ステップ2703において、読み出した結果が「ON(ホットリムーブ)」の場合(Y)は、ステップ2707へ進む。読み出した結果が「OFF(ホットリムーブではない)」の場合(N)は、ステップ2704へ進む。
ステップ2704から2706は、ストレージコントローラ701に対する事前通知無しにDPCが起動した場合、つまり障害発生時の処理である。
ステップ2704において、割り込みハンドラは、割り込み送信元スイッチポートに関連する新規I/Oの発行を停止させる。
ステップ2705において、割り込みハンドラは、割り込み送信元スイッチポートに関連する未完了I/Oの処理を中止させる。
ステップ2706において、割り込みハンドラは、割り込み送信元スイッチポートにおいて障害が検出されたことを、管理インターフェース714に表示する。
ステップ2707において、割り込みハンドラは、対象ケーブルスロットに対応するスイッチLEDを点灯させる。
以上で、割り込みハンドラが終了する。
次に、図26のフローチャートの説明に戻る。
ステップ2607において、オペレーターは、ロケーションLEDとスイッチLEDが点灯しているケーブルスロットから、対象ケーブルを取り外す。
ステップ2608において、ストレージコントローラ701は、ケーブルスロット管理テーブル1800から、対象ケーブルに関連するエントリを削除する。さらに、ストレージコントローラ701は、対象ケーブルスロットに対応するロケーションLEDを消灯させる。
以上で、実施例4におけるケーブルの取り外しが完了する。
実施例4によれば、オペレーターは、ケーブルのアップストリーム側が接続されたケーブルスロットに対応するスイッチLEDの表示に従って、安全にケーブルを取り外すことができる。
以下、図28から図29を参照して、実施例5に係るケーブルの取り外し方法を説明する。
始めに、実施例5において、ケーブルスロットからケーブルを取り外す際のフローの概要を示す。
1)対象ケーブルに関連するI/O動作を停止させる。
2)割り込みハンドラの動作を、取り外しに設定する。
3)対象ケーブルスロットに対応して備えられたLEDが、ケーブル取り外し準備完了を示す状態を表示する。
4)対象ケーブルスロットから対象ケーブルを取り外すことにより、対象スイッチポートにおいてDPCを起動させる。
5)対象ケーブルスロット対応してに備えられたLEDが、ケーブル取り外し完了を示す状態を表示する。
図28は、実施例5に係るケーブル取り外しのフローチャートである。
図28のフローチャートは、2つのステップ(2806、2807)を除いて図26のフローチャートと同様である。
ステップ2806において、ストレージコントローラ701は、対象ケーブルスロットに対応するスイッチLEDを点滅させる。実施例5は実施例4とは異なり、ソフトウェアによるDPC起動を行わない。
ステップ2807おいて、ストレージ装置のオペレーターは、ロケーションLEDが点灯し、且つスイッチLEDが点滅あるいは点灯しているケーブルスロットから、対象ケーブルを取り外す。実施例5は実施例4とは異なり、ケーブルの取り外しを契機としてDPCを起動させる。
図28の他のステップは図26のフローチャートと同様であるので、説明を省略する。
図29は、実施例5に係るケーブル取り外しフロー内で起動される割り込みハンドラのフローチャートである。図29のフローチャートは、割り込みハンドラが起動される契機以外は図27のフローチャートと同様であるので、説明を省略する。
実施例5によれば、オペレーターは実施例4と同様に、ケーブルのアップストリーム側が接続されたケーブルスロットに対応するスイッチLEDの表示に従って、安全にケーブルを取り外すことができる。
以下、図30から図31を参照して、実施例6に係るSSDの取り外し方法を説明する。
始めに、実施例6において、ドライブスロットからSSDを取り外す際のフローの概要を示す。
1)対象SSDに関連するI/O動作を停止させる。
2)DPC起動に伴う割り込み送信を無効化する。
3)対象スイッチポートにおいて、ソフトウェアによりDPCを起動させる。
4)対象ドライブスロット対応してに備えられたLEDが、SSD取り外し準備完了を示す状態を表示する。
図30は、実施例6に係るSSD取り外しのフローチャートである。
図30のフローチャートは、図1のフローチャートに対して、ステップ3002と3003で実行されるサブプログラムの内容と、ステップ3004が追加されている点が異なる。
ステップ3002において、ストレージコントローラ701は、プロセッサ702により図31のサブプログラム4を実行する。
ステップ3003において、ストレージコントローラ701は、プロセッサ708により図31のサブプログラム4を実行する。
ステップ3004において、ストレージコントローラ701は、対象ドライブスロットに対応するシャットダウンLEDを点灯させる。
図30の他のステップは、図1のフローチャートと同様であるので説明を省略する。
図31は、実施例6に係るSSD取り外しフロー内で実行されるサブプログラム4のフローチャートである。
図31のフローチャートは、図2のフローチャートに対して、ステップ3104で実行される内容が異なる。
ステップ3104において、ストレージコントローラ701は、対象スイッチポートの「DPC Interrupt Enable」を無効化する。これにより、対象スイッチポートにおいてDPCが起動した場合でも、割り込みが送信されなくなる。つまり、実施例6は、実施例1とは異なり、DPC起動に伴って割り込みハンドラを実行しない。
図31の他のステップは、図2のフローチャートと同様であるので、説明を省略する。
以上説明したように、実施例6では、DPC起動に伴い割り込みが送信されないので、割り込みハンドラが実行されない。つまり、実施例6のSSD取り外し方法では、割り込みハンドラ実行に伴うプロセッサ負荷を低減することができる。
以下、図32を参照して、実施例7に係るケーブルの取り外し方法を説明する。
始めに、実施例7において、ケーブルスロットからケーブルを取り外す際のフローの概要を示す。
1)対象ケーブルに関連するI/O動作を停止させる。
2)DPC起動に伴う割り込み送信を無効化する。
3)対象スイッチポートにおいて、ソフトウェアによりDPCを起動させる。
4)対象ケーブルスロット対応してに備えられたLEDが、ケーブル取り外し準備完了を示す状態を表示する。
図32は、実施例7に係るケーブル取り外しのフローチャートである。
図32のフローチャートは、図26のフローチャートに対して、ステップ2604、2605の替わりにステップ3205を実行することと、ステップ3207が追加されている点が異なる。
ステップ3205において、ストレージコントローラ701は、対象スイッチポートの「DPC Interrupt Enable」を無効化する。これにより、対象スイッチポートにおいてDPCが起動した場合でも、割り込みが送信されなくなる。つまり、実施例7は、実施例4とは異なり、DPC起動に伴って割り込みハンドラを実行しない。
ステップ3205において、ストレージコントローラ701は、対象ケーブルスロットに対応するスイッチLEDを点灯させる。
図32の他のステップは、図26のフローチャートと同様であるので、説明を省略する。
以上説明したように、実施例7では、DPC起動に伴い割り込みが送信されないので、割り込みハンドラが実行されない。つまり、実施例7のケーブル取り外し方法では、割り込みハンドラ実行に伴うプロセッサ負荷を低減することができる。
以下、図35と図36を参照して、実施例8に係るストレージ装置について説明する。
実施例8では、処理の概要として、ドライブエンクロージャ内の2個のスイッチの一方に障害が発生した場合に、2個のスイッチ間を接続したリンクによって、その障害を検出する。次に、障害が発生したスイッチを、前記リンクを用いて正常なスイッチのダウンストリーム側に接続されるように設定する。
図35は、図7のドライブエンクロージャ751の詳細を示す図である。図7に対して図35は、HDDに関する配線は省略し、コネクタ771〜774に接続する単一ポートSSD3501〜3504を追記している。
スイッチ752は、アップストリームポート781と、ダウンストリームポート782〜785と、管理ポート786を備える。アップストリームポート781と、ダウンストリームポート782〜785は、仮想PCIバス780で接続されている。正確には、仮想PCIバス780には仮想PCI-PCIブリッジが接続される。ここでは、アップストリームポート781及びダウンストリームポート782〜785が仮想PCI-PCIブリッジを備えている。また、管理ポート786は、プロセッサ708からスイッチ752の初期化時に設定情報を入出力可能なポートであり、例えば、各スイッチポートのアップストリームまたはダウンストリームの設定を変更することができる。スイッチ752の各ダウンストリームポートは、DPCを使用可能である。
スイッチ754は、アップストリームポート791と、ダウンストリームポート792〜795と、管理ポート796を備える。アップストリームポート791と、ダウンストリームポート792〜795は、仮想PCIバス790で接続されている。スイッチ752と同様に、アップストリームポート791及びダウンストリームポート792〜795は、仮想PCI-PCIブリッジを備えている。また、管理ポート796は、プロセッサ702からスイッチ754の初期化時に設定情報を入出力可能なポートであり、例えば、各スイッチポートのアップストリームまたはダウンストリームの設定を変更することができる。スイッチ754の各ダウンストリームポートは、DPCを使用可能である。
ストレージコントローラ701は、スイッチ752、エンクロージャ制御部753及び管理ポート796を介して、スイッチ754の設定情報の入力と基本リセット(Fundamental Reset)が可能である。同様に、ストレージコントローラ701は、スイッチ754、エンクロージャ制御部758及び、管理ポート786を介して、スイッチ752の設定情報の入力と基本リセットが可能である。
信号線762は、ダウンストリームポート782とダウンストリームポート792を接続するクロスリンクである。ストレージ装置700の正常動作時は、ダウンストリームポート782とダウンストリームポート792においてDPCを有効化し、且つ信号線762をリンクアップさせておく。
ストレージ装置700において、ドライブエンクロージャ751をストレージコントローラ701に対してn段(nは1以上の整数)縦続して接続することが可能であり、同じドライブエンクロージャ内に備えられる2個のスイッチの、ストレージコントローラ701からのスイッチ接続段数(n段)は同じである。また、図35に示すように、単一ポートSSDを収容するドライブエンクロージャ751では、n段目スイッチ752、754のDPCをサポートするダウンストリームポート782とダウンストリームポート792をクロスリンクで接続する。
次に、実施例8におけるフェールオーバー動作について、図36を参照して説明する。
ここで、ケーブル733に関連するリンクがダウンする障害の発生を想定する。ただし、スイッチ752のハードウェアに故障は無いとし、ストレージコントローラ701は、管理ポート786を介して、スイッチ752の設定を変更できる、とする。アップストリームポート781に接続されているリンクのダウンにより、スイッチ752の全てのダウンストリームポート782〜785においてリンクダウンが発生する。これらの結果、ストレージコントローラ701は、単一ポートSSD3501と3502をアクセスできなくなる。
信号線762のリンクダウンは、スイッチ754のダウンストリームポート792においてDPCを起動させる。DPC起動に伴うスイッチ754からの割り込み送信により、ストレージコントローラ701は、スイッチ752に関連した障害が発生したことを検出することができる。
障害を検出したストレージコントローラ701は、管理ポート786を介してスイッチ752にアクセスし、スイッチポート781を仮想PCIバス780から切り離す。
次に、ストレージコントローラ701は、管理ポート786を介して、スイッチポート782をダウンストリームポートからアップストリームポートへ設定変更し、スイッチ752を基本リセットする。
次に、スイッチ754のダウンストリームポート792において、ストレージコントローラ701は、DPCステータスレジスタ600の「DPC Trigger Statusビット」をクリアする。その結果、ダウンストリームポート792以下がリンクアップする。スイッチ752は、スイッチポート782をアップストリームポートとする新しい設定でホットリセット(Hot Reset)される。
スイッチ752がホットリセットされた後、ストレージコントローラ701は、スイッチ754とスイッチ752を介して、単一ポートSSD3501と3502をアクセス可能になる。
ドライブエンクロージャ751は、図11〜図13のドライブエンクロージャ721と同様な構成である。ドライブエンクロージャ751のスイッチパッケージ1210は、スイッチ752、エンクロージャ制御753及びスイッチLED1211、1215を備える。ドライブエンクロージャ751のスイッチパッケージ1230は、スイッチ757、エンクロージャ制御758及びスイッチLED1231、1235を備える。
上記の通り、ドライブエンクロージャ751では、ケーブル733がリンクダウンしている場合でも、スイッチ752を使用中の場合がある。そこで、ケーブル733と信号線762の両方がリンクダウンしている場合に、ドライブエンクロージャ751のスイッチLED1211が点灯されることにする。ストレージ装置700のオペレーターは、ドライブエンクロージャ751のスイッチLED1211が点灯している場合に、ドライブエンクロージャ751のスイッチパッケージ1210を取り外すことができる。
同様に、ケーブル734と信号線762の両方がリンクダウンしている場合に、ドライブエンクロージャ751のスイッチLED1231が点灯されることにする。ストレージ装置700のオペレーターは、ドライブエンクロージャ751のスイッチLED1231が点灯している場合に、ドライブエンクロージャ751のスイッチパッケージ1230を取り外すことができる。
単一ポートSSD3501から3504の取り外し手順は、SSDを接続しているスイッチポートが1個になる点が異なるだけで、実施例1等におけるデュアルポートSSDの場合と同様である。
以上、本発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
例えば、ドライブエンクロージャにおいてHDDとSSDがコネクタを共用する場合について実施例を説明したが、SSD専用のドライブエンクロージャ等において、SSD専用のコネクタにSSDを接続している場合であっても、本発明のSSD取り外し方法は適用可能であることは言うまでもない。
700…ストレージ装置
701…ストレージコントローラ
721、751…ドライブエンクロージャ
702、708…プロセッサ
705、711…メモリ
722、727、752、757…(PCI-Express)スイッチ
703、709…フロントエンドインターフェース
706、712…バックエンドインターフェース
724、729、754、759…エクスパンダ
707、713…ダウンストリームポート
723、728、753、758…エンクロージャ制御部
741〜744、771〜774…コネクタ
714…管理インターフェース

Claims (9)

  1. 第1及び第2のプロセッサを有するストレージコントローラと、
    ハードディスクドライブまたは複数ポートのソリッドステートドライブが挿入される少なくとも1つ以上のドライブスロットと、
    Downstream Port Containment(DPC)をサポートするポートを備えるPCI-Expressスイッチで構成され、前記ソリッドステートドライブを前記ポートを介して、前記第1のプロセッサに接続する第1のスイッチ及び前記第2のプロセッサに接続する第2のスイッチと、
    前記ドライブスロットに挿入された前記ハードディスクドライブまたは前記ソリッドステートドライブの取り外し可否を表示する表示手段と、
    を備え、
    前記ドライブスロットに前記ハードディスクドライブが挿入されている場合には、
    前記ハードディスクドライブへの給電が停止されると、前記表示手段は前記ハードディスクドライブが取り外し可能であることを表示し、
    前記ドライブスロットに前記ソリッドステートドライブが挿入されている場合には、
    前記ソリッドステートドライブを接続した前記第1のスイッチの前記ポート及び前記第2のスイッチの前記ポートの両方においてDPCが起動されると、前記表示手段は前記ソリッドステートドライブが取り外し可能であることを表示する
    ことを特徴とするストレージ装置。
  2. 請求項1記載のストレージ装置であって、
    前記ソリッドステートドライブを前記ドライブスロットから取り外す場合には、
    前記第1及び第2のプロセッサにより前記ソリッドステートドライブに関連する入出力動作を停止させた状態で、取り外し対象の前記ソリッドステートドライブに接続された前記第1及び第2のスイッチは、それぞれが備える前記ポートにおいてDPCを起動させることにより前記第1及び第2のプロセッサへ割り込みを送信し、
    前記第1及び第2のプロセッサは、前記第1及び第2のスイッチから送信される前記割り込みに応答して、前記表示手段に前記ソリッドステートドライブが取り外し可能であることを表示させる
    ことを特徴とするストレージ装置。
  3. 請求項1記載のストレージ装置であって、
    前記ソリッドステートドライブを前記ドライブスロットから取り外す場合には、
    前記第1及び第2のプロセッサは、前記ソリッドステートドライブに関連する入出力動作を停止させて、前記表示手段に前記ソリッドステートドライブが取り外し可能であることを表示させ、
    取り外し対象の前記ソリッドステートドライブを接続した前記第1及び第2のスイッチは、前記ドライブスロットからの前記ソリッドステートドライブの取り外しに伴い、それぞれが備える前記ポートにおいてDPCを起動させることにより前記第1及び第2のプロセッサへ割り込みを送信する
    ことを特徴とするストレージ装置。
  4. 請求項1記載のストレージ装置であって、
    前記ソリッドステートドライブを前記ドライブスロットから取り外す場合には、
    前記第1及び第2のプロセッサは、
    前記ソリッドステートドライブに関連する入出力動作を停止させて、前記第1及び第2のスイッチからのDPC起動による割り込み送信を無効化し、
    取り外し対象の前記ソリッドステートドライブを接続した前記第1及び第2のスイッチのそれぞれが備える前記ポートにおいてDPCが起動されると、前記表示手段に前記ソリッドステートドライブが取り外し可能であることを表示させる
    ことを特徴とするストレージ装置。
  5. 請求項1記載のストレージ装置であって、更に、
    前記ソリッドステートドライブを前記ドライブスロットに取り付ける場合には、
    前記第1及び第2のプロセッサは、前記ドライブスロットに挿入された前記ソリッドステートドライブに接続される前記第1のスイッチのポート及び前記第2のスイッチのポートの両方においてDPCを解除した後に、前記表示手段に前記ソリッドステートドライブが取り外し不可能であることを表示させる
    ことを特徴とするストレージ装置。
  6. 請求項1記載のストレージ装置であって、
    前記ストレージ装置は、前記ハードディスクドライブまたは前記ソリッドステートドライブを収容するエンクロージャを備え、
    前記ストレージコントローラは、前記第1のスイッチのアップストリーム側に位置し前記第1のスイッチを接続する第1のダウンストリームポートを備え、
    前記第1のスイッチは、ダウンストリーム側にDPCをサポートする別のスイッチを接続するための第2のダウンストリームポートを備え、
    前記エンクロージャは、前記第1のダウンストリームポートにおけるDPC起動有無を表示する表示手段と、前記第2のダウンストリームポートにおけるDPC起動有無を表示する表示手段を備える
    ことを特徴とするストレージ装置。
  7. 第1及び第2のプロセッサを有するストレージコントローラと、
    ハードディスクドライブまたは単一ポートのソリッドステートドライブが挿入される少なくとも1つ以上のドライブスロットと、
    Downstream Port Containment(DPC)をサポートするポートを備えるPCI-Expressスイッチで構成され、前記ソリッドステートドライブを前記ポートを介して、前記第1のプロセッサに接続する第1のスイッチ及び前記第2のプロセッサに接続する第2のスイッチと、
    前記ハードディスクドライブまたは前記ソリッドステートドライブが挿入された前記ドライブスロットに対応して、当該挿入されたドライブの取り外し可否を表示する表示手段と、
    を備え、
    前記ドライブスロットに前記ハードディスクドライブが挿入されている場合には、前記ハードディスクドライブへの給電が停止されると、前記表示手段は前記ハードディスクドライブが取り外し可能であることを表示し、
    前記ドライブスロットに前記単一ポートのソリッドステートドライブが挿入されている場合には、前記ソリッドステートドライブを接続した前記第1のスイッチの前記ポートまたは前記第2のスイッチの前記ポートにおいてDPCが起動されている場合に、前記表示手段は前記ソリッドステートドライブが取り外し可能であることを表示し、更に、
    前記第1のスイッチのダウンストリームポートと前記第2のスイッチのダウンストリームポートを第1のリンクで接続し、
    前記第1のスイッチのアップストリーム側の接続または前記第2のスイッチのアップストリーム側の接続のどちらか一方に障害が発生した場合に、他方の正常な接続側にある前記第1または第2のスイッチの前記ダウンストリームポートにおいてDPCを起動し、障害が発生した接続側にある前記第1または第2のスイッチの前記ダウンストリームポートをアップストリームポートに変更し、正常な接続側にある前記第1または第2のスイッチの前記ダウンストリームポートのDPCを解除し、前記第1のリンクを経由して前記ドライブへのアクセスを可能にする
    ことを特徴とするストレージ装置。
  8. 請求項7記載のストレージ装置であって、
    前記単一ポートのソリッドステートドライブを収容するエンクロージャを備え、
    前記エンクロージャに前記第1のスイッチ及び前記第2のスイッチを配置して前記ストレージコントローラと接続する
    ことを特徴とするストレージ装置。
  9. 請求項8記載のストレージ装置であって、
    前記エンクロージャを前記ストレージコントローラに対してn段(nは2以上の整数)縦続して接続する
    ことを特徴とするストレージ装置。
JP2014558326A 2013-01-23 2013-01-23 PCI−Express接続ソリッドステートドライブを適用したストレージ装置 Expired - Fee Related JP5898790B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/051257 WO2014115257A1 (ja) 2013-01-23 2013-01-23 PCI-Express接続ソリッドステートドライブを適用したストレージ装置

Publications (2)

Publication Number Publication Date
JP5898790B2 true JP5898790B2 (ja) 2016-04-06
JPWO2014115257A1 JPWO2014115257A1 (ja) 2017-01-19

Family

ID=51227074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014558326A Expired - Fee Related JP5898790B2 (ja) 2013-01-23 2013-01-23 PCI−Express接続ソリッドステートドライブを適用したストレージ装置

Country Status (3)

Country Link
US (1) US9703744B2 (ja)
JP (1) JP5898790B2 (ja)
WO (1) WO2014115257A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016099513A1 (en) * 2014-12-18 2016-06-23 Hewlett Packard Enterprise Development Lp Storage drive adapter
US10466923B2 (en) * 2015-02-27 2019-11-05 Samsung Electronics Co., Ltd. Modular non-volatile flash memory blade
JP2016197360A (ja) * 2015-04-06 2016-11-24 富士通株式会社 情報処理装置、情報処理装置の制御プログラム及び情報処理装置の制御方法
JP6455302B2 (ja) * 2015-04-30 2019-01-23 富士通株式会社 バス通信システム
US9940280B1 (en) * 2015-06-26 2018-04-10 EMC IP Holding Company LLC Provisioning an enclosure with PCIe connectivity and storage devices
US10599510B2 (en) * 2015-07-08 2020-03-24 Hitachi, Ltd. Computer system and error isolation method
KR20170087602A (ko) * 2016-01-21 2017-07-31 현대자동차주식회사 네트워크에서 동작 모드의 전환 방법
US10255955B2 (en) 2016-02-09 2019-04-09 Samsung Electronics Co., Ltd. Multi-port memory device and a method of using the same
US10223313B2 (en) * 2016-03-07 2019-03-05 Quanta Computer Inc. Scalable pooled NVMe storage box that comprises a PCIe switch further connected to one or more switches and switch ports
CN106250330A (zh) * 2016-07-26 2016-12-21 深圳市金泰克半导体有限公司 一种具有led功能的pcie接口固态硬盘及其实现方法
CN108733479B (zh) * 2017-04-24 2021-11-02 上海宝存信息科技有限公司 卸载固态硬盘卡的方法以及使用该方法的装置
CN108647169B (zh) * 2018-05-14 2020-11-06 杭州宏杉科技股份有限公司 一种热插拔处理方法及装置
US11373782B2 (en) 2019-09-02 2022-06-28 International Business Machines Corporation Indicator activation over an alternative cable path
CN113778915B (zh) * 2020-06-09 2023-10-10 慧荣科技股份有限公司 生产固态硬盘的方法及计算机可读取存储介质及装置
US11500717B2 (en) * 2020-07-23 2022-11-15 EMC IP Holding Company LLC Method for detecting data storage system, device and data storage system
US11596073B2 (en) * 2021-04-22 2023-02-28 EMC IP Holding Company LLC Electronic equipment that provides multi-function slots
CN114356644B (zh) * 2022-03-18 2022-06-14 阿里巴巴(中国)有限公司 Pcie设备故障处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007065984A (ja) * 2005-08-31 2007-03-15 Hitachi Ltd 記憶制御装置及び分離型記憶装置
JP2007188428A (ja) * 2006-01-16 2007-07-26 Fuji Xerox Co Ltd 半導体ストレージ装置およびストレージシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752346B2 (en) * 2007-12-21 2010-07-06 Aprius, Inc. Universal routing in PCI-Express fabrics
US8719485B2 (en) * 2008-06-27 2014-05-06 Marvell World Trade Ltd. Solid-state disk with wireless functionality
JP5281942B2 (ja) * 2009-03-26 2013-09-04 株式会社日立製作所 計算機およびその障害処理方法
US8510592B1 (en) * 2009-09-15 2013-08-13 Netapp, Inc. PCI error resilience
US8880764B2 (en) * 2011-08-30 2014-11-04 Red Hat Israel, Ltd. Pessimistic interrupt affinity for devices
US9767058B2 (en) * 2011-11-17 2017-09-19 Futurewei Technologies, Inc. Method and apparatus for scalable low latency solid state drive interface
US9086965B2 (en) * 2011-12-15 2015-07-21 International Business Machines Corporation PCI express error handling and recovery action controls
US8825910B2 (en) * 2012-04-06 2014-09-02 International Business Machines Corporation Pass-through converged network adaptor (CNA) using existing ethernet switching device
KR101255265B1 (ko) * 2012-08-13 2013-04-15 주식회사 유니테스트 솔리드 스테이트 드라이브 테스터에서 에러 발생장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007065984A (ja) * 2005-08-31 2007-03-15 Hitachi Ltd 記憶制御装置及び分離型記憶装置
JP2007188428A (ja) * 2006-01-16 2007-07-26 Fuji Xerox Co Ltd 半導体ストレージ装置およびストレージシステム

Also Published As

Publication number Publication date
JPWO2014115257A1 (ja) 2017-01-19
WO2014115257A1 (ja) 2014-07-31
US9703744B2 (en) 2017-07-11
US20150317272A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
JP5898790B2 (ja) PCI−Express接続ソリッドステートドライブを適用したストレージ装置
TWI639919B (zh) 資料儲存系統中的多埠中介件架構
CN111177029B (zh) 用于管理软件定义的永久性存储器的系统及方法
US10114658B2 (en) Concurrent testing of PCI express devices on a server platform
EP3173937B1 (en) Pcie network system with fail-over capability and operation method thereof
JP5637873B2 (ja) 計算機システムおよびpciカードのhba識別子引き継ぎ方式
US20110283150A1 (en) Storage apparatus and method for controlling the same
WO2021098485A1 (zh) PCIe设备的上下电控制方法以及系统
US8527666B2 (en) Accessing a configuration space of a virtual function
US10614022B2 (en) PCIe fabric connectivity expansion card
JP2007305075A (ja) 複数のテープ装置を備えるストレージシステム
US9524262B2 (en) Connecting expansion slots
JP2007206766A (ja) データストレージシステム、データストレージ制御装置及びその障害箇所診断方法。
US10346340B1 (en) Hot swap control circuit and related storage server system
US8725923B1 (en) BMC-based communication system
US20190197000A1 (en) Storage system and backend construction method for storage system
US20150074448A1 (en) Cluster system, information processing device, method of controlling cluster system, and recording medium
JP2009053946A (ja) 二重化コントーラ構成ブロックデバイス制御装置
US7487293B2 (en) Data storage system and log data output method upon abnormality of storage control apparatus
WO2020001150A1 (zh) 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质
US8874965B2 (en) Controlling program code execution shared among a plurality of processors
US8631177B1 (en) Multi-port device with controller for storage media device port
US8352661B1 (en) Data storage systems having seamless software upgrades
JP2007094609A (ja) Ioカード保守が容易なコンピュータシステム
CN113867835B (zh) 用于dsp动态加载的装置及方法

Legal Events

Date Code Title Description
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: 20160301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160304

R150 Certificate of patent or registration of utility model

Ref document number: 5898790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees