JP6993579B2 - ストレージ制御装置およびストレージ制御プログラム - Google Patents

ストレージ制御装置およびストレージ制御プログラム Download PDF

Info

Publication number
JP6993579B2
JP6993579B2 JP2018099418A JP2018099418A JP6993579B2 JP 6993579 B2 JP6993579 B2 JP 6993579B2 JP 2018099418 A JP2018099418 A JP 2018099418A JP 2018099418 A JP2018099418 A JP 2018099418A JP 6993579 B2 JP6993579 B2 JP 6993579B2
Authority
JP
Japan
Prior art keywords
access
failure
command
magnetic disk
avoidance
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.)
Active
Application number
JP2018099418A
Other languages
English (en)
Other versions
JP2019204567A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018099418A priority Critical patent/JP6993579B2/ja
Publication of JP2019204567A publication Critical patent/JP2019204567A/ja
Application granted granted Critical
Publication of JP6993579B2 publication Critical patent/JP6993579B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Moving Of Head For Track Selection And Changing (AREA)

Description

本発明はストレージ制御装置およびストレージ制御プログラムに関する。
磁気ディスク装置では、記憶媒体である磁気ディスクに対し磁気ヘッドでデータを読み書きする。磁気ヘッドは、磁気ディスクの回転に伴う空気流により、磁気ディスク上を浮上する。磁気ディスク装置において、磁気ディスクに対し特定の箇所に集中してデータの読み書きが発生した場合や、全体的にデータの読み書き回数が少ない場合、磁気ヘッドが同一位置に留まる「定点浮上」と呼ばれる状態になる。磁気ヘッドが定点浮上状態になると、磁気ディスク表面の潤滑剤に偏りが生じて潤滑剤の轍が形成され、轍の凸部(突起部分)に磁気ヘッドが接触して磁気ヘッドを浮上させる動作が不安定になる「定点浮上障害」が発生する可能性が高くなる。
磁気ディスク装置における定点浮上障害の回避に関する技術の例として、次のような技術が提案されている。磁気ディスク装置において、磁気ヘッドが一定の位置で継続して浮上している時間を監視し、定位置浮上時間が所定の時間を越えたときに、アクチュエータによって磁気ヘッドの位置を移動する技術が提案されている。また、磁気ディスク装置において、磁気ヘッドを磁気ディスクの最外周トラックと最内周トラックとの間でシークさせて潤滑層の平滑化処理を実行する技術が提案されている。
特開2008-47208号公報 特開2006-134376号公報
ところで、一般的に、記憶装置に対するアクセスを要求するためのコマンドは、一旦コマンドキューに蓄積される。そして、コマンドキューからコマンドが順次取り出され、取り出されたコマンドに基づいて記憶装置へのアクセス処理が行われる。
一方、磁気ディスク装置において定点浮上障害が発生し得ると判定したときに、障害の発生を回避するための処理を即座に実行することで、障害の発生を未然に防止できる。しかし、障害が発生し得ると判定された時点で、磁気ディスク装置へのアクセスを要求するための実行待ちコマンドがコマンドキューに存在する場合、障害発生の回避処理を先に実行してしまうと、実行待ちコマンドに基づくアクセス処理の実行が遅延する。そのため、アクセス要求が発生してからアクセス処理が完了するまでの時間が長くなり、アクセス要求からの応答性能が低下してしまう。
1つの側面では、本発明は、障害発生の回避処理の実行によるアクセス処理の実行遅延を抑制可能なストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
1つの態様では、ストレージ制御装置が提供される。ストレージ制御装置は、アクセス制御部と、アクセス状況記録部と、障害回避処理部とを有する。アクセス制御部は、磁気ディスク装置に対するアクセスを要求するコマンドを受け付けてコマンドキューに登録し、コマンドキューからコマンドを順に取得し、取得したコマンドに基づいて磁気ディスク装置に対するアクセス処理を実行する。アクセス状況記録部は、磁気ディスク装置に対するアクセス状況を管理情報に記録する。障害回避処理部は、管理情報に基づいて、磁気ディスク装置が備える磁気ヘッドが同一位置に留まることで生じる障害が発生し得ると判定したとき、コマンドキューを参照し、磁気ディスク装置において障害の発生が予測される予測領域と、コマンドキューに存在する実行待ちコマンドによる磁気ディスク装置に対するアクセス先とに基づいて、障害の発生を回避するための回避処理の実行タイミングを制御する。
また、1つの態様では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1つの側面では、障害発生の回避処理の実行によるアクセス処理の実行遅延を抑制できる。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態のストレージシステムを示す図である。 ホストのハードウェア例を示す図である。 CMのハードウェア例を示す図である。 CMの機能例を示す図である。 HDD使用状況管理テーブルの例を示す図である。 RAID使用状況管理テーブルの例を示す図である。 LBA情報管理テーブルの例を示す図である。 初期設定処理の例を示すフローチャートである。 I/O受け付け処理の例を示すフローチャートである。 ディスクアクセス処理の例を示すフローチャートである。 定点浮上障害回避処理の例を示すフローチャート(その1)である。 定点浮上障害回避処理の例を示すフローチャート(その2)である。 定点浮上障害回避処理の例を示すフローチャート(その3)である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。
図1に示す情報処理システムは、ストレージ制御装置10と磁気ディスク装置20とを含む。ストレージ制御装置10は、磁気ディスク装置20に対するアクセスを制御する制御装置である。磁気ディスク装置20は、少なくとも1枚の磁気ディスク媒体を備え、磁気ディスク媒体の記録面に対して磁気ヘッドからデータを記録する。
ストレージ制御装置10は、アクセス制御部11、アクセス状況記録部12および障害回避処理部13を有する。アクセス制御部11、アクセス状況記録部12および障害回避処理部13の処理は、例えば、ストレージ制御装置10が備える図示しないプロセッサがプログラムを実行することで実現される。また、ストレージ制御装置10は、記憶部14を有してもよい。記憶部14は、例えば、RAM(Random Access Memory)などの揮発性記憶装置、またはHDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置によって実現される。
記憶部14には、管理情報14aとコマンドキュー14bが記憶される。管理情報14aには、磁気ディスク装置20に対するアクセス状況を示す情報が記録される。コマンドキュー14bは、アクセス制御部11に処理を実行させるコマンドが一時的に格納される。
アクセス制御部11は、磁気ディスク装置20に対するアクセスを要求するコマンドを受け付けて、コマンドキュー14bに登録する。本実施の形態では例として、ストレージ制御装置10には情報処理装置30が接続されており、磁気ディスク装置20に対するアクセスを要求するコマンドは、情報処理装置30から発行される。なお、このようなコマンドは、ストレージ制御装置10の内部で実行される処理によって発行されてもよい。アクセス制御部11は、コマンドキュー14bからコマンドを順に取得し、取得したコマンドに基づいて磁気ディスク装置20に対するアクセス処理を実行する。
アクセス状況記録部12は、磁気ディスク装置20に対するアクセス状況を管理情報14aに記録する。例えば、アクセス状況記録部12は、磁気ディスク装置20に対する一定時間ごとのアクセス数あるいはアクセスデータ量を、磁気ディスク装置20の磁気ディスク上の記録面に複数設定された領域ごとに、管理情報14aに記録する。
障害回避処理部13は、管理情報14aに基づいて、定点浮上障害が発生し得るかを判定する。定点浮上障害とは、磁気ディスク装置20が備える磁気ヘッドが同一位置に留まることで生じる障害である。障害回避処理部13は、定点浮上障害が発生し得ると判定した場合、コマンドキュー14bを参照する。そして、障害回避処理部13は、磁気ディスク装置20において定点浮上障害の発生が予測される予測領域と、コマンドキュー14bに存在する実行待ちコマンドによる磁気ディスク装置20に対するアクセス先とに基づいて、定点浮上障害の発生を回避するための回避処理の実行タイミングを制御する。
この実行タイミングの制御により、回避処理によって定点浮上障害の発生確率を低減させながら、アクセス制御部11が情報処理装置30から受け付けたコマンドに基づく磁気ディスク装置20へのアクセス処理の実行遅延を抑制できる。その結果、コマンドの発行によるアクセス要求からの応答性能の低下を抑制できる。
例えば、図1に示すように、アクセス制御部11が情報処理装置30からコマンドA,B,C,・・・,Nを順に受信して、コマンドキュー14bに登録したとする。そして、これらのコマンドA,B,C,・・・,Nに基づくアクセス処理が実行されていない状態(すなわち、コマンドA,B,C,・・・,Nが実行待ちの状態)で、障害回避処理部13が、定点浮上障害が発生し得ると判定したとする。
第1の例として、実行待ちのコマンドA,B,C,・・・,Nのうち、コマンドCによる磁気ディスク20へのアクセス先が、定点浮上障害の発生が予測される予測領域と一致したとする。この場合、障害回避処理部13は、コマンドCに基づくアクセス処理の実行前に定点浮上障害の回避処理が実行されるように制御する。例えば、障害回避処理部13は、回避処理を実行するための新たな回避コマンド15を生成し、コマンドキュー14bにおけるコマンドCの直前(すなわち、コマンドBとコマンドCとの間)に挿入する。この場合、アクセス制御部11は、コマンドCより前に回避コマンド15をコマンドキュー14bから取得し、取得した回避コマンド15に基づいて回避処理を実行する。
この第1の例では、定点浮上障害が発生し得る領域へアクセスする、コマンドCに基づくアクセス処理の実行前に、回避処理が実行される。これにより、コマンドCに基づくアクセス処理の実行時に定点浮上障害が発生する可能性を低減でき、アクセスの信頼性が向上する。
一方、第2の例として、実行待ちのコマンドA,B,C,・・・,Nの中に、定点浮上障害の発生が予測される予測領域をアクセス先とするコマンドが存在しなかったとする。この場合、障害回避処理部13は、少なくとも現在の実行待ちのコマンドA,B,C,・・・,Nに基づくアクセス処理を実行した後に、定点浮上障害の回避処理が実行されるように制御する。例えば、障害回避処理部13は、回避処理を実行するための新たな回避コマンド15を、コマンドキュー14bの末尾に登録する。
この第2の例では、回避処理を実行せずに、実行待ちのコマンドA,B,C,・・・,Nに基づくアクセス処理を実行したとしても、定点浮上障害が発生する可能性は小さい。このため、コマンドA,B,C,・・・,Nに基づくアクセス処理が、回避処理より優先して実行される。これにより、コマンドA,B,C,・・・,Nに基づくアクセス処理の実行前に回避処理を実行する場合と比較して、これらのアクセス処理の実行遅延を抑制できる。その結果、コマンドA,B,C,・・・,Nの発行から(すなわち、これらの発行によるアクセスの要求時から)の応答性能の低下を抑制できる。
このように、本実施の形態のストレージ制御装置10によれば、定点浮上障害発生の回避処理の実行によるアクセス処理の実行遅延を抑制できる。
[第2の実施の形態]
次に、第2の実施の形態として、図1の情報処理システムの例としてストレージシステムを適用した場合について説明する。
図2は、第2の実施の形態のストレージシステムを示す図である。図2に示すストレージシステムは、ホスト100、ストレージ装置200、およびネットワーク300を含む。
ホスト100とストレージ装置200とは、ネットワーク300を介して接続される。ネットワーク300は、例えば、ストレージエリアネットワーク(SAN:Storage Area Network)や、TCP/IP(Transmission Control Protocol/Internet Protocol)ネットワーク等である。
ホスト100は、ユーザに対して所定のサービスを提供する装置である。ホスト100は、サービス提供のための処理の実行に伴い、ストレージ装置から提供される記憶領域にアクセスする。この記憶領域は、例えば、論理記憶領域(論理ボリューム)として提供される。
ストレージ装置200は、CM(Controller Module)210およびドライブ部250を有する。
CM210は、ストレージ装置200全体を制御する。CM210は、ドライブ部250に搭載された記憶装置の記憶領域を用いて論理記憶領域を作成し、ホスト100からの要求に応じて論理記憶領域へのアクセスを制御する。また、CM210は、ドライブ部250に搭載されたHDDの定点浮上障害を事前に判定するための情報を格納し、定点浮上障害を回避する処理を実行する。
ドライブ部250は、複数の記憶装置を搭載する。ドライブ部250は、記憶装置としてHDD251a,251b,251c,・・・を備えたディスクアレイ装置である。なお、ドライブ部250には、HDD251a,251b,251c,・・・に加えてSSD(Solid State Drive)などの他の種類の記憶装置が搭載されていてもよい。
なお、ストレージシステムに含まれるホスト100の台数は、1台に限定されるものではない。また、ストレージシステムに含まれるストレージ装置200の台数も、1台に限定されるものではない。
次に、ホストのハードウェアについて、説明する。
図3は、ホストのハードウェア例を示す図である。ホスト100は、プロセッサ101、RAM102、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106および通信インタフェース107を有する。各ユニットがホスト100のバス108に接続されている。
プロセッサ101は、ホスト100全体を制御する。プロセッサ101は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などである。また、プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、ホスト100の主記憶装置である。RAM102は、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、ホスト100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。ホスト100は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
グラフィック処理装置104は、プロセッサ101からの命令に従って、ホスト100に接続された表示装置104aに画像を出力する。表示装置104aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなど各種のディスプレイを用いることができる。
入力インタフェース105は、ホスト100に接続された入力装置105aから入力信号を取得し、プロセッサ101に出力する。入力装置105aとしては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。ホスト100には、複数の種類の入力装置が接続されてもよい。
読み取り装置106は、可搬型記録媒体106aに格納されたプログラムやデータを読み取る装置である。読み取り装置106は、例えば、プロセッサ101からの命令に従って、可搬型記録媒体106aから読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク300を介してストレージ装置200と通信するためのインタフェースである。
次に、CM210のハードウェアについて、説明する。
図4は、CMのハードウェア例を示す図である。CM210は、プロセッサ211、RAM212、SSD213、CA(Channel Adapter)214およびDI(Device Interface)215を有する。
プロセッサ211は、CM210の情報処理を制御する。プロセッサ211は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。
RAM212は、CM210の主記憶装置である。RAM212は、プロセッサ211に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM212は、プロセッサ211による処理に用いる各種データを記憶する。
SSD213は、CM210の補助記憶装置である。SSD213は、不揮発性の半導体メモリである。SSD213には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、CM210は、補助記憶装置として、SSD213の代わりにHDDを備えていてもよい。
CA214は、ホスト100と通信するためのインタフェースである。DI215は、ドライブ部250と通信するためのインタフェースである。
ところで、CM210は、ドライブ部250に搭載されたHDDへのアクセスに関する情報を収集し、収集した情報に基づきHDDにおいて定点浮上障害が発生する可能性が高くなる状態を、障害発生の前に検出する。CM210は、収集した情報に基づき定点浮上障害を回避する処理を実行する。また、CM210は、ホスト100から受信したコマンドをコマンドキューで管理し、コマンドキューの状態に応じて定点浮上障害を回避する処理の実行タイミングを制御する。
次に、CM210が有する機能について説明する。
図5は、CMの機能例を示す図である。
CM210は、アクセス制御部220、記憶部221、情報収集部222および障害回避処理部223を有する。
アクセス制御部220、情報収集部222および障害回避処理部223の処理は、プロセッサ211が所定のプログラムを実行することによって実現される。また、記憶部221は、例えば、RAM212またはSSD213に確保した記憶領域として実装される。記憶部221は、HDD使用状況管理テーブル221a、RAID使用状況管理テーブル221b、LBA情報管理テーブル221c、ログファイル221dおよびコマンドキュー221eを記憶する。
アクセス制御部220は、ドライブ部250に搭載されたHDDの記憶領域を用いて論理記憶領域を作成する。また、アクセス制御部220は、ドライブ部250に搭載された複数のHDDを用いてRAID(Redundant Array of Inexpensive Disks)グループを作成する。アクセス制御部220は、RAIDグループに属する複数のHDDを用いたデータの読み書きを、所定のRAIDレベルを用いて制御する。ホスト100からのアクセス対象となる論理記憶領域は、いずれかのRAIDグループに割り当てられる。
アクセス制御部220は、ホスト100から論理記憶領域に対するアクセスを命令するコマンドを受信すると、論理記憶領域に割り当てられたRAIDグループを判別する。アクセス制御部220は、判別したRAIDグループに属するドライブ部250内の記憶装置にアクセスすることで、命令に応じたアクセス制御を実行する。また、アクセス制御部220は、受信したコマンドに応じたアクセス処理の履歴情報をログファイル221dに登録する。
情報収集部222は、HDD内の磁気ディスクの記録面に対するアクセス状況に関する情報やRAIDグループごとのアクセス状況をログファイル221dから定期的に収集し、記憶部221に記憶する。前者のアクセス状況はHDD使用状況管理テーブル221aに記録され、後者のアクセス状況はRAID使用状況管理テーブル221bに記録される。
障害回避処理部223は、HDD使用状況管理テーブル221aおよびRAID使用状況管理テーブル221bを参照して、定点浮上障害が発生する可能性の高いHDDを判別する。障害回避処理部223は、判別されたHDDに、定点浮上障害の発生を回避するための動作を実行させる。
HDD使用状況管理テーブル221aには、RAIDグループに属する各HDDに対するアクセス状況を示す情報が登録される。後述するように、HDD使用状況管理テーブル221aには、HDD内の各磁気ディスクのシリンダごとに、アクセス状況を示す情報が登録される。HDD使用状況管理テーブル221aには、情報収集部222がHDDについて一定時間ごとにログファイル221dから抽出および集計した情報が登録される。
RAID使用状況管理テーブル221bには、RAIDグループに対するアクセス状況を示す情報が登録される。RAID使用状況管理テーブル221bには、情報収集部222がRAIDについて一定時間ごとにログファイル221dから抽出および集計した情報が登録される。
LBA情報管理テーブル221cには、コマンドキュー221eに登録された各コマンドについて、ホスト100から指定されたアクセス先の論理アドレス(LBA:Logical Block Address)が登録される。さらに、LBA情報管理テーブル221cには、論理アドレスに基づくアクセス先HDDの識別情報、HDDにおけるアクセス先の物理アドレス、HDDの磁気ディスクにおけるアクセス先を示す情報(ヘッド番号、シリンダ番号、セクタ番号)が登録される。LBA情報管理テーブル221cには、情報収集部222がホスト100から受信したコマンドについてログファイル221dから抽出および集計した情報が登録される。また、LBA情報管理テーブル221cには、定点浮上障害を回避するためのコマンド(後述するダミーライトコマンド)についての情報も登録される。
ログファイル221dには、アクセス制御部220がホスト100から受信したコマンドに基づくアクセス処理の履歴情報が登録される。ログファイル221dには、コマンドの種別(リード/ライト)、コマンド受付日時、コマンドで指定されたアクセス先アドレス等が履歴情報として登録される。
コマンドキュー221eは、ストレージ装置200が実行するコマンドを一時的に保持するためのFIFO(First In First Out)方式の待ち行列(キュー)である。コマンドキュー221eは、RAIDグループごとに作成され、記憶部221に記憶される。アクセス制御部220は、ホスト100からコマンドを受信すると、コマンドに基づくアクセス先の論理記憶領域が割り当てられているRAIDグループを特定する。アクセス制御部220は、特定したRAIDグループに対応するコマンドキュー221eに、受信したコマンドキューイングする。そして、アクセス制御部220は、コマンドキュー221eからコマンドを順番に取り出し、取り出したコマンドに基づくHDDへのアクセス処理を実行する。また、アクセス制御部220は、定点浮上障害を回避するためのコマンドをコマンドキュー221eにキューイングすることもできる。このとき、アクセス制御部220は、障害回避のためのコマンドをコマンドキュー221eの末尾に登録するだけでなく、コマンドキュー221e内の任意の位置に挿入することもできる。
次に、HDD使用状況管理テーブル221aについて図6を用いて説明する。図6は、HDD使用状況管理テーブルの例を示す図である。
HDD使用状況管理テーブル221aは、記憶部221に格納される。HDD使用状況管理テーブル221aは、ディスクスロット番号、採取日時、アクセス数の項目を含む。また、HDD使用状況管理テーブル221aは、さらに、ヘッド番号とシリンダ番号とで識別される、磁気ディスクの記録面のシリンダごとの項目を含む。
ディスクスロット番号の項目には、RAIDグループに属するHDDを搭載するスロットを識別する番号が登録される。ここでは、1つのスロットに1台のHDDが対応するものとし、ドライブ部250に搭載されたHDDそれぞれが、ディスクスロット番号によって識別されるものとする。
採取日時の項目には、ログファイル221dから情報を抽出した日時が登録される。ログファイル221dには、コマンド受信ごとに履歴情報が記録されるが、HDD使用状況管理テーブル221aには、一定時間ごとにログファイル221dから情報を抽出および集計した情報が記録される。これにより、HDD使用状況管理テーブル221aには、一定の情報採取期間ごとの集計情報が記録される。なお、情報採取期間は、例えば、1週間である。
例えば、ディスクスロット番号「0000」で識別されるHDDについて、最新の採取日時が「2017/8/1 0:00」であり、前回の採取日時が「2017/7/26 0:00」である。このため、採取日時「2017年8月1日0時」に採取したデータは、「2017年7月26日0時」以降であり「2017年8月1日0時」までの間にログファイル221dに蓄積されたデータとなる。
アクセス数の項目には、ライト数、リード数、シーク数の項目が含まれる。アクセス数の各項目の単位は、例えば、秒であるものとする。
ライト数の項目には、情報採取期間ごとに、ディスクスロット番号、ヘッド番号およびシリンダ番号で特定されるシリンダごとに、各シリンダを書き込み先としたライト命令のCM210からの発行数が登録される。
リード数の項目には、情報採取期間ごとに、ディスクスロット番号、ヘッド番号およびシリンダ番号で特定されるシリンダごとに、各シリンダを読み出し元としたリード命令のCM210からの発行数が登録される。
シーク数の項目には、情報採取期間ごとに、ディスクスロット番号、ヘッド番号およびシリンダ番号で特定されるシリンダごとに、各シリンダをシーク先としたシーク命令のCM210からの発行数が登録される。
例えば、HDD使用状況管理テーブル221aには、ディスクスロット番号「0000」、採取日時が「2017/8/1 0:00」、ライト数に対応するヘッド番号「0」、シリンダ番号「0」について「1,000」という情報が登録される。これは、ディスクスロット番号「0000」で特定されるHDDにおける、ヘッド番号「0」、シリンダ番号「0」で特定されるシリンダに対して、採取日時「2017年8月1日0時」を終端とする情報採取期間にライト命令が1000回発行されたことを示す。
このように、HDD使用状況管理テーブル221aには、一定の情報採取期間におけるHDDのシリンダごとのアクセス量が、ライト、リード、シークのそれぞれについて命令発行数として登録される。なお、シリンダごとのアクセス量は、例えば、HDDにおいてライト命令、リード命令、シーク命令に基づくアクセス処理にかかった時間の累計値として登録されてもよい。
次に、RAID使用状況管理テーブル221bについて図7を用いて説明する。図7は、RAID使用状況管理テーブルの例を示す図である。
RAID使用状況管理テーブル221bは、記憶部221に格納される。RAID使用状況管理テーブル221bは、RAID番号、RAIDレベル、ディスクスロット番号(メンバHDD)、採取日時、リード受付総数、リード受付数、ライト受付総数、ライト受付数、最新コマンド受付日時の項目を含む。
RAID番号の項目には、作成されたRAIDグループを識別する番号(RAID番号)が登録される。
RAIDレベルの項目には、RAIDグループに対して設定されたRAIDレベル(RAID1~RAID6)が登録される。
ディスクスロット番号(メンバHDD)の項目には、RAID番号で特定されるRAIDグループに属するHDD(メンバHDD)を特定するディスクスロット番号が登録される。
採取日時の項目には、ログファイル221dから情報を抽出した日時が登録される。
リード受付総数の項目には、ホスト100から受信したリードコマンドのうち、対応するRAIDグループがアクセス先となるリードコマンドの総数(累計値)が登録される。
リード受付数の項目には、前回の採取日時から今回の採取日時までの間(情報採取期間)にホスト100から受信した、対応するRAIDグループがアクセス先となるリードコマンドの総数が登録される。
ライト受付総数の項目には、ホスト100から受信したライトコマンドのうち、対応するRAIDグループがアクセス先となるライトコマンドの総数(累計)が登録される。
ライト受付数の項目には、前回の採取日時から今回の採取日時までの間(情報採取期間)にホスト100から受信した、対応するRAIDグループがアクセス先となるライトコマンドの総数が登録される。
最新コマンド受付日時の項目には、対応するRAIDグループがアクセス先となるコマンドをホスト100から受信した最新の日時が登録される。
次に、LBA情報管理テーブル221cについて図8を用いて説明する。図8は、LBA情報管理テーブルの例を示す図である。
LBA情報管理テーブル221cは、記憶部221に格納される。LBA情報管理テーブル221cは、受付コマンド番号、発行先RAID番号、発行先論理アドレス、発行先ディスクスロット番号、発行先物理アドレス、発行先ヘッド番号、発行先シリンダ番号、発行先セクタ番号の項目を含む。
受付コマンド番号の項目には、コマンドキュー221eに登録されているコマンド(すなわち、実行待ちのコマンド)を識別する番号(受付コマンド番号)が登録される。発行先RAID番号の項目には、コマンドによるアクセス先の論理記憶領域が割り当てられているRAIDグループを識別する番号(発行先RAID番号)が登録される。発行先論理アドレスの項目には、コマンドにおいて指定されたアクセス先の論理アドレスが登録される。
発行先ディスクスロット番号の項目には、コマンドに基づいてアクセスが行われるHDDを識別する番号(発行先ディスクスロット番号)が登録される。RAIDグループには複数のHDDが属する場合があるので、発行先ディスクスロット番号の項目には、1つの発行先論理アドレスに対して複数のディスクスロット番号が登録され得る。発行先物理アドレスの項目には、HDDにおけるアクセス先の物理アドレスが登録される。発行先ヘッド番号の項目には、HDDにおけるアクセス先のヘッド番号が登録される。発行先シリンダ番号の項目には、HDDにおけるアクセス先のシリンダ番号が登録される。発行先セクタ番号の項目には、HDDにおけるアクセス先のセクタ番号が登録される。
例えば、LBA情報管理テーブル221cには、受付コマンド番号が「0000」、発行先RAID番号が「0000」、発行先論理アドレスが「0x0001000」、発行先ディスクスロット番号が「0000」という情報が登録される。また、発行先物理アドレスが「0x003ff」、発行先ヘッド番号が「3」、発行先シリンダ番号が「200」、発行先セクタ番号が「400」という情報が登録される。
これは、受付コマンド番号「0000」で特定されるコマンドの発行先論理アドレス「0x0001000」に基づいて、RAID番号「0000」で特定されるRAIDグループがアクセス先とされることを示す。また、このコマンドに基づいて、発行先ディスクスロット番号「0000」で特定されるHDDの、発行先物理アドレス「0x003ff」で特定されるアドレスに対してアクセスが行われることを示す。さらに、このコマンドに基づいて、発行先ディスクスロット番号「0000」で特定されるHDDの、発行先ヘッド番号「3」、発行先シリンダ番号「200」、発行先セクタ番号「400」で特定される記録面上の領域に、アクセスが行われることを示す。
次に、ストレージ装置200の処理についてフローチャートを用いて説明する。
図9は、初期設定処理の例を示すフローチャートである。図9の処理は、CM210がドライブ部250にHDDを搭載されたことを認識することで開始される。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS11]ストレージ装置200のアクセス制御部220は、ドライブ部250に搭載された新規のHDDを認識する。
[ステップS12]アクセス制御部220は、HDDが搭載された位置を示す(HDDを識別する番号を示す)ディスクスロット番号、搭載されたHDDのヘッド番号、シリンダ番号およびセクタ番号を、HDD使用状況管理テーブル221aに登録する。
[ステップS13]アクセス制御部220は、認識されたHDDが属するRAIDグループを識別するRAID番号、RAIDレベル、および各HDDを識別するディスクスロット番号を、RAID使用状況管理テーブル221bに登録する。
図10は、I/O受け付け処理の例を示すフローチャートである。図10の処理は、CM210がホスト100から論理記憶領域にアクセスするためのコマンドを受信することで開始される。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS21]ストレージ装置200のアクセス制御部220は、ホスト100からコマンドを受信する。
[ステップS22]アクセス制御部220は、受信したコマンドにおいて指定された論理記憶領域が割り当てられたRAIDグループを特定する。アクセス制御部220は、受信したコマンドを、特定したRAIDグループに対応するコマンドキュー221eの末尾に登録する。
[ステップS23]アクセス制御部220は、受信したコマンドに対応するレコードをLBA情報管理テーブル221cに追加する。アクセス制御部220は、追加したレコードに対して、受付コマンド番号、発行先RAID番号、発行先論理アドレス、発行先ディスクスロット番号、発行先物理アドレス、発行先ヘッド番号、発行先シリンダ番号、発行先セクタ番号の各情報を登録する。これらの情報は、受信したコマンドにおいて指定された論理記憶領域の識別番号およびアクセス先の論理アドレスに基づいて特定される。
図11は、ディスクアクセス処理の例を示すフローチャートである。図11に示す処理は、RAIDグループごとに実行される。このため、図11において処理対象となるコマンドキュー221eは、1つのRAIDグループに対応するものとなる。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS31]アクセス制御部220は、コマンドキュー221eの先頭からコマンドを取り出す。
[ステップS32]アクセス制御部220は、取り出したコマンドに基づき、HDDに対してアクセスする。具体的には、アクセス制御部220は、コマンドにおいて指定された論理記憶領域の番号に基づいて、その論理記憶領域が割り当てられたRAIDグループ(アクセス先のRAIDグループ)を特定する。アクセス制御部220は、コマンドにおいて指定された論理アドレスと、コマンドにおいて指定されたアクセスの種別(リードかライトか)と、特定されたRAIDグループに設定されたRAIDレベルとに基づいて、アクセス先のHDDおよび物理アドレスを特定する。アクセス制御部220は、特定されたHDDおよび物理アドレスに対するアクセス処理を実行し、アクセス処理が完了すると、ホスト100に対して応答する。
なお、上記の説明はコマンドがリードコマンドまたはライトコマンドの場合であるが、後述するように、コマンドキュー221eには、定点浮上障害を回避するための「ダミーライトコマンド」が登録される場合もある。ダミーライトコマンドは、HDD上の空き領域にダミーデータをライトすることを要求するコマンドである。アクセス制御部220は、コマンドキュー221eから取り出したコマンドがダミーライトコマンドであった場合、LBA情報管理テーブル221cからダミーライトコマンドに対応する情報を取得する。具体的には、発行先ディスクスロット番号、発行先ヘッド番号、発行先シリンダ番号、発行先セクタ番号が取得される。アクセス制御部220は、取得した情報が示すHDDの記録面上の領域に対するダミーデータのライト処理を実行する。
[ステップS33]アクセス制御部220は、実行されたアクセス処理についての履歴情報をログファイル221dに登録する。
なお、CM100では、コマンドを並列に処理可能な上限数が設定されていてもよい。この場合、アクセス制御部220は、上限数のコマンドのそれぞれについて、図11の処理を並列に実行する。また、コマンドの並列処理数が上限数に達している場合、アクセス制御部220は、処理中のコマンドの1つについての処理が完了すると、新たなコマンドについて図11の処理を開始する。
次に、ストレージ装置200における定点浮上障害回避処理について説明する。
図12は、定点浮上障害回避処理の例を示すフローチャート(その1)である。図13は、定点浮上障害回避処理の例を示すフローチャート(その2)である。図14は、定点浮上障害回避処理の例を示すフローチャート(その3)である。
図12乃至図14の処理は、前述の情報採取期間に対応する一定時間ごとに実行される。また、図12乃至図14の処理は、RAIDグループごとに実行されるものとする。ここでは、処理対象のRAIDグループを「対象RAIDグループ」と記載する。以下、図12乃至図14に示す処理をステップ番号に沿って説明する。
[ステップS41]情報収集部222は、ログファイル221dから直近の情報採取期間に登録されたデータを抽出し、抽出したデータに基づき、対象RAIDグループに対するアクセス数をRAID使用状況管理テーブル221bに登録する。具体的には、情報収集部222は、ログファイル221dから抽出したデータを用いてRAIDグループのRAID番号に対応するリード受付数、ライト受付数を算出する。情報収集部222は、RAID使用状況管理テーブル221bにおけるリード受付数、ライト受付数の項目に、算出されたリード受付数、ライト受付数をそれぞれ登録する。
また、情報収集部222は、データを抽出した日時を採取日時としてRAID使用状況管理テーブル221bに登録する。また、情報収集部222は、対象RAIDグループがアクセス先となる最新のコマンドをホスト100から受信した日時を、最新コマンド受信日時としてRAID使用状況管理テーブル221bに登録する。この日時は、対象RAIDグループに属するHDDに対して最後にアクセスが行われた時刻と見なされて、後の処理で最終コマンド発行時刻TMとして用いられる。
[ステップS42]情報収集部222は、ステップS41でログファイル221dから抽出したデータに基づき、対象RAIDグループに属する各HDDのシリンダごとのライト数、リード数、シーク数をHDD使用状況管理テーブル221aに登録する。
また、障害回避処理部223は、情報採取期間におけるHDDごとのアクセス数を示すHDDアクセス数IOC_hdと、情報採取期間におけるシリンダごとのアクセス数を示すシリンダアクセス数IOC_cyを算出する。シリンダアクセス数IOC_cyは、情報採取期間におけるシリンダごとのライト数、リード数、シーク数を合計することで算出される。HDDアクセス数IOC_hdは、情報採取期間における同一HDDの全シリンダについてのライト数、リード数、シーク数を合計することで算出される。
[ステップS43]障害回避処理部223は、RAID使用状況管理テーブル221bに基づき、RAIDグループをアクセス先としたコマンドについての前回採取時からの受付数を比較する。具体的には、障害回避処理部223は、今回の採取日時におけるリード受付数およびライト受付数を合計し、その合計値を今回のコマンド受付数とする。また、障害回避処理部223は、前回の採取日時におけるリード受付数およびライト受付数を合計し、その合計値を前回のコマンド受付数とする。そして、障害回避処理部223は、今回のコマンド受付数から前回のコマンド受付数を減算した差分を算出する。
[ステップS44]障害回避処理部223は、ステップS43で算出した差分が上限閾値より大きいかを判定する。なお、上限閾値は、予め記憶部221にシステム管理者等によって記憶されているものとする。
差分が上限閾値より大きい場合、すなわち、直近の情報採取期間におけるコマンド受付数が、前回より上限閾値を超える数だけ増加した場合には、磁気ディスクの記録面上の特定領域に対するアクセス集中によって定点浮上障害が発生する可能性があると判断される。この場合、障害回避処理部223は、処理を図13のステップS51にすすめて、障害発生リスクの確認処理および障害発生の回避処理を実行する。一方、障害回避処理部223は、差分が上限閾値以下の場合、処理を図14のステップS71にすすめる。
以下、図13を用いて説明を続ける。
[ステップS51]障害回避処理部223は、対象RAIDグループに属するHDD(以下、対象HDDと記載。)のそれぞれについて、HDDアクセス数IOC_hdに対するシリンダアクセス数IOC_cyの割合を求める。このとき、対象HDDのすべてのシリンダについてのシリンダアクセス数IOC_cyが計算に用いられ、各HDDについてシリンダごとに割合が求められる。なお、HDDアクセス数IOC_hdおよびシリンダアクセス数IOC_cyとしては、図12のステップS42で算出された値が用いられる。
[ステップS52]障害回避処理部223は、ステップS51において、割合がアクセス集中閾値以上になったシリンダがあるかを判定する。なお、アクセス集中閾値は、予め記憶部221にシステム管理者等によって記憶されているものとする。障害回避処理部223は、該当するシリンダが1つでもある場合にステップS53にすすみ、該当するシリンダが存在しない場合には処理を終了する。
[ステップS53]障害回避処理部223は、1台のHDDの同一磁気ディスクの記録面に、算出された割合がアクセス集中閾値以上になったシリンダが複数あるかを判定する。障害回避処理部223は、該当するシリンダが記録面当たり複数ある場合には処理をステップS54にすすめ、該当するシリンダが記録面当たり1つのみの場合には処理をステップS55にすすめる。
[ステップS54]障害回避処理部223は、該当するシリンダ同士が近傍にあるか否かを判定する。例えば、障害回避処理部223は、同一HDDにおける近接する該当シリンダのペアのうち、シリンダ番号の差が所定数以下のペアが1組以上ある場合、シリンダが近傍にあると判定する。障害回避処理部223は、該当するシリンダ同士が近傍にある場合には処理をステップS55にすすめ、近傍にない場合は処理を終了する。
以上の図13では、算出された割合がアクセス集中閾値以上のシリンダでは、定点浮上状態が発生したと推定され、障害が発生する可能性がある。ただし、同一磁気ディスク上の比較的離れた複数のシリンダで定点浮上状態が発生した場合(ステップS54でNoと判定される場合)には、磁気ディスクの記録面に対するアクセス数が多いものの、特定の一カ所にアクセスが集中しているとは言えない。そのため、記録面において潤滑剤の轍が発生する可能性は少ないと考えられるので、処理が終了され、障害回避のための措置は行われない。
[ステップS55]障害回避処理部223は、障害回避のためのコマンドとして、アクセスが集中していないシリンダに対してダミーデータの書き込みを指示するためのダミーライトコマンドを生成する。
ダミーデータの書き込み先のシリンダとしては、例えば、アクセスが集中しているシリンダが存在する磁気ディスク上のシリンダのうち、ステップS51で算出された割合の値が所定値以下であるシリンダが選択される。あるいは、ダミーデータの書き込み先のシリンダは、アクセスが集中しているシリンダについての割合の値を基準として選択されてもよい。例えば、割合の値がアクセス集中閾値以上であったシリンダについての割合の値をV1とする。また、選択のための差分値V2があらかじめ設定される。この場合、同じ磁気ディスクの記録面上のシリンダのうち、割合の値が(V1-V2)以下であるシリンダが、ダミーデータの書き込み先のシリンダとして選択される。
[ステップS56]障害回避処理部223は、対象RAIDグループに対応するコマンドキュー221eに実行待ちコマンドが存在するか否かを判定する。障害回避処理部223は、コマンドキュー221eに実行待ちコマンドが有る場合は処理をステップS57にすすめ、実行待ちコマンドが無い場合はステップS60にすすめる。
[ステップS57]障害回避処理部223は、対象RAIDグループに対応するコマンドキュー221eとLBA情報管理テーブル221cとを参照し、実行待ちコマンドの中に、アクセス先のシリンダがダミーライトコマンドと同一のコマンドがあるか否かを判定する。障害回避処理部223は、該当する実行待ちコマンドがある場合には処理をステップS58にすすめ、ない場合には処理をステップS59にすすめる。
[ステップS58]障害回避処理部223は、コマンドキュー221eから、アクセス先のシリンダがダミーライトコマンドと同一である実行待ちコマンドを特定する。障害回避処理部223は、コマンドキュー221eにおける特定された実行待ちコマンドの直前に、ダミーライトコマンドを挿入する。
これにより、ダミーライトコマンドの次に、特定された実行待ちコマンドが実行されるようになる。すなわち、アクセスが集中していると判断されたシリンダにアクセスするための実行待ちコマンドが実行される前に、ダミーライトコマンドによって磁気ヘッドの移動が促される。このため、磁気ディスクの記録面における潤滑剤の表面が平坦化される。したがって、特定された実行待ちコマンドに基づくHDDへのアクセスの際に、障害が発生する可能性を低下させることができる。あるいは、特定された実行待ちコマンドに基づくHDDへのアクセスの際に、潤滑剤の轍の高さが高まって障害発生リスクを高めてしまう可能性を低下させることができる。
また、現在のコマンドキュー221eにおいて、特定された実行待ちコマンドより前に他の実行待ちコマンドが存在する場合には、それらの実行待ちコマンドが実行された後にダミーライトコマンドが実行されるようになる。このため、例えば、現時点で即座にダミーライトコマンドを実行する場合と比較して、それらの他の実行待ちコマンドの実行が遅延しなくなり、それらの他の実行待ちコマンドについてホスト100に対する応答性能が低下することを防止できる。
また、障害回避処理部223は、以上のようにしてダミーライトコマンドを挿入するとともに、LBA情報管理テーブル221cに対してダミーライトコマンドに対応するレコードを登録し、各項目に情報を登録する。このとき、障害回避処理部223は、アクセスが集中していると判定されたシリンダが属するHDDだけでなく、対象RAIDグループに属するすべてのHDDの同じシリンダに対してダミーデータが書き込まれるように、各HDDの情報をレコードに登録する。具体的には、障害回避処理部223は、このレコードに、発行先ディスクスロット番号として対象RAIDグループに属するすべてのHDDを示すディスクスロット番号を登録する。そして、障害回避処理部223は、各HDDについての発行先物理アドレス、発行先ヘッド番号、発行先シリンダ番号、発行先セクタ番号として、同一の値を登録する。なお、発行先物理アドレスは、書き込み先のシリンダ位置から換算される。
ここで、前述のように、図11のステップS31でコマンドキュー221eからダミーライトコマンドが取り出された場合には、アクセス制御部220は、LBA情報管理テーブル221cからダミーライトコマンドに対応する情報を取得する。このとき、対象RAIDグループに属するすべてのHDDを示す発行先ディスクスロット番号と、各HDDについての発行先ヘッド番号、発行先シリンダ番号、発行先セクタ番号が取得される。アクセス制御部220は、これらの情報に基づいて、各HDDの同一シリンダに対してダミーデータを書き込むように制御する。
RAIDグループでは、データの書き込みの際、データを冗長化するためにRAIDグループに属するHDDのすべてにデータが書き込まれる。そのため、RAIDグループに属するHDDのうちの一部だけにデータを書き込んでしまうと、データの整合性がとれなくなる。上記のように、障害回避のためのダミーライトコマンドを実行する際に、ダミーデータをRAIDグループに属するすべてのHDDに書き込むように制御されることで、データの整合性を保つことができる。
[ステップS59]障害回避処理部223は、実行待ちコマンドの実行が完了してからダミーライトコマンドが実行されるように制御する。ここでは例として、障害回避処理部223は、コマンドキュー221eの末尾にダミーライトコマンドを登録する。これにより、現在コマンドキュー221eにたまっている実行待ちコマンドに基づくアクセス処理の実行が、ダミーライトコマンドの実行によって遅延することが防止される。したがって、実行待ちコマンドについて、その送信元のホスト100に対する応答性能が低下することを防止できる。
また、障害回避処理部223は、LBA情報管理テーブル221cに対して、ダミーライトコマンドに対応するレコードを登録し、各項目に情報を登録する。この登録処理は、ステップS64と同様の手順で行われる。すなわち、登録されたレコードには、発行先ディスクスロット番号として対象RAIDグループに属するすべてのHDDを示すディスクスロット番号が登録される。また、このレコードには、各HDDについての発行先物理アドレス、発行先ヘッド番号、発行先シリンダ番号、発行先セクタ番号として、同一の値が登録される。
[ステップS60]このケースでは、コマンドキュー221eに実行待ちコマンドがないので、障害回避処理部223は、ダミーライトコマンドを即座に実行する。このとき、ステップS58,S59で登録されるダミーライトコマンドと同様に、対象RAIDグループに属するすべてのHDDの同一シリンダにダミーデータを書き込むように制御される。
以下、図14を用いて説明を続ける。
[ステップS71]障害回避処理部223は、図12のステップS43で算出した差分が下限閾値より小さいかを判定する。なお、下限閾値は、ステップS44で用いられる上限閾値より小さい値とされる。また、下限閾値は、予め記憶部221にシステム管理者等によって記憶されているものとする。
差分が下限閾値より小さい場合、対象RAIDグループに対するアクセス数の変化が小さいことから、アクセスが少ないことによる定点浮上障害が発生する可能性があると判断される。この場合、障害回避処理部223は、処理をステップS72にすすめて、障害発生リスクの確認処理を実行する。一方、障害回避処理部223は、差分が下限閾値以上の場合、処理を終了する。
[ステップS72]障害回避処理部223は、図12のステップS41でRAID使用状況管理テーブル221bに登録された最新コマンド受信日時を、最終コマンド発行時刻TMとして取得する。障害回避処理部223は、最終コマンド発行時刻TMから現在時刻までの経過時間を算出する。
[ステップS73]障害回避処理部223は、ステップS72で算出した経過時間がアクセス閑散閾値以上か否かを判定する。障害回避処理部223は、経過時間がアクセス閑散閾値以上である場合は処理をステップS74にすすめ、経過時間がアクセス閑散閾値未満である場合は処理を終了する。なお、アクセス閑散閾値は、予め記憶部221にシステム管理者等によって記憶されているものとする。
ここで、以下のステップS74乃至S76の処理は、対象RAIDグループに属するHDDのそれぞれについて実行されるものとする。
[ステップS74]障害回避処理部223は、処理対象のHDDについて、磁気ヘッドの現在位置が中間シリンダに対して外周寄りか否かを判定する。障害回避処理部223は、磁気ヘッドの位置が中間シリンダに対して外周寄りである場合は処理をステップS75にすすめ、外周寄りでない場合は処理をステップS76にすすめる。
[ステップS75]障害回避処理部223は、磁気ヘッドを中間シリンダの内周寄りに移動するためのダミーシークコマンドを生成し、対象RAIDグループに対応するコマンドキュー221eの先頭に挿入する。
[ステップS76]障害回避処理部223は、磁気ヘッドを中間シリンダの外周寄りに移動するためのダミーシークコマンドを生成し、対象RAIDグループに対応するコマンドキュー221eの先頭に挿入する。
ステップS75またはステップS76の実行後に、挿入されたダミーシークコマンドがアクセス制御部220によって取り出されて実行されると、磁気ヘッドが大きく移動される。これにより、磁気ディスクの記録面における潤滑剤の表面が平坦化される。したがって、アクセスが少ないことによる定点浮上障害が発生する可能性を低減できる。
以上の図12乃至図14の処理によれば、CM210は、ディスクアクセス過密による定点浮上障害が発生する可能性が高い場合、ダミーライトコマンドを生成および実行することで定点浮上障害を回避する。また、CM210は、ディスクアクセス閑散による定点浮上障害が発生する可能性が高い場合、ダミーシークコマンドを生成および実行することで定点浮上障害を回避する。こうして、CM210は、定点浮上障害が発生する可能性が高い状況に応じてダミーコマンド(ダミーライトコマンド、ダミーシークコマンド)を使い分けることで、より適切に障害を回避することができる。
また、上記処理によれば、図12のステップS43において、前回の情報採取期間でのRAIDグループに対するアクセス数と、直近の情報採取期間でのアクセス数との差分が求められる。そして、後者のアクセス数が前者より上限閾値より大きく増加していた場合に、図13に示す障害発生リスクの確認処理および障害発生の回避処理が実行される。
ここで、他の方法の例として、上記のような差分を用いる代わりに、直近の情報採取期間でのアクセス数が所定値を超えた場合に、上記確認処理および回避処理を実行する方法も考えられる。しかし、直近の情報採取期間でのアクセス数が所定値を超えている状態では、すでに定点浮上障害が発生している可能性がある。これに対して、上記差分を用いてアクセス数の増加量が多いと判定した場合に上記確認処理および回避処理を実行することで、定点浮上障害が発生する前にこれらの処理を実行でき、障害発生を未然に防止できる。
また、本実施の形態では、HDDに対するアクセス元のCM210によって、定点浮上障害の発生リスクの確認処理や障害発生の回避処理が実行される。このような処理機能はHDD自体が備えている場合もあるが、HDDの内部でどのような処理が行われるかはベンダや機種によって異なり、障害発生を確実に防止できるか不明な場合もある。本実施の形態によれば、HDDを用いた論理記憶領域をユーザに提供するCM210が上記処理を実行することで、障害発生回避の確実性を高めることができ、ユーザに対してトラブルの少ない高品質なサービスを提供できるようになる。
さらに、これらの処理をCM210が実行することにより、RAIDグループ単位で障害発生リスクを判定でき、さらにRAIDグループに属するすべてのHDDにおける障害発生回避の確実性を高めることができる。ユーザに提供される論理記憶領域は、RAIDグループに属するHDDによって構築される。このため、RAIDグループに属するすべてのHDDにおける障害発生回避の確実性を高められることで、ユーザに提供するサービスの品質を向上させることができる。
なお、上記の各実施の形態に示した装置(例えば、情報処理装置30、ホスト100、ストレージ制御装置10、ストレージ装置200)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
10 ストレージ制御装置
11 アクセス制御部
12 アクセス状況記録部
13 障害回避処理部
14 記憶部
14a 管理情報
14b コマンドキュー
15 回避コマンド
20 磁気ディスク装置
30 情報処理装置

