JPWO2016194212A1 - 記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システム - Google Patents

記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システム Download PDF

Info

Publication number
JPWO2016194212A1
JPWO2016194212A1 JP2017521463A JP2017521463A JPWO2016194212A1 JP WO2016194212 A1 JPWO2016194212 A1 JP WO2016194212A1 JP 2017521463 A JP2017521463 A JP 2017521463A JP 2017521463 A JP2017521463 A JP 2017521463A JP WO2016194212 A1 JPWO2016194212 A1 JP WO2016194212A1
Authority
JP
Japan
Prior art keywords
storage device
storage
hdd
log information
storage processing
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.)
Pending
Application number
JP2017521463A
Other languages
English (en)
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
Publication of JPWO2016194212A1 publication Critical patent/JPWO2016194212A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

記憶処理装置(101)は、記憶装置(102−1)が故障した後に、記憶装置(102−1)のログ情報(111)を参照して記憶装置(102−1)の故障時刻を特定する。この後、記憶処理装置(101)は、記憶装置(102−1)の故障後に故障したと判断された記憶装置(102−2)のログ情報(112)のうち、特定された故障時刻より後のログ情報を特定する。この後、記憶処理装置(101)は、特定されたログ情報に基づき、記憶装置(102−2)の交換の要否を判断する。

Description

