JP2006277487A - ディスクアレイ装置およびその制御方法 - Google Patents

ディスクアレイ装置およびその制御方法 Download PDF

Info

Publication number
JP2006277487A
JP2006277487A JP2005097505A JP2005097505A JP2006277487A JP 2006277487 A JP2006277487 A JP 2006277487A JP 2005097505 A JP2005097505 A JP 2005097505A JP 2005097505 A JP2005097505 A JP 2005097505A JP 2006277487 A JP2006277487 A JP 2006277487A
Authority
JP
Japan
Prior art keywords
disk array
control program
processor
unit processor
assigned
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
JP2005097505A
Other languages
English (en)
Other versions
JP4969791B2 (ja
Inventor
Masahiro Arai
政弘 新井
Naoto Matsunami
直人 松並
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 JP2005097505A priority Critical patent/JP4969791B2/ja
Priority to US11/134,447 priority patent/US7617360B2/en
Priority to EP05256332A priority patent/EP1708077A1/en
Publication of JP2006277487A publication Critical patent/JP2006277487A/ja
Application granted granted Critical
Publication of JP4969791B2 publication Critical patent/JP4969791B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/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]

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)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 ディスクアレイ装置において障害による他制御への影響を抑止しつつ性能リソースを効率よく管理すること。
【解決手段】 ディスクアレイコントローラ11を備えるディスクアレイ装置1であって、ディスクアレイコントローラ11は、物理的に分離不可能な複数個のプロセッサコア1110を内蔵したCPUを搭載し、各プロセッサコアはそれぞれ単位プロセッサとなり、一の単位プロセッサは、単位プロセッサを個別に管理し、各々完結した制御プログラムを、単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能に又はCPU全体の動作終了まで動作可能に割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理する。
【選択図】 図5

Description

