JP2006107019A - ディスクアレイ装置 - Google Patents

ディスクアレイ装置 Download PDF

Info

Publication number
JP2006107019A
JP2006107019A JP2004291284A JP2004291284A JP2006107019A JP 2006107019 A JP2006107019 A JP 2006107019A JP 2004291284 A JP2004291284 A JP 2004291284A JP 2004291284 A JP2004291284 A JP 2004291284A JP 2006107019 A JP2006107019 A JP 2006107019A
Authority
JP
Japan
Prior art keywords
processor
unit
processing
disk array
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004291284A
Other languages
English (en)
Other versions
JP5038589B2 (ja
Inventor
Homare Okamoto
誉 岡本
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 JP2004291284A priority Critical patent/JP5038589B2/ja
Priority to US10/998,552 priority patent/US7558912B2/en
Publication of JP2006107019A publication Critical patent/JP2006107019A/ja
Priority to US12/457,148 priority patent/US8615625B2/en
Application granted granted Critical
Publication of JP5038589B2 publication Critical patent/JP5038589B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Abstract

【課題】 ディスクアレイ装置のチャネルアダプタで、1つのポート部を複数のプロセッサで制御する構成を採用しつつ、他装置からの要求に対応した処理を特定のプロセッサに偏らせずに分散して効率的に実行できる技術を提供する。
【解決手段】 コントローラ10のCHA11は、インタフェース動作を行うポート部40と、ホストプロセッサ(51A,51B)を有する複数のホストプロセッサ部50A,50Bとを有する。複数のプロセッサが並行動作してポート部40を制御する。ポート部40で他装置400からの要求を受信すると、第1のプロセッサ51Aは、自身を含むプロセッサにおける処理負荷状態の判断に基づき、自身で処理を担当するか、または第2のプロセッサ51Bに処理を担当させる場合はプロトコル部42と通信して要求を第2のホストプロセッサ部50Bに転送して処理を担当させる。
【選択図】 図5

Description

本発明は、ハードディスクドライブ(HDD)等の記憶装置へデータを記憶する制御を行うディスクアレイ装置(RAID記憶装置)に関し、特に、ディスクアレイ装置でこれに通信接続されるホストコンピュータ等の他装置との間でのデータ転送インタフェース動作を行うチャネル制御装置(チャネルアダプタ)の技術に関する。
ディスクアレイ装置及びこれに通信接続されるホストコンピュータ等の他装置を含んで構成されるコンピュータシステムにおいて、装置間を接続するネットワークの転送レートの高速化が進んでいる。これに対応するために、従来のディスクアレイ装置のコントローラでは、1個のポート部を複数のプロセッサ(ホストプロセッサ部)で制御する構成のチャネルアダプタを採用している。この構成で、ホストコンピュータ等の他装置とチャネルアダプタとで、ネットワークを介した通信において、ポート部が他装置からデータ入出力に係わるコマンド(データアクセス要求)を受信して、受信コマンドに対応したデータ転送処理をプロセッサで行う。この際のデータ転送処理は、チャネルアダプタ内に有する複数のプロセッサのいずれかで処理させる。前記データ転送処理は、リードコマンドに対応したデータリード処理においてHDDからのリードデータを他装置側へ転送する処理や、ライトコマンドに対応したデータライト処理において他装置側からのライトデータをHDDへ転送する処理などである。前記データ転送処理では、典型的には、コントローラ内に持つメモリでリード/ライトデータが一旦キャッシュされる。
特許文献1記載の技術では、多数の記憶装置コントローラまたは多数のプロセッサ間でデータアクセスタスクを分散する方法を提供している。
特開2001−318904号公報
従来の構成では、他装置からの受領コマンドに対応したデータ転送処理をチャネルアダプタ内に有する複数のプロセッサのいずれかで行わせる際に、どのプロセッサに処理を行わせるかを、所定の方式により一意に決定している。従って、場合によっては特定のプロセッサにのみ処理要求が偏ることでそのプロセッサに大きな負荷がかかってしまい、全体として非効率的である。
例えば前記特許文献1記載の技術では、複数の記憶装置コントローラまたはプロセッサにおける処理(データアクセスタスク)の分散にあたり、分散先が一意に決定されると考えられる。すなわち、プロセッサから参照されるテーブルで、複数のプロセッサの各々がどの冗長グループ(ディスクアレイ)に対するデータアクセスを処理するかが一意に決められており、当該テーブルに従って、要求を処理するプロセッサが特定される。従って、処理のタイプが偏る場合に複数のプロセッサにおける処理効率が低下する恐れがある。また、この技術では、複数のプロセッサでの処理の分散のために、あるプロセッサから他のプロセッサに直接に要求(コマンド)を転送する形態であると考えられる。
本発明は以上のような問題に鑑みてなされたものであり、その目的は、ディスクアレイ装置で、他装置とのデータ転送インタフェース動作を行うチャネルアダプタにおいて、1つのポート部を複数のプロセッサで制御する構成を採用しつつ、他装置からの要求(コマンド)に対応した処理を、特定のプロセッサに偏らせずに分散して効率的に実行できる技術を提供することにある。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
前記目的を達成するために、本発明のディスクアレイ装置は、HDD等の記憶装置と、記憶装置にデータを記憶する制御を行うコントローラとを有し、コントローラには、通信手段を通じて接続されるホストコンピュータ等の他装置との間でインタフェース・プロトコルに従ってデータ転送インタフェース動作を行うチャネル制御装置(チャネルアダプタ)を有し、チャネル制御装置は、1個のポート部に対して複数のホストプロセッサ部を有する構成で、他装置から受信する要求(コマンド)に応じて記憶装置上の記憶ボリュームに対する前記データのリード/ライト等の入出力処理を行う装置であって、以下に示す技術的手段を有することを特徴とする。
本ディスクアレイ装置は、コントローラのチャネル制御装置で、ポート部と複数のホストプロセッサ部とデータ転送制御部とを有する。ポート部は、通信手段を介して他装置との間でのデータ送受信を行い、また複数のホストプロセッサ部との間で制御のための通信を行い、またデータ転送制御部を介してコントローラ内のメモリ及び記憶装置側に対するデータ転送を行う。
ポート部は、例えば、トランシーバとプロトコル部とを有する構成である。トランシーバは、本装置及び他装置と接続されるネットワークに対してデータ送受信動作を行う。プロトコル部は、ネットワーク上のインタフェース・プロトコルに従った通信制御を行う。プロトコル部は複数のホストプロセッサ部との間での通信のための制御情報を格納する情報領域(ポインタ情報を格納するレジスタなど)を有する。複数のホストプロセッサ部における各プロセッサは、不揮発性メモリ上にインストールされている制御プログラム(チャネルアダプタドライバ)に従って並行的に動作して、1つのポート部のインタフェース動作を制御する。
ホストプロセッサ部は、例えば、プロセッサ(ホストプロセッサ)とその制御プログラム(チャネルアダプタドライバ)と制御情報を格納するメモリ(ホストプロセッサ・ローカルメモリ)とを有する構成である。
データ転送制御部は、ポート部と、コントローラ内で入出力データを保持するメモリ例えばキャッシュメモリやチャネル制御装置内に設けたメモリとの間での入出力データの転送を制御する。
上記構成で、他装置からの要求(コマンド)の受領に対して、チャネル制御装置内に複数有するプロセッサのいずれが前記要求に対応した他装置側とのデータ転送に係わる処理を担当するかを固定的な設定に従って一意に決定するのではなく、前記要求の受領の都度、1つ以上のプロセッサの処理負荷状態あるいは処理担当状態の判断に応じて複数のプロセッサで前記要求に応じた処理の分散を行う。
前記処理の分散のために、チャネル制御装置内の複数のプロセッサでいずれか1つを、前記他装置からの要求をポート部を通じて最初に受ける役割を担うマスタ(代表)のプロセッサ(第1のプロセッサ)として設定する。前記第1のプロセッサを有するホストプロセッサ部を第1のホストプロセッサ部とする。
ポート部は、他装置から受信したすべての要求について一旦前記第1のホストプロセッサ部に対して送信(転送)する。すなわち、ポート部は、前記他装置から受信した要求について一旦前記第1のホストプロセッサ部に対して、「処理すべき要求が有る」旨のメッセージを通知する。この際、例えば、ポート部は、第1のホストプロセッサ部のメモリの情報領域に、前記メッセージを書き込むと共に、メッセージ位置を示すポインタ情報を更新する。
前記第1のプロセッサは、前記要求に応じた処理を行うにあたり、自身が処理を担当するのに適当かどうかを、自身を含む複数のプロセッサの処理負荷状態を考慮して判断する。また、この判断の際、まず自身のプロセッサにおける処理負荷状態のみ考慮して判断することとしてもよい。
前記第1のプロセッサは、前記処理担当に関する判断で自身で処理を担当すると判断した場合は、そのまま前記要求に応じた処理を担当し、自身で処理を担当しないあるいは他プロセッサに処理を担当させると判断した場合は、ポート部との通信を行ってポート部を介して第1のプロセッサから他プロセッサに前記要求を転送して当該要求に応じた処理を担当させる。
前記チャネル制御装置で、前記第1のプロセッサ以外の他プロセッサのうち、前記第1のプロセッサでの判断及び指示に基づき処理を担当させる先(分散先)となるプロセッサを第2のプロセッサとする。前記第2のプロセッサを有するホストプロセッサ部を第2のホストプロセッサ部とする。
ポート部により第1のプロセッサから第2のプロセッサに対し前記要求を転送する。例えば、前記第1のプロセッサは、前記他プロセッサとして第2のプロセッサに処理を担当させると判断した場合、第1のホストプロセッサ部内のメモリの情報領域に前記他プロセッサに処理を担当させるためのメッセージを格納し、ポート部のプロトコル部の有する情報領域に対して通知を行って前記メッセージを読み取らせる。ポート部のプロトコル部は、第1のプロセッサから通知されたメッセージの認識に基づき、前記第2のプロセッサに対して、前記要求に応じた処理を担当させるための指示を行う。すなわち、ポート部のプロトコル部は、第2のホストプロセッサ部内のメモリの情報領域に対して、「処理すべき要求が有る」旨のメッセージを格納し、メッセージ位置を示すポインタ情報を更新して、前記メッセージを読み取らせる。第2のプロセッサは、前記要求の転送に応じて、処理を担当して実行する。
前記処理の分散のための通信手段として、例えば、プロトコル部は、各ホストプロセッサ部との通信のためのポインタ情報を格納するための情報領域(OMI及びIMO)を有する。またホストプロセッサ部はローカルメモリを有し、ローカルメモリにプロトコル部との通信のためのメッセージあるいはコマンドを格納するための情報領域(OM領域、IM領域)と、前記メッセージあるいはコマンドの位置を示すポインタ情報を格納するための情報領域(OMO、IMI)と、処理対象データの転送に関する情報を格納するための情報領域(DI領域)とを有する。前記処理の分散のための通信において、プロトコル部は、ホストプロセッサ部側の情報領域をリード/ライトし、プロセッサは、プロトコル部側の情報領域をリード/ライトする。
チャネル制御装置で前記処理を複数のプロセッサで分散するための判断方法は、例えば以下のようなものがある。(1):前記第1のプロセッサは、各プロセッサですべき処理(担当処理)の個数をカウントし、前記担当処理数が最も少ないプロセッサを処理負荷量が最も少ない状態にあると判断して処理を担当させる。(2):前記第1のプロセッサは、各プロセッサが処理すべきデータ転送数の合計、すなわち前記担当処理数ではなく処理におけるデータ転送数やデータ転送量などの内容まで概略的に計算した処理負荷量をカウントして判断し、前記処理負荷量が最も少ないプロセッサに処理を担当させる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、ディスクアレイ装置で他装置とのデータ転送インタフェース動作を行うチャネルアダプタにおいて、1つのポート部を複数のプロセッサで制御する構成を採用しつつ、他装置からの要求(コマンド)に対応した処理を、特定のプロセッサに偏らせずに分散して効率的に実行でき、複数のプロセッサを有効に使用した作業が可能となる。これにより、ネットワークの転送レートの高速化に伴うデータ転送処理の高速化を図ることが可能となる。また特に、チャネルアダプタにおいて、他のプロセッサと直接相互に通信する手段を持たない、プロトコル部との通信手段のみ有する比較的簡単・安価な構成のプロセッサを用いて、処理の分散の実現が可能である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1〜図11は、本発明の実施の形態1におけるディスクアレイ装置について説明するための図である。実施の形態1のディスクアレイ装置では、コントローラを構成するCHAにおいて、1つのポート部を2つのホストプロセッサ部で制御する構成で、2つのホストプロセッサで要求に対応した処理の分散を行うものである。ポート部で他装置から受信した要求(コマンド)を、プロトコル部から代表(マスタ)となる第1のホストプロセッサ部へ一旦転送し、この要求に対応した処理を第1のホストプロセッサでそのまま行うかどうかを、第1のホストプロセッサ及びCHA内の他ホストプロセッサの処理負荷状況を考慮しつつ判断し、判断に基づき他のホストプロセッサ部に処理を担当させる場合は第1のホストプロセッサ部とポート部のプロトコル部との通信を介して前記要求を第2のホストプロセッサ部に転送させて第2のホストプロセッサで処理を行わせる。
<ハードウェア構成>
まず、実施の形態1のディスクアレイ装置の全体構成について説明する。その後、本発明で特徴的な処理について説明する。図1は、実施の形態1のディスクアレイ装置100のハードウェア外観構成を示す。特にディスクアレイ装置100の正面から見た構成を示す。
図1において、ディスクアレイ装置100は、一形態として、主にコントローラ(ディスクアレイ制御装置)10を収容する制御筐体120と、主に複数のHDD30を収容するHDD筐体130とで構成される。1つの制御筐体120の両側にHDD筐体130が配置されている。
制御筐体120では、後述するコントローラ10を構成する複数のボード(回路基板)やその他電源や表示パネル等のユニットが図示しないバックボードを通じて接続されている。制御筐体120では、正面中央に、カバーで覆われたノート型PCの形態の管理端末(SVP)160が備えられている。カバーを開けることで管理端末160を使用できる。管理端末160の下部には、チャネルアダプタ(CHA)11を構成するボードなどを装着するための複数のスロットが設けられている。各スロットに1つのCHA11などのボードが着脱可能である。一形態として8枚のCHA11のボードが装着される。各スロットにはボードを抜き差しするためのガイドレールが設けられていて、ガイドレールに沿ってボードが抜き差しされる。各スロットの奥手方向にはボードをコントローラ10と電気的に接続するためのコネクタが設けられており、ボード側のコネクタ部分が接続されることで接続状態となる。保守員等により、必要に応じてボードの増設、減設、交換が可能である。コントローラ10を構成する他のディスクアダプタ14等も同様に制御筐体120に装着される。HDD筐体130では、HDD30をキャニスタ等の機構と一体化した構成のディスクユニットが、多数、多段にわたって着脱可能に接続される。
<コンピュータシステム構成>
図2は、ディスクアレイ装置100を含むコンピュータシステム全体の構成を示す。コンピュータシステムは、ネットワーク300を介して、1つ以上のディスクアレイ装置100と、1つ以上の他装置400が接続される構成である。他装置400は、ユーザの使用するホストコンピュータ200や管理サーバ210、あるいは他のディスクアレイ装置100などである。ネットワーク300は、メインフレーム系の通信プロトコルに対応したネットワークや、SAN(Storage Area Network)やLAN(Local Area Network)などのネットワーク、あるいはそれらが混在するネットワークである。
他装置400は、ネットワーク300を介して、ディスクアレイ装置100側のコントローラ10のCHA11との通信を制御する通信インタフェース装置を有する。管理サーバ210は、ディスクアレイ装置保守・管理用のソフトウェアをインストールしたコンピュータである。
ディスクアレイ装置100は、主にコントローラ10とこれに接続される複数のHDD30(ディスクユニット)を備え、コントローラ10の一部を構成するCHA11によりネットワーク300に接続される。また、あるディスクアレイ装置100の設置場所(プライマリサイト)とは遠隔した場所(セカンダリサイト)に他のディスクアレイ装置100を設置して遠隔で通信可能である。ディスクアレイ装置100間で、例えばデータ保全のためのリモートコピーやレプリケーション等の実行が可能である。
ホスト200は、ユーザが使用するコンピュータであり、例えばPCやワークステーションやメインフレームコンピュータである。ホスト200は、コマンド(要求)をディスクアレイ装置100に送信することで、ディスクアレイ装置100の提供する各種機能を利用する。ホスト200とディスクアレイ装置100は、ネットワーク300を介して所定の通信プロトコルで通信接続される。ホスト200とディスクアレイ装置100の通信は、ホスト200がメインフレーム系である場合の接続では、ESCON(Enterprise System CONnection)(登録商標)やFICON(FIbre CONnection)(登録商標)などの通信プロトコルに従って行われる。また、ホスト200がオープン系である場合の接続では、SANやLANなどに対応した通信プロトコルに従って行われる。
コントローラ10は、CHA11により他装置400から受信したコマンドに従ってデータ記憶に係わる各種制御を行う。例えばホスト200からのリードコマンドやライトコマンドを受信して、HDD30上の記憶ボリュームに対するデータ入出力処理(リード/ライト処理)を行う。またコントローラ10は、他装置400との間で、ディスクアレイ装置100を管理するための各種コマンドの授受も行う。またHDD30のグループに対してディスクアレイ(RAIDグループ)を設定してRAIDグループ上に論理デバイス(LDEV)を設定可能で、所定のRAID方式での制御が可能である。
複数のHDD30は、コントローラ10の各DKA14と、FC−AL等の形式の接続線で接続される。コントローラ10に接続される記憶装置としてはHDD30に限らず、フレキシブルディスク装置、半導体記憶装置など様々なものを用いることができる。DKA14とHDD30との間は、図2に示すようにスイッチ制御アダプタ群16を介して接続される形態や、あるいは直接接続される形態などが可能である。更にHDD30側をコントローラ10と一体化構成にすることも可能である。
データは、1つ以上のHDD30により提供される記憶ボリューム、すなわちディスク上の物理的な記憶領域または物理的な記憶領域上に論理的に設定される記憶領域(論理デバイスや論理ユニット)に記憶される。HDD30上に設定される記憶ボリュームとしては、ホスト200からアクセス可能でユーザデータが格納されるユーザデータ領域や、システム制御のためのシステムデータ等の格納のために使用されるシステム領域等がある。また、CHA11などの制御単位ごとにアクセス可能な記憶ボリュームを割り当てることも可能である。また前記割り当てでは、複数のCHA11で1つの記憶ボリュームを共有する設定も可能である。
HDD30では、ディスク上の物理的な記憶領域のどの位置にデータを読み書きするかを識別する位置情報(物理アドレス)を持つ。例えばHDD30ではシリンダやトラックといった位置情報を指定することで、ランダムアクセスとしてディスク上の任意位置にデータを読み書き可能である。ディスク上へのデータ入出力の際は、DKA14等での処理により、論理アドレスとディスクにおける物理アドレスとの変換がなされる。
<ホストコンピュータ>
図3は、ディスクアレイ装置100に通信接続されるホスト200の機能ブロック構成を示す。ホスト200は、CPU201、メモリ202、ポート203、入力装置204、出力装置205、記憶装置206、記録媒体読取装置207などを備える。CPU201によりメモリ202上のプログラムが実行されることにより様々な機能が実現される。メモリ202上にアプリケーションプログラム20、利用プログラム21を有する。ポート203は、ネットワーク300に接続され、ディスクアレイ装置100や他のホスト200等との間で通信を行うための装置である。入力装置204は、ユーザによる操作のためのキーボードやマウスなどである。出力装置205は、情報を表示するためのディスプレイなどである。記憶装置203は、例えばHDDや半導体記憶装置等である。記録媒体読取装置207は、記録媒体に記録されているプログラムやデータを読み取る装置である。読み取られたプログラムやデータは、メモリ202や記憶装置203に格納される。記録媒体は、例えばフレキシブルディスクやCD−ROM等である。
アプリケーションプログラム20は、ディスクアレイ装置100の提供する機能を利用したオンライン処理等を制御するためのプログラムである。ホスト200は、ディスクアレイ装置100の記憶ボリュームに記憶されているデータに適宜アクセスしながらアプリケーションプログラム20を実行することで各種の情報処理サービスを提供する。情報処理サービスは、例えば銀行の自動預金預け払いシステムなどである。
利用プログラム21は、ディスクアレイ装置100の提供する各種機能を利用するためのプログラムであり、HDD30に対するデータ入出力のためのリード/ライトコマンド等の各種要求(コマンド)を発行するためのコマンド発行プログラム22を備える。また特にホスト200が管理サーバ210である場合は、利用プログラム21は、管理端末160と同様に各種保守・管理のための機能を備える。
<コントローラ>
コントローラ10は、CHA(チャネルアダプタ)11、SM(共有メモリ)12、CM(キャッシュメモリ)13、DKA(ディスクアダプタ)14、SW(スイッチ制御アダプタ)15、及びバスなどを備える。CHA11等の各処理部がそれぞれボードにより実装される構成であり、各処理部間がSW15などにより相互に高速アクセス可能に接続される。各ボードは、ディスクアレイ装置100の筐体に必要に応じて装着・接続される。また、各ボードを複数個用意して相互に接続することで、HDD30に対するデータパスを多重化した構成となる。本実施の形態では、各CHA11とDKA14は、SM12に対してバスで直接接続され、CM13に対してSW15を介してバスで接続される。また、図示したようなコントローラ10を更に二重化した形態なども可能である。多重化構成により、並列処理による性能向上や耐障害性が実現される。
各CHA11及びDKA14は、内部LAN162を通じて相互に通信可能に接続され、また管理端末(SVP)160にも接続されている。これによりCHA11やDKA14に実行させるプログラムを管理端末160から送信してインストールすること等が可能となっている。
SM12及びCM13は、CHA11、DKA14により共用されるメモリである。SM12は、主に制御情報やコマンド等を記憶するために利用され、CM13は、主にデータ(ユーザデータ)を記憶するために利用される。SM12は、CHA11とDKA14との間で授受されるコマンド等を一時的に保持する。CM13は、CHA11とDKA14との間で授受されるデータを一時的に保持する。図2に示す構成の場合、コントローラ10で、同一機能のSM12及びCM13のボードをそれぞれ4枚接続した構成である。SW15はCHA11やDKA14とCM13との間でのデータ転送の制御を行うもので、複数のSW15が存在する。図2に示す構成の場合、コントローラ10で、同一機能のSW15のボードを4枚接続した構成である。
CHA11は、一体的にユニット化されたボード上に形成されたハードウェア及びこのハードウェアにより実行されるソフトウェアにより実現される。図2に示す構成では、コントローラ10に、同一機能のCHA11のボードを8枚接続した構成である。CHA11は本発明の特徴的な処理を実現する部位である。CHA11は、ディスクアレイ装置100内に、他装置400との通信プロトコルに応じて多品種、複数接続可能である。コントローラ10でCHA11として各通信プロトコルに対応したものを混在させて接続させることにより、異種ネットワークに接続されるディスクアレイ装置を実現できる。CHA11は、ホスト200等の他装置400からの要求を個々に受け付ける。CHA11は、ホスト200側のポート203との間で、物理リンク及び物理リンク上の論理パスによって接続される。また他のCHA11で、異なる物理リンク及び論理パスにより他装置400に通信接続可能である。CHA11は、他装置400からブロックアクセス要求等のアクセス要求を受けると、DKA14に対するデータ入出力要求に変換して出力する。またライト処理の場合には要求にライトデータが含まれるようにすることができる。
DKA14は、HDD30に対する制御を行う。図2に示す構成の場合、コントローラ10で、同一機能のDKA14のボードを8枚接続した構成である。DKA14は、例えばCHA11がホスト200から受信したライトコマンドに従ってHDD30上の記憶領域へライトデータの書き込みを行う。また、CHA11により送信された論理アドレス指定によるデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する処理などを行う。またDKA14は、RAIDグループに対するRAID制御を行う場合には、RAID方式に従って並列アクセス等の制御を行う。またDKA14は、HDD30に記憶されたデータのバックアップに関する制御や、プライマリサイトのディスクアレイ装置100のデータについての複製をセカンダリサイトのディスクアレイ装置100に転送する制御等も可能である。
CHA11側とDKA14側とにおけるデータやコマンドの授受は、SM12、CM13及びSW15等を介して行われる。CHA11とDKA14の間での通信は例えば以下のようになる。あるCHA11があるホスト200から受信したコマンドがライトコマンドであった場合、当該CHA11は、ライトコマンドをSM12に書き込むと共に、ホスト200から受信したライトデータ(書き込み対象データ)をCM13に書き込む。一方、DKA14は、SM12を監視しており、SM12にライトコマンドが書き込まれたことを検出すると、当該ライトコマンドに従ってCM13からライトデータを読み出してHDD30に書き込む処理を行う。
また、あるCHA11があるホスト200から受信したコマンドがリードコマンドであった場合、当該CHA11は、リードコマンドをSM12に書き込むと共に、リードデータ(読み出し対象データ)がCM13上に存在するかどうか調べる。ここでCM13にリードデータが存在すれば、CHA11はそのリードデータをホスト200に送信する処理を行う。一方、リードデータがCM13に存在しない場合は、SM12を監視することによりリードコマンドがSM12に書き込まれたことを検出したDKA14が、HDD30からリードデータを読み出してこれをCM13に書き込むと共に、その旨をSM12に書き込む。そして、CHA11は、SM12を監視することでリードデータがCM13に書き込まれたことを検出すると、そのリードデータをホスト200に送信する処理を行う。
なお、このようにCHA11からDKA14に対するデータの書き込みや読み出しの指示を、SM12を介在させて間接に行う構成の他、例えばCHA11からDKA14に対して前記指示をSM12を介さずに直接行う構成とすることもできる。また、SM12及びCM13がCHA11及びDKA14に対して独立に設けられた構成であるが、これに限らず、SM12やCM13がCHA11やDKA14の各々に分散されて設けられる形態も可能である。この場合、分散されたメモリを有する各処理部が相互に接続される形態となる。
ディスクアレイ装置100のコントローラ10で制御する記憶ボリュームとしては例えば論理デバイス(LDEV)を扱う。LDEVは、複数のHDD30からなるRAIDグループ上に設定される記憶ボリュームであり、コントローラ10によりLDEV単位でRAID制御、例えばRAID5等の方式での制御が行われる。例えば、コントローラ10により、4台のHDD30{#1〜#4}で1つのRAIDグループが設定される。そして、このRAIDグループ上に、4台のHDD30に跨るLDEVが複数設定される。LDEVにおいて、例えばHDD#0〜HDD#2にストライピングされたデータが格納され、HDD#3にそのパリティが格納される。また、HDD30上に設定される論理ユニット(LU)は、ホスト200側からみた論理的な記憶ボリュームであり、ディスクアレイ装置100側で物理的な記憶ボリュームに変換される。
<管理端末>
管理端末(SVP)160は、ディスクアレイ装置100の保守・管理を行うためのコンピュータであり、ディスクアレイ装置100の保守・管理の処理のためのソフトウェアを備える。管理端末160は、ディスクアレイ装置100に内蔵される形態や外付けされる形態が可能である。また管理端末160は、ディスクアレイ装置100の保守・管理を専用に行うコンピュータの形態や、PCに保守・管理機能を持たせた形態などが可能である。また、管理端末160は、LANや電話回線等に接続可能であり、ディスクアレイ装置100に対して遠隔で接続されるリモートコンソールの形態も可能である。また管理端末160は、LAN等を通じて外部の保守センタなどと接続される。保守員は、管理端末160を操作して各種保守・管理の業務を行う。管理端末160を操作することにより、例えばHDD30の物理ディスク構成や論理デバイスの設定、論理パスの設定、CHA11等において実行されるプログラムのインストール等を行うことができる。物理ディスク構成の設定としては、例えばHDD30の増減設、RAID構成の変更等を行うことができる。更に、ディスクアレイ装置100の動作状態の確認や、故障部位の特定等の作業を行うこともできる。各種設定や制御は、管理端末160で動作するWebサーバが提供するWebページをユーザインタフェースとして行われる。
管理端末160は、PCの形態である場合、ホスト200のハードウェア構成と同様に、CPU、メモリ、ポート、入力装置、出力装置、記憶装置、記録媒体読取装置等を備える。CPUがメモリ上の制御プログラムを実行することで保守・管理のための各種機能を実現する。メモリには、制御プログラムや、保守・管理に係わる各種情報が記憶される。管理端末160のポートは内部LAN162に接続され、CHA11やDKA14等と通信可能である。またポートをLANや電話回線等に接続することも可能である。
<処理分散のための構成>
図4は、他装置400である1つのホストコンピュータ200と、1つのディスクアレイ装置100との接続構成と、CHA11における処理の分散のための構成の概要と、コマンドや入出力データの流れとを示す説明図である。以下、CHA11での処理について説明するにあたり、他装置400は特にディスクアレイ装置100に接続される上位装置となるホストコンピュータ200であるものとして説明する。CHA11とホスト200との間はファイバチャネル(FIBRE)・インタフェースで接続されFIBREプロトコルに従った通信(コマンドやデータの授受)がなされる。FIBREインタフェースに限らず、各種のSCSI系やメインフレーム系のインタフェースで接続した構成で、本実施の形態で示す特徴的な処理を同様に実行可能である。
ホスト200の有する利用プログラム21は、ディスクアレイ装置100に対してポート203を通じてコマンドや入出力データを送信する。例えば、ホスト200は、CHA11に対してリードコマンドを送信し、HDD30上の記憶ボリュームからリードデータをリードさせリードデータを応答として受信する。また、ホスト200は、CHA11に対してライトコマンド及びライトデータを送信し、HDD30上の記憶ボリュームに対してライトデータをライトさせ応答を受信する。ホスト200は、ディスクアレイ装置100内の記憶ボリュームに対するアクセスにおいて、コントローラ10のCHA11に対して、例えば、HDD30側でのデータアクセス単位であるブロック単位でのデータアクセス要求を送信する。
コントローラ10でCHA11は、通信プロトコルに従ったホスト200側からのデータをSW15に転送する制御と、SW15からのデータをホスト200側にデータ転送する制御を行う。CHA11は、他装置400から受信した要求(コマンド)に対応した処理を行う。CM13は、SW15からのデータをリード/ライトにより一時的に保管しておく。SM12は、CHA11及びDKA14の転送情報(データ転送に係わる制御情報)やその他の制御情報を保管しておく。SM12は、CM13側のようにSW15を介さず、複数のCHA11及びDKA14と直接にデータ転送を実施する。DKA14は、DKU側のスイッチ制御アダプタ群16からのデータをCM13側のSW15に転送する制御とCM13側のSW15からのデータをDKU側のSW15に転送する制御を行う。SW15は、コントローラ10において複数存在するCHA11やDKA14からのデータを、複数存在するCM13のどの領域に記憶するかを制御する。
DKU群31は、他装置400から転送されるデータを含む各種データを磁気ディスク上の記憶領域に記憶するHDD30を装填したDKUの集合体である。DKU群31は、主に前記HDD筐体130内に装着・接続される。スイッチ制御アダプタ群16は、DKU群31におけるHDD30からのデータをDKA14側に転送する制御と、DKA14からのデータをHDD30側に転送する制御とを行うもので、複数のスイッチ制御アダプタにより成る。
1つのCHA11内には、ホスト200側から要求を受信する1つのポート部40と、要求に対応した処理を行う複数(2つ)のホストプロセッサ(HP)部50{50A,50B}と、CM13側とのデータ転送制御を行うデータ転送制御部(DTC)60などを有し、複数(2つ)のHP部50の間で、処理の分散が行われる。図中の矢印に示すように、ホスト200側からの要求はまずポート部で受信され、ポート部から代表(マスタ)となるHP部(第1のHP部)に要求が一旦転送される。要求を受信した第1のHP部は、処理の分散に係わる判断処理を行って、処理を他のHP部(第2のHP部)に分散する場合は、ポート部にそのための通信を行い、ポート部が、前記第1のHP部から処理分散先となる第2のHP部に前記要求を転送して処理を行わせる。
<CHAの構成>
図5は、実施の形態1でのCHA11の詳細構成を示すブロック図である。CHA11は、1つのポート部40と、2つのHP部50と、データ転送制御部(DTC)60と、制御情報やデータの転送経路となるPCIやPCI−X等のバスなどを有する構成である。本実施の形態では、CHA11内に2つのHP部50である第1のHP部50Aと第2のHP部50Bとを有する構成を示す。HP部50AとHP部50Bは性能が同等の構成である。その他、CHA11では、図示しない接続コネクタによりディスクアレイ装置100のバックボードに設けられたコネクタに接続され、また図示しない通信コネクタに、ネットワーク300に接続するための通信ケーブルが接続される。
CHA11で、各部がバスを介して接続される。バスに対し、ポート部40のプロトコル部42と、各HP部50のHP51と、DTC60が接続される。バス上で、各HP部50は、ポート部40のプロトコル部42との間で通信を行う。HP部50間では直接の通信は行わない。DTC60は、ポート部40のプロトコル部42との間で通信を行う。DTC60はCM30に対してSW15を介して接続される。CM13は、SW15を介してホスト200側とHDD30側との入出力データ(リードデータやライトデータ)を一時的に保持する。
ポート部40は、ネットワーク300に接続され、通信プロトコルに従ってホスト200との間でインタフェース動作を行う。ポート部40は、トランシーバ(TR)41とプロトコル部42とを有する構成である。
トランシーバ41は、ネットワーク300に対するインタフェースであり、例えばShortwave、Longwaveの光信号を用いてホスト200との通信を行う部分である。
プロトコル部42は、ホスト200とのインタフェース・プロトコルを制御するもので、その制御のための回路が形成されたLSIである。プロトコル部42は、各HP部50のCHAドライバ(52A,52B)からの制御に基づき、トランシーバ41を介してホスト200とのデータ転送動作を行うと共に、DTC60を介してCM13との間でデータの転送を行う。
プロトコル部42は、複数(2つ)のHP部50との通信手段として、HP部50の個数に対応して、HP部50との通信のための制御情報を格納する領域を備える。当該領域には、第1、第2のアウトバウンド・メッセージ・インポインタ(OMIと略称する)43A,43B、第1、第2のインバウンド・メッセージ・アウトポインタ(IMOと略称する)44A,44Bが含まれる。プロトコル部42で、これら各ポインタに対応する領域にポインタ情報が格納される。なお、HP部50からポート部40への方向をアウトバウンド、ポート部40からHP部50への方向をインバウンドと称している。OMI43A及びIMO44Aは、第1のHP部51Aとの通信のための領域であり、OMI43B及びIMO44Bは、第2のHP部51Bとの通信のための領域である。
DTC60は、ホスト200側のポート部40とコントローラ10内のCM13との間でデータを転送する制御を行う回路である。例えば、DTC60は、ホスト200からのライトコマンドに対応したデータライト処理時に、ホスト200より送信されるライトデータをポート部40側からCM13の領域に転送して格納する制御を行う。また、DTC60は、ホスト200からのリードコマンドに対応したデータリード処理時に、HDD30側からのリードデータをCM13の領域から読み出してポート部40側に送信してホスト200側に送信する制御を行う。
なお、DTC60が接続されデータ転送を行うメモリとして、DTC60にCHA11外部で接続されるCM13との間でデータ転送を行う構成であるが、CHA11が接続されデータ転送を行うメモリとして、CHA11内でDTC60に接続されるメモリを設ける構成としてもよい。例えば、CHA内でDTC60にメモリが接続される構成で、DTC60のデータ転送制御に基づき、当該メモリとCM13との間でデータ転送を行う。またCHA11はSW15やSM12や管理端末160などに接続されるが、その接続部分は図中では省略して示す。
第1、第2のHP部50A,50Bは、それぞれ、ポート部40を制御する処理部であり、HP51A,51Bと、第1、第2のCHAドライバ(図中ではCHA-D)52A,52Bと、第1、第2のホストプロセッサ・ローカルメモリ(ローカルメモリと略称する)53A,53Bで構成される。HP部50は、ホスト200側と、SM12やCM13やDKA14との間で、データやコマンドを入出力する制御を行う。
第1、第2のHP51A,51Bは、ポート部40を制御するプロセッサである。第1、第2のHP51A,51Bはバスに接続され、またHP部50内で、それぞれ対応するローカルメモリ53A,53BとCHAドライバ52A,52Bに接続される。各HP51A,51Bは例えば1チップマイコンで構成され、前記データやコマンドの授受を制御してホスト200側とDKA14側とに対する通信を中継する。
第1、第2のローカルメモリ53A,53Bは、ポート部40のプロトコル部42との通信を行うための領域を有する、HP部50内に設けられたメモリである。第1、第2のローカルメモリ53A,53Bの領域に、前記プロトコル部42との通信及びデータ転送処理に関する制御を行うための各種情報が、第1、第2のHP51A,51Bやプロトコル部42により書き込みされる。
第1、第2のCHAドライバ52A,52Bは、第1、第2のHP51A,51Bを動作させるためのマイクロプログラムであり、不揮発性メモリ上に格納される。第1、第2のCHAドライバ52A,52Bは、例えば管理端末160からのマイクロプログラムの書き込みにより更新可能される。第1、第2のHP51A,51Bは、第1、第2のCHAドライバ52A,52Bを実行することでHPとしての機能を実現する。各CHAドライバ52A,52Bは、ポート部40のプロトコル部42を制御する処理を行う。
第1、第2のHP部50A,50Bは、プロトコル部42との通信手段として、それぞれ、第1、第2のローカルメモリ53A,53Bの領域に、アウトバウンド・メッセージ・格納領域(OM領域と略称する)54A,54B、アウトバウンド・メッセージ・アウトポインタ(OMOと略称する)55A,55B、インバウンド・メッセージ・格納領域(IM領域と略称する)56A,56B、インバウンド・メッセージ・インポインタ(IMIと略称する)57A,57B、データ情報格納領域(DI領域と略称する)58A,58Bを有する。各ローカルメモリ53A,53Bで、各ポインタに対応する領域(55A,55B,57A,57B)にポインタ情報が格納される。
プロトコル部42において、第1、第2のOMI43A,43Bは、第1、第2のCHAドライバ52A,52Bが発行した複数のアウトバウンド・メッセージ(OMと略称する)における末尾のメッセージが、HP部50の第1、第2のOM領域54A,54B内のどの位置であるかを示すための領域である。前記OMは、第1、第2のHP51A,51Bがプロトコル部42に対して動作指示するための情報である。
また、プロトコル部42において、第1、第2のIMO44A,44Bは、プロトコル部42自身が第1、第2のHP部50A,50Bの第1、第2のIM領域56A,56Bを介して第1、第2のHP51A,51Bに対して通知した複数のインバウンド・メッセージ(IMと略称する)のうち、第1、第2のCHAドライバ52A,52B(HP51A,51B)が処理を完了したIMの位置を示すための領域である。前記IMは、プロトコル部42が第1、第2のHP51A,51Bに対してトランザクション情報/ステータス情報を通知するための情報である。
各HP部50の第1、第2のローカルメモリ53A,53Bにおいて、第1、第2のOM領域54A,54Bは、OMを格納する領域である。当該領域には、OMを複数個格納可能である。
同ローカルメモリ53A,53Bにおいて、第1、第2のOMO55A,55Bは、プロトコル部42が次に処理する第1、第2のOM領域54A,54B内部のOMの格納位置を示す。
同ローカルメモリ53A,53Bにおいて、第1、第2のIM領域56A,56Bは、プロトコル部42によるIMを格納する領域である。当該領域には、IMを複数個格納可能である。
同ローカルメモリ53A,53Bにおいて、第1、第2のIMI57A,57Bは、プロトコル部42が第1、第2のIM領域56A,56B内のどの位置にIMの書き込みを行うかを示す。
同ローカルメモリ53A,53Bにおいて、第1、第2のDI領域58A,58Bは、CM13における、他装置400との間でインタフェース・プロトコルに従って送受信するDATAフレームの格納位置及び転送長を含むデータ情報を格納する領域である。
次に、上記構成のCHA11で、他装置400であるホスト200とのリード/ライトデータ転送処理が行われる場合の処理動作を説明する。なお、前記IMやOMの中にコマンド(要求)を含めることとしているが、別の情報として扱ってもよい。
<ライト時の処理>
図6,7,8は、実施の形態1のディスクアレイ装置100における、他装置400であるホスト200からのライトコマンドに応じてライトデータをHDD30へライトする際のライトデータ転送処理を示すフロー図である。図7は、図6に示す処理の続きを示す。図8は、図7に示す処理の続きを示す。例として、CHA11における2つのHP部50A,50Bにおいて、第1のHP部50Aにおける第1のHP51Aを、ホスト200側からの要求を最初に受けるマスタ(代表)のプロセッサとした場合の処理を示す。
図6において、CHA11のポート部40のトランシーバ41でホスト200からコマンド(ライトコマンド)を受信後、受信コマンドがポート部40のプロトコル部42へ転送される(S101)。以下、受信コマンドに対応した処理を担当するHPを決めるまではコマンドに係わるフェイズ(図中「CMD」)である。次に、プロトコル部42は、前記マスタのプロセッサに関する設定に従って、複数のHP部50のうちマスタとなる第1のHP部50Aへ通知を行う。すなわち、プロトコル部42は、第1のHP部50Aの第1のローカルメモリ53Aにおける第1のIM領域56Aに、受信コマンドと、「コマンドを受信した」旨のメッセージをIMとして格納する(S102)。上記メッセージは、言い換えれば、「第1のHP部50Aで受信コマンドに対応する」旨の指示情報である。そして、プロトコル部42は、IMの格納に伴い、その位置を示すように第1のIMI57Aを更新する(S103)。
次に、第1のHP部50Aでは、前記第1のIMI57Aの更新及びIMの参照に基づき、受信コマンドに対応した処理の担当先となるHPを自身とするか他のHPとするかを決めるために、自身を含む各HP部50での処理の負荷の状態についての判断処理を行う(S104またはS105)。本実施の形態では、各HP51A,51Bの処理負荷状態についての2通りの判断処理を示す。第1の判断処理では、CHA11内の各HP51A,51Bにおける担当処理数を判断要因とする。第2の判断処理では、CHA11内の各HP51A,51Bにおける処理量(概略)を判断要因とする。第1のHP部50Aの第1のCHAドライバ52Aは、前記第1、第2の判断処理のいずれかを行う。
第1の判断処理では、第1のCHAドライバ52Aは、複数のHP部50におけるすべてのIMI57A,57Bを読み、いずれのHPが最も少ない処理数で済むかを判断する(S104)。すなわち、第1のCHAドライバ52Aは、前記IMI57A,57Bを読むことで対応するIM領域56A,56Bに格納されているIMの数を認識し、各HP51A,51Bがすべき処理の数(担当処理数)を認識する。これにより各HP51A,51Bの処理負荷量を概略で把握する。
第2の判断処理では、第1のCHAドライバ52Aは、複数のHP部50におけるすべてのIM領域56A,56Bを読み、いずれのHPが最も少ないデータ転送処理であるかを判断する(S105)。第1のCHAドライバ52は、前記IM領域56A,56Bを読むことで、格納されている受信コマンド及びIMに対応したデータ転送処理における処理量(複数のIMが有る場合はそれに対応する複数の処理の合計量)を概略で認識し、各HPにおける処理負荷量を概略で把握する。例えば、第1のCHAドライバ52Aは、前記データ転送処理で要する処理量を、受信コマンドに含まれるデータサイズやデータ転送回数などの情報から簡単な計算により求める。
次に、前記判断処理に基づき、第1のHP部50Aの第1のCHAドライバ52Aは、複数のHP部50のうち最も処理負荷が小さいと判断されるHP部が、第1のHP部50Aすなわち自身であった場合は(S106−YES−A1)、自身で受信コマンドについての処理を担当することに決め、S107以下の処理を行う。また、第1のHP部50AのCHAドライバ52Aは、複数のHP部50のうち最も処理負荷が小さいと判断されるHP部が、第1のHP部50Aではなく他のHP部すなわち第2のHP部50Bであった場合は(S106−NO−α1)、第2のHP部50Bで受信コマンドについての処理を担当させることに決め、S121以下の処理を行う。実施の形態1では、2つのHP部50を有する構成なので前記処理の担当の移行先となる他のHP部は第2のHP部50Bである。後述するように候補となる他のHP部として複数のHP部50がある場合は、その中で最も処理負荷が小さいものを選択することとなる。
図7のA1、第1のHP部50Aで処理を担当する場合において、第1のCHAドライバ52Aは、第1のIMI57Aが示す第1のIM領域56Aに格納されているIM(受信コマンド及び情報)の内容を確認し、コマンドの内容に応じて、ホスト200からのライトデータの受信に必要なキャッシュ領域をCM13内に確保する(S107)。
次に、第1のCHAドライバ52Aは、ポート部40のプロトコル部42の第1のIMO44Aに、「IMの内容を処理した」旨の通知情報を送信して格納する(S108)。この通知情報により、第1のIMO44Aに、第1のCHAドライバ52Aが処理したIMの位置が示される。この後、データ転送の準備ができた状態であるフェイズ(図中「XFER_RDY」)に移る。
次に、第1のCHAドライバ52Aは、ホスト200へのXFER_RDY(トランスファー・レディ:データ転送の準備ができたことを示す情報)を作成してOMとして第1のOM領域54Aに格納した後に、ポート部40のプロトコル部42の第1のOMI43Aを更新する(S109)。この更新は、プロトコル部42に対し、XFER_RDY送信指示を通知するためのものである。
次に、ポート部40のプロトコル部42は、更新された第1のOMIが43A示す第1のHP部50Aにおける第1のOM領域54A内の位置にあるXFER_RDY送信指示を読み、第1のOMO55Aを更新することでOM(前記送信指示)を読み取ったことを第1のHP50Aに対して通知する(S110)。
次に、プロトコル部42は、前記送信指示に基づき、XFER_RDYをホスト200へ送信する(S111−A2)。この後、データ転送を行うフェイズ(図中「DATA」)に移る。
図8のA2、データ転送を行うフェイズにおいて、ポート部40は、ホスト200からデータフレームを受信する(S112)。受信データフレームはプロトコル部42に転送される。次に、プロトコル部42は、DTC60での制御を介して、第1のHP部50Aにおける第1のDI領域58Aで指定される、データ格納場所情報(アドレス及び転送長などの情報)に従って、CM13内の前記キャッシュ領域として確保済みの領域へ受信データフレームを転送する処理を行う(S113)。
次に、プロトコル部42は、ホスト200からのデータフレームの受信を完了すると、第1のHP部50Aの第1のCHAドライバ52Aにデータ転送終了を通知するために、第1のローカルメモリ53Aにおける第1のIMI57Aを更新する(S114)。
次に、第1のHP部50Aの第1のCHAドライバ52Aは、前記第1のIMI57Aの更新に基づき、CM13へのデータ転送後の状態をチェックしてから、プロトコル部42の第1のIMO44Aを更新することで「IMを処理した」旨を報告する(S115)。この報告により、「受信コマンドに対応したデータ転送処理(受信データフレームのCM13への転送)を完了した」ことがプロトコル部42で認識される。この後、ホスト200に対するレスポンスを行うフェイズ(図中「RSP」)へ移る。
次に、第1のCHAドライバ52Aは、ホスト200へレスポンスのフレーム(RSP)を送信するための情報(RSP送信指示)をOMとして作成して第1のOM領域54Aに格納し、この通知のためにプロトコル部42の第1のOMI43Aを更新する(S116)。
次に、プロトコル部42は、前記第1のOMI43Aの更新に基づき、第1のHP部50Aの第1のOM領域54A内のRSP送信指示を読み、第1のOMO55Aを更新する。そして、前記送信指示に基づき、RSPをホスト200へ送信する(S117)。
次に、プロトコル部42は、第1のHP51AへRSP送信終了を通知するために第1のHP部50Aにおける第1のIM領域56Aへ「RSP送信終了」の旨をIMとして書き込み、第1のIMI57Aを更新する(S118)。
次に、第1のHP部50Aの第1のHP51Aは、前記第1のIMI57Aの更新に基づき、第1のIM領域56Aに格納されているIMでデータ転送終了状態をチェックして、前記「RSP送信終了」を確認すると、プロトコル部42の第1のIMO44Aを更新することで「コマンドに対応する処理を終了した」旨をプロトコル部42に対して送信する(S119)。
一方、図7のα1、第2のHP部50Bで処理を担当する場合において、まず、第1のHP部50Aの第1のHP51Aは、第1のローカルメモリ53Aにおける第1のIM領域56Aに格納されているコマンドを第1のOM領域54に転送し、これとあわせて「このコマンドを第2のHP部50Bへ転送する」旨の指示情報をOMとして格納して、これを通知するためにプロトコル部42の第1のOMI43Aを更新する(S121)。
次に、プロトコル部42は、前記第1のOMI43Aの更新に基づき、第1のHP部50Aの第1のOM領域54Aの内容(前記コマンド及び指示情報)を読み、コマンドを第2のHP部50Bの第2のローカルメモリ53Bにおける第2のIM領域56Bへ転送する(S122)。
次に、プロトコル部42は、前記コマンドの転送に伴い、第1のHP部50Aの第1のOMO55Aを更新する(S123)。次に、プロトコル部42は、前記コマンドの転送に伴い、第2のHP部50Bの第2のIM領域56Bに格納されたコマンドの位置を示すように第2のIMI57Bを更新する(S124)。
次に、第2のHP部50Bの第2のCHAドライバ52Bは、第2のIMI57Bが示す第2のIM領域56Bに格納されているコマンドの内容を確認し、ホスト200からのライトデータの受信に必要なキャッシュ領域をCM13内に確保する(S125)。
次に、第2のCHAドライバ52Bは、プロトコル部42の第2のIMO44Bに、「IMの内容を処理した」旨の通知情報を送信して格納する(S126)。この通知情報により、第2のIMO44Bに、第2のCHAドライバ52Bが処理したIMの位置が示される。この後、データ転送の準備ができた状態であるフェイズ(図中「XFER_RDY」)に移る。
以下、第2のHP部50Bが、ポート部40との間で、前記第1のHP部50Aによる処理(S109〜S119)と同様に処理(S127〜S137)を行う。第2のCHAドライバ52Bは、ホスト200へのXFER_RDYを作成して第2のOM領域54Bに格納した後に、プロトコル部42の第2のOMI43Bを更新する(S127)。
次に、ポート部40のプロトコル部42は、更新された第2のOMI43Bが示す第2のHP部50Bにおける第2のOM領域54B内の位置にあるXFER_RDY送信指示を読み、第2のOMO55Bを更新することでメッセージ(前記送信指示)を読み取ったことを第2のHP51Bに対して通知する(S128)。
次に、プロトコル部42は、前記送信指示に基づき、XFER_RDYをホスト200へ送信する(S129−α2)。この後、データ転送を行うフェイズ(図中「DATA」)に移る。
図8のα2、データ転送を行うフェイズにおいて、ポート部40は、ホスト200からデータフレームを受信する(S130)。受信データフレームはプロトコル部42に転送される。次に、プロトコル部42は、DTC60での制御を介して、第2のHP部50Bにおける第2のDI領域58Bで指定される、データ格納場所情報に従って、CM13内の領域へ受信データフレームを転送する処理を行う(S131)。
次に、プロトコル部42は、ホスト200からのデータフレームの受信を完了すると、第2のCHAドライバ52Bにデータ転送終了を通知するために、第2のIMI57Bを更新する(S132)。
次に、第2のCHAドライバ52Bは、前記第2のIMI57Bの更新に基づき、CM13へのデータ転送後の状態をチェックしてから、プロトコル部42の第2のIMO44Bを更新することで「IMを処理した」旨を報告する(S133)。この後、ホスト200に対するレスポンスを行うフェイズ(図中「RSP」)へ移る。
次に、第2のCHAドライバ52Bは、ホスト200へレスポンスのフレーム(RSP)を送信するための情報(RSP送信指示)をOMとして作成して第2のOM領域54Bに格納し、この通知のためにプロトコル部42の第2のOMI43Bを更新する(S134)。
次に、プロトコル部42は、前記第2のOMI43Bの更新に基づき、第2のHP部50Bの第2のOM領域54B内のRSP送信指示を読み、第2のOMO55Bを更新する。そして、前記送信指示に基づき、RSPをホスト200へ送信する(S135)。
次に、プロトコル部42は、第2のHP51BへRSP送信終了を通知するために第2のIM領域56Bへ「RSP送信終了」の旨をIMとして書き込み、第2のIMI57Bを更新する(S136)。
次に、第2のHP51Bは、前記第2のIMI57Bの更新に基づき、第2のIM領域56Bに格納されているIMでデータ転送終了状態をチェックして、前記「RSP送信終了」を確認すると、プロトコル部42の第2のIMO44Bを更新することで「コマンドに対応する処理を終了した」旨をプロトコル部42に対して送信する(S137)。
<リード時の処理>
図9,10,11は、実施の形態1のディスクアレイ装置における、他装置400であるホスト200からのリードコマンドに応じてHDD30(ディスク)からのリードデータをホスト200へ転送する際のリードデータ転送処理を示すフロー図である。図10は、図9に示す処理の続きを示す。図11は、図10に示す処理の続きを示す。本リード時の処理の場合、前記ライト時の処理で示すデータ転送の準備ができた状態のフェイズ(前記「XFER_RDY」)は存在しない。例として、ライト時と同様に、CHA11における2つのHP部50において、第1のHP部50Aにおける第1のHP51Aを、要求を最初に受けるマスタ(代表)のプロセッサとした場合の処理を示す。
図9において、CHA11のポート部40のトランシーバ41でホスト200からコマンド(リードコマンド)を受信後、受信コマンドがポート部40のプロトコル部42へ転送される(S201)。以下、受信コマンドに対応した処理を担当するHPを決めるまではコマンドに係わるフェイズ(図中「CMD」)である。次に、プロトコル部42は、マスタのプロセッサに関する設定に従って、複数のHP部50のうちマスタとなる第1のHP部50Aへ通知を行う。すなわち、プロトコル部42は、第1のHP部50Aの第1のローカルメモリ53Aにおける第1のIM領域56Aに、受信コマンドと、「コマンドを受信した」旨のメッセージをIMとして格納する(S202)。上記メッセージは、言い換えれば、「第1のHP部50Aで受信コマンドに対応する」旨の指示情報である。そして、プロトコル部42は、IMの格納に伴い、その位置を示すように第1のIMI57Aを更新する(S203)。
次に、第1のHP部50Aでは、前記ライト時の判断処理と同様に、前記第1のIMI57Aの更新及びIMの参照に基づき、処理の担当先となるHPを自身とするか他のHPとするかを決めるために、各HP部50A,50Bでの処理の負荷の状態についての判断処理を行う(S204またはS205)。第1のCHAドライバ52Aは、前記第1、第2の判断処理のいずれかを行う。第1の判断処理では、第1のCHAドライバ52Aは、複数のHP部50におけるすべてのIMI57A,57Bを読み、いずれのHPが最も少ない処理数で済むかを判断する(S204)。第2の判断処理では、第1のCHAドライバ52Aは、複数のHP部50におけるすべてのIM領域56を読み、いずれのHPが最も少ないデータ転送処理であるかを判断する(S205)。
次に、前記判断処理に基づき、第1のHP部50の第1のCHAドライバ52Aは、複数のHP部50のうち最も処理負荷が小さいと判断されるHP部が、第1のHP部50Aすなわち自身であった場合は(S206−YES−B1)、自身で受信コマンドについての処理を担当することに決め、S207以下の処理を行う。また、第1のHP部50AのCHAドライバ52Aは、複数のHP部50のうち最も処理負荷が小さいと判断されるHP部が、第1のHP部50Aではなく他のHP部すなわち第2のHP部50Bであった場合は(S206−NO−β1)、第2のHP部50Bで受信コマンドについての処理を担当させることに決め、S221以下の処理を行う。
図10のB1、第1のHP部50Aで処理を担当する場合において、第1のCHAドライバ52Aは、第1のIMI57Aが示す第1のIM領域56Bに格納されているIM(受信コマンド及び情報)の内容を確認し、コマンドの内容に応じて、ディスクからのリードデータの送信に必要なキャッシュ領域をCM13内に確保する(S207)。
次に、第1のCHAドライバ52Aは、ポート部40のプロトコル部42の第1のIMO44Aに、「IMの内容を処理した」旨の通知情報を送信して格納する(S208)。この通知情報により、第1のIMO44Aに、第1のCHAドライバ52Aが処理したIMの位置が示される。この後、データ転送のフェイズ(図中「DATA」)に移る。
次に、第1のCHAドライバ52Aは、ホスト200へリードデータを送信するために必要な情報を第1のDI領域58Aに格納する(S209)。
次に、第1のCHAドライバ52Aは、リードデータの送信指示をOMとして第1のOM領域54Aに格納し、これを通知するためにプロトコル部42の第1のOMI43Aを更新する(S210)。
次に、ポート部40のプロトコル部42は、更新された第1のOMI43Aが示す第1のHP部50Aにおける第1のOM領域54A内の位置にあるOMを読み、第1のOMO55Aを更新することでOM(前記送信指示)を読み取ったことを第1のHP51Aに対して通知する(S211)。
次に、プロトコル部42は、前記読み取ったOMにおけるリードデータの送信指示と、第1のHP部50Aの第1のDI領域58Aに格納されている情報に従って、DTC60とトランシーバ41を介して、リードデータをCM13からホスト200へ転送・送信する(S212)。
次に、プロトコル部42は、前記第1のDI領域58Aの情報で指定されたリードデータのホスト200への送信を完了した後、第1のHP部50Aの第1のCHAドライバ52Aに対してデータ転送終了通知のために第1のIM領域56Aへその旨をIMとして書き込み、これとあわせて第1のIMI57Aを更新する(S213)。この後、ホスト200に対するレスポンスを行うフェイズへ移る(B2、図中「RSP」)。
図11のB2、レスポンスを行うフェイズにおいて、第1のHP部50Aは、前記ライト時の処理と同様に処理を行う。第1のCHAドライバ52Aは、ホスト200へレスポンスのフレーム(RSP)を送信するための情報(RSP送信指示)をOMとして作成して第1のOM領域54Aに格納し、この通知のためにプロトコル部42の第1のOMI43Aを更新する(S214)。
次に、プロトコル部42は、前記第1のOMI43Aの更新に基づき、第1のHP部50Aの第1のOM領域54A内のRSP送信指示を読み、第1のOMO55Aを更新する。そして、前記送信指示に基づき、RSPをホスト200へ送信する(S215)。
次に、プロトコル部42は、第1のHP51AへRSP送信終了を通知するために第1のHP部50Aにおける第1のIM領域56Aへ「RSP送信終了」の旨をIMとして書き込み、第1のIMI57Aを更新する(S216)。
次に、第1のHP部50Aの第1のHP51Aは、前記第1のIMI57Aの更新に基づき、第1のIM領域56Aに格納されているIMでデータ転送終了状態をチェックして、前記「RSP送信終了」を確認すると、プロトコル部42の第1のIMO44Aを更新することで「コマンドに対応する処理を終了した」旨をプロトコル部42に対して送信する(S217)。
一方、図10のβ1、第2のHP部50Bで処理を担当する場合において、前記ライト時の処理と同様に、コマンドに係わるフェイズでの処理を行う。まず、第1のHP部50Aの第1のHPは51A、第1のローカルメモリ53Aにおける第1のIM領域56Aに格納されているコマンドを第1のOM領域54Aに転送し、これとあわせて「このコマンドを第2のHP部50Bへ転送する」旨の指示情報をOMとして格納して、これを通知するためにプロトコル部42の第1のOMI43Aを更新する(S221)。
次に、プロトコル部42は、前記第1のOMI43Aの更新に基づき、第1のHP部50Aの第1のOM領域54Aの内容(前記コマンド及び指示情報)を読み、コマンドを第2のHP部50Bの第2のローカルメモリ53Bにおける第2のIM領域56Bへ転送する(S222)。
次に、プロトコル部42は、前記コマンドの転送に伴い、第1のHP部50Aの第1のOMO55Aを更新する(S223)。次に、プロトコル部42は、前記コマンドの転送に伴い、第2のHP部50Bの第2のIM領域56Bに格納されたコマンドの位置を示すように第2のIMI57Bを更新する(S224)。
次に、第2のHP部50Bの第2のCHAドライバ52Bは、第2のIMI57Bが示す第2のIM領域56Bに格納されているコマンドの内容を確認し、ディスクからホスト200へのリードデータの送信に必要なキャッシュ領域をCM13内に確保する(S225)。
次に、第2のCHAドライバ52Bは、プロトコル部42の第2のIMO44Bに、「IMの内容を処理した」旨の通知情報を送信して格納する(S226)。この通知情報により、第2のIMO44Bに、第2のCHAドライバ52Bが処理したIMの位置が示される。この後、データ転送を行うフェイズ(図中「DATA」)に移る。
データ転送を行うフェイズで、第2のHP部50Bは、前記ライト時の処理と同様にデータ転送に係わる処理(S227〜232)を行う。
第2のCHAドライバ52Bは、ホスト200へリードデータを送信するために必要な情報を第2のDI領域58Bに格納する(S227)。
次に、第2のCHAドライバ52Bは、リードデータの送信指示をOMとして第2のOM領域54Bに格納し、これを通知するためにプロトコル部42の第2のOMI43Bを更新する(S228)。
次に、ポート部40のプロトコル部42は、更新された第2のOMI43Bが示す第2のHP部50Bにおける第2のOM領域54B内の位置にあるOMを読み、第2のOMO55Bを更新することでOM(前記送信指示)を読み取ったことを第2のHP51Bに対して通知する(S229)。
次に、プロトコル部42は、前記読み取ったOMにおけるリードデータの送信指示と、第2のHP部50Bの第2のDI領域58Bに格納されている情報に従って、DTC60とトランシーバ41を介して、リードデータをCM13からホスト200へ転送・送信する(S230)。
次に、プロトコル部42は、前記第2のDI領域58Bの情報で指定されたリードデータのホスト200への送信を完了した後、第2のHP部50Bの第2のCHAドライバ52Bに対してデータ転送終了通知のために第2のIM領域56Bへその旨をIMとして書き込み、これとあわせて第2のIMI57Bを更新する(S231)。この後、ホスト200に対するレスポンスを行うフェイズへ移る(図中「RSP」)。
次に、第2のHP部50Bの第2のHP51Bは、前記第2のIMI57Bの更新に基づき、第2のIM領域56Bに格納されているIMでデータ転送終了後の状態をチェックして、前記データ転送終了を確認すると、プロトコル部42の第2のIMO44Bを更新することで「IMの内容を処理した」旨を送信する(S232)
図11のβ2、レスポンスを行うフェイズにおいて、第2のHP部50Bは、前記第1のHP部50Aによる処理と同様に処理(S234〜S237)を行う。第2のCHAドライバ52Bは、ホスト200へレスポンスのフレーム(RSP)を送信するための情報(RSP送信指示)をOMとして作成して第2のOM領域54Bに格納し、この通知のためにプロトコル部42の第2のOMI43Bを更新する(S234)。
次に、プロトコル部42は、前記第2のOMI43Bの更新に基づき、第2のHP部50Bの第1のOM領域54B内のRSP送信指示を読み、第1のOMO55Bを更新する。そして、前記送信指示に基づき、RSPをホスト200へ送信する(S235)。
次に、プロトコル部42は、第2のHP51BへRSP送信終了を通知するために第2のHP部50Bにおける第2のIM領域56Bへ「RSP送信終了」の旨をIMとして書き込み、第2のIMI57Bを更新する(S236)。
次に、第2のHP部50Bの第2のHP51Bは、前記第2のIMI57Bの更新に基づき、第2のIM領域56Bに格納されているIMでデータ転送終了状態をチェックして、前記「RSP送信終了」を確認すると、プロトコル部42の第2のIMO44Bを更新することで「コマンドに対応する処理を終了した」旨をプロトコル部42に対して送信する(S237)。処理フローは以上である。
以上説明したように、本実施の形態では、ポート部40のプロトコル部42を介して複数(2つ)のHP部50間で、ホスト200等の他装置400からの要求(コマンド)に応じた個々の処理の分散を行うことで、他装置400はディスクアレイ装置100側で応答するHPによらず、同一のアクセス対象からの応答として認識することができる。
本実施の形態では、他装置400からのコマンドに応じたある処理をどのHPが行うかを、あらかじめの設定などにより一意に決めることはせず、コマンド受信の都度における、マスタ(代表)となる第1のHP部50A及びその他のHP部(第2のHP50B)の処理負荷状態の判断に基づき、複数のHPで偏らないように決める。そのため、従来構成(テーブル情報に基づき処理の分散先を決定する方式)のように場合によって処理の担当先のプロセッサが偏って処理効率が低下することもなく、効率的に作業を行うことができる。
また、本実施の形態では、あるプロセッサ(第1のHP51A)から他のプロセッサ(第2のHP51B)に処理の担当を移行させる際は、その旨の情報を一旦ポート部40のプロトコル部42に読み取らせ、その後プロトコル部42から処理の担当先となるプロセッサ(第2のHP51B)へとコマンドを転送して処理を担当させる。従って、従来構成(複数のプロセッサ間でコマンドを直接に転送して処理を分散する方式)のように、プロセッサ(HP51A,51B)に、プロセッサ間で直接相互に通信を行う機能を備える必要がなく、比較的簡単・安価な構成で処理分散を実現することができる。
本実施の形態についての変形例を説明する。まず、前記構成では、前記マスタ(代表)となる第1のHP51Aを、ポート部40のプロトコル部42の設定に従って固定的に決定していたが、前記マスタとなるHPを、CHA11内における複数のHP50間で変動させる形態としてもよい。すなわち、ポート部40で、マスタとなるHPを決める基準となる所定の条件を設定しておき、コマンド受信の際、当該条件に従ってマスタとなるHPを決める。その後の処理は同様である。
また、前記構成では、前記マスタとなる第1のHP51A(CHAドライバ52A)で、前記判断処理として、CHA11内の全HPにおける処理負荷状態を判断して処理の担当先を決定していたが、前記第1のHP51Aで、まず自身の処理負荷状態のみを判断し、自身に処理実行のための所定の余裕が有る場合は自身で処理を担当し、所定の余裕が無い場合はあらためて他のHPへ処理の担当を移行させるための判断及び移行処理を行うような処理形態としてもよい。例えば、前記第1のHP51Aで、担当処理数が所定数以下であるか、あるいは、処理量が所定量以下であるかなどを認識して、前記所定の余裕があるかどうかを判断する。また、各HPで処理担当数や処理量が均一になるように処理を分散する制御を行う以外にも、負荷判断条件の設定によって、意図的に所定の程度までマスタとなる第1のHP部50Aに処理を偏らせる等の制御を行う形態も可能である。
また、前記構成では、前記判断処理で、第1のHP51Aが各HP部50内のIM領域56A,56BやIMI57A,57Bを読んで判断する処理形態としたが、CHA11内で第1のHP51Aを含む複数のHPからアクセス可能な位置に、各HPにおける処理負荷状態や処理担当状態の一覧を保持するテーブルを設け、前記判断処理の際に参照する形態としてもよい。例えば、CHA11内でバスに接続されるメモリ上に上記一覧を保持するテーブルの領域を設ける。またいずれかのHPで処理を行うことが決定した時などに上記テーブルの情報を更新する処理等を行う。
また、前記構成で、複数のHP部50でいずれかのHP部に障害が発生して処理を実行することができない状態となった場合は、その障害状態のHP部以外で処理を担当させるように判断・制御することで効率的な処理が継続可能である。
また、前記構成で、1つのポート部40と複数のHP部50からなる構成単位を、CHA11内に複数設けた形態とすることも可能である。各構成単位で同様に処理の分散が行われる。
また、前記構成での前記コントローラ10の部分を二重化した冗長構成とすることも可能である。二重化構成により、他装置400とコントローラ10とHDD30の間の通信のためのパスも多重化される。各コントローラ10で独立して、同様に前記CHA11での処理の分散が行われる。
(実施の形態2)
次に、実施の形態2のディスクアレイ装置について説明する。図12は、実施の形態2のディスクアレイ装置における1つのCHA11の機能ブロック構成を示す。実施の形態2は、CHA11内で、1つのポート部40に対して3つ以上(n個)のHP部50(HP部#1〜#n)を設けた形態である。実施の形態2では、n個のHP部50(50A,50B,……,50n)のうち1つのHP部(例えば第1のHP部50A)を実施の形態1と同様にマスタ(代表)と設定して他装置400からの要求をポート部40を通じて最初に受けることとし、マスタのHP部(50A)でのn個のHP部50(HP51)における処理負荷状態の判断を行って、n個のHP部50でコマンドに対応した処理の分散を行う。複数のHP部50の性能が同等の構成である。実施の形態2でのディスクアレイ装置全体及びコントローラ10等の構成は実施の形態1と同様である。
各HP部(#1〜#n)50の内部構成は実施の形態1に示す第1のHP部50A等と同様である。HP部50(50A,50B,……,50n)に、それぞれHP51(51A,51B,……,51n)を有する。また、各HP部50で、ローカルメモリ53にプロトコル部42との通信手段を構成する領域、すなわち前記OM領域54、OMO55、IM領域56、IMI57、及びDI領域58を有する。
ポート部40のプロトコル部42には、各HP部50との通信手段を構成する領域、すなわちOMI43{43A,43B,……,43n}、IMO44{44A,44B,……,44n}を有する。これは、複数(n個)のHP部50と対応した分の領域である。その他、CHA11内の構成は実施の形態1と同様である。
リード時/ライト時の各処理も、実施の形態1における処理と同様に、複数のHP部50間で処理の分散を行う。ライト時、ポート部40でホスト200等の他装置400からライトコマンドを受信すると、例えば第1のHP部50Aをマスタと設定しているなら、プロトコル部42から第1のHP部50A内の領域にコマンド及び通知情報が送信・格納される。第1のHP部50Aでは、コマンドに対応した処理の担当先となるHPを決めるための各HPの処理負荷状態に関する判断処理(前記第1または第2の判断処理)を、自身を含む複数のHPを対象として実施の形態1と同様に行う。第1のHP部50Aは、例えば第nのHP50nが最も少ない処理負荷と認識したなら第nのHP部50nを処理の担当先と決定して、プロトコル部42に対して第nのHP部50nに処理を担当させるために前記各領域を利用した情報の通知を行う。プロトコル部42は、第1のHP部50Aからの通知に基づき、第1のHP部50Aから第nのHP部50nへコマンドを転送して、第nのHP部50nにコマンドに対応した処理を行わせる。
実施の形態2では、CHA11内に設けられる、分散候補となるHPの数の増加に応じて、各HPの処理負荷が減じることとなる。変形例としては、例えば、1つのポート部40に対する複数(n個)のHP部50を、いくつかのHP部50ごとにグループに分けて、各グループ内でマスタとなるHPを設けて同様に処理の分散を行う形態なども可能である。例えば、1つのポート部40に対して4つのHP部#1〜#4を有する構成で、HP部#1,#2を第1のグループ、HP部#3,#4を第2のグループとし、HP部#1とHP部#3のHPをそれぞれマスタとして設定する。コマンド受信の際、ポート部40から2つのマスタのHPのいずれかに対して最初にコマンドを送信する。そして、各グループ内で2つのHPのいずれかで処理を担当する。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明は、1つのポート部と複数のプロセッサを有し、他装置からのコマンド(要求)に応じた処理を複数のプロセッサで分散する構成の装置を含んで構成されるコンピュータシステムに利用可能である。
本発明の実施の形態1のディスクアレイ装置のハードウェア外観構成を示す図である。 本発明の実施の形態1のディスクアレイ装置を含むコンピュータシステム全体の構成を示す図である。 本発明の実施の形態1のディスクアレイ装置に通信接続されるホストコンピュータの機能ブロック構成を示す図である。 本発明の実施の形態1のディスクアレイ装置を含むコンピュータシステムで、他装置である1つのホストコンピュータと、1つのディスクアレイ装置との接続構成と、CHAにおける処理の分散のための構成の概要と、コマンドや入出力データの流れとを示す説明図である。 本発明の実施の形態1のディスクアレイ装置で、CHAの詳細構成を示すブロック図である。 本発明の実施の形態1のディスクアレイ装置における、他装置であるホストコンピュータからのライトコマンドに応じてライトデータをHDDへライトする際のライトデータ転送処理を示すフロー図である。 本発明の実施の形態1のディスクアレイ装置における、ライトデータ転送処理の続きを示すフロー図である。 本発明の実施の形態1のディスクアレイ装置における、ライトデータ転送処理の続きを示すフロー図である。 本発明の実施の形態1のディスクアレイ装置における、他装置であるホストコンピュータからのリードコマンドに応じてHDDからのリードデータをホストコンピュータへ転送する際のリードデータ転送処理を示すフロー図である。 本発明の実施の形態1のディスクアレイ装置における、リードデータ転送処理の続きを示すフロー図である。 本発明の実施の形態1のディスクアレイ装置における、リードデータ転送処理の続きを示すフロー図である。 本発明の実施の形態2のディスクアレイ装置における1つのCHAの機能ブロック構成を示す図である。
符号の説明
10…コントローラ、11…チャネルアダプタ、12…共有メモリ、13…キャッシュメモリ、14…ディスクアダプタ、15…スイッチ制御アダプタ、16…スイッチ制御アダプタ群、20…アプリケーションプログラム、21…利用プログラム、22…コマンド発行プログラム、30…HDD、31…ディスクユニット群、40…ポート部、41…トランシーバ、42…プロトコル部、43,43A,43B,43n…アウトバウンド・メッセージ・インポインタ、44,44A,44B,44n…インバウンド・メッセージ・アウトポインタ、50,50A,50B,50n…ホストプロセッサ部、51,51A,51B,51n…ホストプロセッサ、52,52A,52B,52n…チャネルアダプタドライバ、53,53A,53B…ホストプロセッサ・ローカルメモリ、54,54A,54B…アウトバウンド・メッセージ格納領域、55,55A,55B…アウトバウンド・メッセージ・アウトポインタ、56,56A,56B…インバウンド・メッセージ格納領域、57,57A,57B…インバウンド・メッセージ・インポインタ、58,58A,58B…データ情報格納領域、60…データ転送制御部、100…ディスクアレイ装置、120…制御筐体、130…HDD筐体、160…管理端末、162…内部LAN、200…ホストコンピュータ、201…CPU、202…メモリ、203…ポート、204…入力装置、205…出力装置、206…記憶装置、207…記録媒体読取装置、210…管理サーバ、300…ネットワーク、400…他装置。

Claims (17)

  1. 記憶装置と、前記記憶装置にデータを記憶する制御を行うコントローラとを有し、通信手段を通じて接続される他装置から受信する要求に応じて前記データの転送に関する処理を行うディスクアレイ装置であって、
    前記コントローラは、前記他装置とインタフェース・プロトコルに従って通信してデータ転送処理を行うチャネル制御装置を有し、
    前記チャネル制御装置は、
    前記インタフェース・プロトコルに従った通信処理を行うポート部と、チャネルアダプタドライバの制御に従って動作するプロセッサを有する複数のホストプロセッサ部とを有し、前記複数のプロセッサが並行して動作して前記ポート部の動作を制御する構成で、前記複数のプロセッサで前記要求に対応した処理の分散を行うものであり、
    前記ポート部で前記他装置からの要求を受信すると、前記複数のプロセッサのうち第1のプロセッサを有する第1のホストプロセッサ部は、前記他装置から受信した要求について、自身を含む複数のプロセッサにおける処理負荷状態の判断に基づき、前記要求に対応した処理を担当させるプロセッサを決定し、自身で処理を担当する場合はそのまま処理を行い、他のプロセッサに処理を担当させる場合は、前記ポート部と通信を行って前記ポート部を介して前記要求を前記第1のホストプロセッサ部から前記他のプロセッサを有するホストプロセッサ部に転送して前記他のプロセッサで前記要求に対応した処理を実行させることを特徴とするディスクアレイ装置。
  2. 記憶装置と、前記記憶装置にデータを記憶する制御を行うコントローラとを有し、通信手段を通じて接続される他装置から受信する要求に応じて前記データの転送に関する処理を行うディスクアレイ装置であって、
    前記コントローラは、前記他装置とインタフェース・プロトコルに従って通信してデータ転送処理を行うチャネル制御装置を有し、
    前記チャネル制御装置は、
    前記通信手段に対応したデータ送受信処理を行うトランシーバと、前記インタフェース・プロトコルに従った通信処理を行うプロトコル部とを有するポート部と、前記コントローラ内のメモリとの間でのデータ転送の制御を行うデータ転送制御部と、チャネルアダプタドライバの制御に従って動作するプロセッサを有する複数のホストプロセッサ部とを有し、前記複数のプロセッサが並行して動作して前記ポート部の動作を制御する構成で、前記複数のプロセッサで前記要求に対応した処理の分散を行うものであり、
    前記複数のプロセッサのうち1つを、最初に要求を受けるマスタとして設定し、
    前記ポート部で前記他装置からの要求を受信すると、前記マスタとなる第1のプロセッサを有する第1のホストプロセッサ部は、前記他装置から受信した要求について、自身を含む複数のプロセッサにおける処理負荷状態の判断に基づき、前記要求に対応した処理を担当させるプロセッサを決定し、自身で処理を担当する場合はそのまま処理を行い、他のプロセッサに処理を担当させる場合は、前記プロトコル部と通信を行って前記プロトコル部を介して前記要求を前記第1のホストプロセッサ部から前記他のプロセッサを有するホストプロセッサ部に転送して前記他のプロセッサで前記要求に対応した処理を実行させることを特徴とするディスクアレイ装置。
  3. 請求項2記載のディスクアレイ装置において、
    前記プロトコル部は、前記各ホストプロセッサ部との通信のためのポインタ情報を格納するための情報領域を有し、
    前記ホストプロセッサ部はローカルメモリを有し、前記ローカルメモリに前記プロトコル部との通信のためのメッセージあるいはコマンドを格納するための情報領域と、前記メッセージあるいはコマンドの位置を示すポインタ情報を格納するための情報領域と、処理対象データの転送に関する情報を格納するための情報領域とを有し、他のホストプロセッサ部と直接に通信する手段を有することなく、
    前記処理の分散のための通信において、前記プロトコル部は、前記ホストプロセッサ部側の各情報領域をリード/ライトし、前記プロセッサは、前記プロトコル部側の情報領域をリード/ライトすることを特徴とするディスクアレイ装置。
  4. 請求項2記載のディスクアレイ装置において、
    前記他装置はユーザの使用するホストコンピュータであり、
    前記要求は、前記記憶装置に対するデータ入出力要求であり、
    前記要求に対応した処理は、前記ホストコンピュータ側とコントローラ内のメモリの間でのデータ転送処理であることを特徴とするディスクアレイ装置。
  5. 請求項2記載のディスクアレイ装置において、
    前記ポート部で前記他装置から要求を受信すると、前記プロトコル部は、前記複数のプロセッサのうちマスタとなる第1のプロセッサを決定して、前記第1のプロセッサを有する第1のホストプロセッサ部内のメモリに前記要求を送信することを特徴とするディスクアレイ装置。
  6. 請求項2記載のディスクアレイ装置において、
    前記第1のホストプロセッサ部は、前記第1のプロセッサにおける処理負荷状態についての判断に基づき、前記要求に対応した処理を自プロセッサで担当するか他のプロセッサで担当させるかを判断し、前記自プロセッサで担当する場合はそのまま第1のプロセッサで処理を行い、他のプロセッサで担当させる場合は、前記処理を担当させる先となる第2のプロセッサを決定し、前記プロトコル部と通信を行って、前記第2のプロセッサを有する第2のホストプロセッサ部に前記要求を転送して前記第2のプロセッサで処理を行わせることを特徴とするディスクアレイ装置。
  7. 請求項2記載のディスクアレイ装置において、
    前記第1のホストプロセッサ部は、前記複数のプロセッサすべてにおける処理負荷状態についての判断に基づき、前記要求に対応した処理を自プロセッサで担当するか他の第2のプロセッサで担当させるかを判断し、前記自プロセッサで担当する場合はそのまま第1のプロセッサで処理を行い、前記第2のプロセッサで担当させる場合は、前記プロトコル部と通信を行って、前記第2のプロセッサを有する第2のホストプロセッサ部に前記要求を転送して前記第2のプロセッサで処理を行わせることを特徴とするディスクアレイ装置。
  8. 請求項2記載のディスクアレイ装置において、
    前記処理負荷状態の判断で、前記第1のプロセッサは、対象のプロセッサの担当処理数を計算し、前記担当処理数が少ないプロセッサを前記処理の担当先として決定することを特徴とするディスクアレイ装置。
  9. 請求項2記載のディスクアレイ装置において、
    前記処理負荷状態の判断で、前記第1のプロセッサは、対象のプロセッサの処理量を計算し、前記処理量が少ないプロセッサを前記処理の担当先として決定することを特徴とするディスクアレイ装置。
  10. 請求項2記載のディスクアレイ装置において、
    前記処理負荷状態の判断で、前記第1のプロセッサは、対象のホストプロセッサ部内のメモリの情報領域を読むことでそのプロセッサの処理負荷状態を判断することを特徴とするディスクアレイ装置。
  11. 請求項2記載のディスクアレイ装置において、
    前記チャネル制御装置内で、前記マスタとなるプロセッサを複数のプロセッサの間で変動させることを特徴とするディスクアレイ装置。
  12. 請求項2記載のディスクアレイ装置において、
    前記チャネル制御装置内で、前記第1のホストプロセッサ部を含む複数のホストプロセッサ部からアクセス可能な位置に、各プロセッサにおける処理負荷状態の一覧を保持するテーブルを設け、前記第1のプロセッサは、前記処理負荷状態の判断の際に前記テーブルを参照して判断を行うことを特徴とするディスクアレイ装置。
  13. 請求項2記載のディスクアレイ装置において、
    前記複数のホストプロセッサ部でいずれかに障害が発生して処理を実行することができない状態となった場合は、その障害状態のホストプロセッサ部以外で処理を担当させるように前記処理の分散に係わる判断を行うことを特徴とするディスクアレイ装置。
  14. 請求項2記載のディスクアレイ装置において、
    前記チャネル制御装置内で、1つのポート部と複数のホストプロセッサ部からなる構成単位を複数設けた構成で、前記各構成単位内で処理の分散を行うことを特徴とするディスクアレイ装置。
  15. 請求項2記載のディスクアレイ装置において、
    前記コントローラの部分を二重化した冗長構成で、各コントローラで独立して前記チャネル制御装置内で処理の分散を行うことを特徴とするディスクアレイ装置。
  16. 記憶装置と、前記記憶装置にデータを記憶する制御を行うコントローラとを有し、通信手段を通じて接続される他装置から受信する要求に応じて前記データの転送に関する処理を行うディスクアレイ装置であって、
    前記コントローラは、前記他装置とインタフェース・プロトコルに従って通信してデータ転送処理を行うチャネル制御装置を有し、
    前記チャネル制御装置は、前記通信手段に対応したデータ送受信処理を行うトランシーバと、前記インタフェース・プロトコルに従った通信処理を行うプロトコル部とからなるポート部と、前記コントローラ内のメモリとの間でのデータ転送の制御を行うデータ転送制御部と、チャネルアダプタドライバの制御に従って動作するプロセッサを有する2つのホストプロセッサ部とを有し、前記2つのプロセッサが並行して動作して前記1つのポート部の動作を制御する構成で、前記2つのプロセッサで前記要求に対応した処理の分散を行うものであり、
    前記ポート部で前記他装置からの要求を受信すると、前記2つのプロセッサのうち第1のプロセッサを有する第1のホストプロセッサ部は、前記他装置から受信した要求について、自身を含むプロセッサにおける処理負荷状態の判断に基づき、前記要求に対応した処理を担当させるプロセッサを決定し、自身で処理を担当する場合はそのまま処理を行い、他の第2のプロセッサに処理を担当させる場合は、前記ポート部と通信を行って前記ポート部を介して前記要求を前記第1のホストプロセッサ部から第2のホストプロセッサ部の第2のプロセッサに転送して前記第2のプロセッサで前記要求に対応した処理を実行させることを特徴とするディスクアレイ装置。
  17. 請求項16記載のディスクアレイ装置において、
    前記チャネル制御装置は、
    前記2つのプロセッサのうち1つを、最初に要求を受けるマスタとして設定し、
    前記ポート部で前記他装置からの要求を受信すると、前記マスタとなる第1のプロセッサを有する第1のホストプロセッサ部は、前記他装置から受信した要求について、自身を含むプロセッサにおける処理負荷状態の判断に基づき、前記要求に対応した処理を担当させるプロセッサを決定し、自身で処理を担当する場合はそのまま処理を行い、他の第2のプロセッサに処理を担当させる場合は、前記プロトコル部と通信を行って前記プロトコル部を介して前記要求を前記第1のホストプロセッサ部から前記第2のプロセッサを有する第2のホストプロセッサ部に転送して前記第2のプロセッサで前記要求に対応した処理を実行させることを特徴とするディスクアレイ装置。
JP2004291284A 2004-10-04 2004-10-04 ディスクアレイ装置及びその負荷分散方法 Expired - Fee Related JP5038589B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004291284A JP5038589B2 (ja) 2004-10-04 2004-10-04 ディスクアレイ装置及びその負荷分散方法
US10/998,552 US7558912B2 (en) 2004-10-04 2004-11-30 Disk array system
US12/457,148 US8615625B2 (en) 2004-10-04 2009-06-02 Disk array system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004291284A JP5038589B2 (ja) 2004-10-04 2004-10-04 ディスクアレイ装置及びその負荷分散方法

Publications (2)

Publication Number Publication Date
JP2006107019A true JP2006107019A (ja) 2006-04-20
JP5038589B2 JP5038589B2 (ja) 2012-10-03

Family

ID=36127001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004291284A Expired - Fee Related JP5038589B2 (ja) 2004-10-04 2004-10-04 ディスクアレイ装置及びその負荷分散方法

Country Status (2)

Country Link
US (2) US7558912B2 (ja)
JP (1) JP5038589B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356205B2 (en) 2009-03-27 2013-01-15 Nec Corporation Disk array device, disk control device and load distribution method in disk array device
WO2016006111A1 (ja) * 2014-07-11 2016-01-14 株式会社日立製作所 ストレージシステム、記憶制御方法及び中継装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4116024B2 (ja) * 2005-07-29 2008-07-09 株式会社ソニー・コンピュータエンタテインメント ペリフェラルの使用管理方法、電子システム及びその構成装置
DE112006003044T5 (de) 2005-10-21 2008-10-23 Deere & Company, Moline Vielseitiges Robotersteuermodul
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
JP4933284B2 (ja) * 2007-01-25 2012-05-16 株式会社日立製作所 ストレージ装置及び負荷分散方法
US8250283B1 (en) * 2009-05-22 2012-08-21 Google Inc. Write-distribute command for RAID mirroring
WO2012023151A2 (en) * 2010-08-19 2012-02-23 Ineda Systems Pvt. Ltd I/o virtualization and switching system
JP5944689B2 (ja) * 2012-02-22 2016-07-05 クラリオン株式会社 車載機、および、車載機の表示制御システム
CN105739930B (zh) * 2016-02-02 2019-01-08 华为技术有限公司 一种存储架构及其初始化方法和数据存储方法及管理装置
CN106775456B (zh) 2016-11-22 2019-11-26 华为技术有限公司 一种数据处理方法、装置及系统

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131937A (ja) * 1989-10-18 1991-06-05 Hitachi Ltd 負荷の分散方法
JPH03262074A (ja) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol 疎結合並列計算機における負荷の動的均等化方法
JPH0635871A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd マルチプロセッサシステム
JPH06332782A (ja) * 1993-03-22 1994-12-02 Hitachi Ltd ファイルサーバシステム及びそのファイルアクセス制御方法
JPH0720994A (ja) * 1993-06-30 1995-01-24 Hitachi Ltd 記憶システム
JPH07249013A (ja) * 1994-03-09 1995-09-26 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサシステムにおけるマスタの切り替え制御方法
JPH08272729A (ja) * 1995-03-31 1996-10-18 Fujitsu Ltd 並列型計算機システム
JPH09233117A (ja) * 1996-02-26 1997-09-05 Ricoh Co Ltd メールシステム
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2001318904A (ja) * 2000-04-13 2001-11-16 Hewlett Packard Co <Hp> 記憶装置コントローラタスクを分散するためのシステムおよび方法
JP2002049602A (ja) * 2000-08-02 2002-02-15 Ricoh Co Ltd 検索システム
JP2003316713A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 記憶装置システム
JP2003316715A (ja) * 2002-04-24 2003-11-07 Hitachi Ltd 複数ポートを有するコンピュータの制御方法、複数ポートを有するコンピュータ、コンピュータシステムの制御方法
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
JP2004021557A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd プログラム、情報処理方法、情報処理装置、及び記憶装置
JP2004030204A (ja) * 2002-06-25 2004-01-29 Jmnet Inc 負荷分散装置及びそれに接続するノードコンピュータ
JP2004096152A (ja) * 2002-08-29 2004-03-25 Fuji Xerox Co Ltd 処理装置
JP2004139260A (ja) * 2002-10-16 2004-05-13 Hitachi Ltd マルチプロセッサによるコマンド処理方式
JP2004145497A (ja) * 2002-10-23 2004-05-20 Hitachi Ltd ディスクアレイ制御装置
JP2004171123A (ja) * 2002-11-18 2004-06-17 Nec Corp 情報共有方法及び装置
JP2004272386A (ja) * 2003-03-05 2004-09-30 Hitachi Ltd マルチプロセッサシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
US5906658A (en) * 1996-03-19 1999-05-25 Emc Corporation Message queuing on a data storage system utilizing message queuing in intended recipient's queue
JP3262074B2 (ja) 1998-06-30 2002-03-04 キヤノン株式会社 露光方法及び露光装置
US6542961B1 (en) * 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
JP2001256003A (ja) * 2000-03-10 2001-09-21 Hitachi Ltd ディスクアレイ制御装置、そのディスクアレイ制御ユニットおよびその増設方法
JP4252301B2 (ja) * 2002-12-26 2009-04-08 株式会社日立製作所 記憶システム及びそのデータバックアップ方法
JP2004227098A (ja) * 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP4494031B2 (ja) * 2004-02-06 2010-06-30 株式会社日立製作所 ストレージ制御装置、及びストレージ制御装置の制御方法
JP4489455B2 (ja) * 2004-02-16 2010-06-23 株式会社日立製作所 ディスク制御装置及びディスク制御装置の制御方法
JP2005242555A (ja) * 2004-02-25 2005-09-08 Hitachi Ltd 記憶制御システム及び記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法
JP4147198B2 (ja) * 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131937A (ja) * 1989-10-18 1991-06-05 Hitachi Ltd 負荷の分散方法
JPH03262074A (ja) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol 疎結合並列計算機における負荷の動的均等化方法
JPH0635871A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd マルチプロセッサシステム
JPH06332782A (ja) * 1993-03-22 1994-12-02 Hitachi Ltd ファイルサーバシステム及びそのファイルアクセス制御方法
JPH0720994A (ja) * 1993-06-30 1995-01-24 Hitachi Ltd 記憶システム
JPH07249013A (ja) * 1994-03-09 1995-09-26 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサシステムにおけるマスタの切り替え制御方法
JPH08272729A (ja) * 1995-03-31 1996-10-18 Fujitsu Ltd 並列型計算機システム
JPH09233117A (ja) * 1996-02-26 1997-09-05 Ricoh Co Ltd メールシステム
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2001318904A (ja) * 2000-04-13 2001-11-16 Hewlett Packard Co <Hp> 記憶装置コントローラタスクを分散するためのシステムおよび方法
JP2002049602A (ja) * 2000-08-02 2002-02-15 Ricoh Co Ltd 検索システム
JP2003316715A (ja) * 2002-04-24 2003-11-07 Hitachi Ltd 複数ポートを有するコンピュータの制御方法、複数ポートを有するコンピュータ、コンピュータシステムの制御方法
JP2003316713A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 記憶装置システム
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
JP2004021557A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd プログラム、情報処理方法、情報処理装置、及び記憶装置
JP2004030204A (ja) * 2002-06-25 2004-01-29 Jmnet Inc 負荷分散装置及びそれに接続するノードコンピュータ
JP2004096152A (ja) * 2002-08-29 2004-03-25 Fuji Xerox Co Ltd 処理装置
JP2004139260A (ja) * 2002-10-16 2004-05-13 Hitachi Ltd マルチプロセッサによるコマンド処理方式
JP2004145497A (ja) * 2002-10-23 2004-05-20 Hitachi Ltd ディスクアレイ制御装置
JP2004171123A (ja) * 2002-11-18 2004-06-17 Nec Corp 情報共有方法及び装置
JP2004272386A (ja) * 2003-03-05 2004-09-30 Hitachi Ltd マルチプロセッサシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356205B2 (en) 2009-03-27 2013-01-15 Nec Corporation Disk array device, disk control device and load distribution method in disk array device
WO2016006111A1 (ja) * 2014-07-11 2016-01-14 株式会社日立製作所 ストレージシステム、記憶制御方法及び中継装置
JPWO2016006111A1 (ja) * 2014-07-11 2017-04-27 株式会社日立製作所 ストレージシステム、記憶制御方法及び中継装置
US10229062B2 (en) 2014-07-11 2019-03-12 Hitachi, Ltd. Storage system, storage control method, and relay device

Also Published As

Publication number Publication date
US7558912B2 (en) 2009-07-07
US8615625B2 (en) 2013-12-24
US20090240879A1 (en) 2009-09-24
JP5038589B2 (ja) 2012-10-03
US20060075176A1 (en) 2006-04-06

Similar Documents

Publication Publication Date Title
US7360047B2 (en) Storage system, redundancy control method, and program
US8615625B2 (en) Disk array system
US7093043B2 (en) Data array having redundancy messaging between array controllers over the host bus
US7028177B2 (en) Array controller ROM cloning in redundant controllers
US8412869B2 (en) Redundant storage virtualization computer system
US7523148B2 (en) Storage system
US7814293B2 (en) Redundant controller host-side IO rerouting
US7487328B2 (en) Storage apparatus having virtual-to-actual device addressing scheme
JP2007079958A (ja) 記憶制御装置、データ処理方法、及びコンピュータプログラム
JPH0720994A (ja) 記憶システム
US20060200634A1 (en) Data storage system and data storage control apparatus
JP2005157636A (ja) 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置
JP2007188341A (ja) 記憶デバイス制御装置
US7774514B2 (en) Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
US8255676B2 (en) Non-disruptive methods for updating a controller of a storage system
JP2006221451A (ja) ディスクアレイ装置
US8799549B2 (en) Method for transmitting data between two computer systems
US20110078374A1 (en) Disk array apparatus
US7426658B2 (en) Data storage system and log data equalization control method for storage control apparatus
US20020194405A1 (en) Disk array system with large storage capacity

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120706

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

Free format text: PAYMENT UNTIL: 20150713

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