本発明は、記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムに関する。
複数台のHDD(Hard Disk Drive)を組み合わせることで仮想的な1台のHDDとして運用し、冗長性を向上させるRAID(Redundant Arrays of Inexpensive Disks)技術がある。RAID技術は、主に信頼性および可用性の向上を目的として用いられる。
RAIDを構成するHDDに故障が発生すると、RAIDコントローラのRAIDログまたはHDDのS.M.A.R.T.(Self−Monitoring,Analysis and Reporting Technology)情報をもとに保守技術員が解析を行い、故障したHDDを交換する。
先行技術としては、例えば、全HDD内部ログの採取を行い、各HDD内部ログ情報の比較を行って、HDDの故障を予測する技術がある。また、例えば、ディスクの状態をエラー統計情報ファイルに記録し、エラー統計情報ファイルを統計的に分析し、障害発生前に予測交換すべきか否かを判断する技術がある。また、例えば、HDDの使用環境または使用状況の履歴を記録し、記憶した履歴と所定の条件とを比較することで、HDDの異常の有無を判断する技術がある。また、例えば、データアクセスに要する時間と、デバイス装置の状態とに基づいて、HDDの故障要因が外的要因であるか内的要因であるかを判別する技術がある。
特開2008−257411号公報 特開2000−305720号公報 国際公開第2009/040995号 特開2007−241384号公報
しかしながら、従来技術では、正常な記憶装置を故障と誤判断し、正常な記憶装置を交換されてしまう場合がある。例えば、故障した記憶装置の振動の影響で、他の記憶装置の磁気ヘッドの位置決めが失敗することがある。故障した記憶装置を取り除けば、他の記憶装置は正常に動作するにもかかわらず、磁気ヘッドの位置決めが失敗したことで、他の記憶装置を故障と誤判断して、他の記憶装置が故障していないのに交換されてしまう。
一つの側面では、本発明は、正常な記憶装置が故障と誤判断されることを防ぐ記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムを提供することを目的とする。
本発明の一側面によれば、第1記憶装置が故障した後に、第1記憶装置の第1ログ情報を参照して第1記憶装置の故障時刻を特定し、第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された故障時刻より後のログ情報を特定し、特定されたログ情報に基づき、第2記憶装置の交換の要否を判断する記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムが提案される。
本発明の一態様によれば、正常な記憶装置が故障と誤判断されることを防ぐという効果を奏する。
図1は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。 図2は、情報処理システム200のシステム構成例を示す説明図である。 図3は、記憶処理装置101のハードウェア構成例を示すブロック図である。 図4は、S.M.A.R.T.テーブル220の記憶内容の一例を示す説明図である。 図5は、RAIDログ230の記憶内容の一例を示す説明図である。 図6は、状態テーブル240の記憶内容の一例を示す説明図である。 図7は、パターンテーブル250の記憶内容の一例を示す説明図である。 図8は、記憶処理装置101の機能的構成例を示すブロック図である。 図9は、記憶処理装置101の情報収集処理手順の一例を示すフローチャートである。 図10は、記憶処理装置101のHDD状態判定処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。図1の記憶処理装置101は、記憶装置102の交換の要否を判断する装置である。例えば、記憶処理装置101は、複数の記憶装置102を組み合わせたRAID構成を制御するRAIDコントローラに内蔵されることも可能である。また、記憶装置102は、データを記憶する装置である。例えば、記憶装置102は、HDDである。
従来、信頼性および可用性の向上のため、複数台の記憶装置を組み合わせることで仮想的な1台の記憶装置として運用し、冗長性を向上させるRAID構成が用いられてきた。RAID構成では、複数台の記憶装置のうちの1台が故障しても、RAID構成に記憶されたデータは失われることはない。
しかしながら、複数台の記憶装置のうちの1台が故障して、さらに残りの記憶装置のうちの1台が故障した場合、RAID構成に記憶されたデータは失われる場合がある。この場合は、RAID構成の再構築、バックアップからのリカバリ作業を行わなければならず、復旧までに多大な時間を要する。また、最終バックアップ以降にRAID構成に記録されたデータは、失われる。
ここで、RAID構成の記憶装置のうちの1台が故障して、さらに残りの記憶装置のうちの1台を故障と誤って判断することで、RAID構成に記憶されたデータが失われる場合がある。これ以降、RAID構成の記憶装置の例として、HDDを例に説明する。例えば、3台のHDD(HDD0、HDD1、HDD2)が並べて搭載され、RAID構成が作成された状態において、HDD1がRAIDコントローラからのコマンドに対し、エラーを返したとする。この場合、RAIDコントローラは、RAIDコントローラからのコマンドに対し、エラーを返してきたHDD1を、RAID構成から切り離す。しかし、RAIDコントローラは、HDD1の機械的な動作は停止しない。具体的には、RAIDコントローラは、HDD1に対し、Motor offまたはunit stop等のコマンドを発行しない。
この時、HDD1の円盤の中心軸、ヘッドの駆動サーボ、それらの制御系等の機械機構に異常があれば、HDD1は、振動を発し、隣接する正常なHDD0およびHDD2に振動を与えることとなる。
これにより、隣接するHDD0およびHDD2の内部の磁気ヘッドも振動してしまう。HDD0およびHDD2は、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、RAIDコントローラからの書き込み要求に対して、Mechanical positioning errorを通知する。RAIDコントローラは書き込みできなかったデータを代替セクタに記録させるため、Mechanical positioning errorを通知してきたHDD0およびHDD2に対し、交替セクタ処理を指示する。交替セクタ処理を指示したHDD0およびHDD2は、交替セクタ処理を行うが、振動の影響により交替セクタへの位置決めも失敗し、RAIDコントローラにReassign write operation failedを通知する。
これらの通知を受けたRAIDコントローラは、HDD0およびHDD2が、内部の磁気媒体にエラーの記録および損傷は無く、内部の磁気媒体が正常な状態にあるにもかかわらず、HDD0およびHDD2を故障と判断する。このため、振動の影響を受けた隣接するHDD0およびHDD2も交換されることになる。この場合、HDD0およびHDD2に記憶された救済できるはずのデータは救済できなくなり、RAID構成に記憶されたデータが失われる。
そこで、実施の形態では、記憶処理装置101は、故障した記憶装置102−1のログ情報から故障時刻を特定し、記憶装置102−1の故障後に故障と判断された記憶装置102−2の交換の要否を、特定した故障時刻より後のログ情報より判断する。これ以降、また、記憶装置102−1、記憶装置102−2のうちの任意の記憶装置を記憶装置102と表記する場合がある。
ここで、ログ情報とは、記憶処理装置101が記憶する記憶装置102に関する情報である。例えば、ログ情報は、記憶処理装置101が日時、イベントID、状態表示を記録しているログがある。また、ログ情報は、記憶装置102のエラー統計情報であるS.M.A.R.T.情報がある。
また、故障とは、例えば、記憶装置102にデータを読み書きできなくなる障害が発生することである。例えば、故障には、磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、交替セクタ処理を行うが、交替セクタへの位置決めも失敗し、記憶処理装置101がデータを書き込むことができないことがある。
また、故障と判断されたとは、記憶装置102にデータを読み書きできなくなる障害が発生したことにより、記憶処理装置101が、記憶装置102を故障と判断することである。例えば、記憶処理装置101は、記憶装置102から交替セクタへの位置決めが失敗したことを受け取ると、記憶装置102を故障と判断する。
また、故障時刻を特定するとは、記憶処理装置101が記憶装置102の故障を認識した時刻を特定することである。例えば、記憶処理装置101は、記憶装置102からReassign write operation failedを受け付けた時刻を故障時刻と特定する。
以下、実施の形態にかかる記憶装置故障判定方法の一実施例について説明する。図1の例では、記憶処理装置101がRAIDコントローラに内蔵され、複数の記憶装置102でRAIDを構成し、記憶装置102−1が故障した例である。図1では、複数の記憶装置102のうち、記憶装置102−1と記憶装置102−2が図示されている。
(1)記憶処理装置101は、記憶装置102−1が故障した後に、記憶装置102−1のログ情報111を参照して記憶装置102−1の故障時刻を特定する。例えば、記憶処理装置101は、ログ情報111の中でReassign write operation failedが記憶された時刻を特定する。
図1の例では、Reassign write operation failedは、5時52分18秒に記憶されるため、記憶処理装置101は、5時52分18秒を記憶装置102−1の故障時刻として特定する。
(2)記憶処理装置101は、記憶装置102−1の故障後に故障したと判断された記憶装置102−2のログ情報112のうち、故障時刻より後のログ情報を特定する。
図1の例では、記憶処理装置101は、ログ情報112のうち、故障時刻5時52分18秒より後に記憶されたログ情報を特定する。具体的には、記憶処理装置101は、ログ情報112のうち、6時15分22秒に記憶されたログ情報を特定する。
(3)記憶処理装置101は、特定されたログ情報に基づき、記憶装置102−2の交換の要否を判断する。例えば、記憶装置102−2の故障は次のように発生する場合がある。故障した記憶装置102−1の機械的な故障による振動が、隣接する記憶装置102−2に伝達される。これにより、記憶装置102−2の内部の磁気ヘッドも振動してしまう。記憶装置102−2は、データを書き込む際、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、記憶処理装置101に対して、Mechanical positioning errorを通知する。記憶処理装置101は、書き込みできなかったデータを代替セクタに記録させるため、記憶装置102−2に、交替セクタ処理を指示する。記憶装置102−2は、振動の影響により交替セクタへの位置決めも失敗し、記憶処理装置101にReassign write operation failedを通知する。
ここで、記憶装置102−2のS.M.A.R.T.情報のReallocation Event Countは、セクタの交替処理が発生した回数を示し、記憶装置102−2の指示により、セクタの交替処理が行われた場合に記憶される。振動の影響により交替セクタへの位置決めが失敗した場合は、磁気媒体のエラーにより書き込みが失敗しているわけではないため、記憶装置102−2のReallocation Event Countは増加しない。
このため、記憶処理装置101は、特定されたログ情報に、Reassign write operation failedまたはMechanical positioning errorが記録されるか否かを判断する。
記憶されている場合、記憶処理装置101は、ログ情報112に、Reallocation Event Countが増加しないか否かを判断する。記憶処理装置101は、記憶されかつ増加しない場合、記憶処理装置101は、記憶装置102−1の振動の影響により交替セクタへの位置決めが失敗し、書き込みに失敗したと判断する。この場合、記憶装置102−1を交換すれば、記憶装置102−2は、振動の影響を受けず、正常に動作するため、記憶処理装置101は、記憶装置102−2の交換を不要と判断する。
図1の例では、記憶処理装置101は、特定されたログ情報に、Reassign write operation failedおよびMechanical positioning errorが記録されると判断する。また、特定されたログ情報にReallocation Event Countは、2回記憶され、どちらも1である。このため、記憶処理装置101は、特定されたログ情報のReallocation Event Countが増加しないと判断する。このため、記憶処理装置101は、記憶装置102−2の交換を不要と判断する。
以上説明したように、記憶処理装置101は、記憶装置102−1が故障した後に、記憶装置102−1のログ情報111を参照して記憶装置102−1の故障時刻を特定する。この後、記憶処理装置101は、記憶装置102−1の故障後に故障したと判断された記憶装置102−2のログ情報112のうち、特定された故障時刻より後のログ情報を特定する。この後、記憶処理装置101は、特定されたログ情報に基づき、記憶装置102−2の交換の要否を判断する。
これにより、記憶処理装置101は、記憶装置102−1の故障の影響により記憶されたログ情報に基づき、記憶装置102−2の交換の要否を判断できる。記憶処理装置101は、記憶装置102−1の故障の影響により、記憶装置102−2が故障と判断された場合、記憶装置102−2の交換をしなくてもよいと判断する。このため、記憶処理装置101は、正常な記憶装置102−2を故障と判断することを防ぎ、記憶装置102−2に記憶されるデータが消失することを防ぐことができる。
(情報処理システム200のシステム構成例)
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、記憶処理装置101と、記憶装置102と、を含む。情報処理システム200は、複数のサーバ260からデータを記憶するRAIDシステムである。記憶処理装置101は、例えば、FibreChannel、iSCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)等のインターフェースで記憶装置102に接続される。また、情報処理システム200は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク210を介して複数のサーバ260に接続されてもよい。
記憶処理装置101は、記憶装置102の交換の要否を判断する装置である。記憶処理装置101は、S.M.A.R.T.テーブル220、RAIDログ230、状態テーブル240およびパターンテーブル250を有する。図1に示したログ情報111、ログ情報112は、S.M.A.R.T.テーブル220およびRAIDログ230に対応する。S.M.A.R.T.テーブル220、RAIDログ230、状態テーブル240およびパターンテーブル250の記憶内容については、図4〜図7を用いて後述する。
また、記憶処理装置101は、複数の記憶装置102を有するRAIDシステムに内蔵することも可能である。また、記憶処理装置101は、RAIDシステムの外付けの装置とすることも可能である。また、記憶処理装置101は、サーバ260上で記憶装置故障判定プログラムを実行した装置とすることも可能である。
(記憶処理装置101のハードウェア構成例)
図3は、記憶処理装置101のハードウェア構成例を示すブロック図である。図3において、記憶処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、記憶処理装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMは記憶部としてCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてLAN、WAN、インターネットなどのネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、図3に記載のサーバ260)に接続される。そして、I/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
また、記憶処理装置101は、上述した構成部のほか、例えば、ディスクドライブ、ディスク、SSD、ディスプレイ、入力装置、スキャナ、プリンタなどを有することにしてもよい。
(S.M.A.R.T.テーブル220の記憶内容の一例)
図4は、S.M.A.R.T.テーブル220の記憶内容の一例を示す説明図である。図4において、記憶処理装置101のS.M.A.R.T.テーブル220は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。また、これ以降の記載において、記憶装置102を、単にHDDと表現することもある。
S.M.A.R.T.テーブル220は、HDDのS.M.A.R.T.情報を収集した情報であり、HDDの識別子と対応付けて記憶する。S.M.A.R.T.テーブル220は、ID(Identification)、Seek Error RateおよびReallocation Event Countの項目を有する。S.M.A.R.T.テーブル220は、各項目に情報を設定することで、S.M.A.R.T.情報(例えば、S.M.A.R.T.情報400−1〜400−3)をレコードとして記憶する。
ここで、S.M.A.R.T.情報とは、HDDに内蔵された自己診断機能により、記憶された情報である。具体的には、S.M.A.R.T.情報は、読み取りエラーの発生率、読み書き速度、モーターの起動および停止の通算回数、出荷以来の通算の通電時間、HDDが固定位置からずれた距離などを測定して、記憶したHDDのエラー統計情報である。ただし、S.M.A.R.T.情報には、日時情報は記憶されない。
ここで、IDとは、HDDを識別するための識別子を示す。また、Seek Error Rateは、IDで識別されるHDDのS.M.A.R.T.情報に記憶されたSeek Error Rateを示す。ここで、Seek Error Rateとは、HDDが磁気ヘッドを目的のトラックへ移動しようとして失敗した割合である。ここで、Seek Error Rateは、16進数で記憶される。
また、Reallocation Event Countは、IDで識別されるHDDのS.M.A.R.T.情報に記憶されたReallocation Event Countを示す。ここで、Reallocation Event Countとは、HDDにおいて、セクタの交替処理が発生した回数であり、セクタの交替処理に失敗しても回数に加算される。ここで、Reallocation Event Countは、16進数で記憶される。
また、HDDのS.M.A.R.T.情報は、Seek Error RateおよびReallocation Event Count以外の統計情報を記憶するが、記憶処理装置101は、S.M.A.R.T.テーブル220にこの2つの情報を記憶する。
図4の例では、レコード400−1は、ID「0」のHDDは、磁気ヘッドを目的のトラックへ移動しようとして失敗した割合が16進数で、719であり、セクタの交替処理が発生した回数が0回であることを示す。
(RAIDログ230の記憶内容の一例)
図5は、RAIDログ230の記憶内容の一例を示す説明図である。図5において、記憶処理装置101のRAIDログ230は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。
RAIDログ230は、RAIDコントローラに記憶されたログからRAIDで発生したエラー事象を収集した情報である。RAIDログ230は、日時、HDD搭載位置およびエラー事象の項目を有する。RAIDログ230は、各項目に情報を設定することで、RAIDログ情報(例えば、RAIDログ情報500−1〜500−8)をレコードとして記憶する。
ここで、RAIDコントローラとは、RAID構成において、RAIDレベルの制御、パリティ、ディスクの管理等を行う装置である。RAIDコントローラには、ハードウェア方式とソフトウェア方式がある。ハードウェア方式には、HBA(ホスト・バス・アダプタ)に組み込まれている場合、ストレージのハードウェアに組み込まれている場合があり、制御チップとして搭載される。また、ソフトウェア方式では、既存のバスの制御ソフトウェアとして、ドライバ、ファームウェアなどによりRAID機能が実現される。また、バスとして、P−ATA(Parallel−ATA(Advanced Technology Attachment))、S−ATA(Serial−ATA)、SAS等がある。
ここで、日時は、RAIDコントローラがログを収集した日付と時間を示す。例えば、日時は、月日時間分秒で示される。また、日時に、年が含まれていてもよい。HDD搭載位置は、RAIDを構成するHDDが搭載されるスロットの位置を示し、HDD搭載位置は、RAIDを構成するHDDを識別するための識別子でもある。
また、エラー事象は、RAIDコントローラおよびRAIDを構成するHDDで発生したエラーを示す。エラー事象には、例えば、Mechanical positioning error、Reassign write operation failed、Status Change to Failed等がある。
ここで、Mechanical positioning errorは、RAIDを構成するHDDにおいて、磁気ヘッドが目的のトラックへ移動しようとして失敗した場合に記録される。例えば、Mechanical positioning errorは、ヘッドのシーク機構の故障やHDDの熱などによって発生する。また、Reassign write operation failedは、交替セクタへの割当処理に失敗した場合に記録される。Status Change to Failedは、交替セクタへの割当処理に失敗し、HDDにデータを書き込みできなくなり、RAIDコントローラが、HDDを故障と判断した場合に記録される。
図5の例では、レコード500−1は、6月5日2時54分39秒に、1番目のスロットに搭載されたHDDで、Mechanical positioning errorが発生したことを示す。
(状態テーブル240の記憶内容の一例)
図6は、状態テーブル240の記憶内容の一例を示す説明図である。図6において、記憶処理装置101の状態テーブル240は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。
状態テーブル240は、S.M.A.R.T.テーブル220とRAIDログ230に基づいて作成され、RAIDログ230のエラー事象を時系列に並べた情報である。状態テーブル240は、RAIDログごとに日時、エラー事象、HDDごとにSeek Error RateおよびReallocation Event Countの項目を有する。状態テーブル240は、各項目に情報を設定することで、状態情報(例えば、状態情報600−1〜600−6)をレコードとして記憶する。
ここで、IDは、状態テーブルのレコードを識別する識別子を示す。日時は、RAIDログ230の日時を示す。エラー事象は、RAIDログ230のエラー事象を示す。Seek Error Rateは、当該レコードの日時におけるS.M.A.R.T.テーブル220のSeek Error Rateを示す。Reallocation Event Countは、当該レコードの日時におけるS.M.A.R.T.テーブル220のReallocation Event Countを示す。
図6の例では、レコード600−1は、RAIDログ230のレコード500−1に基づいて作成されたレコードである。Seek Error Rateは、6月5日2時54分39秒に、RAID装置のスロット0に搭載されたHDD0、スロット1に搭載されたHDD1、スロット2に搭載されたHDD2から収集された情報を示す。Reallocation Event Countについても、同様である。
(パターンテーブル250の記憶内容の一例)
図7は、パターンテーブル250の記憶内容の一例を示す説明図である。図7において、記憶処理装置101のパターンテーブル250は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。
パターンテーブル250は、状態テーブル240に基づいて作成され、故障したと判断されたHDDの交換の要否を判断するための情報である。具体的には、状態テーブル240は、最初に故障したと判断されたHDDの故障時刻より後に記憶された状態テーブル240に基づいて作成される。パターンテーブル250は、HDDごとに、Reassign write operation failedまたはMechanical positioning error、Status Change to Failedの項目を有する。また、パターンテーブル250は、HDDごとに、Reallocation Event、Seek Errorの項目を有する。パターンテーブル250は、各項目に情報を設定することで、パターン情報(例えば、パターン情報700−1〜700−6)をレコードとして記憶する。
ここで、Reassign write operation failedまたはMechanical positioning errorは、HDDごとに、RAIDログ230のエラー事象にこれらのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。また、Status Change to Failedは、RAIDログ230のエラー事象にこのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。
また、Reallocation Eventは、HDDごとに、状態テーブル240のReallocation Event Countが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル240において、最初のレコードから最後のレコードまで、Reallocation Event Countが増加しているか否かで判断することができる。
Seek Errorは、状態テーブル240のSeek Error Rateが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル240において、最初のレコードから最後のレコードまで、Seek Error Rateが増加しているか否かで判断することができる。
ここで、Seek Errorは、Reallocation Event Countが増加しているHDDに対して、設定することができる。言い換えれば、Reallocation Event Countが増加していないHDDに対して、Seek Errorを設定しなくてもよい。これは、Reallocation Event Countが増加していないHDDのSeek Errorは、HDDの交換の要否を判断するために使用しないためである。
また、パターンテーブル250は、S.M.A.R.T.テーブル220とRAIDログ230に基づいて作成されることもできる。この場合、S.M.A.R.T.テーブル220に日時の情報がないため、記憶処理装置101は、Reallocation EventとSeek Errorの増加を判断できない。このため、Reallocation EventとSeek Errorには、「発生あり」または「発生なし」が設定される。例えば、記憶処理装置101は、S.M.A.R.T.テーブル220のReallocation Event Countが「0」の場合、「発生なし」を設定し、「0」以外の値の場合、「発生あり」を設定する。記憶処理装置101は、Seek Errorについても同様に設定する。
図7の例では、レコード700−1は、6月5日2時55分35秒に、HDD1でReassign write operation failedまたはMechanical positioning errorが発生したことを示す。また、HDD0およびHDD2で、Reallocation Event Countの増加がなく、HDD1でReallocation Event Countの増加があることを示す。また、HDD1でSeek Error Rateの増加があることを示す。
(記憶処理装置101の機能的構成例)
図8は、記憶処理装置101の機能的構成例を示すブロック図である。図8において記憶処理装置101は、入力部801と、特定部802と、判断部803と、表示部804と、を含む構成である。入力部801と、特定部802と、判断部803と、表示部804と、を含む制御部は、具体的には、例えば、図3に示したメモリ302などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302などの記憶装置に記憶される。
入力部801は、RAIDコントローラからRAIDログを読み込み、HDDからS.M.A.R.T.情報を読み込む機能を有する。例えば、入力部801は、RAIDコントローラがRAIDログを更新するごとにRAIDコントローラからRAIDログを読み込むことができる。また、入力部801は、読み込んだRAIDログをRAIDログ230に記憶する。この際、入力部801は、読み込んだRAIDログのエラー事象をRAIDログ230に記憶することもできる。
また、例えば、入力部801は、読み込んだS.M.A.R.T.情報をS.M.A.R.T.テーブル220に記憶する。また、入力部801は、読み込んだRAIDログにエラー事象が発生した場合、HDDからS.M.A.R.T.情報を読み込むことができる。この場合、入力部801は、読み込んだRAIDログとS.M.A.R.T.情報とから状態テーブル240のレコードを追加する。
また、記憶処理装置101は、RAIDログとS.M.A.R.T.情報をRAIDコントローラやHDDのDebug用インターフェースや、データの入出力インターフェースを利用して読み込むことができる。データの入出力インターフェースとして、RAIDコントローラの場合、PCI(Peripheral Component Interconnect) Express、PCI、USB(Universal Serial Bus)などがある。データの入出力インターフェースとして、HDDの場合、SAS、S−ATA、SCSI、IDE(Integrated Drive Electronics)などがある。
特定部802は、HDDが最初に故障した時刻を特定して、特定した時刻以降の状態テーブル240のレコードを特定する機能を有する。また、特定部802は、特定したレコードでパターンテーブル250を作成することもできる。
判断部803は、最初に故障したHDDの故障後に故障と判断されたHDDの交換の要否を判断する機能を有する。例えば、判断部803は、パターンテーブル250において、以下の条件をすべて満たす場合、Reallocation Eventが増加していないHDDの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部803は、Reassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されているHDDの交換を要と判断する。
・パターンテーブル250のReassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されている。
・Seek Error Rateが増加しているHDDはあり、Seek Error Rateが増加したHDDで、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されている。
・Reallocation Event Countが増加したHDDは1台である。
・Reallocation Event Countが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生している。
また、例えば、判断部803は、パターンテーブル250が、S.M.A.R.T.テーブル220とRAIDログ230に基づいて作成された場合、以下のように判断できる。例えば、判断部803は、パターンテーブル250において、以下の条件をすべて満たす場合、Reallocation Eventが発生していないHDDの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部803は、Reassign write operation failedまたはMechanical positioning errorの項目に「発生あり」が設定されているHDDの交換を要と判断する。
・パターンテーブル250のReassign write operation failedまたはMechanical positioning errorの項目に「発生あり」が設定されている。
・Seek Error Rateが発生しているHDDはあり、Seek Error Rateが発生したHDDで、パターンテーブル250のReallocation Eventの項目に「発生あり」が設定されている。
・Reallocation Event Countが発生したHDDは1台である。
・Reallocation Event Countが発生していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生している。
表示部804は、判断部803が判断した結果を表示する機能を有する。例えば、表示部804は、記憶処理装置101のディスプレイまたは記憶処理装置101と通信可能なサーバ260のディスプレイに結果を表示する。例えば、表示部804は、HDDを特定する識別子と、当該HDDの交換の要否を表示することができる。
(記憶処理装置101の情報収集処理手順の一例)
図9は、記憶処理装置101の情報収集処理手順の一例を示すフローチャートである。図9において、まず、記憶処理装置101は、RAIDコントローラからRAIDログを読み込む(ステップS901)。記憶処理装置101は、読み込んだRAIDログをRAIDログ230に記憶することもできる。次に、記憶処理装置101は、RAIDログにエラー事象が発生しているか否かを判断する(ステップS902)。
例えば、記憶処理装置101は、RAIDログに、Mechanical positioning error、Reassign write operation failedが記憶されている場合、エラー事象が発生していると判断する。また、例えば、記憶処理装置101は、RAIDログに、Status Change to Failedが記憶されている場合、エラー事象が発生していると判断する。
エラー事象が発生していない場合(ステップS902:No)、記憶処理装置101の処理は、ステップS901に戻る。エラー事象が発生している場合(ステップS902:Yes)、記憶処理装置101は、HDDからS.M.A.R.T.情報を読み込む(ステップS903)。例えば、記憶処理装置101は、RAIDを構成するすべてのHDDからSeek Error RateおよびReallocation Event Countを読み込む。記憶処理装置101は、読み込んだS.M.A.R.T.情報をS.M.A.R.T.情報テーブル220に記憶することもできる。
この後、記憶処理装置101は、状態テーブル240にレコードを追加する(ステップS904)。例えば、記憶処理装置101は、状態テーブル240の日時の項目に、ステップS901で読み込んだRAIDログの日時を設定する。また、例えば、記憶処理装置101は、状態テーブル240のエラー事象の項目に、ステップS901で読み込んだRAIDログのエラー事象とHDD搭載位置を設定する。
また、例えば、記憶処理装置101は、HDDごとに、状態テーブル240のSeek Error Rateの項目に、ステップS903で読み込んだS.M.A.R.T.情報のSeek Error Rateを設定する。例えば、記憶処理装置101は、HDDごとに、状態テーブル240のReallocation Event Countの項目に、ステップS903で読み込んだS.M.A.R.T.情報のReallocation Event Countを設定する。
その後、記憶処理装置101は、情報収集処理が終了するか否かを判断する(ステップS905)。例えば、記憶処理装置101は、記憶処理装置101が提供するサービスが終了して、電源をオフされる際に情報収集処理が終了すると判断する。
情報収集処理が終了しないと判断した場合(ステップS905:No)、記憶処理装置101の処理は、ステップS901に戻る。情報収集処理が終了すると判断した場合(ステップS905:Yes)、記憶処理装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置101は、故障したと判断されたHDDの交換の要否を判断するための情報を収集することができる。
(HDD状態判定処理手順の一例)
図10は、記憶処理装置101のHDD状態判定処理手順の一例を示すフローチャートである。図10において、まず、記憶処理装置101は、HDDが最初に故障した時刻を特定する(ステップS1001)。例えば、記憶処理装置101は、RAIDログ230にStatus Change to Failedが記憶された時刻を特定する。
図6の例では、記憶処理装置101は、HDD0〜2の中で最初に故障したHDD1の故障した時刻2時55分35秒を特定する。
この後、記憶処理装置101は、特定した時刻以降の状態テーブル240のレコードを特定して、パターンテーブル250を作成する(ステップS1002)。
図6の例では、記憶処理装置101は、特定した時刻2時55分35秒以降のレコード600−1〜600−6からパターンテーブル250を作成する。
この後、記憶処理装置101は、Reassign write operation failedまたはMechanical positioning errorが発生しているか否かを判断する(ステップS1003)。例えば、記憶処理装置101は、パターンテーブル250のReassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されているかで判断する。
図7の例では、HDD0〜HDD2にReassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されている。このため、記憶処理装置101は、Reassign write operation failedまたはMechanical positioning errorが発生していると判断する。
発生していないと判断した場合(ステップS1003:No)、記憶処理装置101の処理は、ステップS1009に移行する。発生していると判断した場合(ステップS1003:Yes)、記憶処理装置101は、Seek Errorが増加しているHDDはあるか否かを判断する(ステップS1004)。例えば、記憶処理装置101は、パターンテーブル250のSeek Errorの項目に「増加あり」が設定されているか否かで判断する。
図7の例では、HDD1のSeek Errorの項目に「増加あり」が設定されているため、記憶処理装置101は、Seek Errorが増加しているHDDはあると判断する。
Seek Errorが増加しているHDDはないと判断した場合(ステップS1004:No)、記憶処理装置101の処理は、ステップS1009に移行する。Seek Errorが増加しているHDDはあると判断した場合(ステップS1004:Yes)、記憶処理装置101は、Seek Errorが増加したHDDで、Reallocation Eventが増加しているHDDはあるか否かを判断する(ステップS1005)。例えば、記憶処理装置101は、Seek Errorが増加したHDDで、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されているか否かで判断する。
図7の例では、Seek Errorが増加しているHDD1で、Reallocation Eventの項目に「増加あり」が設定されているため、記憶処理装置101は、Reallocation Eventが増加しているHDDはあると判断する。
Reallocation Eventが増加しているHDDはないと判断した場合(ステップS1005:No)、記憶処理装置101の処理は、ステップS1009に移行する。Reallocation Eventが増加しているHDDはあると判断した場合(ステップS1005:Yes)、記憶処理装置101は、Reallocation Eventが増加したHDDは1台であるか否かを判断する(ステップS1006)。例えば、記憶処理装置101は、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されているHDDが1台であるか否かで判断する。
図7の例では、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されているHDDが1台あるため、記憶処理装置101は、Reallocation Eventが増加したHDDは1台であると判断する。
Reallocation Eventが増加したHDDは1台でないと判断した場合(ステップS1006:No)、記憶処理装置101の処理は、ステップS1009に移行する。Reallocation Eventが増加したHDDは1台であると判断した場合(ステップS1006:Yes)、記憶処理装置101は、さらに以下の判断を行う。記憶処理装置101は、Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生しているか否かを判断する(ステップS1007)。
図7の例では、Reallocation Eventが増加していないHDD0およびHDD2で、Reassign write operation failedまたはMechanical positioning errorが発生している。このため、記憶処理装置101は、Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生していると判断する。
Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生していると判断した場合(ステップS1007:Yes)、記憶処理装置101は、HDDの交換を不要と判断する(ステップS1008)。この後、記憶処理装置101の処理は、終了する。
図7の例では、記憶処理装置101は、HDD0とHDD2の交換を不要と判断する。HDD0とHDD2のエラーは、HDD1の故障による振動により、発生したものであるため、HDD1の振動が停止されると、HDD0とHDD2のエラーは無くなるためである。
Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生していないと判断した場合(ステップS1007:No)、記憶処理装置101は、HDDの交換を要と判断する(ステップS1009)。この後、記憶処理装置101の処理は、終了する。
HDDに発生したエラーは、他のHDDの故障による振動により、発生したものでなく、他のHDDの振動を停止しても、HDDに発生したエラーは消えないため、記憶処理装置101は、HDDの交換を要と判断する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置101は、故障したと判断されたHDDの交換の要否を判断することができる。
以上説明したように、記憶処理装置101は、HDDが故障した後に、状態テーブル240を参照してHDDの故障時刻を特定する。この後、記憶処理装置101は、HDDの故障後に故障したと判断された他のHDDの状態テーブル240のうち、特定された故障時刻より後のレコードを特定する。この後、記憶処理装置101は、特定されたレコードに基づき、他のHDDの交換の要否を判断する。
これにより、記憶処理装置101は、HDDの故障の影響により記憶された状態テーブル240のレコードに基づき、他のHDDの交換の要否を判断できる。
また、記憶処理装置101は、状態テーブル240のレコードが、HDDの故障の影響により記憶されたものを含む場合、他のHDDの交換を不要と判断することができる。記憶処理装置101が、他のHDDの交換を不要と判断した場合、故障したHDDを取除き、故障したHDDの振動で故障と判定されていたHDDの故障状態を解除してオンラインにすることにより、RAID構成の復旧が可能となる。この場合、複数のHDDの故障によるデータロストを回避でき、長時間におよぶデータ復旧作業が不要となる。また、故障したHDDの振動により、故障と判断されたHDDは交換することがないため、交換部品の部品コストを抑えることが可能となる。
このように、記憶処理装置101は、HDDの故障の影響により、他のHDDが故障と判断された場合、他のHDDの交換をしなくてもよいと判断する。このため、記憶処理装置101は、正常なHDDを故障と判断することを防ぎ、HDDに記憶されるデータが消失することを防ぐことができる。
また、記憶処理装置101は、RAIDログ230にReassign write operation failedまたはMechanical positioning errorが記憶されることを判断する。さらに、記憶処理装置101は、HDDのS.M.A.R.T.情報のReallocation Eventの回数が0であることを判断する。この場合、記憶処理装置101は、HDDの交換を不要と判断できる。
これにより、記憶処理装置101は、HDDの交換の要否を判断する際に、HDDのS.M.A.R.T.情報を参照することで、HDDの交換の要否を判断できる。このため、記憶処理装置101は、S.M.A.R.T.情報を記憶処理装置101のメモリ301等に蓄積しなくてもよい。
また、記憶処理装置101は、状態テーブル240にReassign write operation failedまたはMechanical positioning errorが記憶されることを判断する。さらに、記憶処理装置101は、状態テーブル240のReallocation Eventの回数が増加していないと判断する。この場合、記憶処理装置101は、HDDの交換を不要と判断できる。
これにより、記憶処理装置101は、Reallocation Eventがすでに記憶されているHDDに対しても、HDDの交換の要否を判断できる。例えば、HDDは、使用すると正常の場合でもReallocation Eventが記憶されることもある。記憶処理装置101は、このようなHDDを使用したシステムにおいても、HDDの交換の要否を判断できる。
また、記憶処理装置101は、RAIDログ230と各HDDのS.M.A.R.T.テーブル220を解析するため、従来からあるハードウェアおよびソフトウェアに対し特別な変更を行うことなく、HDDの交換の要否を判断できる。また、記憶処理装置101が、故障したHDDの振動による障害であるか否かを、RAIDログ230と各HDDのS.M.A.R.T.テーブル220に従って判断するため、人的判断ミスがなくなる。
なお、本実施の形態で説明した記憶装置故障判定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本記憶装置故障判定プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本記憶装置故障判定プログラムは、インターネット等のネットワークを介して配布してもよい。
101 記憶処理装置
102 記憶装置
260 サーバ
801 入力部
802 特定部
803 判断部
804 表示部
本発明は、記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムに関する。
複数台のHDD(Hard Disk Drive)を組み合わせることで仮想的な1台のHDDとして運用し、冗長性を向上させるRAID(Redundant Arrays of Inexpensive Disks)技術がある。RAID技術は、主に信頼性および可用性の向上を目的として用いられる。
RAIDを構成するHDDに故障が発生すると、RAIDコントローラのRAIDログまたはHDDのS.M.A.R.T.(Self−Monitoring,Analysis and Reporting Technology)情報をもとに保守技術員が解析を行い、故障したHDDを交換する。
先行技術としては、例えば、全HDD内部ログの採取を行い、各HDD内部ログ情報の比較を行って、HDDの故障を予測する技術がある。また、例えば、ディスクの状態をエラー統計情報ファイルに記録し、エラー統計情報ファイルを統計的に分析し、障害発生前に予測交換すべきか否かを判断する技術がある。また、例えば、HDDの使用環境または使用状況の履歴を記録し、記憶した履歴と所定の条件とを比較することで、HDDの異常の有無を判断する技術がある。また、例えば、データアクセスに要する時間と、デバイス装置の状態とに基づいて、HDDの故障要因が外的要因であるか内的要因であるかを判別する技術がある。
特開2008−257411号公報 特開2000−305720号公報 国際公開第2009/040995号 特開2007−241384号公報
しかしながら、従来技術では、正常な記憶装置を故障と誤判断し、正常な記憶装置を交換されてしまう場合がある。例えば、故障した記憶装置の振動の影響で、他の記憶装置の磁気ヘッドの位置決めが失敗することがある。故障した記憶装置を取り除けば、他の記憶装置は正常に動作するにもかかわらず、磁気ヘッドの位置決めが失敗したことで、他の記憶装置を故障と誤判断して、他の記憶装置が故障していないのに交換されてしまう。
一つの側面では、本発明は、正常な記憶装置が故障と誤判断されることを防ぐ記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムを提供することを目的とする。
本発明の一側面によれば、第1記憶装置が故障した後に、第1記憶装置の第1ログ情報を参照して第1記憶装置の故障時刻を特定し、第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された故障時刻より後のログ情報を特定し、特定されたログ情報に基づき、第2記憶装置の交換の要否を判断する記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムが提案される。
本発明の一態様によれば、正常な記憶装置が故障と誤判断されることを防ぐという効果を奏する。
図1は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。 図2は、情報処理システム200のシステム構成例を示す説明図である。 図3は、記憶処理装置101のハードウェア構成例を示すブロック図である。 図4は、S.M.A.R.T.テーブル220の記憶内容の一例を示す説明図である。 図5は、RAIDログ230の記憶内容の一例を示す説明図である。 図6は、状態テーブル240の記憶内容の一例を示す説明図である。 図7は、パターンテーブル250の記憶内容の一例を示す説明図である。 図8は、記憶処理装置101の機能的構成例を示すブロック図である。 図9は、記憶処理装置101の情報収集処理手順の一例を示すフローチャートである。 図10は、記憶処理装置101のHDD状態判定処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。図1の記憶処理装置101は、記憶装置102の交換の要否を判断する装置である。例えば、記憶処理装置101は、複数の記憶装置102を組み合わせたRAID構成を制御するRAIDコントローラに内蔵されることも可能である。また、記憶装置102は、データを記憶する装置である。例えば、記憶装置102は、HDDである。
従来、信頼性および可用性の向上のため、複数台の記憶装置を組み合わせることで仮想的な1台の記憶装置として運用し、冗長性を向上させるRAID構成が用いられてきた。RAID構成では、複数台の記憶装置のうちの1台が故障しても、RAID構成に記憶されたデータは失われることはない。
しかしながら、複数台の記憶装置のうちの1台が故障して、さらに残りの記憶装置のうちの1台が故障した場合、RAID構成に記憶されたデータは失われる場合がある。この場合は、RAID構成の再構築、バックアップからのリカバリ作業を行わなければならず、復旧までに多大な時間を要する。また、最終バックアップ以降にRAID構成に記録されたデータは、失われる。
ここで、RAID構成の記憶装置のうちの1台が故障して、さらに残りの記憶装置のうちの1台を故障と誤って判断することで、RAID構成に記憶されたデータが失われる場合がある。これ以降、RAID構成の記憶装置の例として、HDDを例に説明する。例えば、3台のHDD(HDD0、HDD1、HDD2)が並べて搭載され、RAID構成が作成された状態において、HDD1がRAIDコントローラからのコマンドに対し、エラーを返したとする。この場合、RAIDコントローラは、RAIDコントローラからのコマンドに対し、エラーを返してきたHDD1を、RAID構成から切り離す。しかし、RAIDコントローラは、HDD1の機械的な動作は停止しない。具体的には、RAIDコントローラは、HDD1に対し、Motor offまたはunit stop等のコマンドを発行しない。
この時、HDD1の円盤の中心軸、ヘッドの駆動サーボ、それらの制御系等の機械機構に異常があれば、HDD1は、振動を発し、隣接する正常なHDD0およびHDD2に振動を与えることとなる。
これにより、隣接するHDD0およびHDD2の内部の磁気ヘッドも振動してしまう。HDD0およびHDD2は、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、RAIDコントローラからの書き込み要求に対して、Mechanical positioning errorを通知する。RAIDコントローラは書き込みできなかったデータを代替セクタに記録させるため、Mechanical positioning errorを通知してきたHDD0およびHDD2に対し、交替セクタ処理を指示する。交替セクタ処理を指示したHDD0およびHDD2は、交替セクタ処理を行うが、振動の影響により交替セクタへの位置決めも失敗し、RAIDコントローラにReassign write operation failedを通知する。
これらの通知を受けたRAIDコントローラは、HDD0およびHDD2が、内部の磁気媒体にエラーの記録および損傷は無く、内部の磁気媒体が正常な状態にあるにもかかわらず、HDD0およびHDD2を故障と判断する。このため、振動の影響を受けた隣接するHDD0およびHDD2も交換されることになる。この場合、HDD0およびHDD2に記憶された救済できるはずのデータは救済できなくなり、RAID構成に記憶されたデータが失われる。
そこで、実施の形態では、記憶処理装置101は、故障した記憶装置102−1のログ情報から故障時刻を特定し、記憶装置102−1の故障後に故障と判断された記憶装置102−2の交換の要否を、特定した故障時刻より後のログ情報より判断する。これ以降、また、記憶装置102−1、記憶装置102−2のうちの任意の記憶装置を記憶装置102と表記する場合がある。
ここで、ログ情報とは、記憶処理装置101が記憶する記憶装置102に関する情報である。例えば、ログ情報は、記憶処理装置101が日時、イベントID、状態表示を記録しているログがある。また、ログ情報は、記憶装置102のエラー統計情報であるS.M.A.R.T.情報がある。
また、故障とは、例えば、記憶装置102にデータを読み書きできなくなる障害が発生することである。例えば、故障には、磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、交替セクタ処理を行うが、交替セクタへの位置決めも失敗し、記憶処理装置101がデータを書き込むことができないことがある。
また、故障と判断されたとは、記憶装置102にデータを読み書きできなくなる障害が発生したことにより、記憶処理装置101が、記憶装置102を故障と判断することである。例えば、記憶処理装置101は、記憶装置102から交替セクタへの位置決めが失敗したことを受け取ると、記憶装置102を故障と判断する。
また、故障時刻を特定するとは、記憶処理装置101が記憶装置102の故障を認識した時刻を特定することである。例えば、記憶処理装置101は、記憶装置102からReassign write operation failedを受け付けた時刻を故障時刻と特定する。
以下、実施の形態にかかる記憶装置故障判定方法の一実施例について説明する。図1の例では、記憶処理装置101がRAIDコントローラに内蔵され、複数の記憶装置102でRAIDを構成し、記憶装置102−1が故障した例である。図1では、複数の記憶装置102のうち、記憶装置102−1と記憶装置102−2が図示されている。
(1)記憶処理装置101は、記憶装置102−1が故障した後に、記憶装置102−1のログ情報111を参照して記憶装置102−1の故障時刻を特定する。例えば、記憶処理装置101は、ログ情報111の中でReassign write operation failedが記憶された時刻を特定する。
図1の例では、Reassign write operation failedは、5時52分18秒に記憶されるため、記憶処理装置101は、5時52分18秒を記憶装置102−1の故障時刻として特定する。
(2)記憶処理装置101は、記憶装置102−1の故障後に故障したと判断された記憶装置102−2のログ情報112のうち、故障時刻より後のログ情報を特定する。
図1の例では、記憶処理装置101は、ログ情報112のうち、故障時刻5時52分18秒より後に記憶されたログ情報を特定する。具体的には、記憶処理装置101は、ログ情報112のうち、6時15分22秒に記憶されたログ情報を特定する。
(3)記憶処理装置101は、特定されたログ情報に基づき、記憶装置102−2の交換の要否を判断する。例えば、記憶装置102−2の故障は次のように発生する場合がある。故障した記憶装置102−1の機械的な故障による振動が、隣接する記憶装置102−2に伝達される。これにより、記憶装置102−2の内部の磁気ヘッドも振動してしまう。記憶装置102−2は、データを書き込む際、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、記憶処理装置101に対して、Mechanical positioning errorを通知する。記憶処理装置101は、書き込みできなかったデータを代替セクタに記録させるため、記憶装置102−2に、交替セクタ処理を指示する。記憶装置102−2は、振動の影響により交替セクタへの位置決めも失敗し、記憶処理装置101にReassign write operation failedを通知する。
ここで、記憶装置102−2のS.M.A.R.T.情報のReallocation Event Countは、セクタの交替処理が発生した回数を示し、記憶装置102−2の指示により、セクタの交替処理が行われた場合に記憶される。振動の影響により交替セクタへの位置決めが失敗した場合は、磁気媒体のエラーにより書き込みが失敗しているわけではないため、記憶装置102−2のReallocation Event Countは増加しない。
このため、記憶処理装置101は、特定されたログ情報に、Reassign write operation failedまたはMechanical positioning errorが記録されるか否かを判断する。
記憶されている場合、記憶処理装置101は、ログ情報112に、Reallocation Event Countが増加しないか否かを判断する。記憶処理装置101は、記憶されかつ増加しない場合、記憶処理装置101は、記憶装置102−1の振動の影響により交替セクタへの位置決めが失敗し、書き込みに失敗したと判断する。この場合、記憶装置102−1を交換すれば、記憶装置102−2は、振動の影響を受けず、正常に動作するため、記憶処理装置101は、記憶装置102−2の交換を不要と判断する。
図1の例では、記憶処理装置101は、特定されたログ情報に、Reassign write operation failedおよびMechanical positioning errorが記録されると判断する。また、特定されたログ情報にReallocation Event Countは、2回記憶され、どちらも1である。このため、記憶処理装置101は、特定されたログ情報のReallocation Event Countが増加しないと判断する。このため、記憶処理装置101は、記憶装置102−2の交換を不要と判断する。
以上説明したように、記憶処理装置101は、記憶装置102−1が故障した後に、記憶装置102−1のログ情報111を参照して記憶装置102−1の故障時刻を特定する。この後、記憶処理装置101は、記憶装置102−1の故障後に故障したと判断された記憶装置102−2のログ情報112のうち、特定された故障時刻より後のログ情報を特定する。この後、記憶処理装置101は、特定されたログ情報に基づき、記憶装置102−2の交換の要否を判断する。
これにより、記憶処理装置101は、記憶装置102−1の故障の影響により記憶されたログ情報に基づき、記憶装置102−2の交換の要否を判断できる。記憶処理装置101は、記憶装置102−1の故障の影響により、記憶装置102−2が故障と判断された場合、記憶装置102−2の交換をしなくてもよいと判断する。このため、記憶処理装置101は、正常な記憶装置102−2を故障と判断することを防ぎ、記憶装置102−2に記憶されるデータが消失することを防ぐことができる。
(情報処理システム200のシステム構成例)
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、記憶処理装置101と、記憶装置102と、を含む。情報処理システム200は、複数のサーバ260からデータを記憶するRAIDシステムである。記憶処理装置101は、例えば、FibreChannel、iSCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)等のインターフェースで記憶装置102に接続される。また、情報処理システム200は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク210を介して複数のサーバ260に接続されてもよい。
記憶処理装置101は、記憶装置102の交換の要否を判断する装置である。記憶処理装置101は、S.M.A.R.T.テーブル220、RAIDログ230、状態テーブル240およびパターンテーブル250を有する。図1に示したログ情報111、ログ情報112は、S.M.A.R.T.テーブル220およびRAIDログ230に対応する。S.M.A.R.T.テーブル220、RAIDログ230、状態テーブル240およびパターンテーブル250の記憶内容については、図4〜図7を用いて後述する。
また、記憶処理装置101は、複数の記憶装置102を有するRAIDシステムに内蔵することも可能である。また、記憶処理装置101は、RAIDシステムの外付けの装置とすることも可能である。また、記憶処理装置101は、サーバ260上で記憶装置故障判定プログラムを実行した装置とすることも可能である。
(記憶処理装置101のハードウェア構成例)
図3は、記憶処理装置101のハードウェア構成例を示すブロック図である。図3において、記憶処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、記憶処理装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMは記憶部としてCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてLAN、WAN、インターネットなどのネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、図3に記載のサーバ260)に接続される。そして、I/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
また、記憶処理装置101は、上述した構成部のほか、例えば、ディスクドライブ、ディスク、SSD、ディスプレイ、入力装置、スキャナ、プリンタなどを有することにしてもよい。
(S.M.A.R.T.テーブル220の記憶内容の一例)
図4は、S.M.A.R.T.テーブル220の記憶内容の一例を示す説明図である。図4において、記憶処理装置101のS.M.A.R.T.テーブル220は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。また、これ以降の記載において、記憶装置102を、単にHDDと表現することもある。
S.M.A.R.T.テーブル220は、HDDのS.M.A.R.T.情報を収集した情報であり、HDDの識別子と対応付けて記憶する。S.M.A.R.T.テーブル220は、ID(Identification)、Seek Error RateおよびReallocation Event Countの項目を有する。S.M.A.R.T.テーブル220は、各項目に情報を設定することで、S.M.A.R.T.情報(例えば、S.M.A.R.T.情報400−1〜400−3)をレコードとして記憶する。
ここで、S.M.A.R.T.情報とは、HDDに内蔵された自己診断機能により、記憶された情報である。具体的には、S.M.A.R.T.情報は、読み取りエラーの発生率、読み書き速度、モーターの起動および停止の通算回数、出荷以来の通算の通電時間、HDDが固定位置からずれた距離などを測定して、記憶したHDDのエラー統計情報である。ただし、S.M.A.R.T.情報には、日時情報は記憶されない。
ここで、IDとは、HDDを識別するための識別子を示す。また、Seek Error Rateは、IDで識別されるHDDのS.M.A.R.T.情報に記憶されたSeek Error Rateを示す。ここで、Seek Error Rateとは、HDDが磁気ヘッドを目的のトラックへ移動しようとして失敗した割合である。ここで、Seek Error Rateは、16進数で記憶される。
また、Reallocation Event Countは、IDで識別されるHDDのS.M.A.R.T.情報に記憶されたReallocation Event Countを示す。ここで、Reallocation Event Countとは、HDDにおいて、セクタの交替処理が発生した回数であり、セクタの交替処理に失敗しても回数に加算される。ここで、Reallocation Event Countは、16進数で記憶される。
また、HDDのS.M.A.R.T.情報は、Seek Error RateおよびReallocation Event Count以外の統計情報を記憶するが、記憶処理装置101は、S.M.A.R.T.テーブル220にこの2つの情報を記憶する。
図4の例では、レコード400−1は、ID「0」のHDDは、磁気ヘッドを目的のトラックへ移動しようとして失敗した割合が16進数で、719であり、セクタの交替処理が発生した回数が0回であることを示す。
(RAIDログ230の記憶内容の一例)
図5は、RAIDログ230の記憶内容の一例を示す説明図である。図5において、記憶処理装置101のRAIDログ230は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。
RAIDログ230は、RAIDコントローラに記憶されたログからRAIDで発生したエラー事象を収集した情報である。RAIDログ230は、日時、HDD搭載位置およびエラー事象の項目を有する。RAIDログ230は、各項目に情報を設定することで、RAIDログ情報(例えば、RAIDログ情報500−1〜500−8)をレコードとして記憶する。
ここで、RAIDコントローラとは、RAID構成において、RAIDレベルの制御、パリティ、ディスクの管理等を行う装置である。RAIDコントローラには、ハードウェア方式とソフトウェア方式がある。ハードウェア方式には、HBA(ホスト・バス・アダプタ)に組み込まれている場合、ストレージのハードウェアに組み込まれている場合があり、制御チップとして搭載される。また、ソフトウェア方式では、既存のバスの制御ソフトウェアとして、ドライバ、ファームウェアなどによりRAID機能が実現される。また、バスとして、P−ATA(Parallel−ATA(Advanced Technology Attachment))、S−ATA(Serial−ATA)、SAS等がある。
ここで、日時は、RAIDコントローラがログを収集した日付と時間を示す。例えば、日時は、月日時間分秒で示される。また、日時に、年が含まれていてもよい。HDD搭載位置は、RAIDを構成するHDDが搭載されるスロットの位置を示し、HDD搭載位置は、RAIDを構成するHDDを識別するための識別子でもある。
また、エラー事象は、RAIDコントローラおよびRAIDを構成するHDDで発生したエラーを示す。エラー事象には、例えば、Mechanical positioning error、Reassign write operation failed、Status Change to Failed等がある。
ここで、Mechanical positioning errorは、RAIDを構成するHDDにおいて、磁気ヘッドが目的のトラックへ移動しようとして失敗した場合に記録される。例えば、Mechanical positioning errorは、ヘッドのシーク機構の故障やHDDの熱などによって発生する。また、Reassign write operation failedは、交替セクタへの割当処理に失敗した場合に記録される。Status Change to Failedは、交替セクタへの割当処理に失敗し、HDDにデータを書き込みできなくなり、RAIDコントローラが、HDDを故障と判断した場合に記録される。
図5の例では、レコード500−1は、6月5日2時54分39秒に、1番目のスロットに搭載されたHDDで、Mechanical positioning errorが発生したことを示す。
(状態テーブル240の記憶内容の一例)
図6は、状態テーブル240の記憶内容の一例を示す説明図である。図6において、記憶処理装置101の状態テーブル240は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。
状態テーブル240は、S.M.A.R.T.テーブル220とRAIDログ230に基づいて作成され、RAIDログ230のエラー事象を時系列に並べた情報である。状態テーブル240は、RAIDログごとに日時、エラー事象、HDDごとにSeek Error RateおよびReallocation Event Countの項目を有する。状態テーブル240は、各項目に情報を設定することで、状態情報(例えば、状態情報600−1〜600−6)をレコードとして記憶する。
ここで、IDは、状態テーブルのレコードを識別する識別子を示す。日時は、RAIDログ230の日時を示す。エラー事象は、RAIDログ230のエラー事象を示す。Seek Error Rateは、当該レコードの日時におけるS.M.A.R.T.テーブル220のSeek Error Rateを示す。Reallocation Event Countは、当該レコードの日時におけるS.M.A.R.T.テーブル220のReallocation Event Countを示す。
図6の例では、レコード600−1は、RAIDログ230のレコード500−1に基づいて作成されたレコードである。Seek Error Rateは、6月5日2時54分39秒に、RAID装置のスロット0に搭載されたHDD0、スロット1に搭載されたHDD1、スロット2に搭載されたHDD2から収集された情報を示す。Reallocation Event Countについても、同様である。
(パターンテーブル250の記憶内容の一例)
図7は、パターンテーブル250の記憶内容の一例を示す説明図である。図7において、記憶処理装置101のパターンテーブル250は、例えば、記憶処理装置101によって作成、更新され、記憶処理装置101のメモリ302またはディスクに記憶される。
パターンテーブル250は、状態テーブル240に基づいて作成され、故障したと判断されたHDDの交換の要否を判断するための情報である。具体的には、状態テーブル240は、最初に故障したと判断されたHDDの故障時刻より後に記憶された状態テーブル240に基づいて作成される。パターンテーブル250は、HDDごとに、Reassign write operation failedまたはMechanical positioning error、Status Change to Failedの項目を有する。また、パターンテーブル250は、HDDごとに、Reallocation Event、Seek Errorの項目を有する。パターンテーブル250は、各項目に情報を設定することで、パターン情報(例えば、パターン情報700−1〜700−6)をレコードとして記憶する。
ここで、Reassign write operation failedまたはMechanical positioning errorは、HDDごとに、RAIDログ230のエラー事象にこれらのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。また、Status Change to Failedは、RAIDログ230のエラー事象にこのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。
また、Reallocation Eventは、HDDごとに、状態テーブル240のReallocation Event Countが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル240において、最初のレコードから最後のレコードまで、Reallocation Event Countが増加しているか否かで判断することができる。
Seek Errorは、状態テーブル240のSeek Error Rateが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル240において、最初のレコードから最後のレコードまで、Seek Error Rateが増加しているか否かで判断することができる。
ここで、Seek Errorは、Reallocation Event Countが増加しているHDDに対して、設定することができる。言い換えれば、Reallocation Event Countが増加していないHDDに対して、Seek Errorを設定しなくてもよい。これは、Reallocation Event Countが増加していないHDDのSeek Errorは、HDDの交換の要否を判断するために使用しないためである。
また、パターンテーブル250は、S.M.A.R.T.テーブル220とRAIDログ230に基づいて作成されることもできる。この場合、S.M.A.R.T.テーブル220に日時の情報がないため、記憶処理装置101は、Reallocation EventとSeek Errorの増加を判断できない。このため、Reallocation EventとSeek Errorには、「発生あり」または「発生なし」が設定される。例えば、記憶処理装置101は、S.M.A.R.T.テーブル220のReallocation Event Countが「0」の場合、「発生なし」を設定し、「0」以外の値の場合、「発生あり」を設定する。記憶処理装置101は、Seek Errorについても同様に設定する。
図7の例では、レコード700−1は、6月5日2時55分35秒に、HDD1でReassign write operation failedまたはMechanical positioning errorが発生したことを示す。また、HDD0およびHDD2で、Reallocation Event Countの増加がなく、HDD1でReallocation Event Countの増加があることを示す。また、HDD1でSeek Error Rateの増加があることを示す。
(記憶処理装置101の機能的構成例)
図8は、記憶処理装置101の機能的構成例を示すブロック図である。図8において記憶処理装置101は、入力部801と、特定部802と、判断部803と、表示部804と、を含む構成である。入力部801と、特定部802と、判断部803と、表示部804と、を含む制御部は、具体的には、例えば、図3に示したメモリ302などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302などの記憶装置に記憶される。
入力部801は、RAIDコントローラからRAIDログを読み込み、HDDからS.M.A.R.T.情報を読み込む機能を有する。例えば、入力部801は、RAIDコントローラがRAIDログを更新するごとにRAIDコントローラからRAIDログを読み込むことができる。また、入力部801は、読み込んだRAIDログをRAIDログ230に記憶する。この際、入力部801は、読み込んだRAIDログのエラー事象をRAIDログ230に記憶することもできる。
また、例えば、入力部801は、読み込んだS.M.A.R.T.情報をS.M.A.R.T.テーブル220に記憶する。また、入力部801は、読み込んだRAIDログにエラー事象が発生した場合、HDDからS.M.A.R.T.情報を読み込むことができる。この場合、入力部801は、読み込んだRAIDログとS.M.A.R.T.情報とから状態テーブル240のレコードを追加する。
また、記憶処理装置101は、RAIDログとS.M.A.R.T.情報をRAIDコントローラやHDDのDebug用インターフェースや、データの入出力インターフェースを利用して読み込むことができる。データの入出力インターフェースとして、RAIDコントローラの場合、PCI(Peripheral Component Interconnect) Express、PCI、USB(Universal Serial Bus)などがある。データの入出力インターフェースとして、HDDの場合、SAS、S−ATA、SCSI、IDE(Integrated Drive Electronics)などがある。
特定部802は、HDDが最初に故障した時刻を特定して、特定した時刻以降の状態テーブル240のレコードを特定する機能を有する。また、特定部802は、特定したレコードでパターンテーブル250を作成することもできる。
判断部803は、最初に故障したHDDの故障後に故障と判断されたHDDの交換の要否を判断する機能を有する。例えば、判断部803は、パターンテーブル250において、以下の条件をすべて満たす場合、Reallocation Eventが増加していないHDDの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部803は、Reassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されているHDDの交換を要と判断する。
・パターンテーブル250のReassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されている。
・Seek Error Rateが増加しているHDDはあり、Seek Error Rateが増加したHDDで、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されている。
・Reallocation Event Countが増加したHDDは1台である。
・Reallocation Event Countが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生している。
また、例えば、判断部803は、パターンテーブル250が、S.M.A.R.T.テーブル220とRAIDログ230に基づいて作成された場合、以下のように判断できる。例えば、判断部803は、パターンテーブル250において、以下の条件をすべて満たす場合、Reallocation Eventが発生していないHDDの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部803は、Reassign write operation failedまたはMechanical positioning errorの項目に「発生あり」が設定されているHDDの交換を要と判断する。
・パターンテーブル250のReassign write operation failedまたはMechanical positioning errorの項目に「発生あり」が設定されている。
・Seek Error Rateが発生しているHDDはあり、Seek Error Rateが発生したHDDで、パターンテーブル250のReallocation Eventの項目に「発生あり」が設定されている。
・Reallocation Event Countが発生したHDDは1台である。
・Reallocation Event Countが発生していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生している。
表示部804は、判断部803が判断した結果を表示する機能を有する。例えば、表示部804は、記憶処理装置101のディスプレイまたは記憶処理装置101と通信可能なサーバ260のディスプレイに結果を表示する。例えば、表示部804は、HDDを特定する識別子と、当該HDDの交換の要否を表示することができる。
(記憶処理装置101の情報収集処理手順の一例)
図9は、記憶処理装置101の情報収集処理手順の一例を示すフローチャートである。図9において、まず、記憶処理装置101は、RAIDコントローラからRAIDログを読み込む(ステップS901)。記憶処理装置101は、読み込んだRAIDログをRAIDログ230に記憶することもできる。次に、記憶処理装置101は、RAIDログにエラー事象が発生しているか否かを判断する(ステップS902)。
例えば、記憶処理装置101は、RAIDログに、Mechanical positioning error、Reassign write operation failedが記憶されている場合、エラー事象が発生していると判断する。また、例えば、記憶処理装置101は、RAIDログに、Status Change to Failedが記憶されている場合、エラー事象が発生していると判断する。
エラー事象が発生していない場合(ステップS902:No)、記憶処理装置101の処理は、ステップS901に戻る。エラー事象が発生している場合(ステップS902:Yes)、記憶処理装置101は、HDDからS.M.A.R.T.情報を読み込む(ステップS903)。例えば、記憶処理装置101は、RAIDを構成するすべてのHDDからSeek Error RateおよびReallocation Event Countを読み込む。記憶処理装置101は、読み込んだS.M.A.R.T.情報をS.M.A.R.T.情報テーブル220に記憶することもできる。
この後、記憶処理装置101は、状態テーブル240にレコードを追加する(ステップS904)。例えば、記憶処理装置101は、状態テーブル240の日時の項目に、ステップS901で読み込んだRAIDログの日時を設定する。また、例えば、記憶処理装置101は、状態テーブル240のエラー事象の項目に、ステップS901で読み込んだRAIDログのエラー事象とHDD搭載位置を設定する。
また、例えば、記憶処理装置101は、HDDごとに、状態テーブル240のSeek Error Rateの項目に、ステップS903で読み込んだS.M.A.R.T.情報のSeek Error Rateを設定する。例えば、記憶処理装置101は、HDDごとに、状態テーブル240のReallocation Event Countの項目に、ステップS903で読み込んだS.M.A.R.T.情報のReallocation Event Countを設定する。
その後、記憶処理装置101は、情報収集処理が終了するか否かを判断する(ステップS905)。例えば、記憶処理装置101は、記憶処理装置101が提供するサービスが終了して、電源をオフされる際に情報収集処理が終了すると判断する。
情報収集処理が終了しないと判断した場合(ステップS905:No)、記憶処理装置101の処理は、ステップS901に戻る。情報収集処理が終了すると判断した場合(ステップS905:Yes)、記憶処理装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置101は、故障したと判断されたHDDの交換の要否を判断するための情報を収集することができる。
(HDD状態判定処理手順の一例)
図10は、記憶処理装置101のHDD状態判定処理手順の一例を示すフローチャートである。図10において、まず、記憶処理装置101は、HDDが最初に故障した時刻を特定する(ステップS1001)。例えば、記憶処理装置101は、RAIDログ230にStatus Change to Failedが記憶された時刻を特定する。
図6の例では、記憶処理装置101は、HDD0〜2の中で最初に故障したHDD1の故障した時刻2時55分35秒を特定する。
この後、記憶処理装置101は、特定した時刻以降の状態テーブル240のレコードを特定して、パターンテーブル250を作成する(ステップS1002)。
図6の例では、記憶処理装置101は、特定した時刻2時55分35秒以降のレコード600−1〜600−6からパターンテーブル250を作成する。
この後、記憶処理装置101は、Reassign write operation failedまたはMechanical positioning errorが発生しているか否かを判断する(ステップS1003)。例えば、記憶処理装置101は、パターンテーブル250のReassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されているかで判断する。
図7の例では、HDD0〜HDD2にReassign write operation failedまたはMechanical positioning errorの項目に「発生」が設定されている。このため、記憶処理装置101は、Reassign write operation failedまたはMechanical positioning errorが発生していると判断する。
発生していないと判断した場合(ステップS1003:No)、記憶処理装置101の処理は、ステップS1009に移行する。発生していると判断した場合(ステップS1003:Yes)、記憶処理装置101は、Seek Errorが増加しているHDDはあるか否かを判断する(ステップS1004)。例えば、記憶処理装置101は、パターンテーブル250のSeek Errorの項目に「増加あり」が設定されているか否かで判断する。
図7の例では、HDD1のSeek Errorの項目に「増加あり」が設定されているため、記憶処理装置101は、Seek Errorが増加しているHDDはあると判断する。
Seek Errorが増加しているHDDはないと判断した場合(ステップS1004:No)、記憶処理装置101の処理は、ステップS1009に移行する。Seek Errorが増加しているHDDはあると判断した場合(ステップS1004:Yes)、記憶処理装置101は、Seek Errorが増加したHDDで、Reallocation Eventが増加しているHDDはあるか否かを判断する(ステップS1005)。例えば、記憶処理装置101は、Seek Errorが増加したHDDで、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されているか否かで判断する。
図7の例では、Seek Errorが増加しているHDD1で、Reallocation Eventの項目に「増加あり」が設定されているため、記憶処理装置101は、Reallocation Eventが増加しているHDDはあると判断する。
Reallocation Eventが増加しているHDDはないと判断した場合(ステップS1005:No)、記憶処理装置101の処理は、ステップS1009に移行する。Reallocation Eventが増加しているHDDはあると判断した場合(ステップS1005:Yes)、記憶処理装置101は、Reallocation Eventが増加したHDDは1台であるか否かを判断する(ステップS1006)。例えば、記憶処理装置101は、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されているHDDが1台であるか否かで判断する。
図7の例では、パターンテーブル250のReallocation Eventの項目に「増加あり」が設定されているHDDが1台あるため、記憶処理装置101は、Reallocation Eventが増加したHDDは1台であると判断する。
Reallocation Eventが増加したHDDは1台でないと判断した場合(ステップS1006:No)、記憶処理装置101の処理は、ステップS1009に移行する。Reallocation Eventが増加したHDDは1台であると判断した場合(ステップS1006:Yes)、記憶処理装置101は、さらに以下の判断を行う。記憶処理装置101は、Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生しているか否かを判断する(ステップS1007)。
図7の例では、Reallocation Eventが増加していないHDD0およびHDD2で、Reassign write operation failedまたはMechanical positioning errorが発生している。このため、記憶処理装置101は、Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生していると判断する。
Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生していると判断した場合(ステップS1007:Yes)、記憶処理装置101は、HDDの交換を不要と判断する(ステップS1008)。この後、記憶処理装置101の処理は、終了する。
図7の例では、記憶処理装置101は、HDD0とHDD2の交換を不要と判断する。HDD0とHDD2のエラーは、HDD1の故障による振動により、発生したものであるため、HDD1の振動が停止されると、HDD0とHDD2のエラーは無くなるためである。
Reallocation Eventが増加していないHDDで、Reassign write operation failedまたはMechanical positioning errorが発生していないと判断した場合(ステップS1007:No)、記憶処理装置101は、HDDの交換を要と判断する(ステップS1009)。この後、記憶処理装置101の処理は、終了する。
HDDに発生したエラーは、他のHDDの故障による振動により、発生したものでなく、他のHDDの振動を停止しても、HDDに発生したエラーは消えないため、記憶処理装置101は、HDDの交換を要と判断する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置101は、故障したと判断されたHDDの交換の要否を判断することができる。
以上説明したように、記憶処理装置101は、HDDが故障した後に、状態テーブル240を参照してHDDの故障時刻を特定する。この後、記憶処理装置101は、HDDの故障後に故障したと判断された他のHDDの状態テーブル240のうち、特定された故障時刻より後のレコードを特定する。この後、記憶処理装置101は、特定されたレコードに基づき、他のHDDの交換の要否を判断する。
これにより、記憶処理装置101は、HDDの故障の影響により記憶された状態テーブル240のレコードに基づき、他のHDDの交換の要否を判断できる。
また、記憶処理装置101は、状態テーブル240のレコードが、HDDの故障の影響により記憶されたものを含む場合、他のHDDの交換を不要と判断することができる。記憶処理装置101が、他のHDDの交換を不要と判断した場合、故障したHDDを取除き、故障したHDDの振動で故障と判定されていたHDDの故障状態を解除してオンラインにすることにより、RAID構成の復旧が可能となる。この場合、複数のHDDの故障によるデータロストを回避でき、長時間におよぶデータ復旧作業が不要となる。また、故障したHDDの振動により、故障と判断されたHDDは交換することがないため、交換部品の部品コストを抑えることが可能となる。
このように、記憶処理装置101は、HDDの故障の影響により、他のHDDが故障と判断された場合、他のHDDの交換をしなくてもよいと判断する。このため、記憶処理装置101は、正常なHDDを故障と判断することを防ぎ、HDDに記憶されるデータが消失することを防ぐことができる。
また、記憶処理装置101は、RAIDログ230にReassign write operation failedまたはMechanical positioning errorが記憶されることを判断する。さらに、記憶処理装置101は、HDDのS.M.A.R.T.情報のReallocation Eventの回数が0であることを判断する。この場合、記憶処理装置101は、HDDの交換を不要と判断できる。
これにより、記憶処理装置101は、HDDの交換の要否を判断する際に、HDDのS.M.A.R.T.情報を参照することで、HDDの交換の要否を判断できる。このため、記憶処理装置101は、S.M.A.R.T.情報を記憶処理装置101のメモリ301等に蓄積しなくてもよい。
また、記憶処理装置101は、状態テーブル240にReassign write operation failedまたはMechanical positioning errorが記憶されることを判断する。さらに、記憶処理装置101は、状態テーブル240のReallocation Eventの回数が増加していないと判断する。この場合、記憶処理装置101は、HDDの交換を不要と判断できる。
これにより、記憶処理装置101は、Reallocation Eventがすでに記憶されているHDDに対しても、HDDの交換の要否を判断できる。例えば、HDDは、使用すると正常の場合でもReallocation Eventが記憶されることもある。記憶処理装置101は、このようなHDDを使用したシステムにおいても、HDDの交換の要否を判断できる。
また、記憶処理装置101は、RAIDログ230と各HDDのS.M.A.R.T.テーブル220を解析するため、従来からあるハードウェアおよびソフトウェアに対し特別な変更を行うことなく、HDDの交換の要否を判断できる。また、記憶処理装置101が、故障したHDDの振動による障害であるか否かを、RAIDログ230と各HDDのS.M.A.R.T.テーブル220に従って判断するため、人的判断ミスがなくなる。
なお、本実施の形態で説明した記憶装置故障判定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本記憶装置故障判定プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本記憶装置故障判定プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、
前記第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する
制御部を有することを特徴とする記憶処理装置。
(付記2)前記制御部は、
特定された前記ログ情報が、前記第1記憶装置の故障の影響により記憶されたものを含む場合、前記第2記憶装置の交換を不要と判断することを特徴とする付記1に記載の記憶処理装置。
(付記3)前記第2ログ情報は、前記第2記憶装置が属するRAIDグループを制御するコントローラの前記第2記憶装置に関するログ情報を含み、
前記制御部は、
前記コントローラの前記第2記憶装置に関するログ情報のうち、特定された前記故障時刻より後のログ情報を特定する
ことを特徴とする付記2に記載の記憶処理装置。
(付記4)前記第2ログ情報は、前記第2記憶装置のエラー統計情報と、前記記憶処理装置が前記エラー統計情報を取得した日時とを対応付けて記憶するログ情報をさらに含み、
前記制御部は、
前記対応付けて記憶するログ情報のうち、特定された前記故障時刻より後のログ情報をさらに特定することを特徴とする付記3に記載の記憶処理装置。
(付記5)前記制御部は、
特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、前記第2記憶装置のエラー統計情報の交代セクタへの割り当て処理の回数が0の場合、前記第2記憶装置の交換を不要と判断することを特徴とする付記3に記載の記憶処理装置。
(付記6)前記制御部は、
特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、特定された前記ログ情報の交代セクタへの割り当て処理の回数が増加していない場合、前記第2記憶装置の交換を不要と判断することを特徴とする付記4に記載の記憶処理装置。
(付記7)第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、
前記第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する
処理をコンピュータに実行させることを特徴とする記憶装置故障判定プログラム。
(付記8)第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、
前記第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する
処理をコンピュータが実行することを特徴とする記憶装置故障判定方法。
(付記9)複数の記憶装置と、
前記複数の記憶装置のうちの第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、前記第1記憶装置の故障後に故障したと判断された、前記複数の記憶装置のうちの第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する制御部を有する記憶処理装置と、
を有することを特徴とする情報処理システム。
101 記憶処理装置
102 記憶装置
260 サーバ
801 入力部
802 特定部
803 判断部
804 表示部