本発明は、複数のディスク装置を備えるディスクアレイ装置、およびディスクアレイ装置の制御方法に関する。
複数のディスク装置を備えることによってデータに対するアクセス速度、ディスク装置に対する信頼性を向上させる技術として、RAID(Redundant Array of Independent Disks)が知られている。一般にディスクアレイ装置では、このRAID制御を装置内に備えるディスクアレイコントローラが担っており、従来より処理性能向上のためディスクアレイコントローラの高性能化が図られてきた。
ディスクアレイコントローラにはアレイコントローラの処理プログラムを動作させるためのCPUが搭載されている。高性能化の一手法として、CPUを複数乗せることによって処理を並列化し、高速化する手法が考えられる。
特開平9−160889号公報 特開平6−35871号公報
しかしながら、複数CPUを搭載したディスクアレイ装置では、CPU間での情報共有のために高価な共有メモリが必要となる。このため性能の向上分に対する相対的なコストが高くなってしまいコストパフォーマンスが悪化してしまうという問題がある。また、CPU個別にクロックや電源供給回路が必要となるため、実装面でも肥大化し、結果として製造コストも増加してしまうといった問題がある。
一方、制御面で見ると、特許文献1では処理をジョブ単位で制御プロセッサないしプロセッサ群に割当てる方法が取られているが、この場合、複数の分割された制御(ジョブ)が1つのプロセッサないしプロセッサ群内に混在して存在するため、例えばディスクアレイ装置の運用管理機能がセキュリティクラック等の攻撃を受けてダウンしてしまうような場合、それにひきづられて他の制御もダウンしてしまう可能性がある。
本発明は、上記に示した課題を解決するためになされたものであり、高コストパフォーマンスの実現、他制御への影響抑止、リソースの有効活用を可能とするディスクアレイを提供することを目的とする。
上記課題を解決するために、本発明の実施形態では、複数プロセッサコア(MPUコア)を内蔵したCPUを搭載するディスクアレイコントローラを備え、処理完結しているプログラムモジュールを各コアに静的または動的に割り当てて処理動作するディスクアレイ装置を提供する。ここで、処理完結しているプログラムモジュールとは、同一プログラム内で起動・停止・障害復旧処理及び外部への通知のための論理インターフェースを備え、他のプログラムと連携非同期で動作可能なプログラムを指す。
本発明の実施形態に係るディスクアレイ装置は、MPUコアを固定資源または動的資源として管理する手段と、各コアの負荷状況を監視し、必要に応じて外部からの指示なしに各制御へのコアの割当て数を変動させる監視制御手段と、コアに障害が発生した際に動作中プログラム間の依存関係を考慮して終了させ、必要に応じて他系のディスクコントローラにフェイルオーバする障害処理手段とを備えることを特徴とする。
すなわち、本発明は、ディスクアレイコントローラを備えるディスクアレイ装置であって、前記ディスクアレイコントローラは、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載しており、各プロセッサコアはそれぞれ単位プロセッサとなり、一の単位プロセッサは、自己及び他の単位プロセッサを個別に管理し、各々完結した制御プログラムを、自己又は他の単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能とする動的になるように、又は前記CPU全体の動作終了まで動作可能とする非動的になるように割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理するディスクアレイ装置である。
本発明を実施するための最良の形態を説明する。
以下、本発明に係るディスクアレイ装置およびディスクアレイ装置の制御方法について図面を参照しつつ、実施例に基づいて説明する。
実施例1を説明する。本実施例のディスクアレイ装置の構成について、図1〜図8を参照して説明する。図1は本実施例に係るディスクアレイ装置の概略構成を示す説明図である。図2は本実施例に係るディスクアレイ装置の概観図である。図3は本実施例に係るディスクアレイ装置におけるディスクアレイコントローラの機能的構成を示すブロック図であり、図4はその概観図を表している。図5は本実施例に係るディスクアレイ装置においてディスクアレイコントローラに搭載される複数プロセッサコア(MPUコア)を内蔵したCPU(以下、「マルチコアCPU」と記す)の機能的構成を示すブロック図である。
また、図6は制御プログラムに含まれる各プログラムモジュール及び管理テーブルを示す説明図であり、図7、8は前記管理テーブルのうちの2つを具体的に示した一例である。以下、順に説明を行う。
本実施例におけるディスクアレイ装置1は、ディスクアレイコントローラ11、12、接続インターフェース130、131、132、電源105、106、および、複数のディスク装置D00〜D2Nを備えている。複数のディスク装置D00〜D2Nは、例えば、図2に示すようにしてディスク装置1に備えられると共に、RAIDシステムを構成している。
ディスクアレイコントローラ11、12は、制御プログラムを実行することによって、ディスクアレイ装置1における各種制御処理を実行する制御回路である。本実施例においては、2つのディスクアレイコントローラ11、12が備えられているが、1つまたは3つ以上のディスクアレイコントローラが備えられていてもよい。ディスクアレイコントローラ11、12は信号線101を介して相互に通信可能に接続されている。ディスクアレイコントローラ11、12はまた、ストレージネットワーク40を介して各ホスト20、21、22と接続され、管理用ネットワーク30とを介して管理用端末装置31と接続されている。ストレージネットワークは、例えば、ファイバチャネルによるFC−SAN(Storage Area Network)やTCP/IPネットワークを利用したIP−SANなどであり、管理用ネットワークはTCP/IPネットワークを利用したLANや、シリアルケーブルによるPoint to Pointネットワークである。
ディスクアレイコントローラ11、12は、接続インターフェース130、131、132を介して複数のディスク装置D00〜D2Nと接続されている。より具体的には、接続インターフェース130は、ディスクアレイコントローラ11,12と信号線102を介して直接接続されており、定期的な通信を行っている。また、各接続インターフェース130、131、132は互いに信号線103を介して接続されている。従って、接続インターフェース131は接続インターフェース130を介して、接続インターフェース132は接続インターフェース130、131を介してディスクアレイコントローラ11、12と接続されている。
接続インターフェース130は、複数のディスク装置D00〜D0Nと接続され、接続インターフェース131は複数のディスク装置D10〜D1Nと接続され、接続インターフェース132は複数のディスク装置D20〜D2Nと接続されている。
ディスクアレイコントローラ11、12を含む接続インターフェース130及び複数のディスク装置D00〜D0Nのグループは、例えば、基本筐体と呼ばれ、接続インターフェース131及び複数のディスク装置D10〜D1Nのグループ、及び接続インターフェース132及び複数のディスク装置D20〜D2Nのグループは、例えば、増設筐体と呼ばれる。なお、図1からも明らかなように、増設筐体は0ないし1つであってもよく、あるいは、3つ以上あってもよい。
なお、本実施例では基本筐体をディスクアレイコントローラ11、12および接続インターフェース130、複数のディスク装置D00〜D0Nから成るグループとして記載しているが、基本筐体に複数のディスク装置D00〜D0Nを含まない形態でも良い。
ホスト20、21、22は、例えば、各種データを入力する端末装置であり、ホスト20、21、22において処理されたデータは、逐次、ディスクアレイ装置1に対し送出され、ディスクアレイ装置1に格納される。なお、ホスト20〜21は、1つであっても良く、あるいは、4つ以上備えられてもよい。
電源105は、電力線107及び接続インターフェース130を介して複数のディスクD00〜D0Nに動作のための電力を供給し、また、電力線107及び接続インターフェース130、及び電力線104を介してディスクアレイコントローラ11,12の動作のための電力を供給する。同様に、電源106は、電力線107及び接続インターフェース131、132を介し、複数のディスク装置D10〜1N、D20〜D2Nに動作のための電力を供給する。
各ディスク装置D00〜D2Nは、ハードディスクドライブであり、例えば、ATA規格のハードディスクドライブやSAS規格のハードディスクドライブが用いられる。
管理用端末31は、ディスクアレイ装置1に対する保守管理を実行するために用いられる端末装置である。管理用端末装置31には、管理画面32が備えられており、管理者は管理画面32を通じて、ディスクアレイ装置1の状態を管理する。
図3を参照して、ディスクアレイコントローラ11の内部構成について説明する。なお、ディスクアレイコントローラ12に関しても同様の内部構成を有している。ディスクアレイコントローラ11は、マルチコアCPU110、不揮発性メモリ111、揮発メモリ112、ホスト側物理ポート113、ドライブ側物理ポート114、管理ネットワーク用物理ポート115、ブートROM116を備えている。
不揮発性メモリ111には、ディスクアレイ装置1を制御するための制御プログラムが格納されている。不揮発性メモリ111は、電力の供給が停止しても継続的にデータを記憶しておくことができ、例えば、Flashメモリが用いられる。制御プログラム119については、図6を用いて後述する。
揮発性メモリ112は、ディスク装置Dから読み出したデータ、ディスク装置Dに書き込むデータ、及び、マルチコアCPU110による演算結果を一時的に格納するためのデータバッファ領域112と、マルチコア110によって制御プログラム119を実行するために、制御プログラム119を読み出して格納しておく制御プログラム配置領域117とを備える。揮発性メモリは停電などによりメモリへの電力供給が停止するとデータを記憶しておくことができなくなるメモリであり、例えばDRAM(Dynamic
Randum Access Memory)などが用いられる。
ホスト側物理ポート113は、ストレージネットワーク40へ物理的に接続し、ホスト20〜22と電気的信号を送受信するための伝送路の受け口である。
ドライブ側物理ポート114は、接続インターフェースと電気的信号を送受信するための伝送路の受け口である。
管理ネットワーク用物理ポート115は、管理用ネットワークへ接続し、管理用端末装置31と電気的信号を送受信するための受け口である。
ブートROM116は、ディスクアレイ装置1を起動した際、不揮発性メモリ111に格納された制御プログラム119を、揮発性メモリ112の制御プログラム配置領域117に読み出すためのイニシャルプログラムローダを格納した読み出し専用メモリ(Read
Only Memory)である。
マルチコアCPU110は、複数のプロセッサコア(MPUコア)を内蔵する演算処理装置であり、信号線120を介して、不揮発性メモリ111、揮発性メモリ112、ホスト側物理ポート113、ドライブ側物理ポート114、管理ネットワーク用物理ポート115、ブートROM116と相互に接続されている。マルチコアCPU110は、信号線116を介して、不揮発性メモリ111からのデータの読み出しと書き込み、揮発性メモリ112からのデータの読み出しと書き込みを実行するほか、信号線120とホスト側物理ポート113を介してホスト20〜22との間でコマンドおよびデータの送受信を実行し、信号線120とドライブ側物理ポート114、及び、図1に示した信号線102、103、接続インターフェース130〜132を介して、ディスク装置Dとの間でコマンドおよびデータの送受信を実行する。
また、マルチコアCPU110は、信号線101を介して他系コントローラと相互に接続されているおり、他系コントローラとの間でデータおよびコマンドの送受信を実行する。図3はディスクアレイコントローラ11を示しているので、他系コントローラとは、具体的には、ディスクアレイコントローラ12を指す。なお、ディスクアレイコントローラ12に対する他系コントローラとはディスクアレイコントローラ11を意味する。
図4は、ディスクアレイコントローラ11の概観図を示したものである。なお、ディスクアレイコントローラ12の概観図も同様である。
ディスクアレイコントローラ11には、マルチコアCPU110をはじめとし、図3の内部構成で示した部品が基板回路上に配置され、接続されているほか、接続コネクタ122、ブラケット121、ホスト接続用ポート123、管理ネットワーク接続用ポート124、エラー表示LED125が備えられている。
また、図4では記載を省略するが、マルチコアCPU110や周辺回路上の半導体の上には、発熱による破壊を防ぐ為の放熱板やファンが取り付けられることもある。
接続コネクタ122は接続インターフェース130上に設けられたコネクタと嵌合することによって、信号線101、102、及び電力線104と物理的な接続を行う。接続コネクタ上にはこのほかにディスクアレイ装置上で必要となるいくつかの信号線を備えている。たとえば、ディスクアレイコントローラ挿抜検出用信号線などである。
ホスト接続用ポート123はストレージネットワーク40へ接続するためのケーブルのコネクタを挿入する接続口であり、管理ネットワーク接続用ポート124は、管理用ネットワーク30へ接続するためのケーブルのコネクタを挿入する接続口である。
エラー表示LED125はディスクアレイコントローラ11に障害が発生し保守交換が必要となった際に、エラーが発生していることを視覚的にディスクアレイ装置1の外部に通知するための表示灯である。
図5を参照して、ディスクアレイコントローラ11に搭載されているマルチコアCPU110の機能的構成の一例について説明する。マルチコアCPU110は、複数のMPUコア(プロセッサコア)1110〜111Nと、内部スイッチ1120、不揮発メモリコントローラ1130、ディスクアレイコントローラ間転送コントローラ1140、パリティ演算器1150、CPU内部キャッシュ1160、揮発メモリコントローラ1170を備える。複数のMPUコア1110〜111Nはそれぞれした独立したプロセッサであるが、1つの半導体素子上に作成されており物理的に個別に切り離して利用することはできない点が、従来のマルチプロセッサとは異なる。
内部スイッチ1120は複数のMPUコア1110〜111N、不揮発メモリコントローラ1130、ディスクアレイコントローラ間転送コントローラ1140、パリティ演算器1150、CPU内部キャッシュ1160、揮発メモリコントローラをスイッチ機構によって高速に相互接続している。
不揮発性メモリコントローラ1130はMPUコア1110〜111Nの指示に基づいて不揮発性メモリ111との間でデータの転送を実行するI/Oコントローラである。
ディスクアレイコントローラ間転送コントローラ1140は、他系のディスクアレイコントローラに搭載されたマルチコアCPU110とコマンドとデータの送受信を行う。
パリティ演算器1150は、各MPUコア1110〜111Nの指示に基づいて与えられたデータのパリティ生成や整合性の確認を高速に行うのに用いられる。たとえばXOR演算器が含まれる。
CPU内部キャッシュ1160は、複数のMPUコア1110〜111NからマルチコアCPU110外部にある揮発性メモリ112よりも高速にアクセスできる揮発性のメモリである。CPU内部キャッシュ1160は複数のMPUコア1110〜111Nが演算結果を一時的に格納するほか、MPUコアの動作状況を格納するMPUコア管理テーブルなどを格納するのに用いられる。
揮発性メモリコントローラ1170はMPUコア1110〜111Nの指示に基づいて揮発性メモリ112との間でデータの転送を実行するI/Oコントローラである。
以上の様に、本発明のマルチコアCPU110は複数のMPUコアのほかにI/Oコントローラなどの周辺制御回路を内蔵しているが、少なくとも複数のMPUコアを内蔵していれば他の構成を取っていても良い。例えば不揮発メモリコントローラは内蔵されずに外部回路として設けられる場合や、マルチコアCPUにTCP/IPコントローラが内蔵されるような場合である。
図6を参照して、制御プログラム119の詳細について説明する。制御プログラム119は、監視制御プログラムモジュールPr1,運用管理プログラムモジュールPr2、RAID制御プログラムモジュールPr3,NAS制御プログラムモジュールPr4、ホストI/O制御プログラムモジュールPr5、ドライブI/O制御プログラムモジュールPr6、初期MPUコア割当管理テーブルTb1、初期閾値管理テーブルTb2,RAID設定管理テーブルTb3,LU設定管理テーブルTb4、NASボリューム管理テーブルTb5を備えている。
監視制御プログラムモジュールPr1は、プログラムモジュールPr2〜Pr6の動作管理及びMPUコアの資源管理を行う、特権レベルの最も高いプログラムモジュールであり、他のプログラムモジュールの処理負荷状況に応じて自律的にMPUコアの割当て数の変更を実行する。
運用管理プログラムモジュールPr2は、監視制御プログラムモジュールPr1に次いで特権の高いプログラムモジュールであり、管理用端末装置31からのディスクアレイ装置1に対する運用・保守管理に関する設定を受付け、他のプログラムモジュールを通じて実際に設定を実行するプログラムモジュールである。運用・保守管理には、例えば、RAIDグループの設定、LU(Logical Unit)の設定、NAS(Network Attached Storage)の設定、ホストマッピングの設定、監視機能の設定、制御プログラムのアップデート、稼働状況の確認、動作ログの閲覧・取得、ディスク表面検査の設定、ディスクアレイ装置の起動・停止などがある。
RAID制御プログラムモジュールPr3は、運用管理プログラムモジュールPr2を介して、管理用端末装置31から管理用端末画面32を通じた指定内容に基づき、RAIDグループの作成やLUの作成、LUの初期化、ホスト20〜22に対するLUとLU番号(LUN)との対応付けなどを行うほか、ホスト20〜22から受領したコマンドの解釈を行い、必要であれば演算を行いながら、適切なディスク装置Dに対しコマンドを発行してデータの読み書きを実行し、ホスト20〜22との間でコマンド処理の結果通知やデータの送受信を実行する。RAID制御プログラムはPr3は、また、次に説明するNAS制御プログラムとの間でも同様のコマンド送受信、演算、ディスク装置Dへのアクセスを実行する。
NAS制御プログラムモジュールPr4は、ホスト20〜22からのファイルレベルアクセス処理を実行するプログラムモジュールであり、その他にRAID制御プログラムモジュールPr3によって作成されたLU上へのファイルシステムの構築や構築されたファイルシステムサイズの変更、ファイルやディレクトリへのアクセス権の設定、アクセス認証方法の設定などを行う。
ホストI/O制御プログラムモジュールPr5は、RAID制御プログラムモジュールPr3が作成した転送リストの指示に基づき、ホスト20〜22と揮発性メモリ112にあるデータバッファ領域118との間で、パリティ演算器1150を介してデータ整合性のチェックを行いながら、データ転送を実行するプログラムモジュールである。ドライブI/O制御プログラムモジュールPr6は、同様にRAID制御プログラムモジュールPr4が指定する転送リストに基づき、ディスク装置Dと揮発性メモリ112にあるデータバッファ領域118との間で、パリティ演算器1150を介してデータ整合性のチェックを行いながら、データ転送を実行するプログラムモジュールである。
初期MPUコア割当管理テーブルTb1は、ディスクアレイ装置1が起動した際の、MPUコア資源管理内容と、各制御プログラムモジュールPr1〜Pr6の初期割当を指定した管理表である。初期MPUコア割当て管理テーブルTb1の詳細は、図7を用いて後述する。
初期閾値管理テーブルTb2は、各プログラムモジュールPr1〜Pr6の負荷の上限閾値の初期値を管理しているテーブルである。初期閾値管理テーブルTb2の詳細は、図8を用いて後述する。
RAID設定管理テーブルTb3は、RAIDグループを構成するディスク装置についての各種情報を管理するために用いられるテーブルであり、例えば、RAIDグループNo、RAIDグループの総記憶容量,RAIDレベル、RAIDグループを構成するディスク装置、正常・異常の状態などの情報を管理する。
LU設定管理テーブルTb4は、RAIDグループ上に作成される論理ユニット(Logical Unit)を管理するためのテーブルであり、例えば、LUN、所属するRAIDグループNo、論理ユニットに設定されている記憶容量、正常・異常の状態などの情報を管理する。
NASボリューム設定管理テーブルTb5は、NASが作成するファイルシステムを管理するテーブルであり、例えば、ファイルシステム名、ファイルシステムを構成するLUの番号、ファイルシステムのフォーマット、ファイルシステムの総容量、ファイルシステムの使用容量、ファイルシステムの差分管理の有無、差分管理容量、差分管理容量の使用率、ファイルシステムの状態などの情報を管理する。
図7に初期MPUコア割当管理テーブルTb1の一例を示す。図7に示す初期MPUコア割当管理テーブルTb1は、管理上振付けたMPUコア番号、同MPUを初期の段階で使用するプログラムモジュール名、モジュールの割当形式、特権レベル、グループNoについての情報を保持している。
モジュールの割当形式は、固定・半固定・動的の3種類がある。固定は初期MPUコア割当管理テーブルで指定したMPUコア以外を割当てることができないことを示し、半固定は初期MPUコア割当管理テーブルで指定したMPUコアに加え、他のMPUコアを負荷分散用に割当可能であることを示す。動的は具体的なプログラムモジュールが初期の段階では割当てられず、未使用で開始することを示している。図7を例に取ると、監視制御プログラムモジュールと運用管理プログラムモジュールはそれぞれMPUコア0、MPUコア1に固定的に割当てられ変更不可であり、RAID制御は当初MPUコア2が割当てられるが、必要に応じ他のコアも割当可能であることを示している。
特権レベルは、プログラムモジュール間での制御、非制御の関係を表す整数値であり、小さいほど特権性が高いことを示す。図7を例に取ると、監視制御プログラムモジュールは最も高い特権レベル0であり、他のいずれのプログラムモジュールからも制御指示を受けず、逆にいずれのプログラムモジュールにも制御指示が可能であることが分かる。運用管理モジュールの特権レベルは1であり、これより高い監視制御プログラムモジュールからの制御指示は受けるが、それ以外からは制御指示を受けない。逆に、例えば、特権レベルが1つ低い、特権レベル2のRAID制御プログラムモジュールに対しては制御指示が可能である。なお、特権レベルが同じとは、お互いに独立している場合などであり、制御指示をお互いに与えることはない。
グループNoは、負荷分散で融通できるMPUコアのグループを示している。図7を例に取れば、MPUコアNo6及び7のMPUコアは、グループNoが003なので、同じグループNoを持つMPUコアNo2、3に割当てられているプログラムモジュールの負荷分散用に利用が可能である。
図8は、初期閾値管理テーブルTb2の一例を示したものである。図8に示す初期閾値管理テーブルTb2は、使用モジュールと、負荷分散要と判断するための負荷閾値、負荷分散開始を決定する閾値オーバ回数についての情報を保持している。図8を例に取ると、監視制御プログラムモジュールは負荷閾値に100が指定されており、負荷は100%を超えることはないから、負荷が高くなっても分散しないことを示している。一方、RAID制御プログラムモジュールの負荷閾値は90%であり、割当MPUコアの負荷が90%を超えると閾値オーバ回数1回としてカウントされる。負荷は定期的に監視され、閾値オーバ回数が閾値オーバ規定回数欄に記載されている5回を超えると負荷分散を開始する。
図9はCPU内部キャッシュ内で監視制御プログラムモジュールが管理するMPUコア割当テーブルの一例を示す図である。図9に示すMPUコア割当テーブルには、MPUコアNo、MPUコアの使用負荷率、MPUコアのグループNo、状態、MPUコアを使用しているプログラムモジュール名、モジュールの割当形式、特権レベル、及び、負荷閾値のオーバ回数について情報を保持している。
図10は管理用端末31の管理端末画面32においてMPUコア利用状況の情報を確認した際の画面を示している。画面にはMPUコアNoとそのMPUコアで動作しているプログラムモジュール名、状態、負荷状況が表示され、情報が更新されるたびに書き換えられる。
図11〜13を参照して本実施例に係るディスクアレイ装置の制御方法について説明する。
図11を参照して、本実施例に係るディスクアレイ装置1の装置起動時において制御プログラムをマルチコアCPUの各MPUコアに割当てる処理手順について説明する。図11は装置起動時の制御プログラムのロードとマルチコアMPU110の各MPUコア1110〜111Nへのプログラムモジュール割当処理の実行手順を示すフローチャートである。
図11に示すフローチャートは、ディスクアレイ装置1の電源スイッチがONにされ、ディスクアレイコントローラ11、12への通電が開始された際に実行される。
ディスクアレイコントローラ11、12への通電が開始されると、マルチコアCPU110は、ブートROM上にあるイニシャルプログラムローダを実行する(ステップS1000)。イニシャルプログラムローダは、マルチコアCPU110の動作チェックと揮発性メモリ112のチェックを実施する(ステップS1010)。マルチコアCPUの動作チェックとは、一例としては、各MPUコア1110〜111Nが正常であるか否か確認させるCPUのセルフチェック機能が挙げられる。また揮発性メモリのチェックとはメモリへ特定パターンの値をライトした後、正しくリードできるか否か確認するチェック方法がある。
イニシャルプログラムローダによってチェックした結果が正常であった場合には(ステップS1020:Yes)、次の処理に進み、制御プログラム119を揮発性メモリ112の制御プログラム配置領域117にロードし、イニシャルプログラムローダから制御プログラムへと処理を移す(ステップS1030)。
制御プログラムモジュールでは、最初に監視制御プログラムモジュールPr1が起動される。そしてCPU内部キャッシュ1160上にMPUコア管理テーブルTb6を作成し、監視制御プログラムモジュールPr1の情報を登録する(ステップS1040)。その後、監視制御プログラムモジュールPr1は初期MPUコア割当管理テーブルTb1を参照し、他のモジュールに使用MPUコアを割り当て、MPUコア管理テーブルTb6の情報を更新する(ステップS1050)。次に、初期閾値管理テーブルTb2に基づき、負荷閾値と閾値オーバ回数規定値を設定する(ステップS1060)。MPUコアを割り当てられた各プログラムモジュールは、起動して各制御処理を開始する(ステップS1070)。
これらの一連の作業は、管理用端末31およびその管理画面32を通じて、管理者に報告される(ステップS1080)。
一方、起動後にイニシャルプログラムロードがマルチコアCPU,揮発性メモリをチェックした結果が正常でなかった場合には(ステップS1020:No)、本ディスクアレイコントローラは動作不可能であると判断し、エラーを通知する。エラー通知とは例えば、イニシャルプログラムローダによる管理用端末31への通知や装置に搭載されたスピーカーによるアラーム音などの発生による。
図12を参照して、本実施例に係るディスクアレイ装置1の制御プログラム内監視制御プログラムモジュールPb1による自律負荷分散処理について説明する。図12は、監視制御プログラムモジュールPb1が過負荷を検出し、当該過負荷プログラムモジュールの処理を負荷分散させるために追加のMPUコアを割り当てる処理手順を示すフローチャートである。
図12のフローチャートは、ディスクアレイ装置1の電源スイッチがONにされ、ディスクアレイコントローラ11、12を含む基本筐体、および、増設筐体に通電が開始され、図11に示した手順によって制御プログラムの起動処理が完了した後に、装置が停止されるまで監視制御プログラムモジュールによって繰り返し実行される。
監視制御プログラムモジュールは、動作中の各プログラムモジュールへの使用しているMPUコアごとの使用率(負荷状態)の問い合わせ情報を取得するとともに、MPUコア管理テーブルTb6の情報を更新する(ステップS2000)。次に、監視制御プログラムモジュールPr1は、初期閾値管理テーブルTb2に基づいて設定された負荷閾値を照らし合わせ、各負荷状態が閾値を超えているモジュールがないかチェックする。もし負荷閾値を超えているモジュールがあれば(ステップS2010:Yes)、閾値を超えている当該MPUコアの閾値オーバ回数を1増加させ、MPUコア管理テーブルTb6上に反映する。次に、当該閾値オーバ回数が、規定回数を超えていないかチェックする。閾値オーバ回数が規定回数Nを越える値となった場合(ステップS2030:Yes)、監視制御プログラムモジュールPr1は、当該プログラムモジュール処理の過負荷状態が続いており、負荷分散が必要であると判断する。監視制御プログラムモジュールPr1は、MPUコア管理テーブルTb6を参照し、当該過負荷プログラムモジュールが割り当てられているMPUコアのグループNoを取得後、同一グループNoを持つ未割当のMPUコアを検索する(ステップS2040)。未割当MPUコアが存在した場合(ステップS2050:Yes)は、当該過負荷モジュールに未割当MPUコアを割当て、MPU管理テーブルTb6の情報を更新し、当該未割当コア欄に動作プログラムモジュール名の登録と、特権レベルの変更を行う。また、過負荷判定されたMPUコアの閾値オーバ回数をゼロにクリアする。そして、これらの変化状況を管理端末に通知して(ステップS2230)処理を終了する。
一方、当該過負荷モジュールに現在割り当てられているMPUコアと同一のグループNoを持つ未割当MPUコアが存在しない場合(ステップS2050:No)は、グループNoが−1、すなわちどのグループにも属していない未割当MPUコアを検索する(ステップS2060)。
どのグループにも属していない未割当MPUコアが存在した場合(ステップS2070:Yes)は、当該過負荷モジュールに未割当MPUコアを割当て、MPU管理テーブルTb6の情報を更新し、当該未割当コア欄に動作プログラムモジュール名の登録と、特権レベルの変更を行う。また、過負荷判定されたMPUコアの閾値オーバ回数をゼロにクリアする。そして、これらの変化状況を管理端末に通知して(ステップS2230)処理を終了する。
どのグループにも属していない未割当MPUコアが存在しなかった場合(ステップS2070:Yes)は、未割当MPUコアの利用はできないので、すでに利用されている動的割当のMPUコアのうち、もっとも利用率の低いMPUコアの割当を変えることを考え、当該過負荷モジュールに現在割り当てられているMPUコアと同一のグループNoを持ち、割当方式が「動的」であるMPUコアを検索する(ステップ2090)。検索して見つかった動的割当のMPUコアの負荷状態が、当該過負荷モジュールの使用しているMPUコアの負荷値の2倍よりも大きい場合(ステップS2090:Yes)、すなわち、過負荷プログラムモジュールの処理を2つのMPUコアに負荷分散した際の1つあたりのMPUコア負荷が現在割り当てられている処理の負荷よりも大きい場合、現在割り当てられている処理を終了し、当該動的割当MPUコアの特権レベルを255に変更し、未割当状態にする。(ステップS2210)。その後、当該過負荷モジュールに未割当MPUコアを割当て、MPU管理テーブルTb6の情報を更新し、当該未割当コア欄に動作プログラムモジュール名の登録と、特権レベルの変更を行う。また、過負荷判定されたMPUコアの閾値オーバ回数をゼロにクリアする。そして、これらの変化状況を管理端末に通知して(ステップS2230)処理を終了する。
検索して見つかった動的割当のMPUコアの負荷状態が、当該過負荷モジュールの使用しているMPUコアの負荷値の2倍と同等かそれよりも大きい場合(ステップS2090:No)、当該プログラムモジュールの負荷分散を断念し、管理端末31に高負荷状態であることを通知し、処理を終了する。
なお、図12の説明の冒頭に述べた、各MPUコアの負荷状態監視の際に、負荷閾値を超えたモジュールが存在しない場合(ステップS2010:No)や、存在しても閾値オーバ回数が規定回数未満(ステップ2030:No)だった場合には、負荷分散のためのMPU割当変更処理は不要であると判断し、一定時間待ち(ステップS2200)、間隔を置いた後、負荷状態の監視を繰り返す。
図13を参照して、本実施例に係るディスクアレイ装置のディスクアレイコントローラにおいて、マルチコアCPUの一部MPUコアに障害が発生した際の処理について説明する。マルチコアCPUの内部には、複数のMPUコアが存在するが、物理的に切り離すことができないため、あるMPUコアに物理障害が生じた場合には、CPU全体を交換する必要がある。図13は、この障害対応のため、動作中のプログラムモジュールをフェイルオーバさせるために停止する処理手順を示したフローチャートである。
図13に示すフローチャートは、マルチコアCPU110のうち、ある特定のMPUコア111x(xは整数)に障害が発生した際に実行される。
監視制御プログラムPr1は、あるMPUコア111xに障害が発生したのを検出すると(ステップ3000)、MPUコア割当テーブルTb6を参照してMPUコア111xの割当状況を確認するとともに、状態を「障害」に変更する(ステップS3010)。具体的には、割当済みであるか否かと、割当済みである場合の割当形式について確認する。
障害を発生したMPUコア111xが固定割当で利用されている場合(ステップS3020:Yes)、MPUコア111xは他の処理の監視制御や管理用端末31による運用管理制御を行っているコアであるため、正常なフェイルオーバ処理が行えなくなる可能性がある。そこで、監視制御プログラムPr1は動作可能であれば、管理端末31への障害通知と保守交換用のエラー表示LED125の点灯を試み(ステップS3200)、信号線101を通じて他系のディスクアレイコントローラに障害情報を送信して、処理の引継ぎ依頼を通知する(ステップS3070)。なお、ステップS3200、S3070に示す処理が行えないような重大な障害が発生している場合には、信号線101を介したディスクアレイコントローラ間の定期的な通信が断絶するため、他系のディスクアレイコントローラによってこの障害を検出される。
他系のディスクアレイコントローラは、ステップS3070に示すように処理引継ぎの依頼を受けた場合や、もしくはディスクコントローラ間にある信号線101を介した通信できなくなった場合には、もう一方のディスクアレイコントローラに障害が発生したものと判断し、信号線を介して、障害が発生しているディスクアレイコントローラのマルチコアCPU110にリセット信号を常時印加する。常時リセット信号が印加されていることにより、障害マルチコアCPU110はリセットされ続けるので、それ以上動作することができなくなる。このため、MPUコア111xの誤動作によってデータを破壊してしまうような恐れがなくなる。なお、ここでは常時リセットにより動作を停止させているが、給電の停止など他の手段によってもよい。
障害を発生したMPUコア111xが半固定割り当てで利用されている場合、監視制御プログラムモジュールPr1は、MPUコア割当テーブルTb6を確認し、障害を発生したMPUコア111xと同一のプログラムモジュールが存在しないか検索する(ステップS3300)。
同一のプログラムモジュールが見つかった場合には、監視制御プログラムモジュールPr1は当該プログラムが動作しているMPUコアの割当形式を動的から半固定に変更し(ステップS3310)、その後管理端末に障害を通知して、保守交換用のLEDを点灯させる(ステップS3040)。
次に監視制御プログラムは、MPUコア割当テーブルTb6を参照して、特権レベルの低いプログラムモジュールから順に終了していく(ステップ3050)。
以降ステップS3070〜S3080に処理を進めるが、ステップS3070〜S3080については、既に説明しているため省略する。
一方、障害コアに割り当てられていたプログラムモジュールと同一のモジュールが割当られたMPUコアが存在しない場合には、ステップS3040に処理を進める。
障害を発生したMPUコア111が、固定割当でもなく(ステップS3020:No)、また半固定でもない場合(ステップS3030:No)、すなわち動的で割り当てられている場合には、監視制御プログラムモジュールPr1はステップS3040〜S3080に示す処理を行う。なお、ステップS3040〜S3080の処理については先に説明しているため省略する。
以上の実施例によれば、本発明にかかるディスクアレイ装置は、複数個あるMPUコアを管理テーブルを用いて固定的または半固定的または動的な資源として管理するために、他の障害ですべての処理に影響が生じるような問題を回避することができる。また各MPUコアの負荷状況を監視することで、CPU資源をコア単位で効率よく活用することができる。
また、障害発生時に特権レベルの確認によって動作中のプログラムモジュールの依存関係を考慮しつつフェイルオーバすることが可能であり、マルチコアCPUで生じる特定コアの障害時の対応を行うことが可能である。
以上実施例で説明したが、本発明の他の実施形態1は、前記一の単位プロセッサは、非動的になるように割り当てる制御プログラムのうちの1以上を、非動的になるように割り当てる単位プロセッサとは別の単位プロセッサに動的になるように割り当てるディスクアレイ装置である。
本発明の他の実施形態2は、前記一の単位プロセッサは、非動的になるように割り当てる制御プログラムのうちの1以上を、非動的になるように割り当てる単位プロセッサのみに割り当てるディスクアレイ装置である。
本発明の他の実施形態3は、前記一の単位プロセッサは、非動的になるように制御プログラムを割り当てた単位プロセッサの動作負荷が相対的に高いとき、動的になるように割り当てた制御プログラムの動作負荷が相対的に低い単位プロセッサの処理を終了させ、終了させた単位プロセッサに、前記相対的に動作負荷が高い単位プロセッサに割り当てた制御プログラムを、動的になるように割り当てるディスクアレイ装置である。
本発明の他の実施形態4は、前記一の単位プロセッサは、制御プログラムの動作負荷が相対的に高い単位プロセッサが属するグループ内で、かつ、動的になるように割り当てた制御プログラムの動作負荷が相対的に低い単位プロセッサの処理を終了させ、終了させ単位プロセッサに、前記相対的に動作負荷が高い単位プロセッサに割り当てた制御プログラムを、動的になるように割り当てるディスクアレイ装置である。
本発明の他の実施形態5は、前記一の単位プロセッサは、どのグループにも属さない単位プロセッサに、前記相対的に動作負荷が高い単位プロセッサに割り当てた制御プログラムを、動的になるよう割り当てるとともに、割り当てた単位プロセッサを、前記相対的に動作負荷が高い単位プロセッサが属するグループに属するとするディスクアレイ装置である。
本発明の他の実施形態6は、前記ディスクアレイコントローラは、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載しており、各プロセッサコアはそれぞれ単位プロセッサとなり、一の単位プロセッサは、すべての単位プロセッサを個別に管理し、各々完結した制御プログラムを、すべての単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能とする動的になるように、又は前記CPU全体の動作終了まで動作可能とする非動的になるように割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理し、特定のプロセッサコアに障害が発生した場合に、該プロセッサコアの単位プロセッサに制御プログラムを動的に又は非動的になるように割り当てたか及び制御プログラムの終了順を考慮し、すべての制御プログラムを終了させるディスクアレイ装置である。
本発明の他の実施形態7は、前記一の単位プロセッサは、前記障害が発生したプロセッサコアの単位プロセッサに割り当てた制御プログラムが非動的になるよう割り当てたものであり、かつ、前記制御プログラムを動的になるよう割り当てた別の単位プロセッサがあるとき、前記制御プログラムを、前記別の単位プロセッサに非動的になるよう割り当てたとするディスクアレイ装置である。
本発明の他の実施形態8は、前記一の単位プロセッサは、前記障害が発生したプロセッサコアの単位プロセッサに割り当てた制御プログラムが該単位プロセッサのみに非動的になるように割り当てた制御プログラムであるとき、前記CPU全体の動作を終了させるディスクアレイ装置である。
本発明の他の実施形態9は、前記ディスクアレイコントローラは、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載しており、内部スイッチ、不揮発性メモリコントローラ、揮発性メモリコントローラ、ディスクアレイコントローラ間転送コントローラ、パリティ演算器及びCPU内部キャッシュを有し、前記制御プログラムは、監視制御プログラムモジュール、運用管理プログラムモジュール、RAID制御プログラムモジュール、NAS制御プログラムモジュール、ホストI/O制御プログラムモジュール、ドライブI/O制御プログラムモジュール、初期MPUコア割当管理テーブル、初期閾値管理テーブル、RAID設定管理テーブル、LU設定管理テーブル、及びNASボリューム管理テーブルを備えており、前記一の単位プロセッサは、自己及び他の単位プロセッサの制御プログラムの負荷状態を監視し、負荷閾値及び閾値オーバ回数が規定回数を超えると、同一グループ内の未割当コアを検索し、検出した未割当コアに、前記制御プログラムを割り当てるディスクアレイ装置である。
本発明の他の実施形態10は、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載し、各プロセッサコアはそれぞれ単位プロセッサとなるディスクアレイコントローラを備えるディスクアレイ装置の制御方法であって、すべての単位プロセッサを個別に管理し、各々完結した制御プログラムを、すべての単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能とする動的になるように、又は前記CPU全体の動作終了まで動作可能とする非動的になるように割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理するディスクアレイ装置の制御方法である。
本実施例に係るディスクアレイ装置の概略構成を示す説明図。 本実施例に係るディスクアレイ装置の概観図。 本実施例に係るディスクアレイ装置におけるディスクアレイコントローラの機能的構成を示すブロック図。 本実施例に係るディスクアレイ装置におけるディスクアレイコントローラの概観図。 ディスクアレイコントローラに搭載される複数プロセッサコア(MPUコア)を内蔵したCPU(マルチコアCPU)の機能的構成の一例を示すブロック図。 制御プログラムに含まれる各プログラムモジュール及び管理テーブルを示す説明図。 制御プログラムの初期MPUコア割当管理テーブルの一例を示す図。 制御プログラムの初期閾値管理テーブルの一例を示す図。 MPUコア割当テーブルの一例を示す図。 管理用端末装置31の管理画面32におけるMPUコア利用状況に関する表示画面。 制御プログラムをマルチコアCPUの各MPUコアに割当てる処理手順を示すフローチャート。 監視制御プログラムモジュールが負荷分散制御指示行う際の動作を示すフローチャート。 マルチコアCPUの一部MPUコアに障害が発生した際の障害対応処理を表すフローチャート。
符号の説明
1…ディスクアレイ装置
11、12…ディスクアレイコントローラ
101、102、103…信号線
104、107…電力線
105、106…電源
110…複数MPUコア内蔵CPU(マルチコアCPU)
111…不揮発性メモリ
112…揮発性メモリ
113…ホスト側接続ポート
114…ドライブ側接続ポート
115…管理用ネットワーク用物理ポート
116…ブートROM
117…制御プログラム配置領域
118…データバッファ領域
119…制御プログラム
1110〜111N…MPUコア
1120…CPU内部スイッチ
1130…不揮発性メモリコントローラ
1140…ディスクアレイコントローラ間転送コントローラ
1150…パリティ演算器
1160…CPU内部キャッシュ
1170…揮発性メモリコントローラ
120…信号線
122…接続コネクタ
123…ホスト側接続口
124…管理用ネットワーク接続口
125…エラーLED
130、131、132…接続インターフェース
D00〜D2N…ディスク装置
E00〜E80…ディスク筐体
20、21、22…ホスト
30…管理用ネットワーク
31…管理用端末装置
32…管理画面
40…ストレージネットワーク
Pr1…監視制御プログラムモジュール
Pr2…運用管理プログラムモジュール
Pr3…RAID制御プログラムモジュール
Pr4…NAS制御プログラムモジュール
Pr5…ホストI/O制御プログラムモジュール
Pr6…ドライブI/O制御プログラムモジュール
Tb1…初期MPUコア割当管理テーブル
Tb2…初期閾値管理テーブル
Tb3…RAID設定管理テーブル
Tb4…LU設定管理テーブル
Tb5…NASボリューム管理テーブル
Tb6…MPUコア管理テーブル

Claims (11)

  1. ディスクアレイコントローラを備えるディスクアレイ装置であって、
    前記ディスクアレイコントローラは、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載しており、各プロセッサコアはそれぞれ単位プロセッサとなり、一の単位プロセッサは、自己及び他の単位プロセッサを個別に管理し、各々完結した制御プログラムを、自己又は他の単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能とする動的になるように、又は前記CPU全体の動作終了まで動作可能とする非動的になるように割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理することを特徴とするディスクアレイ装置。
  2. 請求項1に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、非動的になるように割り当てる制御プログラムのうちの1以上を、非動的になるように割り当てる単位プロセッサとは別の単位プロセッサに動的になるように割り当てることを特徴とするディスクアレイ装置。
  3. 請求項1に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、非動的になるように割り当てる制御プログラムのうちの1以上を、非動的になるように割り当てる単位プロセッサのみに割り当てることを特徴とするディスクアレイ装置。
  4. 請求項1に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、非動的になるように制御プログラムを割り当てた単位プロセッサの動作負荷が相対的に高いとき、動的になるように割り当てた制御プログラムの動作負荷が相対的に低い単位プロセッサの処理を終了させ、終了させた単位プロセッサに、前記相対的に動作負荷が高い単位プロセッサに割り当てた制御プログラムを、動的になるように割り当てることを特徴とするディスクアレイ装置。
  5. 請求項4に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、制御プログラムの動作負荷が相対的に高い単位プロセッサが属するグループ内で、かつ、動的になるように割り当てた制御プログラムの動作負荷が相対的に低い単位プロセッサの処理を終了させ、終了させ単位プロセッサに、前記相対的に動作負荷が高い単位プロセッサに割り当てた制御プログラムを、動的になるように割り当てることを特徴とするディスクアレイ装置。
  6. 請求項4に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、どのグループにも属さない単位プロセッサに、前記相対的に動作負荷が高い単位プロセッサに割り当てた制御プログラムを、動的になるよう割り当てるとともに、割り当てた単位プロセッサを、前記相対的に動作負荷が高い単位プロセッサが属するグループに属するとすることを特徴とするディスクアレイ装置。
  7. ディスクアレイコントローラを備えるディスクアレイ装置であって、
    前記ディスクアレイコントローラは、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載しており、各プロセッサコアはそれぞれ単位プロセッサとなり、一の単位プロセッサは、すべての単位プロセッサを個別に管理し、各々完結した制御プログラムを、すべての単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能とする動的になるように、又は前記CPU全体の動作終了まで動作可能とする非動的になるように割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理し、特定のプロセッサコアに障害が発生した場合に、該プロセッサコアの単位プロセッサに制御プログラムを動的に又は非動的になるように割り当てたか及び制御プログラムの終了順を考慮し、すべての制御プログラムを終了させることを特徴とするディスクアレイ装置。
  8. 請求項7に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、前記障害が発生したプロセッサコアの単位プロセッサに割り当てた制御プログラムが非動的になるよう割り当てたものであり、かつ、前記制御プログラムを動的になるよう割り当てた別の単位プロセッサがあるとき、前記制御プログラムを、前記別の単位プロセッサに非動的になるよう割り当てたとすることを特徴とするディスクアレイ装置。
  9. 請求項7に記載のディスクアレイ装置において、
    前記一の単位プロセッサは、前記障害が発生したプロセッサコアの単位プロセッサに割り当てた制御プログラムが該単位プロセッサのみに非動的になるように割り当てた制御プログラムであるとき、前記CPU全体の動作を終了させることを特徴とするディスクアレイ装置。
  10. 請求項1に記載のディスクアレイ装置において、
    前記ディスクアレイコントローラは、物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載しており、内部スイッチ、不揮発性メモリコントローラ、揮発性メモリコントローラ、ディスクアレイコントローラ間転送コントローラ、パリティ演算器及びCPU内部キャッシュを有し、前記制御プログラムは、監視制御プログラムモジュール、運用管理プログラムモジュール、RAID制御プログラムモジュール、NAS制御プログラムモジュール、ホストI/O制御プログラムモジュール、ドライブI/O制御プログラムモジュール、初期MPUコア割当管理テーブル、初期閾値管理テーブル、RAID設定管理テーブル、LU設定管理テーブル、及びNASボリューム管理テーブルを備えており、前記一の単位プロセッサは、自己及び他の単位プロセッサの制御プログラムの負荷状態を監視し、負荷閾値及び閾値オーバ回数が規定回数を超えると、同一グループ内の未割当コアを検索し、検出した未割当コアに、前記制御プログラムを割り当てることを特徴とするディスクアレイ装置。
  11. 物理的に分離不可能な複数個のプロセッサコアを内蔵したCPUを搭載し、各プロセッサコアはそれぞれ単位プロセッサとなるディスクアレイコントローラを備えるディスクアレイ装置の制御方法であって、
    すべての単位プロセッサを個別に管理し、各々完結した制御プログラムを、すべての単位プロセッサにプロセッサ単位で割当てる際に、適宜動作終了可能とする動的になるように、又は前記CPU全体の動作終了まで動作可能とする非動的になるように割り当て、割り当てた制御プログラムの動作負荷又は動作状態を単位プロセッサごとに管理することを特徴とするディスクアレイ装置の制御方法。