Claims (8)

  1. 磁気ディスク装置に対するアクセスを要求するコマンドを受け付けてコマンドキューに登録し、前記コマンドキューからコマンドを順に取得し、取得したコマンドに基づいて前記磁気ディスク装置に対するアクセス処理を実行するアクセス制御部と、
    前記磁気ディスク装置に対するアクセス状況を管理情報に記録するアクセス状況記録部と、
    前記管理情報に基づいて、前記磁気ディスク装置が備える磁気ヘッドが同一位置に留まることで生じる障害が発生し得ると判定したとき、前記コマンドキューを参照し、前記磁気ディスク装置において前記障害の発生が予測される予測領域と、前記コマンドキューに存在する実行待ちコマンドによる前記磁気ディスク装置に対するアクセス先とに基づいて、前記障害の発生を回避するための回避処理の実行タイミングを制御する障害回避処理部と、
    を有するストレージ制御装置。
  2. 前記障害回避処理部は、
    前記障害が発生し得ると判定したとき、
    前記予測領域をアクセス先とする実行待ちコマンドが前記コマンドキューに存在しない場合、前記コマンドキューに存在するすべての実行待ちコマンドに基づくアクセス処理を実行した後に前記回避処理が実行されるように制御し、
    前記予測領域をアクセス先とする実行待ちコマンドが前記コマンドキューに存在する場合、当該実行待ちコマンドに基づくアクセス処理の実行前に前記回避処理が実行されるように制御する、
    請求項1記載のストレージ制御装置。
  3. 前記障害回避処理部は、前記障害が発生し得ると判定したとき、前記予測領域をアクセス先とする実行待ちコマンドが前記コマンドキューに存在する場合には、前記回避処理を実行するための回避コマンドを前記コマンドキューにおける当該実行待ちコマンドの直前に挿入し、
    前記アクセス制御部は、前記コマンドキューから前記回避コマンドを取得すると、前記回避コマンドに基づいて前記回避処理を実行する、
    請求項2記載のストレージ制御装置。
  4. 前記アクセス状況記録部は、前記磁気ディスク装置に対するアクセス状況を一定の記録期間ごとに前記管理情報に記録し、
    前記障害回避処理部は、直近の前記記録期間における前記磁気ディスク装置に対するアクセス量を示す第1の値と、当該記録期間の直前の前記記録期間における前記磁気ディスク装置に対するアクセス量を示す第2の値との差分に基づいて、前記障害が発生し得るかを判定する、
    請求項1乃至3のいずれか1項に記載のストレージ制御装置。
  5. 前記ストレージ制御装置には、前記磁気ディスク装置を含む複数の磁気ディスク装置を用いて生成され、前記複数の磁気ディスク装置がRAID(Redundant Array of Inexpensive Disks)によって制御されるRAIDグループが設定され、
    前記アクセス状況記録部は、前記磁気ディスク装置に対するアクセス状況と、前記RAIDグループに対するアクセス状況とを、一定の記録期間ごとに前記管理情報に記録し、
    前記障害回避処理部は、
    直近の前記記録期間における前記RAIDグループに対するアクセス量を示す第1の値と、当該記録期間の直前の前記記録期間における前記RAIDグループに対するアクセス量を示す第2の値との差分に基づいて、前記障害が発生し得るかの判定が必要かを判定し、
    前記障害が発生し得るかの判定が必要と判定した場合、前記磁気ディスク装置に対するアクセス状況に基づいて前記磁気ディスク装置において前記障害が発生し得るかを判定する、
    請求項1乃至3のいずれか1項に記載のストレージ制御装置。
  6. 前記障害回避処理部は、前記磁気ディスク装置において前記障害が発生し得ると判定した場合、前記複数の磁気ディスク装置のすべてに対して同一の前記回避処理が実行されるように制御する、
    請求項5記載のストレージ制御装置。
  7. 前記障害回避処理部は、
    前記磁気ディスク装置における特定の位置に対するアクセスが過密であることによって前記障害が発生し得ると判定したとき、前記回避処理として、前記磁気ディスク装置における前記特定の位置とは異なる位置にアクセスする処理が実行されるように制御し、
    前記磁気ディスク装置に対するアクセスが閑散であることによって前記障害が発生し得ると判定したとき、前記回避処理として、前記磁気ヘッドを現在位置から別の位置に移動させる処理が実行されるように制御する、
    請求項1乃至6のいずれか1項に記載のストレージ制御装置。
  8. コンピュータに、
    磁気ディスク装置に対するアクセスを要求するコマンドを受け付けてコマンドキューに登録し、前記コマンドキューからコマンドを順に取得し、取得したコマンドに基づいて前記磁気ディスク装置に対するアクセス処理を実行するアクセス制御処理を実行し、
    前記磁気ディスク装置に対するアクセス状況を管理情報に記録し、
    前記管理情報に基づいて、前記磁気ディスク装置が備える磁気ヘッドが同一位置に留まることで生じる障害が発生し得ると判定したとき、前記コマンドキューを参照し、前記磁気ディスク装置において前記障害の発生が予測される予測領域と、前記コマンドキューに存在する実行待ちコマンドによる前記磁気ディスク装置に対するアクセス先とに基づいて、前記障害の発生を回避するための回避処理の実行タイミングを制御する、
    処理を実行させるストレージ制御プログラム。
