JP5393893B2 - 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法 - Google Patents

複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法 Download PDF

Info

Publication number
JP5393893B2
JP5393893B2 JP2012528968A JP2012528968A JP5393893B2 JP 5393893 B2 JP5393893 B2 JP 5393893B2 JP 2012528968 A JP2012528968 A JP 2012528968A JP 2012528968 A JP2012528968 A JP 2012528968A JP 5393893 B2 JP5393893 B2 JP 5393893B2
Authority
JP
Japan
Prior art keywords
processing
mode
upper limit
limit value
asynchronous
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
JP2012528968A
Other languages
English (en)
Other versions
JP2013515292A (ja
Inventor
朋宏 吉原
晋太郎 工藤
紀夫 下薗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2013515292A publication Critical patent/JP2013515292A/ja
Application granted granted Critical
Publication of JP5393893B2 publication Critical patent/JP5393893B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/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/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]

Description

本発明は、複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法に関する。
ストレージシステムは、一般に、複数のストレージデバイスと、外部デバイス(例えばホストコンピュータ)からI/O(Input/Output)要求を受け付けるコントローラと、を備える。コントローラの構成としては、例えば特許文献1に開示されている。
特開2005−044010号公報
コントローラは、例えば、外部デバイスから受信したI/O要求がリード要求であれば、ストレージデバイスからキャッシュメモリ(CM)にデータを転送する処理(ストレージデバイスリード処理)と、CM上のデータを読み出して外部デバイスへ転送させる処理(CMリード処理)、またはCMリード処理のみを実行する。
また、コントローラは、例えば、外部デバイスから受けたI/O要求がライト要求であれば、外部デバイスから受信したデータをCMへ転送する処理(CMライト処理)と、CMからストレージデバイスへデータを転送させる処理(ストレージデバイスライト処理)とを実行する。
コントローラの有する複数のマイクロプロセッサは、同期処理及び非同期処理を実行することができる。「同期処理」とは、外部デバイスからのI/O要求の受付時からそのI/O要求へのレスポンスを外部デバイスへ返すまでの間に実行しなければならない処理である。同期処理としては、例えば、前述したストレージデバイスリード処理、CMリード処理、CMライト処理を実行させる処理などである。一方、「非同期処理」とは、同期処理以外の処理を意味し、例えば、前述したストレージデバイスライト処理を実行させる処理である。
もしもマイクロプロセッサが長時間を費やして非同期処理を実行すると、その分だけ同期処理の実行が遅れてしまうため、外部デバイスへのレスポンスが遅くなる。これに対し、同期処理を優先すれば、外部デバイスへのレスポンスを早めることができる。しかし、その場合、非同期処理の実行が遅れるため、ストレージデバイスに書き込まれていないデータがCM上に多量に蓄積されて、CMの空き容量が少なくなる。CMの空き容量が少なくなると、外部デバイスからのI/O要求を処理するためのキャッシュ領域を十分に確保することができなくなり、ストレージデバイスライト処理によりCMの空き容量が増えることを待つ必要が生じるため、却って同期処理のレスポンスが悪化する。
そこで、本発明の目的は、各マイクロプロセッサにおいて同期処理と非同期処理とをそれぞれ適切に実行させることにより、各マイクロプロセッサを有効に活用することができる、複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法を提供することにある。本発明の他の目的は、後述する実施例の記載から明らかになるであろう。
上記課題を解決すべく、本発明のストレージシステムでは、コントローラが有するマイクロプロセッサは、予め設定される上限値まで同期処理を実行することができ、かつ、同期処理を実行していない場合に非同期処理を実行することができる。
図1は、ストレージシステムを含むコンピュータシステムの図。 図2は、各マイクロプロセッサが使用する各種情報の構成図。 図3は、管理コンソールの構成図。 図4は、マイクロプロセッサ稼働率を管理するテーブル。 図5は、キャッシュダーティ率を管理するテーブル。 図6は、実行回数の上限値を各モード毎に調整するためのテーブル。 図7は、同期処理と非同期処理の、実行回数を管理するテーブル。 図8は、周期的に実行される処理を管理するテーブル。 図9は、同期処理と非同期処理の、実行回数の上限値を設定し直すための閾値を管理するテーブル。 図10は、同期処理を管理するテーブル。 図11は、非同期処理を管理するテーブル。 図12は、全体処理を示すフローチャート。 図13は、ホストインタフェース処理を示すフローチャート。 図14は、ディスクインタフェース処理を示すフローチャート。 図15は、実行回数の上限値を見直す処理を示すフローチャート。 図16は、読出しを要求されたホストデータを、キャッシュメモリから読み出す処理のフローチャート。 図17は、図16に続く処理のフローチャート。 図18は、図17に続く処理のフローチャート。 図19は、書込みを要求されたホストデータを、キャッシュメモリに書き込む処理を示すフローチャート。 図20は、図19に続く処理のフローチャート。 図21は、図20に続く処理のフローチャート。 図22は、ストレージデバイスからデータを読み出す処理を示すフローチャート。 図23は、図22に続く処理のフローチャート。 図24は、ホストデータをストレージデバイスに書き込む処理を示すフローチャート。 図25は、図24に続く処理のフローチャート。 図26は、管理コンソールから実行回数の上限または閾値を設定する処理を示すフローチャート。 図27は、管理コンソールにより提供される管理画面の例。 図28は、第2実施例に係るストレージシステムで使用されるテーブルの構成例。 図29は、第3実施例に係るストレージシステムの各マイクロプロセッサが使用する各種情報の構成図。 図30は、マイクロプロセッサに設定される情報を管理するテーブル。 図31は、I/O処理のフローチャート。 図32は、ホストインタフェースを担当するマイクロプロセッサによる処理を示すフローチャート。 図33は、ディスクインタフェースを担当するマイクロプロセッサによる処理を示すフローチャート。 図34は、マイクロプロセッサの属性を切り換えるための処理を示すフローチャート。 図35は、マイクロプロセッサの稼働状況を模式的に示す図。 図36は、第4実施例に係るストレージシステムで使用される、マイクロプロセッサに設定される情報を管理するためのテーブル。 図37は、I/O処理のフローチャート。 図38は、同期処理のフローチャート。 図39は、非同期処理のフローチャート。 図40は、マイクロプロセッサの属性を切り換える処理を示すフローチャート。 図41は、第5実施例に係るストレージシステムを含むコンピュータシステムの全体図。 図42は、第6実施例に係るストレージシステムで実行される、ホストデータをストレージデバイスから読み出す処理を示すフローチャート。
以下、図面に基づいて、本発明の実施の形態を説明する。本発明は、後述のように、複数の論理ボリュームを提供可能な複数のストレージデバイスと、複数の論理ボリュームのうちいずれかを指定した入出力要求を外部デバイスから受け付けて処理するコントローラと、を備えたストレージシステムに関する。コントローラは、外部デバイスと通信するための少なくとも一つの第1インタフェースと、各ストレージデバイスと通信するための少なくとも一つの第2インタフェースと、各第1インタフェース及び各第2インタフェースにそれぞれ接続されるメモリと、各第1インタフェースと各第2インタフェース及びメモリにそれぞれ接続される、複数のマイクロプロセッサとを含んでいる。各マイクロプロセッサは、外部デバイスからの入出力要求が実行契機となる同期処理と、同期処理以外の非同期処理とを実行することができる。各マイクロプロセッサは、予め設定される上限値まで同期処理を実行することができ、かつ、同期処理を実行していない場合に非同期処理を実行することができる。
なお、以下に述べる実施例の記載は、本発明の範囲を限定するものではない。実施例で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の第1実施例に係るストレージシステムを含むコンピュータシステムを示す。以下の説明では、インタフェースを「I/F」と略記することがある。
コンピュータシステムは、一つ以上のホストコンピュータ180と、ストレージシステム10と、管理コンソール20とを有する。ホストコンピュータ180とストレージシステム10との間の通信は、例えば、通信ネットワーク190を介して行われる。
通信ネットワーク190としては、例えば、SAN(Storage Area Network)、LAN(Local Area Network)、インターネット、専用回線、公衆回線等のように、データ通信を行うことのできるネットワークであればよい。ホストコンピュータ180とストレージシステム10との間の通信のプロトコルとしては、例えば、ファイバチャネルプロトコルまたはTCP/IPプロトコル等の、データの送受信が可能な種々のプロトコルのうちの任意のプロトコルを採用可能である。
ホストコンピュータ180がいわゆるメインフレームの場合、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルを使用できる。
管理コンソール20は、ストレージシステム10を管理するためのコンピュータであり、ユーザにより操作される。
ホストコンピュータ180は、ストレージシステム10にI/O要求を送信する。I/O要求とは、例えば、リード要求またはライト要求である。リード要求には、例えば、リード対象データの読出し元に対応したLUN(Logical Unit Number)及びLBA(Logical Block Address)が含まれる。ライト要求には、例えば、ライト対象データの書込み先に対応したLUN及びLBAと、ライト対象データとが含まれる。LUNは、ストレージシステム10内の論理ボリューム171に割り当てられている。LBAは、論理ボリューム171内の記憶領域(ブロック)のアドレスである。
以下の説明では、リード対象データをリードデータと、ライト対象データをライトデータと呼ぶ場合がある。さらに、リード対象データとライト対象データとを、ホストデータと呼ぶ場合がある。
ストレージシステム10は、複数のHDD(Hard Disk Drive)170と、コントローラ100とを備える。コントローラ100は、ホストコンピュータ180からI/O要求を受け付けて、いずれかのストレージデバイス170にアクセスし、I/O要求の処理結果をホストコンピュータ180に返す。
HDD170は、ストレージデバイスの一例である。ストレージデバイスは、ハードディスクドライブに限定されない。例えば、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを、ストレージデバイスとして利用可能である。
複数のHDD170の有する物理的記憶領域に基づいて、複数の論理ボリューム171を形成することができる。具体的には、二以上のHDD170により、RAID(Redundant Array of Independent (or Inexpensive) Disks)グループが生成される。各RAIDグループの有する物理的記憶領域を用いて、一つまたは複数の論理ボリューム171が設定される。図1では、一つの論理ボリューム171を示すが、ストレージシステム10は、通常の場合、多数のRAIDグループ及び多数の論理ボリューム171を備えている。
論理ボリューム171には、LUNが割り当てられ、ホストコンピュータ180に提供される。コントローラ100は、I/O要求により指定されたLUNに対応した論理ボリュームを特定し、その論理ボリュームの基になっているHDD170にアクセスしてデータを読み書きする。
Thin Provisioning技術等では、論理ボリュームがプールボリュームであり、LUNは割り当てられていない。その場合、LUNは、仮想的に設けられる論理ボリュームに割り当てられる。コントローラ100は、仮想的な論理ボリュームへのI/O要求を受け付けると、仮想的な論理ボリューム内のアクセス先に対応するプールボリュームにアクセスして、データを読み書きする。
コントローラ100は、例えば、一つ以上のホストI/F部としての一つ以上のFEPK(FrontEnd PacKage)110と、一つ以上の制御部としての一つ以上のMPPK(Micro Processor PacKage)120と、一つ以上の共有メモリ部としての一つ以上のCMPK(Cache Memory PacKage)130と、一つ以上のディスクI/F部としての一つ以上のBEPK(BackEnd PacKage)140とを有する。
各FEPK110、各MPPK120、各CMPK130及び各BEPK140は、内部ネットワーク150に接続されている。内部ネットワーク150は、例えば、LAN等の通信ネットワークであっても良いし、または、クロスバスイッチ等のスイッチデバイスであっても良い。各MPPK120の各MP(Micro Processor)121は、内部ネットワーク150を介して、各FEPK110、各CMPK130、各BEPK140と通信可能に接続されている。
FEPK110は、ホストコンピュータ180と通信するためのインタフェース装置であり、ホストI/F111と、転送制御回路112とを有する。各ホストI/F111は、例えば、通信ポートである。転送制御回路112は、ホストI/F111で受け付けたI/O要求またはデータ等の転送を制御する回路である。
BEPK140は、HDD170と通信するためのインタフェース装置であり、ディスクI/F141と、転送制御回路142とを有する。ディスクI/F141は、例えば、通信ポートである。BEPK140は、各HDD170に接続されていると共に、内部ネットワーク150とも接続されている。BEPK140は、内部ネットワーク150側とHDD170との間における、リード対象データまたはライト対象データの受け渡し処理を仲介する。転送制御回路142は、データ転送を制御する回路である。
CMPK130は、キャッシュメモリ(以下、「CM」と略す)131と制御メモリ132を有する。CM131と制御メモリ132は、DRAM(Dynamic Random Access Memory)等の揮発メモリから構成されてもよい。
CM131には、HDD170に書き込むデータ(ライト対象データ)が一時的に格納される。また、CM131には、HDD170から読み出されたデータ(リード対象データ)が一時的に格納される。
制御メモリ132は、同期処理及び非同期処理等の処理に必要な各種の制御情報を記憶する。制御情報として、例えば、HDD構成情報、ボリューム管理情報を挙げることができる。HDD構成情報は、どのRAIDグループがどのHDD170で構成されているか等を管理する情報である。ボリューム管理情報とは、どの論理ボリュームがどのような機能に対応しているか等を管理する情報である。
MPPK120は、ストレージシステム10の動作を制御する。MPPK120は、複数のMP121と、ローカルメモリ(LM)122と、各MP121とLM122とを接続するためのバス123とを有する。
なお、本実施例では、複数のMPPK120が複数のMP121を有する場合を示すが、これに限らず、複数のMPPK120がそれぞれ一つずつのMP121を有する構成でもよい。
LM122には、制御メモリ132に記憶されている制御情報の一部または全部が、コピーされている。制御情報の一部とは、制御情報のうち、その一部を記憶するLM122を有するMPPK120にとって必要な部分である。
図2は、MPPK120のLM122に格納されている各種情報(テーブル、キュー)を示す。LM122には、例えば、MP稼働率テーブル210と、キャッシュダーティ率テーブル220と、実行回数上限チューニングテーブル230と、実行回数上限テーブル240と、周期管理テーブル250と、実行数上限設定閾値テーブル260と、同期処理テーブル270と、非同期処理テーブル280と、ホストI/F同期処理キュー410と、ディスクI/F同期処理キュー420と、ディスクI/F非同期処理キュー430とが格納される。MP稼働率テーブル210は、MPPK内の各MP毎、またはMPPK内に一つのみ存在する。
各テーブル210−270については後述する。ホストI/F同期処理キュー410は、ホストI/F111に関連する同期処理要求を管理するためのキューである。同期処理としては、ホストコンピュータ180の要求するリード対象データをCM131から読み出して、ホストコンピュータ180に転送させる処理(ホストデータCMリード処理)と、ホストコンピュータ180から受信したライト対象データをCM131に記憶させる処理(ホストデータCMライト処理)とを、挙げることができる。
ディスクI/F同期処理キュー420は、ディスクI/F141に関連する同期処理要求を管理するためのキューである。ディスクI/F141に関連する同期処理としては、例えば、ホストコンピュータ180から読出しを要求されたリード対象データを、読み出し元の論理ボリューム171に対応するストレージデバイス170から読み出す処理(ホストデータHDDリード処理)を挙げることができる。
ディスクI/F非同期処理キュー430は、ディスクI/F141に関連する非同期処理要求を管理するためのキューである。ディスクI/F141に関連する非同期処理としては、例えば、ホストコンピュータ180から受信したライト対象データを、書込先の論理ボリューム171に対応するストレージデバイス170に書き込む処理(ホストデータHDDライト処理)を挙げることができる。
なお、図示を省略するが、LM122には、各MP121で実行される一つ以上のコンピュータプログラムを格納可能である。各MP121は、コンピュータプログラムを読み込んで実行することにより、後述のフローチャートに示される機能を実現する。例えば、図12−図26の各フローチャートに対応するコンピュータプログラム及びオペレーティングシステム等を、LM122に記憶させることができる。
なお、図2に示すテーブル及びキュー以外の、他のテーブル及び他のキューをLM122に記憶させることもできる。例えば、リモートコピーを管理するためのテーブル、障害発生時の処理要求を管理するためのキュー等をLM122に記憶させてもよい。
図3は、管理コンソール20の構成を示す。ユーザは、管理コンソール20を介して、ストレージシステム10の稼働状況等を確認することができる。さらに、ユーザは、管理コンソール20を介して、各種テーブルの設定値を変更することができる。管理コンソール20は、例えば、通信I/F21と、入力I/F22と、表示I/F23と、メモリ24と、HDD25と、CPU(Central Processing Unit)26とが、バス27を介して接続されている。
メモリ24は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)を有し、ブートプログラムと各種処理を実行するプログラムとを記憶する。メモリ24には、CPU26により使用される作業領域を設けることもできる。
HDD25は、管理コンソール20に電源が入っていない場合でも保持しておく必要があるプログラム及び各種情報を記憶する。
入力I/F22には、管理コンソール20のユーザ(管理者)による操作を受け付けるための入力部28が接続されている。入力部28としては、例えば、マウスのようなポインティングデバイス、タッチパネル、キーボードスイッチ、音声入力装置等を挙げることができる。入力I/F22は、入力部28からの信号をデータに変換し、CPU26に出力する。
表示I/F23には、表示部29が接続されている。表示部29としては、例えば、液晶ディスプレイ、プラズマディスプレイ、CRT(Cathode Ray Tube)、プリンタ、音声出力装置等を挙げることができる。表示I/F23は、例えば、VRAM(Video Random Access Memory)を有する。CPU26は、表示させる画像に応じた画像データを生成し、表示部29に画面を表示出力させる。
通信I/F21は、ストレージシステム10の内部ネットワーク150に接続されており、CPU26と、内部ネットワーク150に接続されたストレージシステム10の各部(例えば、各MPPK120の各MP121)とのデータ交換を仲介する。
CPU26は、各部21〜25の動作を制御する。また、CPU26は、メモリ24、または/及び、HDD25に格納されているプログラムをメモリ24の有するRAMに読み出して実行する。
図4は、各MP121の稼働率を管理するためのテーブル210を示す。MP稼働率テーブル210は、種別フィールド211と、稼働率フィールド212とを有する。種別フィールド211には、稼働率の種別を示す値が設定される。稼働率の種別としては、全MPの稼働率の平均値Umpaを示す「全体」と、ホストI/F111に関する処理を担当しているMPの稼働率の平均値Umphを示す「ホストI/F」と、ディスクI/F141に関する処理を担当しているMPの稼働率の平均値Umpdを示す「ディスクI/F」とがある。稼働率フィールド212は、各種別毎の稼働率の当該MPPK120に属する各MP毎の稼働率を記憶する。稼働率フィールド212は各MP毎の稼働率ではなく、当該MPPK120に属する各MP毎の稼働率の平均値でも良い。
図5は、キャッシュダーティ率を管理するためのテーブル220を示す。キャッシュダーティ率テーブル220は、キャッシュダーティ率Cdを記憶するためのフィールド221を有する。
キャッシュダーティ率とは、CM131に記憶されているダーティデータの割合であり、キャッシュダーティ率が大きいほどダーティデータが溜まっていることを示す。ダーティデータとは、CM131にのみ格納されており、HDD170に書き込まれていない状態のデータである。ダーティデータがHDD170に書き込まれると、そのデータは、ダーティ状態からクリーン状態に変化する。クリーン状態のデータは、CM121とHDD170の両方に書き込まれている。従って、クリーン状態のデータが記憶されているCM121の領域を解放して、その領域を未使用状態に戻し、その未使用状態の領域に新たなデータを記憶させることができる。
図6は、実行回数の上限をチューニングするためのテーブル230を示す。実行回数上限チューニングテーブル230は、例えば、設定種別フィールド231と、ホストI/F処理実行回数フィールド232と、ディスクI/F処理実行回数フィールド233とを備える。
設定種別フィールド231は、実行回数の設定種別を記憶する。設定種別としては、ホストI/F111に関する処理を優先して実行する「ホストI/F優先」と、ディスクI/F141に関する処理を優先して実行する「ディスクI/F優先」と、ホストI/F111に関する処理とディスクI/F141に関する処理とを同等に実行する「同等」とがある。以下、ホストI/F優先モード、ディスクI/F優先モード、同等モード(または両I/F同等モード)と呼ぶ場合がある。
ホストI/F処理実行回数フィールド232は、ホストI/F111に関する処理の実行回数の上限値ULNehを、各設定種別毎に記憶する。ディスクI/F処理実行回数フィールド233は、ディスクI/F141に関する処理の実行回数の上限値ULNedを、各設定種別毎に記憶する。
「ホストI/F優先」の場合、ホストI/F処理の実行回数の上限値ULNeh1は、ディスクI/F処理の実行回数の上限値ULNed1よりも大きく設定されている(ULNeh1>ULNed1)。
「同等」の場合、ホストI/F処理の実行回数の上限値ULNeh2は、ディスクI/F処理の実行回数の上限値ULNed2と等しいなるように設定されている(ULNeh2=ULNed2)。
「ディスクI/F優先」の場合、ホストI/F処理の実行回数の上限値ULNeh3は、ディスクI/F処理の実行回数の上限値ULNed3よりも小さくなるように設定されている(ULNeh3<ULNed3)。
上限値ULNeh,ULNedの値は、ユーザが管理コンソール20から手動で設定できるように構成してもよい。さらに、例えば、FEPK110が増設されてホストI/F111の数が多くなった場合は、ホストI/F処理の実行回数の上限値ULNehを自動的に大きくする構成でもよい。同様に、例えば、BEPK140が増設されてディスクI/F141の数が多くなった場合は、ディスクI/F処理の実行回数の上限値ULNedを自動的に大きく設定してもよい。逆に、FEPK110がストレージシステム10から取り外された場合(減設時)、上限値ULNehを自動的に小さくしてもよい。同様に、BEPK140がストレージシステム10から取り外された場合、上限値ULNedを自動的に小さくしてもよい。
図7は、実行回数を管理するテーブル240を示す。実行回数テーブル240は、処理種別フィールド241と、実行回数フィールド242と、実行回数上限フィールド243とを備える。
処理種別フィールド241は、MP121により実行された処理の種別を記憶する。処理種別には、「ホストI/F処理」と「ディスクI/F処理」とがある。実行回数フィールド242は、各処理種別毎の実行回数が記憶される。ホストI/F処理が実行された回数をNeh、ディスクI/F処理が実行された回数をNedとする。
実行回数上限フィールド243は、各処理種別毎の実行回数の上限値を記憶する。ホストI/F処理の実行回数の上限値はULNeh、ディスクI/F処理の実行回数の上限値はULNedである。それら上限値ULNeh,ULNedは、図6で述べたテーブル230により決定される。
図8は、周期的に実行されるべき処理を管理するためのテーブル250を示す。周期処理テーブル250は、処理種別フィールド251と、次回実行時刻フィールド252と、周期フィールド253とを備える。
処理種別フィールド251は、周期的に実行されるべき処理の種別を記憶する。周期的に実行されるべき処理(周期処理)としては、例えば、「実行回数の上限値を見直す処理」と、「ホストデータHDDライト処理を生成する処理」とを挙げることができる。
「実行回数の上限値を見直す処理」とは、図7に示すテーブル240の実行回数上限フィールド243に記憶される上限値ULNeh,ULNedが適切であるか否かを見直す処理である。ストレージシステム10の稼働状況に応じて適切な値となるように、実行回数の上限値ULNeh,ULNedを定期的に変更する。
「ホストデータHDDライト処理を生成する処理」とは、ホストデータをHDD170に書き込むためのライト処理要求を生成させる処理である。CM131の空き領域を確保するために、CM131に蓄積されたダーティデータを周期的にHDD170に書き込ませる。
次回実行時刻フィールド252は、処理種別毎に、次回の実行時刻Tを記憶する。次回実行時刻は、例えば、ストレージシステム10内のシステムタイマの値で設定される。周期フィールド253は、処理種別毎に、実行の周期Cycを記憶する。
次回実行時刻及び周期は、ユーザが管理コンソール20を介して手動で設定できる構成でもよい。または、ストレージシステム10の構成変更等に応じて、次回実行時刻及び周期を自動的に変更する構成でもよい。例えば、ホストI/F111の数が増加した場合、ホストデータHDDライト処理を生成する処理の実行周期Cyc2を短く設定することにより、CM131がダーティデータで満杯になるのを防止できる。
図9は、実行回数の上限値を設定するための閾値を管理するテーブル260である。テーブル260は、実行回数の上限値を見直す処理の実行契機となる閾値を管理する。テーブル260は、基準情報フィールド261と、閾値フィールド262とを備える。
基準情報フィールド261には、実行契機を判断するための基準となる情報の名称が記憶されている。基準情報としては、例えば、「MP稼働率」と「キャッシュダーティ率」とを挙げることができる。
閾値フィールド262には、各基準情報毎の閾値が記憶される。MP稼働率の閾値はThUmpであり、キャッシュダーティ率の閾値はThCdである。それら閾値を、ユーザが管理コンソール20を介して手動で設定できる構成としてもよい。さらには、他の基準情報を用いて、実行回数の上限値を見直す処理(図15)の実行契機を判定する構成としてもよい。例えば、ホストI/F同期処理キューに蓄積された処理要求の数、非同期リモートコピーの未転送データ量、ストレージシステム10の構成変更等に基づいて、図15に示す処理の実行契機を判断する構成としてもよい。
図10は、同期処理を管理するテーブル270を示す。同期処理テーブル270は、同期処理の種類を管理する。同期処理テーブル270には、同期処理の名称が複数登録されている。同期処理としては、例えば、ホストデータCMリード処理271、ホストデータCMライト処理272、ホストデータHDDリード処理273等が挙げられる。なお、同期処理は、図10に示す処理に限らない。例えば、同期リモートコピー処理におけるコピー処理等も同期処理の一種である。
図11は、非同期処理を管理するテーブル280を示す。非同期処理テーブル280は、非同期処理の種類を管理する。非同期処理テーブル280には、非同期処理の名称が登録される。非同期処理としては、例えば、ホストデータHDDライト処理281を挙げることができる。非同期処理とは、同期処理以外の各処理のうち特定の処理である。非同期処理は、ホストコンピュータ180からのI/O要求をトリガーとして実行される処理ではなく、ストレージシステム10内の状況が所定の状況になった場合、または、管理コンソール20から指示が入力された場合をトリガーとして実行される。
非同期処理としては、図11に示す以外に、例えば、非同期ローカルコピー処理、非同期リモートコピー処理、コピー機能の初期コピー処理、オーナ権移動処理、障害回復処理、論理ボリュームの設定処理、ストレージシステムの構成を変更する処理、フォーマット処理等を挙げることができる。
非同期ローカルコピー処理とは、一つのストレージシステム10内において、コピー元の論理ボリュームからコピー先の論理ボリュームに、コピー元の論理ボリュームへの書込みタイミングとは異なるタイミングでデータを転送する処理である。
非同期リモートコピー処理とは、一方のストレージシステムに設けられているコピー元の論理ボリュームから他方のストレージシステムに設けられているコピー先の論理ボリュームに、コピー元の論理ボリュームへの書込みタイミングとは異なるタイミングで、データを転送する処理である。
コピー機能の初期コピー処理とは、同期ローカルコピー、非同期ローカルコピー、同期リモートコピー、非同期リモートコピーのペア作成時にコピー元の論理ボリュームの全データをコピー先の論理ボリュームに転送する処理である。
オーナ権移動処理とは、MP間でオーナ権を移動させる処理である。オーナ権とは、論理ボリュームへのアクセス権限を意味する。論理ボリュームのオーナ権を有するMPのみが、その論理ボリュームにアクセスしてデータを読み書きできる。
障害回復処理とは、障害から回復するための処理であり、例えば、コレクションコピー処理、スペアドライブへのコピー処理等がある。コレクションコピー処理とは、障害の発生したHDD170内のデータを、そのHDDと同一のRAIDグループに属する他の各HDD170から読み出されるデータ及びパリティに基づいて復元する処理である。論理演算により復元されたデータは、例えば、予備のHDD170に記憶される。
論理ボリュームの設定処理とは、新たに論理ボリュームを作成、または削除する処理である。各MPは、その設定変更を認識する必要がある。
ストレージシステムの構成を変更する処理とは、ストレージシステム10に新たなパッケージが取り付けられた場合、または、ストレージシステム10から既設パッケージが取り外された場合等に実行される処理である。ストレージシステム10の構成が変更された場合、各MPは、その構成変更を認識する必要がある。
フォーマット処理とは、論理ボリューム171をフォーマットする処理である。以上の非同期処理は例示であって、本発明はそれらの非同期処理に限定されない。
図12−図26を参照してストレージシステム10の動作及び管理コンソール20の動作を説明する。以下に示す各フローチャートは、各処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。いわゆる当業者であれば、図示されたステップの一部を変更したり、新たなステップを追加または削除したりできるであろう。以下、ステップをSと略記する。
図12は、各MP121により実行される全体スケジュール処理を示す。MP121は、システムタイマから現在時刻を取得する(S101)。MP121は、図8に示す周期処理テーブル250の次回実行時刻フィールド252に記憶されている次回実行時刻に到達した周期処理があるか否かを判定する(S102)。
実行時期の到来した周期処理が無い場合(S102:NO)、MP121は、ホストI/F処理スケジュール(S103)と、ディスクI/Fスケジュール(S104)とを実行して、S101に戻る。
実行時期の到来した周期処理が有る場合(S102:YES)、MP121は、周期フィールド253に登録されている周期と現在時刻とから次回の実行時刻を算出し、次回実行時刻フィールド252に記憶させる(S104)。MP121は、実行時期の到来した周期処理を実行し(S106)、S101に戻る。
なお、図12において、ホストI/FスケジュールとディスクI/Fスケジュールの実行順序を入れ替えてもよい。つまり、ディスクI/FスケジュールをホストI/Fスケジュールよりも先に実行することもできる。
図13は、ホストI/Fスケジュール処理を示す。図13の処理は、図12中にS103で示す処理の詳細である。MP121は、ホストI/F処理を実行した回数を示すNehの値をリセットし(S111)、ホストI/F同期処理キュー410をチェックする(S112)。
MP121は、ホストI/F同期処理キュー410に同期処理要求が有るか否かを判定する(S113)。同期処理要求がホストI/F同期処理キュー410に無い場合(S113:NO)、本処理は終了する。
ホストI/F同期処理キュー410に同期処理要求が有る場合(S113:YES)、MP121は、キュー410から同期処理要求を一つ取り出して、その同期処理を実行する(S114)。
MP121は、同期処理を一つ実行した後、ホストI/F処理の実行回数Nehを1つインクリメントする(S115)。MP121は、実行回数Nehが上限値ULNehを超えたか否かを判定する(S116)。実行回数Nehが上限値ULNehを超えた場合(S116:YES)、本処理は終了する。実行回数Nehが上限値ULNehを超えていない場合(S116:NO)、S112に戻り、ホストI/F同期処理キュー410を再びチェックする。なお、S116では、実行回数Nehが上限値ULNehを超えたか否かを判定しているが(Neh>ULNeh)、それに代えて、実行回数Nehが上限値ULNeh以上であるか否かを判定する構成でもよい(Neh≧ULNeh)。
図14は、ディスクI/F処理スケジュールを示す。図14の処理は、図12中にS104で示す処理の詳細である。MP121は、ディスクI/F処理を実行した回数を示すNedの値をリセットし(S121)、ディスクI/F同期処理キュー420及びディスクI/F非同期処理キュー430をそれぞれチェックする(S122)。
MP121は、ディスクI/F同期処理キュー420またはディスクI/F非同期処理キュー430のいずれかに、処理要求が有るか否かを判定する(S123)。各キュー420,430のいずれにも処理要求が存在しない場合(S123:NO)、本処理は終了する。
ディスクI/F同期処理キュー420またはディスクI/F非同期処理キュー430のいずれかに処理要求がある場合(S123:YES)、MP121は、ディスクI/F同期処理またはディスクI/F非同期処理のいずれか一つを実行する。ディスクI/F同期処理キュー420に処理要求が有る場合、MP121は、その同期処理を実行する。ディスクI/F非同期処理キュー430に処理要求が有る場合、MP121は、その非同期処理を実行する。
MP121は、ディスクI/F処理の実行回数Nedの値を1つインクリメントする(S125)。MP121は、実行回数Nedが上限値ULNedを超えたか否かを判定する(S126)。
なお、S126では、実行回数Nedが上限値ULNedを超えたか否かを判定しているが(Ned>ULNed)、それに代えて、実行回数Nedが上限値ULNed以上であるか否かを判定する構成でもよい(Ned≧ULNed)。
MP121は、ディスクI/F同期処理キュー420に蓄積された処理要求と、ディスクI/F非同期処理キュー430に蓄積された処理要求とを交替で実行する構成でもよいし、または、状況に応じて同期処理と非同期処理のいずれかを優先して実行する構成でもよい。例えば、キャッシュダーティ率が所定値以上の場合は、ディスクI/F非同期処理としてのホストデータHDDライト処理を、ディスクI/F同期処理よりも先に実行する構成としてもよい。
図15は、実行回数の上限値を見直す処理を示す。本処理は、周期的に実行される処理の一つであり、ストレージシステム10の状況に応じて、実行回数の上限値ULNeh,ULNedを所定周期で更新する。これにより、MP121がホストI/F処理とディスクI/F処理とを適切な回数だけ実行することができる。
最初に、MP121は、図4に示すMP稼働率テーブル210に基づいてMP稼働率Umpを参照する(S201)。MP121は、MP稼働率Umpと図9に示す閾値テーブル260に記憶されているMP稼働率の閾値ThUmpとを比較し、MP稼働率Umpが閾値ThUmp以上であるか否かを判定する(S202)。
ここで、MP121は、図4のテーブル210に記憶されている3つのMP稼働率Umpa,Umph,Umpdと一つの閾値ThUmpとをそれぞれ比較し、いずれか一つのMP稼働率が閾値ThUmp以上であるか否かを判定する構成でもよい。または、図9に示すテーブルに、各MP稼働率Umpa,Umph,Umpdにそれぞれ対応する閾値ThUmpa,ThUmph,ThUmpdを記憶し、UmpaとThUmpa、UmphとThUmph、UmpdとThUmpdをそれぞれ比較する構成でもよい。あるいは、全稼働率UmpaがThUmp以上であるか否かのみを判定する構成でもよい。
MP稼働率が閾値ThUmp以上の場合(S202:YES)、MP121は、図5に示すテーブル220でキャッシュダーティ率Cdを参照する(S203)。MP121は、図9に示すテーブル260に記憶されている閾値ThCdとテーブル220から取得されるキャッシュダーティ率Cdとを比較し、キャッシュダーティ率Cdが閾値ThCd以上であるか否かを判定する(S204)。
キャッシュダーティ率Cdが閾値ThCd以上である場合(S204:YES)、MP121は、実行回数の上限値ULを「ディスクI/F優先」の値ULNeh3,ULNed3に設定する(S205)。
つまり、MP稼働率Umpが閾値ThUmp以上であり(S202:YES)、かつ、キャッシュダーティ率Cdが閾値ThCd以上の場合(S204:YES)、ディスクI/F処理を実行可能な上限値をULNed3に設定する。
上述の通り、ディスクI/F優先時におけるディスクI/F処理の実行回数の上限値ULNeh3は、ホストI/F処理の実行回数の上限値ULNeh3よりも大きく設定されている。従って、ディスクI/F処理が優先的に処理される。その結果、CM131に溜まっているダーティ状態のデータは、HDD170に書き込まれ、CM131の空き領域が増加する。
キャッシュダーティ率Cdが閾値ThCd未満の場合(S204:NO)、MP121は、実行回数の上限値ULを、「同等」の値ULNeh2,ULNed2に設定する(S206)。つまり、MP稼働率Umpが閾値ThUmp以上であり(S202:YES)、かつ、キャッシュダーティ率Cdが閾値ThCd未満の場合(S204:NO)、ディスクI/F処理を実行可能な回数ULNed2とホストI/F処理を実行可能な回数ULNeh2とを等しくする(ULNed2=ULNeh2)。これにより、CM131の空き領域を確保しながら、ホストコンピュータ180からのI/O要求を受け付けることができる。
MP稼働率Umpが閾値ThUmp未満の場合(S202:NO)、MP121は、実行回数の上限値ULを「ホストI/F優先」の値ULNeh1,ULNed1に設定する(S207)。MP稼働率Umpが閾値ThUmp未満の場合は、ホストI/F処理を優先して実行し、ストレージシステム10の応答性を高める。
図16−図18を参照して、ホストデータCMリード処理を説明する。ホストデータCMリード処理とは、ホストコンピュータ180からのリード要求に従ってCM131からデータを読出し、そのデータをホストI/F111からホストコンピュータ180に転送させる処理である。
MP131は、FEPK110により受信されたコマンドを解析し(S301)、リード要求アドレスを参照する(S302)。リード要求アドレスとは、ホストコンピュータ180が読出しを要求しているデータの論理アドレス(LBA)である。
MP121は、リード要求アドレスに対応するキャッシュ領域が確保されているか否かを判定する(S303)。リード要求アドレスに対応するキャッシュ領域が確保されているか否かは、「キャッシュヒットしたか否か」と言い換えることができる。
リード要求アドレスに対応するキャッシュ領域がCM131上に確保されている場合(S303:YES)、即ち、キャッシュヒットの場合(S303:YES)、そのキャッシュ領域にはリード対象データ(図中、リードデータと略記)が記憶されている。
そこで、MP121は、リード要求アドレスに対応するキャッシュ領域に記憶されているデータを、FEPK110のホストI/F111に転送する(S304)。MP121は、ホストI/F111からホストコンピュータ180へのデータ転送を要求すると共に、そのデータ転送が完了した旨の通知をホストI/F111からMP121に送信するよう要求する(S304)。その後、MP121は、ホストI/F111からホストコンピュータ180へデータが転送されることと、そのデータ転送が完了した旨の通知をホストI/F111から受領することとを待つ(S305)。
一方、リード要求アドレスに対応するキャッシュ領域が確保されていない場合(S303:NO)、ホストコンピュータ180の要求するデータがCM131上に記憶されていない。そこで、MP121は、ディスクI/F同期処理キュー420に処理要求を一つ格納し(S306)、ディスクI/F141によりリード対象データがHDD170から読み出されてCM131に記憶されるのを待つ(S307)。
後述のように、ディスクI/F141が、HDD170から読み出したリード対象データをCM131に転送して記憶させると、ホストデータHDDリード処理を行っているMP121が、リード対象データが記憶された位置を通知する。ホストデータCMリード処理を行っていたMP121は、その通知の受領を待つ(S307)。
図17は、図16に続く処理を示す。ディスクI/F141が、リード対象データをHDD170から読み出してCM131に転送すると、ホストデータHDDリード処理を行っているMP121が、リード対象データを記憶させた位置を通知する。ホストデータCMリード処理を行っていたMP121が、その通知を受領すると、図17に示す処理が開始される。
MP121は、リード対象データの記憶されている位置を知らせる通知を解析する(S311)。続いて、MP121は、ホストI/F111にCM131上のリード対象データを転送し、かつ、ホストコンピュータ180へのデータ転送が完了した旨の通知を送るようにホストI/F111に要求する(S312)。MP131は、ホストコンピュータ180へのデータ送信が完了した旨の通知がホストI/F111から送られてくるまで待機する(S313)。
図18は、図17(または図16)に続く処理を示す。MP121は、ホストI/F111からの完了通知を受信すると、その通知の内容を解析し、ホストデータCMリード処理を終了する(S321)。
図19−図21を参照してホストデータCMライト処理を説明する。ホストデータCMライト処理とは、ホストコンピュータ180からのライト要求に従って、ホストコンピュータ180から受領したライト対象データをCM131に記憶させる処理である。
MP121は、ホストI/F111の受信したコマンドを解析し(S401)、そのコマンドに含まれているライト要求アドレスを参照する(S402)。MP121は、ライト要求アドレスに対応するキャッシュ領域がCM131上に確保されているか否かを判定する(S403)。
ライト要求アドレスに対応するキャッシュ領域がCM131上に確保されていない場合(S403:NO)、MP121は、ライト要求アドレスに対応するキャッシュ領域をCM131上に確保する(S404)。
MP121は、ライト要求アドレスに対応するキャッシュ領域をCM131上に確保すると、ホストI/F111にホストコンピュータ180からのデータを受信するよう要求する(S405)。MP121は、ホストコンピュータ180からのデータの受信が完了した旨の通知が、ホストI/F111が送られてくるのを待つ(S406)。
図20は、図19に続く処理を示すフローチャートである。ホストI/F111は、ホストコンピュータ180からのデータ受信が完了すると、データ受信が完了した旨の通知をMP121に送信する。MP121は、ホストI/F111からの通知結果を解析する(S411)。
MP121は、HDD170に未だ書き込まれていないデータ(ダーティ状態にあるデータである。ダーティデータとも呼ぶ。)のCM131上における記憶位置を設定し、かつ、ダーティデータの量を加算する(S412)。即ち、MP121は、ダーティデータの書込先アクセスを記憶し、かつ、ダーティデータの総量を更新する(S412)。
MP121は、ホストコンピュータ180にライト完了通知を送信するよう、ホストI/F111に要求する(S413)。MP121は、ライト完了通知がホストコンピュータ180に送信されたことを示す通知がホストI/F111から送られてくるのを待つ(S414)。
図21は、図20に続く処理を示す。MP121は、ライト完了通知を送信した旨の通知をホストI/F111から受信すると、その結果を解析して、ホストデータCMライト処理を終了する(S421)。
図22,図23を参照してホストデータHDDリード処理を説明する。ホストデータHDDリード処理とは、ホストコンピュータ180から要求されたデータをHDD170から読み出してCM131に記憶させる処理であり、ステージング処理とも呼ばれる。
MP121は、リード要求アドレスを参照し(S501)、リード要求アドレスに対応するキャッシュ領域がCM131上に確保されているか否かを判定する(S502)。キャッシュ領域が確保されていない場合(S502:NO)、MP121は、キャッシュ領域を確保する(S503)。
MP121は、ディスクI/F141にデータの受信を要求する(S504)。即ち、MP121は、ディスクI/F141に対して、HDD170からデータを読み出すように要求する。そして、MP121は、ディスクI/F141によるHDD170からのデータ読出しの完了を待つ(S505)。
図23は、図22に続く処理を示す。MP121は、ディスクI/F141からデータ受信が完了した旨の通知を受領すると、その受信結果を解析する(S511)。MP121は、ホストデータCMリード処理(図17のS311)に、HDD170から読み出されてCM131に記憶されたデータの位置を通知する(S512)。
図24,図25を参照してホストデータHDDライト処理を説明する。ホストデータHDDライト処理とは、CM131に記憶されているダーティデータをHDD170に書き込ませる処理であり、デステージ処理とも呼ばれる。
MP121は、ライト要求アドレスを参照し(S601)、ディスクI/F141にデータの送信を要求する(S602)。MP121は、ディスクI/F141によるデータ送信が完了した旨の通知を待つ(S603)。
ディスクI/F141によるデータ送信とは、ディスクI/F141が、CM131に記憶されているデータ(ライト対象データであり、ダーティ状態のデータでもある。)を、HDD170に転送して書き込ませることを意味する。
図25は、図24に続く処理を示す。MP121は、ディスクI/F141から受領した通知を解析する(S511)。MP121は、その解析結果に基づいて、図20のS412で設定されたダーティデータの位置を解除し、さらに、ダーティデータの総量を減少させる(S512)。
つまり、MP121は、CM131に記憶されているダーティデータのうち、ディスクI/F141によりHDD170に転送されたデータの属性を「ダーティ状態」から「クリーン状態」に変更し、かつ、HDDに転送されたデータのサイズだけダーティデータの総量を減少させる(S512)。
図26は、ユーザが管理コンソール20を用いて各種設定を行うための処理を示す。管理コンソール20は、図27に示すメニュー画面G10を表示し(S701)、ユーザによる入力操作が開始されるのを待つ(S702)。
ユーザは、メニュー画面G10を介して、実行回数の上限値または閾値等を入力する(S702)。管理コンソール20は、ユーザによる入力操作が終了するまで待機する(S703)。ユーザは、メニュー画面G10に入力した値を確定させる場合、保存ボタンB10を操作する。逆に、入力した値を取り消したい場合、ユーザは、キャンセルボタンB11を操作する。
ユーザの入力が終了して保存ボタンB10が操作されると、管理コンソール20は、ユーザにより入力された設定値を保存する(S704)。さらに、管理コンソール20は、ユーザの入力した設定値をストレージシステム10のコントローラ100に送信して、設定させる(S705)。
図27は、メニュー画面G10の一例を示す。メニュー画面G10は、複数の設定部G11,G12を備える。第1の設定部G11は、実行回数の上限値を設定するためのものである。第2の設定部G12は、実行回数の上限値を見直す処理を起動させるための閾値を設定するものである。なお、管理コンソール20からストレージシステム10に設定可能な情報は、上記の上限値及び閾値に限定されない。
このように構成される本実施例によれば、各マイクロプロセッサ121が同期処理と非同期処理とを実行できる。従って、MP121を効率よく使用することができる。
本実施例では、MP121が同期処理または非同期処理のいずれか一方だけを長時間にわたって実行することを抑制できる。さらに、本実施例では、S201、S207、S204、S206、S205に示す通り、ホストI/F処理(同期処理)を実行可能な回数の上限値と、ディスクI/F処理(非同期処理と同期処理)を実行可能な回数の上限値とを、ストレージシステム10の状況に応じて変更する。従って、ホストコンピュータ180からのI/O要求に対するレスポンスを改善と、MP121の有効利用とを両立させることができる。
本実施例では、S116、S126に示す通り、ホストI/F処理とディスクI/F処理とに分けて、それぞれを実行可能な回数の上限値を周期的に設定する。従って、稼働状況が種々変化した場合でも、I/O要求のレスポンスを改善でき、かつ、MP121を無駄なく利用できる。
図35の上から第1段目−第3段目は、本実施例によるMP121の稼働状況を模式的に示す。第1段目には「ホストI/F優先」モードが適用されるMP#1が示されており、第2段目には「ディスクI/F優先」モードが適用されるMP#2が示されており、第3段目には「同等」モードが適用されるMP#3が示されている。
ホストI/F優先モードのMP#1は、ホストI/F処理(ホストデータCMリード処理及びホストデータCMライト処理)を優先して、より多く実行し、ディスクI/F処理(ホストデータHDDリード処理及びホストデータHDDライト処理)をより少なく実行する。逆に、ディスクI/F優先モードのMP#2は、ディスクI/F処理を優先してより多く実行し、ホストI/F処理をより少なく実行する。同等モードのMP#3は、ホストI/F処理とディスクI/F処理とを平等に実行する。各モードのMP#1−#3は、隙間無く同期処理または非同期処理を実行する。
図28を参照して第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に該当する。そこで、本実施例を含む以下の各実施例では、第1実施例との相違を中心に説明する。
図28は、実行回数上限チューニングテーブル230A及び実行回数テーブル240Aを示す。本実施例では、第1実施例のホストI/F優先モード、ディスクI/F優先モード、両I/F同等モードに代えて、同期処理優先モード、非同期処理優先モード、同等モードを採用している。
第1実施例との関係で言えば、同期処理には、例えば、ホストデータCMリード処理、ホストデータCMライト処理、ホストデータHDDリード処理等がある。非同期処理には、例えば、ホストデータHDDライト処理等があある。
同期処理優先モードは、同期処理を優先して実行するモードである。同期処理優先モードでは、同期処理を実行可能な上限値ULNes1が非同期処理を実行可能な上限値ULNeas1よりも大きく設定される(ULNes1>ULNeas1)。
非同期処理優先モードは、非同期処理を優先して実行するモードである。非同期処理優先モードでは、同期処理を実行可能な上限値ULNes2が非同期処理を実行可能な上限値ULNeas2よりも小さく設定される(ULNes2<ULNeas2)。
同等モードは、同期処理と非同期処理を平等に実行するモードである。同等モードでは、同期処理を実行可能な上限値ULNes3と非同期処理を実行可能な上限値ULNeas3とが等しい値に設定される(ULNes3=ULNeas3)。
このように、ホストI/F処理とディスクI/F処理という観点に代えて、同期処理と非同期処理という観点から、MP121を効率的に使用することもできる。本実施例では、各MP121が同期処理と非同期処理とをそれぞれの上限値まで実行可能であり、各MP121を無駄なく利用できる。
図29−図35を参照して第3実施例を説明する。本実施例では、ホストI/F優先モード、ディスクI/F優先モード、両I/F同等モードに加えて、ホストI/F処理を専門に担当するモードと、ディスクI/F処理を専門に担当するモードとを追加する。
図29は、LM122の記憶内容を示す。本実施例では、図2に示す構成に比較して、新たにMP設定情報テーブル290が追加されている。
図30は、MP設定情報テーブル290の構成を示す。このテーブル290は、各MP121に設定されている情報を管理する。MP設定情報テーブル290は、MP番号フィールド291と、属性フラグフィールド292とを備える。
MP番号フィールド291は、各MP121を識別する番号を記憶する。属性フラグフィールド292は、各MP121に設定されている属性(モード)を記憶する。モードには、ホストI/F優先モード、ディスクI/F優先モード、両I/F同等モード、ホストI/F担当モード、ディスクI/F担当モードがある。
ホストI/F担当モードとは、ホストI/F処理を専門に担当するモードである。ディスクI/F担当モードとは、ディスクI/F処理を専門に担当するモードである。
図31は、I/O処理を示す。MP121は、前回から一定時間が経過したか否かを判定する(S801)。一定時間が経過している場合(S801:YES)、MP121は、現在時刻を登録し(S802)、続いて、テーブル290に記憶されている属性フラグを参照する(S803)。
MP121は、種々の情報に基づいてモードを切り換えるべきか否かを判定し、必要と判断した場合はモードを切り換える(S804)。モードを切り換える処理の一例は、図34で説明する。モードを切り換える場合、未処理の要求の有無をチェックし、未処理要求がある場合は、それを実行して完了させる。
一定時間が経過していない場合(S801:NO)、MP121は、各キュー410−430をチェックし(S805)、処理要求を発見した場合は(S806:YES)、その処理要求を実行する(S807)。
なお、MP121は、自分に設定されているモードに応じて各キュー410−430の全部または一部をチェックする。第1実施例との関連では、ホストI/F担当モードに設定されているMPは、ホストI/F同期処理キュー410のみをチェックすればよく、ディスクI/F同期処理キュー420及びディスクI/F非同期処理キュー430をチェックする必要はない。同様に、ディスクI/F担当モードに設定されているMPは、ディスクI/F同期処理キュー420及びディスクI/F非同期処理キュー430のみをチェックすればよく、ホストI/F同期処理キュー410をチェックする必要はない。
図32は、ホストI/F担当モードに設定されたMPの処理を示す。ホストI/Fに関する処理を専門に担当するMP121は、キューから取り出した処理要求を解析し(S811)、解析結果に応じてそれぞれの処理に分岐する(S812)。MP121は、ホストデータCMリード処理(S813)またはホストデータCMライト処理(S814)を実行する。
図33は、ディスクI/F担当モードに設定されたMPの処理を示す。ディスクI/Fに関する処理を専門に担当するMP121は、キューから取り出した処理要求を解析し(S821)、解析結果に応じてそれぞれの処理に分岐する(S822)。MP121は、ホストデータHDDリード処理(S823)またはホストデータHDDライト処理(S824)を実行する。
図34は、MP属性(モード)を切り換えるための処理を示す。MP121は、例えば、MP稼働率、キャッシュダーティ率、キューに溜まった同期処理要求の数、キューに溜まった非同期処理要求の数、ホストI/Fの数、ディスクI/Fの数、MP121の数、ホストI/F優先モードまたはホストI/F担当モードに設定されているMPの数、ディスクI/F優先モードまたはディスクI/F担当モードに設定されているMPの数等に基づいて、属性変更のための指標値を算出する(S901)。
MP121は、算出された指標値と予め設定されている切換用基準値とを比較し、ホストI/F担当モードに切り換えるか、それともディスクI/F担当モードに切り換えるかを判定する(S903)。
MP121は、ホストI/F担当モードに切り換えるべきと判定した場合、ホストI/F担当モードに切り換える(S904)。これとは逆に、MP121は、ディスクI/F担当モードに切り換えるべきと判定した場合、ディスクI/F担当モードに切り換える(S905)。
図35は、各モードが適用されるMPの稼働状況を模式的に示す。MP#1−#3については第1実施例で述べたので説明を省略する。第4段目のMP#4は、ホストI/F担当モードに設定されている。第5段目のMP#5は、ディスクI/F担当モードに設定されている。
ホストI/F担当モードのMP#4は、ホストI/F111に関する処理のみを実行し、ディスクI/F担当モードのMP#5は、ディスクI/F141に関する処理のみを実行する。従って、ホストI/F同期処理キュー410に処理要求が無い場合、MP#4はアイドル状態となる。同様に、ディスクI/F同期処理キュー420及びディスクI/F非同期処理キュー430のいずれにも処理要求が無い場合、MP#5は、アイドル状態となる。
従って、本実施例では、ホストI/F担当モードまたはディスクI/F担当モードに設定されたMPの使用効率が第1実施例よりも低下する。しかし、ホストI/Fに関する処理、または、ディスクI/Fに関する処理を専門に担当するMPを設けるため、急にホストコンピュータからのI/O要求が増大した場合でも、レスポンスを悪化させることなく、処理することができる。
図36−図40を参照して第4実施例を説明する。本実施例では、同期処理を専門に担当するMPと、非同期処理を専門に担当するMPとを設ける。以下、同期処理専門のMPと非同期処理専門のMPとを設ける点を中心に説明する。
図36は、MP設定情報テーブル290Aを示す。MP設定情報テーブル290Aは、MP番号フィールド291と、同期MPフラグフィールド292Aとを備える。同期MPフラグとは、同期処理担当のMPであるのか否かを示す情報である。同期MPフラグに1がセットされている場合(同期MPフラグ=1)、そのMPは同期処理を担当するMPである。同期MPフラグに0がセットされている場合(同期MPフラグ=0)、そのMPは非同期処理を担当するMPである。
図37は、I/O処理を示す。MP121は、前回から一定時間が経過したか否かを判定する(S1001)。一定時間が経過している場合(S1001:YES)、MP121は、現在時刻を登録し(S1002)、テーブル290Aに記憶されているフラグを参照する(S1003)。
MP121は、種々の情報に基づいてMP属性を切り換えるべきか否かを判定し、必要と判断した場合はMP属性を切り換える(S1004)。MP属性を切り換える処理の一例は、図40で説明する。MP属性を切り換える場合、未処理の要求の有無をチェックし、未処理要求がある場合は、それを実行して完了させる。
一定時間が経過していない場合(S1001:NO)、MP121は、各キュー410−430をチェックし(S1005)、処理要求を発見した場合は(S1006:YES)、その処理要求を実行する(S1007)。
なお、第1実施例との関連では、同期処理担当のMPは、ホストI/F同期処理キュー410及びディスクI/F同期処理キュー420のみをチェックすればよい。非同期処理担当のMPは、ディスクI/F非同期処理キュー430のみをチェックすればよい。
図38は、同期処理担当に設定されたMPの処理を示す。同期処理を専門に担当するMP121は、キューから取り出した処理要求を解析し(S1011)、解析結果に応じてそれぞれの処理に分岐する(S1012)。MP121は、ホストデータCMリード処理(S1013)、または、ホストデータCMライト処理(S1014)、または、ホストデータHDDリード処理(S1015)のいずれかを実行する。なお、その他の同期処理を実行可能な構成としてもよい。
図39は、非同期処理担当に設定されたMPの処理を示す。非同期処理を専門に担当するMP121は、キューから取り出した処理要求を解析し(S1021)、解析結果に応じてそれぞれの処理に分岐する(S1022)。MP121は、ホストデータHDDライト処理(S1023)、または、その他の非同期処理(S1024)を実行する。
その他の非同期処理としては、例えば、非同期ローカルコピー処理、非同期リモートコピー処理、コピー機能の初期コピー処理、オーナ権移動処理、障害回復処理、構成変更処理、論理ボリュームの設定処理、ストレージシステムの構成を変更する処理、フォーマット処理等を挙げることができる。
図40は、MP属性を切り換えるための処理を示す。MP121は、例えば、MP稼働率、キャッシュダーティ率、キューに溜まった同期処理要求の数、キューに溜まった非同期処理要求の数、ホストI/Fの数、ディスクI/Fの数、MP121の数、ホストI/F優先モードまたはホストI/F担当モードに設定されているMPの数、ディスクI/F優先モードまたはディスクI/F担当モードに設定されているMPの数等の情報に基づいて、関数を計算する(S1101)。
例えば、MP121は、同期処理を担当するMPの数を決定するための関数Nsmpと、非同期処理を担当するMPの数を決定するための関数Nasmpとを計算する(S1101)。Nsmpは式(1)で算出される。Nasmpは式(2)で算出される。以下、同期処理を担当するMPを同期MPと、非同期処理を担当するMPを非同期MPと呼ぶ場合がある。
Figure 0005393893
Figure 0005393893
式(1)及び式(2)の両方について、各種変数に入る値は、下記の通りである。
l:ホストI/F(ポート)の搭載数、
L:ホストI/F(ポート)の搭載可能な最大数、
m:HDD170の搭載数、M:HDD170の搭載可能な最大数、
n:MP121の搭載数、
a:RAIDレベル1に対応したRAIDグループ(又はHDD170)の数、
b:RAIDレベル5に対応したRAIDグループ(又はHDD170)の数、
c:RAIDレベル6に対応したRAIDグループ(又はHDD170)の数、
p:非同期ローカルコピーに対応したHDD170(又は、ボリュームペア及び/又は論理ボリューム)の数、
q:キャッシュ常駐機能に対応したHDD170(又は、ボリュームペア及び/又は論理ボリューム)の数、
floor(x):x以下最大の整数を表す関数;
ceil(x):x以上最小の整数を表す関数。
Nsmp及びNasmpの一方の値がゼロになった場合、一方に1を加算し、他方から1を減じることができる。なお、キャッシュ常駐機能とは、論理ボリューム内のデータの少なくとも一部をCM131に常時保持させておき、I/O要求のレスポンスを改善させる機能である。
上記式(1)及び式(2)は、ホストI/F111の数が増えれば同期処理がより必要になり、一方、HDD170の数が増えれば非同期処理がより必要になるという考えがベースになっている。具体的には、上記式(1)及び式(2)は、下記式(3)及び式(4)がそれぞれベースとなっている。
Figure 0005393893
Figure 0005393893
ここで、kは、mを含んだ計算式であり、mの値が増加すれば増加する。式(1)〜式(4)によれば、kに、a、b、c、p及びqが要素として含まれている。本実施形態では、mが、必須の要素であり、それ以外の要素は、必ずしもkに含まれなくて良い。kには、a、b及びcの少なくとも一つが含まれて、p及びqが含まれなくても良いし、p及びqの少なくとも一方が含まれて、a、b及びcのいずれも含まれなくても良い。
上記式(1)〜式(4)は、HDD170にアクセスする回数が増えれば非同期処理がより必要になるという考えがベースになっている。
具体的には、a、b及びcの係数が、1,2,3となっているのは(係数はそれぞれ一例である)、RAID1、RAID5及びRAID6のうち、RAID1が、HDD170にアクセスする回数が最も少なくて済み、RAID5が、1ストライプにつき1個のパリティを生成する観点からRAID1の次にアクセス回数が少なくて済み、RAID6が、1ストライプにつき2個のパリティを生成する観点から最もアクセス回数が多くなると考えられるからである。
また、pが増加すればkが増加するようになっているのは(例えば、pが加算されるようになっているのは)、非同期ローカルコピーが行われると、I/O要求に従うアクセスとは関係無しにHDD170にアクセスされるからである。
また、qが増加すればkが減少するようになっているのは(例えば、qが減算されるようになっているのは)、キャッシュ常駐機能に対応した論理ボリュームのLUNを含んだI/O要求が受け付けられても、CM131へのアクセスで足り、その論理ボリュームの基になっているHDD170にアクセスされないからである。
MP121は、算出されたNsmpと現在の同期MP数とを比較し、且つ、算出されたNasmpと現在の非同期MP数とを比較し(S1102)、同期MP数および非同期MP数を変更する必要があるか否かを判定する(S1103)。現在の同期MP数は、同期MPフラグの値が"1"であるエントリの合計数であり、現在の非同期MP数は、同期MPフラグの値が"0"であるエントリの合計数である。
S1102の結果、現在の同期MP数がNsmpと等しく、且つ、現在の非同期MP数がNasmpと等しい場合(S1103:NO)、本処理は終了する。
S1102の結果、現在の非同期MP数がNasmpより少なければ(S1103:YES1)、MP121は、任意の同期MPを一つ選択し、その同期MPに対応した同期MPフラグの値を"1"から"0"に変更する(S1104)。
S1102の結果、現在の同期MP数がNsmpより少なければ(S1103:YES2)、MP121は、任意の非同期MPを一つ選択し、その非同期MPに対応した同期MPフラグの値を"0"から"1"に変更する(S1105)。
S1104及び/またはS1105において、同期MPまたは非同期MPは、ランダムに選択されてもよい。また、選択される同期MPまたは非同期MPは、一定時間以内の処理実行時間である稼働率が低いMP(例えば、稼働率が同期MP群あるいは非同期MP群のなかで最も低いMP)であっても良い。
このように構成される本実施例では、同期処理を担当するMPと、非同期処理を担当するMPとを第1実施例の構成に追加するため、例えば、同期処理が集中した場合、または、非同期処理を多量に実行しなくてはならない場合にも対応することができる。
図41を参照して第5実施例を説明する。本実施例では、リモートコピー処理を実行するための構成例を説明する。
図41はコンピュータシステムの全体図である。コンピュータシステムは、ローカルサイトとリモートサイトを備える。ローカルサイトは、ホストコンピュータ180と、通信ネットワーク190と、ストレージシステム10を備える。リモートサイトは、他の通信ネットワーク190bと、他のストレージシステム10bを備える。
ローカルサイトのストレージシステム10は、コピー元の論理ボリューム(以下、コピー元ボリューム)171Pを有する。リモートサイトの他のストレージシステム10bは、コピー先の論理ボリューム(以下、コピー先ボリューム)171Sを有する。コピー元ボリューム171Pとコピー先ボリューム171Sとは、リモートコピーペアを形成している。
図41に示す構成において、同期リモートコピーの場合は、ホストコンピュータ180によるコピー元ボリューム171Pへのデータ書込みに同期して、コピー先ボリューム171Sにデータが転送される。
非同期リモートコピーの場合、ホストコンピュータ180がコピー元ボリューム171Pにデータを書き込んだ後、別のタイミングで、そのデータがコピー先ボリューム171Sに転送される。
図42を参照して第6実施例を説明する。本実施例では、一連の処理を複数のMP121が分担して実行する場合を説明する。
図42は、ホストコンピュータ180から要求されたデータをHDD170から読み出してCM131に転送させる処理を示す。図42の処理は、図22の処理を複数のMP121で分担する場合を示す。
第1のMP121は、リード要求を参照し(S1201)、リード要求に対応するキャッシュ領域がCM131上に確保されているか否かを判定する(S1202)。キャッシュ領域が確保されていない場合(S1202:NO)、第1のMP121は、キャッシュ領域をCM131上に確保する(S1203)。第1のMP121は、リード要求の処理を続行すべき旨の通知を、LM122に記憶させる(S1204)。
第2のMP121は、LM122をチェックしてその通知を検出すると(S1205)、HDD170からのデータ受信をディスクI/F141に要求する(S1206)。第2のMP121は、ディスクI/F同期処理キュー420に処理要求を格納させる。第2のMP121は、ディスクI/F141がHDD170からデータを読み出してCM131上に確保されたキャッシュ領域に転送するのを待つ(S1207)。
図24に示すホストデータHDDライト処理も、複数のMP121で分担して実行する構成にできる。図24のS601を第1のMP121で実行し、S601の実行が完了した旨の通知をLM122に格納し、第2のMP121がその通知を検出して、S602及びS603を実行する構成としてもよい。
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
10:ストレージシステム、20:管理コンソール、100:コントローラ、110:フロントエンドパッケージ(FEPK)、111:ホストインタフェース、120:マイクロプロセッサパッケージ(MPPK)、121:マイクロプロセッサ(MP)、122:ローカルメモリ、130:キャッシュメモリパッケージ(CMPK)、131:キャッシュメモリ(CM)、140:バックエンドパッケージ(BEPK)、141:ディスクインタフェース、170:ストレージデバイス(HDD)、171:論理ボリューム、180:ホストコンピュータ。