JP2005097505A 2005-03-30 2005-03-30 ディスクアレイ装置およびその制御方法 Expired - Fee Related JP4969791B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005097505A JP4969791B2 (ja) 2005-03-30 2005-03-30 ディスクアレイ装置およびその制御方法
US11/134,447 US7617360B2 (en) 2005-03-30 2005-05-23 Disk array apparatus and method of controlling the same by a disk array controller having a plurality of processor cores
EP05256332A EP1708077A1 (en) 2005-03-30 2005-10-12 Disk array apparatus and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005097505A JP4969791B2 (ja) 2005-03-30 2005-03-30 ディスクアレイ装置およびその制御方法

Publications (2)

Publication Number Publication Date
JP2006277487A true JP2006277487A (ja) 2006-10-12
JP4969791B2 JP4969791B2 (ja) 2012-07-04

Family

ID=35601911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005097505A Expired - Fee Related JP4969791B2 (ja) 2005-03-30 2005-03-30 ディスクアレイ装置およびその制御方法

Country Status (3)

Country Link
US (1) US7617360B2 (ja)
EP (1) EP1708077A1 (ja)
JP (1) JP4969791B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008257572A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法
JP2009009194A (ja) * 2007-06-26 2009-01-15 Hitachi Ltd 消費電力を削減する機能を備えたストレージシステム
JP2012504796A (ja) * 2009-01-09 2012-02-23 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
JP2012514776A (ja) * 2009-06-18 2012-06-28 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP2012523024A (ja) * 2009-09-01 2012-09-27 株式会社日立製作所 マルチコアプロセッサを有する要求処理システム
JP2013515292A (ja) * 2010-06-17 2013-05-02 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321985B2 (en) * 2004-02-26 2008-01-22 International Business Machines Corporation Method for achieving higher availability of computer PCI adapters
WO2007113346A1 (es) * 2006-03-31 2007-10-11 Intel Corporation Deteccion de errores transitorios mediante nueva ejecucion selectiva
US7761540B2 (en) * 2006-10-17 2010-07-20 Dell Products L.P. System and method for automated remote booting in a serial attached SCSI environment
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
JP2010066785A (ja) * 2006-12-08 2010-03-25 Nec Corp 半導体集積回路、半導体集積回路制御装置、負荷分散方法、負荷分散プログラムおよび電子装置
US8490103B1 (en) * 2007-04-30 2013-07-16 Hewlett-Packard Development Company, L.P. Allocating computer processes to processor cores as a function of process utilizations
JP5080140B2 (ja) * 2007-06-13 2012-11-21 株式会社日立製作所 I/oデバイス切り替え方法
US8365184B2 (en) * 2007-08-31 2013-01-29 Apple Inc. Multi-core resource utilization planning
DE102007055613B4 (de) * 2007-11-20 2013-11-14 Phoenix Contact Gmbh & Co. Kg Automatisierungssystem zum Kennzeichnen eines Kanals innerhalb eines Busteilnehmers
US8365172B2 (en) * 2008-05-07 2013-01-29 International Business Machines Corporation Horizontal scaling of stream processing
US8650328B1 (en) * 2008-12-15 2014-02-11 American Megatrends, Inc. Bi-directional communication between redundant storage controllers
US9274851B2 (en) 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8769155B2 (en) * 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
US8503289B2 (en) 2010-03-19 2013-08-06 Brocade Communications Systems, Inc. Synchronizing multicast information for linecards
US8457806B2 (en) * 2010-05-28 2013-06-04 Hewlett-Packard Development Company, L.P. Managing an infrastructure having a 3D package and cooling resource actuators
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US8495418B2 (en) * 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
JP5234374B2 (ja) * 2011-03-02 2013-07-10 日本電気株式会社 差動信号伝送回路、ディスクアレイコントローラ及び差動信号伝送ケーブル
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
WO2014081414A1 (en) * 2012-11-20 2014-05-30 Empire Technology Development Llc Multi-element solid-state storage device management
US9197546B2 (en) * 2013-08-06 2015-11-24 Oracle International Corporation System and method for providing a messaging cluster with hybrid partitions
WO2015056332A1 (ja) * 2013-10-17 2015-04-23 株式会社日立製作所 ストレージ装置及び制御方法
US9436564B1 (en) * 2014-03-31 2016-09-06 Emc Corporation Creating distributed storage during partitions
US9582388B2 (en) * 2014-10-03 2017-02-28 Globalfoundries Inc. Dynamic multi-purpose external access points connected to core interfaces within a system on chip (SOC)
SG10201406338XA (en) * 2014-10-03 2016-05-30 Agency Science Tech & Res Active storage devices
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
CN109426598B (zh) * 2017-09-05 2021-10-26 深圳中电长城信息安全系统有限公司 一种硬盘状态指示灯控制方法及装置
US11687363B2 (en) * 2019-07-15 2023-06-27 Micron Technology, Inc. Internal management traffic regulation for memory sub-systems

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02238556A (ja) * 1989-03-13 1990-09-20 Hitachi Ltd プロセススケジューリング方式およびマルチプロセッサシステム
JPH04235662A (ja) * 1991-01-11 1992-08-24 Nec Corp マルチプロセッサ間の負荷分散方式
JPH09265435A (ja) * 1996-03-27 1997-10-07 Hitachi Ltd 記憶装置システム
JPH09274608A (ja) * 1996-04-04 1997-10-21 Hitachi Ltd マルチプロセッサシステムにおけるプロセッサ間の負荷配分制御方法
JPH1153327A (ja) * 1997-08-01 1999-02-26 Nec Yonezawa Ltd マルチプロセッサシステム
JPH11316726A (ja) * 1998-05-01 1999-11-16 Nec Corp 複数プロセスからなる通信処理システムにおける端末接続制御方法及び方式
JP2000148709A (ja) * 1998-11-09 2000-05-30 Nec Mobile Commun Ltd マルチcpu構成システムおよびシステム再構成方法
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003208362A (ja) * 2002-01-16 2003-07-25 Hitachi Ltd 記憶装置システム
JP2005099984A (ja) * 2003-09-24 2005-04-14 Toshiba Corp オンチップマルチコア型耐タンパプロセッサ
JP2005266841A (ja) * 2004-03-16 2005-09-29 Hitachi Ltd 専用プロセッサの備わった計算機システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
JPH0635871A (ja) 1992-07-21 1994-02-10 Hitachi Ltd マルチプロセッサシステム
ES2149794T3 (es) * 1993-09-24 2000-11-16 Siemens Ag Procedimiento para compensar la carga en un sistema multiprocesador.
JPH09160889A (ja) 1995-12-11 1997-06-20 Hitachi Ltd マルチプロセッサシステムの制御方法
JP3224782B2 (ja) * 1998-08-03 2001-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理分担動的変更方法及びコンピュータ
US6658449B1 (en) * 2000-02-17 2003-12-02 International Business Machines Corporation Apparatus and method for periodic load balancing in a multiple run queue system
WO2005069155A2 (en) * 2004-01-08 2005-07-28 Koninklijke Philips Electronics, N.V. Method and apparatus for task schedulin in a multi-processor system based on memory requirements

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02238556A (ja) * 1989-03-13 1990-09-20 Hitachi Ltd プロセススケジューリング方式およびマルチプロセッサシステム
JPH04235662A (ja) * 1991-01-11 1992-08-24 Nec Corp マルチプロセッサ間の負荷分散方式
JPH09265435A (ja) * 1996-03-27 1997-10-07 Hitachi Ltd 記憶装置システム
JPH09274608A (ja) * 1996-04-04 1997-10-21 Hitachi Ltd マルチプロセッサシステムにおけるプロセッサ間の負荷配分制御方法
JPH1153327A (ja) * 1997-08-01 1999-02-26 Nec Yonezawa Ltd マルチプロセッサシステム
JPH11316726A (ja) * 1998-05-01 1999-11-16 Nec Corp 複数プロセスからなる通信処理システムにおける端末接続制御方法及び方式
JP2000148709A (ja) * 1998-11-09 2000-05-30 Nec Mobile Commun Ltd マルチcpu構成システムおよびシステム再構成方法
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003208362A (ja) * 2002-01-16 2003-07-25 Hitachi Ltd 記憶装置システム
JP2005099984A (ja) * 2003-09-24 2005-04-14 Toshiba Corp オンチップマルチコア型耐タンパプロセッサ
JP2005266841A (ja) * 2004-03-16 2005-09-29 Hitachi Ltd 専用プロセッサの備わった計算機システム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008257572A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法
JP2009009194A (ja) * 2007-06-26 2009-01-15 Hitachi Ltd 消費電力を削減する機能を備えたストレージシステム
JP2012504796A (ja) * 2009-01-09 2012-02-23 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
JP2012514776A (ja) * 2009-06-18 2012-06-28 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP2012523024A (ja) * 2009-09-01 2012-09-27 株式会社日立製作所 マルチコアプロセッサを有する要求処理システム
JP2013515292A (ja) * 2010-06-17 2013-05-02 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
US8713288B2 (en) 2010-06-17 2014-04-29 Hitachi, Ltd. Storage system comprising multiple microprocessors and method for sharing processing in this storage system