Claims (9)

  1. 第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、
    前記第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
    特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する
    制御部を有することを特徴とする記憶処理装置。
  2. 前記制御部は、
    特定された前記ログ情報が、前記第1記憶装置の故障の影響により記憶されたものを含む場合、前記第2記憶装置の交換を不要と判断することを特徴とする請求項1に記載の記憶処理装置。
  3. 前記第2ログ情報は、前記第2記憶装置が属するRAIDグループを制御するコントローラの前記第2記憶装置に関するログ情報を含み、
    前記制御部は、
    前記コントローラの前記第2記憶装置に関するログ情報のうち、特定された前記故障時刻より後のログ情報を特定する
    ことを特徴とする請求項2に記載の記憶処理装置。
  4. 前記第2ログ情報は、前記第2記憶装置のエラー統計情報と、前記記憶処理装置が前記エラー統計情報を取得した日時とを対応付けて記憶するログ情報をさらに含み、
    前記制御部は、
    前記対応付けて記憶するログ情報のうち、特定された前記故障時刻より後のログ情報をさらに特定することを特徴とする請求項3に記載の記憶処理装置。
  5. 前記制御部は、
    特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、前記第2記憶装置のエラー統計情報の交代セクタへの割り当て処理の回数が0の場合、前記第2記憶装置の交換を不要と判断することを特徴とする請求項3に記載の記憶処理装置。
  6. 前記制御部は、
    特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、特定された前記ログ情報の交代セクタへの割り当て処理の回数が増加していない場合、前記第2記憶装置の交換を不要と判断することを特徴とする請求項4に記載の記憶処理装置。
  7. 第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、
    前記第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
    特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する
    処理をコンピュータに実行させることを特徴とする記憶装置故障判定プログラム。
  8. 第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、
    前記第1記憶装置の故障後に故障したと判断された第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
    特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する
    処理をコンピュータが実行することを特徴とする記憶装置故障判定方法。
  9. 複数の記憶装置と、
    前記複数の記憶装置のうちの第1記憶装置が故障した後に、前記第1記憶装置の第1ログ情報を参照して前記第1記憶装置の故障時刻を特定し、前記第1記憶装置の故障後に故障したと判断された、前記複数の記憶装置のうちの第2記憶装置の第2ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、特定された前記ログ情報に基づき、前記第2記憶装置の交換の要否を判断する制御部を有する記憶処理装置と、
    を有することを特徴とする情報処理システム。