JP2018099418A 2018-05-24 2018-05-24 ストレージ制御装置およびストレージ制御プログラム Active JP6993579B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018099418A JP6993579B2 (ja) 2018-05-24 2018-05-24 ストレージ制御装置およびストレージ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018099418A JP6993579B2 (ja) 2018-05-24 2018-05-24 ストレージ制御装置およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2019204567A JP2019204567A (ja) 2019-11-28
JP6993579B2 true JP6993579B2 (ja) 2022-01-13

Family

ID=68727154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018099418A Active JP6993579B2 (ja) 2018-05-24 2018-05-24 ストレージ制御装置およびストレージ制御プログラム

Country Status (1)

Country Link
JP (1) JP6993579B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149681A (ja) 2003-11-20 2005-06-09 Hitachi Ltd 磁気ディスク記録装置および監視システム
JP2007018576A (ja) 2005-07-06 2007-01-25 Toshiba Corp 磁気ディスク装置
JP2007102925A (ja) 2005-10-04 2007-04-19 Internatl Business Mach Corp <Ibm> アクセス制御のための装置および方法
JP2016004592A (ja) 2014-06-17 2016-01-12 富士通株式会社 制御装置、診断制御プログラム、および診断制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5622258A (en) * 1979-07-31 1981-03-02 Fujitsu Ltd Prevention system of head clash for magnetic disc
JPH07287942A (ja) * 1994-04-15 1995-10-31 Fujitsu Ltd ディスク装置、及びディスク装置のデータチェック再試行方法
JPH11176068A (ja) * 1997-12-10 1999-07-02 Matsushita Electric Ind Co Ltd 磁気ディスク制御装置及び磁気ディスクシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149681A (ja) 2003-11-20 2005-06-09 Hitachi Ltd 磁気ディスク記録装置および監視システム
JP2007018576A (ja) 2005-07-06 2007-01-25 Toshiba Corp 磁気ディスク装置
JP2007102925A (ja) 2005-10-04 2007-04-19 Internatl Business Mach Corp <Ibm> アクセス制御のための装置および方法
JP2016004592A (ja) 2014-06-17 2016-01-12 富士通株式会社 制御装置、診断制御プログラム、および診断制御方法