Also Published As

Publication number Publication date
US7617360B2 (en) 2009-11-10
JP4969791B2 (ja) 2012-07-04
US20060224826A1 (en) 2006-10-05
EP1708077A1 (en) 2006-10-04

Similar Documents

Publication Publication Date Title
JP4969791B2 (ja) ディスクアレイ装置およびその制御方法
US9606745B2 (en) Storage system and method for allocating resource
US10496504B2 (en) Failover handling in modular switched fabric for data storage systems
US9710168B2 (en) Storage system
EP3158455B1 (en) Modular switched fabric for data storage systems
JP5332000B2 (ja) 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
US8521978B2 (en) Storage apparatus and method for controlling storage apparatus
US20140006676A1 (en) Systems and methods for dynamic allocation of information handling resources
JP2007280089A (ja) 容量拡張ボリュームの移行方法
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
WO2014174570A1 (ja) ストレージ管理計算機、ストレージ管理方法、およびストレージシステム
WO2015114816A1 (ja) 管理計算機および管理プログラム
JP2006227856A (ja) アクセス制御装置及びそれに搭載されるインターフェース
US20130151885A1 (en) Computer management apparatus, computer management system and computer system
US8214587B2 (en) Storage apparatus and method for controlling storage apparatus
WO2019043815A1 (ja) ストレージシステム
JP5314737B2 (ja) ストレージシステム及びその制御方法
US11971771B2 (en) Peer storage device messaging for power management
CN102132245A (zh) 具有执行格式化或粉碎功能的存储系统
US10209888B2 (en) Computer and optimization method
JP5856665B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110921

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

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

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

Free format text: PAYMENT UNTIL: 20150413

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