図1Aは、本発明の第一実施例に係る記憶制御システムの外観の概略を示す。
記憶制御システム1は、例えば一つの筐体10に構築することができる。なお、筐体10内の構成を分かり易く示すため、筐体10は想像線(図1Aでは点線)で示している。
筐体10内には、例えば、多段(図示の例では三段)になった複数のパートが存在する。具体的には、例えば、上位パート2、中位パート4及び下位パート9が存在する。
上位パート2には、記憶制御システム1の高さ方向に配列された複数のCHN−NAS部3が存在する。CHN−NAS部3は、一種の回路基板である。各CHN−NAS部3は、横にされた状態(換言すれば寝かされた状態)で搭載される。CHN−NAS部3については後に説明する。
中位パート4の正面側には、記憶制御システム1の幅方向に配列された複数枚のインターフェース制御基板が存在する。各インターフェース制御基板は、上記CHN−NAS部3以外の基板、例えば、CHN−IO部5又はCHA7である。CHN−IO部5もCHA7も、一種の回路基板である。各CHN−IO部5又はCHA7は、縦にされた状態(換言すれば立たされた状態)で搭載される。CHN−IO部5及びCHA7については後に説明する。
中位パート4の背面側には、図示しないが、記憶制御システム1の幅方向に配列された複数の記憶デバイスが存在する。各記憶デバイスは、ハードディスクドライブであるが、ハードディスクドライブに限らず、光ディスクドライブ(例えばDVDドライブ)や、磁気テープドライブ等、任意の記憶デバイスであってもよい。
下位パート6には、電源ユニットやファンユニット等を含んだ電源部9が存在する。この電源部9からの給電により、上述した各種基板3,5及び7が駆動することができるようになっている。
図1Bは、第一実施例に係る記憶制御システム1を備えるコンピュータシステムの構成例を示すブロック図である。
記憶制御システム1は、ホスト装置11が接続された第一の通信ネットワーク49と、ホスト装置21が接続された第二の通信ネットワーク51とに接続されている。第一の通信ネットワーク49は、ファイルレベルのデータがやり取りされる通信ネットワーク(例えばLAN(Local Area Network))であり、第二の通信ネットワーク51は、ブロックレベルのデータがやり取りされる通信ネットワーク(例えばSAN(Storage Area Network))である。
ホスト装置11、21は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成することができる。ホスト装置11,21は、例えば、記憶制御システム1を利用するためのアプリケーションプログラム(以下、AP)13,23や、通信ポート15,25や、Windows(登録商標)又はUNIX(登録商標)等のOS(オペレーティングシステム)を備えることができる。ファイルアクセス要求を発行するホスト装置11に備えられるAP13としては、例えば、OSがUNIX(登録商標)の場合、NFS(Network File System)であり、OSがWindows(登録商標)の場合、CIFS(Common Interface File System)である。
記憶制御システム1は、例えば、複数の記憶デバイス45を備えるRAIDシステムとすることができる。記憶制御システム1は、一又は複数のCHA(チャネルアダプタ)7と、一又は複数のCHN(ネットワークチャネルアダプタ)8と、複数のDKA(ディスクアダプタ)35と、キャッシュメモリ41と、共有メモリ39と、接続部33と、複数の記憶デバイス45から成る記憶部43と、コントロールユニット31とを備えている。
CHA7は、記憶デバイス45に対するデータ入出力(書込み及び読み出しといったアクセス)のための処理を行うプロセッサ(以下、IOプロセッサ)を備えたインターフェース制御基板である。CHA7は、ホスト装置21から第二の通信ネットワーク51を介してブロックアクセス要求(すなわち、ブロックレベルのアクセス要求)を受け、IOプロセッサがそのブロックアクセス要求を受けてDKA35に発行することにより、記憶デバイス45にアクセスすることができる。CHA7とホスト装置21との間の通信プロトコルは、ファイバチャネルなど種々のプロトコルを採用することができる。
CHN8は、一種のインターフェース制御装置であり、ファイルアクセス要求(すなわち、ファイルレベルのアクセス要求)を受けてブロックアクセス要求に変換する第一の機能と、そのブロックアクセス要求を受けてDKA35に発行する第二の機能とを有する。CHN8は、第一の機能を有する回路基板3と、上記第二の機能を有する回路基板5とのように、複数の回路基板によって構成されている。以下、回路基板3を、上記の機能の観点から、便宜上、「CHN−NAS部3」と呼び、回路基板5を、「CHN−IO部5」と呼ぶ。CHN−NAS部3及びCHN−IO部5については後に詳細に説明する。
各DKA35は、記憶デバイス45との間のデータ授受を行うものである。各DKA35は、各DKA35は、CPUやメモリ等を備えた一種のインターフェース制御基板として構成されている。各DKA35は、CHN−IO部5又はCHA7から発行されたアクセス要求に従って記憶デバイス45に対してデータの読み書きを行う。
キャッシュメモリ41は、例えば揮発性又は不揮発性のメモリであり、ホスト装置11又は21から受信されたデータや、記憶デバイス45から読出されたデータを一時的に記憶することができる。
共有メモリ39は、例えば不揮発性のメモリであり、ホスト装置11,21との間でやり取りされるデータに関する制御情報(例えば、キャッシュメモリ41上に確保されたどのキャッシュ領域にどのデータが格納されるべきかを示す情報)等が格納される。なお、図示の例では、キャッシュメモリ41と共有メモリ39とは、物理的に分離しているが、一つのメモリであっても良い。その場合、そのメモリ上のメモリ空間が、論理的に、キャッシュメモリ用の空間と共有メモリ用の空間とに分けられても良い。
接続部33は、CHN−IO部5、DKA35、キャッシュメモリ41及び共有メモリ120を相互に接続させる。接続部33は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。また、接続部33は、コントロールユニット31が、CHN−IO部5、CHA7、DKA35又は共有メモリ39にアクセスするための通信ネットワーク(例えばLAN)を含んでいても良い。
コントロールユニット31は、CHN−IO部5、CHA7、DKA35又は共有メモリ39にアクセスすることができる装置である。具体的には、例えば、コントロールユニット31は、保守用の端末であり、管理者が操作する入力装置(例えばキーボードやマウス)や、管理者による操作に従う処理を実行する制御装置(例えばCPU等が搭載されたマザーボード)や、共有メモリ39等に設定されている情報が表示される表示装置(例えばディスプレイ画面)を備えることができる。コントロールユニット31は、記憶制御システム1に搭載されていても良いし、LAN等の通信ネットワークを介して遠隔に備えられてもよい。また、コントロールユニット31の機能が、ホスト装置11、21に搭載され、ホスト装置11、21が、コントロールユニット31として、記憶制御システム1をコントロールしても良い。
このような記憶制御システム1では、以下のような流れで、記憶デバイス35に対するデータの入出力を行うことができる。
例えば、データの読出しのためのファイルアクセス要求がホスト装置11から発行された場合、CHN−NAS部3が、そのファイルアクセス要求を受信する。CHN−NAS部3は、受信したファイルアクセス要求をブロックアクセス要求に変換し、そのブロックアクセス要求をCHN−IO部5に送信することができる。CHN−IO部5は、ブロックアクセス要求を受信し、受信したブロックアクセス要求をDKA35に送信することができる。DKA35は、ブロックアクセス要求を受信し、その要求に従って、記憶デバイス35からデータを読み出し、読み出したデータをキャッシュメモリ41に書き込むことができる。CHN−IO部5は、キャッシュメモリ41に書き込まれたデータを読み出し、読み出したデータをCHN−NAS部3に送信することができる。CHN−NAS部3は、CHN−IO部5からデータを受信し、受信したデータをホスト装置11に送信することができる。
また、例えば、データの書込みのためのファイルアクセス要求がホスト装置11から発行された場合、CHN−NAS部3が、そのファイルアクセス要求及びデータを受信することができる。CHN−NAS部3は、受信したファイルアクセス要求をブロックアクセス要求に変換し、そのブロックアクセス要求及び上記受信したデータをCHN−IO部5に送信することができる。CHN−IO部5は、ブロックアクセス要求及びデータを受信し、受信したブロックアクセス要求をDKA35に送信し、且つ、受信したデータをキャッシュメモリ41に書き込むことができる。DKA35は、ブロックアクセス要求を受信し、その要求に従って、キャッシュメモリ41からデータを読み出し、読み出したデータを記憶デバイス45に書き込むことができる。
以上が、記憶制御システム1についての概要である。次に、CHN−NAS部3及びCHN−IO部5について詳細に説明する。
図2Aは、CHN−NAS部3の構成例を示すブロック図である。
CHN−NAS部3は、プリント配線された回路であり、複数の所定の位置の各々に、所定種類の回路部品(ハードウェア資源)が着脱可能に或いは不可能に搭載される。すなわち、CHN−NAS部3は、着脱可能な二以上の回路部品のうちのどれを搭載してどれを搭載しないかを選択することにより設計の自由度があるものとなっている。例えば、CHN−NAS部3に求める能力に応じて、不要な回路部品を搭載しないことで、能力の無駄やコスト高を抑えることができる。
CHN−NAS部3に搭載することができる複数の回路部品として、例えば、第一のポート61A、第二のポート61B、第一のLANコントローラ(以下、LANコントローラを「LANC」と略記)63A、第二のLANC63B、ブリッジLSI65、メモリコントローラ67、第一のNASメモリ69A、第二のNASメモリ69B、第一のNASプロセッサ77A、第二のNASプロセッサ77B及びIO部接続ポート79がある。これら複数の回路部品のうち、着脱可能な二以上の回路部品は、図2Aに点線で例示した回路部品、すなわち、第二のポート61B、第二のLANC63B、第二のNASメモリ69B及び第二のNASプロセッサ77Bである。その他の回路部品61A、63A、65、67、69A、77A及び79は、例えば半田付けにより、基板12に着脱不可能に搭載されている。
ポート61A及び61Bの各々は、第一の通信ネットワーク49に接続される。
LANC63A及び63Bの各々は、メモリコントローラ67及びブリッジLSI65を介してNASプロセッサ77A、77Bから受けた指示に従って、自分に対応するポート61A又は61Bの制御を行うことができる。LANC63A及び63Bの代わりに、第一の通信ネットワーク49の種類に応じた他種のインターフェース装置が搭載されてもよい。
ブリッジLSI65は、例えば、LANC63A及び63Bとメモリコントローラ67との相互の通信を可能とするためのLSI(Large-Scale Integrated circuit)である。
メモリコントローラ67は、NASプロセッサ77A及び77Bとの間の通信を制御するためのLSIである。メモリコントローラ67は、NASプロセッサ77A及び77B、NASメモリ69A及び69B、及びブリッジLSI65に接続される。
NASメモリ69A及び69Bの各々は、例えば不揮発性メモリであり、NASプロセッサ77A及び/又は77Bの制御を司るプログラムや、キャッシュメモリ41とホスト装置11との間でやり取りされるデータ等を記憶することができる。具体的には、例えば、NASメモリ69A及び69Bの各々は、ファイルシステムプログラム(図示せず)、ネットワーク制御プログラム(図示せず)、構成検出プログラム71、後処理プログラム73及び構成検出結果情報75を記憶することができる。ファイルシステムプログラムは、例えば、NASプロセッサ77A、77Bに読み込まれて実行されることにより、ファイルアクセス要求に含まれているファイル名と、そのファイル名を有するファイルが格納されている場所のアドレス情報(例えばLUN及び先頭論理ブロックアドレス)との対応づけを管理し、その対応付けに基づいて、ファイルアクセス要求をブロックアクセス要求に変換し、変換後のブロックアクセス要求を出力することができる(なお、出力されたブロックアクセス要求は、メモリコントローラ67及びIO部接続ポート79を介してCHN−IO部5に入力される)。ネットワーク制御プログラムは、例えば、NFSとSambaの2つのファイルシステムプロトコルを含んで構成される。NFSは、NFSが動作するUNIX(登録商標)オペレーティングシステムを搭載したホスト装置からのファイルアクセス要求を受け付ける。一方、Sambaは、CIFSSystem)が動作するWindows(登録商標)オペレーティングシステムを搭載したホスト端末らのファイルIOコマンドを受け付ける。構成検出プログラム71、後処理プログラム73及び構成検出結果情報75については後に説明する。
NASプロセッサ77A及び77Bの各々は、例えばCPU(例えば64ビットCPU)である。NASプロセッサ77A及び/又は77Bは、例えば、後述のIOプロセッサ85よりも高性能(例えば、演算処理速度が速い、動作クロック周波数が高い)である。NASプロセッサ77A及び77Bの各々は、メモリコントローラ67に接続される。
IO部接続ポート79は、CHN−IO部5の後述のNAS部接続ポート81に通信可能に接続される(例えばケーブル等を介して接続される)。
図2Bは、CHN−IO部5の構成例を示すブロック図である。
CHN−IO部5は、プリント配線された回路基板であり、複数の所定の位置の各々に、所定種類の回路部品(ハードウェア資源)が着脱不可能に搭載される。搭載される回路部品として、NAS部接続ポート81、データ転送LSI83、IOプロセッサ85、IOメモリ87及びコネクタ93がある。
データ転送LSI83は、NAS部接続ポート81、IOプロセッサ85及びコネクタ93に接続され、それらの間のデータ転送の制御を行うことができる。
IOメモリ87は、例えば不揮発性メモリであり、IOプロセッサ504の制御を司るコンピュータプログラム等を記憶することができる。具体的には、例えば、IOメモリ87は、構成テーブル89及び判定プログラム91を記憶することができる。構成テーブル89及び判定プログラム91については後述する。
IOプロセッサ85は、例えばCPU(例えば32ビットCPU)である。IOプロセッサ85は、例えば、IOメモリ87から読み出した一又は複数のコンピュータプログラムを実行することにより、接続部33との間のデータの授受や、NASプロセッサ77A、77Bと接続部33との間のデータ通信の中継や、その他の種々の処理を実行することができる。
コネクタ93は、接続部33に接続される。それにより、IOプロセッサ85が、コネクタ93及びデータ転送LSI83を介して、接続部33と通信可能になり、故に、接続部33を介して、キャッシュメモリ41、共有メモリ39及びDKA35と通信可能になる。
以下、本実施例で行われる処理の流れの一例を説明する。
例えば、どのCHN−NAS部3とどのCHN−IO部5が対応するかを表す情報(以下、対応付け情報)が、記憶制御システム1における或る記憶域に設定される。この対応付け情報261、例えば、コントロールユニット31から接続部33を介して共有メモリ39に書き込むことができる。
図3Aは、対応付け情報の構成例を示す。
対応付け情報261では、例えば、CHN−NAS部3のID(例えば、搭載位置を表す番号)と、CHN−IO部5のID(例えば、搭載位置を表す番号)とが対応付けられる。その対応付けは、実際に、どのCHN−NAS部3にどのCHN−IO部5が通信可能に接続されたかに従って行われる。図示の例では、ID「1」のCHN−NAS部3と、ID「1」のCHN−IO部5とが通信可能に接続されていることを示す。
なお、CHN−NAS部3とCHN−IO部5とは、必ずしも一対一で接続されなくても良い。例えば、CHN−NAS部3及びCHN−NAS部5の各々に接続ポート79、81を複数個備える、或いは、CHN−NAS部3とCHN−NAS部5との間にスイッチを介在させる等の方法により、CHN−NAS部3とCHN−IO部5とが、図示のように、一対複数、複数対一、又は複数対複数で接続されても良い。
コントロールユニット31は、この対応付け情報261に基づいて、どのCHN−NAS部3にどのCHN−IO部5が通信可能に接続されているかをディスプレイ装置に表示することができる。
図3Bは、コントロールユニット31が行う対応付け表示処理の流れの一例を示す。
コントロールユニット31は、共有メモリ39にアクセスし、共有メモリ39から対応付け情報261を抽出する(ステップS131)。コントロールユニット31は、オペレータ(例えばシステム管理者)から、基板種別と基板IDとの指定を受ける(S132)。コントロールユニット31は、指定された基板種別及び基板IDに対応する基板を、抽出された対応付け情報261から特定し、特定された基板を表示する。
この処理流れにいて、例えば、図3Cに例示するように、コントロールユニット31は、記憶制御システム1の模式図を表示したGUI(グラフィカルインターフェース)を表示し、そのGUI上で、基板種別「NAS部」で基板ID「1」の基板が指定された場合、それに対応する基板種別及び基板IDを対応付け情報261から特定し、特定された基板種別及び基板IDを有する基板(具体的には、基板種別「IO部」で基板ID「01」の基板)を、図3Cに例示するように表示することができる。同様に、例えば、上記のようなGUI上で、基板種別「IO部」で基板ID「04」の基板が指定された場合、コントロールユニット31は、それに対応する基板種別及び基板IDを対応付け情報261から特定し、特定された基板種別及び基板IDを有する基板(具体的には、基板種別「NAS部」で基板ID「3」及び「4」の2枚の基板)を、図3Dに例示するように表示することができる。
以上のような処理により、コントロールユニット31のオペレータにとって、どのCHN−NAS部3とどのCHN−IO部5とが通信可能に接続されているかの特定が容易になる。
上記のようにしてCHN−NAS部3とCHN−IO部5との対応付けが登録された後(それよりも先であっても良い)、構成テーブル89の設定が行われる。構成テーブル89は、例えば、コントロールユニット31から接続部33を介して各CHN−IO部5のIOメモリ87に書き込まれる。
図4Aは、構成テーブル89の構成例を示す。
或るCHN−IO部5のIOメモリ87に書き込まれる構成テーブル89には、そのCHN−IO部5と通信可能のCHN−NAS部(以下、「対応NAS部」と称する)3に搭載されているハードウェア構成(例えば、どんな回路部品があるか)が登録される。具体的には、例えば、構成テーブル89には、対応NAS部3において着脱可能な回路部品毎に、部品名、部品情報及び設定有無が登録される。各回路部品の部品情報に含まれる部品情報要素としては、例えば、搭載されている個数、場所、部品種別(例えば、ポートであれば、メタルケーブル用、光ケーブル用など)、及びサポート部品データである。サポート部品データは、図4Aでは、例えば、「NASP A」、「Slot A」、「Port A」、「LANC A」等が相当する。サポート部品データは、例えば、サポートされている部品に関するデータであり、具体例としては、部品のベンダ名、メーカ名、型番及びハードウェアIDのうちの少なくとも一つを含んだデータとすることができる。設定有無としては、例えば、設定される場合には、設定有りとして「1」が登録され、設定されない場合には、設定無しとして「0」が登録される。
以上が、構成テーブル89の構成例についての説明である。なお、CHN−NAS部3とCHN−IO部5とが、複数対一或いは複数対複数で接続されている場合には、構成テーブル89は、各対応NAS部3別に用意されても良い。
CHN−NAS部3とCHN−IO部5との対応付けや、構成テーブル89の設定が行われた後、例えば、記憶制御システム1の電源が投入されることにより、CHN−NAS部3及びCHN−IO部5に同時に又は別々のタイミングで電源が投入されたとする。CHN−NAS部3及びCHN−IO部5の各々は、自分の電源が投入されると、起動することができる。その起動の際、例えば、CHN−NAS部3のNASプロセッサ77A(及び/又は77B)は、構成検出プログラム71を第一のNASメモリ69A(又は第二のNASメモリ69B)から読み込んで実行することができる。
図4Bは、NASプロセッサ77Aがそれの起動時に構成検出プログラム71を読み込んで実行することにより行われる処理の流れの一例を示す。
NASプロセッサ77Aが、構成検出結果情報75が記憶される第一のNASメモリ69Aに(例えば、少なくとも構成検出結果情報75が記憶される領域に)、排他制御のためのロックをかける(S1)。
次に、NASプロセッサ77Aは、自分を搭載しているCHN−NAS部3のハードウェア構成の検出を行う(S2)。具体的には、例えば、NASプロセッサ77Aは、CHN−NAS部3上の複数の所定位置の各々に順次にアクセスすることにより、その所定位置に存在し得る回路部品からその回路部品に関する所定の部品情報要素を取得することができる。NASプロセッサ77Aは、アクセス先の所定位置に正常な回路部品が搭載されていれば、アクセス先の位置にある回路部品から所定の部品情報要素(少なくともサポート部品データ)を取得することができるが、その所定位置に故障のある回路部品が搭載されていたり、或いは、回路部品が搭載されていなかったりすれば、アクセス先から部品情報要素を取得することはできない。
NASプロセッサ77Aは、S1による検出結果に基づいて、第一のNASメモリ69A上に構成検出結果情報75を完成させる(S3)。
構成結果情報75を完成させた後、NASプロセッサ77Aは、第一のNASメモリ69Aのロックを解除する(S4)。
図5Aは、構成検出結果情報75の構成例を示す。
構成検出結果情報75は、例えば、NASプロセッサ77Aによって取得された一以上の部品情報要素の集合によって構成される。図5Aに例示する構成検出結果情報75には、第二のNASプロセッサ77B及び第二のLANC63Bの部品情報要素が含まれていない。それは、NASプロセッサ77Aが、第二のNASプロセッサ7B及び第二のLANC63Bが搭載される2つの位置以外からは部品情報要素(例えばサポート部品データ)を取得できたが、それら2つの位置からは部品情報要素を取得することができなかったため(換言すれば、第二のNASプロセッサ77B及び第二のLANC63Bだけを検出できなかったため)である。
以上が、構成検出結果情報75の構成例についての説明である。
さて、CHN−IO部5も、CHN−NAS部3と同様に、自分の電源が投入されると、起動することができる。その起動の際、例えば、CHN−IO部5のIOプロセッサ85は、判定プログラム91をIOメモリ87から読み込んで実行することができる。
図5Bは、IOプロセッサ85がそれの起動時に判定プログラム91を読み込んで実行することにより行われる処理の流れの一例を示す。
IOプロセッサ85は、起動を開始してから少なくとも上記のロックに要する所定時間を経過した後に、対応NAS部3内の第一のNASメモリ69Aにアクセスする(S11)。その結果、ロック中であれば(S12でYES)、IOプロセッサ85は、アクセスのリトライを行い(S13)、ロックが解除されるまでそれを繰り返す。
S11又はS13の結果、ロックが解除されている場合(S12でNO)、IOプロセッサ85は、第一のNASメモリ69Aから構成検出結果情報75を抽出し(S14)、IOメモリ87内の構成テーブル89と、抽出された構成検出結果情報75とを比較する(S15)。S15では、例えば、IOプロセッサ85は、構成テーブル89における各部品情報要素及び設定有無と、構成検出結果情報75における各部品情報要素とを比較する。
S15の結果、構成テーブル89において設定有りの各部品情報要素に対応する部品情報要素が構成検出結果情報75内に存在し、構成テーブル89において設定無しの各部品情報要素に対応する部品情報要素が構成検出結果情報75内に存在しておらず、且つ、構成テーブル89において設定有りの各部品情報要素と構成検出結果情報75における各部品情報要素とが全て一致した場合には(S16でYES)、IOプロセッサ85は、第一のNASプロセッサA(及び/又は第二のNASプロセッサ77B)に対し、判定結果として「OK」を返す(S17)。
一方、S15の結果、構成テーブル89において設定有りの部品情報要素に対応する部品情報要素が構成検出結果情報75内に存在しない、構成テーブル89において設定無しの部品情報要素に対応する部品情報要素が構成検出結果情報75内に存在する、又は、設定有りの部品情報要素とそれに対応する構成検出結果情報75内の部品情報要素同士が一致しない場合には、IOプロセッサ85は、第一のNASプロセッサA(及び/又は第二のNASプロセッサ77B)に対し、判定結果として「NG」を返す(S18)。
NASプロセッサ77Aは、判定結果をIOプロセッサ85から受信したときに、例えば予め読み込んだ後処理プログラム73を実行することにより、以下の処理を行うことができる。
図6Aは、NASプロセッサ77Aが後処理プログラム73を実行することにより行われる処理の流れの一例を示す。
NASプロセッサ77Aは、受信した判定結果を解析し(S21)、判定結果が「OK」であれば(S22でYES)、通常処理を実行する(S23)。ここで言う「通常処理」とは、例えば、NASプロセッサ77Aが、CHN−NAS部3の起動が完了した旨を所定の装置(例えばホスト装置11)に報告する処理などである。
一方、S21の結果、判定結果が「NG」であれば、NASプロセッサ77Aは、自分を搭載しているCHN−NAS部3を閉塞するためのシャットダウン処理を実行する(S24)。
以上が、CHN−NAS部3及びCHN−IO部5の起動の際に行われる処理流れの一例である。
なお、この処理流れにおいて、構成テーブル89と構成検出結果情報75との比較が行われた後、IOプロセッサ85又はコントロールユニット31は、判定結果の詳細を、コントロールユニット31のディスプレイ画面に表示させることができる。
図6Bは、判定結果の詳細の表示の一例を示す。この図6Bは、図4Aに例示した構成テーブル89と図5Aに例示した構成検出結果情報75との比較が行われた場合の表示の一例である。
この例によれば、判定結果の詳細として、構成テーブル89に登録されている各回路部品毎に、部品名、部品情報、設定有無、実装有無及びサブ判定結果が表示される。
ここでの部品名、部品情報及び設定有無は、構成テーブル89に登録されている情報とすることができる。
実装有無は、NASプロセッサ77Aによって回路部品の検出ができたか否か、換言すれば、構成検出結果情報75中にその回路部品の部品情報要素が含まれているか否かである。回路部品の検出ができた場合には、「有」とされ、できなかった場合には、「無」とされる。
サブ判定結果は、回路部品毎の判定結果である。サブ判定結果は、構成テーブル89における部品情報要素及び設定有無と、構成検出結果情報75とに基づいて、OKかNGかが決められる。例えば、設定有無「有」の場合、部品情報要素が構成検出結果情報75に含まれており、且つ、部品情報要素同士が一致すれば、IOプロセッサ85又はコントロールユニット31は、OKというサブ判定結果とするが、部品情報要素同士が一致しない、或いは部品情報要素が構成検出結果情報75に含まれていなければ、NGというサブ判定結果とする。また、例えば、設定有無「無」の場合、部品情報要素が構成検出結果情報75に含まれていなければ、IOプロセッサ85又はコントロールユニット31は、OKというサブ判定結果とするが、設定有無「無」にも関わらずそれに対応する部品情報要素が構成検出結果情報75に含まれていれば、NGというサブ判定結果とする。この第一実施例では、IOプロセッサ85は、一つでもNGというサブ判定結果が得られた場合には、全体としての判定結果をNGとして、判定結果「NG」を、NASプロセッサ77Aに返す。
さて、この第一実施例では、起動後、CHN8の稼動中(すなわち、CHN−NAS部3及びCHN−IO部5の稼動中)に、構成検出結果情報75の更新が行われる。
図7Aは、CHN8の稼動中に構成検出結果情報75の更新が行われる際の処理流れの一例と、その更新が行われた後に行われる処理流れの一例とを示す。
例えば、CHN−NAS部3における或る回路部品に異常が発生すると、割り込み信号が、第一のNASプロセッサ77A(及び/又は第二のNASプロセッサ77B)に入力される。第一のNASプロセッサ77Aは、割り込み信号の入力に応答して、第一のNASメモリ69Aにおける構成検出結果情報75を更新する(S32)。具体的には、例えば、第一のNASプロセッサ77Aは、割り込み信号の入力元となった回路部品の部品情報要素を構成検出結果情報75から削除する。このS32の処理は、例えば、構成検出プログラム71を実行することにより行われても良い。
IOプロセッサ85は、構成検出結果情報75が更新されたことを検出する(S33)。具体的には、例えば、IOプロセッサ85は、構成検出結果情報75を定期的に参照する、或いは、構成検出結果情報75を更新したNASプロセッサ77Aから更新した旨の通知を受けることにより、構成検出結果情報75が更新されたことを検出することができる。
IOプロセッサ85は、構成テーブル89と更新後の構成検出結果情報75とを比較することにより、異常の発生した回路部品(以下、異常部品)を特定する(S34)。ここでは、例えば、設定有無「有り」にも関わらず構成検出結果情報75中から部品情報要素が無くなった回路部品を、異常部品として特定することができる。
IOプロセッサ85は、特定された異常部品を表す情報(例えば、異常部品のサポート部品データ)を含んだ判定結果情報を、コントロールユニット31に通知する(S35)。コントロールユニット31は、判定結果情報を受信し、受信した判定結果情報を表示することができる。これにより、コントロールユニット31のオペレータは、CHN−NAS部3のどの回路部品に異常が発生したのかを知ることができる。
また、IOプロセッサ85は、図示のように、シャットダウン命令を第一のNASプロセッサ77A(及び/又は第二のNASプロセッサ77B)に発行しても良い(S36)。この場合、第一のNASプロセッサ77Aは、そのシャットダウン命令に応答して、自分を搭載するCHN−NAS部3を閉塞させるためのシャットダウン処理を実行しても良い(S37)。
CHN8の稼動中は、この図7Aに例示したような処理が行われることがある。なお、S33〜S35の処理は、例えば、判定プログラム91が行っても良い。
この第一実施例によれば、CHN8が、CHN−NAS部3とCHN−IO部5とに分離されている。このため、図7Bに例示するように、一以上のCHN−NAS部3に対するNAS用電源系統221Aと、一以上のCHN−IO部5に対するIO用電源系統221Bとのように、電源系統を分けることができる。そして、CHN−NAS部3よりもCHN−IO部5の方が消費電力が小さい。これらのことから、IO用電源系統221Bの電源容量をNAS用電源系統221Aの電源容量よりも少なくすることが可能となり、故に、能力の無駄を抑えることができる。
また、この第一実施例によれば、CHN−NAS部3とCHN−IO部5とは、物理的に離れた別々のパート2,4に搭載される。このため、図7Bに例示するように、一以上のCHN−NAS部3に対するNAS用冷却系統223Aと、一以上のCHN−IO部5に対するIO用冷却系統223Bとのように、冷却系統を分けることができる。そして、CHN−NAS部3よりもCHN−IO部5の方が、発する熱の温度が低い。これらのことから、IO用冷却系統223Bの冷却能力(例えばファン設置台数或いはファン回転速度)をNAS用冷却系統223Aの冷却能力よりも低くすることが可能となり、故に、能力の無駄を抑えることができる。
更に、この第一実施例によれば、CHN−NAS部3は、少なくとも一つの回路部品が着脱可能に搭載されるようになっている。このため、CHN−NAS部3に対して求められる能力に不要な回路部品は搭載しなければ良いので、コストを抑えることができる。
また、この第一実施例によれば、CHN−NAS部3に構築されるべきハードウェア構成を表す構成テーブル89が予め登録され、CHN−NAS部3のハードウェア構成の検出が行われ、その検出結果を表す構成検出結果情報75と構成テーブル89との比較により、CHN−NAS部3のハードウェア構成の正否が判定される。これにより、CHN−NAS部3のハードウェア構成の信頼性の低下を抑えることができる。
ハードウェア構成の正否は、例えば、ハードウェア構成の検出結果をコントロールユニット31のディスプレイ画面に表示することにより、オペレータが行っても良いのかもしれない。しかし、ハードウェア構成の検出では、回路部品が搭載されていない場合だけでなく、回路部品が搭載されていたとしてもその回路部品に異常が生じている場合にも、その回路部品が存在しないものとして検出される可能性がある。そういった誤った検出を防ぐ点で、この第一実施例のような方法でCHN−NAS部3のハードウェア構成の正否の判定を行うことは、有効である。
また、上述の第一実施例によれば、ハードウェア構成の正否の判定の際、サポート部品データ同士の比較を行い、不一致であれば、判定結果がNGとなって、CHN−NAS部3を閉塞させることができる。このため、サポートされてない回路部品が搭載された状態でCHN−NAS部3が稼動してしまうことを未然に防ぐことが可能となる。
以上が、第一実施例についての説明である。
なお、上記の説明では、原則として、ハードウェア構成の検出は、着脱不能な第一のNASプロセッサ77Aが行い、また、構成検出結果情報75の記憶は、着脱不能な第一のNASメモリ69Aが行うことになっているが、必ずしもそれに限られない。すなわち、例えば、第二のNASプロセッサ77Bが、CHN−NAS部3に電源が投入されて起動する場合に、第一のNASプロセッサ77Aにアクセスし、何の応答も得られない場合に、ハードウェア構成の検出を行っても良い。
また、例えば、IOプロセッサ85に代えて又は加えて、NASプロセッサ77A及び/又は77Bが、構成検出結果情報75と構成テーブル89との比較により、CHN−NAS部3のハードウェア構成の正否の判定を行ってもよい。
1…記憶制御システム 3…CHN−NAS部 5…CHN−IO部 8…CHN 69A…第一のNASメモリ 69B…第二のNASメモリ 71…構成検出プログラム 73…後処理プログラム 75…構成検出結果情報 77A…第一のNASプロセッサ 77B…第二のNASプロセッサ 85…IOプロセッサ 87…IOメモリ 89…構成テーブル 91…判定プログラム