(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-03
(45)【発行日】2023-04-11
(54)【発明の名称】ストレージ装置およびデータ伝送路管理プログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20230404BHJP
G06F 11/20 20060101ALI20230404BHJP
G06F 11/22 20060101ALI20230404BHJP
G06F 13/14 20060101ALI20230404BHJP
【FI】
G06F3/06 305Z
G06F3/06 304B
G06F3/06 304R
G06F11/20
G06F11/20 607
G06F11/22
G06F13/14 310D
(21)【出願番号】P 2019120804
(22)【出願日】2019-06-28
【審査請求日】2022-03-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】久保 一雄
【審査官】岩田 玲彦
(56)【参考文献】
【文献】国際公開第2017/081748(WO,A1)
【文献】特表2009-540436(JP,A)
【文献】米国特許出願公開第2008/0028112(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 11/20
G06F 11/22
G06F 13/14
(57)【特許請求の範囲】
【請求項1】
データを記憶する不揮発性記憶装置と該不揮発性記憶装置へのアクセスを制御する冗長構成の2つの制御装置とを有するストレージ装置において、
前記制御装置は、
伝送路の障害の発生により自系から他系に経路が切り替わると、障害が発生した伝送路に対して、所定のパターンのデータを用いて異常であるか否かを判定する判定部と、
前記判定部によって異常であると判定された場合には、前記伝送路から伝送されるデータを補正するために用いられるパラメータを調整する調整部と、
を有することを特徴とするストレージ装置。
【請求項2】
前記判定部は、前記調整部によって調整されたパラメータにより補正されるデータを伝送する前記伝送路に対して、所定のパターンのデータを用いて異常であるか否かを判定し、
前記調整部は、前記判定部によって異常であると判定された場合には、前記判定部によって判定された判定回数が予め定められた回数より小さければ、前記伝送路に対する前記パラメータを再度調整し、前記判定部に判定処理を実行させる
ことを特徴とする請求項1に記載のストレージ装置。
【請求項3】
前記判定部は、前記伝送路に対して、アクセスするストレージのコントローラの種類に応じたパターンのデータを用いて異常であるか否かを判定する
ことを特徴とする請求項1に記載のストレージ装置。
【請求項4】
伝送路の障害の発生により自系から他系に経路が切り替わると、障害が発生した伝送路に対して、所定のパターンのデータを用いて異常であるか否かを判定し、
該判定する処理によって異常であると判定された場合には、前記伝送路から伝送されるデータを補正するために用いられるパラメータを調整する
処理をコンピュータに実行させることを特徴とするデータ伝送路管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置などに関する。
【背景技術】
【0002】
ストレージ装置は、冗長性を持たせるために、複数の伝送路を用意している。現用系の伝送路に障害が発生した場合には、待機系の伝送路に切り替えを行う技術が知られている(例えば、特許文献1,2参照)。
【0003】
一例では、ホストがパス(伝送路)を用いてストレージ装置と通信を行う場合に、パス(伝送路)上に障害が所定の閾値以上発生したとき、障害の検出されたパス(伝送路)から、他の正常なパス(伝送路)に切り替える技術が開示されている。
【0004】
別の例では、現用系のインタフェースに接続された通信経路の状態が正常でなくなった場合、待機系のインタフェースを新たな現用系のインタフェースとして設定することによって、速やかにユーザパケットの送受信を開始する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2006-107151号公報
【文献】特開2008-283608号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、ストレージ装置では、HDD(Hard Disk Drive)等のディスクドライブが信号補償回路を有するExpanderと接続される。信号補償回路は、信号伝送中に歪んだ電圧変化を読み取れるように信号を補正する。
【0007】
しかしながら、信号補償回路のパラメータは、伝送路に障害が発生した時と同じ値が保持された状態で運用されるため、再度、伝送路の切り替えが発生し、待機系から現用系に戻った場合、再び障害が発生する可能性がある。
【0008】
偶発に発生する障害である場合は、初期のパラメータであっても再発リスクは低い。ところが、経年劣化や設置環境の影響により伝送特性が変化している場合には、もはや初期のパラメータは、最適な補正値から外れている可能性が高く、再発リスクは高い。さらに、近年、通信速度の高速化が進み、最適な状態から外れた状態では、伝送路の障害が一層発生しやすいと想定される。
【0009】
1つの側面では、本発明は、運用を継続しながら、障害があった伝送路の品質改善を行うことを目的とする。
【課題を解決するための手段】
【0010】
本願の開示するストレージ装置は、1つの態様において、データを記憶する不揮発性記憶装置と該不揮発性記憶装置へのアクセスを制御する冗長構成の2つの制御装置とを有するストレージ装置において、前記制御装置は、伝送路の障害の発生により自系から他系に経路が切り替わると、障害が発生した伝送路に対して、所定のパターンのデータを用いて異常であるか否かを判定する判定部と、前記判定部によって異常であると判定された場合には、前記伝送路から伝送されるデータを補正するために用いられるパラメータを調整する調整部と、を有する。
【発明の効果】
【0011】
本願の開示するシステムの1つの態様によれば、運用を継続しながら、障害があった伝送路の品質改善を行うことができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例に係るRAID装置のハードウェア構成の一例を示す図である。
【
図2】
図2は、実施例に係るCMの機能構成の一例を示す図である。
【
図3】
図3は、実施例に係るマップ管理テーブルの一例を示す図である。
【
図4】
図4は、実施例に係る伝送路チューニング管理テーブルの一例を示す図である。
【
図7】
図7は、実施例に係るデータ伝送路管理処理のフローチャートの一例を示す図(1)である。
【
図8】
図8は、実施例に係るデータ伝送路管理処理のフローチャートの一例を示す図(2)である。
【発明を実施するための形態】
【0013】
以下に、本願の開示するストレージ装置およびデータ伝送路管理プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例では、ストレージ装置をRAID(Redundant Arrays of Inexpensive Drive)装置として説明する。実施例によりこの発明が限定されるものではない。
【実施例】
【0014】
[RAID装置のハードウェア構成]
図1は、実施例に係るRAID装置のハードウェア構成の一例を示す図である。RAID装置8は、Drive4と該Drive4へのアクセスを制御する冗長構成の2つのCM3とを有する。RAID装置8は、1つの系からDrive4への伝送路でエラーが発生した場合に、系が切り替わった伝送路に対して、所定のデータパターンを利用してエラーチェックを行い、エラーである場合にデータを補正するために用いられるパラメータを調整する。かかるRAID装置8が実施する処理を「データ伝送路管理処理」というものとする。
【0015】
図1に示すように、RAID装置8は、コントローラエンクロージャ(CE)1とドライブエンクロージャ(DE)2とを有する。コントローラエンクロージャ1は、Host9と接続される。Host9は、RAID装置8へのデータの書き込み及びRAID装置8からのデータの読出しを行う。コントローラエンクロージャ1は、CM(Controller Module)#0及びCM#1で表される2つのCM3と、Drive4とを有する筐体である。ドライブエンクロージャ(DE)2は、Drive4を搭載する筐体である。
【0016】
Drive4は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性記憶装置である。Drive4は、例えば、SAS(Serial Attached SCSI)によりCM3内の後述するEXP34と接続される。
【0017】
CM3は、RAID装置8を制御する制御装置である。CM#0とCM#1は冗長系を構成し、一方が現用系として動作し、他方が待機系として動作する。なお、実施例では、CM#0は、現用系であり、CM#1は、待機系であるとして説明する。
【0018】
CM3は、メモリ31と、プロセッサ32と、IO(Input Output)コントローラ33と、EXP(EXPander)34とを有する。
【0019】
プロセッサ32は、メモリ31が記憶するファームウェアを実行することでCM3を制御装置として動作させる。メモリ31は、プロセッサ32で実行されるファームウェアやファームウェアが使用するデータ等を記憶するRAM(Random Access Memory)である。プロセッサ32で実行されるファームウェアは、例えばフラッシュメモリから読み出されてメモリ31に格納される。あるいは、プロセッサ32で実行されるファームウェアは、コンピュータ読取可能媒体であるCD-Rから読み出されてメモリ31に格納されても良い。なお、ここでいうファームウェアの1つに、データ伝送路管理処理が含まれる。
【0020】
IOコントローラ33は、例えば、SASのコントローラである。EXP34は、SASによりCM3とDrive4とを接続する。EXP34には、信号補償回路が搭載される。信号補償回路は、信号(データ)の伝送中に歪んだ電圧変化を読み取れるように信号(データ)を補正する。例えば、データ伝送路管理処理は、現用系のCM3においてEXP34からDrive4への伝送路でエラーが発生した場合に、現用系から待機系に切り替わると、現用系側の伝送路に対して信号補償回路のパラメータを調整(チューニング)することで、信号(データ)を補正する。
【0021】
ドライブエンクロージャ2は、IOM(I/O Module)#0及びIOM#1で表されるIOM5を有する。IOM5は、CM3により指定されたDrive4へSASフレームを転送する。なお、RAID装置8は、より多くのドライブエンクロージャ2、あるいは、より少ないドライブエンクロージャ2を有しても良い。
【0022】
[CMの機能構成の一例]
次に、CM3の機能構成について説明する。
図2は、実施例に係るCMの機能構成の一例を示す図である。なお、2つのCM3は同様の機能構成を有するので、
図2では1つのCM3だけを示す。CM3の機能は、メモリ31に記憶されたファームウェアがプロセッサ32で実行されることにより実現される。なお、IOコントローラ33およびEXP34は、
図1で説明した通りであるので、その説明を省略する。
【0023】
メモリ31は、ステータス管理テーブル310、マップ管理テーブル311および伝送路チューニング管理テーブル312を記憶する。
【0024】
ステータス管理テーブル310は、Drive4に接続される伝送路でエラーが発生した場合に、データ伝送路管理処理中のRAID装置8の稼働状態を管理する。ステータス管理テーブル310では、例えば、伝送路がチューニング中である場合には、「経路チューニング中」が設定される。伝送路がチューニングされた結果、伝送路が正常になった場合には、「正常」が設定される。伝送路がチューニングしてもエラーであった場合には、「要注意」が設定される。なお、かかるRAID装置8の稼働状態の種類は、一例であって、これに限定されるものではない。
【0025】
マップ管理テーブル311は、Drive4のアクティブなポートにマッピングされた情報を管理する。マップ管理テーブル311は、障害検出部320によって更新される。なお、マップ管理テーブル311の一例は、後述する。
【0026】
図3は、実施例に係るマップ管理テーブルの一例を示す図である。
図3に示すように、マップ管理テーブル311は、DriveとActivePortとを対応付けて記憶する。Driveは、Drive4を識別するIDを示す。ActivePortは、アクティブなポートを識別する情報を示す。すなわち、伝送路でエラーが発生し、伝送路が切り替えられた場合に、切り替えられた先のポートが、新たなActivePortとなる。
【0027】
一例として、Driveが「0」である場合に、ActivePortとして「A」を記憶している。Driveが「1」である場合に、ActivePortとして「B」を記憶している。
【0028】
図2に戻って、伝送路チューニング管理テーブル312は、伝送路ごとに、データ伝送路管理処理で実行されるチューニングの状況を管理する。伝送路チューニング管理テーブル312は、計算部321によって更新される。なお、伝送路チューニング管理テーブル312の一例は、後述する。
【0029】
図4は、実施例に係る伝送路チューニング管理テーブルの一例を示す図である。
図4に示すように、伝送路チューニング管理テーブル312は、No、Slot、Port、Rxビット数、Rxエラー回数、反復回数、Txビット数、Txエラー回数および反復回数を対応付けて記憶する。Noは、項番を示す。Slotは、エラーがあった伝送路に接続するDrive4を格納するスロットの識別子を示す。Portは、スロットに格納されたDrive4のポートの識別子を示す。Rxビット数は、1回のチューニング処理において受信データのビット数が基準ビット数に達するまで複数回受信する際の受信データの総ビット数を示す。Rxエラー回数は、エラー発生回数を示す。反復回数は、受信の際のチューニング処理における反復した回数を示す。Txビット数は、1回のチューニング処理において送信データのビット数が基準ビット数に達するまで複数回送信する際の送信データの総ビット数を示す。Txエラー回数は、エラー発生回数を示す。反復回数は、送信の際のチューニング処理における反復した回数を示す。
【0030】
一例として、Noが「1」である場合に、Slotとして「0000」、Portとして「A」を記憶している。Rxビット数として「50000000」、Rxエラー回数として「1」、反復回数として「2」を記憶している。Txビット数として「0」、Txエラー回数として「0」、反復回数として「0」を記憶している。かかる場合は、Slot「0000」に格納されたDrive4のPort「A」に接続される伝送路に読出しエラーが発生した場合である。反復回数として「2」回目のチューニング処理で、受信データのビット数が基準ビット数に達するまで複数回データを受信した内の「1」回分エラーであったことを示す。
【0031】
別の例として、Noが「4」である場合に、Slotとして「0001」、Portとして「B」を記憶している。Rxビット数として「0」、Rxエラー回数として「0」、反復回数として「0」を記憶している。Txビット数として「300000」、Txエラー回数として「3」、反復回数として「1」を記憶している。かかる場合は、Slot「0001」に格納されたDrive4のPort「B」に接続される伝送路に書き込みエラーが発生した場合である。反復回数として「1」回目のチューニング処理で、送信データのビット数が基準ビット数に達するまで複数回データを送信した内の「3」回分エラーであったことを示す。
【0032】
図2に戻って、プロセッサ32は、障害検出部320、計算部321、判定部323および補正部324を有する。
【0033】
障害検出部320は、伝送路の障害を検出する。例えば、障害検出部320は、RAID装置8の稼働開始後、EXP34とDrive4間の伝送路で伝送障害を検出する。すると、障害検出部320は、Drive4に対して同一の経路でリトライ処理を実施する。障害検出部320は、リトライに失敗すると、経路を切り替える。すなわち、障害検出部320は、現用系から待機系へ経路を切り替える。一例として、障害検出部320は、マップ管理テーブル311のDrive4に対するActivePortを書き換えることで、経路を切り替える。そして、障害検出部320は、障害を検出した伝送路のチューニング処理を実施すべく、ステータス管理テーブル310のRAID装置8の稼働状態を「正常」から「経路チューニング中」に変更する。
【0034】
計算部321は、障害が検出された伝送路のチューニング処理において、当該伝送路のエラーレートを計算する。例えば、計算部321は、読み出しデータの転送中の障害の場合には、Rx経路のチューニング処理を実施し、書き込みデータの転送中の障害の場合には、Tx経路のチューニング処理を実施する。
【0035】
Rx経路のチューニング処理では、計算部321は、以下のように、障害が検出された伝送路のエラーレートを計算する。計算部321は、Drive4のエラーレート測定用領域にあらかじめ書き込まれたノイズパターンのデータを、障害が検出された伝送路から読み出す。このとき、計算部321は、所定ビット数のノイズパターンのデータを基準ビット数に達するまで繰り返し読み出し、読み出したデータがノイズパターンのデータと不一致であるエラー発生回数を計算する。そして、計算部321は、データ転送量およびエラー発生回数を、それぞれ伝送路チューニング管理テーブル312のRxビット数およびRxエラー回数に更新する。そして、計算部321は、基準ビット数に達するまで繰り返し読み出した繰り返し回数およびRxエラー回数を用いて、エラー発生回数の割合を計算し、計算した割合をエラーレートとする。
【0036】
Tx経路のチューニング処理では、計算部321は、以下のように、障害が検出された伝送路のエラーレートを計算する。計算部321は、エラーレート測定用領域にあらかじめ書き込まれたノイズパターンのデータを、障害が検出された伝送路に接続されたDrive4のエラーレート測定用ボリュームに書き込む。このとき、計算部321は、所定ビット数のノイズパターンのデータを基準ビット数に達するまで繰り返し書き込み、書き込んだデータがノイズパターンのデータと不一致であるエラー発生回数を計算する。そして、計算部321は、データ転送量およびエラー発生回数を、それぞれ伝送路チューニング管理テーブル312のTxビット数およびTxエラー回数に更新する。そして、計算部321は、基準ビット数に達するまで繰り返し書き込んだ繰り返し回数およびTxエラー回数を用いて、エラー発生回数の割合を計算し、計算した割合をエラーレートとする。
【0037】
なお、読み書きする基準ビット数は、例えば、1013ビット数であるが、一度に読み書きできるデータフレームの大きさに応じて変更することが可能である。また、ノイズパターンのデータは、Drive4のコントローラの種類に応じて異なるようにすることが望ましい。これは、以下の理由による。Drive4内のコントローラは、ベンダやモデルによって異なることが想定される。そうすると、受信特性の違いから、信号の送受信時にエラーを検出しやすいデータパターンが異なることが想定されるからである。そこで、RAID装置8は、あらかじめ、Drive4ごとに、ノイズパターンのデータをエラーレート測定用領域に保存する。保存は、RAID装置8の製造工場で実施されるが、出荷後変更することも可能である。
【0038】
判定部323は、エラーレートを判定する。
【0039】
例えば、判定部323は、エラーレートとあらかじめ定められた閾値とを比較する。判定部323は、エラーレートが閾値より小さい場合には、経路の切り替えを引き起こした伝送路の障害が「偶発エラー」であると判定する。そして、判定部323は、ステータス管理テーブル310のRAID装置8の稼働状態を「経路チューニング中」から「正常」に変更する。
【0040】
また、判定部323は、エラーレートが閾値以上である場合には、伝送路の経年劣化等による伝送特性の変化が疑われると判定する。そして、判定部323は、反復回数が最大反復回数に到達していなければ、障害が検出された伝送路に関わる信号補償回路のパラメータを補正部324に補正させる。そして、判定部323は、反復回数が最大反復回数に到達していれば、障害が検出された伝送路の劣化状態と判定する。そして、判定部323は、ステータス管理テーブル310のRAID装置8の稼働状態を「経路チューニング中」から「要注意」に変更する。
【0041】
補正部324は、伝送路に関わる信号補償回路のパラメータを補正する。例えば、補正部324は、OOB(Out Of Band)信号を送出して、Phy Resetシーケンスを実施する。すなわち、判定部323は、障害が検出された伝送路と接続されるEXP34の信号補償回路のパラメータを調整(チューニング)する。そして、補正部324は、計算部321にチューニング処理を反復させる。これにより、補正部324は、障害が検出された伝送路が経年劣化等により伝送特性が変化している場合であっても、運用中に、当該伝送路の品質改善を行うことが可能となる。
【0042】
[スロットおよびポートの一例]
ここで、Drive4を格納するスロットの一例およびDrive4のポートの一例を、
図5および
図6に示す。
図5は、スロットの一例を示す図である。
図6は、ポートの一例を示す図である。なお、
図5で示すドライブは、
図1で示すDrive4に対応する。
【0043】
図5に示すように、1つのスロットには、1つのドライブが格納される。個々のスロットには、それぞれ識別子が割り当てられている。
【0044】
図6に示すように、ドライブには、インタフェースコネクタが搭載される。インタフェースコネクタは、CM3とドライブを接続するためのインタフェースである。インタフェースコネクタに、ポートが存在する。個々のポートには、それぞれ識別子がマッピングされている。
【0045】
[データ伝送路管理処理のフローチャート]
図7および
図8は、実施例に係るデータ伝送路管理処理のフローチャートの一例を示す図である。なお、現用系のプロセッサ32は、Host9からDrive4へのデータの読出し要求またはデータの書き込み要求を受け付け、IOコントローラ33に対して受け付けた要求を出力したとする。
【0046】
図7に示すように、障害検出部320は、EXP34とDrive4との間の伝送路の障害を検出する(ステップS11)。すると、障害検出部320は、同一経路でリトライを実施する(ステップS12)。障害検出部320は、リトライが成功するか否かを判定する(ステップS13)。
【0047】
リトライが成功したと判定した場合には(ステップS13;Yes)、障害検出部320は、同一経路を優先経路に維持し、稼働を継続する(ステップS14)。そして、障害検出部320は、データ伝送路管理処理を終了する。
【0048】
一方、リトライが失敗したと判定した場合には(ステップS13;No)、障害検出部320は、待機経路からリトライを実施する(ステップS15)。そして、障害検出部320は、リトライが成功するか否かを判定する(ステップS16)。
【0049】
リトライが失敗したと判定した場合には(ステップS16;No)、障害検出部320は、対象のディスクドライブ(Drive4)の切り離し処理を実施する(ステップS17)。そして、障害検出部320は、データ伝送路管理処理を終了する。
【0050】
一方、リトライが成功したと判定した場合には(ステップS16;Yes)、障害検出部320は、優先経路を切り替える。すなわち、障害検出部320は、現用系の経路を待機系の経路に変更する(ステップS18)。そして、障害検出部320は、引き続き、チューニング処理を実施すべく、ステップS21に移行する。
【0051】
図8に示すように、ステップS21において、障害検出部320は、ステータス管理テーブル310のRAID装置8の稼働状態を「正常」から「経路チューニング中」に変更する(ステップS21)。そして、計算部321は、伝送路の障害がRead(読出し)であるか、または、Write(書き込み)であるか否かを判定する(ステップS22)。
【0052】
Read(読出し)であると判定した場合には(ステップS22;Read)、計算部321は、障害を検出した伝送路である元経路でエラーレート測定用ボリュームからノイズデータパターンをリードする(ステップS23)。計算部321は、リードした結果、伝送路チューニング管理テーブル312のデータ転送量(Rxビット数)、伝送路のエラー発生回数(Rxエラー回数)を更新する(ステップS24)。
【0053】
計算部321は、データ転送量が基準値に達したか否かを判定する(ステップS25)。データ転送量が基準値に達していないと判定した場合には(ステップS25;No)、計算部321は、次のリードをすべく、ステップS23に移行する。
【0054】
一方、データ転送量が基準値に達したと判定した場合には(ステップS25;Yes)、計算部321は、エラーレートを計算する(ステップS26)。例えば、計算部321は、伝送路チューニング管理テーブル312を用いて、エラー発生回数(Rxエラー回数)を基準ビット数に達するまで繰り返しリードした繰り返し回数で割った割合をエラーレートとして計算する。
【0055】
判定部322は、エラーレートが閾値よりも低い値か否かを判定する(ステップS27)。エラーレートが閾値よりも低い値であると判定した場合には(ステップS27;Yes)、判定部322は、「偶発エラー」であると判定し、ステップS35に移行する。
【0056】
一方、エラーレートが閾値よりも低い値でないと判定した場合には(ステップS27;No)、判定部322は、チューニング処理を反復すべく、以下の処理を行う。判定部322は、伝送路チューニング管理テーブル312の当該経路のカウンタ(Rxエラー回数)をクリアし、反復カウンタ値(反復回数)を1だけ加算する(ステップS29)。
【0057】
そして、判定部322は、反復カウンタ値(反復回数)が最大反復回数に到達したか否かを判定する(ステップS30)。反復カウンタ値(反復回数)が最大反復回数に到達していないと判定した場合には(ステップS30;No)、補正部324は、OOB信号を送出して、Phy Resetを実行する(ステップS31,S32)。そして、補正部324は、次回のチューニング処理を反復すべく、ステップS23に移行する。
【0058】
一方、反復カウンタ値(反復回数)が最大反復回数に到達したと判定した場合には(ステップS30;Yes)、判定部322は、反復カウンタ値(反復回数)をクリアする(ステップS33)。そして、判定部323は、ステータス管理テーブル310のRAID装置8の稼働状態を「経路チューニング中」から「要注意」に変更する(ステップS34)。すなわち、判定部323は、障害が検出された伝送路の劣化状態と判定する。そして、判定部323は、チューニング処理を終了すべく、ステップS47に移行する。
【0059】
ステップS22において、Write(書き込み)であると判定した場合には(ステップS22;Write)、計算部321は、障害を検出した伝送路である元経路でエラーレート測定用ボリュームへノイズデータパターンをライトする(ステップS36)。計算部321は、ライトした結果、伝送路チューニング管理テーブル312のデータ転送量(Txビット数)、伝送路のエラー発生回数(Txエラー回数)を更新する(ステップS37)。
【0060】
計算部321は、データ転送量が基準値に達したか否かを判定する(ステップS38)。データ転送量が基準値に達していないと判定した場合には(ステップS38;No)、計算部321は、次のライトをすべく、ステップS36に移行する。
【0061】
一方、データ転送量が基準値に達したと判定した場合には(ステップS38;Yes)、計算部321は、エラーレートを計算する(ステップS39)。例えば、計算部321は、伝送路チューニング管理テーブル312を用いて、エラー発生回数(Txエラー回数)を基準ビット数に達するまで繰り返しライトした繰り返し回数で割った割合をエラーレートとして計算する。
【0062】
判定部322は、エラーレートが閾値よりも低い値か否かを判定する(ステップS40)。エラーレートが閾値よりも低い値であると判定した場合には(ステップS40;Yes)、判定部322は、「偶発エラー」であると判定し、ステップS35に移行する。
【0063】
ステップS35において、判定部323は、ステータス管理テーブル310のRAID装置8の稼働状態を「経路チューニング中」から「正常」に変更する(ステップS35)。そして、判定部323は、チューニング処理を終了すべく、ステップS47に移行する。
【0064】
一方、エラーレートが閾値よりも低い値でないと判定した場合には(ステップS40;No)、判定部322は、チューニング処理を反復すべく、以下の処理を行う。判定部322は、伝送路チューニング管理テーブル312の当該経路のカウンタ(Txエラー回数)をクリアし、反復カウンタ値(反復回数)を1だけ加算する(ステップS41)。
【0065】
そして、判定部322は、反復カウンタ値(反復回数)が最大反復回数に到達したか否かを判定する(ステップS42)。反復カウンタ値(反復回数)が最大反復回数に到達していないと判定した場合には(ステップS42;No)、補正部324は、OOB信号を送出し、Phy Resetを実行する(ステップS43,S44)。そして、補正部324は、次回のチューニング処理を反復すべく、ステップS36に移行する。
【0066】
一方、反復カウンタ値(反復回数)が最大反復回数に到達したと判定した場合には(ステップS42;Yes)、判定部322は、反復カウンタ値(反復回数)をクリアする(ステップS45)。そして、判定部323は、ステータス管理テーブル310のRAID装置8の稼働状態を「経路チューニング中」から「要注意」に変更する(ステップS46)。すなわち、判定部323は、障害が検出された伝送路を劣化状態と判定する。そして、判定部323は、チューニング処理を終了すべく、ステップS47に移行する。
【0067】
ステップS47において、判定部323は、チューニング処理を終了する(ステップS47)。そして、障害検出部320は、データ伝送路管理処理を終了する。
【0068】
[実施例の効果]
上記実施例によれば、RAID装置8は、データを記憶するDrive4と該Drive4へのアクセスを制御する冗長構成のCM3とを有する。CM3は、伝送路の障害の発生により自系から他系に経路が切り替わると、障害が発生した伝送路に対して、所定のノイズパターンのデータを用いて異常であるか否かを判定する。CM3は、異常であると判定された場合には、伝送路から伝送されるデータを補正するために用いられるパラメータを調整する。かかる構成によれば、RAID装置8は、運用を継続しながら、障害が発生した伝送路の品質の改善を行うことができる。
【0069】
また、上記実施例によれば、CM3は、調整されたパラメータにより補正されるデータを伝送する伝送路に対して、所定のノイズパターンのデータを用いて異常であるか否かを判定する。CM3は、異常であると判定された場合には、判定された判定回数が予め定められた回数より小さければ、伝送路に対するパラメータを再度調整し、判定処理を実行する。かかる構成によれば、RAID装置8は、判定回数が予め定められた回数になるまで、伝送路に対するパラメータを調整することができることで、運用を継続しながら、障害が発生した伝送路の品質の改善を確実に行うことが可能になる。また、RAID装置8は、伝送路が経年劣化や設置環境の影響等により伝送特性が変化している場合であっても、運用を継続しながら、該伝送路の品質改善を行うことが可能となる。
【0070】
また、上記実施例によれば、CM3は、伝送路に対して、アクセスするDrive4のコントローラの種類に応じたノイズパターンのデータを用いて異常であるか否かを判定する。かかる構成によれば、RAID装置8は、異常であるか否かの判定に、Drive4のコントローラの種類に応じたデータを用いることで、Drive4のコントローラの種類によって違いがある送受信特性を考慮した判定処理を行うことができる。
【0071】
[その他]
なお、実施例では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、計算部321と判定部323と補正部324とを1個の部として統合しても良い。一方、計算部321を、Rx経路のチューニングの計算処理と、Tx経路のチューニングの計算処理とに分散しても良い。また、メモリ31に記憶された各種テーブルをCM3の外部装置としてネットワーク経由で接続するようにしても良い。
【0072】
また、実施例では、CM3が有する機能をソフトウェアによって実現することで、同様の機能を有する、例えばデータ伝送路管理プログラムを得ることができる。例えば、メモリ31は、データ伝送路管理プログラムやプログラムの実行途中結果などを記憶する。プロセッサ32は、メモリ31からデータ伝送路管理プログラムを読み出して実行する。
【0073】
また、データ伝送路管理プログラムについては、必ずしも最初からメモリ31に記憶させておかなくても良い。例えば、CM3に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)ディスク、光磁気ディスク、IC(Integrated Circuit)カード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、CM3がこれらからデータ伝送路管理プログラムを読み出して実行するようにしても良い。
【符号の説明】
【0074】
1 コントローラエンクロージャ
2 ドライブエンクロージャ
3 CM
31 メモリ
310 ステータス管理テーブル
311 マップ管理テーブル
312 伝送路チューニング管理テーブル
32 プロセッサ
320 障害検出部
321 計算部
322 判定部
323 補正部
33 IOコントローラ
34 EXP
4 Drive
5 IOM
8 RAID装置
9 Host