JP5453872B2 - ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法 - Google Patents

ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法 Download PDF

Info

Publication number
JP5453872B2
JP5453872B2 JP2009079588A JP2009079588A JP5453872B2 JP 5453872 B2 JP5453872 B2 JP 5453872B2 JP 2009079588 A JP2009079588 A JP 2009079588A JP 2009079588 A JP2009079588 A JP 2009079588A JP 5453872 B2 JP5453872 B2 JP 5453872B2
Authority
JP
Japan
Prior art keywords
processor
disk
switch
interface
host
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
JP2009079588A
Other languages
English (en)
Other versions
JP2010231598A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009079588A priority Critical patent/JP5453872B2/ja
Priority to US12/732,890 priority patent/US8356205B2/en
Publication of JP2010231598A publication Critical patent/JP2010231598A/ja
Application granted granted Critical
Publication of JP5453872B2 publication Critical patent/JP5453872B2/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/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error 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 memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0658Controller construction arrangements
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、増設の自由度を高めることのできるディスクアレイ装置及びそのディスク制御装置、増設の自由度を高めることのできるディスクアレイ装置における負荷分散方法に関する。
図16に、関連技術におけるディスクアレイ装置の構成例を示す。ディスクアレイ装置のディスク制御装置は、ディスクアレイ装置に対してアクセスするホストコンピュータと接続するホストインタフェース(HostI/F)501、502、ディスクエンクロージャと接続する複数のディスクインタフェース(DiskI/F)503、504、ホストコンピュータとディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサ201〜204、ホストインタフェース及びディスクインタフェースと複数のプロセッサ間を接続するスイッチ400、401を備えている。なお、図中、xxI/Fで示すインタフェースは、ホストインタフェースまたはディスクインタフェースの何れかとして機能する。
ホストインタフェース501、502とディスクインタフェース503、504は、ホストコンピュータからのアクセス要求を受けると、データの読み書き処理を行う複数のプロセッサを選択し、選択したプロセッサと通信するプロセッサ600を有し、このプロセッサ600と同一のユニットで構成されている。また、プロセッサ201〜304は、キャッシュ(cache)301〜304を有している。
図16に示すこれまでのディスクアレイ装置では、ホストインタフェース501、502、ディスクインタフェース503、504に対するプロセッサ201〜204の割り当てが固定的であり、内部のデータの流れが固定化されている。
上記のような構成のディスクアレイ装置の関連技術が、例えば、特許文献1及び特許文献2に記載されている。
特開2006−107019号公報
特開2006−252019号公報
上述した関連技術によるディスクアレイ装置の構成においては、次のような課題がある。
第1の課題は、ホストインタフェース、ディスクインタフェースに対するプロセッサの割り当てが固定されているため、ユニットの増設の自由度が低く、ディスクアレイ装置の価格や必要とする性能に応じた最適な構成が取りにくいということである。
第2の課題は、ホストインタフェース、ディスクインタフェースに対するプロセッサの割り当てが固定されているため、ディスクアレイ装置の使用状況によってはプロセッサ負荷を分散させることができず、負荷の高いプロセッサが装置全体の性能のボトルネックとなりやすいということである。
第3の課題は、ホストインタフェース、ディスクインタフェース上のプロセッサが、データの読み書き処理を行うプロセッサを選択し、選択したプロセッサと通信する構成であるため、このことがデータの読み書き処理を行うプロセッサの負荷を増大させる原因になっていることである。
第4の課題は、ホストインタフェース、ディスクインタフェースが、データの読み書き処理を行う複数のプロセッサを選択し、選択したプロセッサと通信するプロセッサを備えるため、ホストインタフェース、ディスクインタフェースを構成するユニットが大型化し、実装するインタフェースの数が制限されてしまうことである。
(発明の目的)
本発明の目的は、ホストインタフェース、ディスクインタフェースに対するプロセッサの割り当てが固定されているという課題を解決し、装置の構成の自由度を高めるとともに、価格や必要な性能に応じて最適な構成をとることができるディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法を提供することにある。
本発明の他の目的は、プロセッサの負荷を分散させることにより、負荷の高いプロセッサが装置全体の性能のボトルネックになるという課題を解決するディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法を提供することにある。
本発明のさらに他の目的は、ホストインタフェース、ディスクインタフェースを構成するユニットが大型化し、実装するインタフェースの数が制限されるという課題を解決するディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法を提供することにある。
本発明のディスクアレイ装置は、ディスクエンクロージャとディスク制御部を含むディスクアレイ装置において、ディスク制御装置が、ディスクアレイ装置に対してアクセスするホストコンピュータと接続する複数のホストインタフェースと、ディスクエンクロージャと接続するディスクインタフェースと、ホストコンピュータとディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサと、ホストインタフェース及びディスクインタフェースと、複数のプロセッサ間を接続する複数のスイッチとを備え、スイッチが、ホストインタフェースを介して受信したホストコンピュータからのアクセス要求を受信すると、ホストコンピュータとディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを複数のプロセッサから選択するプロセッサ選択手段を備え、ホストコンピュータからの書き込み要求を、互いに異なるスイッチに接続される複数のホストインタフェースで受け付け、各スイッチのプロセッサ選択手段が、それぞれ書き込み要求を処理するプロセッサを選択し、選択したプロセッサに書き込み要求を送り、各プロセッサ選択手段は、各書き込み要求を処理するプロセッサが重複しないようにプロセッサを選択し、プロセッサが、書込データをキャッシュするメモリを備え、各プロセッサのキャッシュの情報をプロセッサ間で共有する。
本発明のディスク制御装置は、ディスクアレイ装置に対するホストコンピュータからのアクセスを制御するディスク制御装置において、ディスクアレイ装置に対してアクセスするホストコンピュータと接続する複数のホストインタフェースと、ディスクエンクロージャと接続するディスクインタフェースと、ホストコンピュータとディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサと、ホストインタフェース及びディスクインタフェースと、複数のプロセッサ間を接続する複数のスイッチとを備え、スイッチが、ホストインタフェースを介して受信したホストコンピュータからのアクセス要求を受信すると、ホストコンピュータとディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを複数のプロセッサから選択するプロセッサ選択手段を備え、ホストコンピュータからの書き込み要求を、互いに異なるスイッチに接続される複数のホストインタフェースで受け付け、各スイッチのプロセッサ選択手段が、それぞれ書き込み要求を処理するプロセッサを選択し、選択したプロセッサに書き込み要求を送り、各プロセッサ選択手段は、各書き込み要求を処理するプロセッサが重複しないようにプロセッサを選択し、プロセッサが、書込データをキャッシュするメモリを備え、各プロセッサのキャッシュの情報をプロセッサ間で共有する。
本発明のディスクアレイ装置の負荷分散方法は、ディスクエンクロージャと、ホストコンピュータからのアクセスを制御するディスク制御部を含むディスクアレイ装置の負荷分散方法であって、ディスク制御装置に対してアクセスするホストコンピュータと接続する複数のホストインタフェース及びディスクエンクロージャと接続するディスクインタフェースと、ホストコンピュータとディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサとの間を接続する複数のスイッチホストインタフェースを介して受信したホストコンピュータからのアクセス要求を受信すると、ホストコンピュータとディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを複数のプロセッサから選択し、ホストコンピュータからの書き込み要求を、互いに異なるスイッチに接続される複数のホストインタフェースで受け付け、各スイッチで、それぞれ書き込み要求を処理するプロセッサを選択し、選択したプロセッサに書き込み要求を送り、各スイッチで、各書き込み要求を処理するプロセッサが重複しないようにプロセッサを選択し、プロセッサで、書込データを自プロセッサ内のメモリにキャッシュし、各プロセッサのキャッシュの情報をプロセッサ間で共有する。
本発明によれば、ホストインタフェースとディスクインタフェースに対するプロセッサの割り当てをスイッチを介して自由に設定できるようになり、ディスクアレイ装置の価格や必要性能に応じて自由に増設や削減が可能になる。
本発明の第1の実施の形態によるディスクアレイ装置の構成例を示すブロック図である。 第1の実施の形態におけるディスク制御装置のスイッチの構成例を示すブロック図である。 第1の実施の形態においてディスク制御装置のスイッチが有するプロセッサ割り当てテーブルの構成例を示す図である。 第1の実施の形態においてディスク制御装置のスイッチが有する負荷状況テーブルの構成例を示す図である。 第1の実施の形態においてホストコンピュータからデータ書き込み要求があった場合の全体の動作を示すフローチャートである。 第1の実施の形態においてホストコンピュータからデータ読み出し要求があった場合の全体の動作を示すフローチャートである。 第1の実施の形態においてディスク制御装置のプロセッサが故障した場合の処理内容を示すフローチャートである。 第1の実施の形態において、ディスク制御装置のスイッチが故障した場合の処理内容を示すフローチャートである。 第1の実施の形態において、ディスク制御装置のホストインタフェースが故障した場合の処理内容を示すフローチャートである。 本発明の第2の実施の形態によるディスクアレイ装置の構成例を示すブロック図である。 第2の実施の形態におけるディスク制御装置のスイッチの構成例を示すブロック図である。 第2の実施の形態におけるディスク制御装置のスイッチが備えるキャッシュ管理テーブルの構成例を示す図である。 本発明の第3の実施の形態によるディスクアレイ装置の構成例を示すブロック図である。 第3の実施の形態におけるディスク制御装置のスイッチの構成例を示すブロック図である。 本発明によるスイッチのハードウェア構成例を示すブロック図である。 関連技術におけるディスクアレイ装置の構成例を示すブロック図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
(第1の実施の形態)
図1に、本発明の第1の実施の形態によるディスクアレイ装置の構成例を示す。図において、ディスクアレイ装置1は、ディスク制御部2およびディスクエンクロージャ(Disk Enclosure)4を備えて構成されており、接続されたホストコンピュータ(Host Computer)3からデータの読み書きが行われる。
ディスク制御部2は、プロセッサ(PU)10〜17、スイッチ(Switch)40、41、ホストインタフェース(Host I/F)60、65、ディスクインタフェース(Disk I/F)64、69を備えている。全てのプロセッサ、ホストインタフェース、ディスクインタフェースは、PCI Expressバスを介して2つのスイッチ40、41と接続されている。
プロセッサ10〜17は、データの転送やRAIDを構成するためのパリティ生成機能や、データを一時的にキャッシュするための高速なメモリー(DRAM(Dynamic Random Access Memory)等からなるキャッシュ20〜27を備える。スイッチ40、41と、NTP(Non Transparent Port)30、31を通してPCI Expressで接続されている。
全てのプロセッサ10〜17およびスイッチ40、41は、PCI ExpressのRoot Complex機能を有し、例えば、プロセッサ10とスイッチ40との間でデータの転送は、NTP30を介して行われる。他のプロセッサとスイッチ間のデータ転送についても同様である。
スイッチ40とスイッチ41の間もPCI Expressバスで接続されており、NTP50およびNTP51を介してデータの転送が行われる。
プロセッサ10は、キャッシュメモリ20を有し、このキャッシュメモリ20に、ホストコンピュータ3からホストインタフェース60、65、スイッチ40、41を介して書き込まれたデータを、スイッチ40、41、ディスクインタフェース64、69を介してディスクエンクロージャ4へ書き出すまで一時的に保存する。プロセッサ11〜17においても同様である。
図1においては、8つのプロセッサ10〜17を示しているが、このプロセッサの数はこれに限定されず、8つより少なくても多くてもよく、ディスクアレイ装置の価格や必要とする性能に応じて増減可能である。また、図1では、2つのスイッチ40,41を備える構成としているが、スイッチの数についても2つに限定されない。例えば、後述する第3の実施の形態のようにスイッチを1つとしても良いし、3つ以上のスイッチを備える構成とすることも可能である。
スイッチ40、41は、PCI Expressのスイッチ機能とRoot Complex機能を有しており、PCI Expressバスで接続されているホストインタフェース60、65、ディスクインタフェース64、69、xxI/F61〜63、66〜68に対してPCI Expressバスのコンフィグレーションを行う。このスイッチ40、41は、ディスクアレイ装置の負荷や用途によってホストインタフェースやディスクインタフェースの設定を変更し、データの転送先をどのプロセッサ10〜17に割り当てるか自由に選択する。
本実施の形態によるスイッチ40、41の構成例を図2に示す。図2に示すように、スイッチ40、41は、プロセッサ選択手段101、プロセッサ割り当て設定手段102、プロセッサ監視手段103、インタフェース監視手段104、スイッチ監視手段105、セレクタ切り替え手段106を含む。
プロセッサ選択手段101は、ホストコンピュータ3がディスクアレイ装置1に対するデータの書き込み又は読み出しを行った場合に、ホストインタフェース60、65からの割り込みを受け付けて、プロセッサに対して割り込みを上げる機能を有する。
その際、プロセッサ選択手段101は、プロセッサ監視手段103の各プロセッサの負荷状況を参照して、プロセッサ割り当て設定手段102のプロセッサ割り当てテーブルで割り当てられているプロセッサから、その時点でもっとも負荷の軽いプロセッサを選択し、選択したプロセッサに対して割り込みを上げる。
プロセッサ割り当て設定手段102は、スイッチ40および41が同一のデータを同じプロセッサに割り当てないようにするために、図3に示すような、プロセッサ割り当てテーブル112に、ホストインタフェース60、65に対するプロセッサの割り当てを設定する機能を有する。
図3の例では、ホストインタフェース60に対してプロセッサ10〜13が、ホストインタフェース65に対してプロセッサ14〜プロセッサ17が割り当てられている。
プロセッサ割り当て設定手段102は、プロセッサ監視手段103からプロセッサの故障が通知された場合、インタフェース監視手段104からホストインタフェースの故障が通知された場合、上記のプロセッサ割り当てテーブル112を変更して、プロセッサの割り当てを変更する。
プロセッサ監視手段103は、定期的にプロセッサ10〜17と通信を行うことで各プロセッサ毎の負荷状況を監視する機能を有し、図4に示すような負荷状況テーブル113に、各プロセッサ毎の負荷状況を記録する。
インタフェース監視手段104は、自スイッチに接続されているホストインタフェース60、65、ディスクインタフェース64、69、xxI/F61〜63、66〜68を監視し、故障があった場合に、自スイッチと他のスイッチのプロセッサ割り当て設定手段102に対して故障を通知する機能を有する。
スイッチ監視手段105は、他方のスイッチとNTP50、51を介して互いに通信を行い、互いが正常に動作しているかを常に監視する機能を有する。また、セレクタ切り替え手段106は、スイッチ監視手段105からのスイッチ故障の通知を受けて、ホストインタフェース60、65、ディスクインタフェース64、69、xxI/F61〜63、66〜68のセレクタを故障していないスイッチ側に切り換える機能を有する。
例えば、スイッチ40のスイッチ監視手段105が、スイッチ41の致命的な故障を検出した場合は、スイッチ41の故障の通知を受けたセレクタ切り替え手段106が、ホストインタフェース65、ディスクインタフェース69、xxI/F66〜68のセレクタ75〜79を操作して、PCI ExpressバスのUpstream Portをスイッチ41側からスイッチ40側に変更し、スイッチ41側への接続を切る。スイッチ41が故障から復旧した場合は、スイッチ41のセレクタ切り替え手段106が、セレクタ75〜79を操作して、再度Upstream Portをスイッチ41側へと切り替える。
ホストインタフェース60、65は、ホストコンピュータ3と接続するためのFibre ChannelやiSCSI等のインターフェースの機能を有し、ホストコンピュータ3と接続され、ホストコンピュータ3側から読み書きされるデータのやり取りを行う。ホストインタフェース60、65は、スイッチ40または41とPCI Expressバスで接続される。スイッチ40は、PCI ExpressバスのRoot Complexとして機能し、ホストインタフェース60はPCI ExpressバスのEnd Pointとして機能する。
ホストインタフェース60、65は、セレクタ70、75によって、スイッチ40またはスイッチ41の何れか一方に接続される。セレクタ70、75を切り替える際は、ホストインタフェース60、65を一度リセットし、PCI Expressの設定を変更する。
ディスクインタフェース64、69は、ディスクエンクロージャ4と接続するためのSerial Attached SCSI(SAS)やSerial ATA(SATA)等のインターフェース機能を有し、ディスクエンクロージャ4と接続され、HDD(Hard disk drive)80〜8nに対して読み書きされるデータのやり取りを行う。スイッチ40、41とはPCI Expressで接続され、End Pointとして機能する。
ディスクインタフェース64、69は、セレクタ74、79によって、スイッチ40またはスイッチ41の何れか一方に接続される。また、セレクタ74、79を切り替える際の動作については、ホストインタフェースの場合と同じである。
xxI/F61〜63、66〜68で示すインタフェースは、ホストインタフェースまたはディスクインタフェースの何れかとして機能するインタフェースである。ディスクアレイ装置の価格や必要性能に応じて任意のインタフェースを選択可能である。xxI/Fの数量についても、図1の構成例より多くても少なくても良い。PCI Expressバスの接続やセレクタ74、79の動作についても他のホストインタフェースやディスクインタフェースと同じである。
(第1の実施の形態の動作)
次に、図1に示す第1の実施の形態によるディスクアレイ装置の動作について説明する。
まず、ホストコンピュータ3がディスクアレイ装置1に対してデータを書き込む場合の動作について図5のフローチャートを参照して説明する。
ホストコンピュータ3が、ディスクアレイ装置1に対してデータを書き込むと(ステップS501)、ホストインタフェース60がデータを受信し、スイッチ40に対して割り込みを上げる(ステップS502)。
スイッチ40のプロセッサ選択手段101は、ホストインタフェース60からの割り込みを受け(ステップS503)、プロセッサ監視手段103の負荷状況テーブル113の各プロセッサの負荷状況を参照し、プロセッサ割り当て設定手段102のプロセッサ割り当てテーブル112で割り当てられているプロセッサから、その時点でもっとも負荷の軽いプロセッサを選択する(ステップS504)。
そして、プロセッサ選択手段101は、選択したプロセッサに対して割り込みを上げる(ステップS505)。
割り込みを受けたプロセッサ10〜17は、ホストインタフェース60からデータを読み込み、自分のキャッシュ20〜27にデータを蓄える(ステップS506)。このデータをキャッシュしているという情報は、他のプロセッサにも通知される。この時点で、ホストコンピュータ3に対して書き込み完了通知を行う。
その後、そのデータは、プロセッサ10〜17からスイッチ40又は41、ディスクインタフェース74または79を介してディスクエンクロージャ4に対して書き込まれる(ステップS507)。
キャッシュ20〜27内のデータは、その後参照されなかったり、より新しいキャッシュデータが増えた場合は、キャッシュ20〜27から消去される。消去されたという情報は、他のプロセッサにも通知される。このようにして、全てのプロセッサ10〜17は、自分のキャッシュと他のキャッシュにどのようなデータが格納されているかの情報を個別に保持している。
次に、ホストコンピュータ3がディスクアレイ装置1からデータを読み出す場合の動作について図6のフローチャートを参照して説明する。
ホストコンピュータ3が、データの読み出し要求を行うと(ステップS601)、ホストインタフェース60がデータの読み出し要求を受信し、スイッチ40に対して割り込みを上げる(ステップS602)。
スイッチ40のプロセッサ選択手段101は、ホストインタフェース60からの割り込みを受け(ステップS603)、プロセッサ監視手段103の負荷状況テーブル113の各プロセッサの負荷状況を参照し、プロセッサ割り当て設定手段102のプロセッサ割り当てテーブル112で割り当てられているプロセッサから、その時点でもっとも負荷の軽いプロセッサを選択する(ステップS604)。
そして、プロセッサ選択手段101は、選択したプロセッサに対して割り込みを上げる(ステップS605)。
割り込みを受けたプロセッサ10〜17は、自身が保持しているキャッシュに関する情報を参照し、読み出し要求対象のデータが何れかのプロセッサのキャッシュに格納されていないかを調べる(ステップS606)。
格納されていた場合は、そのデータをキャッシュしているプロセッサに対してスイッチ40または41を介して、読み出し要求対象のデータをホストコンピュータ3に対して返却するように指示する(ステップS607)。
指示を受けたプロセッサは、読み出し要求対象のデータをスイッチ40、ホストインタフェース60を介してホストコンピュータ3に対して返却する(ステップS608)。
もし、どのプロセッサにも読み出し要求対象のデータがキャッシュされていない場合は、プロセッサ12は、スイッチ40またはスイッチ41、および、ディスクインタフェース64または69を介してディスクエンクロージャ4から読み出し要求対象のデータを読み出す(ステップS609)。
その後、プロセッサは、ディスクエンクロージャ4から読み出して取得した読み出し要求対象データを、スイッチ40およびホストインタフェース60を介してホストコンピュータ3に対して返却する(ステップS610)。
例えば、読み出し要求対象データがプロセッサ12内のキャッシュ22に蓄積されている場合、そのデータをキャッシュしているという情報は他のプロセッサにも通知される。キャッシュ内のデータは、その後一定期間参照されず、あるいは、より新しいキャッシュデータが増えた場合は、キャッシュから消去される。消去されたという情報は、他のプロセッサにも通知される。全てのプロセッサは、自分のキャッシュと他のキャッシュにどんなデータが記録されているかの情報を個別に保持している。
次に、ディスク制御部2の一部のユニットが故障した場合の動作について説明する。
(1)プロセッサが故障した場合
スイッチ40、41がプロセッサの故障を検出した場合の処理内容を、図7のフローチャートを参照して説明する。
例えば、プロセッサ10が故障した場合は、全てのプロセッサと定期的に通信を行っているスイッチ40および41のプロセッサ監視手段103がプロセッサ10の故障を検出し(ステップ701)、プロセッサ割り当て手段102に対してプロセッサ10の故障を通知する(ステップ702)。
プロセッサ割り当て設定手段102は、プロセッサ割り当てテーブル112を変更して、故障通知を受けたプロセッサ10を割り当てから外し(ステップ703)、それ以降、プロセッサ10に対して割り込みやその他の通信を行わないようにする。
プロセッサ10内にまだディスクエンクロージャ4に対して書き込まれていないキャッシュデータがあったとしても、ホストコンピュータ3が常にホストインタフェース60および65の両方に対して同一のデータを書き込み、スイッチ40および41がそのデータの処理を別のプロセッサに割り当てていれば、データの喪失を防ぐことができる。
スイッチ40および41が同一のデータを同じプロセッサに割り当てないようにするには、ホストインタフェース60に対するプロセッサの割り当てをプロセッサ10〜13、ホストインタフェース65に対するプロセッサの割り当てをプロセッサ14〜プロセッサ17というように、重複しないように制限すればよい。故障した場合の性能低下は、プロセッサ数をnとすると、1/n×100(%)である。
(2)スイッチが故障した場合
スイッチ40、41が故障した場合の処理内容を、図8のフローチャートを参照して説明する。ここでは、例えば、スイッチ40が故障した場合について説明する。
上述したように、スイッチ40とスイッチ41は、NTP50、51を介して互いに通信を行い、それぞれスイッチ監視手段105によって互いが正常に動作しているかを常に監視している。
スイッチ40が故障した場合は、スイッチ41のスイッチ監視手段105が故障を検出し(ステップ801)、セレクタ切り換え手段106に故障を通知する(ステップ802)。
セレクタ切り換え手段106は、ホストインタフェース60、ディスクインタフェース64、xxI/F61〜63のセレクタ70〜74をスイッチ41側に切り替える(ステップ803)。一方のスイッチが故障した場合の性能低下は、最大50(%)である。
(3)ホストインタフェースが故障した場合
スイッチ40、41がホストインタフェースの故障を検出した場合の処理内容を、図9のフローチャートを参照して説明する。
例えば、ホストインタフェース60が故障した場合は、PCI ExpressのRoot Complexであるスイッチ40のインタフェース監視手段104がが故障を検出し(ステップ901)、スイッチ40とスイッチ41のプロセッサ割り当て設定手段102に故障を通知する(ステップ902)。
スイッチ40とスイッチ41のプロセッサ割り当て設定手段102は、プロセッサ割り当てテーブル112を変更して、故障通知を受けたホストインタフェース60に割り当てられているプロセッサを割り当てから外し、ホストインタフェース65側に設定する(ステップ903)。
ホストインタフェース60が故障した場合、上記のようにプロセッサ割り当てテーブル112を変更したことにより、ホストコンピュータ3から書き込まれたデータは、ホストインタフェース65、スイッチ41を介して、割り当てられたプロセッサ内のキャッシュに蓄積される。このデータはまだ二重化されていないため、スイッチ41は、別のプロセッサに対して、このプロセッサ内のキャッシュから書き込みされたデータを読み出してコピーし、キャッシュに蓄積するように指示を出す。
この時点で、初めてホストコンピュータ3に対して書き込み完了の報告を行う。書き込み完了の報告は最初に割り当てられたプロセッサでも、コピー先のプロセッサでも、どちらでも良い。故障した際の性能低下は、故障したホストインタフェースが接続されているホストコンピュータから見た場合、読み出しが50(%)、書き込みがそれより若干の低下(書き込みデータをコピーする手間が掛かるため)する。
(第1の実施の形態による効果)
第1の実施の形態によって得られる効果について説明する。
第1の効果は、ホストインタフェース、ディスクインタフェースに対するプロセッサの割り当てを固定せずに、スイッチを介して自由に設定できるようしたので、ディスクアレイ装置の価格や必要性能に応じて自由に増設や削減が可能になることである。
第2の効果は、スイッチ40、41が、各プロセッサの負荷に応じて、インタフェースからの読み出し/書き込み要求を割り当てるプロセッサを選択することによって、プロセッサ10〜17の負荷を分散することができ、ディスクアレイ装置の性能を最大限引き出せることである。
第3の効果は、ホストインタフェース、ディスクインタフェースからデータの書き込み処理を行うプロセッサ10〜17を選択し、選択したプロセッサ10〜17と通信するプロセッサの機能を無くし、その機能をスイッチ40、41に備えたので、ホストインタフェース、ディスクインタフェースを構成するユニットの小型化を実現でき、より多くのインタフェースを実装することが可能となることである。
(第2の実施の形態)
本発明の第2の実施の形態によるディスクアレイ装置について図10を参照して説明する。
この第2の実施の形態によるディスクアレイ装置の基本的構成は、図1に示した第1の実施の形態と同じであるが、性能向上のためにさらに工夫を施している。図10に示すように、第2の実施の形態によるディスクアレイ装置は、スイッチ40および41に、キャッシュ管理テーブル152および153を追加した構成である。
図11は、第2の実施の形態によるスイッチ40、41の構成例を示すブロック図であり、第1の実施の形態の構成に加えて、キャッシュ管理テーブル152、153を備えている。プロセッサ選択手段101は、処理するプロセッサを割り当てた場合に、キャッシュ管理テーブル152(153)に割り当てたプロセッサと読み出し/書き込み対象データに関する情報を記録する。その他の構成要素については、第1の実施の形態の場合と同様であるので説明は省略する。
キャッシュ管理テーブル152、153は、どのプロセッサにどのようなデータがキャッシュされているかを記憶して管理するためのテーブルである。
キャッシュ管理テーブル152、153には、図12に示すように、HDD80〜8nのデータがプロセッサのキャッシュに格納された場合、どのHDD80〜8nのどのセクタのデータであるかを示す情報、格納された日時を示す情報、キャッシュに格納されたデータの利用頻度の情報、どのプロセッサであるかを示す情報が記録される。
ホストコンピュータ3からデータの読み出し/書き込み要求があった際、スイッチ40、41のプロセッサ選択手段101は、処理をするプロセッサを割り当てる作業を行うが、このときにキャッシュ管理テーブル152、153に割り当てたプロセッサと読み出し/書き込み対象データを記憶しておけば、常に最新のキャッシュに関する情報を保持することができる。
これにより、プロセッサ間でキャッシュに関する情報のやり取りをする必要が無くなるため、プロセッサの負荷が軽減される。
ただし、キャッシュ管理テーブル152は自分のスイッチ40が割り当てたデータに関する情報しか記憶していないため、常にもう1つのスイッチ41と通信を行い、キャッシュ管理テーブル152、153を同期させる必要がある。このため、スイッチ40、41は、NTP50、51を介して互いに通信を行うことで、互いのキャッシュ管理テーブル152、153の内容が同じとなるように同期をとる。
キャッシュ管理テーブル152、153の処理のため、スイッチ40、41に搭載するプロセッサは基本構成のものよりも高い性能が求められる。同様に、スイッチ40、41間のPCI Expressの帯域幅もより広いものが求められる。
このように、第2の実施の形態では、スイッチ40、41に追加したキャッシュ管理テーブル152、153によってプロセッサ10〜17間の無駄な内部通信が省略できるので、ディスクアレイ装置の性能をさらに向上させることができる。
(第3の実施の形態)
本発明の第3の実施の形態によるディスクアレイ装置について図13を参照して説明する。
第1の実施の形態及び第2の実施の形態では、2つのスイッチ40、41を備える構成について説明したが、スイッチが1つの構成とすることも可能である。図13に示すように、第3の実施の形態によるディスクアレイ装置においては、スイッチ45を1つ備える構成としている。プロセッサ10〜17については、NTP30を介して一本のバスでスイッチ45に接続している。また、ホストインタフェース60、65、ディスクインタフェース64、69、xxI/F61〜63、66〜68をセレクタを介することなくスイッチ45に接続している。その他の構成については、第1の実施の形態と同様であるので詳細は省略する。
次に、スイッチ45の構成例を図14に示す。図14に示すように、スイッチ45は、プロセッサ選択手段101、プロセッサ割り当て設定手段102、プロセッサ監視手段103、インタフェース監視手段104を含む。第1の実施の形態と相違する点は、スイッチ監視手段105とセレクタ切り替え手段106を含まない点である。これらの構成要素の機能については、第1の実施の形態と同様であるので説明は省略する。
また、ホストコンピュータ3からデータの読み出し/書き込み要求があった場合の動作についても、図5及び図6で説明した動作内容と同じである。さらに、ディスク制御部2の一部のユニットが故障した場合の動作についても、プロセッサが故障した場合と、ホストインタフェースが故障した場合の動作は、図7及び図9で説明した動作内容と同じである。
この第3の実施の形態は、スイッチ45が1つであるので、スイッチが故障した場合に、ホストインタフェース60、65、ディスクインタフェース64、69、xxI/F61〜63、66〜68のセレクタを操作して他のスイッチ側に切り換えるといった動作は行われない点が、第1の実施の形態と相違する。
第3の実施の形態によれば、スイッチ故障によるセレクタの切り換え以外について、上述した第1の実施の形態と同様の効果が達成される。
さらに、本第3の実施の形態によれば、ホストインタフェース60、65、ディスクインタフェース64、69、xxI/F61〜63、66〜68にてセレクタが必要なくなるため、また、スイッチとプロセッサ及び各インタフェース間の配線数が半減するため、ディスクアレイ装置内の電気回路を簡素化して製品のコストを下げることができる。
最後に、スイッチのハードウェア構成例について図15を参照して説明する。
図15に示すように、スイッチ40、41は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、CPU(Central Processing Unit)701、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部702、データの送受信を行う通信部703、記憶装置705と接続してデータの送受信を行う入出力インタフェース部704、上記各構成要素を相互に接続するシステムバス706を備えている。通信部703としては、市販されている一般的なPCI Expressのスイッチ用LSIを用いることができる。記憶装置705は、例えば、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成される。
スイッチ40、41は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、プロセッサ選択手段101、プロセッサ割り当て設定手段102、プロセッサ監視手段103、インタフェース監視手段104、スイッチ監視手段105及びセレクタ切り換え手段106等の機能を提供するプログラムを、記憶装置705に格納し、そのプログラムを主記憶部702にロードしてCPU701で実行することにより、ソフトウェア的に実現することも可能である。
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
1:ディスクアレイ装置
2:ディスク制御部
3:ホストコンピュータ
4:ディスクエンクロージャ
10〜17:プロセッサ
20−27:キャッシュ
30、31、50、51:NTP
40、41、45:スイッチ
60、65:ホストインタフェース
61〜63、66〜68:xxI/F
64、69:ディスクインタフェース
70〜79:セレクタ
101:プロセッサ選択手段
102:プロセッサ割り当て設定手段
103:プロセッサ監視手段
104:インタフェース監視手段
105:スイッチ監視手段
106:セレクタ切り替え手段
112:プロセッサ割り当てテーブル
113:負荷状況テーブル
152、153:キャッシュ管理テーブル

Claims (27)

  1. ディスクエンクロージャとディスク制御部を含むディスクアレイ装置において、
    前記ディスク制御装置が、
    前記ディスクアレイ装置に対してアクセスするホストコンピュータと接続する複数のホストインタフェースと、
    前記ディスクエンクロージャと接続するディスクインタフェースと、
    前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサと、
    前記ホストインタフェース及び前記ディスクインタフェースと、前記複数のプロセッサ間を接続する複数のスイッチとを備え、
    前記スイッチが、前記ホストインタフェースを介して受信した前記ホストコンピュータからのアクセス要求を受信すると、前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを前記複数のプロセッサから選択するプロセッサ選択手段を備え、
    前記ホストコンピュータからの書き込み要求を、互いに異なる前記スイッチに接続される複数の前記ホストインタフェースで受け付け、各前記スイッチの前記プロセッサ選択手段が、それぞれ前記書き込み要求を処理するプロセッサを選択し、選択したプロセッサに前記書き込み要求を送り、
    各前記プロセッサ選択手段は、各書き込み要求を処理するプロセッサが重複しないように前記プロセッサを選択し、
    前記プロセッサが、書込データをキャッシュするメモリを備え、各プロセッサのキャッシュの情報をプロセッサ間で共有する
    ことを特徴とするディスクアレイ装置。
  2. 前記スイッチが、前記複数のプロセッサの負荷状況を監視する手段を備え、
    前記プロセッサ選択手段が、前記プロセッサの負荷状況に応じて前記ホストコンピュータとの間でデータの読み書きを処理するプロセッサを選択することを特徴とする請求項1に記載のディスクアレイ装置
  3. 前記スイッチが、前記ホストインタフェース毎に、異なる前記プロセッサを割り当てたプロセッサ割り当てテーブルを有し、前記ホストインタフェースで受け付けた前記ホストインタフェースからの読み書き要求を送る前記プロセッサを、前記プロセッサ割り当てテーブルを参照して選択することを特徴とする請求項1又は請求項2に記載のディスクアレイ装置
  4. 前記スイッチが、
    前記プロセッサの故障を監視するプロセッサ監視手段と、
    前記プロセッサ監視手段がプロセッサの故障を検出した場合に、前記プロセッサ割り当てテーブルを変更し、故障したプロセッサの割り当てを外す設定手段とを備えることを特徴とする請求項3に記載のディスクアレイ装置
  5. 前記スイッチが、
    前記ホストインタフェースと前記ディスクインタフェースの故障を監視するインタフェース監視手段と、
    前記インタフェース監視手段が、前記ホストインタフェースの故障を検出した場合に、前記プロセッサ割り当てテーブルを変更し、故障した前記ホストインタフェースに割り当てられているプロセッサを割り当てから外し、割り当てから外したプロセッサを他のホストインタフェースに割り当てる設定手段とを備えることを特徴とする請求項3又は請求項4に記載のディスクアレイ装置
  6. 前記スイッチを複数備え、
    前記ホストインタフェースと前記ディスクインタフェースを、セレクタを介して複数の前記スイッチの何れかに切り替え可能に接続したことを特徴とする請求項1から請求項5の何れかに記載のディスクアレイ装置
  7. 前記スイッチが、
    複数の前記スイッチ間で通信を行い他のスイッチの故障を検出するスイッチ監視手段を備え、
    前記スイッチ監視手段が、他のスイッチの故障を検出した場合に、前記セレクタを切り替えることにより、故障した前記スイッチに接続されていた前記前記ホストインタフェースと前記ディスクインタフェースを自スイッチ側に接続するセレクタ切り替え手段を備えることを特徴とする請求項6に記載のディスクアレイ装置
  8. 前記スイッチが、
    前記プロセッサがキャッシュに格納しているデータの情報を記憶して管理するキャッシュ管理テーブルを備えることを特徴とする請求項1から請求項7の何れかに記載のディスクアレイ装置
  9. 複数の前記スイッチが備える複数の前記キャッシュ管理テーブルの内容が互いに同じ内容になるように、複数のスイッチ間で同期させさせることを特徴とする請求項に記載のディスクアレイ装置。
  10. ディスクアレイ装置に対するホストコンピュータからのアクセスを制御するディスク制御装置において、
    前記ディスクアレイ装置に対してアクセスするホストコンピュータと接続する複数のホストインタフェースと、
    前記ディスクエンクロージャと接続するディスクインタフェースと、
    前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサと、
    前記ホストインタフェース及び前記ディスクインタフェースと、前記複数のプロセッサ間を接続する複数のスイッチとを備え、
    前記スイッチが、前記ホストインタフェースを介して受信した前記ホストコンピュータからのアクセス要求を受信すると、前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを前記複数のプロセッサから選択するプロセッサ選択手段を備え、
    前記ホストコンピュータからの書き込み要求を、互いに異なる前記スイッチに接続される複数の前記ホストインタフェースで受け付け、各前記スイッチの前記プロセッサ選択手段が、それぞれ前記書き込み要求を処理するプロセッサを選択し、選択したプロセッサに前記書き込み要求を送り、
    各前記プロセッサ選択手段は、各書き込み要求を処理するプロセッサが重複しないように前記プロセッサを選択し、
    前記プロセッサが、書込データをキャッシュするメモリを備え、各プロセッサのキャッシュの情報をプロセッサ間で共有する
    ことを特徴とするディスク制御装置
  11. 前記スイッチが、前記複数のプロセッサの負荷状況を監視する手段を備え、
    前記プロセッサ選択手段が、前記プロセッサの負荷状況に応じて前記ホストコンピュータとの間でデータの読み書きを処理するプロセッサを選択することを特徴とする請求項10に記載のディスク制御装置
  12. 前記スイッチが、前記ホストインタフェース毎に、異なる前記プロセッサを割り当てたプロセッサ割り当てテーブルを有し、前記ホストインタフェースで受け付けた前記ホストインタフェースからの読み書き要求を送る前記プロセッサを、前記プロセッサ割り当てテーブルを参照して選択することを特徴とする請求項10又は請求項11に記載のディスク制御装置
  13. 前記スイッチが、
    前記プロセッサの故障を監視するプロセッサ監視手段と、
    前記プロセッサ監視手段がプロセッサの故障を検出した場合に、前記プロセッサ割り当てテーブルを変更し、故障したプロセッサの割り当てを外す設定手段とを備えることを特徴とする請求項12に記載のディスク制御装置
  14. 前記スイッチが、
    前記ホストインタフェースと前記ディスクインタフェースの故障を監視するインタフェース監視手段と、
    前記インタフェース監視手段が、前記ホストインタフェースの故障を検出した場合に、前記プロセッサ割り当てテーブルを変更し、故障した前記ホストインタフェースに割り当てられているプロセッサを割り当てから外し、割り当てから外したプロセッサを他のホストインタフェースに割り当てる設定手段とを備えることを特徴とする請求項12又は請求項13に記載のディスク制御装置
  15. 前記スイッチを複数備え、
    前記ホストインタフェースと前記ディスクインタフェースを、セレクタを介して複数の前記スイッチの何れかに切り替え可能に接続したことを特徴とする請求項10から請求項14の何れかに記載のディスク制御装置
  16. 前記スイッチが、
    複数の前記スイッチ間で通信を行い他のスイッチの故障を検出するスイッチ監視手段を備え、
    前記スイッチ監視手段が、他のスイッチの故障を検出した場合に、前記セレクタを切り替えることにより、故障した前記スイッチに接続されていた前記前記ホストインタフェースと前記ディスクインタフェースを自スイッチ側に接続するセレクタ切り替え手段を備えることを特徴とする請求項15に記載のディスク制御装置
  17. 前記スイッチが、
    前記プロセッサがキャッシュに格納しているデータの情報を記憶して管理するキャッシュ管理テーブルを備えることを特徴とする請求項10から請求項16の何れかに記載のディスク制御装置
  18. 複数の前記スイッチが備える複数の前記キャッシュ管理テーブルの内容が互いに同じ内容になるように、複数のスイッチ間で同期させさせることを特徴とする請求項17に記載のディスク制御装置
  19. ディスクエンクロージャと、ホストコンピュータからのアクセスを制御するディスク制御部を含むディスクアレイ装置の負荷分散方法であって、
    前記ディスク制御装置に対してアクセスするホストコンピュータと接続する複数のホストインタフェース及び前記ディスクエンクロージャと接続するディスクインタフェースと、前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサとの間を接続する複数のスイッチが、前記ホストインタフェースを介して受信した前記ホストコンピュータからのアクセス要求を受信すると、前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを前記複数のプロセッサから選択し、
    前記ホストコンピュータからの書き込み要求を、互いに異なる前記スイッチに接続される複数の前記ホストインタフェースで受け付け、各前記スイッチで、それぞれ前記書き込み要求を処理するプロセッサを選択し、選択したプロセッサに前記書き込み要求を送り、
    各前記スイッチで、各書き込み要求を処理するプロセッサが重複しないように前記プロセッサを選択し、
    前記プロセッサで、書込データを自プロセッサ内のメモリにキャッシュし、各プロセッサのキャッシュの情報をプロセッサ間で共有する
    ことを特徴とする負荷分散方法
  20. 前記スイッチで、
    前記複数のプロセッサの負荷状況を監視し、
    前記プロセッサの負荷状況に応じて前記ホストコンピュータとの間でデータの読み書きを処理するプロセッサを選択することを特徴とする請求項19に記載の負荷分散方法
  21. 前記スイッチで、前記ホストインタフェースで受け付けた前記ホストインタフェースからの読み書き要求を送る前記プロセッサを、前記ホストインタフェース毎に異なる前記プロセッサを割り当てたプロセッサ割り当てテーブルを参照して選択することを特徴とする請求項19又は請求項20に記載の負荷分散方法
  22. 前記スイッチで、
    前記プロセッサの故障を監視し、
    前記プロセッサの故障を検出した場合に、前記プロセッサ割り当てテーブルを変更し、故障したプロセッサの割り当てを外すことを特徴とする請求項21に記載の負荷分散方法
  23. 前記スイッチが、
    前記ホストインタフェースと前記ディスクインタフェースの故障を監視し、
    前記ホストインタフェースの故障を検出した場合に、前記プロセッサ割り当てテーブルを変更し、故障した前記ホストインタフェースに割り当てられているプロセッサを割り当てから外し、割り当てから外したプロセッサを他のホストインタフェースに割り当てることを特徴とする請求項21又は請求項22に記載の負荷分散方法
  24. 前記スイッチを複数備え、
    前記ホストインタフェースと前記ディスクインタフェースを、セレクタを介して複数の前記スイッチの何れかに切り替え可能に接続し、
    複数の前記スイッチ間で通信を行い他のスイッチの故障を検出し、
    他のスイッチの故障を検出した場合に、前記セレクタを切り替えることにより、故障した他の前記スイッチに接続されていた前記前記ホストインタフェースと前記ディスクインタフェースを自スイッチ側に接続することを特徴とする請求項19から請求項23の何れかに記載の負荷分散方法
  25. 前記スイッチで、
    前記プロセッサが前記キャッシュに格納しているデータの情報を、キャッシュ管理テーブルに記録することを特徴とする請求項19から請求項24の何れかに記載の負荷分散方法
  26. 複数の前記スイッチが備える複数の前記キャッシュ管理テーブルの内容が互いに同じ内容になるように、複数のスイッチ間で同期させることを特徴とする請求項25に記載の負荷分散方法
  27. ディスクエンクロージャと、ホストコンピュータからのアクセスを制御するディスク制御部を含むディスクアレイ装置上で動作するプログラムであって、
    前記ディスク制御装置の前記ディスクエンクロージャに対してアクセスするホストコンピュータと接続する複数のホストインタフェース及び前記ディスクエンクロージャと接続するディスクインタフェースと、前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書き処理を行う複数のプロセッサとの間を接続する複数のスイッチを構成するコンピュータ装置に、
    前記ホストインタフェースを介して受信した前記ホストコンピュータからのアクセス要求を受信すると、前記ホストコンピュータと前記ディスクエンクロージャとの間でデータの読み書きを処理するプロセッサを前記複数のプロセッサから選択する処理と、
    前記ホストコンピュータからの書き込み要求を、互いに異なる前記スイッチに接続される複数の前記ホストインタフェースで受け付け、各前記スイッチで、それぞれ前記書き込み要求を処理するプロセッサを選択し、選択したプロセッサに前記書き込み要求を送る処理をと実行させ、
    前記プロセッサに、書込データを自プロセッサ内のメモリにキャッシュし、各プロセッサのキャッシュの情報をプロセッサ間で共有する処理を実行させる
    ことを特徴とするプログラム
JP2009079588A 2009-03-27 2009-03-27 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法 Expired - Fee Related JP5453872B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009079588A JP5453872B2 (ja) 2009-03-27 2009-03-27 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
US12/732,890 US8356205B2 (en) 2009-03-27 2010-03-26 Disk array device, disk control device and load distribution method in disk array device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009079588A JP5453872B2 (ja) 2009-03-27 2009-03-27 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法

Publications (2)

Publication Number Publication Date
JP2010231598A JP2010231598A (ja) 2010-10-14
JP5453872B2 true JP5453872B2 (ja) 2014-03-26

Family

ID=42785795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009079588A Expired - Fee Related JP5453872B2 (ja) 2009-03-27 2009-03-27 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法

Country Status (2)

Country Link
US (1) US8356205B2 (ja)
JP (1) JP5453872B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378246B2 (en) * 2012-05-03 2016-06-28 Hiromichi Watari Systems and methods of accessing distributed data
JP5969122B2 (ja) * 2013-05-31 2016-08-17 株式会社日立製作所 ホストバスアダプタおよびシステム
JP6207342B2 (ja) * 2013-10-30 2017-10-04 富士通株式会社 情報処理システムおよび情報処理システムの制御方法
JP6582523B2 (ja) * 2015-04-30 2019-10-02 富士通株式会社 ストレージ装置、制御装置、制御プログラム
US10884672B2 (en) * 2018-04-02 2021-01-05 Samsung Electronics Co., Ltd. NDP-server: a data-centric computing architecture based on storage server in data center

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6865591B1 (en) * 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
WO2002008870A2 (en) * 2000-07-26 2002-01-31 David Dickenson Distributive access controller
US6604176B1 (en) * 2000-12-21 2003-08-05 Emc Corporation Data storage system having plural fault domains
JP4107083B2 (ja) 2002-12-27 2008-06-25 株式会社日立製作所 高可用ディスク制御装置とその障害処理方法及び高可用ディスクサブシステム
US7383381B1 (en) * 2003-02-28 2008-06-03 Sun Microsystems, Inc. Systems and methods for configuring a storage virtualization environment
JP4412981B2 (ja) * 2003-11-26 2010-02-10 株式会社日立製作所 ストレージシステム及同システムにおけるデータキャッシング方法
JP4377279B2 (ja) * 2004-05-06 2009-12-02 株式会社日立製作所 ストレージシステム、コンピュータシステム、およびストレージシステムの設定方法
JP4803983B2 (ja) * 2004-09-14 2011-10-26 パナソニック株式会社 演算処理装置
JP5038589B2 (ja) 2004-10-04 2012-10-03 株式会社日立製作所 ディスクアレイ装置及びその負荷分散方法
JP2006252019A (ja) 2005-03-09 2006-09-21 Hitachi Ltd ストレージネットワークシステム
JP2007079958A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd 記憶制御装置、データ処理方法、及びコンピュータプログラム
JP4859471B2 (ja) * 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ

Also Published As

Publication number Publication date
US8356205B2 (en) 2013-01-15
JP2010231598A (ja) 2010-10-14
US20100251015A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP4472617B2 (ja) Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
JP4606455B2 (ja) ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム
US8639898B2 (en) Storage apparatus and data copy method
JP2009043030A (ja) ストレージシステム
GB2416415A (en) Logical unit reassignment between redundant controllers
US11372552B2 (en) Storage device
JP2007310495A (ja) 計算機システム
JP2010049502A (ja) ストレージサブシステム、及びこれを有するストレージシステム
JP4121255B2 (ja) クラスタ構成記憶システム
JP5453872B2 (ja) ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
JP4261532B2 (ja) 論理ディスク管理方法及び仮想化装置
JP2010282324A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP2002049511A (ja) アドレスの割付変更方法及びこれを用いた外部記憶サブシステム
JP4451687B2 (ja) ストレージシステム
US20110283063A1 (en) Disk array device, a disk array device control method and a disk array device control program
JP2014010540A (ja) 仮想サーバ環境のデータ移行制御装置、方法、システム
US20140156934A1 (en) Storage apparatus and module-to-module data transfer method
JP2003131818A (ja) クラスタ構成ストレージにおけるクラスタ間raid構成
JP2006114064A (ja) 記憶サブシステム
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
JP5597266B2 (ja) ストレージシステム
JP6107761B2 (ja) ディスクアレイ装置およびディスクアレイ装置の制御方法
JP2023110180A (ja) ストレージ装置および制御方法
JP3559016B2 (ja) ディスクアレイシステム、ディスクアレイシステムにおけるロジカルユニットの引き継ぎ方法及び連携制御コントローラ
JP4714720B2 (ja) ストレージ装置及びその制御方法、並びにディスク装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130812

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20131010

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131223

R150 Certificate of patent or registration of utility model

Ref document number: 5453872

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees