(57)【特許請求の範囲】
【請求項１】
筐体と、前記筐体内に隣接して配置され、回転する記憶媒体に対してヘッドを目的の位置に位置付けてデータのライト及びリードを実行する複数のディスクドライブを備えたストレージ装置において、
前記筐体に設けられ、振動を検出する振動検出センサと、
前記振動検出センサが検出した振動に基づいて、前記振動検出センサによって検出された前記振動の周期より短い振動を発生させる動作を、前記複数のディスクドライブの中から選択されたディスクドライブに対して実行させるディスク制御装置と、
を備えてなることを特徴とするストレージ装置。
【請求項２】
前記複数のディスクドライブは、ディスクドライブの故障時に故障したディスクドライブの代替として用いられるスペアディスクドライブを含み、
前記ディスク制御装置は、前記スペアディスクドライブを選択して前記動作を実行させることを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記振動の周期より短い振動を発生させる動作は、予め定められたアクセスパターンを有するリード動作またはシーク動作であることを特徴とする請求項１または請求項２に記載のストレージ装置。
【請求項４】
筐体と、
前記筐体内に隣接して配置された複数のストレージ装置と、
前記複数のストレージ装置それぞれに設けられ、回転する記憶媒体に対してヘッドを目的の位置に位置付けてデータのライト及びリードを実行する複数のディスクドライブと、
前記複数のストレージ装置それぞれに設けられ、各ストレージ装置において発生する振動を検出する振動検出センサと、
前記振動検出センサが検出した振動に基づいて、前記振動検出センサによって検出された前記振動の周期より短い振動を発生させる動作を、前記複数のストレージ装置の中から選択されたストレージ装置に対して実行させる制御装置と、
を備えてなることを特徴とするストレージシステム。
【請求項５】
前記制御装置は、前記振動検出センサが検出した振動が予め定められた閾値を超えた場合に、前記振動が検出されたストレージ装置及び該ストレージ装置に近接するストレージ装置のそれぞれのディスクドライブのアクセス状況と前記検出された振動との相関を解析することで、前記動作の実行を指示するストレージ装置を選択することを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記制御装置は、前記振動が検出されたストレージ装置が複数ある場合、それぞれのストレージ装置のディスクドライブに対するアクセス数とディスクドライブの種別に基づいて、前記動作を指示するストレージ装置を選択することを特徴とする請求項４または請求項５に記載のストレージシステム。
【請求項７】
各ストレージ装置の前記複数のディスクドライブは、ディスクドライブの故障時に故障したディスクドライブの代替として用いられるスペアディスクドライブを含み、
前記制御装置は、前記動作を指示するストレージ装置の前記スペアディスクドライブを選択して前記動作を実行させることを特徴とする請求項４乃至請求項６のいずれか一項に記載のストレージシステム。
【請求項８】
前記振動の周期より短い振動を発生させる動作は、予め定められたアクセスパターンを有するリード動作またはシーク動作であることを特徴とする請求項４乃至請求項７のいずれか一項に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、複数のディスクドライブを搭載するストレージ装置、及び複数のストレージ装置を搭載するストレージシステムに関する。
【背景技術】
【０００２】
複数のハードディスクドライブ（ＨＤＤ）と各ＨＤＤに対する制御を行うディスク制御装置を搭載するストレージ装置（ＤＥ：Ｄｒｉｖｅ  Ｅｎｃｌｏｓｕｒｅ）が知られている。また、このようなストレージ装置を複数台積載したストレージシステムであるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置が知られている。
【０００３】
ＨＤＤは、磁性体を塗布または蒸着した金属の記憶媒体（「プラッタ」という）を一定の間隔で複数枚積層した構造の記憶媒体駆動装置である。この積層されたプラッタをスピンドルモータ（ＳＰＭ）で高速に回転させてヘッドをプラッタに近接させて、ＨＤＤは、プラッタに対してデータの読み書きを行う。
【０００４】
また、ヘッドは、ヘッドアームの先端に搭載され、ボイスコイルモータ（ＶＣＭ）によって、プラッタのインナ及びアウタに移動して、プラッタ上の目的のトラック上の位置に位置付けられる。
【０００５】
このように、ＨＤＤは、スピンドルモータ（ＳＰＭ）及びボイスコイルモータ（ＶＣＭ）を利用して構成されるので、これらの駆動によって振動が発生する。それゆえ、このようなＨＤＤを複数台搭載しているＤＥは各ＨＤＤの振動を受けて大きな振動を発生する。
【０００６】
従って、ストレージシステムは、このようなＤＥを筐体内の収納棚に複数台配置しており、各ＤＥで発生した振動が収納棚に伝搬して、ＤＥ間で共振を引き起こすことがある。この振動や共振が各ＤＥに伝搬することで、各ＤＥに搭載されたＨＤＤ内のヘッドが振動する。その為、プラッタ上の目的のトラックに正しく位置付けすることが出来なくなり、データの読み出し又は書き込みにおいてアクセスエラーが発生する場合がある。
【０００７】
近年、ＨＤＤは大容量化と高速化が望まれ、開発が急速に進められ、その構造は複雑化している。大容量化の手法として、ＨＤＤ内のプラッタの枚数を増やすことが挙げられる。また、高速化の手法として、プラッタの回転速度の高速化、ヘッドのシーク速度の高速化等が挙げられる。
【０００８】
また、ＨＤＤの構造上、プラッタ上の目的のトラックに応じて、ヘッドのヨー角が変化する。さらに、プラッタ毎にヘッドが設けられており、プラッタの枚数、ヘッドの本数や搭載位置が機種毎に異なる。このように、ＨＤＤは複数の構造的な要素および制御的な要素が絡みあって構成されており、ＨＤＤが動作時に起こす振動をシミュレートすることは容易ではない。
【０００９】
さらに、複数のＨＤＤが搭載されるＤＥの場合、ＨＤＤの台数に応じて振動に関するパラメータが増えることになる。従って、ＤＥ内のＨＤＤのアクセス動作時の振動をシミュレートすることは極めて難しい。
【００１０】
そこで、経験則により、ＤＥの筐体の板金の厚みを調整したり、ＨＤＤをＤＥに搭載するためのケースの素材を変更したりすることで、ＤＥの振動を起こりにくくしている。しかしながら、前述したＨＤＤの大容量化及び高速化によって、予期しない振動や共振が発生する可能性が高まっており、ＤＥ内のＨＤＤのアクセス動作が正常に行えなくなる可能性が考えられる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００３−２２８９５６号公報
【特許文献２】特開平０２−１３４７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
開示の技術は、ディスクドライブの各種アクセスによって発生するストレージ装置の振動やストレージ装置間の共振の拡大を防止することを可能にするストレージ装置及びストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
開示の技術の一側面によると、筐体と、筐体内に隣接して配置され、回転する記憶媒体に対してヘッドを目的の位置に位置付けてデータのライト及びリードを実行する複数のディスクドライブを備えたストレージ装置において、筐体に設けられ、振動を検出する振動検出センサと、振動検出センサが検出した振動に基づいて、振動検出センサによって検出された振動の周期より短い振動を発生させる動作を、複数のディスクドライブの中から選択されたディスクドライブに対して実行させるディスク制御装置とを備えてなる。
【００１４】
開示の技術の他の側面によると、筐体と、筐体内に隣接して配置された複数のストレージ装置と、複数のストレージ装置それぞれに設けられ、回転する記憶媒体に対してヘッドを目的の位置に位置付けてデータのライト及びリードを実行する複数のディスクドライブと、複数のストレージ装置それぞれに設けられ、各ストレージ装置において発生する振動を検出する振動検出センサと、振動検出センサが検出した振動に基づいて、振動検出センサによって検出された振動の周期より短い振動を発生させる動作を、複数のストレージ装置の中から選択されたストレージ装置に対して実行させる制御装置と、を備えてなる。
【発明の効果】
【００１５】
開示のストレージ装置及びストレージステムは、ディスクドライブの各種アクセスによって発生するストレージ装置の振動やストレージ装置間の共振の拡大を防止することを可能にする。
【００１６】
ゆえに、開示のストレージ装置及びストレージステムは、振動や共振を抑制することにより、ディスクドライブの記録／再生エラーを防止して、ストレージ装置及びストレージステムのアクセスエラーを防止することを可能にする。従って、開示のストレージ装置及びストレージステムは、信頼性の高い記録再生を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、ストレージ装置の外観図及び筐体内部を説明するための図である。
【図２】図２は、ストレージ装置のブロック図である。
【図３】図３は、ストレージ装置の振動状況を説明するための図である。
【図４】図４は、第１の実施形態の振動低減制御を説明するためのフロー図である。
【図５】図５は、ストレージシステムの構成を説明するための図である。
【図６】図６は、ストレージシステムのブロック図である。
【図７】図７は、第２の実施形態の振動低減制御を説明するためのフロー図である。
【図８】図８は、動作状態管理テーブルを示す図である。
【図９】図９は、振動源の推定方法を説明するための図（その１）である。
【図１０】図１０は、振動源の推定方法を説明するための図（その２）である。
【図１１】図１１は、ポイントによる振動源の推定方法を説明するための図である。
【図１２】図１２は、振動低減方法を説明するための図である。
【図１３】図１３は、アクセスパターンの変更方法を説明するための図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して実施の形態を詳細に説明する。図１（Ａ）、（Ｂ）は、ストレージ装置の外観図及び筐体内部を説明するための図である。図１（Ａ）、（Ｂ）において、ストレージ装置１０は、筐体１０ｅを備える。筐体１０ｅの上面１０ｕ及び左右両側の側面１０ｓに振動検出センサ１５が設けられている。
【００１９】
振動検出センサ１５として、振動量を振動加速度に比例した電気信号として取り出すことができる加速度センサを使用する。また、加速度センサとして、振動の発生源であるヘッドやプラッタの駆動に対応した振動を検出する１軸センサや、ｘｙｚ軸方向の振動を検出する３軸センサを使用することができる。
【００２０】
図１（Ａ）に示すように、筐体１０ｅのフロント部１０ｆのスロット１３には、複数のドライブ１２が配置されている。ドライブ１２は、オペレータによって交換が可能であり、スロット１３の内部に配置された回路基板１８のコネクタと各ドライブ１２のコネクタを接続することによりストレージ装置１０に装着される。
【００２１】
また、図１（Ｂ）に示すように、筐体内部には、回路基板１８に接続された２台のディスク制御装置１６−１、１６−２及び２台の電源装置１７−１、１７−２が配置されている。
【００２２】
複数のドライブ１２は、ハードディスクドライブ（ＨＤＤ）またはＨＤＤの代わりに用いられるディスクドライブとして知られているソリッドステートドライブ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。そして、これらは隣接して並列配置されている。
【００２３】
図２は、ストレージ装置のブロック図である。ストレージ装置１０には、外部システムやストレージ制御装置等に接続されるインタフェース（Ｉ／Ｆ）部１９や各種回路が設けられる。ディスク制御装置（＃１）１６−１は、ＣＰＵ１６ａとメモリ１６ｂ等が設けられている。また、ディスク制御装置（＃１）１６−２も、同様に、ＣＰＵ１６ｃとメモリ１６ｄ等が設けられている。
【００２４】
メモリ１６ｂ、１６ｄは、ＣＰＵ１６ａ、１６ｃが使用する各種プログラムを格納する。また、ストレージ装置の振動を監視し、振動低減制御を実行するための振動監視／低減制御プログラムもメモリ１６ｂまたは／及び１６ｄに格納される。
【００２５】
また、複数のドライブ１２は、２つのＲＡＩＤグループであるディスクドライブ群（＃１）１２ｇ−１とディスクドライブ群（＃２）１２ｇ−２に分けられ、各ディスク制御装置１６−１、１６−２及び電源装置１７−１、１７−２の配下に割り当てられている。
【００２６】
従って、各ディスク制御装置１６−１、１６−２は、インタフェース（Ｉ／Ｆ）１９を通じて受信した各種コマンドに応答して、それぞれのディスクドライブ群に属する複数のＨＤＤを制御する。
【００２７】
３つの振動検出センサ１５は２台もしくは一方のディスク制御装置１６−１、１６−２に振動検出結果を出力する。この振動検出結果を受信してディスク制御装置は、振動監視／低減制御プログラムにより、振動状況を監視し、必要に応じて振動低減制御を実行する。このようなストレージ装置を複数台組合せることにより、ストレージシステムが構成される。
【００２８】
図３は、ストレージ装置の振動状況を説明するための図である。図３は、縦軸が振動値Ａを示し、横軸が時間Ｔを示す。振動が無い状態を０とする。図３に示すように、３カ所の振動検出センサ１５が検出した振動は、時間経過とともに変動する。このような振動が伝搬し、ストレージ装置内のドライブ間やストレージシステム内のストレージ装置間で共振が発生すると、急激に振動が拡大する。
【００２９】
このような状態で、ストレージ装置の運用を継続すると、ＨＤＤ内のヘッドが振動し、データの読み出しが失敗するリードエラーやデータの書込みが失敗するライトエラーなどのアクセスエラーを生じる可能性が高まる。従って、振動低減制御を開始する制御開始閾値をアクセスエラーが生じ易くなる振動閾値より十分小さい値、例えば５０％に予め設定しておく。これにより、アクセスエラーが生じ易くなる振動が発生する前に振動低減制御を開始することができ、振動の拡大を防止することができる。
【００３０】
図４は、第１の実施形態の振動低減制御を説明するためのフロー図である。ストレージ装置１０の振動を振動検出センサ１５で検出し、２台もしくは一方のディスク制御装置１６−１、１６−２に振動検出結果を出力する。ディスク制御装置は、振動検出センサ１５からの出力を受信して、振動状況を一定の時間間隔で監視する（Ｓ１０１）。
【００３１】
ディスク制御装置は、振動が制御開始閾値を超えていなければ、引き続き振動状況を監視する（Ｓ１０２、Ｎｏ）。ディスク制御装置は、振動検出センサ１５で検出された振動が制御開始閾値を超えていれば（Ｓ１０２、Ｙｅｓ）、振動低減制御を開始する。
【００３２】
そして、複数のＨＤＤの中から、コマンド処理を実行していないコマンド待機中で、ヘッドがアクセスしていない（アクセス無しの）ＨＤＤを選択する。例えば、スペアディスクドライブ（スペアＨＤＤ）がストレージ装置１０に設定されている場合、ディスク制御装置はスペアＨＤＤ１２ｓを選択する。スペアＨＤＤは、ＨＤＤの故障時に故障したＨＤＤの代替として用いられるＨＤＤである。そして、指示対象のＨＤＤとしてスペアＨＤＤ１２ｓに振動低減動作を実行させる（Ｓ１０３）。
【００３３】
従って、ストレージ装置１０は、コマンド待機中のＨＤＤやスペアＨＤＤを使用してコマンド処理中のＨＤＤの動作を停止させることなく、振動低減動作を実行させることができる。
【００３４】
ストレージ装置１０の振動検出センサ１５によって検出された振動値が縮小し、振動低減が確認されると（Ｓ１０４、Ｙｅｓ）、ディスク制御装置は、アクセスエラーの危険性が低下したと判断して、振動低減動作を終了する（Ｓ１０６）。そして、Ｓ１０１に戻って、ディスク制御装置は振動状況を一定の時間間隔で監視する。
【００３５】
振動が低減されていなければ（Ｓ１０４、Ｎｏ）、ディスク制御装置は振動低減動作のアクセスパターンを変更して、振動低減が確認されるまで振動低減動作を継続する（Ｓ１０５）。なお、振動低減動作の詳細は後述する。
【００３６】
このように、ストレージ装置１０は、アクセスエラーが生じ易くなる振動が発生する前に振動低減制御を開始して、ストレージ装置１０内の他のＨＤＤへの振動の拡大を防止することができる。
【００３７】
図５は、ストレージシステムの構成を説明するための図である。本実施の形態において、４台のストレージ装置と１台のストレージ制御装置を備えるストレージシステムを例として説明する。ストレージシステム１００は、複数段の収納棚を有する筐体１０２を備える。筐体１０２の各収納棚に、ストレージ制御装置２０及び複数のストレージ装置（ＤＥ＃０１〜ＤＥ＃０４）３０、４０、５０、６０が搭載されている。１段目に搭載されたストレージ制御装置（ＣＥ：Ｃｏｎｔｒｏｌ  Ｅｎｃｌｏｓｕｒｅ）２０は、ストレージシステム１００の全体を制御するものである。
【００３８】
２段目に搭載されたストレージ装置（ＤＥ＃０１）３０は、複数のＨＤＤを含むディスクドライブ３０１〜３２６を搭載する。３段目に搭載されたストレージ装置（ＤＥ＃０２）４０は、複数のＨＤＤを含むディスクドライブ４０１〜４２６を搭載する。４段目に搭載されたストレージ装置（ＤＥ＃０３）５０は、複数のＨＤＤを含むディスクドライブ５０１〜５２６を搭載する。５段目に搭載されたストレージ装置（ＤＥ＃０４）６０は、複数のＨＤＤの代わりに、複数のソリッドステートドライブ（ＳＳＤ）６０１〜６２６を搭載する。
【００３９】
ＳＳＤは、プラッタの代わりに、記憶媒体としてフラッシュメモリ等の半導体メモリを使用したものである。ゆえに、ＨＤＤのように、モータやヘッドアームなどの機構部品を備えていないので、振動が発生しない。なお、ストレージ装置３０、４０、５０、６０は、図１（Ａ）、（Ｂ）で示したストレージ装置１０と同様の構成であり、図示及び説明は省略する。
【００４０】
図６は、ストレージシステムのブロック図である。ストレージシステム１００において、ストレージ制御装置２０は、ストレージシステム１００の全体を制御するためのプロセッサ（ＣＰＵ）２２及びメモリ（ＲＡＭ）２３、インタフェース部２１を備える。インタフェース部２１は、図示しない外部のサーバ等のホストシステムに接続されるチャネルインタフェースと、各ストレージ装置に接続されるディスクインタフェースを備える。
【００４１】
ストレージ制御装置２０のＣＰＵ２２は、ホストシステムからのコマンドを受信して、各ストレージ装置３０、４０、５０、６０に対して、データの書込みを実行させるためのライトコマンドやデータの読み出しを実行させるためのリードコマンドを発行する。
【００４２】
また、ＣＰＵ２２は、振動監視／低減制御プログラムにより、各ストレージ装置３０、４０、５０、６０の動作状態を監視し、振動低減制御を実行する振動監視／低減制御モジュールとしても機能する。
【００４３】
メモリ２３は、ＣＰＵ２２が使用する振動監視／低減制御プログラムや各種プログラムを格納するとともに、収集した各ストレージ装置３０、４０、５０、６０のアクセス状況と振動状況を動作状態管理テーブルに格納する。動作状態管理テーブルの詳細については後述する。
【００４４】
各ストレージ装置３０、４０、５０には、ディスク制御装置（＃１）３２、４２、５２及びディスク制御装置（＃２）３３、４３、５３、複数のＨＤＤがグループ化されたディスクドライブ群（＃１）３４、４４、５４及びディスクドライブ群（＃２）３５、４５、５５が設けられる。なお、図６では省略して示すが、各ストレージ装置３０、４０、５０、６０には、各２台の電源装置や各種回路等も備えている。
【００４５】
各ディスク制御装置（＃１）３２、４２、５２は、それぞれのディスクドライブ群（＃１）３４、４４、５４に属する複数のＨＤＤを制御する。また、ディスク制御装置（＃２）３３、４３、５３は、それぞれのディスクドライブ群（＃２）３５、４５、５５に属する複数のＨＤＤを制御する。なお、ストレージ装置３０、４０、５０のディスクドライブ群には、ＨＤＤに代わってＳＳＤが一部のスロットに装着されていても良い。
【００４６】
ストレージ装置６０の全てのスロットには、ＳＳＤのみが装着されている。ストレージ装置６０は、複数のＳＳＤがグループ化されたディスクドライブ群（＃１）６４及びディスクドライブ群（＃２）６５が設けられる。そして、ディスク制御装置（＃１）６２及びディスク制御装置（＃２）６３は、ディスクドライブ群（＃１）６４及びディスクドライブ群（＃２）６５に属する複数のＳＳＤを制御する。
【００４７】
また、各ストレージ装置３０、４０、５０、６０の筐体には、図１（Ａ）に示したものと同様に、上面及び左右の側面にそれぞれ振動検出センサ３６、４６、５６、６６が設けられており、各ストレージ装置３０、４０、５０、６０の振動を検出する。
【００４８】
加速度センサとして、後述するストレージシステムへの積載方向に応じた方向の振動を検出する１軸センサや、ｘｙｚ軸方向の振動を検出する３軸センサを使用することができる。本実施の形態では、上下に積載している為、上下方向の振動を検出する１軸センサを使用しても良い。横方向に並列して積載している場合は、横方向の振動を検出する１軸センサを使用しても良い。
【００４９】
なお、ストレージ装置６０は、搭載されたディスクドライブが全てＳＳＤであるので、ストレージ装置６０自体から振動を発生することは無い。また、オペレータにより、ストレージ装置６０のドライブの入れ換えが行われ、ＨＤＤが装着された場合はストレージ装置６０自体から振動を発生する場合がある。従って、ストレージ装置６０にも、振動検出センサ６６が設けられる。
【００５０】
また、各振動検出センサ３６、４６、５６、６６が検出した振動検出結果はストレージ制御装置２０のＣＰＵ２２に送信される。従って、ストレージ制御装置２０のＣＰＵ２２は、振動監視／低減制御プログラムにより、全ストレージ装置３０、４０、５０、６０の振動発生状況を集約して常に監視して、必要に応じて振動低減制御を実行することができる。
【００５１】
なお、振動低減制御を開始する制御開始閾値をアクセスエラーが生じ易くなる振動閾値より十分小さい値、例えば５０％に予め設定しておく。これにより、アクセスエラーが生じ易くなる振動が発生する前に振動低減制御を開始することができ、振動の拡大を防止することができる。
【００５２】
図７は、第２の実施形態の振動低減制御を説明するためのフロー図である。振動検出センサ３６、４６、５６、６６は、各ストレージ装置（ＤＥ＃０１〜ＤＥ＃０４）３０、４０、５０、６０の振動を検出し、ストレージ制御装置２０に振動検出結果を出力する。
【００５３】
ストレージ制御装置２０のＣＰＵ２２は、振動検出センサ３６、４６、５６、６６からの出力を受信して、振動状況を一定の時間間隔で監視する（Ｓ２０１）。各ＤＥ＃０１〜ＤＥ＃０４のアクセス状況と振動状況を動作状態管理テーブル７５に登録する。なお、動作状態管理テーブル７５は、ストレージ制御装置２０のメモリ２３に格納されている。
【００５４】
ストレージ制御装置２０のＣＰＵ２２は、振動が制御開始閾値を超えていなければ、引き続き振動状況を監視する（Ｓ２０２、Ｎｏ）。ストレージ制御装置２０のＣＰＵ２２は、ＤＥ＃０１〜ＤＥ＃０４の中のいずれかのＤＥ（ｘ）の振動が制御開始閾値を超えていれば（Ｓ２０２、Ｙｅｓ）、振動低減制御を開始する。
【００５５】
ＣＰＵ２２は、各ＤＥ＃０１〜ＤＥ＃０４の動作状態管理テーブル７５を参照する。そして、ＣＰＵ２２は、各ＤＥ＃０１〜ＤＥ＃０４のアクセス状況の解析を開始する（Ｓ２０３）。ＣＰＵ２２は、ＤＥ（ｘ）のアクセス状況と検出された振動に相関があるか否かを判定する。
【００５６】
ＣＰＵ２２は相関有りと判定した場合（Ｓ２０４、Ｙｅｓ）、ＤＥ（ｘ）に振動低減動作実行させる。ＣＰＵ２２は、ＤＥ（ｘ）に装着されたＨＤＤの中から、コマンド処理を実行していないコマンド待機中で、ヘッドがアクセスしていない（アクセス無しの）ＨＤＤを選択する。
【００５７】
例えば、スペアディスクドライブ（スペアＨＤＤ）がＤＥ（ｘ）に設定されている場合には、ＣＰＵ２２は、ディスク制御装置３２または３３に指示して、スペアＨＤＤを選択する。そして、指示対象のＨＤＤとしてスペアＨＤＤに振動低減動作を実行させる（Ｓ２０５）。従って、ＣＰＵ２２は、コマンド待機中のＨＤＤやスペアＨＤＤを使用してコマンド処理中のＨＤＤの動作を停止させることなく、振動低減動作を実行させることができる。
【００５８】
ＣＰＵ２２は相関無しと判定した場合（Ｓ２０４、Ｎｏ）、動作状態管理テーブル７５を参照して、ＤＥ（ｘ）に近接するＤＥ（ｘ−１）とＤＥ（ｘ＋１）のアクセス状況とＤＥ（ｘ）の振動との相関を解析する（Ｓ２０７）。
【００５９】
そして、ＣＰＵ２２は、相関が認められたＤＥに対して指示して、指示対象のＤＥにおけるスペアＨＤＤに振動低減動作を実行させる（Ｓ２０８）。なお、ＤＥ（ｘ−１）とＤＥ（ｘ＋１）の中に、搭載されたディスクドライブが全てＳＳＤであるＤＥがあれば、ＣＰＵ２２はそのＤＥは振動低減動作の指示対象外と判定する。
【００６０】
このようにして、ＤＥ（ｘ）の振動検出センサによって検出された振動値が縮小し、振動低減が確認されると（Ｓ２０６、Ｙｅｓ）、ＣＰＵ２２は、アクセスエラーの危険性が低下したと判断して、指示対象のＤＥの振動低減動作を終了する（Ｓ２１０）。そして、Ｓ２０１に戻って、ＣＰＵ２２は、振動状況を一定の時間間隔で監視する。
【００６１】
ＤＥ（ｘ）の振動が低減されていない場合は（Ｓ２０６、Ｎｏ）、ＣＰＵ２２は、指示対象のＤＥにおけるスペアディスクドライブに振動低減動作のアクセスパターンを変更して、振動低減が確認されるまで振動低減動作を継続する（Ｓ２０９）。なお、振動低減動作の詳細は後述する。
【００６２】
図８は、各ストレージ装置の動作状態管理テーブルを示す図である。図９（Ａ）〜（Ｃ）は、振動源の推定方法を説明するための図（その１）である。動作状態管理テーブル７５には、各ＤＥ＃０１〜ＤＥ＃０３のアクセス状況と振動状況を動作状態管理テーブル７５が登録されている。なお、本実施の形態において、ＤＥ＃０４は搭載されたディスクドライブが全てＳＳＤであるので、監視対象から除外する。
【００６３】
図８において、横軸は時間を示し、縦軸はアクセス状況と振動状況を示す。ＤＥ＃０２において、時刻０：１０：１５、及び時刻０：１０：２０のタイミングで、上面及び左右の振動検出センサの振動値が０．５以上となっている。
【００６４】
ＤＥ＃０２の各振動値が制御開始閾値（アクセスエラーが生じ易くなる振動閾値の５０％）である０．５以上である為、ＣＰＵ２２は、振動低減制御を開始する。ＣＰＵ２２は、ＤＥ＃０２のアクセス状況と検出された振動に相関があるか否かを判定する。ＤＥ＃０２の振動値が０．５以上の時のアクセス状況はアクセス無し（ｎｏ  ａｃｃｓｅｓｓ）となっている。
【００６５】
従って、図９（Ａ）に示すように、制御開始閾値を超えた振動検出中のＤＥ＃０２はアクセス無しの為、ＣＰＵ２２は振動との相関無しと判定し、ＤＥ＃０２は振動源では無いと推定する。続いて、図９（Ｂ）に示すように、ＣＰＵ２２はＤＥ＃０２に上下に近接するＤＥ＃０１とＤＥ＃０３のアクセス状況とＤＥ＃０２の振動との相関を解析する。
【００６６】
ＤＥ＃０１は、時刻０：１０：１５、及び時刻０：１０：２０のタイミングにおいて、スロット７のディスクドライブにおいてリード（Ｒｅａｄ）コマンド処理を実行中である。ＤＥ＃０３は、時刻０：１０：１５、及び時刻０：１０：２０のタイミングにおいて、アクセス無し（ｎｏ  ａｃｃｓｅｓｓ）の為、ＣＰＵ２２は、ＤＥ＃０３を振動との相関無しと判定し、ＤＥ＃０３は振動源では無いと推定する。従って、ＣＰＵ２２は、アクセス実行中のＤＥ＃０１を振動源として推定する。
【００６７】
図９（Ｃ）に示すように、ＣＰＵ２２はＤＥ＃０１に対して振動低減処理を指示して実行させる。ＤＥ＃０１のディスク制御装置３２または／及び３３はスペアディスクドライブ３２５または／及び３２６に対して、振動低減処理を実行させる。
【００６８】
振動低減処理を実行しても振動が低減されない場合は、ＣＰＵ２２は、振動低減動作のアクセスパターンを変更して、振動低減が確認されるまでＤＥ＃０１に振動低減動作を継続させる。その後、ＤＥ＃０２の振動値が縮小し、振動低減が確認されると、ＣＰＵ２２は、アクセスエラーの危険性が低下したと判断して、ＤＥ＃０１の振動低減動作を終了する。
【００６９】
なお、ＤＥ＃０１の振動低減動作を実行しても振動が低減されない場合は、振動中のＤＥ＃０２に対して振動低減動作を実行させても良い。その場合は、ＤＥ＃０２のディスク制御装置４２または／及び４３はスペアディスクドライブ４２５または／及び４２６に対して、振動低減処理を実行させる。
【００７０】
図１０（Ａ）〜（Ｃ）は、振動源の推定方法を説明するための図（その２）である。図９（Ａ）〜（Ｃ）は、制御開始閾値を超えた振動を検出したＤＥが１台の場合を例に説明したが、図１０（Ａ）〜（Ｃ）は、複数台の場合を説明する。
【００７１】
図１０（Ａ）に示すように、ＤＥ＃０２とＤＥ＃０３の振動検出センサ３６及び４６は制御開始閾値を超えた振動を検出している。ＣＰＵ２２は、動作状態管理テーブル７５を参照して、ＤＥ＃０２とＤＥ＃０３のアクセス状況を判定する。ＣＰＵ２２がＤＥ＃０２がアクセス有り、ＤＥ＃０３がアクセス無しと判定した場合は、ＣＰＵ２２はＤＥ＃０２を振動源と推定する。そして、図１０（Ｃ）に示すように、ＣＰＵ２２はＤＥ＃０２を指示対象のＤＥと判断し、振動低減動作の実行を指示する。
【００７２】
図１０（Ｂ）に示すように、ＤＥ＃０２とＤＥ＃０３の振動検出センサ３６及び４６は制御開始閾値を超えた振動を検出している。ＣＰＵ２２は、動作状態管理テーブル７５を参照して、ＤＥ＃０２とＤＥ＃０３のアクセス状況を判定する。ＣＰＵ２２がＤＥ＃０２とＤＥ＃０３が共にアクセス有りと判定した場合は、ＣＰＵ２２はポイントにより振動源を推定する。
【００７３】
ＣＰＵ２２はポイントにより最も大きな振動を発生している振動源のＤＥを推定し、指示対象のＤＥに振動低減動作の実行を指示する。そして、図１０（Ｃ）に示すように、ＣＰＵ２２は後述するポイント計算によりＤＥ＃０２を指示対象のＤＥと判断し、振動低減動作の実行を指示する。
【００７４】
このようにして、ＣＰＵ２２は振動源のＤＥを推定し、推定した指示対象のＤＥに振動低減動作を実行させることができる。そして、振動低減処理を実行しても振動が低減されない場合は、ＣＰＵ２２は、振動低減動作のアクセスパターンを変更して、振動低減が確認されるまで推定した指示対象のＤＥに振動低減動作を継続させる。
【００７５】
その後、ＤＥ＃０２及びＤＥ＃０３の振動値が縮小し、振動低減が確認されると、ＣＰＵ２２は、アクセスエラーの危険性が低下したと判断して、指示対象のＤＥの振動低減動作を終了する。
【００７６】
図１１（Ａ）、（Ｂ）は、ポイントによる振動源の推定方法を説明するための図である。複数のＤＥで制御開始閾値を超えた振動を検出し、かつそれぞれのＤＥにアクセスが確認される場合、振動源を推定することができない。そこで、各ＤＥ＃０１〜＃０４に搭載されるディスクドライブの種別とアクセス数を利用する。
【００７７】
ＨＤＤにはプラッタを回転する回転数が異なる機種がある。例えば、１５０００ｒｐｍ、１００００ｒｐｍ、７２００ｒｐｍの回転数の機種がある。また、フラッシュメモリ等の半導体メモリを使用したＳＳＤは、プラッタを回転する回転機構やヘッドアームなどの機構部品を備えていない。従って、回転数が大きいＨＤＤが振動に与える影響が大きいと取り決め、ドライブ種別に対応してポイント制を導入する。
【００７８】
図１１（Ａ）のテーブル８１は、ドライブ種別毎のポイント数を示す。１５０００ｒｐｍの場合１ポイント、１００００ｒｐｍの場合０．７ポイント、７２００ｒｐｍの場合０．５ポイントとする。ＳＳＤの場合は、機構部品を備えていない為振動を発生しないとして、０ポイントとする。なお、ポイント数はＨＤＤの仕様や振動の状況に応じて適宜変更することができる。
【００７９】
図１０（Ｂ）で説明したように、ＤＥ＃０２及びＤＥ＃０３が共にアクセス有りと判定した場合において、ＣＰＵ２２は動作状況管理テーブルを使用してＤＥ＃０２及びＤＥ＃０３のアクセス状況を確認する。例えば、ＤＥ＃０２において５台のディスクドライブへのアクセスが有り、ＤＥ＃０３において３台のドライブへのアクセスが有ったとする。ＣＰＵ２２はアクセス数とドライブ種別を照合し、ポイントの合計数を計算する。
【００８０】
図１１（Ｂ）のテーブル８２は、ＤＥ＃０２とＤＥ＃０３のポイントの合計数を示す。テーブル８２によれば、ＤＥ＃０２は２台の７２００ｒｐｍ、３台のＳＳＤに対してアクセスがある。ＤＥ＃０３は３台の１５０００ｒｐｍに対してアクセスがある。従って、ＤＥ＃０２においてポイント数の合計が５、ＤＥ＃０３においてポイント数の合計が３である。
【００８１】
従って、ＣＰＵ２２は、ＤＥ＃０２を最も大きな振動を発生している振動発生源として推定する。そして、図１０（Ｃ）で説明したように、ＤＥ＃０２を指示対象のＤＥとして振動低減動作を実行させる。このようにして、ストレージ制御装置２０は、振動低減動作を実行させる指示対象のストレージ装置（ＤＥ）を容易に推定することができる。また、振動源となっているストレージ装置に対して、振動低減処理を実行することにより、効率的に振動を低減させることができる。
【００８２】
図１２は、振動低減方法を説明するための図である。図１２において、振動低減処理で発生させる振動は、振動検出センサによって検出された振動波形７１に対して、振幅が十分小さく、周期が十分短い振動波形９２を有するものである。
【００８３】
振動波形９２の振幅は、例えば、振動波形７１の振幅に対して１／１０〜１／４倍である。振動波形９２の周期は、例えば、振動波形７１の周期に対して４〜１０倍である。この振動波形９２を振動波形７１に合成することによって、振動低減処理後の振動波形９３にする。
【００８４】
従って、振動波形７１の振幅を＋側と−側の制御開始閾値の範囲内に収めることにより、アクセスエラーが生じ易くなる振動閾値よりも十分小さくすることができる。ゆえに、ＨＤＤのアクセスエラーの発生を防止することができる。
【００８５】
また、振動波形９２を指示対象のＨＤＤに発生させる方法の一例として、指示対象のＨＤＤのヘッドアームの駆動制御が挙げられる。ストレージ制御装置やディスク制御装置は、指示対象のＨＤＤに対して、所定のコマンドを発行することで、指示対象のＨＤＤに対してヘッドアームの駆動を実行させることができる。
【００８６】
所定のコマンドとしては、プラッタに予め記録されているダミーデータの読み出しを指示するリードコマンドや、プラッタのインナからアウタに移動させるシークを指示するシークコマンドを利用することができる。
【００８７】
また、ダミーデータを利用する場合は、振動低減制御に対応してプラッタの数カ所にダミーデータを予め記録しておく。ダミーデータが記録されているプラッタ上のアドレス（ＬＢＡ：論理ブロックアドレス）を予めメモリに格納しておく。そして、ストレージ制御装置やディスク制御装置は、このアドレスを指定したコマンドを指示対象のＨＤＤに発行すれば良い。なお、ストレージ装置やストレージシステムの仕様に対応して、その他のコマンドや記録済のデータに対するリードコマンドを利用することもできる。
【００８８】
図１３は、アクセスパターンの変更方法を説明するための図である。ＨＤＤのヘッドアームの駆動動作を制御することで、振動低減動作のアクセスパターンを変更するができる。図１３のテーブル９６に示すように、検出された振動が制御開始閾値を超えた場合は、短周期の１／４周期のヘッドアームの移動を繰り返すことで、振動低減動作を試みる。
【００８９】
振動が低減されなければ、中周期の１／２周期のヘッドアームの移動を繰り返す。さらに、振動が低減されなければ、長周期のフルシークのヘッドアームの移動を繰り返す。従って、ストレージ制御装置やディスク制御装置は、指示対象のＨＤＤに対して、このような動作を指示するリードコマンドまたはシークコマンドを発行すれば良い。
【００９０】
つまり、ヘッドを位置付けるプラッタ上のアドレス（ＬＢＡ：論理ブロックアドレス）を予めメモリに格納しておき、ストレージ制御装置やディスク制御装置がこのアドレスを指定したコマンドを指示対象のＨＤＤに発行すれば良い。
【００９１】
従って、本実施形態のストレージ装置やストレージシステムは、全ての振動パターンをシュミーレートしてストレージ装置やストレージシステムを構造設計しなくても、能動的な制振制御を行うことができる。また、未知なる振動モードが発生しても、振動をアクセスエラーが発生しない程度に抑えることができ、安定したデータ転送を行うことができる。
【００９２】
本発明は上記実施の形態に限定されるものではない。矛盾のない限りにおいて、複数の実施の形態を組み合わせても構わない。上記実施形態は例示であり、本発明の特許請求の範囲に記載された技術的思想と実質的に同一な構成を有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲に包含される。
【符号の説明】
【００９３】
１０    ストレージ装置
１０ｅ  筐体
１２    ドライブ
１３    スロット
１５    振動検出センサ
１６−１  ディスク制御装置＃１
１６−２  ディスク制御装置＃２
１７−１  電源装置＃１
１７−２  電源装置＃２
１８    回路基板
１９    インタフェース部
２０    ストレージ制御装置（ＣＥ）
２１    インタフェース部
２３    メモリ（ＲＡＭ）
３０    ストレージ装置（ＤＥ＃０１）
４０    ストレージ装置（ＤＥ＃０２）
５０    ストレージ装置（ＤＥ＃０３）
６０    ストレージ装置（ＤＥ＃０４）
２２    プロセッサ（ＣＰＵ）
３２、４２、５２、６２  ディスク制御装置＃１
３３、４３、５３，６３  ディスク制御装置＃２
３４、４４、５４、６４  ディスクドライブ群＃１
３５、４５、５５、６５  ディスクドライブ群＃２
３６、４６、５６、６６  振動検出センサ
１００  ストレージシステム
３０１〜３２６  ドライブ
４０１〜４２６  ドライブ
５０１〜５２６  ドライブ
６０１〜６２６  ＳＳＤ
【図１】
0005732959.tif 000002
【図２】
0005732959.tif 000003
【図３】
0005732959.tif 000004
【図４】
0005732959.tif 000005
【図５】
0005732959.tif 000006
【図６】
0005732959.tif 000007
【図７】
0005732959.tif 000008
【図８】
0005732959.tif 000009
【図９】
0005732959.tif 000010
【図１０】
0005732959.tif 000011
【図１１】
0005732959.tif 000012
【図１２】
0005732959.tif 000013
【図１３】
0005732959.tif 000014