JP2017521463A 2015-06-04 2015-06-04 記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システム Pending JPWO2016194212A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/066264 WO2016194212A1 (ja) 2015-06-04 2015-06-04 記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システム

Publications (1)

Publication Number Publication Date
JPWO2016194212A1 true JPWO2016194212A1 (ja) 2017-12-07

Family

ID=57441878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017521463A Pending JPWO2016194212A1 (ja) 2015-06-04 2015-06-04 記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システム

Country Status (2)

Country Link
JP (1) JPWO2016194212A1 (ja)
WO (1) WO2016194212A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250594A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd 装置診断方法および装置診断用モジュールならびに装置診断用モジュールを実装した装置
JP2009075817A (ja) * 2007-09-20 2009-04-09 Hitachi Ltd ログ解析方法、ログ格納装置及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067190A (ja) * 1999-08-30 2001-03-16 Alps Electric Co Ltd ディスクアレイ制御装置
JP2009116928A (ja) * 2007-11-02 2009-05-28 Fuji Xerox Co Ltd 記憶装置の診断装置および診断プログラムおよび画像処理装置
JP2010134025A (ja) * 2008-12-02 2010-06-17 Fuji Xerox Co Ltd 記憶装置及び画像形成装置
JP5505176B2 (ja) * 2010-08-03 2014-05-28 富士通株式会社 磁気ディスク装置、その性能評価方法及び性能評価プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250594A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd 装置診断方法および装置診断用モジュールならびに装置診断用モジュールを実装した装置
JP2009075817A (ja) * 2007-09-20 2009-04-09 Hitachi Ltd ログ解析方法、ログ格納装置及びプログラム