Also Published As

Publication number Publication date
JP2019204567A (ja) 2019-11-28

Similar Documents

Publication Publication Date Title
JP4372134B2 (ja) データ比較機能を有するストレージシステム
US7392340B1 (en) Disk drive employing stream detection engine to enhance cache management policy
US7555599B2 (en) System and method of mirrored RAID array write management
US6711628B1 (en) Disk drive aborting a write command before a last target sector reached if an abnormal condition detected and selecting a second command according to a rotational positioning optimization algorithm
US20150058540A1 (en) Hybrid-device storage based on environmental state
US6907499B2 (en) Interrupting disc write operations to service read commands
US20180004454A1 (en) Implementing scattered atomic i/o writes
JP2007035217A (ja) ディスク記憶装置のデータ退避処理方法及びディスク記憶システム
JP6476969B2 (ja) ストレージ制御装置、制御プログラムおよび制御方法
US10346051B2 (en) Storage media performance management
JP6160240B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2016133847A (ja) ストレージ制御装置およびストレージ制御プログラム
US10310923B1 (en) Probabilistic aging command sorting
US20120278589A1 (en) Storage system comprising multiple microprocessors and method for sharing processing in this storage system
KR20230035055A (ko) 기록 세트의 트랙에 대한 캐시 리소스가 해제된 이후 기록 세트의 트랙에 대한 예상 기록을 위한 캐시 리소스의 획득
JP2020113031A (ja) 情報処理システム、管理装置および管理プログラム
JP6993579B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US10346070B2 (en) Storage control apparatus and storage control method
JP5594647B2 (ja) ストレージ装置及びその制御方法
JPWO2009060500A1 (ja) 媒体記憶装置のリード/ライト処理方法及び媒体記憶装置
WO2016059715A1 (ja) 計算機システム
WO2016029481A1 (zh) 一种隔离磁盘区域的方法和设备
US8364893B2 (en) RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus
US11221765B2 (en) Apparatus and method for executing background operations using rotational position sorting
CN110825314B (zh) 一种数据调度方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210218

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211122

R150 Certificate of patent or registration of utility model

Ref document number: 6993579

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150