Claims (8)

  1. 複数の論理ボリュームを提供可能な複数のストレージデバイスと、
    前記複数の論理ボリュームのうちいずれかを指定した入出力要求を外部デバイスから受け付けて処理するコントローラと、
    を備え、
    前記コントローラは、
    前記外部デバイスと通信するための第1インタフェースと、
    前記各ストレージデバイスと通信するための第2インタフェースと、
    前記第1インタフェース及び前記第2インタフェースにそれぞれ接続されるメモリと、
    前記各第1インタフェースと前記各第2インタフェース及び前記メモリにそれぞれ接続される、複数のマイクロプロセッサとを含んでおり、
    前記各マイクロプロセッサは、前記外部デバイスからの前記入出力要求が実行契機となる同期処理と、前記同期処理以外の非同期処理とを実行することができ、
    前記各マイクロプロセッサは、予め設定される上限値まで前記同期処理を実行することができ、かつ、前記同期処理を実行していない場合に前記非同期処理を実行することができ、
    前記各マイクロプロセッサにより使用されるメモリ領域には、所定の複数のモード毎に第1上限値と第2上限値とを対応付けて管理する上限値管理情報が記憶されており、
    前記第1上限値は、前記同期処理のうち前記第1インタフェースに関する同期処理を実行できる回数の上限値を示し、
    前記第2上限値は、前記同期処置及び前記非同期処理のうち前記第2インタフェースに関する同期処理及び非同期処理を実行できる回数の上限値を示し、
    前記複数モードに含まれる第1モードでは、前記第1上限値の方が前記第2上限値よりも大きくなるように設定されており、
    前記複数モードに含まれる第2モードでは、前記第2上限値の方が前記第1上限値よりも大きくなるように設定されており、
    前記複数モードに含まれる第3モードでは、前記第1上限値と前記第2上限値とが同一に設定されており、
    前記各マイクロプロセッサ毎にそれぞれ前記第1モードまたは前記第2モードまたは前記第3モードのいずれか一つのモードが設定されており、
    前記各マイクロプロセッサの使用率と、前記メモリにのみ記憶されており前記ストレージデバイスに書き込まれていない未書込みデータの量とに基づいて、前記第1モードまたは前記第2モードまたは前記第3モードのうちのいずれのモードを前記各マイクロプロセッサに設定するか否かが、所定の周期で決定されるようになっており、
    前記使用率が所定の使用率未満の場合は、前記第1モードが設定され、
    前記使用率が前記所定の使用率以上であって、かつ、前記未書込みデータの量が所定のデータ量以上の場合は、前記第2モードが設定され、
    前記使用率が前記所定の使用率以上であって、かつ、前記未書込みデータの量が前記所定のデータ量未満の場合は、前記第3モードが設定される
    トレージシステム。
  2. 複数の論理ボリュームを提供可能な複数のストレージデバイスと、
    前記複数の論理ボリュームのうちいずれかを指定した入出力要求を外部デバイスから受け付けて処理するコントローラと、
    を備え、
    前記コントローラは、
    前記外部デバイスと通信するための第1インタフェースと、
    前記各ストレージデバイスと通信するための第2インタフェースと、
    前記第1インタフェース及び前記第2インタフェースにそれぞれ接続されるメモリと、
    前記各第1インタフェースと前記各第2インタフェース及び前記メモリにそれぞれ接続される、複数のマイクロプロセッサとを含んでおり、
    前記各マイクロプロセッサは、前記外部デバイスからの前記入出力要求が実行契機となる同期処理と、前記同期処理以外の非同期処理とを実行することができ、
    前記各マイクロプロセッサは、予め設定される上限値まで前記同期処理を実行することができ、かつ、前記同期処理を実行していない場合に前記非同期処理を実行することができ、
    前記上限値は、複数モードの中から選択される一つのモードに従って、設定されるストレージシステム。
  3. 前記各マイクロプロセッサには、所定の周期で、複数モードの中からいずれか一つのモードが設定されるようになっており、
    前記複数モードには、前記同期処理を実行可能な回数が前記非同期処理を実行可能な回数よりも大きく設定されている同期処理優先モードと、前記同期処理を実行可能な回数が前記非同期処理を実行可能な回数よりも小さく設定されている非同期処理優先モードと、が含まれており、
    前記各マイクロプロセッサは、前記複数モードの中から設定されるいずれか一つのモードに従って、前記同期処理と前記非同期処理とを実行する、
    請求項に記載のストレージシステム。
  4. 前記各マイクロプロセッサには、前記各マイクロプロセッサの使用率と、前記メモリにのみ記憶されており前記ストレージデバイスに書き込まれていない未書込みデータの量とに基づいて、前記複数モードの中からいずれか一つのモードが前記所定の周期で設定される、
    請求項に記載のストレージシステム。
  5. 前記各マイクロプロセッサの中には、前記同期処理だけを実行する同期処理担当モードに設定されるマイクロプロセッサと、前記非同期処理だけを実行する非同期処理担当モードに設定されるマイクロプロセッサとが、さらに含まれている、
    請求項に記載のストレージシステム。
  6. 複数の論理ボリュームを提供可能な複数のストレージデバイスと、
    前記複数の論理ボリュームのうちいずれかを指定した入出力要求を外部デバイスから受け付けて処理するコントローラと、
    を備え、
    前記コントローラは、
    前記外部デバイスと通信するための第1インタフェースと、
    前記各ストレージデバイスと通信するための第2インタフェースと、
    前記第1インタフェース及び前記第2インタフェースにそれぞれ接続されるメモリと、
    前記各第1インタフェースと前記各第2インタフェース及び前記メモリにそれぞれ接続される、複数のマイクロプロセッサとを含んでおり、
    前記各マイクロプロセッサは、前記外部デバイスからの前記入出力要求が実行契機となる同期処理と、前記同期処理以外の非同期処理とを実行することができ、
    前記各マイクロプロセッサは、予め設定される上限値まで前記同期処理を実行することができ、かつ、前記同期処理を実行していない場合に前記非同期処理を実行することができ、
    前記各マイクロプロセッサにより使用されるメモリ領域には、所定の複数のモード毎に第1上限値と第2上限値とを対応付けて管理する上限値管理情報が記憶されており、
    前記第1上限値は、前記同期処理のうち前記第1インタフェースに関する同期処理を実行できる回数の上限値を示し、
    前記第2上限値は、前記同期処置及び前記非同期処理のうち前記第2インタフェースに関する同期処理及び非同期処理を実行できる回数の上限値を示し、
    前記複数モードに含まれる第1モードでは、前記第1上限値の方が前記第2上限値よりも大きくなるように設定されており、
    前記複数モードに含まれる第2モードでは、前記第2上限値の方が前記第1上限値よりも大きくなるように設定されており、
    前記複数モードに含まれる第3モードでは、前記第1上限値と前記第2上限値とが同一に設定されており、
    前記各マイクロプロセッサ毎にそれぞれ前記第1モードまたは前記第2モードまたは前記第3モードのいずれか一つのモードが設定されている
    トレージシステム。
  7. 前記複数モードには、前記第1インタフェースに関する前記同期処理だけを実行する第4モードと、前記第2インタフェースに関する前記同期処理及び前記非同期処理だけを実行する第5モードとがさらに含まれており、
    前記各マイクロプロセッサ毎にそれぞれ前記第1モードまたは前記第2モードまたは前記第3モードまたは前記第4モードまたは前記第5モードのいずれか一つのモードが所定周期で設定される、
    請求項に記載のストレージシステム。
  8. 前記第5モードでは、前記第2インタフェースに関する前記同期処理または前記非同期処理を、前記各マイクロプロセッサのうちの複数のマイクロプロセッサで分担して実行する、
    請求項に記載のストレージシステム。
JP2012528968A 2010-06-17 2010-06-17 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法 Expired - Fee Related JP5393893B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/004043 WO2011158296A1 (en) 2010-06-17 2010-06-17 Storage system comprising multiple microprocessors and method for sharing processing in this storage system

Publications (2)

Publication Number Publication Date
JP2013515292A JP2013515292A (ja) 2013-05-02
JP5393893B2 true JP5393893B2 (ja) 2014-01-22

Family

ID=43608041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012528968A Expired - Fee Related JP5393893B2 (ja) 2010-06-17 2010-06-17 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法

Country Status (5)

Country Link
US (1) US8713288B2 (ja)
EP (1) EP2519887A1 (ja)
JP (1) JP5393893B2 (ja)
CN (1) CN102754090B (ja)
WO (1) WO2011158296A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013171796A1 (en) * 2012-05-17 2013-11-21 Hitachi, Ltd. Storage apparatus and method of controlling storage apparatus
US9436391B1 (en) * 2014-03-28 2016-09-06 Formation Data Systems, Inc. Efficient scalable I/O scheduling
WO2016098150A1 (ja) * 2014-12-15 2016-06-23 株式会社日立製作所 ストレージシステム
CN106411789A (zh) * 2016-10-17 2017-02-15 桐城市闲产网络服务有限公司 一种光纤交换机
JP7106953B2 (ja) * 2018-04-10 2022-07-27 富士通株式会社 サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム
JP6851350B2 (ja) 2018-08-30 2021-03-31 株式会社日立製作所 ストレージシステム及び記憶制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218686A (en) * 1989-11-03 1993-06-08 Compaq Computer Corporation Combined synchronous and asynchronous memory controller
US5721860A (en) * 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
JP4322068B2 (ja) 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
JP4090400B2 (ja) 2003-07-24 2008-05-28 株式会社日立製作所 ストレージシステム
US8949395B2 (en) * 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
JP4969791B2 (ja) * 2005-03-30 2012-07-04 株式会社日立製作所 ディスクアレイ装置およびその制御方法
JP5057656B2 (ja) * 2005-05-24 2012-10-24 株式会社日立製作所 ストレージシステム及びストレージシステムの運用方法
JP5089896B2 (ja) * 2006-03-17 2012-12-05 株式会社日立製作所 マイクロプロセッサの負荷分散機能を備えたストレージシステム
JP2008046986A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム

Also Published As

Publication number Publication date
WO2011158296A1 (en) 2011-12-22
JP2013515292A (ja) 2013-05-02
US8713288B2 (en) 2014-04-29
CN102754090A (zh) 2012-10-24
US20120278589A1 (en) 2012-11-01
EP2519887A1 (en) 2012-11-07
CN102754090B (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
JP5393893B2 (ja) 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
JP5069011B2 (ja) ストレージモジュール及び容量プール空き容量調整方法
JP5595530B2 (ja) データ移行システム及びデータ移行方法
JP4993928B2 (ja) 記憶システム及び記憶領域解放方法並びにストレージシステム
JP5666710B2 (ja) ストレージ装置及びボリューム管理方法
US20070061518A1 (en) Storage controller, data processing method and computer program product
JP2008146574A (ja) 記憶制御装置及び記憶制御方法
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
JP5886963B2 (ja) ストレージ装置及びデータ管理方法
JP2007058728A (ja) データ移行方式
JP6540391B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
JP5391277B2 (ja) ストレージシステム及びストレージシステムの処理効率向上方法
EP2560089A1 (en) Storage control device and control method of storage control device
JP2007188341A (ja) 記憶デバイス制御装置
US9372642B2 (en) RAID 10 reads optimized for solid state drives
JP2009093529A (ja) 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
CN112346653B (zh) 驱动器箱、存储系统和数据传送方法
JP2009122873A (ja) ストレージシステム間でのリモートコピーを管理する装置
JP2014026529A (ja) ストレージシステムおよびその制御方法
JP5167410B2 (ja) 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
JP6025973B2 (ja) 計算機システム及び計算機システムのボリューム管理方法
JP5899893B2 (ja) ストレージ装置、コマンド実行制御方法、およびプログラム
WO2017098591A1 (ja) 計算機及びストレージ装置を有するシステム、及びシステムの制御方法
JP2023125009A (ja) ストレージシステム、パス制御方法、及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131015

R150 Certificate of patent or registration of utility model

Ref document number: 5393893

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