Also Published As

Publication number Publication date
WO2016194212A1 (ja) 2016-12-08

Similar Documents

Publication Publication Date Title
US7191283B2 (en) Grouping of storage media based on parameters associated with the storage media
US10572356B2 (en) Storing data in multi-region storage devices
US7536588B2 (en) Method for servicing storage devices in a bladed storage subsystem
US9070390B2 (en) Modified areal densities for degraded storage device read heads
US20100077252A1 (en) Systems and Methods for Detection, Isolation, and Recovery of Faults in a Fail-in-Place Storage Array
JP2004525433A (ja) ディスクドライブ用クリティカル事象ログ
JP6078984B2 (ja) 処理装置,処理方法,処理プログラム及び管理装置
JP2015052960A (ja) ストレージ制御装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム
US11237893B2 (en) Use of error correction-based metric for identifying poorly performing data storage devices
JP5488709B2 (ja) ストレージ制御装置における基準時間設定方法
JP2019036163A (ja) ストレージ制御装置、および制御プログラム
US8843781B1 (en) Managing drive error information in data storage systems
US20150286546A1 (en) Hard drive backup
US8341468B2 (en) Information apparatus
US11593204B2 (en) Fleet health management device classification framework
WO2016194212A1 (ja) 記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システム
JP2003263703A (ja) 磁気ディスク装置及びディスク制御装置
JP4605374B2 (ja) 記憶装置の試験方法及び装置
JP6957845B2 (ja) ストレージ制御装置及びストレージ装置
US10969969B2 (en) Use of recovery behavior for prognosticating and in-situ repair of data storage devices
WO2019054434A1 (ja) 故障予兆検出装置、故障予兆検出方法、及び、故障予兆検出プログラムが格納された記録媒体
US11621963B2 (en) Fleet health management corrective action communication exchange
EP3547139B1 (en) System and method of assessing and managing storage device degradation
JP5126389B2 (ja) 制御装置及び制御方法
US20170046718A1 (en) Warrantied component cost optimization

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180731