[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6390281B2 - 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム - Google Patents

情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム Download PDF

Info

Publication number
JP6390281B2
JP6390281B2 JP2014180644A JP2014180644A JP6390281B2 JP 6390281 B2 JP6390281 B2 JP 6390281B2 JP 2014180644 A JP2014180644 A JP 2014180644A JP 2014180644 A JP2014180644 A JP 2014180644A JP 6390281 B2 JP6390281 B2 JP 6390281B2
Authority
JP
Japan
Prior art keywords
error
response
path
input
server
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.)
Expired - Fee Related
Application number
JP2014180644A
Other languages
English (en)
Other versions
JP2016053927A (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 JP2014180644A priority Critical patent/JP6390281B2/ja
Priority to US14/789,169 priority patent/US20160073315A1/en
Publication of JP2016053927A publication Critical patent/JP2016053927A/ja
Application granted granted Critical
Publication of JP6390281B2 publication Critical patent/JP6390281B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、ストレージ制御装置、情報処理プログラムおよびストレージ制御プログラムに関する。
情報処理システムでは、業務を停止させないため、冗長化の機構を導入している。例えば、情報処理システムは、複数のファイバチャネルケーブル等を用いることで、サーバとストレージ装置間を複数のパスで接続する。この場合、情報処理システムは、あるパスに問題が発生した場合でも、他のパスに切り替えて業務を継続することが可能である。
関連する先行技術としては、例えば、ホストがストレージ装置と通信を行う場合において、パスP1上の障害が所定の閾値以上発生したとき、パスP1(切換元パス)から、他の正常なパスP2(切換先パス)に切り換える技術がある。
特開2006−107151号公報
しかしながら、従来技術では、エラーに応じた適切な処理を行うことができない場合がある。例えば、パス上の障害が所定の回数以上発生した場合でも、エラーによっては、パスを切り替えることなく、同じパスでリトライを行った方がよい場合がある。このように、エラーに応じた適切な処理を行うことができない場合がある。
一つの側面では、本発明は、エラーに応じた適切な処理を行うことを可能にする情報処理装置、ストレージ制御装置、情報処理プログラムおよびストレージ制御プログラムを提供することを目的とする。
本発明の一側面によれば、エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、エラー種別に対応したタイマ値とを関連付けて記憶し、複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答をストレージ制御装置から受け付けたことに応じて、入出力要求を発行してからエラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、入出力に用いるパスを切り替える情報処理装置および情報処理プログラムが提案される。
また、本発明の一側面によれば、エラー種別と、エラー種別に対応したタイムアウト時間とを関連付けて記憶し、自装置に接続される複数のパスのうち入出力に用いるパスの切り替えを、入出力要求を発行してからエラー応答を受け付けるまでの応答時間に基づいて行う情報処理装置からの入出力要求に対するエラーを検出したことに応じて、入出力要求を受け付けてからエラーのエラー種別と関連付けられたタイムアウト時間が経過した時に、情報処理装置にエラー応答をするストレージ制御装置およびストレージ制御プログラムが提案される。
本発明の一態様によれば、エラーに応じた適切な処理を行うことを可能にするという効果を奏する。
図1は、実施の形態にかかる情報処理システム100の一実施例を示す説明図である。 図2は、実施の形態にかかる情報処理システム100のシステム構成例を示す説明図である。 図3は、実施の形態にかかるサーバ101のハードウェア構成例を示すブロック図である。 図4は、実施の形態にかかるストレージ制御装置102のハードウェア構成例を示すブロック図である。 図5は、タイムアウト管理テーブル501の記憶内容の一例を示す説明図である。 図6は、エラーハンドリング管理テーブル601の記憶内容の一例を示す説明図である。 図7は、LUNエラーカウンタテーブル701の記憶内容の一例を示す説明図である。 図8は、パスエラーカウンタテーブル801の記憶内容の一例を示す説明図である。 図9は、実施の形態にかかるサーバ101の機能的構成例を示すブロック図である。 図10は、実施の形態にかかるストレージ制御装置102の機能的構成例を示すブロック図である。 図11は、実施の形態にかかるタイムアウト管理テーブル501登録動作の一例を示すシーケンス図である。 図12は、実施の形態にかかるエラーハンドリング処理動作の一例を示すシーケンス図である。 図13は、実施の形態にかかるサーバ101のエラーハンドリング管理テーブル601作成処理手順の一例を示すフローチャートである。 図14は、実施の形態にかかるストレージ制御装置102のタイムアウト管理テーブル501更新処理手順の一例を示すフローチャートである。 図15は、実施の形態にかかるサーバ101のエラーハンドリング処理手順の一例を示すフローチャートである。 図16は、実施の形態にかかるサーバ101のエラーカウンタテーブル更新処理手順の一例を示すフローチャートである。 図17は、実施の形態にかかるストレージ制御装置102のエラーハンドリング処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる情報処理装置、ストレージ制御装置、情報処理プログラムおよびストレージ制御プログラムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる情報処理システム100の一実施例を示す説明図である。図1において、情報処理システム100は、情報処理装置101と、ストレージ制御装置102と、記憶装置103と、を含む。
情報処理装置101は、ストレージ制御装置102に入出力要求を行うサーバ等のコンピュータである。入出力要求とは、記憶装置103上にデータを書き込む要求、または、記憶装置103上のデータを読み出す要求である。
情報処理装置101は、ストレージ制御装置102と複数のケーブルで接続される。ケーブルには、ファイバチャネルケーブル、イーサネット(登録商標)、SAS(Serial Attached SCSI(Small Computer System Interface))ケーブル等がある。
情報処理装置101は、複数のケーブルを用いることで、ストレージ制御装置102間と複数のパス(図1の例では、パス111とパス112)で接続される。パスとは、情報処理装置101からストレージ制御装置102まで入出力要求とその応答が通る経路のことである。情報処理システム100は、一方のパスに問題が発生した場合でも、他のパスに切り替えて業務を継続することが可能である。
ストレージ制御装置102は、記憶装置103にアクセス可能なコンピュータである。ストレージ制御装置102は、情報処理装置101から記憶装置103に対する入出力要求を受け付け、記憶装置103が保持するデータで入出力要求に応答する。
記憶装置103は、情報処理装置101が使用するデータを記憶する。記憶装置103は、物理ボリュームであってもよく、また、論理ボリュームであってもよい。物理ボリュームは、1つのハードディスクに対応するものであってもよく、また、ハードディスク内のパーティションに対応するものであってもよい。論理ボリュームは、物理ボリュームを集約したボリューム・グループを論理的に区分化したものである。論理ボリュームを識別するための識別子として、LUN(Logical Unit Number)を用いることができる。
従来、サーバとストレージ装置間を複数のパスで接続する情報処理システムでは、パスの切り替えを実現するため、OS(Operating System)にマルチパスドライバを実装していた。マルチパスドライバは、OSのディスクドライバとHBA(Host Bus Adapter)アダプタドライバとの間のレイヤに実装されていた。この構成では、マルチパスドライバは、発生したエラーの詳細な種別をHBAドライバから取得できるため、エラーの詳細な種別を元にパスを切り替えるか否か、同じパスでリトライするか否か等を決定していた。
一方、近年リリースされているOSは、パスの切り替えを実現するマルチパス機構が標準で組み込まれるようになってきた。しかし、OS標準のマルチパス機能ではきめ細やかなエラー処理は実現できていないため、ストレージベンダーは、きめ細やかなエラー処理を実現するマルチパスドライバを提供してきた。ここで、マルチパス機能を実現するOS標準のマルチパスドライバは、ディスクドライバの上に実装された。このため、OS標準のマルチパス機能を置き換えるストレージベンダーのマルチパスドライバも、ディスクドライバの上に実装される。
しかしながら、この実装では、マルチパスドライバは、発生した詳細なエラー種別(エラーセンスコード、SCSIデバイスステータス、HBA検出エラーなど)をHBAドライバから受け取ることができない。マルチパスドライバはディスクドライバからエラー情報を受け取るが、それはEIO(Error Input Output)というエラーを示すステータスであり、詳細なエラー種別はわからない。マルチパスドライバから見てエラー種別はEIOという1つだけなので、どんなエラーが発生しても必ず同じエラーハンドリングを行うことになる。すなわち、マルチパスドライバは、エラーに応じた適切な処理を行うことができない。
そこで、実施の形態では、情報処理装置101は、情報処理装置101と複数のパスで接続され、エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置102からのエラーの応答時間に応じて、パス切替えを行うか否かを判断する。このため、情報処理装置101は、エラーに応じた適切な処理を行うことができる。
以下、実施の形態にかかる情報処理システム100の一実施例について説明する。以下では、情報処理装置101の一例として、サーバ101を用いて説明する。
(1)サーバ101は、複数のパスのいずれかのパスを介してストレージ制御装置102に対して入出力要求を発行する。ここで、サーバ101は、複数のパスのなかからランダムに選択したパスを介して入出力要求を発行することができる。また、サーバ101は、複数のパスのそれぞれについてエラーカウンタ値を記憶し、エラーカウンタ値が小さいパスを介して入出力要求を発行することができる。
図1の例では、サーバ101は、パス111を介してストレージ制御装置102に対して入出力要求を発行する。
(2)ストレージ制御装置102は、サーバ101からの入出力要求でエラーを検出し、検出したエラーのエラー種別を特定する。エラー種別とは、ストレージ制御装置102がサーバ101から受け付けた入出力要求に対して発生するストレージ制御装置102のエラーを、エラーの種類によって類別したものである。例えば、いずれかの論理ボリューム上で発生したエラーは、LUN故障のエラー種別に類別され、いずれかのパス上で発生したエラーは、パス故障のエラー種別に類別される。
図1の例では、サーバ101からの入出力要求がデータの読み出し要求である。ストレージ制御装置102は、論理ボリュームからデータの読み出しを行うが、論理ボリュームのエラーを検出する。ストレージ制御装置102は、このエラーのエラー種別として、LUN故障を特定する。
(3)ストレージ制御装置102は、エラー種別とタイムアウト時間とを関連付けた情報122から、エラー種別に対応したタイムアウト時間を取得し、入出力要求を受け付けてから、取得したタイムアウト時間が経過するまで待ち合わせる。タイムアウト時間は、エラー種別に属するエラーが発生した際にストレージ制御装置102がエラー応答するまでの時間である。タイムアウト時間は、エラー種別に対応して事前に設定される。単位は、例えば秒である。
図1の例では、ストレージ制御装置102は、エラー種別がLUN故障であるため、情報122からタイムアウト時間3秒を取得する。ストレージ制御装置102は、入出力要求を受け付けてから3秒経過するまで待ち合わせる。
(4)ストレージ制御装置102は、サーバ101に入出力要求に対するエラー応答を行う。エラー応答とは、サーバ101からの入出力要求が正常に終了しなかったことを示す応答である。
図1の例では、ストレージ制御装置102は、サーバ101からの入出力要求から3秒経過後、サーバ101に入出力要求に対するエラー応答を行う。
(5)サーバ101は、ストレージ制御装置102からのエラー応答の応答時間を算出し、パス切替情報とエラー種別に対応したタイマ値とを関連付けて記憶する情報121を参照し、算出した応答時間に対応するパス切替情報を取得する。応答時間とは、サーバ101がストレージ制御装置102に入出力要求を発行してからストレージ制御装置102からエラー応答を受け付けるまでの時間である。タイマ値とは、エラー種別に対応して事前に設定された時間であり、情報122のエラー種別に関連したタイムアウト時間と同じ時間が設定される。単位は、例えば秒である。
図1の例では、サーバ101は、ストレージ制御装置102に入出力要求を発行してからストレージ制御装置102からエラー応答を受け付けるまでの時間として、3秒を算出する。サーバ101は、情報121を参照し、3秒に対応するパス切替情報を取得する。
(6)サーバ101は、取得したパス切替情報に基づき、パスの切り替えを行う。パスの切り替えとは、エラー応答があった入出力で用いたパスとは異なるパスを用いて入出力を行うことである。
図1の例では、サーバ101は、取得したパス切替情報が「あり」を示すため、パスの切り替えを行う。サーバ101は、エラー応答があった入出力で用いたパス111とは異なるパス112を用いて入出力を行う。
以上説明したように、サーバ101は、エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置102と複数のパスで接続される。サーバ101は、入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、エラー種別に対応したタイマ値とを関連付けて記憶する。サーバ101は、複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答をストレージ制御装置102から受け付けたことに応じて、応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、入出力に用いるパスを切り替える。
これにより、サーバ101は、エラー種別に対応した、パスの切り替えを行うか否かを示すパス切替情報を取得できる。このため、サーバ101は、エラーに応じた適切な処理を行うことができる。
また、上記で説明したサーバ101の処理は、ストレージベンダーのマルチパスドライバで行うことができる。この場合、OS標準のマルチパスドライバを、ストレージベンダーのマルチパスドライバで置き換えることにより、上記で説明したサーバ101の処理が実現できる。
また、サーバ101はエラー応答の応答時間を算出するが、算出した応答時間には、ストレージ制御装置102からサーバ101までの通信時間も含まれる。このため、算出した応答時間は、情報121のタイマ値と一致しない場合がある。この場合、サーバ101は、算出した応答時間より短くて最も近いタイマ値に対応するパス切替情報を取得することができる。
(情報処理システム100のシステム構成例)
図2は、実施の形態にかかる情報処理システム100のシステム構成例を示す説明図である。図2において、情報処理システム100は、サーバ101と、ストレージ制御装置102と、記憶装置103と、を含む。サーバ101はストレージ制御装置102と複数のケーブルで接続される。
サーバ101は、ストレージ制御装置102にアクセスするコンピュータである。ストレージ制御装置102は、記憶装置103を制御する装置である。記憶装置103は、データを記憶する装置である。例えば、ハードディスク装置またはディスクアレイ装置等の記憶装置である。
(サーバ101のハードウェア構成例)
図3は、実施の形態にかかるサーバ101のハードウェア構成例を示すブロック図である。図3において、サーバ101は、CPU301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、サーバ101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMは記憶部としてCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワーク200に接続され、ネットワーク200を介して他のコンピュータ、ストレージ制御装置102に接続される。そして、I/F303は、ネットワーク200と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、サーバ101は、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、マウス、プリンタ、ディスプレイなどを有することにしてもよい。
(ストレージ制御装置102のハードウェア構成例)
図4は、実施の形態にかかるストレージ制御装置102のハードウェア構成例を示すブロック図である。図4において、ストレージ制御装置102は、CPU401と、メモリ402と、I/F403とを有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、ストレージ制御装置102の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMは記憶部としてCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。I/F403は、サーバ101および記憶装置103と接続する装置である。
(タイムアウト管理テーブル501の一例)
図5は、タイムアウト管理テーブル501の記憶内容の一例を示す説明図である。図5において、ストレージ制御装置102のタイムアウト管理テーブル501は、例えば、ストレージ制御装置102によって作成、更新され、ストレージ制御装置102のメモリ402に記憶される。
タイムアウト管理テーブル501は、エラー種別およびタイムアウト時間の項目を有する。タイムアウト管理テーブル501は、各項目に情報を設定することで、タイムアウト管理情報(例えば、タイムアウト管理情報501−1〜501−7)をレコードとして記憶する。
ここで、エラー種別は、ストレージ制御装置102がサーバ101から受け付けた入出力要求に対して発生するストレージ制御装置102のエラーを、エラーの種類によって類別したものである。例えば、エラー種別には、「故障通知」、「起動中」、「LUN故障」、「パス故障」、「装置起動中」、「高負荷」、「コマンド異常」等がある。
タイムアウト時間は、エラー種別に属するエラーが発生した際に、ストレージ制御装置102がエラー応答するまでに待ち合わせる時間である。単位は、例えば、秒である。具体的には、タイムアウト時間は、ストレージ制御装置102がサーバ101から入出力要求を受け付けた時間から、サーバ101に入出力要求の応答をするまでの時間である。
例えば、タイムアウト時間の初期設定値は、40秒である。この初期設定値は、サーバ101がエラー種別ごとに決定したタイマ値に基づいて変更される。
図5の例では、レコード501−1は、エラー種別が「故障通知」に属するエラーが発生した際に、ストレージ制御装置102はサーバ101から入出力要求を受け付けた時間から、40秒経過した時に、サーバ101にエラーの応答を行うことを示す。
(エラーハンドリング管理テーブル601の一例)
図6は、エラーハンドリング管理テーブル601の記憶内容の一例を示す説明図である。図6において、サーバ101のエラーハンドリング管理テーブル601は、例えば、サーバ101によって作成、更新され、サーバ101のメモリ302またはディスク305に記憶される。
エラーハンドリング管理テーブル601は、グループ種別、エラー種別、タイマ値、同パスリトライ(最大実施回数)、切り替え、エラーカウンタ加算値(LUN)およびエラーカウンタ加算値(パス)の項目を有する。エラーハンドリング管理テーブル601は、各項目に情報を設定することで、エラーハンドリング管理情報(例えば、エラーハンドリング管理情報601−1〜601−7)をレコードとして記憶する。
ここで、グループ種別は、エラーの重要度に基づいて、エラー種別を分類したものである。重要度とは、エラーが及ぼす影響の範囲の大きさを示すものである。重要度が大きいほどエラーが及ぼす影響の範囲の大きさが大きい。エラー種別は、ストレージ制御装置102で発生するエラーをエラーの種類によって類別したものである。エラー種別は、タイムアウト管理テーブル501のエラー種別と同じ内容が設定される。
タイマ値は、エラー種別ごとに決定された時間である。サーバ101がエラーの重要度に基づいて、タイマ値を決定することができる。例えば、サーバ101は、エラーの重要度が大きいほど、タイマ値を大きくすることができる。サーバ101は、決定したタイマ値を、タイムアウト管理テーブル501のタイムアウト時間に設定することができる。
同パスリトライ(最大実施回数)は、ストレージ制御装置102からエラーの応答があったとき、サーバ101が同じパスでリトライを行うか否かを示す情報である。また、最大実施回数は、リトライを行う場合のリトライの最大回数である。
切り替えは、ストレージ制御装置102からエラーの応答があったとき、サーバ101が他のパスに切り替えを行うか否かを示す情報である。エラーカウンタ加算値(LUN)は、ストレージ制御装置102からエラーの応答があったとき、以下で説明するLUNエラーカウンタテーブル701のエラーカウンタ値に加算する値を示す。エラーカウンタ加算値(パス)は、ストレージ制御装置102からエラーの応答があったとき、以下で説明するパスエラーカウンタテーブル801のエラーカウンタ値に加算する値を示す。
図6の例では、レコード601−1は、「故障通知」のエラーはグループ種別「1」に属することを示す。また、「故障通知」のエラーが発生した際に、ストレージ制御装置102は、サーバ101から入出力要求を受け付けた時間から、1秒経過した時に、サーバ101にエラーの応答を行うことを示す。この際、サーバ101は、エラーの応答を受信後、最大10回の同じパスでリトライを行う。また、サーバ101は、リトライでエラーが回復しない場合、別パスへの切り替えを行う。また、サーバ101は、パスエラーカウンタテーブル801で入出力に用いたパスのカウンタ値に10を加算する。
(LUNエラーカウンタテーブル701の一例)
図7は、LUNエラーカウンタテーブル701の記憶内容の一例を示す説明図である。図7において、サーバ101のLUNエラーカウンタテーブル701は、例えば、サーバ101によって作成、更新され、サーバ101のメモリ302またはディスク305に記憶される。
LUNエラーカウンタテーブル701は、LUN、エラーカウンタ値および状態の項目を有する。LUNエラーカウンタテーブル701は、各項目に情報を設定することで、LUNエラーカウンタ情報(例えば、LUNエラーカウンタ情報701−1〜701−3)をレコードとして記憶する。
ここで、LUNは、記憶装置103の論理ボリュームを識別するための識別子である。エラーカウンタ値は、LUNで識別される論理ボリュームへの入出力要求で発生したエラーに対応するエラーハンドリング管理テーブル601のエラーカウンタ加算値(LUN)を累計したものである。状態は、LUNで識別される論理ボリュームが正常から障害までのどの状態であるかを示す。状態は、エラーカウンタ値に基づいて決定され、例えば、Online状態、Warning状態、Fail状態がある。
サーバ101は、エラーカウンタ値を一定時間ごとに初期化してもよい。また、サーバ101は、所定の値以下のエラーカウンタ値を一定時間ごとに初期化してもよい。状態は、例えば、エラーカウンタが0以上10未満の時、Online状態、10以上80未満の時、Warning状態、80以上の時、Fail状態とすることができる。
図7の例では、レコード701−1は、LUNがAで識別される論理ボリュームは、エラーカウンタ値が0で状態はOnline状態であることを示す。
(パスエラーカウンタテーブル801の一例)
図8は、パスエラーカウンタテーブル801の記憶内容の一例を示す説明図である。図8において、サーバ101のパスエラーカウンタテーブル801は、例えば、サーバ101によって作成、更新され、サーバ101のメモリ302またはディスク305に記憶される。
パスエラーカウンタテーブル801は、パス番号、エラーカウンタ値および状態の項目を有する。パスエラーカウンタテーブル801は、各項目に情報を設定することで、パスエラーカウンタ情報(例えば、パスエラーカウンタ情報801−1〜801−2)をレコードとして記憶する。
ここで、パス番号は、ストレージ制御装置102に接続されるパスを識別するための識別子である。エラーカウンタ値は、パス番号で識別されるパスで発生したエラーに対応するエラーハンドリング管理テーブル601のエラーカウンタ加算値(パス)を累計したものである。状態は、パスが正常から障害までのどの状態であるかを示す。状態は、エラーカウンタ値に基づいて決定され、例えば、Online状態、Warning状態、Fail状態がある。
サーバ101は、エラーカウンタ値を一定時間ごとに初期化してもよい。また、サーバ101は、所定の値以下のエラーカウンタ値を一定時間ごとに初期化してもよい。状態は、例えば、エラーカウンタが0以上10未満の時、Online状態、10以上80未満の時、Warning状態、80以上の時、Fail状態とする。
サーバ101は、入出力要求を発行するパスを選択する際、エラーカウンタ値に基づいて、パスを決定してもよい。例えば、サーバ101は、エラーカウンタ値が最も小さいパスを、入出力要求を発行するパスとして選択することができる。
図8の例では、レコード801−1は、パス番号1のパスは、エラーカウンタ値が0で、状態はOnline状態であることを示す。
(サーバ101の機能的構成例)
次に、図2に示したサーバ101の機能的構成例について説明する。図9は、実施の形態にかかるサーバ101の機能的構成例を示すブロック図である。図9においてサーバ101は、タイムアウト管理テーブル取得部901と、エラーハンドリング設定部902と、エラーハンドリング処理部903とを含む構成である。タイムアウト管理テーブル取得部901と、エラーハンドリング設定部902と、エラーハンドリング処理部903とを含む機能部は、具体的には、例えば、図3に示したメモリ302などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302などの記憶装置に記憶される。
タイムアウト管理テーブル取得部901は、ストレージ制御装置102からタイムアウト管理テーブル501を取得する機能を有する。例えば、タイムアウト管理テーブル取得部901は、OS標準のディスクドライバに対して発行可能なベンダユニークなコマンドを用いることで、ストレージ制御装置102からタイムアウト管理テーブル501を取得する。
タイムアウト管理テーブル取得部901は、例えば、サーバ101の起動時にストレージ制御装置102からタイムアウト管理テーブル501を取得してもよい。また、タイムアウト管理テーブル取得部901は、ストレージ制御装置102からタイムアウト管理テーブル501のエラー種別だけを取得してもよい。エラーハンドリング設定部902が、初期値として設定されたタイムアウト管理テーブル501のタイムアウト時間を使用しないためである。
エラーハンドリング設定部902は、取得したタイムアウト管理テーブル501からエラーハンドリング管理テーブル601を作成する機能を有する。エラーハンドリング設定部902は、取得したタイムアウト管理テーブル501のエラー種別をグループ種別に分類する。例えば、エラーハンドリング設定部902は、エラーの重要度に応じてエラー種別をグループ種別に分類することができる。
エラーハンドリング設定部902は、グループ種別ごとにタイマ値、同パスリトライ、切り替え、エラーカウンタ加算値(LUN)およびエラーカウンタ加算値(パス)を設定する。エラーハンドリング設定部902は、例えば、グループ種別の重要度に基づき、タイマ値を設定することができる。また、エラーハンドリング設定部902は、同じパスへのリトライでエラーが回復できると判断したグループ種別に、同パスリトライを「あり」に設定することができる。また、エラーハンドリング設定部902は、他のパスに切り替ることで、エラーが回復できると判断したグループ種別に、切り替えを「あり」に設定することができる。
また、エラーハンドリング設定部902は、グループ種別に属するエラーが論理ボリュームに関するエラーの場合、エラーカウンタ加算値(LUN)にエラーの重要度に応じた値を設定できる。また、エラーハンドリング設定部902は、グループ種別に属するエラーがパスに関するエラーの場合、エラーカウンタ加算値(パス)にエラーの重要度に応じた値を設定できる。例えば、エラーハンドリング設定部902は、重要度が大きいエラーに対して、エラーカウンタ加算値(LUN)およびエラーカウンタ加算値(パス)に大きな値を設定することができる。
エラーハンドリング設定部902は、設定したタイマ値に基づきタイムアウト管理テーブル501のタイムアウト時間を更新する。エラーハンドリング設定部902は、エラー種別ごとに、エラーハンドリング管理テーブル601のタイマ値をタイムアウト管理テーブル501のタイムアウト時間に設定する。エラーハンドリング設定部902は、更新したタイムアウト管理テーブル501をストレージ制御装置102に送信する。これにより、サーバ101とストレージ制御装置102は、エラー種別に対応したタイマ値とタイムアウト時間とを同じ値にできる。
エラーハンドリング処理部903は、ストレージ制御装置102への入出力要求がエラーで応答された場合、エラーに対する処理を行う機能を有する。エラーに対する処理として、例えば、同じパスでリトライを行う、パスを切り替える、リトライおよびパスの切り替えを行わず、上位にエラーを通知する等がある。具体的には、パス故障の場合、パスを切り替えることで、エラーからの回復を図ることができる。また、コマンド異常の場合、リトライおよびパスの切り替えを行っても、エラーからの回復を図ることができないため、上位にエラーを通知する。上位とは、例えば、エラーハンドリング処理部903に入出力要求を依頼したプログラムである。
エラーハンドリング処理部903は、入出力要求からエラーの応答までの応答時間を算出する。例えば、エラーハンドリング処理部903は、ストレージ制御装置102への入出力要求を行った時間を記憶し、記憶された時間と入出力要求がエラーで応答されたときの時間から応答時間を算出することができる。
エラーハンドリング処理部903は、算出した応答時間に対応するタイマ値をエラーハンドリング管理テーブル601から特定する。例えば、エラーハンドリング処理部903は、算出した応答時間より短くて最も近いタイマ値をエラーハンドリング管理テーブル601から特定する。
エラーハンドリング処理部903は、特定したタイマ値のグループ種別の「切り替え」に基づいて、他のパスに切り替えを行うか否かを判断する。エラーハンドリング処理部903は、「切り替え」がありの場合、他のパスに切り替えを行い、「切り替え」がなしの場合、他のパスに切り替えを行わない。
エラーハンドリング処理部903は、特定したタイマ値のグループ種別の「同パスリトライ」に基づいて、同じパスでリトライを行うか否かを判断する。エラーハンドリング処理部903は、「同パスリトライ」がありの場合、同じパスでリトライを行い、「同パスリトライ」がなしの場合、同じパスでリトライを行わない。エラーハンドリング処理部903は、最大実施回数が指定されている場合、最大実施回数までリトライを行う。
エラーハンドリング処理部903は、特定したタイマ値のエラーカウンタ加算値(LUN)でLUNエラーカウンタテーブル701を更新する。エラーハンドリング処理部903は、エラー応答があった入出力要求で用いた論理ボリュームのLUNを特定する。エラーハンドリング処理部903は、特定したLUNのエラーカウンタ値に特定したエラー種別のエラーカウンタ加算値(LUN)を加算する。
また、エラーハンドリング処理部903は、加算したエラーカウンタ値がしきい値を超えた場合、LUNエラーカウンタテーブル701のLUNの状態を遷移させる。例えば、エラーハンドリング処理部903は、しきい値として、10、80を用いることができる。これらのしきい値を超えた場合、エラーハンドリング処理部903は、状態をWarning状態、Fail状態に遷移させる。
エラーハンドリング処理部903は、特定したタイマ値のエラーカウンタ加算値(パス)でパスエラーカウンタテーブル801を更新する。エラーハンドリング処理部903は、エラー応答があった入出力要求で用いたパスのパス番号を特定する。エラーハンドリング処理部903は、特定したパス番号のエラーカウンタ値にエラーカウンタ加算値(パス)を加算する。
また、エラーハンドリング処理部903は、加算したエラーカウンタ値がしきい値を超えた場合、パスエラーカウンタテーブル801のパスの状態を遷移させる。例えば、エラーハンドリング処理部903は、しきい値として、10、80を用いることができる。これらのしきい値を超えた場合、エラーハンドリング処理部903は、状態をWarning状態、Fail状態に遷移させる。
(ストレージ制御装置102の機能的構成例)
次に、図2に示したストレージ制御装置102の機能的構成例について説明する。図10は、実施の形態にかかるストレージ制御装置102の機能的構成例を示すブロック図である。図10においてストレージ制御装置102は、タイムアウト管理テーブル返却部1001と、タイムアウト管理テーブル設定部1002と、エラーハンドリング処理部1003とを含む構成である。タイムアウト管理テーブル返却部1001と、タイムアウト管理テーブル設定部1002と、エラーハンドリング処理部1003とを含む機能部は、具体的には、例えば、図4に示したメモリ402などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図4に示したメモリ402などの記憶装置に記憶される。
タイムアウト管理テーブル返却部1001は、サーバ101から要求されたタイムアウト管理テーブル501をサーバ101に返却する機能を有する。タイムアウト管理テーブル返却部1001は、サーバ101からタイムアウト管理テーブル501のエラー種別を要求された場合、タイムアウト管理テーブル501のエラー種別だけを返却してもよい。
タイムアウト管理テーブル設定部1002は、サーバ101が送信したタイムアウト管理テーブル501に基づき、タイムアウト管理テーブル501のタイムアウト時間を更新する。タイムアウト管理テーブル設定部1002は、更新したタイムアウト管理テーブル501をサーバ101ごとに記憶してもよい。これは、サーバ101のOS種別ごとに、異なるタイムアウト時間を設定すべき場合があるためである。例えば、あるOSの場合は、あるエラーに対してすぐに切り替えることが望ましいが、他のOSの場合は切り替えずにしばらく粘ることが望ましい場合があるためである。
エラーハンドリング処理部1003は、サーバ101からの入出力要求でエラーが発生した場合、エラーに対する処理を行う機能を有する。エラーハンドリング処理部1003は、発生したエラーの種別を特定する。
エラーハンドリング処理部1003は、特定したエラー種別のタイムアウト時間をタイムアウト管理テーブル501から取得する。エラーハンドリング処理部1003は、サーバ101からの入出力要求から、取得したタイムアウト時間が経過するまで待ち合わせる。待ち合わせ後、エラーハンドリング処理部1003は、サーバ101にエラー応答を通知する。
エラーハンドリング処理部1003は、サーバ101からの入出力要求が正常に終了した場合、サーバ101に正常応答を通知することもできる。
(タイムアウト管理テーブル501登録動作の一例)
図11は、実施の形態にかかるタイムアウト管理テーブル501登録動作の一例を示すシーケンス図である。図11において、まず、サーバ101は起動を開始する(ステップS1101)。例えば、ユーザがサーバ101の電源をオンにすることでサーバ101は起動を開始する。
サーバ101は、起動中にストレージ制御装置102にタイムアウト管理テーブル501の取得を要求する(ステップS1102)。これを受けて、ストレージ制御装置102は、サーバ101にタイムアウト管理テーブル501を送信する(ステップS1103)。
サーバ101は、タイムアウト管理テーブル501のエラー種別に基づいてエラーハンドリング管理テーブル601を作成する(ステップS1104)。サーバ101は、エラーハンドリング管理テーブル601のタイマ値でタイムアウト管理テーブル501のタイムアウト時間を更新する(ステップS1105)。サーバ101は、更新したタイムアウト管理テーブル501をストレージ制御装置102に送信する(ステップS1106)。
これを受けて、ストレージ制御装置102は、タイムアウト管理テーブル501を受信し、受信したタイムアウト管理テーブル501に基づいて、自装置のタイムアウト管理テーブル501のタイムアウト時間を更新する(ステップS1107)。ストレージ制御装置102は、更新終了後、サーバ101にタイムアウト管理テーブル501の更新が終了したことを通知する(ステップS1108)。
これにより、本シーケンス図における一連のステップを終了する。本シーケンスを実行することで、サーバ101はエラーハンドリング管理テーブル601を作成し、エラー種別に対応したタイマ値を、ストレージ制御装置102のタイムアウト管理テーブル501のタイムアウト時間に設定できる。
(エラーハンドリング処理動作の一例)
図12は、実施の形態にかかるエラーハンドリング処理動作の一例を示すシーケンス図である。図12において、まず、サーバ101は、ストレージ制御装置102に入出力要求を発行する(ステップS1201)。
これを受けて、ストレージ制御装置102は、入出力動作を行い、入出力エラーを検出する(ステップS1202)。入出力エラーを検出したストレージ制御装置102は、入出力エラーの種別を特定する(ステップS1203)。ストレージ制御装置102は、特定したエラー種別のタイムアウト時間をタイムアウト管理テーブル501から取得する(ステップS1204)。
この後、ストレージ制御装置102は、取得したタイムアウト時間に基づき待ち合わせを行う(ステップS1205)。例えば、ストレージ制御装置102は、サーバ101からの入出力要求から、取得したタイムアウト時間が経過するまで待ち合わせる。待ち合わせ後、ストレージ制御装置102は、サーバ101に入出力エラーの通知を行う(ステップS1206)。
これを受けて、サーバ101は、入出力エラーを受け付けて、応答時間を算出する(ステップS1207)。サーバ101は、算出した応答時間からグループ種別を特定する(ステップS1208)。サーバ101は、特定したグループ種別のエラーカウンタ加算値(LUN)でLUNエラーカウンタテーブル701のエラーカウンタ値を更新する(ステップS1209)。サーバ101は、更新したLUNエラーカウンタテーブル701のエラーカウンタ値に基づき、LUNの状態を遷移する(ステップS1210)。
この後、サーバ101は、特定したグループ種別のエラーカウンタ加算値(パス)でパスエラーカウンタテーブル801のエラーカウンタ値を更新する(ステップS1211)。サーバ101は、更新したパスエラーカウンタテーブル801のエラーカウンタ値に基づき、パスの状態を遷移する(ステップS1212)。サーバ101は、特定したグループ種別の同パスリトライおよび切り替えに基づき、同じパスでまたは切り替えたパスでストレージ制御装置102に入出力要求を発行する(ステップS1213)。
これにより、本シーケンス図における一連のステップを終了する。本シーケンスを実行することで、サーバ101は、入出力エラー受け付け後、エラー種別に対応した応答時間に基づいて、同じパスでリトライするか、または、パスを切り替えるというきめ細かいエラー処理ができる。
(エラーハンドリング管理テーブル601作成処理手順の一例)
図13は、実施の形態にかかるサーバ101のエラーハンドリング管理テーブル601作成処理手順の一例を示すフローチャートである。図13において、まず、サーバ101は、タイムアウト管理テーブル501の取得をストレージ制御装置102に要求する(ステップS1301)。
サーバ101は、タイムアウト管理テーブル501をストレージ制御装置102から受信したか否かを判断する(ステップS1302)。タイムアウト管理テーブル501をストレージ制御装置102から受信しない場合(ステップS1302:No)、サーバ101の処理はステップS1302に戻る。
タイムアウト管理テーブル501をストレージ制御装置102から受信した場合(ステップS1302:Yes)、サーバ101は、取得したタイムアウト管理テーブル501のエラー種別をグループ種別に分類する(ステップS1303)。
サーバ101は、グループ種別ごとにタイマ値、同パスリトライ、切り替え、エラーカウンタ加算値(LUN)およびエラーカウンタ加算値(パス)を決定する(ステップS1304)。サーバ101は、決定した値等に基づきエラーハンドリング管理テーブル601を作成する(ステップS1305)。また、サーバ101は、決定したタイマ値に基づきタイムアウト管理テーブル501のタイムアウト時間を更新する(ステップS1306)。
サーバ101は、更新したタイムアウト管理テーブル501をストレージ制御装置102に送信する(ステップS1307)。サーバ101は、タイムアウト管理テーブル501の更新通知をストレージ制御装置102から受信したか否かを判断する(ステップS1308)。タイムアウト管理テーブル501の更新通知をストレージ制御装置102から受信しない場合(ステップS1308:No)、サーバ101の処理はステップS1308に戻る。タイムアウト管理テーブル501の更新通知をストレージ制御装置102から受信した場合(ステップS1308:Yes)、サーバ101のエラーハンドリング管理テーブル601作成処理は終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、サーバ101のエラーハンドリング管理テーブル601が作成される。
(タイムアウト管理テーブル501更新処理手順の一例)
図14は、実施の形態にかかるストレージ制御装置102のタイムアウト管理テーブル501更新処理手順の一例を示すフローチャートである。図14において、まず、ストレージ制御装置102は、タイムアウト管理テーブル501の取得要求をサーバ101から受信したか否かを判断する(ステップS1401)。
タイムアウト管理テーブル501の取得要求をサーバ101から受信しない場合(ステップS1401:No)、ストレージ制御装置102の処理はステップS1401に戻る。タイムアウト管理テーブル501の取得要求をサーバ101から受信した場合(ステップS1401:Yes)、ストレージ制御装置102は、タイムアウト管理テーブル501をサーバ101に送信する(ステップS1402)。
ストレージ制御装置102は、タイムアウト管理テーブル501をサーバ101から受信したか否かを判断する(ステップS1403)。タイムアウト管理テーブル501をサーバ101から受信しない場合(ステップS1403:No)、ストレージ制御装置102の処理はステップS1403に戻る。
タイムアウト管理テーブル501をサーバ101から受信した場合(ステップS1403:Yes)、ストレージ制御装置102は、受信したタイムアウト管理テーブル501に基づき、自装置内のタイムアウト管理テーブル501を更新する(ステップS1404)。ストレージ制御装置102は、自装置内のタイムアウト管理テーブル501を更新したことをサーバ101に通知する(ステップS1405)。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、エラーハンドリング管理テーブル601のタイマ値がストレージ制御装置102のタイムアウト管理テーブル501のタイムアウト時間に設定される。
(サーバ101のエラーハンドリング処理手順の一例)
図15は、実施の形態にかかるサーバ101のエラーハンドリング処理手順の一例を示すフローチャートである。図15において、まず、サーバ101は、ストレージ制御装置102に対して、入出力要求を発行する(ステップS1501)。この入出力要求は、例えば上位のプログラムからの要求により発行される。
サーバ101は、ストレージ制御装置102から入出力要求の応答を受信したか否かを判断する(ステップS1502)。ストレージ制御装置102から入出力要求の応答を受信しない場合(ステップS1502:No)、サーバ101の処理はステップS1502に戻る。
ストレージ制御装置102から入出力要求の応答を受信した場合(ステップS1502:Yes)、サーバ101は、入出力要求の応答が正常応答かエラー応答かを判断する(ステップS1503)。入出力要求の応答が正常応答である場合(ステップS1503:Yes)、エラーハンドリングを行わないため、サーバ101の処理は終了する。
入出力要求の応答がエラー応答である場合(ステップS1503:No)、サーバ101は応答時間を算出する(ステップS1504)。例えば、サーバ101は、入出力要求を発行した時間と入出力要求がエラー応答されたときの時間から応答時間を算出する。
サーバ101は、算出した応答時間からグループ種別を特定する(ステップS1505)。例えば、サーバ101は、算出した応答時間に対応するタイマ値のグループ種別をエラーハンドリング管理テーブル601から特定する。この後、サーバ101は、LUNエラーカウンタテーブル701およびパスエラーカウンタテーブル801を更新する(ステップS1506)。サーバ101によるエラーカウンタテーブル更新処理の詳細は以下の図16で説明される。
サーバ101は、特定されたエラー種別で同パスリトライはあるか否かを判断する(ステップS1507)。特定されたエラー種別で同パスリトライがない場合(ステップS1507:No)、サーバ101の処理はステップS1510に移行する。
特定されたエラー種別で同パスリトライがある場合(ステップS1507:Yes)、サーバ101は、入出力要求を発行したパスと同じパスで最大実施回数まで入出力要求をストレージ制御装置102に発行する(ステップS1508)。その後、サーバ101は、入出力要求の応答が正常応答かエラー応答かを判断する(ステップS1509)。入出力要求の応答が正常応答である場合(ステップS1509:Yes)、エラーハンドリングは終了したため、サーバ101の処理は終了する。
入出力要求の応答がエラー応答である場合(ステップS1509:No)、サーバ101は、特定されたエラー種別でパス切り替えはあるか否かを判断する(ステップS1510)。特定されたエラー種別でパス切り替えがない場合(ステップS1510:No)、サーバ101の処理はステップS1514に移行する。
特定されたエラー種別でパス切り替えがある場合(ステップS1510:Yes)、サーバ101は、入出力要求を発行したパスを切り替える処理を行う(ステップS1511)。サーバ101は、切り替えたパスで入出力要求を発行する(ステップS1512)。その後、サーバ101は、入出力要求の応答が正常応答かエラー応答かを判断する(ステップS1513)。入出力要求の応答が正常応答である場合(ステップS1513:Yes)、エラーハンドリングは終了したため、サーバ101の処理は終了する。
入出力要求の応答がエラー応答である場合(ステップS1513:No)、サーバ101は、エラーを回復できないため、入出力処理を依頼した上位のプログラムにエラーを通知する(ステップS1514)。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、入出力エラー受け付け後、エラー種別に対応した応答時間に基づいて、同じパスでリトライするか、または、パスを切り替えるというきめ細かいエラー処理ができる。
(エラーカウンタテーブル更新処理手順の一例)
図16は、実施の形態にかかるサーバ101のエラーカウンタテーブル更新処理手順の一例を示すフローチャートである。図16において、まず、サーバ101は、LUNエラーカウンタテーブル701を更新する(ステップS1601)。具体的には、サーバ101は、エラー応答があった入出力要求で用いた論理ボリュームのLUNを特定する。サーバ101は、特定したLUNのエラーカウンタ値に特定したエラー種別のエラーカウンタ加算値(LUN)を加算する。
サーバ101は、入出力要求で用いたLUNのエラーカウンタ値が、しきい値を超えたか否かを判断する(ステップS1602)。しきい値を超えない場合(ステップS1602:No)、サーバ101の処理はステップS1604に移行する。しきい値を超えた場合(ステップS1602:Yes)、サーバ101は、LUNエラーカウンタテーブル701のLUNの状態を遷移させる(ステップS1603)。
この後、サーバ101は、パスエラーカウンタテーブル801を更新する(ステップS1604)。具体的には、サーバ101は、エラー応答があった入出力要求で用いたパスを識別するパス番号を特定する。サーバ101は、特定したパス番号のエラーカウンタ値に特定したエラー種別のエラーカウンタ加算値(パス)を加算する。
サーバ101は、入出力要求を発行したパスのエラーカウンタ値が、しきい値を超えたか否かを判断する(ステップS1605)。しきい値を超えない場合(ステップS1605:No)、サーバ101の処理は終了する。しきい値を超えた場合(ステップS1605:Yes)、サーバ101は、パスエラーカウンタテーブル801のパスの状態を遷移する(ステップS1606)。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、入出力エラー受け付け後、LUNエラーカウンタテーブル701およびパスエラーカウンタテーブル801が更新される。
(ストレージ制御装置102のエラーハンドリング処理手順の一例)
図17は、実施の形態にかかるストレージ制御装置102のエラーハンドリング処理手順の一例を示すフローチャートである。図17において、まず、ストレージ制御装置102は、サーバ101から入出力要求を受信したか否かを判断する(ステップS1701)。サーバ101から入出力要求を受信しない場合(ステップS1701:No)、ストレージ制御装置102の処理はステップS1701に戻る。
サーバ101から入出力要求を受信した場合(ステップS1701:Yes)、ストレージ制御装置102は、要求された入出力処理を行う(ステップS1702)。ストレージ制御装置102は、入出力処理が正常か否かを判断する(ステップS1703)。入出力処理が正常である場合(ステップS1703:Yes)、ストレージ制御装置102は、サーバ101に入出力要求の正常応答を通知し(ステップS1708)、ストレージ制御装置102の処理は終了する。
入出力処理が正常でない場合(ステップS1703:No)、ストレージ制御装置102は、入出力エラーのエラー種別を特定する(ステップS1704)。ストレージ制御装置102は、特定したエラー種別のタイムアウト時間をタイムアウト管理テーブル501から取得する(ステップS1705)。
ストレージ制御装置102は、取得したタイムアウト時間に基づき待ち合わせを行う(ステップS1706)。例えば、ストレージ制御装置102は、サーバ101からの入出力要求から、取得したタイムアウト時間が経過するまで待ち合わせる。待ち合わせ後、ストレージ制御装置102は、サーバ101に入出力エラーを通知する(ステップS1707)。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、ストレージ制御装置102で入出力エラーが発生した際に、エラー種別に対応するタイムアウト時間でサーバ101に入出力エラーが通知される。
以上説明したように、サーバ101は、エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置102と複数のパスで接続される。サーバ101は、入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、エラー種別に対応したタイマ値とを関連付けて記憶する。サーバ101は、複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答をストレージ制御装置102から受け付けたことに応じて、応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、入出力に用いるパスを切り替える。
これにより、サーバ101は、エラー種別に対応した、パスの切り替えを行うか否かを示すパス切替情報を取得できる。このため、サーバ101は、エラーに応じた適切な処理を行うことができる。
また、サーバ101は、同一パスでリトライを行うか否かを示すリトライ情報と、エラー種別に対応したタイマ値とを関連付けて記憶する。サーバ101は、入出力要求に対するエラー応答をストレージ制御装置102から受け付けたことに応じて、応答時間に対応するタイマ値に関連付けられたリトライ情報に基づいて、同一パスでリトライを行う。
これにより、サーバ101は、エラー種別に対応した、同一パスでリトライを行うか否かを示すリトライ情報を取得できる。このため、サーバ101は、エラー種別に応じて、同一パスでリトライを行うことができる。
ここで、サーバ101は、リトライ情報が同一パスでリトライを行わないことを示す場合、または、同一パスでのリトライがエラー応答の場合、パス切替情報に基づいて、入出力に用いるパスを切り替えることができる。
また、サーバ101は、複数のパスのそれぞれのパスと、パスの状態に対応するカウンタ値とを関連付けたパスエラーカウンタテーブル801を記憶することができる。さらに、サーバ101は、エラーハンドリング管理テーブル601に、エラー種別に対応したエラーカウンタ加算値(パス)を記憶することができる。サーバ101は、入出力要求に対するエラー応答をストレージ制御装置102から受け付けたことに応じて、エラーカウンタ加算値(パス)を、入出力要求を発行したパスに関連付けられたエラーカウンタ値に加算することができる。サーバ101は、加算したエラーカウンタ値に基づいて、入出力要求を発行したパスの状態を遷移することができる。
これにより、サーバ101は、パスの状態を管理することができる。このため、サーバ101は、パスの状態を上位に通知することができる。また、サーバ101は、入出力要求を発行するパスを選択する際、エラーカウンタ値に基づいて、パスを決定することができる。
また、サーバ101は、論理ボリュームと、論理ボリュームの状態に対応するカウンタ値とを関連付けたLUNエラーカウンタテーブル701を記憶することができる。さらに、サーバ101は、エラーハンドリング管理テーブル601に、エラー種別に対応したエラーカウンタ加算値(LUN)を記憶することができる。サーバ101は、入出力要求に対するエラー応答をストレージ制御装置102から受け付けたことに応じて、エラーカウンタ加算値(LUN)を、入出力要求を発行した論理ボリュームに関連付けられたエラーカウンタ値に加算することができる。サーバ101は、加算したエラーカウンタ値に基づいて、入出力要求を発行した論理ボリュームの状態を遷移することができる。
これにより、サーバ101は、論理ボリュームの状態を管理することができる。このため、サーバ101は、論理ボリュームの状態を上位に通知することができる。
また、サーバ101は、ストレージ制御装置102からエラー種別を取得し、取得したエラー種別に対応したタイマ値をストレージ制御装置102に送信することができる。また、ストレージ制御装置102は、サーバ101にエラー種別を送信し、送信したエラー種別に対応したタイマ値をサーバ101から受信し、受信したタイマ値でタイムアウト時間を変更することができる。
これにより、サーバ101とストレージ制御装置102は、エラー種別に対応したタイマ値とタイムアウト時間とを同じ値にできる。
なお、本実施の形態で説明した情報処理プログラムおよびストレージ制御プログラムは、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムおよび本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムおよび本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、前記エラー種別に対応したタイマ値とを関連付けて記憶する記憶部と、
前記複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、前記入出力に用いるパスを切り替える制御部と、
を有することを特徴とする情報処理装置。
(付記2)前記記憶部は、
前記タイマ値と、同一パスでリトライを行うか否かを示すリトライ情報とを関連付けてさらに記憶し、
前記制御部は、
前記入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたリトライ情報が、同一パスでリトライを行うことを示す場合、同一パスでリトライを行い、同一パスでリトライを行わないことを示す場合、または、前記同一パスでのリトライがエラー応答の場合、前記パス切替情報に基づいて、前記入出力に用いるパスを切り替えることを特徴とする付記1に記載の情報処理装置。
(付記3)前記記憶部は、
前記複数のパスのそれぞれのパスと、前記パスの状態に対応するカウンタ値とを関連付けてさらに記憶し、および、前記タイマ値と、前記エラー種別に対応した加算値とを関連付けてさらに記憶し、
前記制御部は、
前記入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられた加算値を、前記入出力要求を発行したパスに関連付けられたカウンタ値に加算し、加算したカウンタ値に基づいて、前記入出力要求を発行したパスの状態を遷移することを特徴とする付記1または2に記載の情報処理装置。
(付記4)前記制御部は、
前記ストレージ制御装置から前記エラー種別を取得し、取得した前記エラー種別に対応したタイマ値を前記ストレージ制御装置に送信することを特徴とする付記1〜3のいずれか一つに記載の情報処理装置。
(付記5)エラー種別と、前記エラー種別に対応したタイムアウト時間とを関連付けて記憶する記憶部と、
自装置に接続される複数のパスのうち入出力に用いるパスの切り替えを、入出力要求を発行してからエラー応答を受け付けるまでの応答時間に基づいて行う情報処理装置からの入出力要求に対するエラーを検出したことに応じて、前記入出力要求を受け付けてから前記エラーのエラー種別と関連付けられたタイムアウト時間が経過した時に、前記情報処理装置にエラー応答をする制御部と、
を有することを特徴とするストレージ制御装置。
(付記6)前記制御部は、
前記情報処理装置に前記エラー種別を送信し、前記送信したエラー種別に対応したタイマ値を前記情報処理装置から受信し、受信したタイマ値で前記タイムアウト時間を変更することを特徴とする付記5に記載のストレージ制御装置。
(付記7)コンピュータに、
エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、前記エラー種別に対応したタイマ値とを関連付けて記憶し、
前記複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、前記入出力に用いるパスを切り替える、
処理を実行させることを特徴とする情報処理プログラム。
(付記8)コンピュータに、
エラー種別と、前記エラー種別に対応したタイムアウト時間とを関連付けて記憶し、
自装置に接続される複数のパスのうち入出力に用いるパスの切り替えを、入出力要求を発行してからエラー応答を受け付けるまでの応答時間に基づいて行う情報処理装置からの入出力要求に対するエラーを検出したことに応じて、前記入出力要求を受け付けてから前記エラーのエラー種別と関連付けられたタイムアウト時間が経過した時に、前記情報処理装置にエラー応答をする、
処理を実行させることを特徴とするストレージ制御プログラム。
(付記9)コンピュータに、
エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、前記エラー種別に対応したタイマ値とを関連付けて記憶し、
前記複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、前記入出力に用いるパスを切り替える、
処理を実行させる情報処理プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
(付記10)コンピュータに、
エラー種別と、前記エラー種別に対応したタイムアウト時間とを関連付けて記憶し、
自装置に接続される複数のパスのうち入出力に用いるパスの切り替えを、入出力要求を発行してからエラー応答を受け付けるまでの応答時間に基づいて行う情報処理装置からの入出力要求に対するエラーを検出したことに応じて、前記入出力要求を受け付けてから前記エラーのエラー種別と関連付けられたタイムアウト時間が経過した時に、前記情報処理装置にエラー応答をする、
処理を実行させるストレージ制御プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
101 サーバ
102 ストレージ制御装置
103 記憶装置
901 タイムアウト管理テーブル取得部
902 エラーハンドリング設定部
903 エラーハンドリング処理部
1001 タイムアウト管理テーブル返却部
1002 タイムアウト管理テーブル設定部
1003 エラーハンドリング処理部

Claims (8)

  1. エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、前記エラー種別に対応したタイマ値とを関連付けて記憶する記憶部と、
    前記複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、前記入出力に用いるパスを切り替える制御部と、
    を有することを特徴とする情報処理装置。
  2. 前記記憶部は、
    前記タイマ値と、同一パスでリトライを行うか否かを示すリトライ情報とを関連付けてさらに記憶し、
    前記制御部は、
    前記入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたリトライ情報が、同一パスでリトライを行うことを示す場合、同一パスでリトライを行い、同一パスでリトライを行わないことを示す場合、または、前記同一パスでのリトライがエラー応答の場合、前記パス切替情報に基づいて、前記入出力に用いるパスを切り替えることを特徴とする請求項1に記載の情報処理装置。
  3. 前記記憶部は、
    前記複数のパスのそれぞれのパスと、前記パスの状態に対応するカウンタ値とを関連付けてさらに記憶し、および、前記タイマ値と、前記エラー種別に対応した加算値とを関連付けてさらに記憶し、
    前記制御部は、
    前記入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられた加算値を、前記入出力要求を発行したパスに関連付けられたカウンタ値に加算し、加算したカウンタ値に基づいて、前記入出力要求を発行したパスの状態を遷移することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記制御部は、
    前記ストレージ制御装置から前記エラー種別を取得し、取得した前記エラー種別に対応したタイマ値を前記ストレージ制御装置に送信することを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、前記エラー種別に対応したタイマ値とを関連付けて記憶する記憶部と、前記複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、前記入出力に用いるパスを切り替える制御部と、を有する情報処理装置と、
    前記エラー種別と、前記エラー種別に対応したタイムアウト時間とを関連付けて記憶する記憶部と、前記情報処理装置からの入出力要求に対するエラーを検出したことに応じて、前記入出力要求を受け付けてから前記エラーのエラー種別と関連付けられたタイムアウト時間が経過した時に、前記情報処理装置にエラー応答をする制御部と、を有するストレージ制御装置と、
    を含むことを特徴とする情報処理システム
  6. 入出力要求を発行してからエラー応答を受け付けるまでの応答時間に対応するタイマ値に基づいて複数のパスのうち入出力に用いるパスの切り替えを行う情報処理装置と接続可能なストレージ制御装置であって、
    エラー種別ごとの前記情報処理装置のタイマ値に関する情報を受信し、受信した前記情報に基づいて前記情報処理装置の種別ごとおよび前記エラー種別ごとに設定されたタイムアウト時間を記憶部に記憶し、
    前記情報処理装置のいずれかからの入出力要求に対するエラーを検出したことに応じて、前記入出力要求を受け付けてから当該情報処理装置の種別および前記エラーのエラー種別に対応するタイムアウト時間が経過した時に、当該情報処理装置にエラー応答をする
    制御部を有することを特徴とするストレージ制御装置。
  7. コンピュータに、
    エラー種別に対応したタイムアウト時間でエラー応答するストレージ制御装置に接続される複数のパスのうち入出力に用いるパスの切り替えを行うか否かを示すパス切替情報と、前記エラー種別に対応したタイマ値とを関連付けて記憶し、
    前記複数のパスのいずれかのパスを介して発行された入出力要求に対するエラー応答を前記ストレージ制御装置から受け付けたことに応じて、前記入出力要求を発行してから前記エラー応答を受け付けるまでの応答時間に対応するタイマ値に関連付けられたパス切替情報に基づいて、前記入出力に用いるパスを切り替える、
    処理を実行させることを特徴とする情報処理プログラム。
  8. コンピュータに、
    エラー種別と、前記エラー種別に対応したタイムアウト時間とを関連付けて記憶し、
    自装置に接続される複数のパスのうち入出力に用いるパスの切り替えを、入出力要求を発行してからエラー応答を受け付けるまでの応答時間に基づいて行う情報処理装置からの入出力要求に対するエラーを検出したことに応じて、前記入出力要求を受け付けてから前記エラーのエラー種別と関連付けられたタイムアウト時間が経過した時に、前記情報処理装置にエラー応答をする、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2014180644A 2014-09-04 2014-09-04 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム Expired - Fee Related JP6390281B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014180644A JP6390281B2 (ja) 2014-09-04 2014-09-04 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム
US14/789,169 US20160073315A1 (en) 2014-09-04 2015-07-01 Information processing apparatus, storage control apparatus, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014180644A JP6390281B2 (ja) 2014-09-04 2014-09-04 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム

Publications (2)

Publication Number Publication Date
JP2016053927A JP2016053927A (ja) 2016-04-14
JP6390281B2 true JP6390281B2 (ja) 2018-09-19

Family

ID=55438813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014180644A Expired - Fee Related JP6390281B2 (ja) 2014-09-04 2014-09-04 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム

Country Status (2)

Country Link
US (1) US20160073315A1 (ja)
JP (1) JP6390281B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018073950A1 (ja) * 2016-10-21 2018-04-26 株式会社日立製作所 計算機システム、及び、コマンド制御方法
JP2020067899A (ja) * 2018-10-25 2020-04-30 株式会社日立製作所 データ処理装置、データ処理方法、及びデータ処理プログラム
US11520671B2 (en) * 2020-01-29 2022-12-06 EMC IP Holding Company LLC Fast multipath failover
US11593164B2 (en) * 2021-03-03 2023-02-28 Microsoft Technology Licensing, Llc Data transfer scheduling for hardware accelerator

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260066B2 (en) * 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
JP4103141B2 (ja) * 2004-02-19 2008-06-18 日本電気株式会社 コンピュータシステム、入出力制御部及び入出力制御プログラム
JP4555029B2 (ja) * 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
JP2007280258A (ja) * 2006-04-11 2007-10-25 Hitachi Ltd 記憶制御装置
JP5121161B2 (ja) * 2006-04-20 2013-01-16 株式会社日立製作所 記憶システム、パス管理方法及びパス管理装置
US7668981B1 (en) * 2007-03-28 2010-02-23 Symantec Operating Corporation Storage paths
US8051335B1 (en) * 2008-06-02 2011-11-01 Network Appliance, Inc. Recovery from transitory storage area network component failures
GB2513333A (en) * 2013-04-23 2014-10-29 Ibm Method and apparatus for testing a storage system

Also Published As

Publication number Publication date
JP2016053927A (ja) 2016-04-14
US20160073315A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
US7469289B2 (en) Storage system having virtualized resource
US8082229B2 (en) Methods for backing up a database
JP5309263B2 (ja) 計算機システム及びその管理方法
US20120311603A1 (en) Storage apparatus and storage apparatus management method
JP2008065503A (ja) ストレージシステム及びバックアップ/リカバリ方法
JP2007272357A (ja) ストレージクラスタシステム、データ処理方法、及びプログラム
US9934243B2 (en) System, method and computer program product for partially synchronous and partially asynchronous mounts/unmounts in a media library
JP4739786B2 (ja) データの再配置方法
JP2010039986A (ja) データのバックアップを管理する計算機システム及び方法
JP2008269462A (ja) ノードの管理装置及び方法
JP6390281B2 (ja) 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム
JP2010129024A (ja) データ分散制御プログラム、ストレージ管理プログラム、制御ノード、およびディスクノード
US20070038748A1 (en) Storage control method and storage control system
JP4731420B2 (ja) 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム
JP2005115603A (ja) 記憶デバイス制御装置及びその制御方法
JP6569476B2 (ja) ストレージ装置、ストレージシステムおよびストレージ制御プログラム
US8543779B2 (en) Management system and management method for managing computer system
JP6319829B2 (ja) データ配置装置及びデータ配置方法
US9626117B2 (en) Computer system and management method for computer system
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US8117405B2 (en) Storage control method for managing access environment enabling host to access data
JP5640480B2 (ja) データ管理プログラム、ストレージシステム、およびデータ管理方法
WO2015107676A1 (ja) 計算機システムの管理システム及び管理方法
JP6128131B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2006011803A (ja) 情報処理システムおよびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180806

R150 Certificate of patent or registration of utility model

Ref document number: 6390281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees