(57)【要約】【課題】確実にダンプデータを記録すること。【解決手段】ストレージシステムは、記憶装置へのデータの入出力を制御する複数の制御装置を備える。各制御装置は、記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、インタフェース部から前記命令を受け取って実行する演算処理部とを有する。各演算処理部は、異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持する。また、各演算処理部は、格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると記憶部に保持するダンプデータを圧縮せずに格納部に格納する。【選択図】図１
2014010693.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置へのデータの入出力を制御する複数の制御装置を備えたストレージシステムにおいて、
各制御装置は、
前記記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、前記インタフェース部から前記命令を受け取って実行する演算処理部とを有し、
各演算処理部は、
異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持するとともに、該格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは該記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると該記憶部に保持するダンプデータを圧縮せずに該格納部に格納する
ことを特徴とするストレージシステム。
【請求項２】
各演算処理部は、
前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量以上の場合、所定の残り時間に達する前でも、該未格納のダンプデータを圧縮せずに該格納部に格納する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
各演算処理部は、更に、
前記格納する処理が完了後、圧縮せずに前記格納部に格納したダンプデータを前記記憶部に読出して圧縮し、圧縮したダンプデータを該格納部に格納する
ことを特徴とする請求項１または２に記載のストレージシステム。
【請求項４】
各演算処理部は、
所定の残り時間に達すると、前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量未満の場合、該未格納のダンプデータを該格納部に格納せずに前記記憶部に保持する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
各演算処理部は、更に、
前記格納部に未格納のダンプデータを他の演算処理部の記憶部に保持させる
ことを特徴とする請求項４に記載のストレージシステム。
【請求項６】
各演算処理部は、更に、
前記格納する処理が完了後、前記記憶部に保持するダンプデータを圧縮して前記格納部に格納する
ことを特徴とする請求項４または５に記載のストレージシステム。
【請求項７】
記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、該インタフェース部から前記命令を受け取って実行する演算処理部とを備えた制御装置を複数有するストレージシステムの制御方法において、
各演算処理部が、
異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持するとともに、該格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは該記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると該記憶部に保持するダンプデータを圧縮せずに該格納部に格納する
処理を含んだことを特徴とするストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムおよびストレージシステムの制御方法に関する。
【背景技術】
【０００２】
ストレージシステムでは、コントローラモジュール（Controller  Module：以下ＣＭと記す）が複数のディスク装置へのデータ制御を実施する。例えば、ＣＭは、ホストコンピュータとのインタフェースであるチャンネルアダプタ（Channel  Adapter：以下ＣＡと記す）を介して、ホストコンピュータからディスク装置に対するＩ／Ｏ（Input/Output）コマンドを受け付ける。そして、ＣＭは、受け付けたＩ／Ｏコマンドに基づいて、ディスク装置へのデータの入出力を制御する。
【０００３】
ＣＡの中には、内部のファイルやメモリの内容をダンプデータ（障害情報）として記録するダンプ機能を有するものが存在する。ダンプ機能を有するＣＡに異常が発生すると、ＣＭ内のＣＰＵ（Central  Processing  Unit）は、異常が発生したＣＡからダンプデータを吸い上げてシステム内のＢＵＤ（Bootup  and  Utility  Device）と呼ばれる記憶装置に格納する。なお、ＣＰＵがＣＡからダンプデータを吸い上げてからＢＵＤに格納が完了するまでの時間のことを「吸い上げ実行時間」と称し、ＣＡからダンプデータを吸い上げてからＢＵＤに格納する処理のことを「吸い上げ処理」と称する。
【０００４】
また、吸い上げ処理には、所定の規定時間が設定される。このようなことから、ストレージシステムは、吸い上げ処理の開始前に「吸い上げ実行時間」を予測し、規定時間内で処理が終了するか否かを判定する場合がある。ここで、ストレージシステムは、予測した「吸い上げ実行時間」が規定時間内である場合、ＣＡから吸い上げたダンプデータは、確実にＢＵＤに記録可能であると判定する。なお、この「吸い上げ実行時間」は、ダンプデータの転送時間、ダンプデータの圧縮時間、ダンプデータの格納時間、ダンプデータのサイズおよびＣＰＵの使用率などに基づいて算出される。
【０００５】
このようにしてダンプデータが吸い上げられた後に、異常が発生したＣＡは、ＣＭから切り離される。また、ＢＵＤに格納されたダンプデータは、障害情報を含んでおり、ＣＡに生じた異常の解析や修復に利用される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３４５０８号公報
【特許文献２】特開２００７−３３４６６８号公報
【特許文献３】特開２００５−２９３２２４号公報
【特許文献４】特開２００３−２７１４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の技術では、確実にダンプデータを記録することができない場合がある。例えば、ＣＰＵの使用率が高い場合、「吸い上げ実行時間」が規定時間を超える可能性がある。この場合、ＣＰＵは、ＣＡから吸い上げたダンプデータをＢＵＤに格納する処理を所定の規定時間内に完了することができない。この結果、ストレージシステムは、ＣＡから吸い上げたダンプデータの一部をＢＵＤに格納できない。
【０００８】
１つの側面では、本発明は、確実にダンプデータを記録することができるストレージシステムおよびストレージシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するストレージシステムは、一つの態様において、記憶装置へのデータの入出力を制御する複数の制御装置を備える。各制御装置は、記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、インタフェース部から前記命令を受け取って実行する演算処理部とを有する。各演算処理部は、異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持する。また、各演算処理部は、格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると記憶部に保持するダンプデータを圧縮せずに格納部に格納する。
【発明の効果】
【００１０】
１実施形態におけるストレージシステムによれば、確実にダンプデータを記録することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るストレージシステムの構成を示す機能ブロック図である。
【図２】図２は、実施例２に係るストレージシステムの構成を示す機能ブロック図である。
【図３】図３は、実施例２に係る吸い上げ制御テーブルのデータ構造の一例を示す図である。
【図４】図４は、吸い上げ先決定部の処理動作の一例を示す図である。
【図５Ａ】図５Ａは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間内である場合の吸い上げ処理部の処理動作の一例を示す図である。
【図５Ｂ】図５Ｂは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合の吸い上げ処理部の処理動作の一例を示す図である。
【図５Ｃ】図５Ｃは、未圧縮なダンプデータの圧縮処理の処理動作の一例を示す図である。
【図６】図６は、ＣＡダンプの吸い上げ処理の処理手順を示すフローチャートである。
【図７】図７は、ストレージシステムによる制限時間オーバー時のダンプ格納処理の処理手順を示すフローチャートである。
【図８】図８は、未圧縮ダンプの圧縮処理の処理手順を示すフローチャートである。
【図９Ａ】図９Ａは、実施例２に係る吸い上げ先決定処理の処理手順を示すフローチャートである。
【図９Ｂ】図９Ｂは、実施例２に係る吸い上げ先決定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するストレージシステムおよびストレージシステムの制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［実施例１に係るストレージシステムの構成］
図１は、実施例１に係るストレージシステム２の構成を示す機能ブロック図である。図１に示すように、実施例１に係るストレージシステム２は、コントローラモジュール（Controller  Module：以下ＣＭと記す）３と、ディスク４とを有する。なお、ストレージシステム２が有するＣＭの数は、１以上であれば図１に示した数に限定されるものではない。また、ストレージシステム２が有するディスク４の数は、図１に示した数に限定されるものではない。
【００１４】
また、実施例１に係るストレージシステム２は、上位装置であるホストコンピュータ１と接続する。そして、ストレージシステム２は、ホストコンピュータ１からディスク４に対するＩ／Ｏ（Input/Output）コマンドを受け付け、受け付けたＩ／Ｏコマンドを制御する。なお、ストレージシステム２と接続するホストコンピュータ１の数は、図１に示した数に限定されるものではない。
【００１５】
ＣＭ３は、ディスク４へのデータの入出力を制御する装置である。図１は、ＣＭ３が１つである場合を示す。ディスク４は、データを記憶する記憶装置であり、例えばＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）等に対応する。
【００１６】
［ＣＭの機能構成］
ＣＭ３は、複数のチャンネルアダプタ（Channel  Adapter：以下ＣＡと記す）３１とＩ／Ｏコントローラ（Input/Output  Controller：以下ＩＯＣと記す）３２とを有する。また、ＣＭ３は、ＢＵＤ（Bootup  and  Utility  Device）３３とメイン制御部３４とサブ制御部３５と記憶部３７とを有する。なお、メイン制御部３４とサブ制御部３５とを区別しない場合には、制御部と記載する。また、ＣＡと当該ＣＡが存在するＣＭ間通信を行うパスは１パスである。また、ＣＭ３が有する制御部の数は、図１に示した数に限定されるものではない。例えば、ＣＭ３は、制御部を一つ有するようにしてもよい。
【００１７】
ＣＡ３１は、ホストコンピュータ１と通信接続する通信インタフェースである。例えば、ＣＡ３１は、ディスク４に記憶されるデータの入出力に関わるコマンドであるＩ／Ｏコマンドをホストコンピュータ１から受け付ける。なお、ＣＡ３１は、ＣＭ３内に複数存在し、図１では、４台存在する場合を示している。
【００１８】
また、これらＣＡ３１は、内部のファイルやメモリの内容をダンプデータとして記録するダンプ機能を有する。また、ＣＡ３１が保持するダンプデータは、ＣＡ３１に障害が発生した場合、メイン制御部３４により吸い上げられ、ストレージシステム２内のＢＵＤ３３に格納される。なお、以下の記載では、ＣＡ３１が保持するダンプデータのことを「ＣＡダンプ」と称する。また、ＣＭまたはＣＭが有するＣＡなどの各部に障害が発生して切り離される処理を、「デグレード処理」という。
【００１９】
ＩＯＣ３２は、ディスク４と通信接続する通信インタフェースである。ＢＵＤ３３は、図示しないＣＡダンプ格納領域３３１を有し、ＣＡ３１に障害が発生した場合に、メイン制御部３４によりＣＡ３１から吸い上げられたダンプデータを記憶する記憶装置である。このＢＵＤ３３に格納されたダンプデータは、後に、障害が発生したＣＡ３１の障害の解析のために利用される。
【００２０】
メイン制御部３４は、ＣＡ３１と接続し、自身のＣＭ３における処理を分散して実行する場合のメインの制御部である。以下では、このメイン制御部３４は、ＣＰＵ（Central  Processing  Unit）であるものとして説明するが、メイン制御部３４は、ＭＰＵ（Micro  Processing  Unit）などの電子回路であってもよい。また、メイン制御部３４に含まれる各機能部は、例えば、ＣＭ３を制御するＣＦＷ（Controller  Module  Firmware）によってそれぞれ実現される。
【００２１】
また、メイン制御部３４は、自身と接続するＣＡ３１に障害が発生した場合に、ＣＡ３１が保持するダンプデータの吸い上げ処理を実行する。例えば、メイン制御部３４は、ＣＡ３１から吸い上げたダンプデータを記憶部３７に保持させ、記憶部３７でダンプデータを圧縮してからＢＵＤ３３に格納する。なお、ＣＡ３１からダンプデータを吸い上げてからＢＵＤ３３に格納する処理のことを「吸い上げ処理」と称する。なお、この吸い上げ処理には、制限時間が設定される。また、ストレージシステム２において、吸い上げ処理の実行時間が制限時間を超える場合、吸い上げ処理はタイムアウトする。
【００２２】
例えば、メイン制御部３４は、ＣＡ３１に異常が生じた場合、異常が生じたＣＡ３１から吸い上げたダンプデータを記憶部３７に保持する。そして、メイン制御部３４は、ダンプデータをＢＵＤ３３に格納する時間が制限時間を超える場合、所定の残り時間に達するまでは記憶部３７に保持するダンプデータを圧縮してＢＵＤ３３に格納する。また、メイン制御部３４は、所定の残り時間に達すると記憶部３７に保持するダンプデータを圧縮せずＢＵＤ３３に格納する。
【００２３】
サブ制御部３５は、ＣＡ３１と接続し、自身のＣＭ３における処理を分散して実行する場合のサブの制御部である。なお、以下では、このサブ制御部３５は、ＣＰＵであるものとして説明するが、サブ制御部３５は、ＭＰＵなどの電子回路であってもよい。また、サブ制御部３５に含まれる各機能部は、例えば、ＣＭ３を制御するＣＦＷによってそれぞれ実現される。
【００２４】
記憶部３７は、メイン制御部３４またはサブ制御部３５が処理に用いる各種データを記憶する。また、記憶部３７は、図示しないＣＡダンプ取得バッファ３７４とＣＡダンプ圧縮バッファ３７５とを有する。
【００２５】
このように、実施例１に係るストレージシステム２において、ＣＭ３は、ダンプデータをＢＵＤ３３に格納する時間が制限時間を超える場合、所定の残り時間に達するまでは記憶部３７に保持するダンプデータを圧縮してＢＵＤ３３に格納する。また、ＣＭ３は、所定の残り時間に達すると記憶部３７に保持するダンプデータを圧縮せずＢＵＤ３３に格納する。このため、ＣＭ３は、メイン制御部３４のＣＰＵ使用率やＩ／Ｏ負荷が高く、ダンプデータをＢＵＤ３３に格納する時間が制限時間を超える場合でも、ＣＡ３１から吸い上げたダンプデータを確実に記録できる。
【実施例２】
【００２６】
実施例１では、異常が発生したＣＡと接続するメイン制御部３４が、ダンプデータの吸い上げ処理を実行するとともに他の制御部にダンプデータの吸い上げ処理を依頼する場合について説明した。ところで、ＣＭを複数有するストレージシステムでは、ダンプデータの吸い上げ処理を開始する時点で、異常が発生したＣＡと接続するメイン制御部３４のＣＰＵ使用率やＩ／Ｏ負荷が高い場合であっても、他の制御部のＣＰＵ使用率やＩ／Ｏ負荷が低い場合がある。あるいは、他の制御部のＣＰＵ使用率やＩ／Ｏ負荷も高い場合であっても、異常が発生したＣＡと接続するメイン制御部３４のＣＰＵ使用率やＩ／Ｏ負荷よりは低い場合がある。このようなことから、あるＣＡに異常が発生した場合、ＣＰＵ使用率やＩ／Ｏ負荷の低い制御部をストレージシステム内から選択し、選択した制御部に格納処理を実行させてもよいものである。
【００２７】
そこで、実施例２では、ストレージシステム内に設定したマスターＣＭが、ＣＡに異常が発生した場合、ＣＰＵ使用率やＩ／Ｏ負荷の低い制御部を選択し、選択した制御部に格納処理を実行させる例を説明する。
【００２８】
［実施例２に係るストレージシステムの構成］
図２は、実施例２に係るストレージシステム２Ａの構成を示す機能ブロック図である。図２に示すように、ストレージシステム２Ａは、ＣＭ３Ａと、ＣＭ３Ｂと、ディスク４と、フロントエンドルータ（Front-End  Router：以下ＦＲＴと記す）５とを有する。また、ストレージシステム２Ａは、バックエンドルータ（Back-End  Router：以下ＢＲＴと記す）６と、ドライブエンクロージャー（Drive  Enclosure：以下ＤＥと記す）７とを有する。また、ストレージシステム２Ａは、上位装置であるホストコンピュータ１と接続する。なお、実施例２に係るストレージシステム２Ａにおいて、図１に示したストレージシステム２の構成と同様の機能を有する各部については、同一の符号を付与し、詳細な説明を省略する。また、図２に示す例では、ストレージシステム２Ａが有するＣＭの数はＣＭ３Ａが１であり、ＣＭ３Ｂが７であり、計８とするが、３以上であれば図２に示した数に限定されるものではない。なお、７つのＣＭ３Ｂのうち４つのみを図示する。また、ストレージシステム２Ａが有するディスク４の数は、図２に示した数に限定されるものではない。
【００２９】
ＦＲＴ５は、ＣＭ３ＡとＣＭ３Ｂとの間を接続する。なお、ＦＲＴ５は、各ＣＭ間通信を行うパスを４パス有する。ＢＲＴ６は、ＣＭ３ＡまたはＣＭ３Ｂとディスク４との間を接続する。ＤＥ７は、ディスク４を搭載する筐体である。
【００３０】
ここで、例えば、ＣＭ３ＡをマスターＣＭとし、ＣＭ３ＢをスレーブＣＭとする。なお、マスターＣＭとは、ＣＡに異常が発生した場合、格納処理の実行を依頼するメイン制御部あるいはサブ制御部をストレージシステム２Ａ内から選択する役割を果たすＣＭである。また、説明の便宜上、ＣＭ３ＡをＣＭ＃０と適宜記載する。また、ＣＭ３Ｂそれぞれを区別する場合には、図２に示すように、ＣＭ＃１、ＣＭ＃５、ＣＭ＃６およびＣＭ＃７と適宜記載する。
【００３１】
［マスターＣＭの機能構成］
ＣＭ３Ａは、ディスク４へのデータの入出力を制御する装置であり、複数のＣＡ３１とＩＯＣ３２とＢＵＤ３３とメイン制御部３４Ａとサブ制御部３５ＡとＣＭ間通信ドライバ３６と記憶部３７Ａとを有する。なお、実施例２に係るＣＭ３Ａにおいて、図１に示したＣＭ３の構成と同様の機能を有する各部については、同一の符号を付与し、詳細な説明を省略する。また、ＣＭ３Ａが有する制御部の数は、図２に示した数に限定されるものではない。例えば、ＣＭ３Ａは、制御部を一つ有するようにしてもよい。
【００３２】
メイン制御部３４Ａは、自己のＣＭ３Ａにおける処理を分散して実行する場合のメインの制御部であり、吸い上げ処理部５１と、吸い上げ先決定部５２と、情報取得部５３とを有する。なお、以下では、このメイン制御部３４Ａは、ＣＰＵであるものとして説明するが、メイン制御部３４Ａは、ＭＰＵなどの電子回路であってもよい。また、メイン制御部３４Ａに含まれる各機能部は、例えば、ＣＭ３Ａを制御するＣＦＷによってそれぞれ実現される。
【００３３】
吸い上げ処理部５１は、自制御部と接続するＣＡ３１の異常を検知すると、異常を検知したＣＡ３１のダンプデータの吸い上げ先をマスターＣＭ３Ａの吸い上げ先決定部５２に決定させる。例えば、吸い上げ処理部５１は、マスターＣＭ３Ａの吸い上げ先決定部５２に対し、ＣＭ間通信ドライバ３６を介して、吸い上げ先を取得したい旨の要求を送信する。このとき、吸い上げ処理部５１は、ダンプデータのサイズをマスターＣＭ３Ａの吸い上げ先決定部５２に転送する。
【００３４】
そして、吸い上げ処理部５１は、マスターＣＭ３Ａの吸い上げ先決定部５２に決定させた吸い上げ先に対して、異常を検知したＣＡ３１のダンプデータの吸い上げを依頼する。
【００３５】
また、吸い上げ処理部５１は、他の吸い上げ処理部５１からダンプデータの吸い上げを依頼された場合、異常が発生したＣＡ３１のダンプデータの吸い上げ処理を実行する。例えば、吸い上げ処理部５１は、異常が発生したＣＡ３１のダンプデータを取得し、自身と接続する記憶部３７Ａに保持する。
【００３６】
そして、吸い上げ処理部５１は、ダンプデータの吸い上げ処理の実行時間が制限時間を超えるか否かを判定する。例えば、吸い上げ処理部５１は、以下の式（１）を用いてダンプデータの吸い上げ処理の実行時間を算出する。なお、式（１）は、「ＣＡダンプ吸い上げ実行時間」＝（ＣＡダンプ吸い上げ時間）÷｛１−（制御部の使用率）｝である。
【００３７】
また、吸い上げ処理部５１は、式（１）中の「ＣＡダンプ吸い上げ時間」を、以下の式（２）を用いて算出する。なお、式（２）は、「ＣＡダンプ吸い上げ時間」＝｛（データ転送時間）＋（データ圧縮時間）×（ＣＡダンプデータサイズ）＋（ＢＵＤ格納時間）×（圧縮ＣＡダンプデータサイズ）｝である。
【００３８】
ここで、データサイズとは、異常が発生したＣＡのダンプデータのデータサイズを示す。データ転送時間とは、異常が発生したＣＡから記憶部３７Ａ（３７Ｂ）へ１ＭＢ（ＭＢ：ＭＢｙｔｅｓ）のダンプデータを転送する場合の通信時間を示す。データ圧縮時間とは、１ＭＢのデータを圧縮する場合にかかる時間を示す。ＢＵＤ格納時間とは、１ＭＢの圧縮データを格納する場合に要する時間を示す。なお、本実施例中では、制限時間が７０（ｓ）に設定されるものとして説明するが、この制限時間は７０（ｓ）に限定されるものではなく、変更可能である。
【００３９】
ここで、吸い上げ処理部５１は、制限時間を超えないと判定する場合、通常時のダンプ格納処理を実行する。すなわち、吸い上げ処理部５１は、通常時のダンプ格納処理では、記憶部３７Ａに保持させたダンプデータを圧縮し、圧縮したダンプデータをＢＵＤ３３に格納する。
【００４０】
一方、吸い上げ処理部５１は、制限時間を超える場合、制限時間オーバー時のダンプ格納処理を実行する。すなわち、吸い上げ処理部５１は、制限時間オーバー時のダンプ格納処理では、所定の残り時間に達するまでは記憶部３７Ａに保持するダンプデータを圧縮してＢＵＤ３３に格納する。なお、本実施例中では、所定の残り時間が３５０（ｍｓ）に設定されるものとして説明するが、この所定の残り時間は３５０（ｍｓ）に限定されるものではなく、変更可能である。
【００４１】
そして、吸い上げ処理部５１は、所定の残り時間に達すると、ＢＵＤ３３におけるダンプデータの格納領域の容量からＢＵＤ３３に格納済みのダンプデータの容量を減算した値を算出する。ここで、吸い上げ処理部５１は、算出した値がＢＵＤ３３に未格納のダンプデータの容量以上の場合、記憶部３７Ａに保持するダンプデータを圧縮せずＢＵＤ３３に格納する。
【００４２】
また、吸い上げ処理部５１は、ダンプデータの吸い上げ処理が完了後、圧縮せずにＢＵＤ３３に格納したダンプデータを記憶部３７Ａに読出して圧縮し、圧縮したダンプデータをＢＵＤ３３に格納する。
【００４３】
また、吸い上げ処理部５１は、所定の残り時間に達し、ＢＵＤ３３におけるダンプデータの格納領域の容量からＢＵＤ３３に格納済みのダンプデータの容量を減算した値が、ＢＵＤ３３に未格納のダンプデータの容量未満の場合、以下の処理を実行する。すなわち、吸い上げ処理部５１は、未格納のダンプデータをＢＵＤ３３に格納せずに記憶部３７Ａに保持する。そして、吸い上げ処理部５１は、ダンプデータの吸い上げ処理が完了後、記憶部３７Ａに保持するダンプデータを圧縮してＢＵＤ３３に格納する。
【００４４】
また、吸い上げ処理部５１は、所定の残り時間に達する前であっても、以下の場合には、未格納のダンプデータを圧縮せずＢＵＤ３３に格納するようにしてもよい。すなわち、吸い上げ処理部５１は、ＢＵＤ３３におけるダンプデータの格納領域の容量からＢＵＤ３３に格納済みのダンプデータの容量を減算した値がＢＵＤ３３に未格納のダンプデータの容量以上の場合、未格納のダンプデータを圧縮せずＢＵＤ３３に格納する。
【００４５】
吸い上げ先決定部５２は、メイン制御部３４Ａ、メイン制御部３４Ｂまたはサブ制御部３５Ａの吸い上げ処理部５１から吸い上げ先の決定を依頼された場合、以下の処理を実行する。すなわち、吸い上げ先決定部５２は、複数のＣＭが有する制御部それぞれの使用率を監視し、該使用率に基づいて算出するダンプデータの格納処理の時間が所定の時間より短く、且つＩ／Ｏコマンドの数から算出する格納処理の時間が短い制御部を選択する。
【００４６】
例えば、吸い上げ先決定部５２は、異常が検知されたＣＡ３１のダンプデータの吸い上げ時間が所定の規定時間より短い制御部に吸い上げ先の候補を絞る。さらに、吸い上げ先決定部５２は、絞った吸い上げ先の候補のうち、処理中のＩ／Ｏコマンドの数から換算される処理時間が短い制御部を吸い上げ先に決定する。
【００４７】
吸い上げ先決定部５２が所定の規定時間内に確実にダンプデータが吸い上げ可能か否かを予測する処理について説明する。例えば、吸い上げ先決定部５２は、ＣＡのダンプデータのサイズから各制御部がダンプデータの吸い上げ処理にかかる予測時間を「ＣＡダンプ吸い上げ時間」として算出し、算出した予測時間を吸い上げ制御テーブル３７１に格納する。吸い上げ先決定部５２は、「ＣＡダンプ吸い上げ時間」を、式（２）に基づいて算出する。
【００４８】
さらに、吸い上げ先決定部５２は、各制御部の使用率を各ＣＭのＣＰＵ使用率情報３７２から取得する。そして、吸い上げ先決定部５２は、算出した各制御部のＣＡダンプ吸い上げ時間を用いて、各制御部の使用率に対応したダンプデータの吸い上げ処理に要する予測時間を「ＣＡダンプ吸い上げ実行時間」として算出する。ここで、吸い上げ先決定部５２は、「ＣＡダンプ吸い上げ実行時間」を、式（１）に基づいて算出する。
【００４９】
そして、吸い上げ先決定部５２は、算出した各制御部の「ＣＡダンプ吸い上げ実行時間」を吸い上げ制御テーブル３７１に格納する。そして、吸い上げ先決定部５２は、吸い上げ制御テーブル３７１に記憶した各制御部の「ＣＡダンプ吸い上げ実行時間」と吸い上げに許される規定時間とを比較し、規定時間内に吸い上げが完了可能な吸い上げ先の候補を絞る。ここで、吸い上げ先決定部５２は、「実行中フラグ」がオンではない制御部を吸い上げ先の候補に選択する。
【００５０】
次に、吸い上げ先決定部５２が吸い上げ可能と予測した吸い上げ先の候補のうち、入出力処理時間が最短の制御部を決定する処理について説明する。例えば、吸い上げ先決定部５２は、各制御部で処理中のＩ／Ｏコマンドの数を各ＣＭのコマンド数情報３７３から取得する。そして、吸い上げ先決定部５２は、取得した制御部毎のＩ／Ｏコマンド数から換算される制御部毎の処理時間である「Ｉ／Ｏ処理時間」を算出する。吸い上げ先決定部５２は、ＣＭ間通信を用いないストレートアクセスおよびＣＭ間通信を用いるクロスアクセスの各Ｉ／Ｏコマンドの数から、以下の式（３）に基づいて、各制御部の「Ｉ／Ｏ処理時間」を算出する。なお、式（３）は、「Ｉ／Ｏ処理時間」＝（クロスアクセスのＩ／Ｏコマンド数）×（クロスアクセスのＩ／Ｏコマンド処理時間）＋（ストレートアクセスのＩ／Ｏコマンド数）×（ストレートアクセスのＩ／Ｏコマンド処理時間）である。
【００５１】
ここで、クロスアクセスのＩ／Ｏコマンド数とは、クロスアクセスについて処理中のＩ／Ｏコマンドの数を示す。クロスアクセスのＩ／Ｏコマンド数には、ＣＭ間通信によって送信されるＩ／Ｏコマンドの数だけでなく、ＣＭ間通信によって受信されるＩ／Ｏコマンドの数も含まれる。クロスアクセスのＩ／Ｏコマンドの処理時間とは、１個のクロスアクセスのＩ／Ｏコマンドが処理する場合の処理時間を示す。ストレートアクセスのＩ／Ｏコマンド数とは、ストレートアクセスについて処理中のＩ／Ｏコマンドの数を示す。ストレートアクセスのＩ／Ｏコマンド処理時間とは、1個のストレートアクセスのＩ／Ｏコマンドが処理する場合の処理時間を示す。
【００５２】
そして、吸い上げ先決定部５２は、算出した各制御部のＩ／Ｏ処理時間を吸い上げ制御テーブル３７１に格納する。そして、吸い上げ先決定部５２は、先行して絞った吸い上げ先の候補のうち、吸い上げ制御テーブル３７１に記憶した各制御部のＩ／Ｏ処理時間が短い制御部から順に吸い上げ先を２つ決定する。そして、吸い上げ先決定部５２は、決定した吸い上げ先を、要求元のＣＭに通知する。この結果、要求元のＣＭは、異常を検知したＣＡ３１のダンプデータの吸い上げを、決定された吸い上げ先に依頼できる。
【００５３】
なお、吸い上げ先決定部５２は、異常を検知したＣＡ３１のダンプデータの吸い上げ時間について、吸い上げに許される規定時間より短い制御部が１個も存在しない場合がある。かかる場合、吸い上げ先決定部５２は、ＣＡダンプ吸い上げ実行時間が最も短い制御部に吸い上げ先を決定する。これにより、吸い上げ先決定部５２は、決定した吸い上げ先で吸い上げに許される規定時間までダンプデータを吸い上げさせることができ、吸い上げられたダンプデータを用いて異常に関する調査を行わせることが可能となる。
【００５４】
情報取得部５３は、制御部の使用率を取得し、取得した値を後述する記憶部３７Ａが記憶するＣＰＵ使用率情報３７２に記憶させる。また、情報取得部５３は、Ｉ／Ｏコマンド数を取得し、取得した値を後述する記憶部３７Ａが記憶するコマンド数情報３７３に記憶させる。
【００５５】
サブ制御部３５Ａは、自己のＣＭ３Ａにおける処理を分散して実行する場合のサブの制御部であり、吸い上げ処理部５１と、情報取得部５３とを有する。なお、以下では、このサブ制御部３５Ａは、ＣＰＵであるものとして説明するが、サブ制御部３５Ａは、ＭＰＵなどの電子回路であってもよい。また、サブ制御部３５Ａに含まれる各機能部は、例えば、ＣＭ３Ａを制御するＣＦＷによってそれぞれ実現される。
【００５６】
ＣＭ間通信ドライバ３６は、ＦＲＴ５を介して他のＣＭ３Ｂと通信接続する通信インタフェースである。
【００５７】
記憶部３７Ａは、メイン制御部３４Ａまたはサブ制御部３５Ａが処理に用いる各種データを記憶する。例えば、記憶部３７Ａは、吸い上げ制御テーブル３７１と、ＣＰＵ使用率情報３７２と、コマンド数情報３７３とを記憶する。また、記憶部３７Ａは、図示しないＣＡダンプ取得バッファ３７４とＣＡダンプ圧縮バッファ３７５とを有する。
【００５８】
吸い上げ制御テーブル３７１は、制御部毎に、吸い上げ処理にかかる予測時間や処理中の入出力コマンドの数から換算される処理時間を対応付けて記憶する。かかる吸い上げ制御テーブル３７１は、例えば吸い上げ先決定部５２により作成され、吸い上げ先を決定する場合に用いられる。なお、吸い上げ制御テーブル３７１の詳細は、後述する。
【００５９】
ＣＰＵ使用率情報３７２は、自ＣＭ内の各制御部の使用率を含む情報を管理する。コマンド数情報３７３は、自ＣＭ内の各制御部の処理中の入出力コマンドの数を含む情報を管理する。
【００６０】
［スレーブＣＭの機能構成］
ＣＭ３Ｂは、ディスク４へのデータの入出力を制御する装置であり、複数のＣＡ３１とＩＯＣ３２とＢＵＤ３３とメイン制御部３４Ｂとサブ制御部３５ＡとＣＭ間通信ドライバ３６と記憶部３７Ｂとを有する。なお、実施例２に係るＣＭ３Ｂにおいて、図２に示したＣＭ３Ａの構成と同様の機能を有する各部については、同一の符号を付与し、詳細な説明を省略する。また、ＣＭ３Ｂが有する制御部の数は、図２に示した数に限定されるものではない。例えば、ＣＭ３Ｂは、制御部を一つ有するようにしてもよい。
【００６１】
メイン制御部３４Ｂは、自己のＣＭ３Ｂにおける処理を分散して実行する場合のサブの制御部であり、吸い上げ処理部５１と、情報取得部５３とを有する。なお、以下では、このメイン制御部３４Ｂは、ＣＰＵであるものとして説明するが、メイン制御部３４Ｂは、ＭＰＵなどの電子回路であってもよい。また、メイン制御部３４Ｂに含まれる各機能部は、例えば、ＣＭ３Ｂを制御するＣＦＷによってそれぞれ実現される。
【００６２】
記憶部３７Ｂは、メイン制御部３４Ｂまたはサブ制御部３５Ａが処理に用いる各種データを記憶する。例えば、記憶部３７Ｂは、ＣＰＵ使用率情報３７２と、コマンド数情報３７３とを記憶する。また、記憶部３７Ｂは、図示しないＣＡダンプ取得バッファ３７４とＣＡダンプ圧縮バッファ３７５とを有する。
【００６３】
［吸い上げ制御テーブルのデータ構造］
次に、吸い上げ制御テーブル３７１のデータ構造について、図３を参照して説明する。図３は、実施例２に係る吸い上げ制御テーブルのデータ構造の一例を示す図である。図３に示すように、吸い上げ制御テーブル３７１は、実行中フラグ３７１ｂ、吸い上げ対象ＣＡ３７１ｃ、ＣＡダンプ吸い上げ時間３７１ｄ、ＣＰＵ使用率３７１ｅおよびＣＡダンプ吸い上げ実行時間３７１ｆをＣＰＵ３７１ａに対応付けて記憶する。さらに、吸い上げ制御テーブル３７１は、Ｉ／Ｏコマンド数３７１ｇおよびＩ／Ｏ処理時間３７１ｈをＣＰＵ３７１ａに対応付けて記憶する。
【００６４】
ＣＰＵ３７１ａは、制御部をＣＰＵとした場合の各制御部に対応したＣＰＵを示す。実行中フラグ３７１ｂは、吸い上げ処理を実行中であるか否かを示すフラグである。例えば、実行中である場合「ＯＮ」が設定され、実行中でない場合「ＯＦＦ」が設定される。吸い上げ対象ＣＡ３７１ｂは、吸い上げ処理を実行中である場合に吸い上げ対象のＣＡを示す。ＣＡダンプ吸い上げ時間３７１ｄは、ＣＡのダンプデータのサイズから各ＣＰＵがダンプデータの吸い上げ処理にかかる予測時間を示す。ＣＰＵ使用率３７１ｅは、各ＣＰＵの使用率を示す。ＣＡダンプ吸い上げ実行時間３７１ｆは、各ＣＰＵの使用率に対応した吸い上げ処理を実行する予測時間を示す。Ｉ／Ｏコマンド数３７１ｇは、各ＣＰＵで処理中のＩ／Ｏコマンドの数を示す。例えば、クロスアクセスおよびストレートアクセスのそれぞれのＩ／Ｏコマンド数が設定される。Ｉ／Ｏ処理時間３７１ｈは、Ｉ／Ｏコマンド数から換算されるＣＰＵ毎の処理時間を示す。
【００６５】
吸い上げ制御テーブル３７１の一例として、ＣＰＵ３７１ａが「ＣＭ＃０のメインＣＰＵ」である場合、実行中フラグ３７１ｂとして「ＯＦＦ」、吸い上げ対象ＣＡ３７１ｃとして「−」、ＣＡダンプ吸い上げ時間３７１ｄとして「５０」秒を記憶している。さらに、ＣＰＵ使用率３７１ｅを「０．８」、ＣＡダンプ吸い上げ実行時間３７１ｆとして「２５０」秒、Ｉ／Ｏコマンド数３７１ｇとして「クロス１００／ストレート１００」、Ｉ／Ｏ処理時間３７１ｈとして「２」秒を記憶している。また、ＣＰＵ３７１ａが「ＣＭ＃７のサブＣＰＵ」である場合、吸い上げ対象ＣＡ３７１ｃとして「ＣＭ＃１−ＣＡ＃０」を記憶している。すなわち、図３の例では、ＣＭ＃７のサブＣＰＵがＣＭ＃１にあるＣＡ＃０のダンプデータの吸い上げを実行している。
【００６６】
［吸い上げ先決定部５２の処理動作］
次に、図４を用いて、吸い上げ先決定部５２の処理動作を説明する。図４は、吸い上げ先決定部５２の処理動作の一例を示す図である。図４は、ＣＭ＃１のＣＡ３１で異常が発生した場合を示す。ＣＭ＃１のメイン制御部３４Ｂは、ＣＡ３１で異常が発生した場合、ＣＭ＃０のメイン制御部３４Ａに吸い上げ先の決定を依頼する。
【００６７】
そして、ＣＭ＃０のメイン制御部３４Ａにおいて、吸い上げ先決定部５２は、吸い上げ先の決定を行う。例えば、吸い上げ先決定部５２は、複数のＣＭが有する制御部それぞれの使用率に基づいて算出するダンプデータの格納処理の時間が所定の時間より短く、且つＩ／Ｏコマンドの数から算出する格納処理の時間が短い制御部を選択する。
【００６８】
なお、ここでは、異常を検知したＣＡ３１のダンプデータの吸い上げ時間について、吸い上げ規定時間より短い制御部が１個も存在しない場合を示す。この場合、吸い上げ先決定部５２は、ＣＡダンプ吸い上げ実行時間が最も短い制御部を吸い上げ先に決定する。図４に示す例では、ＣＡダンプ吸い上げ実行時間が最短であるＣＰＵとして、ＣＭ＃５のメイン制御部３４Ｂを吸い上げ先に決定する場合を示す。そして、吸い上げ先決定部５２は、ＣＭ＃５のメイン制御部３４Ｂを吸い上げ先に決定した旨をＣＭ＃１のメイン制御部３４Ｂに通知する。この結果、ＣＭ＃１のメイン制御部３４Ｂは、ＣＭ＃５のメイン制御部３４Ｂにダンプデータの吸い上げ処理の実行を依頼する。
【００６９】
［吸い上げ処理部５１の処理動作］
次に、図５Ａ〜５Ｃを用いて、吸い上げ処理部５１の処理動作を説明する。図５Ａは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間内である場合の吸い上げ処理部５１の処理動作の一例を示す図であり、図５Ｂは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合の吸い上げ処理部５１の処理動作の一例を示す図である。また、図５Ｃは、未圧縮なダンプデータの圧縮処理の処理動作の一例を示す図である。
【００７０】
図５Ａは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間内である場合を示す。なお、図５Ａの説明では、吸い上げ処理に関わる条件は、以下であるものとして説明する。例えば、データ転送時間は、０．５（ｍｓ／ＭＢ）であり、データ圧縮時間は、１０８．３（ｍｓ／ＭＢ）であり、ＣＡダンプデータサイズは、１２３（ＭＢ）であり、データ格納時間は、３３．３（ｍｓ／ＭＢ）であり、データ圧縮率は、３０（％）である。なお、ＣＡダンプ格納領域３３１のサイズは、５０（ＭＢ）であり、ＣＰＵの使用率が７９（％）であり、吸い上げ規定時間は、７０（ｓ）であるものとする。この条件の場合、吸い上げ処理部５１は、式（１）および式（２）を用いて、吸い上げ実行時間を「６９．６（ｓ）」と算出する。吸い上げ処理部５１は、吸い上げ実行時間が吸い上げ規定時間内であるので、通常時のダンプ格納処理を実行すると判定する。
【００７１】
図５Ａに示すように、ＣＡに異常が発生した吸い上げＣＭは、異常が発生したＣＡからダンプデータを吸い上げて、格納先である格納ＣＭに吸い上げたダンプデータを転送する（ステップＳ２１）。これにより、格納ＣＭの吸い上げ処理部５１は、受信したダンプデータを、記憶部３７Ａ（３７Ｂ）のＣＡダンプ取得バッファ３７４に格納させる。そして、吸い上げ処理部５１は、ＣＡダンプ取得バッファ３７４から読出したダンプデータをＣＡダンプ圧縮バッファ３７５で圧縮する（ステップＳ２２）。吸い上げ処理部５１は、圧縮したダンプデータをＢＵＤ３３内のＣＡダンプ格納領域３３１に格納する（ステップＳ２３）。
【００７２】
図５Ｂは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合を示す。なお、図５Ｂの説明では、吸い上げ処理に関わる条件は、ＣＡダンプデータサイズが１３０（ＭＢ）である以外、図５Ａに示した条件と同様であるものとして説明する。この条件の場合、吸い上げ処理部５１は、式（１）および式（２）を用いて、吸い上げ実行時間を「７３．５（ｓ）」と算出する。吸い上げ処理部５１は、吸い上げ実行時間が吸い上げ規定時間を超えているので、制限時間オーバー時のダンプ格納処理を実行する。
【００７３】
図５Ｂの場合、１３０（ＭＢ）のＣＡダンプデータを圧縮した場合のサイズは、３９（ＭＢ）（＝１３０（ＭＢ）×０．３）である。また、ＢＵＤ３３内のＣＡダンプデータ領域は５０（ＭＢ）である。すなわち、このＣＡダンプデータを圧縮する場合、ＣＡダンプデータ領域には、１１（ＭＢ）の余裕がある。そこで、吸い上げ処理部５１は、この１１（ＭＢ）の余裕を利用して、ＣＡダンプデータのうち、最終１０（ＭＢ）バイトの圧縮処理を省略する。言い換えると、吸い上げ処理部５１は、１３０（ＭＢ）のＣＡダンプデータのうち、１２０（ＭＢ）のみを圧縮する。
【００７４】
まず、１２０（ＭＢ）のダンプデータを圧縮して格納する処理について説明する。図５Ｂに示すように、ＣＡに異常が発生した吸い上げＣＭは、異常が発生したＣＡからダンプデータを吸い上げて、格納先である格納ＣＭに吸い上げたダンプデータを転送する（ステップＳ３１）。これにより、格納ＣＭの吸い上げ処理部５１は、受信したダンプデータを、記憶部３７Ａ（３７Ｂ）のＣＡダンプ取得バッファ３７４に格納させる。そして、吸い上げ処理部５１は、ＣＡダンプ取得バッファ３７４から読出したダンプデータをＣＡダンプ圧縮バッファ３７５で圧縮する（ステップＳ３２）。吸い上げ処理部５１は、圧縮したダンプデータをＢＵＤ３３内のＣＡダンプ格納領域３３１に格納させる（ステップＳ３３）。
【００７５】
続いて、１０（ＭＢ）のダンプデータを圧縮せずに格納する処理について説明する。ＣＡに異常が発生した吸い上げＣＭは、異常が発生したＣＡからダンプデータを吸い上げて、格納先である格納ＣＭに吸い上げたダンプデータを転送する（ステップＳ３１）。これにより、格納ＣＭの吸い上げ処理部５１は、受信したダンプデータを、記憶部３７Ａ（３７Ｂ）のＣＡダンプ取得バッファ３７４に格納させる。そして、吸い上げ処理部５１は、ＣＡダンプ取得バッファ３７４から読出したダンプデータをＢＵＤ３３内のＣＡダンプ格納領域３３１に格納させる（ステップＳ３４）。
【００７６】
ここで、ダンプデータを圧縮して格納する場合の吸い上げ処理部５１による「ＣＡダンプ吸い上げ時間」は、｛(データ転送時間)+(データ圧縮時間)｝×(ＣＡダンプデータサイズ)＋(データ格納時間)×(圧縮ＣＡダンプデータサイズ)から算出される。すなわち、「ＣＡダンプ吸い上げ時間」は、１４．２６（ｓ）（＝(０．５（ｍｓ／ＭＢ）＋１０８．３（ｍｓ／ＭＢ）)×１２０（ＭＢ）＋３３．３（ｍｓ／ＭＢ）×１２０（ＭＢ）×０．３）となる。また、この場合の「ＣＡダンプ吸い上げ実行時間」は、(ＣＡダンプ吸い上げ時間)÷｛１−(ＣＰＵの使用率)｝から算出される。すなわち、ＣＡダンプ吸い上げ実行時間」は、６７．９（ｓ）（＝１４．２６（ｓ）÷(１−０．７９)）となる。
【００７７】
また、ダンプデータを圧縮せずに格納する場合の吸い上げ処理部５１による「ＣＡダンプ吸い上げ時間」は、(データ転送時間)×(ＣＡダンプデータサイズ)＋(データ格納時間)×(圧縮ＣＡダンプデータサイズ)から算出される。すなわち、「ＣＡダンプ吸い上げ時間」は、１０５（ｍｓ）（＝０．５（ｍｓ／ＭＢ）×１０（ＭＢ）＋３３．３（ｍｓ／ＭＢ）×１０（ＭＢ）×０．３）となる。また、この場合の「ＣＡダンプ吸い上げ実行時間」は、(ＣＡダンプ吸い上げ時間)÷｛１−(ＣＰＵの使用率)｝から算出される。すなわち、ＣＡダンプ吸い上げ実行時間」は、０．５（ｓ）（＝１０５（ｍｓ）÷(１−０．７９)）となる。
【００７８】
このように、１２０（ＭＢ）の吸い上げ処理部５１によるダンプデータを圧縮して格納する処理時間は、６７．９（ｓ）であり、１０（ＭＢ）のダンプデータを圧縮せずに格納する処理時間は、０．５（ｓ）である。すなわち、総格納時間は、６８．４（ｓ）（＝６７．９（ｓ）＋０．５（ｓ））であり、吸い上げ規定時間の７０（ｓ）以下となる。このように、吸い上げ処理部５１は、ダンプデータを吸い上げることができる。なお、吸い上げ処理部５１は、未圧縮なダンプデータに関しては、ＣＡダンプ吸い上げ処理完了後に圧縮処理を行う。
【００７９】
次に、図５Ｃを用いて、未圧縮なダンプデータの圧縮処理について説明する。図５Ｃに示すように、吸い上げ処理部５１は、ＢＵＤ３３内のＣＡダンプ格納領域３３１から、未圧縮なダンプデータを読出してＣＡダンプ取得バッファ３７４に格納させる（ステップＳ４１）。そして、吸い上げ処理部５１は、ＣＡダンプ取得バッファ３７４から読出したダンプデータをＣＡダンプ圧縮バッファ３７５で圧縮する（ステップＳ４２）。吸い上げ処理部５１は、圧縮したダンプデータをＢＵＤ３３内のＣＡダンプ格納領域３３１に格納させる（ステップＳ４３）。
【００８０】
［ストレージシステムによる処理の処理手順］
次に、図６〜図８、図９Ａおよび図９Ｂを用いて、ストレージシステムによる処理の処理手順を説明する。図６を用いて、ＣＡダンプの吸い上げ処理の処理手順を説明し、また、図７を用いて、制限時間オーバー時のダンプ格納処理の処理手順を説明する。また、図８を用いて、未圧縮ダンプの圧縮処理の処理手順を説明する。そして、図９Ａおよび図９Ｂを用いて、吸い上げ先決定処理の処理手順を説明する。
【００８１】
（ＣＡダンプの吸い上げ処理）
図６は、ＣＡダンプの吸い上げ処理の処理手順を示すフローチャートである。なお、吸い上げ処理部５１は、ダンプデータの格納処理の実行を依頼された場合、以下の処理を実行する。
【００８２】
図６に示すように、吸い上げ処理部５１は、ＣＡダンプ吸い上げ実行時間を算出する（ステップＳ１０１）。そして、吸い上げ処理部５１は、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間である７０秒よりも長いか否かを判定する（ステップＳ１０２）。
【００８３】
ここで、吸い上げ処理部５１は、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間である７０秒よりも長いと判定する場合（ステップＳ１０２、Ｙｅｓ）、制限時間オーバー時のダンプ格納を実行し（ステップＳ１０３）、処理を終了する。
【００８４】
一方、吸い上げ処理部５１は、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間である７０秒よりも長くないと判定する場合（ステップＳ１０２、Ｎｏ）、通常時のダンプ格納を実行し（ステップＳ１０４）、処理を終了する。
【００８５】
（ストレージシステムによる制限時間オーバー時のダンプ格納処理）
図７は、ストレージシステムによる制限時間オーバー時のダンプ格納処理の処理手順を示すフローチャートである。なお、吸い上げ処理部５１は、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間である７０秒を超えると判定する場合、以下の処理を実行する。
【００８６】
図７に示すように、吸い上げ処理部５１は、格納済みデータサイズを０に設定する（ステップＳ２０１）。続いて、吸い上げ処理部５１は、残りダンプデータサイズを設定する（ステップＳ２０２）。そして、吸い上げ処理部５１は、ダンプデータを記憶部３７Ａ（３７Ｂ）のＣＡダンプ取得バッファ３７４に取得する（ステップＳ２０３）。
【００８７】
吸い上げ処理部５１は、残り時間が所定の残り時間以内であるか否かを判定する（ステップＳ２０４）。ここでは、所定の残り時間を３５０ｍｓであるものとして説明する。吸い上げ処理部５１は、残り時間が所定の残り時間以内ではないと判定する場合（ステップＳ２０４、Ｎｏ）、以下の処理を実行する。すなわち、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１のサイズから格納済みデータサイズを減じた値が、残りダンプサイズ以上であるか否かを判定する（ステップＳ２０５）。
【００８８】
ここで、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１のサイズから格納済みデータサイズを減じた値が、残りダンプサイズ以上ではないと判定する場合（ステップＳ２０５、Ｎｏ）、以下の処理を実行する。すなわち、吸い上げ処理部５１は、ダンプデータを圧縮し（ステップＳ２０６）、ステップＳ２０８に移行する。一方、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１のサイズから格納済みデータサイズを減じた値が、残りダンプサイズ以上であると判定する場合（ステップＳ２０５、Ｙｅｓ）、ステップＳ２０８に移行する。
【００８９】
また、ステップＳ２０４において、吸い上げ処理部５１は、残り時間が所定の残り時間以内であると判定する場合（ステップＳ２０４、Ｙｅｓ）、以下の処理を実行する。すなわち、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１のサイズから格納済みデータサイズを減じた値が、書込みダンプサイズ以上であるか否かを判定する（ステップＳ２０７）。
【００９０】
ここで、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１のサイズから格納済みデータサイズを減じた値が、書込みダンプサイズ以上であると判定する場合（ステップＳ２０７、Ｙｅｓ）、ステップＳ２０８に移行する。一方、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１のサイズから格納済みデータサイズを減じた値が、書込みダンプサイズ以上ではないと判定する場合（ステップＳ２０７、Ｎｏ）、残り書込み領域をオーバーするため、処理を終了する。
【００９１】
ステップＳ２０８において、吸い上げ処理部５１は、ＢＵＤ３３のＣＡダンプ格納領域３３１にダンプデータを格納する（ステップＳ２０８）。そして、吸い上げ処理部５１は、残りダンプデータサイズを更新し（ステップＳ２０９）、格納済みデータサイズを更新する（ステップＳ２１０）。
【００９２】
続いて、吸い上げ処理部５１は、ダンプデータを全て格納したか否かを判定する（ステップＳ２１１）。ここで、吸い上げ処理部５１は、ダンプデータの全てを格納していないと判定する場合（ステップＳ２１１、Ｎｏ）、次のダンプデータの送信を依頼し（ステップＳ２１２）、ステップＳ２０３に移行する。一方、吸い上げ処理部５１は、ダンプデータを全て格納したと判定する場合（ステップＳ２１１、Ｙｅｓ）、処理を終了する。
【００９３】
（未圧縮ダンプの圧縮処理）
図８は、未圧縮ダンプの圧縮処理の処理手順を示すフローチャートである。なお、吸い上げ処理部５１は、ダンプデータの格納処理の終了後に以下の処理を実行する。図８に示すように、吸い上げ処理部５１は、未圧縮ダンプデータを記憶部３７Ａ（３７Ｂ）上のＣＡダンプ取得バッファ３７４に取得する（ステップＳ３０１）。続いて、吸い上げ処理部５１は、取得したダンプデータを圧縮する（ステップＳ３０２）。そして、吸い上げ処理部５１は、ＢＵＤダンプ領域に圧縮したダンプデータを格納する（ステップＳ３０３）。
【００９４】
吸い上げ処理部５１は、未圧縮データが存在するか否かを判定する（ステップＳ３０４）。ここで、吸い上げ処理部５１は、未圧縮データが存在すると判定する場合（ステップＳ３０４、Ｙｅｓ）、ステップＳ３０１に移行する。一方、吸い上げ処理部５１は、未圧縮データが存在しないと判定する場合（ステップＳ３０４、Ｎｏ）、ダンプヘッダを更新し（ステップＳ３０５）、処理を終了する。
【００９５】
（吸い上げ先決定処理の手順）
図９Ａおよび図９Ｂは、実施例２に係る吸い上げ先決定処理の処理手順を示すフローチャートである。なお、吸い上げ先の対象となる各ＣＰＵには、あらかじめインデックスが振られているものとする。例えば、ＣＭ＃０のメインＣＰＵに「０」、ＣＭ＃０のサブＣＰＵに「１」、ＣＭ＃１のメインＣＰＵに「２」、ＣＭ＃１のサブＣＰＵに「３」がそれぞれ振られている。
【００９６】
例えば、異常が発生したＣＡのダンプデータのサイズを含む吸い上げ先ＣＰＵ取得コマンドを受信した吸い上げ先決定部５２は、ダンプデータのサイズから標準のＣＡダンプ吸い上げ時間を、式（２）を用いて算出する（ステップＳ４０１）。そして、吸い上げ先決定部５２は、算出したＣＡダンプ吸い上げ時間を吸い上げ制御テーブル３７１に格納する。
【００９７】
そして、吸い上げ先決定部５２は、各ＣＰＵの使用率とＩ／Ｏコマンド数を各ＣＰＵから取得する（ステップＳ４０２）。各ＣＰＵの使用率は、各ＣＭのＣＰＵ使用率情報３７２に記憶されている。各ＣＰＵのＩ／Ｏコマンド数は、各ＣＭのコマンド数情報３７３に記憶されている。
【００９８】
そして、吸い上げ先決定部５２は、標準の吸い上げ時間および各ＣＰＵの使用率から各ＣＰＵのＣＡダンプ吸い上げ実行時間を、式（１）を用いて算出する（ステップＳ４０３）。そして、吸い上げ先決定部５２は、算出した各ＣＰＵのＣＡダンプ吸い上げ実行時間を吸い上げ制御テーブル３７１に格納する。
【００９９】
さらに、吸い上げ先決定部５２は、Ｉ／Ｏコマンド数から各ＣＰＵのＩ／Ｏ処理時間を算出する（ステップＳ４０４）。そして、吸い上げ先決定部５２は、算出した各ＣＰＵのＩ／Ｏ処理時間を吸い上げ制御テーブル３７１に格納する。
【０１００】
続いて、吸い上げ先決定部５２は、候補ＣＰＵを初期値（例えば、０ｘＦＦ）に設定する（ステップＳ４０５）。なお、候補ＣＰＵとは、吸い上げ先ＣＰＵの候補を示す変数であり、候補となるＣＰＵに振られたインデックスの値が設定される。また、吸い上げ先決定部５２は、格納時間最短ＣＰＵを初期値（例えば、０ｘＦＦ）に設定する（ステップＳ４０６）。なお、格納時間最短ＣＰＵとは、ダンプデータの格納時間が最短のＣＰＵを示す変数であり、格納時間が最短のＣＰＵに振られたインデックスの値が設定される。
【０１０１】
そして、吸い上げ先決定部５２は、Ｉｎｄｅｘに吸い上げ先の対象となるＣＰＵのインデックスの値０を設定し、確認ＣＰＵにＩｎｄｅｘに設定された値を設定する（ステップＳ４０７）。なお、Ｉｎｄｅｘとは、変数であり、各ＣＰＵに振られたインデックスの値が設定される。また、確認ＣＰＵとは、吸い上げ先ＣＰＵとなるか否かを確認するＣＰＵを示す変数であり、ＣＰＵに振られたインデックスの値が設定される。
【０１０２】
続いて、吸い上げ先決定部５２は、Ｉｎｄｅｘに設定された値が吸い上げ先の対象となるＣＰＵの最大数と等しいか否かを判定する（ステップＳ４０８）。
【０１０３】
一方、Ｉｎｄｅｘに設定された値がＣＰＵの最大数と等しくないと判定した場合（ステップＳ４０８、Ｎｏ）、吸い上げ先決定部５２は、ステップＳ４１４に移行する。
【０１０４】
ステップＳ４１４では、吸い上げ先決定部５２は、吸い上げ制御テーブル３７１に記憶された実行中フラグに基づいて、確認ＣＰＵの実行中フラグがＯＮであるか否かを判定する（ステップＳ４１４）。確認ＣＰＵの実行中フラグがＯＮであると判定した場合（ステップＳ４１４、Ｙｅｓ）、吸い上げ先決定部５２は、次のＣＰＵを確認すべく、ステップＳ４２２に移行する。
【０１０５】
確認ＣＰＵの実行中フラグがＯＮでないと判定した場合（ステップＳ４１４、Ｎｏ）、吸い上げ先決定部５２は、格納時間最短ＣＰＵが初期値であるか否かを判定する（ステップＳ４１５）。格納時間最短ＣＰＵが初期値であると判定した場合（ステップＳ４１５、Ｙｅｓ）、吸い上げ先決定部５２は、格納時間最短ＣＰＵに確認ＣＰＵを設定すべく、ステップＳ４１７に移行する。
【０１０６】
格納時間最短ＣＰＵが初期値でないと判定した場合（ステップＳ４１５、Ｎｏ）、吸い上げ先決定部５２は、確認ＣＰＵのＣＡ吸い上げ実行時間が格納時間最短ＣＰＵのＣＡ吸い上げ実行時間以下であるか否かを判定する（ステップＳ４１６）。確認ＣＰＵのＣＡ吸い上げ実行時間が格納時間最短ＣＰＵのＣＡ吸い上げ実行時間以下であると判定した場合（ステップＳ４１６、Ｙｅｓ）、吸い上げ先決定部５２は、格納時間最短ＣＰＵに確認ＣＰＵを設定すべく、ステップＳ４１７に移行する。
【０１０７】
ステップＳ４１７では、吸い上げ先決定部５２は、格納時間最短ＣＰＵに確認ＣＰＵを設定する（ステップＳ４１７）。すなわち、吸い上げ先決定部５２は、確認したＣＰＵの中で格納時間が最短のＣＰＵとして現在確認中の確認ＣＰＵを設定する。
【０１０８】
一方、確認ＣＰＵが格納時間最短ＣＰＵのＣＡ吸い上げ実行時間以下でない場合（ステップＳ４１６、Ｎｏ）、吸い上げ先決定部５２は、確認ＣＰＵのＣＡ吸い上げ実行時間が吸い上げ完了規定時間以下であるか否かを判定する（ステップＳ４１８）。ここで、吸い上げ完了規定時間とは、あらかじめ定められた吸い上げに許される規定時間を示す。確認ＣＰＵのＣＡ吸い上げ実行時間が吸い上げ完了規定時間より大きいと判定した場合（ステップＳ４１８、Ｎｏ）、吸い上げ先決定部５２は、次のＣＰＵを確認すべく、ステップＳ４２２に移行する。
【０１０９】
確認ＣＰＵのＣＡ吸い上げ実行時間が吸い上げ完了規定時間以下であると判定した場合（ステップＳ４１８、Ｙｅｓ）、吸い上げ先決定部５２は、候補ＣＰＵが初期値であるか否かを判定する（ステップＳ４１９）。候補ＣＰＵが初期値でないと判定した場合（ステップＳ４１９、Ｎｏ）、吸い上げ先決定部５２は、確認ＣＰＵのＩ／Ｏ処理時間が候補ＣＰＵのＩ／Ｏ処理時間以下であるか否かを判定する（ステップＳ４２０）。ここで、確認ＣＰＵのＩ／Ｏ処理時間が候補ＣＰＵのＩ／Ｏ処理時間より大きいと判定した場合（ステップＳ４２０、Ｎｏ）、吸い上げ先決定部５２は、次のＣＰＵを確認すべく、ステップＳ４２２に移行する。
【０１１０】
候補ＣＰＵが初期値である場合（ステップＳ４１９、Ｙｅｓ）または確認ＣＰＵのＩ／Ｏ処理時間が候補ＣＰＵのＩ／Ｏ処理時間以下である場合（ステップＳ４２０、Ｙｅｓ）、吸い上げ先決定部５２は、ステップＳ４２１に移行する。ステップＳ４２１では、吸い上げ先決定部５２は、候補ＣＰＵに確認ＣＰＵを設定する（ステップＳ４２１）。すなわち、吸い上げ先決定部５２は、確認したＣＰＵの中で、ＣＡ吸い上げ実行時間が吸い上げ完了規定時間より短く、且つＩ／Ｏ処理時間が最短のＣＰＵとして、現在確認中の確認ＣＰＵを設定する。
【０１１１】
ステップＳ４２２では、吸い上げ先決定部５２は、Ｉｎｄｅｘを１加算し、確認ＣＰＵをＩｎｄｅｘに更新する（ステップＳ４２２）。そして、吸い上げ先決定部５２は、ステップＳ４０８に移行する。
【０１１２】
続いて、ステップＳ４０８では、Ｉｎｄｅｘに設定された値が吸い上げ先の対象となるＣＰＵの最大数と等しいと判定した場合（ステップＳ４０８、Ｙｅｓ）、吸い上げ先決定部５２は、候補ＣＰＵが初期値であるか否かを判定する（ステップＳ４０９）。候補ＣＰＵが初期値でないと判定した場合（ステップＳ４０９、Ｎｏ）、吸い上げ先決定部５２は、候補ＣＰＵを吸い上げ先のＣＰＵに決定し（ステップＳ４１０）、吸い上げ先決定処理を終了する。
【０１１３】
候補ＣＰＵが初期値であると判定した場合（ステップＳ４０９、Ｙｅｓ）、吸い上げ先決定部５２は、格納時間最短ＣＰＵを吸い上げ先のＣＰＵに決定し（ステップＳ４１１）、吸い上げ先決定処理を終了する。
【０１１４】
［実施例２の効果］
上述してきたように、実施例２に係るストレージシステム２Ａは、各ＣＰＵで処理しているＩ／Ｏコマンド数を利用することにより、Ｉ／Ｏコマンドを最も処理していないＣＰＵを選択して、ＣＡダンプの吸い上げを実施する。すなわち、実施例２に係るストレージシステム２Ａは、吸い上げＣＭと格納ＣＭとを分離させる。この結果、実施例２に係るストレージシステム２Ａは、ＣＡのダンプデータを吸い上げる処理がストレージシステム２Ａの性能に及ぼす影響を小さくすることが可能となり、ＣＡダンプの吸い上げが完了できる可能性が高くなる。
【０１１５】
また、実施例２に係るストレージシステム２Ａは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合、所定の残り時間に達するまでは記憶部３７Ａに保持するダンプデータを圧縮してＢＵＤ３３に格納する。また、ストレージシステム２Ａは、所定の残り時間に達すると、ＢＵＤ３３におけるダンプデータの格納領域の容量からＢＵＤ３３に格納済みのダンプデータの容量を減算した値を算出する。ここで、ストレージシステム２Ａは、算出した値がＢＵＤ３３に未格納のダンプデータの容量以上の場合、記憶部３７Ａに保持するダンプデータを圧縮せずＢＵＤ３３に格納する。このため、ストレージシステム２Ａは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合でも、ＣＡ３１から吸い上げたダンプデータを確実に記録できる。
【０１１６】
また、ストレージシステム２Ａは、吸い上げ処理を完了後、圧縮せずＢＵＤ３３に格納したダンプデータを記憶部３７Ａ（３７Ｂ）に読出して圧縮し、ＢＵＤ３３に格納する。これにより、ストレージシステム２Ａは、ＢＵＤ３３のＣＡダンプ格納領域３３１を有効に利用できる。
【０１１７】
また、ストレージシステム２Ａは、ＣＡダンプ吸い上げ実行時間が吸い上げ規定時間を超える場合、ダンプデータの圧縮を省略するが、それでも間に合わない場合はＢＵＤ３３への格納を省略して、ダンプデータを記憶部３７Ａ（３７Ｂ）に保持する。これにより、ストレージシステム２Ａは、ＣＡダンプ吸い上げ処理を見かけ上、早期に終了させる。ストレージシステム２Ａは、この手段を用いることで、処理時間をさらに数１００ミリ秒短縮することができ、また、ＣＰＵが高負荷状況でもＣＡダンプを格納できる確率を向上させる。
【０１１８】
また、ＢＵＤ３３への格納を省略した場合、記憶部３７Ａ（３７Ｂ）に未圧縮のダンプデータが大量に存在することになる。ＣＡダンプデータサイズは約１３０（ＭＢ）であり、通常、記憶部３７Ａ（３７Ｂ）の容量は１ＣＰＵごとに６４（ＭＢ）から１６８（ＭＢ）である。このため、ストレージシステム２Ａは、記憶部３７Ａ（３７Ｂ）の残り記憶容量が足りない場合、途中から別ＣＭが有する記憶部３７Ａ（３７Ｂ）を使用してダンプを格納する。言い換えると、吸い上げ処理部５１は、異常が発生したＣＡ３１から取得し、自身と接続する記憶部３７Ａ（３７Ｂ）に保持するダンプデータをＢＵＤ３３に未格納の場合、他のＣＭの記憶部３７Ａ（３７Ｂ）に保持させるようにしてもよい。これにより、ストレージシステム２Ａは、ＣＡダンプを格納できる確率を向上させる。
【０１１９】
なお、実施例２に係るストレージシステム２Ａにおいて、ＣＭ３Ｂにも吸い上げ先決定部５２を備えるようにしてもよい。なお、この場合、ＣＭ３Ｂの記憶部３７Ｂには、吸い上げ制御テーブル３７１が保持される。
【実施例３】
【０１２０】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例３では、本発明に含まれる他の実施例について説明する。
【０１２１】
（システム構成等）
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【０１２２】
また、実施例１に係るストレージシステム２において、メイン制御部３４は、ＣＡ３１に異常が発生した場合、ストレージシステム２内の制御部の使用率と、Ｉ／Ｏコマンド数とに基づいて、ＣＡから吸い上げたダンプデータの格納先を選択するようにしてもよい。
【０１２３】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更してもよい。また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２５】
（付記１）記憶装置へのデータの入出力を制御する複数の制御装置を備えたストレージシステムにおいて、
各制御装置は、
前記記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、前記インタフェース部から前記命令を受け取って実行する演算処理部とを有し、
各演算処理部は、
異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持するとともに、該格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは該記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると該記憶部に保持するダンプデータを圧縮せずに該格納部に格納する
ことを特徴とするストレージシステム。
【０１２６】
（付記２）各演算処理部は、
前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量以上の場合、所定の残り時間に達する前でも、該未格納のダンプデータを圧縮せずに該格納部に格納する
ことを特徴とする付記１に記載のストレージシステム。
【０１２７】
（付記３）各演算処理部は、更に、
前記格納する処理が完了後、圧縮せずに前記格納部に格納したダンプデータを前記記憶部に読出して圧縮し、圧縮したダンプデータを該格納部に格納する
ことを特徴とする付記１または２に記載のストレージシステム。
【０１２８】
（付記４）各演算処理部は、
所定の残り時間に達すると、前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量未満の場合、該未格納のダンプデータを該格納部に格納せずに前記記憶部に保持する
ことを特徴とする付記１に記載のストレージシステム。
【０１２９】
（付記５）各演算処理部は、更に、
前記格納部に未格納のダンプデータを他の演算処理部の記憶部に保持させる
ことを特徴とする付記４に記載のストレージシステム。
【０１３０】
（付記６）各演算処理部は、更に、
前記格納する処理が完了後、前記記憶部に保持するダンプデータを圧縮して前記格納部に格納する
ことを特徴とする付記４または５に記載のストレージシステム。
【０１３１】
（付記７）記憶装置へのデータの入出力に関わる命令を情報処理装置から受付けるインタフェース部と、該インタフェース部から前記命令を受け取って実行する演算処理部とを備えた制御装置を複数有するストレージシステムの制御方法において、
各演算処理部が、
異常が生じたインタフェース部のダンプデータを格納する処理の実行を依頼された場合、該インタフェース部から吸い上げたダンプデータを記憶部に保持するとともに、該格納する処理の実行時間が制限時間を超える場合、所定の残り時間に達するまでは該記憶部に保持するダンプデータを圧縮して格納部に格納し、所定の残り時間に達すると該記憶部に保持するダンプデータを圧縮せずに該格納部に格納する
処理を含んだことを特徴とするストレージシステムの制御方法。
【０１３２】
（付記８）各演算処理部が、
前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量以上の場合、所定の残り時間に達する前でも、該未格納のダンプデータを圧縮せずに該格納部に格納する
ことを特徴とする付記７に記載のストレージシステムの制御方法。
【０１３３】
（付記９）各演算処理部が、更に、
前記格納する処理が完了後、圧縮せずに前記格納部に格納したダンプデータを前記記憶部に読出して圧縮し、圧縮したダンプデータを該格納部に格納する
処理を含んだことを特徴とする付記７または８に記載のストレージシステムの制御方法。
【０１３４】
（付記１０）各演算処理部が、
所定の残り時間に達すると、前記格納部におけるダンプデータの格納領域の容量から前記格納部に格納済みのダンプデータの容量を減算した値が、該格納部に未格納のダンプデータの容量未満の場合、該未格納のダンプデータを該格納部に格納せずに前記記憶部に保持する
ことを特徴とする付記７に記載のストレージシステムの制御方法。
【０１３５】
（付記１１）各演算処理部が、更に、
前記格納部に未格納のダンプデータを他の演算処理部の記憶部に保持させる
処理を含んだことを特徴とする付記１０に記載のストレージシステムの制御方法。
【０１３６】
（付記１２）各演算処理部が、更に、
前記格納する処理が完了後、前記記憶部に保持するダンプデータを圧縮して前記格納部に格納する
処理を含んだことを特徴とする付記１０または１１に記載のストレージシステムの制御方法。
【符号の説明】
【０１３７】
１  ホストコンピュータ
２、２Ａ  ストレージシステム
３、３Ａ、３Ｂ  ＣＭ
４  ディスク
５  ＦＲＴ
６  ＢＲＴ
７  ＤＥ
３１  ＣＡ
３２  ＩＯＣ
３３  ＢＵＤ
３４、３４Ａ、３４Ｂ  メイン制御部
３５、３５Ａ  サブ制御部
３６  ＣＭ間通信ドライバ
３７、３７Ａ、３７Ｂ  記憶部
５１  吸い上げ処理部
５２  吸い上げ先決定部
５３  情報取得部
３７１  吸い上げ制御テーブル
３７２  ＣＰＵ使用率情報
３７３  コマンド数情報
【図１】
2014010693.tif 000003
【図２】
2014010693.tif 000004
【図３】
2014010693.tif 000005
【図４】
2014010693.tif 000006
【図５Ａ】
2014010693.tif 000007
【図５Ｂ】
2014010693.tif 000008
【図５Ｃ】
2014010693.tif 000009
【図６】
2014010693.tif 000010
【図７】
2014010693.tif 000011
【図８】
2014010693.tif 000012
【図９Ａ】
2014010693.tif 000013
【図９Ｂ】
2014010693.tif 000014