【実施例2】
【0026】
実施例1では、異常が発生したCAと接続するメイン制御部34が、ダンプデータの吸い上げ処理を実行するとともに他の制御部にダンプデータの吸い上げ処理を依頼する場合について説明した。ところで、CMを複数有するストレージシステムでは、ダンプデータの吸い上げ処理を開始する時点で、異常が発生したCAと接続するメイン制御部34のCPU使用率やI/O負荷が高い場合であっても、他の制御部のCPU使用率やI/O負荷が低い場合がある。あるいは、他の制御部のCPU使用率やI/O負荷も高い場合であっても、異常が発生したCAと接続するメイン制御部34のCPU使用率やI/O負荷よりは低い場合がある。このようなことから、あるCAに異常が発生した場合、CPU使用率やI/O負荷の低い制御部をストレージシステム内から選択し、選択した制御部に格納処理を実行させてもよいものである。
【0027】
そこで、実施例2では、ストレージシステム内に設定したマスターCMが、CAに異常が発生した場合、CPU使用率やI/O負荷の低い制御部を選択し、選択した制御部に格納処理を実行させる例を説明する。
【0028】
[実施例2に係るストレージシステムの構成]
図2は、実施例2に係るストレージシステム2Aの構成を示す機能ブロック図である。
図2に示すように、ストレージシステム2Aは、CM3Aと、CM3Bと、ディスク4と、フロントエンドルータ(Front-End Router:以下FRTと記す)5とを有する。また、ストレージシステム2Aは、バックエンドルータ(Back-End Router:以下BRTと記す)6と、ドライブエンクロージャー(Drive Enclosure:以下DEと記す)7とを有する。また、ストレージシステム2Aは、上位装置であるホストコンピュータ1と接続する。なお、実施例2に係るストレージシステム2Aにおいて、
図1に示したストレージシステム2の構成と同様の機能を有する各部については、同一の符号を付与し、詳細な説明を省略する。また、
図2に示す例では、ストレージシステム2Aが有するCMの数はCM3Aが1であり、CM3Bが7であり、計8とするが、3以上であれば
図2に示した数に限定されるものではない。なお、7つのCM3Bのうち4つのみを図示する。また、ストレージシステム2Aが有するディスク4の数は、
図2に示した数に限定されるものではない。
【0029】
FRT5は、CM3AとCM3Bとの間を接続する。なお、FRT5は、各CM間通信を行うパスを4パス有する。BRT6は、CM3AまたはCM3Bとディスク4との間を接続する。DE7は、ディスク4を搭載する筐体である。
【0030】
ここで、例えば、CM3AをマスターCMとし、CM3BをスレーブCMとする。なお、マスターCMとは、CAに異常が発生した場合、格納処理の実行を依頼するメイン制御部あるいはサブ制御部をストレージシステム2A内から選択する役割を果たすCMである。また、説明の便宜上、CM3AをCM#0と適宜記載する。また、CM3Bそれぞれを区別する場合には、
図2に示すように、CM#1、CM#5、CM#6およびCM#7と適宜記載する。
【0031】
[マスターCMの機能構成]
CM3Aは、ディスク4へのデータの入出力を制御する装置であり、複数のCA31とIOC32とBUD33とメイン制御部34Aとサブ制御部35AとCM間通信ドライバ36と記憶部37Aとを有する。なお、実施例2に係るCM3Aにおいて、
図1に示したCM3の構成と同様の機能を有する各部については、同一の符号を付与し、詳細な説明を省略する。また、CM3Aが有する制御部の数は、
図2に示した数に限定されるものではない。例えば、CM3Aは、制御部を一つ有するようにしてもよい。
【0032】
メイン制御部34Aは、自己のCM3Aにおける処理を分散して実行する場合のメインの制御部であり、吸い上げ処理部51と、吸い上げ先決定部52と、情報取得部53とを有する。なお、以下では、このメイン制御部34Aは、CPUであるものとして説明するが、メイン制御部34Aは、MPUなどの電子回路であってもよい。また、メイン制御部34Aに含まれる各機能部は、例えば、CM3Aを制御するCFWによってそれぞれ実現される。
【0033】
吸い上げ処理部51は、自制御部と接続するCA31の異常を検知すると、異常を検知したCA31のダンプデータの吸い上げ先をマスターCM3Aの吸い上げ先決定部52に決定させる。例えば、吸い上げ処理部51は、マスターCM3Aの吸い上げ先決定部52に対し、CM間通信ドライバ36を介して、吸い上げ先を取得したい旨の要求を送信する。このとき、吸い上げ処理部51は、ダンプデータのサイズをマスターCM3Aの吸い上げ先決定部52に転送する。
【0034】
そして、吸い上げ処理部51は、マスターCM3Aの吸い上げ先決定部52に決定させた吸い上げ先に対して、異常を検知したCA31のダンプデータの吸い上げを依頼する。
【0035】
また、吸い上げ処理部51は、他の吸い上げ処理部51からダンプデータの吸い上げを依頼された場合、異常が発生したCA31のダンプデータの吸い上げ処理を実行する。例えば、吸い上げ処理部51は、異常が発生したCA31のダンプデータを取得し、自身と接続する記憶部37Aに保持する。
【0036】
そして、吸い上げ処理部51は、ダンプデータの吸い上げ処理の実行時間が制限時間を超えるか否かを判定する。例えば、吸い上げ処理部51は、以下の式(1)を用いてダンプデータの吸い上げ処理の実行時間を算出する。なお、式(1)は、「CAダンプ吸い上げ実行時間」=(CAダンプ吸い上げ時間)÷{1−(制御部の使用率)}である。
【0037】
また、吸い上げ処理部51は、式(1)中の「CAダンプ吸い上げ時間」を、以下の式(2)を用いて算出する。なお、式(2)は、「CAダンプ吸い上げ時間」={(データ転送時間)+(データ圧縮時間)×(CAダンプデータサイズ)+(BUD格納時間)×(圧縮CAダンプデータサイズ)}である。
【0038】
ここで、データサイズとは、異常が発生したCAのダンプデータのデータサイズを示す。データ転送時間とは、異常が発生したCAから記憶部37A(37B)へ1MB(MB:MBytes)のダンプデータを転送する場合の通信時間を示す。データ圧縮時間とは、1MBのデータを圧縮する場合にかかる時間を示す。BUD格納時間とは、1MBの圧縮データを格納する場合に要する時間を示す。なお、本実施例中では、制限時間が70(s)に設定されるものとして説明するが、この制限時間は70(s)に限定されるものではなく、変更可能である。
【0039】
ここで、吸い上げ処理部51は、制限時間を超えないと判定する場合、通常時のダンプ格納処理を実行する。すなわち、吸い上げ処理部51は、通常時のダンプ格納処理では、記憶部37Aに保持させたダンプデータを圧縮し、圧縮したダンプデータをBUD33に格納する。
【0040】
一方、吸い上げ処理部51は、制限時間を超える場合、制限時間オーバー時のダンプ格納処理を実行する。すなわち、吸い上げ処理部51は、制限時間オーバー時のダンプ格納処理では、所定の残り時間に達するまでは記憶部37Aに保持するダンプデータを圧縮してBUD33に格納する。なお、本実施例中では、所定の残り時間が350(ms)に設定されるものとして説明するが、この所定の残り時間は350(ms)に限定されるものではなく、変更可能である。
【0041】
そして、吸い上げ処理部51は、所定の残り時間に達すると、BUD33におけるダンプデータの格納領域の容量からBUD33に格納済みのダンプデータの容量を減算した値を算出する。ここで、吸い上げ処理部51は、算出した値がBUD33に未格納のダンプデータの容量以上の場合、記憶部37Aに保持するダンプデータを圧縮せずBUD33に格納する。
【0042】
また、吸い上げ処理部51は、ダンプデータの吸い上げ処理が完了後、圧縮せずにBUD33に格納したダンプデータを記憶部37Aに読出して圧縮し、圧縮したダンプデータをBUD33に格納する。
【0043】
また、吸い上げ処理部51は、所定の残り時間に達し、BUD33におけるダンプデータの格納領域の容量からBUD33に格納済みのダンプデータの容量を減算した値が、BUD33に未格納のダンプデータの容量未満の場合、以下の処理を実行する。すなわち、吸い上げ処理部51は、未格納のダンプデータをBUD33に格納せずに記憶部37Aに保持する。そして、吸い上げ処理部51は、ダンプデータの吸い上げ処理が完了後、記憶部37Aに保持するダンプデータを圧縮してBUD33に格納する。
【0044】
また、吸い上げ処理部51は、所定の残り時間に達する前であっても、以下の場合には、未格納のダンプデータを圧縮せずBUD33に格納するようにしてもよい。すなわち、吸い上げ処理部51は、BUD33におけるダンプデータの格納領域の容量からBUD33に格納済みのダンプデータの容量を減算した値がBUD33に未格納のダンプデータの容量以上の場合、未格納のダンプデータを圧縮せずBUD33に格納する。
【0045】
吸い上げ先決定部52は、メイン制御部34A、メイン制御部34Bまたはサブ制御部35Aの吸い上げ処理部51から吸い上げ先の決定を依頼された場合、以下の処理を実行する。すなわち、吸い上げ先決定部52は、複数のCMが有する制御部それぞれの使用率を監視し、該使用率に基づいて算出するダンプデータの格納処理の時間が所定の時間より短く、且つI/Oコマンドの数から算出する格納処理の時間が短い制御部を選択する。
【0046】
例えば、吸い上げ先決定部52は、異常が検知されたCA31のダンプデータの吸い上げ時間が所定の規定時間より短い制御部に吸い上げ先の候補を絞る。さらに、吸い上げ先決定部52は、絞った吸い上げ先の候補のうち、処理中のI/Oコマンドの数から換算される処理時間が短い制御部を吸い上げ先に決定する。
【0047】
吸い上げ先決定部52が所定の規定時間内に確実にダンプデータが吸い上げ可能か否かを予測する処理について説明する。例えば、吸い上げ先決定部52は、CAのダンプデータのサイズから各制御部がダンプデータの吸い上げ処理にかかる予測時間を「CAダンプ吸い上げ時間」として算出し、算出した予測時間を吸い上げ制御テーブル371に格納する。吸い上げ先決定部52は、「CAダンプ吸い上げ時間」を、式(2)に基づいて算出する。
【0048】
さらに、吸い上げ先決定部52は、各制御部の使用率を各CMのCPU使用率情報372から取得する。そして、吸い上げ先決定部52は、算出した各制御部のCAダンプ吸い上げ時間を用いて、各制御部の使用率に対応したダンプデータの吸い上げ処理に要する予測時間を「CAダンプ吸い上げ実行時間」として算出する。ここで、吸い上げ先決定部52は、「CAダンプ吸い上げ実行時間」を、式(1)に基づいて算出する。
【0049】
そして、吸い上げ先決定部52は、算出した各制御部の「CAダンプ吸い上げ実行時間」を吸い上げ制御テーブル371に格納する。そして、吸い上げ先決定部52は、吸い上げ制御テーブル371に記憶した各制御部の「CAダンプ吸い上げ実行時間」と吸い上げに許される規定時間とを比較し、規定時間内に吸い上げが完了可能な吸い上げ先の候補を絞る。ここで、吸い上げ先決定部52は、「実行中フラグ」がオンではない制御部を吸い上げ先の候補に選択する。
【0050】
次に、吸い上げ先決定部52が吸い上げ可能と予測した吸い上げ先の候補のうち、入出力処理時間が最短の制御部を決定する処理について説明する。例えば、吸い上げ先決定部52は、各制御部で処理中のI/Oコマンドの数を各CMのコマンド数情報373から取得する。そして、吸い上げ先決定部52は、取得した制御部毎のI/Oコマンド数から換算される制御部毎の処理時間である「I/O処理時間」を算出する。吸い上げ先決定部52は、CM間通信を用いないストレートアクセスおよびCM間通信を用いるクロスアクセスの各I/Oコマンドの数から、以下の式(3)に基づいて、各制御部の「I/O処理時間」を算出する。なお、式(3)は、「I/O処理時間」=(クロスアクセスのI/Oコマンド数)×(クロスアクセスのI/Oコマンド処理時間)+(ストレートアクセスのI/Oコマンド数)×(ストレートアクセスのI/Oコマンド処理時間)である。
【0051】
ここで、クロスアクセスのI/Oコマンド数とは、クロスアクセスについて処理中のI/Oコマンドの数を示す。クロスアクセスのI/Oコマンド数には、CM間通信によって送信されるI/Oコマンドの数だけでなく、CM間通信によって受信されるI/Oコマンドの数も含まれる。クロスアクセスのI/Oコマンドの処理時間とは、1個のクロスアクセスのI/Oコマンドが処理する場合の処理時間を示す。ストレートアクセスのI/Oコマンド数とは、ストレートアクセスについて処理中のI/Oコマンドの数を示す。ストレートアクセスのI/Oコマンド処理時間とは、1個のストレートアクセスのI/Oコマンドが処理する場合の処理時間を示す。
【0052】
そして、吸い上げ先決定部52は、算出した各制御部のI/O処理時間を吸い上げ制御テーブル371に格納する。そして、吸い上げ先決定部52は、先行して絞った吸い上げ先の候補のうち、吸い上げ制御テーブル371に記憶した各制御部のI/O処理時間が短い制御部から順に吸い上げ先を2つ決定する。そして、吸い上げ先決定部52は、決定した吸い上げ先を、要求元のCMに通知する。この結果、要求元のCMは、異常を検知したCA31のダンプデータの吸い上げを、決定された吸い上げ先に依頼できる。
【0053】
なお、吸い上げ先決定部52は、異常を検知したCA31のダンプデータの吸い上げ時間について、吸い上げに許される規定時間より短い制御部が1個も存在しない場合がある。かかる場合、吸い上げ先決定部52は、CAダンプ吸い上げ実行時間が最も短い制御部に吸い上げ先を決定する。これにより、吸い上げ先決定部52は、決定した吸い上げ先で吸い上げに許される規定時間までダンプデータを吸い上げさせることができ、吸い上げられたダンプデータを用いて異常に関する調査を行わせることが可能となる。
【0054】
情報取得部53は、制御部の使用率を取得し、取得した値を後述する記憶部37Aが記憶するCPU使用率情報372に記憶させる。また、情報取得部53は、I/Oコマンド数を取得し、取得した値を後述する記憶部37Aが記憶するコマンド数情報373に記憶させる。
【0055】
サブ制御部35Aは、自己のCM3Aにおける処理を分散して実行する場合のサブの制御部であり、吸い上げ処理部51と、情報取得部53とを有する。なお、以下では、このサブ制御部35Aは、CPUであるものとして説明するが、サブ制御部35Aは、MPUなどの電子回路であってもよい。また、サブ制御部35Aに含まれる各機能部は、例えば、CM3Aを制御するCFWによってそれぞれ実現される。
【0056】
CM間通信ドライバ36は、FRT5を介して他のCM3Bと通信接続する通信インタフェースである。
【0057】
記憶部37Aは、メイン制御部34Aまたはサブ制御部35Aが処理に用いる各種データを記憶する。例えば、記憶部37Aは、吸い上げ制御テーブル371と、CPU使用率情報372と、コマンド数情報373とを記憶する。また、記憶部37Aは、図示しないCAダンプ取得バッファ374とCAダンプ圧縮バッファ375とを有する。
【0058】
吸い上げ制御テーブル371は、制御部毎に、吸い上げ処理にかかる予測時間や処理中の入出力コマンドの数から換算される処理時間を対応付けて記憶する。かかる吸い上げ制御テーブル371は、例えば吸い上げ先決定部52により作成され、吸い上げ先を決定する場合に用いられる。なお、吸い上げ制御テーブル371の詳細は、後述する。
【0059】
CPU使用率情報372は、自CM内の各制御部の使用率を含む情報を管理する。コマンド数情報373は、自CM内の各制御部の処理中の入出力コマンドの数を含む情報を管理する。
【0060】
[スレーブCMの機能構成]
CM3Bは、ディスク4へのデータの入出力を制御する装置であり、複数のCA31とIOC32とBUD33とメイン制御部34Bとサブ制御部35AとCM間通信ドライバ36と記憶部37Bとを有する。なお、実施例2に係るCM3Bにおいて、
図2に示したCM3Aの構成と同様の機能を有する各部については、同一の符号を付与し、詳細な説明を省略する。また、CM3Bが有する制御部の数は、
図2に示した数に限定されるものではない。例えば、CM3Bは、制御部を一つ有するようにしてもよい。
【0061】
メイン制御部34Bは、自己のCM3Bにおける処理を分散して実行する場合のサブの制御部であり、吸い上げ処理部51と、情報取得部53とを有する。なお、以下では、このメイン制御部34Bは、CPUであるものとして説明するが、メイン制御部34Bは、MPUなどの電子回路であってもよい。また、メイン制御部34Bに含まれる各機能部は、例えば、CM3Bを制御するCFWによってそれぞれ実現される。
【0062】
記憶部37Bは、メイン制御部34Bまたはサブ制御部35Aが処理に用いる各種データを記憶する。例えば、記憶部37Bは、CPU使用率情報372と、コマンド数情報373とを記憶する。また、記憶部37Bは、図示しないCAダンプ取得バッファ374とCAダンプ圧縮バッファ375とを有する。
【0063】
[吸い上げ制御テーブルのデータ構造]
次に、吸い上げ制御テーブル371のデータ構造について、
図3を参照して説明する。
図3は、実施例2に係る吸い上げ制御テーブルのデータ構造の一例を示す図である。
図3に示すように、吸い上げ制御テーブル371は、実行中フラグ371b、吸い上げ対象CA371c、CAダンプ吸い上げ時間371d、CPU使用率371eおよびCAダンプ吸い上げ実行時間371fをCPU371aに対応付けて記憶する。さらに、吸い上げ制御テーブル371は、I/Oコマンド数371gおよびI/O処理時間371hをCPU371aに対応付けて記憶する。
【0064】
CPU371aは、制御部をCPUとした場合の各制御部に対応したCPUを示す。実行中フラグ371bは、吸い上げ処理を実行中であるか否かを示すフラグである。例えば、実行中である場合「ON」が設定され、実行中でない場合「OFF」が設定される。吸い上げ対象CA371bは、吸い上げ処理を実行中である場合に吸い上げ対象のCAを示す。CAダンプ吸い上げ時間371dは、CAのダンプデータのサイズから各CPUがダンプデータの吸い上げ処理にかかる予測時間を示す。CPU使用率371eは、各CPUの使用率を示す。CAダンプ吸い上げ実行時間371fは、各CPUの使用率に対応した吸い上げ処理を実行する予測時間を示す。I/Oコマンド数371gは、各CPUで処理中のI/Oコマンドの数を示す。例えば、クロスアクセスおよびストレートアクセスのそれぞれのI/Oコマンド数が設定される。I/O処理時間371hは、I/Oコマンド数から換算されるCPU毎の処理時間を示す。
【0065】
吸い上げ制御テーブル371の一例として、CPU371aが「CM#0のメインCPU」である場合、実行中フラグ371bとして「OFF」、吸い上げ対象CA371cとして「−」、CAダンプ吸い上げ時間371dとして「50」秒を記憶している。さらに、CPU使用率371eを「0.8」、CAダンプ吸い上げ実行時間371fとして「250」秒、I/Oコマンド数371gとして「クロス100/ストレート100」、I/O処理時間371hとして「2」秒を記憶している。また、CPU371aが「CM#7のサブCPU」である場合、吸い上げ対象CA371cとして「CM#1−CA#0」を記憶している。すなわち、
図3の例では、CM#7のサブCPUがCM#1にあるCA#0のダンプデータの吸い上げを実行している。
【0066】
[吸い上げ先決定部52の処理動作]
次に、
図4を用いて、吸い上げ先決定部52の処理動作を説明する。
図4は、吸い上げ先決定部52の処理動作の一例を示す図である。
図4は、CM#1のCA31で異常が発生した場合を示す。CM#1のメイン制御部34Bは、CA31で異常が発生した場合、CM#0のメイン制御部34Aに吸い上げ先の決定を依頼する。
【0067】
そして、CM#0のメイン制御部34Aにおいて、吸い上げ先決定部52は、吸い上げ先の決定を行う。例えば、吸い上げ先決定部52は、複数のCMが有する制御部それぞれの使用率に基づいて算出するダンプデータの格納処理の時間が所定の時間より短く、且つI/Oコマンドの数から算出する格納処理の時間が短い制御部を選択する。
【0068】
なお、ここでは、異常を検知したCA31のダンプデータの吸い上げ時間について、吸い上げ規定時間より短い制御部が1個も存在しない場合を示す。この場合、吸い上げ先決定部52は、CAダンプ吸い上げ実行時間が最も短い制御部を吸い上げ先に決定する。
図4に示す例では、CAダンプ吸い上げ実行時間が最短であるCPUとして、CM#5のメイン制御部34Bを吸い上げ先に決定する場合を示す。そして、吸い上げ先決定部52は、CM#5のメイン制御部34Bを吸い上げ先に決定した旨をCM#1のメイン制御部34Bに通知する。この結果、CM#1のメイン制御部34Bは、CM#5のメイン制御部34Bにダンプデータの吸い上げ処理の実行を依頼する。
【0069】
[吸い上げ処理部51の処理動作]
次に、
図5A〜5Cを用いて、吸い上げ処理部51の処理動作を説明する。
図5Aは、CAダンプ吸い上げ実行時間が吸い上げ規定時間内である場合の吸い上げ処理部51の処理動作の一例を示す図であり、
図5Bは、CAダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合の吸い上げ処理部51の処理動作の一例を示す図である。また、
図5Cは、未圧縮なダンプデータの圧縮処理の処理動作の一例を示す図である。
【0070】
図5Aは、CAダンプ吸い上げ実行時間が吸い上げ規定時間内である場合を示す。なお、
図5Aの説明では、吸い上げ処理に関わる条件は、以下であるものとして説明する。例えば、データ転送時間は、0.5(ms/MB)であり、データ圧縮時間は、108.3(ms/MB)であり、CAダンプデータサイズは、123(MB)であり、データ格納時間は、33.3(ms/MB)であり、データ圧縮率は、30(%)である。なお、CAダンプ格納領域331のサイズは、50(MB)であり、CPUの使用率が79(%)であり、吸い上げ規定時間は、70(s)であるものとする。この条件の場合、吸い上げ処理部51は、式(1)および式(2)を用いて、吸い上げ実行時間を「69.6(s)」と算出する。吸い上げ処理部51は、吸い上げ実行時間が吸い上げ規定時間内であるので、通常時のダンプ格納処理を実行すると判定する。
【0071】
図5Aに示すように、CAに異常が発生した吸い上げCMは、異常が発生したCAからダンプデータを吸い上げて、格納先である格納CMに吸い上げたダンプデータを転送する(ステップS21)。これにより、格納CMの吸い上げ処理部51は、受信したダンプデータを、記憶部37A(37B)のCAダンプ取得バッファ374に格納させる。そして、吸い上げ処理部51は、CAダンプ取得バッファ374から読出したダンプデータをCAダンプ圧縮バッファ375で圧縮する(ステップS22)。吸い上げ処理部51は、圧縮したダンプデータをBUD33内のCAダンプ格納領域331に格納する(ステップS23)。
【0072】
図5Bは、CAダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合を示す。なお、
図5Bの説明では、吸い上げ処理に関わる条件は、CAダンプデータサイズが130(MB)である以外、
図5Aに示した条件と同様であるものとして説明する。この条件の場合、吸い上げ処理部51は、式(1)および式(2)を用いて、吸い上げ実行時間を「73.5(s)」と算出する。吸い上げ処理部51は、吸い上げ実行時間が吸い上げ規定時間を超えているので、制限時間オーバー時のダンプ格納処理を実行する。
【0073】
図5Bの場合、130(MB)のCAダンプデータを圧縮した場合のサイズは、39(MB)(=130(MB)×0.3)である。また、BUD33内のCAダンプデータ領域は50(MB)である。すなわち、このCAダンプデータを圧縮する場合、CAダンプデータ領域には、11(MB)の余裕がある。そこで、吸い上げ処理部51は、この11(MB)の余裕を利用して、CAダンプデータのうち、最終10(MB)バイトの圧縮処理を省略する。言い換えると、吸い上げ処理部51は、130(MB)のCAダンプデータのうち、120(MB)のみを圧縮する。
【0074】
まず、120(MB)のダンプデータを圧縮して格納する処理について説明する。
図5Bに示すように、CAに異常が発生した吸い上げCMは、異常が発生したCAからダンプデータを吸い上げて、格納先である格納CMに吸い上げたダンプデータを転送する(ステップS31)。これにより、格納CMの吸い上げ処理部51は、受信したダンプデータを、記憶部37A(37B)のCAダンプ取得バッファ374に格納させる。そして、吸い上げ処理部51は、CAダンプ取得バッファ374から読出したダンプデータをCAダンプ圧縮バッファ375で圧縮する(ステップS32)。吸い上げ処理部51は、圧縮したダンプデータをBUD33内のCAダンプ格納領域331に格納させる(ステップS33)。
【0075】
続いて、10(MB)のダンプデータを圧縮せずに格納する処理について説明する。CAに異常が発生した吸い上げCMは、異常が発生したCAからダンプデータを吸い上げて、格納先である格納CMに吸い上げたダンプデータを転送する(ステップS31)。これにより、格納CMの吸い上げ処理部51は、受信したダンプデータを、記憶部37A(37B)のCAダンプ取得バッファ374に格納させる。そして、吸い上げ処理部51は、CAダンプ取得バッファ374から読出したダンプデータをBUD33内のCAダンプ格納領域331に格納させる(ステップS34)。
【0076】
ここで、ダンプデータを圧縮して格納する場合の吸い上げ処理部51による「CAダンプ吸い上げ時間」は、{(データ転送時間)+(データ圧縮時間)}×(CAダンプデータサイズ)+(データ格納時間)×(圧縮CAダンプデータサイズ)から算出される。すなわち、「CAダンプ吸い上げ時間」は、14.26(s)(=(0.5(ms/MB)+108.3(ms/MB))×120(MB)+33.3(ms/MB)×120(MB)×0.3)となる。また、この場合の「CAダンプ吸い上げ実行時間」は、(CAダンプ吸い上げ時間)÷{1−(CPUの使用率)}から算出される。すなわち、CAダンプ吸い上げ実行時間」は、67.9(s)(=14.26(s)÷(1−0.79))となる。
【0077】
また、ダンプデータを圧縮せずに格納する場合の吸い上げ処理部51による「CAダンプ吸い上げ時間」は、(データ転送時間)×(CAダンプデータサイズ)+(データ格納時間)×(圧縮CAダンプデータサイズ)から算出される。すなわち、「CAダンプ吸い上げ時間」は、105(ms)(=0.5(ms/MB)×10(MB)+33.3(ms/MB)×10(MB)×0.3)となる。また、この場合の「CAダンプ吸い上げ実行時間」は、(CAダンプ吸い上げ時間)÷{1−(CPUの使用率)}から算出される。すなわち、CAダンプ吸い上げ実行時間」は、0.5(s)(=105(ms)÷(1−0.79))となる。
【0078】
このように、120(MB)の吸い上げ処理部51によるダンプデータを圧縮して格納する処理時間は、67.9(s)であり、10(MB)のダンプデータを圧縮せずに格納する処理時間は、0.5(s)である。すなわち、総格納時間は、68.4(s)(=67.9(s)+0.5(s))であり、吸い上げ規定時間の70(s)以下となる。このように、吸い上げ処理部51は、ダンプデータを吸い上げることができる。なお、吸い上げ処理部51は、未圧縮なダンプデータに関しては、CAダンプ吸い上げ処理完了後に圧縮処理を行う。
【0079】
次に、
図5Cを用いて、未圧縮なダンプデータの圧縮処理について説明する。
図5Cに示すように、吸い上げ処理部51は、BUD33内のCAダンプ格納領域331から、未圧縮なダンプデータを読出してCAダンプ取得バッファ374に格納させる(ステップS41)。そして、吸い上げ処理部51は、CAダンプ取得バッファ374から読出したダンプデータをCAダンプ圧縮バッファ375で圧縮する(ステップS42)。吸い上げ処理部51は、圧縮したダンプデータをBUD33内のCAダンプ格納領域331に格納させる(ステップS43)。
【0080】
[ストレージシステムによる処理の処理手順]
次に、
図6〜
図8、
図9Aおよび
図9Bを用いて、ストレージシステムによる処理の処理手順を説明する。
図6を用いて、CAダンプの吸い上げ処理の処理手順を説明し、また、
図7を用いて、制限時間オーバー時のダンプ格納処理の処理手順を説明する。また、
図8を用いて、未圧縮ダンプの圧縮処理の処理手順を説明する。そして、
図9Aおよび
図9Bを用いて、吸い上げ先決定処理の処理手順を説明する。
【0081】
(CAダンプの吸い上げ処理)
図6は、CAダンプの吸い上げ処理の処理手順を示すフローチャートである。なお、吸い上げ処理部51は、ダンプデータの格納処理の実行を依頼された場合、以下の処理を実行する。
【0082】
図6に示すように、吸い上げ処理部51は、CAダンプ吸い上げ実行時間を算出する(ステップS101)。そして、吸い上げ処理部51は、CAダンプ吸い上げ実行時間が吸い上げ規定時間である70秒よりも長いか否かを判定する(ステップS102)。
【0083】
ここで、吸い上げ処理部51は、CAダンプ吸い上げ実行時間が吸い上げ規定時間である70秒よりも長いと判定する場合(ステップS102、Yes)、制限時間オーバー時のダンプ格納を実行し(ステップS103)、処理を終了する。
【0084】
一方、吸い上げ処理部51は、CAダンプ吸い上げ実行時間が吸い上げ規定時間である70秒よりも長くないと判定する場合(ステップS102、No)、通常時のダンプ格納を実行し(ステップS104)、処理を終了する。
【0085】
(ストレージシステムによる制限時間オーバー時のダンプ格納処理)
図7は、ストレージシステムによる制限時間オーバー時のダンプ格納処理の処理手順を示すフローチャートである。なお、吸い上げ処理部51は、CAダンプ吸い上げ実行時間が吸い上げ規定時間である70秒を超えると判定する場合、以下の処理を実行する。
【0086】
図7に示すように、吸い上げ処理部51は、格納済みデータサイズを0に設定する(ステップS201)。続いて、吸い上げ処理部51は、残りダンプデータサイズを設定する(ステップS202)。そして、吸い上げ処理部51は、ダンプデータを記憶部37A(37B)のCAダンプ取得バッファ374に取得する(ステップS203)。
【0087】
吸い上げ処理部51は、残り時間が所定の残り時間以内であるか否かを判定する(ステップS204)。ここでは、所定の残り時間を350msであるものとして説明する。吸い上げ処理部51は、残り時間が所定の残り時間以内ではないと判定する場合(ステップS204、No)、以下の処理を実行する。すなわち、吸い上げ処理部51は、BUD33のCAダンプ格納領域331のサイズから格納済みデータサイズを減じた値が、残りダンプサイズ以上であるか否かを判定する(ステップS205)。
【0088】
ここで、吸い上げ処理部51は、BUD33のCAダンプ格納領域331のサイズから格納済みデータサイズを減じた値が、残りダンプサイズ以上ではないと判定する場合(ステップS205、No)、以下の処理を実行する。すなわち、吸い上げ処理部51は、ダンプデータを圧縮し(ステップS206)、ステップS208に移行する。一方、吸い上げ処理部51は、BUD33のCAダンプ格納領域331のサイズから格納済みデータサイズを減じた値が、残りダンプサイズ以上であると判定する場合(ステップS205、Yes)、ステップS208に移行する。
【0089】
また、ステップS204において、吸い上げ処理部51は、残り時間が所定の残り時間以内であると判定する場合(ステップS204、Yes)、以下の処理を実行する。すなわち、吸い上げ処理部51は、BUD33のCAダンプ格納領域331のサイズから格納済みデータサイズを減じた値が、書込みダンプサイズ以上であるか否かを判定する(ステップS207)。
【0090】
ここで、吸い上げ処理部51は、BUD33のCAダンプ格納領域331のサイズから格納済みデータサイズを減じた値が、書込みダンプサイズ以上であると判定する場合(ステップS207、Yes)、ステップS208に移行する。一方、吸い上げ処理部51は、BUD33のCAダンプ格納領域331のサイズから格納済みデータサイズを減じた値が、書込みダンプサイズ以上ではないと判定する場合(ステップS207、No)、残り書込み領域をオーバーするため、処理を終了する。
【0091】
ステップS208において、吸い上げ処理部51は、BUD33のCAダンプ格納領域331にダンプデータを格納する(ステップS208)。そして、吸い上げ処理部51は、残りダンプデータサイズを更新し(ステップS209)、格納済みデータサイズを更新する(ステップS210)。
【0092】
続いて、吸い上げ処理部51は、ダンプデータを全て格納したか否かを判定する(ステップS211)。ここで、吸い上げ処理部51は、ダンプデータの全てを格納していないと判定する場合(ステップS211、No)、次のダンプデータの送信を依頼し(ステップS212)、ステップS203に移行する。一方、吸い上げ処理部51は、ダンプデータを全て格納したと判定する場合(ステップS211、Yes)、処理を終了する。
【0093】
(未圧縮ダンプの圧縮処理)
図8は、未圧縮ダンプの圧縮処理の処理手順を示すフローチャートである。なお、吸い上げ処理部51は、ダンプデータの格納処理の終了後に以下の処理を実行する。
図8に示すように、吸い上げ処理部51は、未圧縮ダンプデータを記憶部37A(37B)上のCAダンプ取得バッファ374に取得する(ステップS301)。続いて、吸い上げ処理部51は、取得したダンプデータを圧縮する(ステップS302)。そして、吸い上げ処理部51は、BUDダンプ領域に圧縮したダンプデータを格納する(ステップS303)。
【0094】
吸い上げ処理部51は、未圧縮データが存在するか否かを判定する(ステップS304)。ここで、吸い上げ処理部51は、未圧縮データが存在すると判定する場合(ステップS304、Yes)、ステップS301に移行する。一方、吸い上げ処理部51は、未圧縮データが存在しないと判定する場合(ステップS304、No)、ダンプヘッダを更新し(ステップS305)、処理を終了する。
【0095】
(吸い上げ先決定処理の手順)
図9Aおよび
図9Bは、実施例2に係る吸い上げ先決定処理の処理手順を示すフローチャートである。なお、吸い上げ先の対象となる各CPUには、あらかじめインデックスが振られているものとする。例えば、CM#0のメインCPUに「0」、CM#0のサブCPUに「1」、CM#1のメインCPUに「2」、CM#1のサブCPUに「3」がそれぞれ振られている。
【0096】
例えば、異常が発生したCAのダンプデータのサイズを含む吸い上げ先CPU取得コマンドを受信した吸い上げ先決定部52は、ダンプデータのサイズから標準のCAダンプ吸い上げ時間を、式(2)を用いて算出する(ステップS401)。そして、吸い上げ先決定部52は、算出したCAダンプ吸い上げ時間を吸い上げ制御テーブル371に格納する。
【0097】
そして、吸い上げ先決定部52は、各CPUの使用率とI/Oコマンド数を各CPUから取得する(ステップS402)。各CPUの使用率は、各CMのCPU使用率情報372に記憶されている。各CPUのI/Oコマンド数は、各CMのコマンド数情報373に記憶されている。
【0098】
そして、吸い上げ先決定部52は、標準の吸い上げ時間および各CPUの使用率から各CPUのCAダンプ吸い上げ実行時間を、式(1)を用いて算出する(ステップS403)。そして、吸い上げ先決定部52は、算出した各CPUのCAダンプ吸い上げ実行時間を吸い上げ制御テーブル371に格納する。
【0099】
さらに、吸い上げ先決定部52は、I/Oコマンド数から各CPUのI/O処理時間を算出する(ステップS404)。そして、吸い上げ先決定部52は、算出した各CPUのI/O処理時間を吸い上げ制御テーブル371に格納する。
【0100】
続いて、吸い上げ先決定部52は、候補CPUを初期値(例えば、0xFF)に設定する(ステップS405)。なお、候補CPUとは、吸い上げ先CPUの候補を示す変数であり、候補となるCPUに振られたインデックスの値が設定される。また、吸い上げ先決定部52は、格納時間最短CPUを初期値(例えば、0xFF)に設定する(ステップS406)。なお、格納時間最短CPUとは、ダンプデータの格納時間が最短のCPUを示す変数であり、格納時間が最短のCPUに振られたインデックスの値が設定される。
【0101】
そして、吸い上げ先決定部52は、Indexに吸い上げ先の対象となるCPUのインデックスの値0を設定し、確認CPUにIndexに設定された値を設定する(ステップS407)。なお、Indexとは、変数であり、各CPUに振られたインデックスの値が設定される。また、確認CPUとは、吸い上げ先CPUとなるか否かを確認するCPUを示す変数であり、CPUに振られたインデックスの値が設定される。
【0102】
続いて、吸い上げ先決定部52は、Indexに設定された値が吸い上げ先の対象となるCPUの最大数と等しいか否かを判定する(ステップS408)。
【0103】
一方、Indexに設定された値がCPUの最大数と等しくないと判定した場合(ステップS408、No)、吸い上げ先決定部52は、ステップS414に移行する。
【0104】
ステップS414では、吸い上げ先決定部52は、吸い上げ制御テーブル371に記憶された実行中フラグに基づいて、確認CPUの実行中フラグがONであるか否かを判定する(ステップS414)。確認CPUの実行中フラグがONであると判定した場合(ステップS414、Yes)、吸い上げ先決定部52は、次のCPUを確認すべく、ステップS422に移行する。
【0105】
確認CPUの実行中フラグがONでないと判定した場合(ステップS414、No)、吸い上げ先決定部52は、格納時間最短CPUが初期値であるか否かを判定する(ステップS415)。格納時間最短CPUが初期値であると判定した場合(ステップS415、Yes)、吸い上げ先決定部52は、格納時間最短CPUに確認CPUを設定すべく、ステップS417に移行する。
【0106】
格納時間最短CPUが初期値でないと判定した場合(ステップS415、No)、吸い上げ先決定部52は、確認CPUのCA吸い上げ実行時間が格納時間最短CPUのCA吸い上げ実行時間以下であるか否かを判定する(ステップS416)。確認CPUのCA吸い上げ実行時間が格納時間最短CPUのCA吸い上げ実行時間以下であると判定した場合(ステップS416、Yes)、吸い上げ先決定部52は、格納時間最短CPUに確認CPUを設定すべく、ステップS417に移行する。
【0107】
ステップS417では、吸い上げ先決定部52は、格納時間最短CPUに確認CPUを設定する(ステップS417)。すなわち、吸い上げ先決定部52は、確認したCPUの中で格納時間が最短のCPUとして現在確認中の確認CPUを設定する。
【0108】
一方、確認CPUが格納時間最短CPUのCA吸い上げ実行時間以下でない場合(ステップS416、No)、吸い上げ先決定部52は、確認CPUのCA吸い上げ実行時間が吸い上げ完了規定時間以下であるか否かを判定する(ステップS418)。ここで、吸い上げ完了規定時間とは、あらかじめ定められた吸い上げに許される規定時間を示す。確認CPUのCA吸い上げ実行時間が吸い上げ完了規定時間より大きいと判定した場合(ステップS418、No)、吸い上げ先決定部52は、次のCPUを確認すべく、ステップS422に移行する。
【0109】
確認CPUのCA吸い上げ実行時間が吸い上げ完了規定時間以下であると判定した場合(ステップS418、Yes)、吸い上げ先決定部52は、候補CPUが初期値であるか否かを判定する(ステップS419)。候補CPUが初期値でないと判定した場合(ステップS419、No)、吸い上げ先決定部52は、確認CPUのI/O処理時間が候補CPUのI/O処理時間以下であるか否かを判定する(ステップS420)。ここで、確認CPUのI/O処理時間が候補CPUのI/O処理時間より大きいと判定した場合(ステップS420、No)、吸い上げ先決定部52は、次のCPUを確認すべく、ステップS422に移行する。
【0110】
候補CPUが初期値である場合(ステップS419、Yes)または確認CPUのI/O処理時間が候補CPUのI/O処理時間以下である場合(ステップS420、Yes)、吸い上げ先決定部52は、ステップS421に移行する。ステップS421では、吸い上げ先決定部52は、候補CPUに確認CPUを設定する(ステップS421)。すなわち、吸い上げ先決定部52は、確認したCPUの中で、CA吸い上げ実行時間が吸い上げ完了規定時間より短く、且つI/O処理時間が最短のCPUとして、現在確認中の確認CPUを設定する。
【0111】
ステップS422では、吸い上げ先決定部52は、Indexを1加算し、確認CPUをIndexに更新する(ステップS422)。そして、吸い上げ先決定部52は、ステップS408に移行する。
【0112】
続いて、ステップS408では、Indexに設定された値が吸い上げ先の対象となるCPUの最大数と等しいと判定した場合(ステップS408、Yes)、吸い上げ先決定部52は、候補CPUが初期値であるか否かを判定する(ステップS409)。候補CPUが初期値でないと判定した場合(ステップS409、No)、吸い上げ先決定部52は、候補CPUを吸い上げ先のCPUに決定し(ステップS410)、吸い上げ先決定処理を終了する。
【0113】
候補CPUが初期値であると判定した場合(ステップS409、Yes)、吸い上げ先決定部52は、格納時間最短CPUを吸い上げ先のCPUに決定し(ステップS411)、吸い上げ先決定処理を終了する。
【0114】
[実施例2の効果]
上述してきたように、実施例2に係るストレージシステム2Aは、各CPUで処理しているI/Oコマンド数を利用することにより、I/Oコマンドを最も処理していないCPUを選択して、CAダンプの吸い上げを実施する。すなわち、実施例2に係るストレージシステム2Aは、吸い上げCMと格納CMとを分離させる。この結果、実施例2に係るストレージシステム2Aは、CAのダンプデータを吸い上げる処理がストレージシステム2Aの性能に及ぼす影響を小さくすることが可能となり、CAダンプの吸い上げが完了できる可能性が高くなる。
【0115】
また、実施例2に係るストレージシステム2Aは、CAダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合、所定の残り時間に達するまでは記憶部37Aに保持するダンプデータを圧縮してBUD33に格納する。また、ストレージシステム2Aは、所定の残り時間に達すると、BUD33におけるダンプデータの格納領域の容量からBUD33に格納済みのダンプデータの容量を減算した値を算出する。ここで、ストレージシステム2Aは、算出した値がBUD33に未格納のダンプデータの容量以上の場合、記憶部37Aに保持するダンプデータを圧縮せずBUD33に格納する。このため、ストレージシステム2Aは、CAダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合でも、CA31から吸い上げたダンプデータを確実に記録できる。
【0116】
また、ストレージシステム2Aは、吸い上げ処理を完了後、圧縮せずBUD33に格納したダンプデータを記憶部37A(37B)に読出して圧縮し、BUD33に格納する。これにより、ストレージシステム2Aは、BUD33のCAダンプ格納領域331を有効に利用できる。
【0117】
また、ストレージシステム2Aは、CAダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合、ダンプデータの圧縮を省略するが、それでも間に合わない場合はBUD33への格納を省略して、ダンプデータを記憶部37A(37B)に保持する。これにより、ストレージシステム2Aは、CAダンプ吸い上げ処理を見かけ上、早期に終了させる。ストレージシステム2Aは、この手段を用いることで、処理時間をさらに数100ミリ秒短縮することができ、また、CPUが高負荷状況でもCAダンプを格納できる確率を向上させる。
【0118】
また、BUD33への格納を省略した場合、記憶部37A(37B)に未圧縮のダンプデータが大量に存在することになる。CAダンプデータサイズは約130(MB)であり、通常、記憶部37A(37B)の容量は1CPUごとに64(MB)から168(MB)である。このため、ストレージシステム2Aは、記憶部37A(37B)の残り記憶容量が足りない場合、途中から別CMが有する記憶部37A(37B)を使用してダンプを格納する。言い換えると、吸い上げ処理部51は、異常が発生したCA31から取得し、自身と接続する記憶部37A(37B)に保持するダンプデータをBUD33に未格納の場合、他のCMの記憶部37A(37B)に保持させるようにしてもよい。これにより、ストレージシステム2Aは、CAダンプを格納できる確率を向上させる。
【0119】
なお、実施例2に係るストレージシステム2Aにおいて、CM3Bにも吸い上げ先決定部52を備えるようにしてもよい。なお、この場合、CM3Bの記憶部37Bには、吸い上げ制御テーブル371が保持される。
【実施例3】
【0120】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例3では、本発明に含まれる他の実施例について説明する。
【0121】
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【0122】
また、実施例1に係るストレージシステム2において、メイン制御部34は、CA31に異常が発生した場合、ストレージシステム2内の制御部の使用率と、I/Oコマンド数とに基づいて、CAから吸い上げたダンプデータの格納先を選択するようにしてもよい。
【0123】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更してもよい。また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0124】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0125】
(付記1)記憶装置へのデータの入出力を制御する複数の制御装置を備えたストレージシステムにおいて、
各制御装置は、
前記記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、前記インタフェース部から前記命令を受け取って実行する演算処理部とを有し、
各演算処理部は、
異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持するとともに、該格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは該記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると該記憶部に保持するダンプデータを圧縮せずに該格納部に格納する
ことを特徴とするストレージシステム。
【0126】
(付記2)各演算処理部は、
前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量以上の場合、所定の残り時間に達する前でも、該未格納のダンプデータを圧縮せずに該格納部に格納する
ことを特徴とする付記1に記載のストレージシステム。
【0127】
(付記3)各演算処理部は、更に、
前記格納する処理が完了後、圧縮せずに前記格納部に格納したダンプデータを前記記憶部に読出して圧縮し、圧縮したダンプデータを該格納部に格納する
ことを特徴とする付記1または2に記載のストレージシステム。
【0128】
(付記4)各演算処理部は、
所定の残り時間に達すると、前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量未満の場合、該未格納のダンプデータを該格納部に格納せずに前記記憶部に保持する
ことを特徴とする付記1に記載のストレージシステム。
【0129】
(付記5)各演算処理部は、更に、
前記格納部に未格納のダンプデータを他の演算処理部の記憶部に保持させる
ことを特徴とする付記4に記載のストレージシステム。
【0130】
(付記6)各演算処理部は、更に、
前記格納する処理が完了後、前記記憶部に保持するダンプデータを圧縮して前記格納部に格納する
ことを特徴とする付記4または5に記載のストレージシステム。
【0131】
(付記7)記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、該インタフェース部から前記命令を受け取って実行する演算処理部とを備えた制御装置を複数有するストレージシステムの制御方法において、
各演算処理部が、
異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持するとともに、該格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは該記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると該記憶部に保持するダンプデータを圧縮せずに該格納部に格納する
処理を含んだことを特徴とするストレージシステムの制御方法。
【0132】
(付記8)各演算処理部が、
前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量以上の場合、所定の残り時間に達する前でも、該未格納のダンプデータを圧縮せずに該格納部に格納する
ことを特徴とする付記7に記載のストレージシステムの制御方法。
【0133】
(付記9)各演算処理部が、更に、
前記格納する処理が完了後、圧縮せずに前記格納部に格納したダンプデータを前記記憶部に読出して圧縮し、圧縮したダンプデータを該格納部に格納する
処理を含んだことを特徴とする付記7または8に記載のストレージシステムの制御方法。
【0134】
(付記10)各演算処理部が、
所定の残り時間に達すると、前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量未満の場合、該未格納のダンプデータを該格納部に格納せずに前記記憶部に保持する
ことを特徴とする付記7に記載のストレージシステムの制御方法。
【0135】
(付記11)各演算処理部が、更に、
前記格納部に未格納のダンプデータを他の演算処理部の記憶部に保持させる
処理を含んだことを特徴とする付記10に記載のストレージシステムの制御方法。
【0136】
(付記12)各演算処理部が、更に、
前記格納する処理が完了後、前記記憶部に保持するダンプデータを圧縮して前記格納部に格納する
処理を含んだことを特徴とする付記10または11に記載のストレージシステムの制御方法。