JP5153392B2 - 記憶制御装置及び方法 - Google Patents

記憶制御装置及び方法 Download PDF

Info

Publication number
JP5153392B2
JP5153392B2 JP2008061573A JP2008061573A JP5153392B2 JP 5153392 B2 JP5153392 B2 JP 5153392B2 JP 2008061573 A JP2008061573 A JP 2008061573A JP 2008061573 A JP2008061573 A JP 2008061573A JP 5153392 B2 JP5153392 B2 JP 5153392B2
Authority
JP
Japan
Prior art keywords
processing unit
storage
data input
unit
storage control
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
JP2008061573A
Other languages
English (en)
Other versions
JP2009217620A (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
Priority to JP2008061573A priority Critical patent/JP5153392B2/ja
Priority to US12/123,057 priority patent/US7913112B2/en
Priority to EP09250035A priority patent/EP2101265A1/en
Publication of JP2009217620A publication Critical patent/JP2009217620A/ja
Priority to US13/023,150 priority patent/US8549349B2/en
Application granted granted Critical
Publication of JP5153392B2 publication Critical patent/JP5153392B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、記憶制御装置及び方法に関し、例えばホストに対するインタフェースとして機能するポート部と、記憶装置に対してデータ入出力処理を行なうマイクロプロセッサとをハード的に分離独立化したストレージ装置に適用して好適なものである。
例えば、データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成された記憶システムを用いてデータを管理する。この記憶システムは、例えば1又は複数のストレージ装置等から構成される。
ストレージ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、例えば、RAID(Redundant Array of Independent Inexpensive Disks)に基づいて構築される。記憶デバイス群が提供する物理的な記憶領域上には少なくとも1つ以上の論理的なボリュームが形成され、このボリュームがホストに提供される。ホストは、所定のコマンドを送信することにより、ボリュームに対してデータの書き込みや読み出しを行うことができる。
従来、このようなストレージ装置に関して、ホストに接続されるインタフェースと、ディスクドライブに対してデータ入出力処理を行なうプロセッサとを分離独立化し、インタフェースがホストからのアクセス要求を予め記憶したルーティング情報に基づいて対応するプロセッサに転送することにより、ストレージ装置のアクセス性能を向上させる技術が提案されている(特許文献1参照)。
特開2007−207007号公報
ところで、近年、ユーザIT(Information Technology)環境において、アプリケーション数、サーバ数及びデータ量が増加傾向にある。このような状況の下、ストレージ装置においても、アプリケーション数、サーバ数及びデータ量に応じて装置全体の性能を維持する上で、以下の問題がある。
障害等でプロセッサが閉塞した場合、閉塞したプロセッサで処理すべきホストからのデータ入出力要求を同一のパッケージ内の他のプロセッサで処理を行なうため、かかる他のプロセッサにデータ入出力要求が集中して過負荷となり、当該プロセッサにおけるデータ入出力性能が低下する問題がある。
また障害等でパッケージが閉塞した場合には、当該パッケージにおいてホストからのデータ入出力要求を受け付けることができない。このような場合に交替パスにデータ入出力要求を発行する交替パスソフトウェアを事前にホストにインストールすることにより、他のパッケージを利用したデータ入出力を行なうことはできるものの、交替パスが設定された他のパッケージにデータ入出力要求が集中して過負荷となり、かかる他のパッケージにおけるデータ入出力性能が低下する問題がある。
さらにホストからのデータ入出力要求を他のパッケージに依頼(以下、これを横振りと呼ぶ)する横振り機能をパッケージに搭載することによりデータ入出力要求が集中したパッケージの負荷の軽減を図ることができるが、ホストへの応答と横振り処理はポートと括り付けられたプロセッサが処理を行なわなければならないため、ポートに括り付けられたプロセッサのプロセッサネックが完全には解消し得ない問題がある。
本発明は以上の点を考慮してなされたもので、耐障害性を向上させ得る記憶制御装置及び方法を提案しようとするものである。
かかる課題を解決するため本発明においては、記憶装置にデータを入出力する複数の処理部と、上位装置からのデータ入出力要求を予め保持するテーブルに従って対応する処理部に振り分けるポート部とを備える複数の記憶制御装置が通信ケーブルを介して接続されている記憶制御装置において、各記憶制御装置それぞれの閉塞した処理部に割り当てられた記憶装置等を他の処理部に割り振るように、各ポート部がそれぞれ保持するテーブルを更新するようにした。
具体的には、上位装置に対するインタフェースとして機能するポート部と、前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部とを備え、前記ポート部は、各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルを保持し、前記上位装置から与えられる前記データ入出力要求を当該テーブルに従って対応する前記処理部に振り分け、前記処理部は、前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新するようにした同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続され、前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートは、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送し、
前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送することを特徴とする。
また上位装置に対するインタフェースとして機能するポート部と、前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部とを備えた同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続されている記憶制御装置における記憶制御方法において、前記複数の記憶制御装置における各ポート部が、各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルに従って、前記上位装置から与えられる前記データ入出力要求を対応する前記処理部に振り分ける第1のステップと、前記複数の記憶制御装置における各処理部が、前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する第2のステップとを有し、且つ、前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートが、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送するステップと、前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送するステップとを有することを特徴とする。
本発明によれば、いずれかの処理部が障害により閉塞した場合においても、他の一部の処理部に負荷が集中することなく、また閉塞した処理部に割り当てられていた記憶装置又は記憶領域に対するデータ入出力処理を滞ることなく行なうことができ、かくして耐障害性を向上させ得る記憶制御装置及び方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態による記憶システムの構成
図1において、1は全体として本実施の形態による記憶システムを示す。この記憶システム1は、複数の上位装置としてのホストサーバ2がそれぞれSAN(Storage Area Network)やIP(Internet Protocol)ネットワークなどの通信ネットワーク3を介してストレージ装置4に接続されると共に、当該ストレージ装置4に管理コンソール5が接続されて構成される。
ホストサーバ2は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータやワークステーション、メインフレームなどから構成される。ホストサーバ2は、キーボード、スイッチやポインティングデバイス、マイクロホン等の情報入力装置と、モニタディスプレイやスピーカ等の情報出力装置とを備えている。またホストサーバ2には、通信ネットワーク3を介してストレージ装置4にアクセスするためのインタフェースとして機能するアダプタ(例えばHAB(Host BUS Adapter))が設けられている。
ストレージ装置4は複数の記憶装置10と、これら記憶装置10に対するデータの入出力を制御するコントロール部11とから構成される。
記憶装置10は、それぞれ複数のハードディスク装置から構成される。ハードディスク装置としては、例えばFC(Fibre channel)ディスク等の高価なディスク又はSATA(Serial AT Attachment)ディスク等の安価なディスクが適用され、これらのハードディスク装置10がコントロール部11によりRAID(Redundant Array of Inexpensive Disks)方式で運用される。1又は複数のハードディスク装置が提供する記憶領域上に1又は複数の論理的なボリュームが作成され、これらボリュームがデータを読み書きするための領域としてホストサーバ2に提供される。なお、記憶装置10をフレキシブルディスクや磁気テープ、フラッシュメモリ等の半導体メモリ及び又は光ディスクなどから構成するようにしてもよい。
コントロール部11は、複数のポート部12、接続部13、複数のマイクロプロセッサ処理部14、キャッシュメモリ15、共有メモリ16及び複数の記憶装置インタフェース部17から構成される。
ポート部12は、ホストサーバ2との間でデータの送受を行うインタフェースとして機能するもので、通信ポート(図示せず)及びメモリ12Aを備える。通信ポートには、通信ネットワーク上においてそれぞれを識別するためのIP(Internet Protocol)アドレスやWWN(World Wide Address)などのポートアドレス(以下、WWNとする)が割り当てられる。
接続部13は、各ポート部12、各マイクロプロセッサ処理部14、キャッシュメモリ15、共有メモリ16及び各記憶装置インタフェース部17を相互に接続する機能を有するもので、例えば高速スイッチングによりデータ伝送を行う超高速クロスデバイススイッチなどのスイッチ又はバス等で構成される。各ポート部12、各マイクロプロセッサ処理部14、キャッシュメモリ15、共有メモリ16及び各記憶装置インタフェース部17間のデータやコマンドの授受は、この接続部13を介して行なわれる。
マイクロプロセッサ処理部14は、1又は複数のマイクロプロセッサ14Aと、メモリ14Bとなどを備えて構成される。マイクロプロセッサ14Aがメモリ14Bに格納された制御プログラム(以下、これをマイクロプログラムと呼ぶ)を実行することにより、マイクロプロセッサ処理部14全体として後述のような種々の処理を実行する。
キャッシュメモリ15及び共有メモリ16は、ポート部12、マイクロプロセッサ処理部14及び記憶装置インタフェース部17により共有されるメモリである。キャッシュメモリ15は、主に記憶装置10に読み書きするデータを一時的に記憶するために利用される。また共有メモリ16は、主にマイクロプロセッサ処理部14が参照及び更新を行なう制御情報を記憶するために利用される。
記憶装置インタフェース部17は、マイクロプロセッサ処理部14からの要求に応じて、指定されたデータを対応する記憶装置10に読み書きするためのインタフェースとして機能する。
管理コンソール5は、CPU及びメモリ5A等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータから構成される。管理コンソール5は、キーボード、スイッチやポインティングデバイス、マイクロホン等の情報入力装置(図示せず)と、モニタディスプレイやスピーカ等の情報出力装置(図示せず)とを備える。管理コンソール5は、例えばユーザがストレージ装置4に対して各種設定を行ったり、ストレージ装置4内の障害を検出するために利用される。
(1−2)ストレージ装置に搭載されたデータ入出力要求振分け機能
(1−2−1)各種テーブルの構成
次に、ストレージ装置4に搭載されたデータ入出力要求振分け機能について説明する。なお以下においては、説明の都合上、マイクロプロセッサ処理部14ごとにパッケージ化されており、1つのマイクロプロセッサ処理部14には1つのマイクロプロセッサ14Aのみが搭載されているものとする。
本ストレージ装置4においては、各マイクロプロセッサ14Aに対してデータ入出力処理を担当すべき記憶装置10が予め割り当てられている。そして各ポート部12は、ホストサーバ2からデータ入出力要求が与えられた場合、当該データ入出力要求において指定された記憶装置10に対するデータ入出力処理を行なうべきマイクロプロセッサ14Aが搭載されたマイクロプロセッサ処理部14にそのデータ入出力要求を転送する。
各ポート部12がこのようなデータ入出力要求の振分け処理を行なうための手段として、各ポート部12のメモリ12Aには、図2に示すような分散配置テーブル20が格納されている。
分散配置テーブル20は、各マイクロプロセッサ処理部14にそれぞれ割り当てられた記憶装置10をポート部12が管理し、ホストサーバ2からデータ入出力要求が与えられたときに当該データ入出力要求の転送先を決定する際に参照するテーブルであり、図2に示すように、マイクロプロセッサ処理部番号欄20A、ステータス欄20B、有効ワードカウント欄20C及び処理対象記憶装置ビットマップ欄20Dから構成される。
そしてマイクロプロセッサ処理部番号欄20Aには、そのストレージ装置4内の各マイクロプロセッサ処理部14にそれぞれ付与された識別番号(以下、これをマイクロプロセッサ処理部番号と呼ぶ)が格納される。
またステータス欄20Bには、対応するマイクロプロセッサ処理部14の現在のステータスが格納される。なお、マイクロプロセッサ処理部14のステータスとしては、そのマイクロプロセッサ処理部14が正常動作をしていることを表す「正常」と、そのマイクロプロセッサ処理部14が閉塞していることを表す「閉塞」と、そのマイクロプロセッサ処理部14が後述する保守閉塞状態に移行中であることを表す「保守閉塞移行中」と、そのマイクロプロセッサ処理部14が実装されていない状態であることを表す「未実装」となどがある。
さらに処理対象記憶装置ビットマップ欄20Dには、ストレージ装置4内の各記憶装置10にそれぞれ対応してビットが設けられたビットマップ(以下、これを処理対象記憶装置ビットマップと呼ぶ)が格納される。そして処理対象記憶装置ビットマップにおいては、対応するマイクロプロセッサ処理部14に割り当てられた記憶装置10と対応付けられたビットのみが「オン(1)」に設定される。
さらに有効ワードカウント欄20Cには、対応する処理対象記憶装置ビットマップ欄20Dに格納された処理対象記憶装置ビットマップ上の有効ワード数が格納される。本実施の形態の場合、処理対象記憶装置ビットマップ上のビットを複数ビット(例えば32ビット)単位で管理している。このときの管理単位とする複数ビットを1ワードと呼ぶ。有効ワード数とは、対応する処理対象記憶装置ビットマップにおいて、いずれかのビットが「オン」に設定されたワード(有効ワード)が先頭のワードから最大何ワード目までかを表すワード数を意味する。従って、例えば有効ワード数が「12」である場合、対応するマイクロプロセッサ処理部14には、12ワード目までのいずれかのビットと対応付けられた記憶装置が1又は複数割り当てられていることになる。この場合、例えば対応するマイクロプロセッサ処理部14に対して1ワード目から9ワード目までのビットと対応する記憶装置が全く割り当てられておらず、10ワード目から12ワード目のいずれのビットと対応する1又は複数の記憶装置が割り当てられているときにも有効ワード数は「12」となる。
一方、共有メモリ16には、後述のように必要時にマイクロプロセッサ処理部14が参照する装置構成情報テーブル21が格納されている。
この装置構成情報テーブル21は、ストレージ装置4のハードウェア構成や、各ハードウェアの状態を管理するためのテーブルであり、図3に示すように、ポート部数欄21A、マイクロプロセッサ処理部数欄21B、キャッシュメモリ数欄21C、共有メモリ数欄21D、記憶装置インタフェース部数欄21E、記憶装置数欄21F、ブロードキャストテーブル欄21G、ポート部状態ビットマップ欄21H、マイクロプロセッサ処理部状態ビットマップ欄21I、キャッシュメモリ容量/状態ビットマップ欄21J、共有メモリ容量/状態ビットマップ欄21K、記憶装置インタフェース部状態ビットマップ欄21L、記憶装置状態ビットマップ欄21M及び予備エリア欄21Nから構成される。
そしてポート部数欄21A、マイクロプロセッサ処理部数欄21B、キャッシュメモリ数欄21C、共有メモリ数欄21D、記憶装置インタフェース部数欄21E及び記憶装置数欄21Fには、それぞれそのストレージ装置4内の対応するハードウェア(ポート部12、マイクロプロセッサ処理部14、キャッシュメモリ15、共有メモリ16、記憶装置インタフェース部17又は記憶装置10)の個数が格納され、ブロードキャストテーブル欄21Gには、図6について後述するブロードキャストテーブル23が格納される。
またポート部状態ビットマップ欄21H、マイクロプロセッサ処理部状態ビットマップ欄21I、キャッシュメモリ容量/状態ビットマップ欄21J、共有メモリ容量/状態ビットマップ欄21K、記憶装置インタフェース部状態ビットマップ欄21L及び記憶装置状態ビットマップ欄21Mには、それぞれ対応する各ハードウェアの状態(正常又は異常)を表す状態ビットマップが格納される。なお、キャッシュメモリ容量/状態ビットマップ欄21J及び共有メモリ容量/状態ビットマップ欄21Kには、それぞれかかる状態ビットマップに加えて、ストレージ装置4内に存在する各キャッシュメモリ15又は各共有メモリ16の容量もそれぞれ格納される。
(1−2−2)分散配置テーブルの設定及び更新
(1−2−2−1)テーブル初期設定処理
ところで上述の分散配置テーブル20及び装置構成情報テーブル21は、管理コンソール5を用いたユーザの設定操作に基づいて作成及び設定される。
図4は、このような分散配置テーブル20及び装置構成情報テーブル21の初期設定に関する管理コンソール5の処理内容を示している。管理コンソール5は、メモリ5Aに格納された制御プログラムに基づいて、この図4に示す第1のテーブル初期設定処理を実行する。
すなわち管理コンソール5は、ユーザ操作に応じて対応する制御プログラムを起動すると、この第1のテーブル初期設定処理を開始し、まず、図示しない所定の第1の装置構成設定画面を表示する(SP1)。
次いで管理コンソール5は、ユーザにより第1の装置構成設定画面内の所定位置に、ストレージ装置4内のポート部12、マイクロプロセッサ処理部14、キャッシュメモリ15、共有メモリ16、記憶装置インタフェース部17及び記憶装置10の各個数と、各キャッシュメモリ15及び各共有メモリ16の容量となどの装置構成情報がそれぞれ入力されるのを待ち受ける(SP2)。
次いで管理コンソール5は、かかる装置構成情報が入力されると、第1の装置構成設定画面において、各マイクロプロセッサ処理部14(正確には各マイクロプロセッサ14A)に対する記憶装置10の割当て数をユーザが設定するモード(以下、これをユーザ設定モードと呼ぶ)が選択されたか否かを判断する(SP3)。
管理コンソール5は、この判断において否定結果を得るとステップSP6に進み、これに対して肯定結果を得ると、図示しない所定の第2の装置構成設定画面を表示し(SP4)、この第2の装置構成設定画面を用いて、ユーザにより各マイクロプロセッサ処理部14に対する記憶装置10の割当て数がそれぞれ設定されるのを待ち受ける(SP5)。
そして管理コンソール5は、第2の装置構成設定画面を用いて各マイクロプロセッサ処理部14に対する記憶装置10の割当て数が設定されると、このとき第1及び第2の装置構成設定画面を用いて設定された上述の装置構成情報と、各マイクロプロセッサ処理部14に対する記憶装置10の割当て数の決定方法としてユーザ設定モードが選択されたか否かの情報と、当該ユーザ設定モードが選択されたときには各マイクロプロセッサ処理部14にそれぞれ割り当てられた記憶装置10の個数とをユーザ設定装置構成情報としてストレージ装置4に送信する(SP6)。そして管理コンソール5は、この後、この第1のテーブル初期設定処理を終了する。
一方、図5は、分散配置テーブル20及び装置構成情報テーブル21の初期設定に関するストレージ装置4のマイクロプロセッサ処理部14の処理内容を示している。この図5に示す第2のテーブル初期設定処理は、管理コンソール5から送信される上述のユーザ設定装置構成情報を最初に受信したマイクロプロセッサ処理部14により、当該マイクロプロセッサ処理部14のメモリ14Bに格納されたマイクロプログラムに従って実行される。
すなわちマイクロプロセッサ処理部14は、かかるユーザ設定装置構成情報すると、この第2のテーブル初期設定処理を開始し、まず、受信したユーザ設定装置構成情報の整合性をチェックする。具体的に、マイクロプロセッサ処理部14は、例えばチェックサムによりユーザ設定装置構成情報の整合性をチェックすることになる(SP10)。
続いてマイクロプロセッサ処理部14は、ユーザ設定装置構成情報に含まれるポート部数を装置構成情報テーブル21のポート部数欄21Aに格納すると共に、このポート部数に基づいてポート部12に対する状態ビットマップを作成し、これを装置構成情報テーブル21のポート部状態ビットマップ欄21Hに格納する(SP11)。
またマイクロプロセッサ処理部14は、ユーザ設定装置構成情報に含まれるマイクロプロセッサ処理部数を装置構成情報テーブル21のマイクロプロセッサ処理部数欄21Bに格納すると共に、このマイクロプロセッサ処理部数に基づいてマイクロプロセッサ処理部14に対する状態ビットマップを作成し、これを装置構成情報テーブル21のマイクロプロセッサ処理部状態ビットマップ欄21Iに格納する(SP12)。
さらにマイクロプロセッサ処理部14は、ユーザ設定装置構成情報に含まれるキャッシュメモリ数及び各キャッシュメモリ15の容量をそれぞれ装置構成情報テーブル21のキャッシュメモリ数欄21C及びキャッシュメモリ容量/状態ビットマップ欄21Jに格納すると共に、このキャッシュメモリ数に基づいてキャッシュメモリに対する状態ビットマップを作成し、これを装置構成情報テーブル21のキャッシュメモリ状態ビットマップ欄21Jに格納する(SP13)。
同様にして、マイクロプロセッサ処理部14は、ユーザ設定装置構成情報に含まれる共有メモリ数及び各共有メモリ16の容量をそれぞれ装置構成情報テーブル21の共有メモリ数欄21D及び共有メモリ容量/状態ビットマップ欄21Kに格納すると共に、この共有メモリ数に基づいて共有メモリ16に対する状態ビットマップを作成し、これを装置構成情報テーブル21の共有メモリ容量/状態ビットマップ欄21Kに格納する(SP14)。
さらにマイクロプロセッサ処理部14は、ステップSP11及びステップSP12と同様にして、ユーザ設定装置構成情報に含まれる記憶装置インタフェース部数及び記憶装置数をそれぞれ装置構成情報テーブル21の記憶装置インタフェース部数欄21E及び記憶装置数欄21Fにそれぞれ格納すると共に、これら記憶装置インタフェース部数及び記憶装置数に基づいて記憶装置インタフェース部17及び記憶装置10に対する状態ビットマップをそれぞれ作成し、これらをそれぞれ装置構成情報テーブル21の記憶装置インタフェース部状態ビットマップ欄21L又は記憶装置状態ビットマップ欄21Mにそれぞれ格納する(SP15,SP16)。
以上のような処理により、管理コンソール5からのユーザ設定装置構成情報に基づく装置構成情報テーブル21が作成される。なお、これらステップSP10〜ステップSP16の処理は、かかるユーザ設定装置構成情報を受信したマイクロプロセッサ処理部14内のメモリ14B上で行なわれる。
続いてマイクロプロセッサ処理部14は、他のマイクロプロセッサ処理部14等が共有メモリ16上の分散配置テーブル20及び装置構成情報テーブル21を更新できないようにするための排他設定を行い(SP17)、この後、上述のようにして自マイクロプロセッサ処理部のメモリ14B上で作成した装置構成情報テーブル21を共有メモリ16の所定領域に格納する(SP18)。
次いでマイクロプロセッサ処理部14は、ユーザ設定装置構成情報に基づいて、各マイクロプロセッサ処理部14に対する記憶装置10の割当て数の決定方法としてユーザ設定モードが選択されたか否かを判断する(SP19)。そしてマイクロプロセッサ処理部14は、この判断において肯定結果を得ると、ユーザが設定したマイクロプロセッサ処理部14ごとの記憶装置数に従って各マイクロプロセッサ処理部14に記憶装置10を割り当てた処理対象記憶装置ビットマップをマイクロプロセッサ処理部14ごとにそれぞれ作成する(SP20)。
これに対してマイクロプロセッサ処理部14は、ステップSP19の判断において否定結果を得ると、各マイクロプロセッサ処理部14に記憶装置10を記憶装置番号が小さいものから順番に同じ数だけ均等に割り当てた処理対象記憶装置ビットマップをマイクロプロセッサ処理部14ごとにそれぞれ作成する(SP21)。
そしてマイクロプロセッサ処理部14は、この後、ステップSP20又はステップSP21において作成した処理対象記憶装置ビットマップに基づいて分散配置テーブル20を作成し、作成した分散配置テーブル20を共有メモリ16内の所定領域にコピーする(SP22)。
またマイクロプロセッサ処理部14は、この後、図6に示すようなブロードキャストテーブル23を作成する。このブロードキャストテーブル23は、ストレージ装置4内の各マイクロプロセッサ処理部14にそれぞれ対応させてビットが設けられたビットマップであり、対象とするマイクロプロセッサ処理部14と対応付けられたビットが「オン(1)」、それ以外のマイクロプロセッサ処理部14と対応付けられたビットが「オフ(0)」に設定される。
本実施の形態の場合、ステップSP20及びステップSP21において共有メモリ16にそれぞれ格納された新たな分散配置テーブル20及び装置構成情報テーブル21を他のマイクロプロセッサ処理部14に取り込ませるため、ステップSP23において作成されるブロードキャストテーブル23は、新たな分散配置テーブル20等を作成したマイクロプロセッサ処理部14と対応付けられたビットが「オフ」に設定され、これ以外のマイクロプロセッサ処理部14と対応付けられた各ビットがいずれも「オン」に設定される。
そしてマイクロプロセッサ処理部14は、このようにして作成したブロードキャストテーブル23を共有メモリ16に格納された上述の装置構成情報テーブル21(図3)のブロードキャストテーブル欄21Gに格納し(SP23)、この後、分散配置テーブル20等に対する上述の排他設定を解除する(SP24)。
続いてマイクロプロセッサ処理部14は、ステップSP22において共有メモリ16に格納した新たな分散配置テーブル20を各ポート部12に送信する(SP25)。かくして各ポート部12は、受信した分散配置テーブル20を自ポート部内のメモリ12Aに格納する。
またマイクロプロセッサ処理部14は、この分散配置テーブル20及び装置構成情報テーブル21の初期設定が完了した旨を管理コンソール5に通知し(SP26)、この後このテーブル初期設定処理を終了する。
一方、上述のようにして作成された分散配置テーブル20及び装置構成情報テーブル21は、これらを作成したマイクロプロセッサ処理部14以外の各マイクロプロセッサ処理部14により共有メモリ16から読み出されて、そのマイクロプロセッサ処理部14内のメモリ14Bに格納されて保持される。
図7は、このような散配置テーブル20及び装置構成情報テーブル21を取り込むテーブル取込み処理に関するマイクロプロセッサ処理部14の具体的な処理内容を示している。マイクロプロセッサ処理部14は、自マイクロプロセッサ処理部のメモリ14Bに格納されたマイクロプログラムに従って、このテーブル取込み処理を定期的に実行する。
すなわちマイクロプロセッサ処理部14は、このテーブル取込み処理を開始すると、まず、共有メモリ16にアクセスし、装置構成情報テーブル21のブロードキャストテーブル欄21Gに格納されているブロードキャストテーブル23を取り込む(SP30)。
続いてマイクロプロセッサ処理部14は、取り込んだブロードキャストテーブル23を参照して、自マイクロプロセッサ処理部と対応付けられたビットが「オン」に設定されているか否かを判断する(SP31)。
マイクロプロセッサ処理部14は、この判断において否定結果を得ると、このテーブル取込み処理を終了する。これに対してマイクロプロセッサ処理部14は、かかる判断において肯定結果を得ると、他のマイクロプロセッサ処理部14等が共有メモリ16上の分散配置テーブル20及び装置構成情報テーブル21を更新できないようにするための排他設定を行い(SP32)、この後、かかるブロードキャストテーブル23を共有メモリ16から再度取り込む(SP33)。
続いてマイクロプロセッサ処理部14は、ステップSP33において取り込んだブロードキャストテーブル23上の自マイクロプロセッサ処理部と対応付けられたビットが「オン」に設定されているか否かを判断する(SP34)。
マイクロプロセッサ処理部14は、この判断において否定結果を得るとステップSP38に進み、これに対して肯定結果を得ると、かかる最新の分散配置テーブル20及び装置構成情報テーブル21を共有メモリ16から読み出して自マイクロプロセッサ処理部内のメモリ14Bに格納する(SP35,SP36)。
そしてマイクロプロセッサ処理部14は、この後、共有メモリ16上の装置構成情報テーブル21のブロードキャストテーブル欄21Gに格納されたブロードキャストテーブル23について、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」に変更する(SP37)。またマイクロプロセッサ処理部14は、かかる分散配置テーブル20及び置構成情報テーブル21に対する排他設定を解除し(SP38)、この後このテーブル更新処理を終了する。
以上のような一連の処理により、図8に示すように、各ポート部12のメモリ12Aにおいて分散配置テーブル20が保持され、共有メモリ16及び各マイクロプロセッサ処理部14のメモリ14Bにおいて分散配置テーブル20及び装置構成情報テーブル21が保持される。この場合、各ポート部12、共有メモリ16及び各マイクロプロセッサ処理部14がそれぞれ保持する分散配置テーブル20の内容は同一となる。なお、各ポート部12のメモリ12Aにおいて保持される転送先管理テーブル24(図11)については後述する。
(1−2−2−2)テーブル再設定処理
ところで、通常、各マイクロプロセッサ処理部14のメモリ14Bのうちのワークメモリとして使用される領域部分や共有メモリ16としては揮発性メモリが用いられる。このため、上述のように各マイクロプロセッサ処理部14のメモリ14Bや共有メモリ16に格納された分散配置テーブル20及び装置構成情報テーブル21は、ストレージ装置4の電源がオフされると、各マイクロプロセッサ処理部14のメモリ14B及び共有メモリ16上から消滅する。
そこで本実施の形態の場合、各マイクロプロセッサ処理部14は、スストレージ装置4の電源オフ時、それまでメモリ14Bの揮発性のワーク領域において格納していた分散配置テーブル20及び装置構成情報テーブル21を当該メモリ14の不揮発性領域に移動させて保持する。そしてストレージ装置4の電源がオンされたときには、最初に立ち上がったマイクロプロセッサ処理部14が自マイクロプロセッサ処理部のメモリ14Bから分散配置テーブル20及び装置構成情報テーブル21を読み出して共有メモリ16に再設定するようになされている。
図9は、このような分散配置テーブル20及び装置構成情報テーブル21の再設定に関するマイクロプロセッサ処理部14の処理内容を示す。ストレージ装置4の電源オン後に最初に立ち上がったマイクロプロセッサ処理部14は、自己内部のメモリ14Bに格納されたマイクロプログラムに従って、この図9に示すテーブル再設定処理を実行する。
すなわち、かかるマイクロプロセッサ処理部14は、起動処理後、メモリ14Bの不揮発性領域に保存された分散配置テーブル20及び装置構成情報テーブル21を当該メモリ14Bのワーク領域に展開する(SP40)。
続いてマイクロプロセッサ処理部14は、他のマイクロプロセッサ処理部14等が共有メモリ16上の分散配置テーブル20及び装置構成情報テーブル21を更新できないようにするための排他設定を行い(SP41)、この後メモリ14Bのワーク領域に展開した分散配置テーブル20及び装置構成情報テーブル21を共有メモリ16に格納する(SP42)。
次いでマイクロプロセッサ処理部14は、ステップSP42において共有メモリ16に格納した装置構成情報テーブル21のブロードキャストテーブル欄21Gに格納されているブロードキャストテーブル23(図6)について、自マイクロプロセッサ処理部以外のマイクロプロセッサ処理部14と対応付けられたビットをすべて「1」に更新し(SP43)、この後共有メモリ16の分散配置テーブル20及び装置構成情報テーブル21に対する排他設定を解除する(SP44)。
さらにマイクロプロセッサ処理部14は、ステップSP42において共有メモリ16に再設定した分散配置テーブル20を各ポート部12に送信する。かくして各ポート部12は、かかるマイクロプロセッサ処理部14から送信される分散配置テーブル20を自己内部のメモリ12Aに格納する(SP45)。これにより各ポート部12に分散配置テーブル20が再設定される。そしてマイクロプロセッサ処理部14は、この後、このテーブル再設定処理を終了する。
(1−2−3)データ入出力処理
(1−2−3−1)データ入出力要求転送処理
次に、上述のようにして各ポート部12及び共有メモリ16に設定された分散配置テーブル20に基づいてストレージ装置4内で行なわれるデータ入出力処理の具体的な処理の流れについて説明する。
図10は、データ入出力処理に関するポート部12の具体的な処理内容を示す。各ポート部12は、それぞれ自ポート部内のメモリ12Aに格納された制御プログラムに従って、この図10に示すデータ入出力要求転送処理を実行する。
すなわちポート部12は、ホストサーバ2からデータ入出力要求が与えられると、このデータ入出力要求転送処理を開始し、まず、受信したデータ入出力要求に基づいてデータの入出力先となる記憶装置10を決定する(SP50)。
続いてポート部12は、ステップSP50の決定結果及び自己内部のメモリ12Aに保持している分散配置テーブル20に基づいて、データ入出力要求を転送すべきマイクロプロセッサ処理部14を決定し(SP51)、この後、共有メモリ16に格納された装置構成情報テーブル21を参照して、そのマイクロプロセッサ処理部14が閉塞しているか否かを判断する(SP52)。
ポート部12は、この判断において肯定結果を得ると、そのマイクロプロセッサ処理部14にデータ入出力要求を転送する(SP54)。これに対してポート部12は、この判断において否定結果を得ると、分散配置テーブル20上の各マイクロプロセッサ処理部14の処理対象記憶装置ビットマップを参照して、そのデータ入出力要求の新たな転送先とするマイクロプロセッサ処理部14を決定した後(SP53)、当該決定したマイクロプロセッサ処理部14にそのデータ入出力要求を転送する(SP54)。
次いでポート部12は、そのデータ入出力要求の転送先のマイクロプロセッサ処理部14の識別番号(マイクロプロセッサ処理部番号)と、そのデータ入出力要求において指定されたデータ入出力先の記憶装置10の識別番号(記憶装置番号)とを、それぞれメモリ12Aに保持している図11に示すような転送先管理テーブル24のマイクロプロセッサ処理部番号欄14A及び記憶装置番号欄14Bにそれぞれ登録し(SP55)、この後このデータ入出力要求転送処理を終了する。
なお上述のデータ入出力要求転送処理のステップSP53において転送先のマイクロプロセッサ処理部14を決定する際、毎回分散配置テーブル20の先頭から参照して転送先となるマイクロプロセッサ処理部14を決定すると、決定されるマイクロプロセッサ処理部14に偏りが発生するおそれがある。そこで本実施の形態の場合、ポート部12は、ステップSP53において転送先のマイクロプロセッサ処理部14を決定する際、前記転送先管理テーブル24を参照して、その転送先管理テーブル24に登録されたマイクロプロセッサ処理部番号及び記憶装置番号の次のマイクロプロセッサ処理部番号及び記憶装置番号から転送先となり得るマイクロプロセッサ処理部14の検索を開始するようになされている。
(1−2−3−2)データ入出力実行処理
一方、データ入出力処理に関するマイクロプロセッサ処理部14の具体的な処理内容を図12に示す。マイクロプロセッサ処理部14は、ポート部12から転送されてきたデータ入出力要求を受信すると、自マイクロプロセッサ処理部のメモリ14Bに格納されたマイクロプログラムに従って、この図12に示すデータ入出力実行処理を実行する。
すなわちマイクロプロセッサ処理部14は、データ入出力要求を受信するとこのデータ入出力実行処理を開始し、まず、そのデータ入出力要求に含まれるデータ入出力先の記憶装置10の記憶装置番号と、自マイクロプロセッサ処理部のメモリ14Bに格納されている分散配置テーブル20とに基づいて、そのデータ入出力要求を受信すべきマイクロプロセッサ処理部14が自マイクロプロセッサ処理部であるか否かを判断する(SP60)。
この判断において肯定結果を得ることは、そのデータ入出力要求を本来受信すべきマイクロプロセッサ処理部14が自マイクロプロセッサ処理部であることを意味する。かくしてこのときマイクロプロセッサ処理部14は、ステップSP62に進む。
これに対してステップSP60の判断において否定結果を得ることは、そのデータ入出力要求を本来受信すべきマイクロプロセッサ処理部14が閉塞していることを意味する。かくしてこのときマイクロプロセッサ処理部14は、その閉塞しているマイクロプロセッサ処理部(以下、これを閉塞マイクロプロセッサ処理部と呼ぶ)14に割り当てられている記憶装置10を、閉塞していない他のマイクロプロセッサ処理部14に割り振る記憶装置割振り処理を実行する(SP61)。
続いてマイクロプロセッサ処理部14は、ポート部12から転送されてきたデータ入出力要求のフレーム情報に基づいて当該ポート部12の識別番号(ポート部番号)を抽出して記憶する(SP62)。さらにマイクロプロセッサ処理部14は、かかるデータ入出力要求に従ったデータ入出力処理を実行し(SP63)、この後このデータ入出力実行処理を終了する。
なお、上述のデータ入出力実行処理のステップSP61における記憶装置割振り処理に関するマイクロプロセッサ処理部14の具体的な処理内容を図13に示す。
マイクロプロセッサ処理部14は、図12のステップSP61に進むと、この図13に示す記憶装置割振り処理を開始し、まず、かかる閉塞マイクロプロセッサ処理部14に対する新規のデータ入出力要求が他のマイクロプロセッサ処理部14に転送されることを抑止するため、すべてのポート部12に対して、当該ポート部12が保持する分散配置テーブル20における当該閉塞マイクロプロセッサ処理部14のステータスを「閉塞」とするよう指示を与える(SP70)。
続いてマイクロプロセッサ処理部14は、かかる閉塞マイクロプロセッサ処理部14に割り当てられていた記憶装置10を閉塞していない他のマイクロプロセッサ処理部14に割り振った新たな分散配置テーブル20を作成する(SP71)。またマイクロプロセッサ処理部14は、作成した分散配置テーブル20を共有メモリ16に格納されている古い分散配置テーブル20上に上書きする(SP72)。
次いでマイクロプロセッサ処理部14は、共有メモリ16上の装置構成情報テーブル21のブロードキャストテーブル欄21Gに格納されたブロードキャストテーブル23を、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」、これら以外のマイクロプロセッサ処理部14と対応付けられたビットをそれぞれ「オン」とするように更新する(SP73)。この結果、このブロードキャストテーブル23に従って、その後、かかるマイクロプロセッサ処理部14以外のマイクロプロセッサ処理部14がそれぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル20及び装置構成情報テーブル21を、それぞれそのとき共有メモリ16に格納された新たな分散配置テーブル20及び装置構成情報テーブル21に書き換えることになる。
さらにマイクロプロセッサ処理部14は、各ポート部12に対してステップSP71において作成した新たな分散配置テーブル20を送信する(SP74)。かくして各ポート部12は、このとき受信した新たな分散配置テーブル20を上書きするようにして、自己内部のメモリ12Aに保持している分散配置テーブル20を更新する。この後マイクロプロセッサ処理部14は、この記憶装置割振り処理を終了し、図12について上述したデータ入出力実行処理に戻る。
また上述のデータ入出力実行処理のステップSP63におけるデータ入出力処理に関するマイクロプロセッサ処理部14の具体的な処理内容を図14に示す。マイクロプロセッサ処理部14は、データ入出力実行処理のステップSP63に進むと、このデータ入出力処理を開始し、まず、データ入出力要求がリード要求であるか否かを判断する(SP80)。
そしてマイクロプロセッサ処理部14は、この判断において肯定結果を得ると、キャッシュメモリ15上にリード対象のデータが存在するか否かを判断する(SP81)。マイクロプロセッサ処理部14は、この判断において肯定結果を得るとステップSP83に進み、これに対して否定結果を得ると、リード対象のデータが格納された記憶装置10にアクセスして指定されたデータをキャッシュメモリ15上に読み出す(SP82)。
続いてマイクロプロセッサ処理部14は、リード対象のデータをキャッシュメモリ15から読み出し、これをデータ入出力要求を転送してきたポート部12に転送する(SP83)。またマイクロプロセッサ処理部14は、処理終了ステータスを当該ポート部12を介して対応するホストサーバ5に送信し(SP87)、この後、このデータ入出力処理を終了してデータ入出力実行処理(図12)に戻る。
一方、マイクロプロセッサ処理部14は、ステップSP80の判断において否定結果を得ると、かかるデータ入出力要求がライト要求であるか否かを判断する(SP84)。マイクロプロセッサ処理部14は、この判断において肯定結果を得ると、そのデータをキャッシュメモリ15に格納すると共に(SP85)、処理終了ステータスを対応するポート部12を介して対応するホストサーバ5に送信し(SP87)、この後このデータ入出力処理を終了してデータ入出力実行処理(図12)に戻る。
これに対してマイクロプロセッサ処理部14は、ステップSP84の判断において否定結果を得ると(つまりデータ入出力要求がリード要求及びライト要求のいずれでもなかった場合)、そのデータ入出力要求に応じた処理を実行すると共に(SP86)、処理終了ステータスを対応するポート部12を介して対応するホストサーバ5に送信する(SP87)。そしてマイクロプロセッサ処理部14は、この後このデータ入出力処理を終了してデータ入出力実行処理(図12)に戻る。
(1−2−4)保守処理
(1−2−4−1)保守閉塞処理
ところで、本実施の形態によるストレージ装置4においては、マイクロプロセッサ処理部14を交換等する場合、ユーザが管理コンソール5を用いてストレージ装置4に指示を与えることにより、対象となるマイクロプロセッサ処理部(以下、これを保守該当マイクロプロセッサ処理部と呼ぶ)14を閉塞させることができる。
この際、保守該当マイクロプロセッサ処理部14は、自マイクロプロセッサ処理部に割り当てられた記憶装置10を他のマイクロプロセッサ処理部14に割り振るように、各ポート部12、各マイクロプロセッサ処理部14及び共有メモリ16の分散配置テーブル20を更新し、その後に閉塞する。
図15は、このような保守閉塞処理に関する管理コンソール5及び保守該当マイクロプロセッサ処理部14の一連の処理の流れを示している。
この場合、管理コンソール5は、まず、ユーザ操作に応じて指定された保守該当マイクロプロセッサ処理部14に対して保守閉塞指示を発行する(SP90)。
そしてこの保守閉塞指示を受信した保守該当マイクロプロセッサ処理部14は、閉塞処理を開始し(SP91)、まず、共有メモリ16に格納された装置構成情報テーブル21上の自マイクロプロセッサ処理部のステータスを「閉塞移行中」に変更する(SP92)。具体的には、かかる装置構成情報テーブル21のマイクロプロセッサ処理部状態ビットマップ欄21I(図3)に格納された状態ビットマップを構成する各ビットのうち、自マイクロプロセッサ処理部と対応付けられたビットを「オン」上に変更する。
続いて保守該当マイクロプロセッサ処理部14は、自マイクロプロセッサ処理部に対する新規のデータ入出力要求が他のマイクロプロセッサ処理部14に転送されることを抑止するため、すべてのポート部12に対して、当該ポート部12が保持する分散配置テーブル20における自マイクロプロセッサ処理部のステータスを「閉塞」とするよう指示を与える(SP93)。
次いで保守該当マイクロプロセッサ処理部14は、自マイクロプロセッサ処理部に割り当てられている記憶装置10を他のマイクロプロセッサ処理部14に割り振った新たな分散配置テーブル20を作成し(SP94)、作成した分散配置テーブル20を共有メモリ16に格納されている古い分散配置テーブル20上に上書きする(SP95)。
また保守該当マイクロプロセッサ処理部14は、共有メモリ16上の装置構成情報テーブル21のブロードキャストテーブル欄21Gに格納されたブロードキャストテーブル23(図6)を、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」、これ以外のマイクロプロセッサ処理部14とそれぞれ対応付けられた各ビットを「オン」とするように更新する(SP96)。この結果、このブロードキャストテーブル23に従って、その後、かかる保守該当マイクロプロセッサ処理部14以外のマイクロプロセッサ処理部14が、それぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル20及び装置構成情報テーブル21を、それぞれそのとき共有メモリ16に格納された新たな分散配置テーブル20及び装置構成情報テーブル21に書き換えることになる。
続いて保守該当マイクロプロセッサ処理部14は、各ポート部12に対してステップSP94において作成した新たな分散配置テーブル20を送信する(SP97)。かくして各ポート部12は、このとき受信した新たな分散配置テーブル20を上書きするようにして、自己内部のメモリ12Aに保持している分散配置テーブル20を更新する。
この後、保守該当マイクロプロセッサ処理部14は、共有メモリ16に格納された装置構成情報テーブル21上の自マイクロプロセッサ処理部に対応するステータスを「閉塞移行中」から「閉塞」に更新し、さらに自マイクロプロセッサ処理部のステータスが「閉塞」に移行したことを管理コンソール5に通知した後、閉塞する(SP98)。
そして管理コンソール5は、かかる通知を受信すると、かかる保守該当マイクロプロセッサ処理部14が閉塞した旨の「マイクロプロセッサ処理部閉塞」画面を表示する(SP99)。
(1−2−4−2)マイクロ交換処理
また本実施の形態によるストレージ装置4の場合、マイクロプロセッサ処理部14のマイクロプログラムを新たなバージョンのものに交換する場合、ユーザが管理コンソール5を用いてストレージ装置4に指示を与えることにより、対象となるマイクロプロセッサ処理部(保守該当マイクロプロセッサ処理部)14を閉塞させることができる。
この際、保守該当マイクロプロセッサ処理部14は、上述と同様にして自マイクロプロセッサ処理部に割り当てられた記憶装置10を他のマイクロプロセッサ処理部14に割り振るように各ポート部12、各マイクロプロセッサ処理部14及び共有メモリ16がそれぞれ保持する分散配置テーブル20を更新し、その後閉塞する。
そして保守該当マイクロプロセッサ処理部14は、閉塞後に自マイクロプロセッサ処理部のメモリ14Bに保持したマイクロプログラムを交換し、かかる交換を終了すると、自マイクロプロセッサ処理部にデータ入出力処理を担当すべき記憶装置10を再度割り当てるように、各ポート部12、各マイクロプロセッサ処理部14及び共有メモリ16の分散配置テーブル20を更新する。
図16及び図17は、このようなマイクロプログラムの交換処理(以下、これをマイクロ交換処理と呼ぶ)に関する一連の処理の流れを示している。この場合、管理コンソール5は、ユーザ操作に応じて新たなマイクロプログラムを共有メモリに格納し(SP100)、この後、指定された保守該当マイクロプロセッサ処理部14に対してマイクロプログラムの交換指示を発行する(SP101)。
一方、管理コンソール5からかかるマイクロプログラムの交換指示が与えられた保守該当マイクロプロセッサ処理部14は、図15について上述した保守閉塞処理(SP91〜SP98)を実行することにより、自マイクロプロセッサ処理部に割り当てられている記憶装置10を他のマイクロプロセッサ処理部14に割り振るように、各ポート部12、各マイクロプロセッサ処理部14及び共有メモリ16にそれぞれ保持された分散配置テーブル20を更新した後に閉塞する(SP102〜SP109)。
また管理コンソール5は、保守該当マイクロプロセッサ処理部14から自マイクロプロセッサ処理部のステータスが「閉塞」に移行した旨の通知が与えられると、かかる保守該当マイクロプロセッサ処理部14が閉塞した旨の「マイクロプロセッサ処理部閉塞」画面を表示する(SP110)。
この後、管理コンソール5は、かかる保守該当マイクロプロセッサ処理部14に対してマイクロプログラムを交換するようリプレース指示を発行すると共に(SP111)、これと併せて当該保守該当マイクロプロセッサ処理部14のマイクロプログラムを交換中である旨の「マイクロ交換中」画面を表示する(SP112)。
一方、リプレース指示を受信した保守該当マイクロプロセッサ処理部14は、ステップSP100において管理コンソール5により共有メモリ16に格納されたマイクロプログラムを読み出し、自マイクロプロセッサ処理部内のメモリ14Bの不揮発領域に格納する(SP113)。
次いで保守該当マイクロプロセッサ処理部14は、リブート開始を管理コンソール5に通知する(SP114)。そしてこの通知を受けた管理コンソール5は、保守該当マイクロプロセッサ処理部14がリブート中である旨の「リブート中」画面を表示する(SP115)。
続いて保守該当マイクロプロセッサ処理部14は、再起動するリブート処理を実施し(SP116)、このリブート処理の終了後、その旨を管理コンソール5に通知する(SP117)。かくしてこの通知を受けた管理コンソール5は、かかる保守該当マイクロプロセッサ処理部14のリブートが終了した旨の「マイクロ交換終了画」面を表示する(SP118)。
次いで保守該当マイクロプロセッサ処理部14は、データ入出力処理を担当すべき記憶装置10を自マイクロプロセッサ処理部に再割り当てした新たな分散配置テーブル20を作成し(SP119)、作成した分散配置テーブル20を共有メモリ16に格納されている古い分散配置テーブル20上に上書きする(SP120)。
また保守該当マイクロプロセッサ処理部14は、共有メモリ16に格納されているブロードキャストテーブル23(図6)を、自マイクロプロセッサ処理部と対応付けられたビットを「オフ」、これ以外のマイクロプロセッサ処理部14と対応付けられたビットをそれぞれ「オン」とするように更新する(SP121)。この結果、このブロードキャストテーブル23に従って、その後、かかる保守該当マイクロプロセッサ処理部14以外のマイクロプロセッサ処理部14が、それぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル20をそのとき共有メモリ16に格納された新たな分散配置テーブル20に書き換えることになる。
さらに保守該当マイクロプロセッサ処理部14は、各ポート部12に対してステップSP119において作成した新たな分散配置テーブル20を送信する(SP122)。かくして各ポート部12は、このとき受信した新たな分散配置テーブル20を自己内部のメモリ12Aに格納された古い分散配置テーブル20に上書きするようにして、分散配置テーブル20を更新する。
この後、保守該当マイクロプロセッサ処理部14は、すべてのポート部12に対して、当該ポート部12が保持する分散配置テーブル20における自マイクロプロセッサ処理部のステータスを「正常」とするよう指示を与え(SP123)、共有メモリ16に格納された装置構成情報テーブル21の自マイクロプロセッサ処理部と対応するステータスを「閉塞」から「正常」に更新する(SP124)。
さらに保守該当マイクロプロセッサ処理部14は、マイクロプログラムのリプレース処理が終了したことを管理コンソール5に通知し(SP125)、マイクロプログラムの交換処理を終了する。
一方、この通知を受けた管理コンソール5は、かかる保守該当マイクロプロセッサ処理部14のマイクロプログラムの交換が終了した旨の「リプレース完了」画面を表示し(SP126)、この後マイクロプログラムを交換すべき他のマイクロプロセッサ処理部(他の保守該当マイクロプロセッサ処理部)14があるか否かを判断する(SP127)。
そして管理コンソール7は、マイクロプログラムを交換すべき他の保守該当マイクロプロセッサ処理部14があるときには、その保守該当マイクロプロセッサ処理部14に対してステップSP101について上述したマイクロプログラムの交換指示を発行する。この結果、その保守該当マイクロプロセッサ処理部14と管理コンソール5とによって上述のステップSP102〜ステップSP126の処理が行なわれることになる。
また管理コンソール5は、マイクロプログラムを交換すべきすべての保守該当マイクロプロセッサ処理部14に対して同様の処理を繰り返す。この結果、該当するすべての保守該当マイクロプロセッサ処理部14のマイクロプログラムが交換される。そして管理コンソールは、やがて該当するすべての保守該当マイクロプロセッサ処理部14のマイクロプログラムの交換処理が終了すると、このマイクロ交換処理を終了する。
(1−2−5)障害監視処理
次に障害監視処理について説明する。本実施の形態の場合、共有メモリ16には、図18に示すように、ストレージ装置4内の各マイクロプロセッサ処理部14にそれぞれ対応させて更新タイマ欄25Aが設けられた障害監視テーブル25が格納されている。そして各マイクロプロセッサ処理部14は、一定時間ごとに、それぞれ障害監視テーブル25上の自マイクロプロセッサ処理部と対応付けられた更新タイマ欄25Aに格納された時刻を現在時刻に更新する。
また各マイクロプロセッサ処理部14は、それぞれ障害監視テーブル25上の他のマイクロプロセッサ処理部14と対応付けられた各更新タイマ欄25Aの値を定期的にチェックする。そしてマイクロプロセッサ処理部14は、所定期間更新されていない更新タイマ欄25Aがあるときには、その更新タイマ欄25Aと対応付けられたマイクロプロセッサ処理部14が障害により閉塞しているものと判断して、そのマイクロプロセッサ処理部14に割り当てられている記憶装置10を残りの他のマイクロプロセッサ処理部14に割り振るように、各ポート部12、各マイクロプロセッサ処理部14及び共有メモリ16が保持する分散配置テーブル20を変更する。
図19は、上述のような障害監視処理のうち、障害監視テーブル25上の自マイクロプロセッサ処理部と対応付けられた更新タイマ欄25Aの時刻を更新する際のマイクロプロセッサ処理部14の処理内容を示している。マイクロプロセッサ処理部14は、メモリ14Bに格納されたマイクロプログラムに従って、この図19に示す時刻更新処理を実行する。
すなわちマイクロプロセッサ処理部14は、定期的にこの時刻更新処理を開始し、まず、共有メモリ16上のかかる障害監視テーブル25に他のマイクロプロセッサ処理部16等がアクセスできないようにする排他設定を行い(SP130)、その後ストレージ装置4のコントロール部11に設けられた図示しないタイマから現在時刻を取得する(SP131)。
続いてマイクロプロセッサ処理部14は、ステップSP131において取得した現在時刻を障害監視テーブル25上の自マイクロプロセッサ処理部に対応付けられた更新タイマ欄25Aに上書きするようにして、当該更新タイマ欄25Aに格納された時刻を更新する(SP132)。さらにマイクロプロセッサ処理部14は、かかる障害監視テーブル25に対する排他設定を解除し(SP133)、この後この時刻更新処理を終了する。
一方、図20は、上述の障害監視処理のうち、障害監視テーブル25に基づいて他のマイクロプロセッサ処理部14における障害の有無を監視する際のマイクロプロセッサ処理部14の具体的な処理内容を示している。マイクロプロセッサ処理部14は、メモリ14Bに格納されたマイクロプログラムに従って、この図20に示す障害監視及びテーブル更新処理を実行する。
すなわちマイクロプロセッサ処理部14は、定期的(例えば5秒ごと)にこの障害監視及びテーブル更新処理を開始し、まず、共有メモリ16上のかかる障害監視テーブル25に他のマイクロプロセッサ処理部14がアクセスできないような排他設定を行い(SP140)、その後、1つの更新タイマ欄25Aを選択して(SP141)、その更新タイマ欄25Aが自マイクロプロセッサ処理部に対応付けられた更新タイマ欄25Aであるか否かを判断する(SP142)。
マイクロプロセッサ処理部14は、この判断において肯定結果を得るとステップSP141に戻って他の更新タイマ欄25Aを選択し、これに対して否定結果を得ると、障害監視テーブル25のすべての更新タイマ欄25Aについて、後述するステップSP144〜ステップSP150の処理を実行し終えたか否かを判断する(SP143)。
マイクロプロセッサ処理部14は、この判断において否定結果を得ると、障害監視テーブル25のそのとき対象としている更新タイマ欄25A(そのときステップSP141において選択した更新タイマ欄25A)に格納されている時刻を読み出し(SP144)、さらにコントロール部11内の上述のタイマから現在時刻を取得する(SP145)。
次いでマイクロプロセッサ処理部14は、ステップSP144において取得した時刻と、ステップSP145において取得した現在時刻とを比較し、その差が所定時間(例えば5分)以上離れているか否かを判断する(SP146)。
そしてマイクロプロセッサ処理部14は、この判断において否定結果を得るとステップSP141に戻る。またマイクロプロセッサ処理部14は、かかる更新タイマ欄25AにステップSP150において後述する障害通知済フラグが格納されている場合にもステップSP141に戻る。
これに対してマイクロプロセッサ処理部14は、かかる判断において肯定結果を得ると、そのとき対象としている更新タイム欄25Aと対応付けられたマイクロプロセッサ処理部14が障害閉塞している旨の障害情報を作成し(SP147)、この障害情報を管理コンソール5に送信する(SP148)。
続いてマイクロプロセッサ処理部14は、自マイクロプロセッサ処理部のメモリ14B上において管理している、各マイクロプロセッサ処理部14にそれぞれ対応させて設けられたフラグ(以下、これを分散配置テーブル作成フラグと呼ぶ)のうち、そのとき対象としている更新タイム欄25Aと対応付けられたマイクロプロセッサ処理部14に対応する分散配置テーブル作成フラグを「オン(1)」に設定する(SP149)。
次いでマイクロプロセッサ処理部14は、障害情報を管理コンソール5に通知済みであることを意味する所定の障害通知済みフラグを障害監視テーブル25のそのとき対象としている更新タイム欄25Aに格納する(SP150)。これは、この後別のマイクロプロセッサ処理部14が再度、その更新タイム欄25Aと対応付けられたマイクロプロセッサ処理部14に障害が発生している旨の障害情報を管理コンソール5に通知するのを防止するためである。
そしてマイクロプロセッサ処理部14は、ステップSP141に戻って、この後対象とする更新フラグ欄25Aを順次他の更新フラグ欄25Aに切り替えながら、ステップSP143において肯定結果を得るまで同様の処理を繰り返す(SP141〜SP150−SP141)。
そしてマイクロプロセッサ処理部14は、やがてすべてのマイクロプロセッサ処理部14に対するチェックを終えることによりステップSP143において肯定結果を得ると、いずれかのマイクロプロセッサ処理部143に対応する分散配置テーブル作成フラグが「オン」となっているか否かを判断する(SP151)。
マイクロプロセッサ処理部14は、この判断において否定結果を得ると、ステップSP153に進み、これに対して肯定結果を得ると、分散配置テーブル再作成処理を実行する(SP152)。
具体的に、マイクロプロセッサ処理部14は、分散配置テーブル作成フラグが「オン」に設定された各マイクロプロセッサ処理部14にそれぞれ割り当てられている記憶装置10を当該分散配置テーブル作成フラグが「オフ」に設定された各マイクロプロセッサ処理部14にそれぞれ割り振った新たな分散配置テーブル20を作成し、これを共有メモリ16上の分散配置テーブル20に上書きする。
またマイクロプロセッサ処理部14は、共有メモリ16に格納されたブロードキャストテーブル23(図6)上の各ビットのうち、自マイクロプロセッサ処理部と対応付けられたビットを「オン」に設定すると共に、これら以外のマイクロプロセッサ処理部14と対応付けられたビットをすべて「オフ」に設定する。この結果、このブロードキャストテーブル23に従って、その後、かかる保守該当マイクロプロセッサ処理部14以外のマイクロプロセッサ処理部14が、それぞれ自マイクロプロセッサ処理部が保持する分散配置テーブル20をそのとき共有メモリ16に格納された新たな分散配置テーブル20に書き換えることになる。
さらにマイクロプロセッサ処理部14は、上述のようにして作成した新たな分散配置テーブル20を各ポート部12に送信する。かくして各ポート部12は、このとき受信した新たな分散配置テーブル20を自己内部のメモリ12Aに格納された古い分散配置テーブル20に上書きするようにして、分散配置テーブル20を更新する。
次いでマイクロプロセッサ処理14部は、障害監視テーブル25に対する排他設定を解除し(SP153)、この後、この障害監視及びテーブル更新処理を終了する。
(1−2−6)記憶装置再割当て処理
ところで、図13について上述した記憶装置割振り処理のステップSP71や、図15について上述した保守閉塞処理のステップSP94、及び図20について上述した障害監視及びテーブル更新処理のステップSP152において、閉塞した又は閉塞するマイクロプロセッサ処理部14に割り当てられていた記憶装置10を図21のように他のマイクロプロセッサ処理部14に割り振る方法としては、2の方法が考えられる。
1つは、各マイクロプロセッサ処理部14に割り当てられた記憶装置10の個数が均等になるように割り振る方法であり、もう1つは、各記憶装置10の稼働率に基づく各マイクロプロセッサ処理部14の負荷状況に応じて各マイクロプロセッサ処理部14の負荷が均等となるように記憶装置10を割り振る方法である。そして本実施の形態においては、後者の方法が採用されている。
そのための手段として、共有メモリ16には、図22に示すように、各記憶装置10にそれぞれ対応させて稼働率欄26Aが設けられた記憶装置稼働率管理テーブル26が格納されている。そして各マイクロプロセッサ処理部部14は、自マイクロプロセッサ処理部に割り当てられた記憶装置10ごとにデータ入出力要求を受け付けた回数をその記憶装置10の稼働率として記憶しデータ入出力要求を処理するごとに、記憶装置稼働率管理テーブル26の対応する稼働率欄26Aに格納された値をカウントアップする。
そしてマイクロプロセッサ処理部14は、閉塞した又は閉塞するマイクロプロセッサ処理部14に割り当てられていた記憶装置10を他のマイクロプロセッサ処理部に割り振る際には、かかる記憶装置稼働率管理テーブル26を参照して、図23に示すようなマイクロプロセッサ処理部稼働率管理テーブル27を作成する。
このマイクロプロセッサ処理部稼働率管理テーブル27は、マイクロプロセッサ処理部番号欄27A、処理対象記憶装置数欄27B及び記憶装置稼働率累積欄27Cとから構成される。そしてマイクロプロセッサ処理部番号欄27Aには、各マイクロプロセッサ処理部14のマイクロプロセッサ処理部番号が格納され、処理対象記憶装置欄27Bには、そのマイクロプロセッサ処理部14に割り当てられている記憶装置数が格納される。また記憶装置稼働率累積欄27Cには、そのマイクロプロセッサ処理部14の稼働率(単位時間当たりのデータ入出力数)が格納される。
そしてマイクロプロセッサ処理部14は、作成したマイクロプロセッサ処理部稼働率管理テーブル27に基づいて、稼動している各マイクロプロセッサ処理部14の負荷が均等化するように、より具体的には、各マイクロプロセッサ処理部14の稼働率を均一化するように、かかる閉塞した又は閉塞するマイクロプロセッサ処理部14に割り当てられていた記憶装置を他のマイクロプロセッサ処理部14に割り振るようになされている。
一方、障害閉塞等により交換した新たなマイクロプロセッサ処理部14を稼動させる場合、ユーザは管理コンソール5を介してストレージ装置4に対して当該マイクロプロセッサ処理部14に記憶装置10を割り当てるように指示(以下、これを記憶装置割当て指示と呼ぶ)を与える。
そしてこの記憶装置割当て指示を受け取ったストレージ装置4のマイクロプロセッサ処理部14は、図24に示すように、交換後の新たなマイクロプロセッサ処理部14を含めて各マイクロプロセッサ処理部14の負荷を均等化するように、その交換後の新たなマイクロプロセッサ処理部に記憶装置14を割り当てる。なお、この際かかる新たなマイクロプロセッサ処理部14に割り当てる記憶装置10としては、元のマイクロプロセッサ処理部14が障害閉塞する前に当該マイクロプロセッサ処理部14に割り当てられていた記憶装置10を割り当てるようにしても、またこれと異なる記憶装置10を割り当てるようにしてもよい。
(1−3)本実施の形態の効果
以上のように記憶システム1では、ポート部12においてホストサーバ2からのデータ入出力要求を分散配置テーブル20に従って対応するマイクロプロセッサ処理部14に振り分ける一方、いずれかのマイクロプロセッサ処理部14が障害等により閉塞したときには、当該閉塞したマイクロプロセッサ処理部14に割り当てられている記憶装置10を他のマイクロプロセッサ処理部14に動的に割り振るように各ポート部12の分散配置テーブル20を更新するため、マイクロプロセッサ処理部14が障害等により閉塞した場合においても、他の一部のマイクロプロセッサ処理部14にその分の負荷が集中することなく、また閉塞したマイクロプロセッサ処理部14に割り当てられていた記憶装置10に対するデータ入出力処理を滞ることなく行なうことができ、かくして耐障害性の高い記憶システムを実現できる。
またこの場合に、閉塞したマイクロプロセッサ処理部14に割り当てられていた記憶装置10を、他のマイクロプロセッサ処理部14の負荷が均等化するように当該他のマイクロプロセッサ処理部14に割り振るため、ストレージ装置4全体としてのデータ入出力性能が劣化するのを未然かつ有効に防止することができる。
(2)第2の実施の形態
図1との対応部分に同一符号に添え字「A」又は「B」を付して示す図25は、第2の実施の形態による記憶システム30を示す。この記憶システム30は、それぞれ第1の実施の形態による記憶システム1(図1)と同様の構成を有する複数の記憶システム部1A,1Bが通信ケーブル31を介して接続されることにより構成されている。
この場合通信ケーブル31としては、FCケーブル、IPケーブル又は専用線などを適用することができる。ただし、通信ケーブル31としてFCケーブル又はIPケーブルを適用する場合には、通信ケーブル31及び各記憶システム部1A,1B間に変換コネクタ等のインタフェースが必要となる。
本記憶システム30におけるデータ入出力動作は、各記憶システム部1A,1B内のストレージ装置4A,4Bの各ポート部12A,12B、各マイクロプロセッサ処理部14A,14B及び共有メモリ16A,16Bにそれぞれ格納された第1の実施の形態と同様の分散配置テーブル(図2参照)を用いて行なわれる。
実際上、記憶システム部1A,1B内のストレージ装置4A,4Bの各ポート部12A,12Bは、ホストサーバ2A,2Bからデータ入出力要求が与えられると、第1の実施の形態と同様に、分散配置テーブルを参照して転送先のマイクロプロセッサ処理部14A,14Bを特定し、特定したマイクロプロセッサ処理部14A,14Bにそのデータ入出力要求を転送する。
この際、ポート部12A,12Bは、分散配置テーブル上で転送先となり得るマイクロプロセッサ処理部14A,14Bを検出できなかったときには、そのデータ入出力要求を通信ケーブル31を介して他の記憶システム部1A,1Bの任意又は特定のマイクロプロセッサ処理部14A,14Bに転送する。これにより各ホストサーバ2A,2Bは、自己に接続されたストレージ装置4A,4Bだけでなく、他の記憶システム部1B,1Aのストレージ装置4B,4Aにもアクセスすることができる。
以上のように本記憶システムによれば、第1の実施の形態により得られる効果に加えて、システムの拡張性を格段的に向上させることができる。
(3)他の実施の形態
なお上述の実施の形態においては、記憶装置10に対するデータの入出力制御を行なう記憶制御装置としてのストレージ装置4のコントロール部11を図1のように構成された記憶システム1に適用するようにした場合について述べたが、本発明はこれに限らず、かかる記憶制御装置の構成としては、この他種々の構成を広く適用することができる。
また上述の実施の形態においては、1つのマイクロプロセッサ処理部14内に記憶装置10に対してデータの入出力を行なう処理部としてのマイクロプロセッサ14Aが1つのみ搭載されている場合について述べたが、本発明はこれに限らず、1つのマイクロプロセッサ処理部14内に複数のマイクロプロセッサ14Aが搭載されている場合にも本発明を適用することができる。この場合には、マイクロプロセッサ14Aごとに記憶装置10を割り当てると共に分散配置テーブル20や障害監視テーブル25のエントリをマイクロプロセッサ14A単位とし、ポート部21がホストサーバ2からのデータ入出力要求をマイクロプロセッサ14A単位で振り分けるようにする。そして閉塞したマイクロプロセッサ14Aに割り当てられていた記憶装置10については、閉塞していないマイクロプロセッサ14Aに割り振るようにすれば良い。このようにすることによって、1つのパッケージであるマイクロプロセッサ処理部14内の1つのマイクロプロセッサ14Aに障害が発生した場合においても同じパッケージ内の他のマイクロプロセッサ14Aに負荷が集中してデータ入出力性能が低下することを有効に防止することができる。
さらに上述の実施の形態においては、データ入出力処理の担当対象を記憶装置単位でマイクロプロセッサ処理部14(マイクロプロセッサ14A)に割り当てるようにした場合について述べたが、本発明はこれに限らず、例えば記憶装置10内に設定されるボリューム(記憶領域)単位で各マイクロプロセッサ14にデータ入出力処理の担当を割り当てるようにしても良い。この場合には、分散配置テーブル20の処理対象記憶装置ビットマップ欄20Dには、各ボリュームにそれぞれ対応させてビットが設けられたビットマップを格納するようにし、障害が発生したマイクロプロセッサ処理部14に割り当てられたボリュームを他のマイクロプロセッサ4に割り振る際にもボリューム単位で割り振るようにすれば良い。
本発明は記憶制御装置及び方法に関し、ホストに対するインタフェースとして機能するポート部と、記憶装置に対してデータ入出力処理を行なうマイクロプロセッサとをハード的に分離独立化した種々の構成のストレージ装置に広く適用することができる。
第1の実施の形態による記憶システムの全体構成を示すブロック図である。 分散配置テーブルの説明に供する概念図である。 装置構成情報テーブルの説明に供する概念図である。 第1のテーブル初期化設定処理の処理手順を示すフローチャートである。 第2のテーブル初期化設定処理の処理手順を示すフローチャートである。 ブロードキャストテーブルの説明に供する概念図である。 テーブル取込み処理の処理手順を示すフローチャートである。 テーブル配置の説明に供する概念図である。 テーブル再設定処理の処理手順を示すフローチャートである。 データ入出力処理に関するポート部の処理内容を示すフローチャートである。 転送先管理テーブルの説明に供する概念図である。 データ入出力実行処理の処理手順を示すフローチャートである。 記憶装置割振り処理の処理手順を示すフローチャートである。 データ入出力処理の処理手順を示すフローチャートである。 保守閉塞処理に関する管理コンソール及び保守該当マイクロプロセッサ処理部の処理の流れを示すフローチャートである。 マイクロ交換処理に関する管理コンソール及び保守該当マイクロプロセッサ処理部の処理の流れを示すフローチャートである。 マイクロ交換処理に関する管理コンソール及び保守該当マイクロプロセッサ処理部の処理の流れを示すフローチャートである。 障害監視テーブルの説明に供する概念図である。 時刻更新処理の処理手順を示すフローチャートである。 障害監視及びテーブル更新処理の処理手順を示すフローチャートである。 記憶装置の割振り処理の説明に供する概念図である。 記憶装置稼働率管理テーブルの説明に供する概念図である。 マイクロプロセッサ処理部稼働率管理テーブルの説明に供する概念図である。 記憶装置の再割振り処理の説明に供する概念図である。 第2の実施の形態による記憶システムの構成を示すブロック図である。
符号の説明
1,30……記憶システム、1A,1B……記憶システム部、2,2A,2B……ホストサーバ、4,4A,4B……ストレージ装置、5,5A,5B……管理コンソール、10……記憶装置、12,12A,12B……ポート部、14,14A,14B……マイクロプロセッサ処理部、16……共有メモリ、20……分散配置テーブル20……装置構成情報テーブル、23……ブロードキャストテーブル、24……転送先管理テーブル、25……障害監視テーブル、26……記憶装置稼働率管理テーブル、27……マイクロプロセッサ処理部稼働率管理テーブル。

Claims (18)

  1. 上位装置に対するインタフェースとして機能するポート部と、
    前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部と
    を備え、
    前記ポート部は、
    各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルを保持し、前記上位装置から与えられる前記データ入出力要求を当該テーブルに従って対応する前記処理部に振り分け、
    前記処理部は、
    前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新するようにした同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続され、
    前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートは、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送し、
    前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送する
    ことを特徴とする記憶制御装置。
  2. 前記複数の記憶制御装置における各処理部は、
    障害により閉塞した前記他の処理部に割り当てられた前記記憶装置又は前記記憶領域を、前記閉塞していない残りの処理部に均等に割り振る
    ことを特徴とする請求項1に記載の記憶制御装置。
  3. 前記複数の記憶制御装置における各処理部は、
    それぞれ各前記処理部がアクセス可能な共有メモリに定期的に現在時刻を格納すると共に、当該共有メモリに前記他の処理部が格納した時刻に基づいて、前記他の処理部の障害による閉塞の有無を定期的に判定する
    ことを特徴とする請求項1に記載の記憶制御装置。
  4. 前記複数の記憶制御装置における各ポート部は、
    転送先の前記処理部が前記データ入出力要求を受信できないときには、当該データ入出力要求を他の前記処理に転送し、
    当該データ入出力要求を受信した前記処理部は、
    当該データ入出力要求を本来送信すべき前記処理部が障害により閉塞していないか否かを、前記共有メモリに格納された当該処理部が格納した前記現在時刻に基づいて判定する
    ことを特徴とする請求項3に記載の記憶制御装置。
  5. 前記複数の記憶制御装置における各ポート部は、
    転送先の前記処理部が前記データ入出力要求を受信できないときには、前記テーブルに登録された前記処理部の中から新たな転送先の前記処理を選択して当該データ入出力要求を他の前記処理に転送すると共に、当該転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とを記憶し、次に前記データ入出力要求を他の処理部に転送する際には、記憶した前回の前記データ入出力要求の転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とに基づいて、前記テーブルに登録された前記処理部の中から新たな転送先の前記処理部を選択する
    ことを特徴とする請求項4に記載の記憶制御装置。
  6. 前記複数の記憶制御装置における各処理部は、
    外部からの指示に応じて閉塞する際、自己に割り当てられた前記記憶装置又は前記記憶領域を他の前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する
    ことを特徴とする請求項1に記載の記憶制御装置。
  7. 前記複数の記憶制御装置における各テーブルは、
    ユーザからの指示に応じてユーザの設定情報を基に所定の前記処理部が作成し、各ポート部に設定する
    ことを特徴とする請求項1に記載の記憶制御装置。
  8. 前記複数の記憶制御装置における各所定の処理部は、
    各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されたときには、当該指定に応じた個数の前記記憶装置を各前記処理部にそれぞれ割り当て、各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されていないときには、各前記処理部に均等に前記記憶装置を割り当てる
    ことを特徴とする請求項7に記載の記憶制御装置。
  9. 前記複数の記憶制御装置の各処理部は、
    ユーザから各処理部の処理を実行するように当該処理部のメモリに格納されている制御プログラムの交換指示が与えられたとき、前記ポート部に保持されている前記テーブルを更新した後、当該処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞し、次に前記制御プログラムの交換する指示を発行する一方、前記メモリに格納されていた制御プログラムを読み出し、その読み出した制御プログラムを前記自己のメモリの不揮発領域に格納すると共に、交換すべき制御プログラムを前記メモリに取り込む
    ことを特徴とする請求項1に記載の記憶制御装置。
  10. 上位装置に対するインタフェースとして機能するポート部と、前記上位装置から前記ポート部を介して与えられるデータ入出力要求に応じて、対応する記憶装置にデータを入出力する複数の処理部とを備えた同一の構成を有する複数の記憶制御装置が通信ケーブルを介して接続されている記憶制御装置における記憶制御方法において、
    前記複数の記憶制御装置における各ポート部が、各前記処理部にそれぞれ割り当てられたデータ入出力処理を担当すべき前記記憶装置又は前記記憶装置内の記憶領域が予め規定されたテーブルに従って、前記上位装置から与えられる前記データ入出力要求を対応する前記処理部に振り分ける第1のステップと、
    前記複数の記憶制御装置における各処理部が、前記ポート部により自己に振り分けられた前記データ入出力要求に応じて、対応する前記記憶装置又は対応する前記記憶領域にデータを入出力する一方、他の前記処理部の障害による閉塞を検出したときには、当該他の処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞していない残りの前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する第2のステップと
    を有し、且つ、
    前記複数の記憶制御装置の各上位装置から対応する各ポート部に前記データ入出力要求が与えられたとき、各ポートが、前記テーブルを参照して対応する記憶制御装置内の各処理部を特定し、その特定した各処理部に前記データ入出力要求を転送するステップと、
    前記複数の記憶制御装置の各ポート部が前記テーブル上で転送先となる処理部を検出できなかったとき、前記データ入出力要求を前記通信ケーブルを介して他の記憶制御装置の処理部に転送するステップと
    を有することを特徴とする記憶制御方法。
  11. 前記第2のステップにおいて、前記処理部は、
    障害により閉塞した前記他の処理部に割り当てられた前記記憶装置又は前記記憶領域を、前記閉塞していない残りの処理部に均等に割り振る
    ことを特徴とする請求項10に記載の記憶制御方法。
  12. 前記複数の記憶制御装置における各処理部は、
    それぞれ各前記処理部がアクセス可能な共有メモリに定期的に現在時刻を格納すると共に、当該共有メモリに前記他の処理部が格納した時刻に基づいて、前記他の処理部の障害による閉塞の有無を定期的に判定する
    ことを特徴とする請求項10に記載の記憶制御方法。
  13. 前記複数の記憶制御装置における各ポート部は、
    転送先の前記処理部が前記データ入出力要求を受信できないときには、当該データ入出力要求を他の前記処理部に転送し、
    当該データ入出力要求を受信した前記処理部は、
    当該データ入出力要求を本来送信すべき前記処理部が障害により閉塞していないか否かを、前記共有メモリに格納された当該処理部が格納した前記現在時刻に基づいて判定する
    ことを特徴とする請求項12に記載の記憶制御方法。
  14. 前記第1のステップでは、
    ポート部は、転送先の前記処理部が前記データ入出力要求を受信できないときには、前記テーブルに登録された前記処理部の中から新たな転送先の前記処理を選択して当該データ入出力要求を他の前記処理部に転送すると共に、当該転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とを記憶し、次に前記データ入出力要求を他の処理部に転送する際には、記憶した前回の前記データ入出力要求の転送先の処理部の識別子と、データ入出力要求に基づくデータ入出力先の記憶装置又は記憶領域の識別子とに基づいて、前記テーブルに登録された処理部の中から新たな転送先の前記処理部を選択する
    ことを特徴とする請求項13に記載の記憶制御方法。
  15. 前記複数の記憶制御装置における各処理部は、
    外部からの指示に応じて閉塞する際、自己に割り当てられた前記記憶装置又は前記記憶領域を他の前記処理部に割り振るように各前記ポート部がそれぞれ保持する前記テーブルを更新する
    ことを特徴とする請求項10に記載の記憶制御方法。
  16. 前記複数の記憶制御装置における各テーブルは、
    ユーザからの指示に応じて所定の前記処理部が作成し、各ポート部に設定する
    ことを特徴とする請求項10に記載の記憶制御方法。
  17. 前記複数の記憶制御装置における各所定の処理部は、
    各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されたときには、当該指定に応じた個数の前記記憶装置を各前記処理部にそれぞれ割り当て、各処理部にそれぞれ割り当てるべき前記記憶装置の個数がユーザにより指定されていないときは、各前記処理部に均等に前記記憶装置を割り当てる
    ことを特徴とする請求項16に記載の記憶制御方法。
  18. 前記複数の記憶制御装置の各処理部は、
    ユーザから各処理部の処理を実行するように当該処理部のメモリに格納されている制御プログラムの交換指示が与えられたとき、前記ポート部に保持されている前記テーブルを更新した後、当該処理部に割り当てられた前記記憶装置又は前記記憶領域を閉塞するステップと、
    前記制御プログラムの交換する指示を発行する一方、前記メモリに格納されていた制御プログラムを読み出し、その読み出した制御プログラムを前記自己のメモリの不揮発領域に格納すると共に、交換すべき制御プログラムを前記メモリに取り込むステップと
    を有することを特徴とする請求項10に記載の記憶制御方法。
JP2008061573A 2008-03-11 2008-03-11 記憶制御装置及び方法 Expired - Fee Related JP5153392B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008061573A JP5153392B2 (ja) 2008-03-11 2008-03-11 記憶制御装置及び方法
US12/123,057 US7913112B2 (en) 2008-03-11 2008-05-19 Storage controller and storage control method
EP09250035A EP2101265A1 (en) 2008-03-11 2009-01-08 Storage controller and storage control method
US13/023,150 US8549349B2 (en) 2008-03-11 2011-02-08 Storage controller and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008061573A JP5153392B2 (ja) 2008-03-11 2008-03-11 記憶制御装置及び方法

Publications (2)

Publication Number Publication Date
JP2009217620A JP2009217620A (ja) 2009-09-24
JP5153392B2 true JP5153392B2 (ja) 2013-02-27

Family

ID=40456464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008061573A Expired - Fee Related JP5153392B2 (ja) 2008-03-11 2008-03-11 記憶制御装置及び方法

Country Status (3)

Country Link
US (2) US7913112B2 (ja)
EP (1) EP2101265A1 (ja)
JP (1) JP5153392B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055279B2 (en) * 2014-04-02 2018-08-21 Hitachi, Ltd. Semiconductor integrated circuit for communication, storage apparatus, and method for managing failure in storage apparatus
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3731097C2 (de) 1987-09-16 1996-02-08 Vdo Schindling Schaltungsanordnung zur Überwachung einer von zwei Mikroprozessoren gesteuerten Einrichtung, insbesondere einer Kraftfahrzeug-Elektronik
JP2829040B2 (ja) * 1988-07-21 1998-11-25 株式会社日立製作所 情報集配信システム
JPH0314161A (ja) * 1989-06-13 1991-01-22 Toshiba Corp プロセッサ監視処理方式
US5377322A (en) 1989-07-19 1994-12-27 Hitachi, Ltd. Information handling method and system utilizing multiple interconnected processors and controllers
US7035922B2 (en) * 2001-11-27 2006-04-25 Microsoft Corporation Non-invasive latency monitoring in a store-and-forward replication system
DE10235564A1 (de) 2002-08-03 2004-02-12 Robert Bosch Gmbh Verfahren zum Überwachen eines Mikroprozessors und Schaltungsanordnung mit einem Mikroprozessor
JP4606711B2 (ja) * 2002-11-25 2011-01-05 株式会社日立製作所 仮想化制御装置およびデータ移行制御方法
US7263593B2 (en) * 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
JP2007179156A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd 記憶制御装置及び方法
JP4859471B2 (ja) * 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ

Also Published As

Publication number Publication date
US7913112B2 (en) 2011-03-22
EP2101265A1 (en) 2009-09-16
JP2009217620A (ja) 2009-09-24
US20090234986A1 (en) 2009-09-17
US8549349B2 (en) 2013-10-01
US20110126058A1 (en) 2011-05-26

Similar Documents

Publication Publication Date Title
JP4662548B2 (ja) スナップショット管理装置及び方法並びにストレージシステム
US9535632B2 (en) Method and system for distributed raid implementation
JP5603941B2 (ja) 計算機システム及びデータ移行方法
US8539180B2 (en) System and method for migration of data
JP4990940B2 (ja) 計算機装置及びパス管理方法
JP5014821B2 (ja) ストレージシステム及びその制御方法
EP1818795A2 (en) Storage system, data processing method and storage apparatus
US8527699B2 (en) Method and system for distributed RAID implementation
US20120131383A1 (en) Method and system for protecting against multiple failures in a raid system
US20100268756A1 (en) System and method for providing access to a shared system image
WO2012066594A1 (en) Computer system and storage migration method
JP2009080603A (ja) ストレージ装置及びその省電力方法
US7228538B1 (en) Method, system, and program for updating firmware to a storage system comprised of multiple controllers
JP2008181382A (ja) ストレージ装置及び負荷分散方法
JP2009211132A (ja) 記憶システム及びデータ移行方法
JP2007287064A (ja) 記憶システム、パス管理方法及びパス管理装置
JP2009237763A (ja) サーバシステム及びその制御方法
JP2012505439A (ja) ストレージ装置及びその制御方法
WO2014174671A1 (ja) 計算機システム及び負荷分散方法
JP2009282800A (ja) ストレージ装置及びその制御方法
WO2013098888A1 (en) Storage apparatus and method for controlling same
EP1901160A2 (en) Storage system, storage system control method, and storage controller
JP5153392B2 (ja) 記憶制御装置及び方法
JP4837495B2 (ja) 記憶システム及びデータ管理移行方法
JP2007065788A (ja) ディスクアレイ装置及びその制御方法並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121204

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees