JP6031992B2 - 情報処理装置、情報処理システム、入出力方法及び入出力プログラム - Google Patents

情報処理装置、情報処理システム、入出力方法及び入出力プログラム Download PDF

Info

Publication number
JP6031992B2
JP6031992B2 JP2012277129A JP2012277129A JP6031992B2 JP 6031992 B2 JP6031992 B2 JP 6031992B2 JP 2012277129 A JP2012277129 A JP 2012277129A JP 2012277129 A JP2012277129 A JP 2012277129A JP 6031992 B2 JP6031992 B2 JP 6031992B2
Authority
JP
Japan
Prior art keywords
timeout
input
output
time
path
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
JP2012277129A
Other languages
English (en)
Other versions
JP2014120125A (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 JP2012277129A priority Critical patent/JP6031992B2/ja
Priority to US14/088,566 priority patent/US9092144B2/en
Priority to EP13194610.5A priority patent/EP2746928A2/en
Priority to CN201310675159.9A priority patent/CN103885722A/zh
Priority to KR1020130153871A priority patent/KR20140079716A/ko
Publication of JP2014120125A publication Critical patent/JP2014120125A/ja
Application granted granted Critical
Publication of JP6031992B2 publication Critical patent/JP6031992B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Description

本件は、情報処理装置、情報処理システム、入出力方法及び入出力プログラムに関する。
近年、技術の進歩により、物理動作のないソリッドステートドライブ(solid state drive:SSD)や高性能なストレージが開発されている。
又、新しい情報は高速なディスクに、古い情報は低速の低価格なディスクに置くという情報ライフサイクル管理(Information Lifetime management:ILM)、階層化や仮想化などの技術の登場により、ストレージ装置内に複数の種類のディスクを混在させることが一般的となっている。このため、ストレージ装置に、例えばSSDなどの高速アクセス可能なストレージと、アクセス速度の低いハードディスクドライブ(hard disk drive;HDD)とが共存しているケースが多い。
図13は、従来のストレージシステム101を示す図である。
このストレージシステム101は、図13に示すように、サーバ102に、パス(経路)130−1〜130−6を介して複数(図13に示す例では2つ)のストレージ装置110,120が通信可能に接続されている。
サーバ102は、接続されたストレージ装置110,120のボリュームにデータの書き込みや読み出しを行なう情報処理装置である。例えば、サーバ102はストレージ装置110,120のボリュームに対してリードやライトのデータアクセス要求を行なう。ストレージ装置110,120は、このデータアクセス要求に応じてボリュームに対するデータアクセスを行ない、サーバ102に対して応答を行なう。サーバ2は、例えば、図示しないCentral Processing Unit(CPU)やRandom Access Memory(RAM)、Read Only Memory(ROM)等をそなえる。又、サーバ102は、マルチパスドライバ部103、Logical Unit Number(LUN)情報107−1〜107−6、及びホストバスアダプタ(Host Bus Adaptor:HBA)109−1〜109−6をそなえる。
マルチパスドライバ部103は、ストレージ装置110,120へのパスが複数存在するマルチパス環境において、IO(Input/Output)タイムアウトの発生時にアクセスパスを切り替えてIOをリトライする。IOタイムアウトとは、IOを発行してからそのIOに対する応答が返されるまでの最大待機時間であるタイムアウト時間(タイムアウト値とも呼ぶ)を超えることを指す。
LUN情報107−1〜107−6は、サーバ102に接続されているストレージ装置110,120のLUNに関する情報である。LUN情報107−1〜107−6には、LUN毎に、例えば、当該LUNのディスク種別(例えば、“SSD”)や装置識別情報(例えば、“A4000−6A0298”)などが格納される。
HBA109−1〜109−6は、サーバ102とストレージ機器等の外部機器とを接続するアダプタである。HBA109−1〜109−6は、例えばSCSIアダプタ、ファイバチャネル(FC)アダプタ、シリアルATAアダプタなどである。或いは、HBA109−1〜109−6は、IDE、イーサネット(登録商標)、FireWire(登録商標)、Universal Serial Bus(USB)などに準拠した機器を接続するデバイスであってもよい。
ストレージ装置110は、サーバ102に対して記憶領域を提供するものであり、例えば、RAID装置である。ストレージ装置110は、図中の例では、装置名として“A4000”、IDとして“6A0298”を有する。ストレージ装置110は、Controller Module(CM)111−1,111−2、及びディスク113−1〜113−4をそなえる。
CM111−1は、Channel Adapter(CA)112−1,112−2のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CM111−2は、CA112−3,112−4のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
ここで、CM111−1とCM111−2とは、同様に構成されている。また、CA112−1〜CA112−4は同様に構成されている。
CA112−1〜112−4は、サーバ102と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。CA112−1,112−2,112−4は、それぞれパス130−1〜130−3経由でサーバのHBA109−1〜109−3と接続されている。
パス130−1〜130−3は、サーバ102とストレージ装置110とを接続するパスであり、例えばFCである。
ディスク113−1〜113−4は、情報を記憶可能な記憶装置であり、例えば、ニアラインドライブ(以下、ニアラインと呼ぶ)113−1、HDD113−2,113−3、及びSSD113−4をそなえる。SSDは厳密にはディスクではないが、以下、説明の便宜上SSDもニアラインやHDDのようにディスクとして扱う。
ニアライン113−1は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。ニアライン113−1は、一般的にHDD113−2,113−3よりも大容量であるが、アクセスが低速である。
HDD113−2,113−3は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
SSD113−4、半導体素子メモリを記憶装置として使用するストレージドライブであり、シリコンディスクドライブ、半導体ディスクドライブともよばれる。一般に、SSD33は、ニアライン113−1やHDD113−2,113−3のような磁気ヘッドの移動に伴うヘッドシークタイムがないため、これらよりも高速なランダムアクセスが可能である。その一方、半導体メモリを使用するので、一般的にニアライン113−1やHDD113−2,113−3よりも高価である。
ストレージ装置120も、サーバ102に対して記憶領域を提供するものであり、例えば、RAID装置である。ストレージ装置120は、図中の例では、装置名として“A3000”、IDとして“4A0290”を有する。ストレージ装置120は、CM121−1,121−2及びディスク123−1,123−2をそなえる。
CM121−1は、CA122−1,122−2のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CM121−2は、CA122−3,122−4のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CA122−1〜122−4は、サーバ102と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。CA122−1,122−2,122−4は、それぞれパス130−4〜130−6経由でサーバのHBA109−4〜109−6と接続されている。
ここで、CM121−1とCM121−2とは、同様に構成されている。また、CA122−1〜CA122−4は同様に構成されている。
パス130−4〜130−6は、サーバ102とストレージ装置120とを接続するパスであり、例えばFCである。
ディスク123−1,123−2は、情報を記憶可能な記憶装置であり、例えば、HDD123−1,123−2である。
HDD123−1,123−2は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
ストレージシステム101においては、サーバ102からストレージ装置110,120に対して、IOアクセスが発生する。
このような構成においては、サーバ102側で、サーバ102がIOを発行後、ストレージ装置110,120からの応答を待つ最大時間であるタイムアウト時間(以下、このタイムアウト時間を「IOタイムアウト時間」と呼ぶ)を設定している。
ストレージ装置110,120の故障等により、IOタイムアウト時間を超えてもストレージ装置110,120から応答がない場合、サーバ102は、タイムアウトエラーが発生したとして、エラー処理を行なう。
なお、サーバ102がストレージ装置110,120にIOを発行してから、ストレージ装置110,120が応答するまでのレイテンシは、IO要求転送時間、ディスクシークタイム、read/write時間、IO転送時間などの総計となる。
サーバ102でIOタイムアウト時間を短く設定すれば、ストレージ装置110,120の故障時のエラー検出やパス切替時間を短くできる。一方、IOタイムアウト時間が短い場合、ストレージ装置110,120が正常に動作している場合でも、ストレージ装置110,120の負荷が一時的に高くなるなどの原因によりレイテンシ値が通常より長くなると、タイムアウトが検出されてしまう。
サーバ102は、IOタイムアウト時間を1つ設定できる。例えば、Solaris(登録商標)標準ドライバではIOタイムアウト時間のデフォルト値が60秒である。この値を変更するには、ユーザが定義を書き換え、サーバ102を再起動する。
特開2006−235843号公報
SSD113−4はアクセス時間が短いので、IOタイムアウト時間を短い値に設定することができる。
しかし、前述の如く、従来のストレージ装置110,120においては、設定されるIOタイムアウト値は1つである。従って、最新のディスク113、旧型のディスク113のいずれにも同じIOタイムアウト値が使用され、SSDに合わせてIOタイムアウト時間を60秒未満の値に設定すると、低速のディスクでIOタイムアウトが頻発するおそれがある。
さらに、IOの切り替え先パスが存在する場合でも、タイムアウトするまで一定時間待ってからパスの切り替えが行なわれるので、別パスに切り替えてIOを直ちに再発行することもできない。
1つの側面では、本発明は、ストレージ装置に対するIO発行時の応答時間を短縮することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、情報処理装置は、ストレージ装置と複数の経路を介して接続され、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、前記管理情報を収集し、前記記憶部に記憶する収集部と、前記取得部によって取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、をそなえ、前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、前記取得部は、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得する。
又、本発明に関連するストレージ装置は、情報処理装置と複数の経路を介して接続され、前記複数の経路に対する複数の入出力タイムアウト時間を格納している格納部と、前記情報処理装置から前記複数の入出力タイムアウト時間を要求されると、前記情報処理装置に前記複数の入出力タイムアウト時間を送信するコントローラと、をそなえる。
さらに、情報処理システムは、情報処理装置と、前記情報処理装置と複数の経路を介して接続されたストレージ装置と、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、前記情報処理装置から前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、前記管理情報を収集し、前記記憶部に記憶する収集部と、前記取得部によって取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、をそなえ、前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、前記取得部は、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得する。
なおさらに、情報処理装置に複数の経路を介して接続されたストレージ装置における入出力方法は、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶部に記憶し、前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得し、前記管理情報を収集して、前記記憶部に記憶し、取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行し、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得する。
又、情報処理装置に複数の経路を介して接続されたストレージ装置における入出力プログラムは、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶部に記憶し、前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得し、前記管理情報を収集して、前記記憶部に記憶し、取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行し、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得する処理を前記情報処理装置に実行させる。
開示の技術によれば、ストレージ装置に対するIO発行時の応答時間を短縮することができる。
実施形態の一例としてのストレージシステムの構成を示す図である。 実施形態の一例としてのサーバ側タイムアウトテーブルの初期状態を例示する図である。 実施形態の一例としてのストレージ装置の識別後のサーバ側タイムアウトテーブルを例示する図である。 図3のサーバ側タイムアウトテーブルにレコードをさらに追加した例を示す図である。 実施形態の一例としてのストレージ装置側のタイムアウトテーブルを例示する図である。 実施形態の一例としてのタイムアウト上限テーブルを例示する図である。 実施形態の一例としての初期化処理を示すフローチャートである。 実施形態の一例としてのIO発行及び応答時の処理を示すフローチャートである。 実施形態の一例としてのタイムアウト値の更新処理を示すフローチャートである。 実施形態の第1変形例におけるサーバ側タイムアウトテーブルを例示する図である。 実施形態の第4変形例におけるサーバ側タイムアウトテーブルを例示する図である。 実施形態の第5変形例におけるLUN管理テーブルを例示する図である。 従来のストレージシステムを示す図である。
以下、図面を参照して本情報処理装置、情報処理システム、入出力方法、及び入出力プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
(A)システム構成
図1は実施形態の一例としてのストレージシステム(情報処理システム)1の構成を示す図である。
実施形態の一例としてのストレージシステム1は、図1に示すように、サーバ(情報処理装置)2に、パス(経路)30−1〜30−6を介して複数(図1に示す例では2つ)のストレージ装置10,20が通信可能に接続されている。
サーバ2は、接続されたストレージ装置10,20のボリュームにデータの書き込みや読み出しを行なう情報処理装置である。例えば、サーバ2はストレージ装置10,20のボリュームに対してリードやライトのデータアクセス要求を行なう。ストレージ装置10,20は、このデータアクセス要求に応じてボリュームに対するデータアクセスを行ない、サーバ2に対して応答を行なう。サーバ2は、例えば、図示しないCPUやRAM、ROM等をそなえる。又、サーバ2は、マルチパスドライバ部3、サーバ側タイムアウトテーブル(記憶部)4、LUN情報7−1〜7−6、及びHBA9−1〜9−6をそなえる。
マルチパスドライバ部3は、ストレージ装置10からタイムアウト情報を取得すると共に、マルチパス環境において、IOタイムアウトの発生時にアクセスパスを切り替えてIOをリトライする。マルチパスドライバ部3は、タイムアウトテーブル収集部(収集部)5、タイムアウト時間取得部(取得部)6、及びIO発行部(発行部)8をそなえる。
タイムアウトテーブル収集部5は、外部からIOタイムアウト値を設定可能なストレージ装置10から、後述するタイムアウトテーブル14を取得する。そして、取得したタイムアウトテーブル14のデータを、サーバ側タイムアウトテーブル4に記録する。このとき、タイムアウトテーブル収集部5は、例えば、ストレージ装置10のモデル名、シリアル番号等の情報を、装置識別情報としてサーバ側タイムアウトテーブル4に追加する。
なお、以下、サーバ2等の外部からIOタイムアウト値を設定可能なストレージ装置を「タイムアウト対応ストレージ装置」と呼ぶ。一方、タイムアウト値を設定できないストレージ装置を「タイムアウト非対応ストレージ装置」と呼ぶ。図1に示す例においては、ストレージ装置10がタイムアウト対応ストレージ装置、ストレージ装置20がタイムアウト非対応ストレージ装置である。
タイムアウト時間取得部6は、ストレージ装置10,20にIOを発行する際に、後述のサーバ側タイムアウトテーブル4を参照して、当該IOに設定するタイムアウト時間を読み出して取得する。タイムアウト非対応のストレージ装置20の場合、タイムアウト時間取得部6は、デフォルトのタイムアウト時間(例えば40秒)を読み出す。
IO発行部8は、タイムアウト時間取得部6が取得したタイムアウト値を使用してIOを発行する。又、IO発行部8は、図8を用いて説明するように、IO発行後に当該IOがタイムアウトとなったか、正常終了したか、或いはタイムアウト以外の原因で異常終了したかを判定する。
サーバ側タイムアウトテーブル4は、サーバ2に接続されているストレージ装置10のディスク毎のタイムアウト時間を記憶するテーブルである。サーバ側タイムアウトテーブル4は、例えば、サーバ2の不図示のメモリに格納される。このサーバ側タイムアウトテーブル4については、図2〜図4を用いて後述する。
LUN情報7−1〜7−6は、サーバ2に接続されているストレージ装置10,20のLUNに関する情報である。LUN情報7−1〜7−6には、LUN毎に、例えば、当該LUNのディスク種別(例えば、“SSD”)や装置識別情報(例えば、“E4000−6A0299”)などが格納される。
HBA9−1〜9−6は、サーバ2とストレージ機器等の外部機器とを接続するアダプタである。HBA9−1〜9−6は、例えばSCSIアダプタ、ファイバチャネル(FC)アダプタ、シリアルATAアダプタなどである。或いは、HBA9−1〜9−6は、IDE、イーサネット、FireWire、USBなどに準拠した機器を接続するデバイスであってもよい。
なお、以下、LUN情報を示す符号としては、複数のLUN情報のうち1つを特定する必要があるときには符号7−1〜7−6を用いるが、任意のLUN情報を指すときには符号7を用いる。
ストレージ装置10は、サーバ2に対して記憶領域を提供するものであり、例えば、RAID装置である。ストレージ装置10は、外部からIOタイムアウト値を設定可能なタイプのストレージ装置である。又、図中の例では、装置名として“E4000”、IDとして“6A0299”を有する。ストレージ装置10は、CM(送信部)11−1,11−2、ディスク13−1〜13−4、タイムアウトテーブル(格納部)14、タイムアウト時間変更部(変更部)15、及びタイムアウト上限テーブル16をそなえる。
CM11−1は、CA12−1,12−2のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CM11−2は、CA12−3,12−4のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CA12−1〜12−4は、サーバ2と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。CA12−1,12−2,12−4は、それぞれパス30−1〜30−3経由でサーバのHBA9−1〜9−3と接続されている。
ここで、CM11−1とCM11−2とは、同様に構成されている。また、CA12−1〜CA12−4は同様に構成されている。
パス30−1〜30−3は、サーバ2とストレージ装置10とを接続するパスであり、例えばFCである。
ディスク13−1〜13−4は、情報を記憶可能な記憶装置であり、例えば、ニアライン13−1、HDD13−2,13−3、及びSSD13−4をそなえる。
ニアライン13−1は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。ニアライン13−1は、一般的にHDD13−2,13−3よりも大容量であるが、アクセスが低速である。
HDD13−2,13−3は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
SSD13−4、半導体素子メモリを記憶装置として使用するストレージドライブであり、シリコンディスクドライブ、半導体ディスクドライブともよばれる。一般に、SSD33は、ニアライン13−1やHDD13−2,13−3のような磁気ヘッドの移動に伴うヘッドシークタイムがないため、これらよりも高速なランダムアクセスが可能である。その一方、半導体メモリを使用するので、一般的にニアライン13−1やHDD13−2,13−3よりも高価である。
タイムアウトテーブル14は、ストレージ装置10にそなえられているディスク13毎のタイムアウト時間を記憶するテーブルである。タイムアウトテーブル14は、例えば、CM11−1,11−2の不図示のメモリに格納される。このタイムアウトテーブル14については、図5を用いて後述する。
なお、ストレージ装置10の高負荷などの原因により処理遅延が発生しているときに、IOタイムアウトエラーが頻発するのは好ましくない。
そこで、タイムアウト時間変更部15は、ストレージ装置10の負荷状態を監視し、ストレージ装置10の保守や高負荷などによりタイムアウトの発生が予測される場合に、タイムアウトテーブル14に設定されているタイムアウト時間の値を上げる。このとき、タイムアウト時間変更部15は、後述するタイムアウト上限テーブル16に設定されている上限値を上限としてタイムアウト時間を各パス30に対して設定する。又、タイムアウト時間変更部15は、senseを用いてタイムアウトテーブル14の更新をサーバ2に通知する。
ここで、senseとは、ストレージ装置10,20が、サーバ2からのIOに対して、応答する際にサーバ2に通知するために用いられるメッセージである。senseは当業界において周知の手法であるためその説明は省略する。
又、タイムアウト時間変更部15は、ストレージ装置10の高負荷状態が解消されたときやファームウェアの更新時にも、タイムアウトテーブル14に設定されている値を変更する。このときも、タイムアウト時間変更部15は、タイムアウトテーブル14に更新が行なわれた旨を、senseを用いてサーバ2に通知する。
これらのタイムアウト時間の変更及びサーバ2への通知処理については図9を用いて後述する。
タイムアウト上限テーブル16は、ストレージ装置10にそなえられているディスク13及びパス30毎に設定可能なタイムアウト値の上限値を記憶するテーブルである。このタイムアウト上限テーブル16については、図6を用いて後述する。
ストレージ装置20も、サーバ2に対して記憶領域を提供するものであり、例えば、RAID装置である。ストレージ装置20は、外部からタイムアウト値を設定できないタイプのストレージ装置である。又、図中の例では、装置名として“E3000”、IDとして“4A0291”を有する。ストレージ装置20は、CM21−1,21−2及びディスク23−1,23−2をそなえる。
CM21−1は、CA22−1,22−2のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CM21−2は、CA22−3,22−4のほか不図示のCPUやメモリ、キャッシュメモリ等をそなえ、IO処理を行なう。
CA22−1〜22−4は、サーバ2と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。CA22−1,22−2,22−4は、それぞれパス30−4〜30−6経由でサーバのHBA9−4〜9−6と接続されている。
ここで、CM21−1とCM21−2とは、同様に構成されている。また、CA22−1〜CA22−4は同様に構成されている。
パス30−4〜30−6は、サーバ2とストレージ装置20とを接続するパスであり、例えばFCである。
ディスク23−1,23−2は、情報を記憶可能な記憶装置であり、例えば、HDD23−1,23−2である。
HDD23−1,23−2は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
なお、以下、ストレージ装置10にそなえられたCMを示す符号としては、複数のCMのうち1つを特定する必要があるときには符号11−1,11−2を用いるが、任意のCMを指すときには符号11を用いる。
又、ストレージ装置10にそなえられたCAを示す符号としては、複数のCAのうち1つを特定する必要があるときには符号12−1〜12−4を用いるが、任意のCAを指すときには符号12を用いる。
さらに、ストレージ装置10にそなえられたディスクを示す符号としては、複数のディスクのうち1つを特定する必要があるときには符号13−1〜13−4を用いるが、任意のディスクを指すときには符号13を用いる。
さらに、ストレージ装置20にそなえられたCMを示す符号としては、複数のCMのうち1つを特定する必要があるときには符号21−1,21−2を用いるが、任意のCMを指すときには符号21を用いる。
又、ストレージ装置20にそなえられたCAを示す符号としては、複数のCAのうち1つを特定する必要があるときには符号22−1〜22−4を用いるが、任意のCAを指すときには符号22を用いる。
さらに、ストレージ装置20にそなえられたディスクを示す符号としては、複数のディスクのうち1つを特定する必要があるときには符号23−1,23−2を用いるが、任意のディスクを指すときには符号23を用いる。
さらに、パスを示す符号としては、複数のパスのうち1つを特定する必要があるときには符号30−1〜30−6を用いるが、任意のパスを指すときには符号30を用いる。
なお、図1に示す例においては、ストレージ装置10に2つのCM12がそなえられているが、これに限定されるものではなく、3以上のCM12をそなえてもよい。
又、ストレージ装置10に4つのディスク13がそなえられているが、これに限定されるものではなく、3以下又は5以上のディスク13をそなえてもよい。
さらに、図1に示す例においては、ストレージ装置20に2つのCM22がそなえられているが、これに限定されるものではなく、3以上のCM22をそなえてもよい。
又、ストレージ装置20に2つのディスク23がそなえられているが、これに限定されるものではなく、3以上のディスク23をそなえてもよい。
次に、図2〜図4を参照して、サーバ2にそなえられているサーバ側タイムアウトテーブル4について説明する。
図2は、本実施形態の一例としてのサーバ側タイムアウトテーブル4の初期状態を例示する図である。又、図3は、本実施形態の一例としてのストレージ装置10,20の識別後のサーバ側タイムアウトテーブル4を例示する図である。図4は、図3のサーバ側タイムアウトテーブル4にレコードをさらに追加した例を示す図である。
サーバ側タイムアウトテーブル4は、装置識別情報41、ディスク種別42、CM係数43、先頭パスのタイムアウト時間44、中間パスのタイムアウト時間45、最終パスのタイムアウト時間46、及び上限47の各フィールドを有する。
装置識別情報フィールド41は、ストレージ装置10を識別する情報を示す。例えば、装置識別情報フィールド41には、ストレージ装置10のモデル名とシリアル番号とを連結した文字列が格納される。
ディスク種別フィールド42は、ストレージ装置10にそなえられた各ディスク13の種別を示す。例えば、ディスク種別フィールド42には、図3に示すように、“HDD10000”、“HDD15000”、“SSD”、“NEARLINE”などのディスクの性能や特性を表わす文字列が格納される。“HDD10000”は、回転速度が10,000RPMのHDDを示し、“HDD15000”は、回転速度が15,000RPMのHDDを示す。“SSD”はSSDを示し、“NEARLINE”はニアラインを示す。
先頭パスのタイムアウト時間フィールド44は、マルチパス環境の場合に先頭パスに使用するタイムアウト時間を格納している。
中間パスのタイムアウト時間フィールド45は、マルチパス環境の場合に先頭パス以外であり、且つ最終パス以外のパス(以降、このようなパスを「中間パス」と呼ぶ)におけるタイムアウト時間を格納している。
最終パスのタイムアウト時間フィールド46は、マルチパス環境の場合に最終パスに使用するタイムアウト時間を格納している。
なお、ここでの「先頭パス」、「中間パス」、「最終パス」は、パスの物理的な番号と必ずしも一致しない。ここでは、IO発行時に最初にアクセスされるパスを「先頭パス」、先頭パスがエラーとなり、リトライ時に使用されるパスを「中間パス」、最終リトライ時(最大リトライ回数でのリトライ)に使用されるパスを「最終パス」(又は最終経路)と呼ぶ。また、先頭パスと中間パスとを「最終パス以外のパス」(又は最終経路以外の経路)と呼ぶ。
なお、一般に、IOアクセス時には、IO発行時点で最も負荷の低いパスが選択されてそのパスにIOが発行される。
例えば、物理パス#1〜#4の4パス構成の場合を考える。
(1)初回のIOは、物理パス#1〜#4のうち、そのとき負荷が最も低い物理パス#2に発行される。
(2)物理パス#2がエラーとなり、パスを切り替えて1回目(初回)のリトライを行なう。物理パス#1,#3,#4のうち、そのとき負荷の少ない物理パス#1が選択される。
(3)物理パス#1もエラーとなり、2回目のリトライでは物理パス#4が選択される。
(4)物理パス#4もエラーとなり、3回目のリトライは物理パス#3が選択される。
上記の例は4パス構成であるので、物理パス#3でのリトライが最後となる。
この場合、先頭パスは物理パス#2、中間パスは、1回目及び2回目のリトライで選択された物理パス#1及び#4、最終パスは最終リトライで選択された物理パス#3となる。
なお、最大リトライ回数よりもパス30の数のほうが多い場合は、たとえまだリトライしていないパス30が残存していても、最大リトライ回数でのリトライが最終リトライとなる。
タイムアウト時間フィールド44〜46に、先頭パス、中間パス及び最終パスのタイムアウト時間を設定する理由を以下に説明する。
IOのタイムアウトは、パス30の高負荷や故障によるものと、ストレージ装置10の高負荷や故障など、ストレージ装置10に共通に発生するものとがある。
パス30に依存するタイムアウトが発生した場合はパスを切り替えるほうが好ましい。これに対し、ストレージ装置10の高負荷によるタイムアウトが発生した場合は待機するほうが好ましい。ストレージ装置10の故障の場合は、IOは成功しないので、直ちにIOエラーとするほうが好ましい。
しかし、タイムアウトの原因が、パスであるか、或いはストレージ装置10の高負荷であるか故障であるかを、サーバ2からは判断することができない。
そこで、本実施形態においては、ストレージ装置10のタイムアウトテーブル14に、1つのタイムアウト時間を設定する代わりに、先頭パス、中間パス、最終パスのそれぞれに対して個別にタイムアウト時間T,T,Tを設定する。その際、先頭パス、中間パス、最終パスのそれぞれのタイムアウト時間の間に、T≧T>Tの関係が成立するように、それぞれのタイムアウト時間を設定する。
詳細には、先頭パスのタイムアウト時間Tは、パスの異常を考慮して短い値に設定して、パスを短時間で切り替える。
中間パスのタイムアウト時間Tは、2パス目以降でもストレージ装置10に起因するタイムアウトの可能性を考慮して短い値に設定にする。これにより、ストレージ装置10の高負荷時に、先頭パスと2パス目との合計時間応答を待機することになり、IOエラーの発生を回避できる可能性が高くなる。ストレージ装置10の故障の場合でも、タイムアウト時間が短く設定されるので、待ち時間全体を短縮することができる。
最終パスのタイムアウト時間Tは、高負荷状態を想定し、もう少し待機すればIOが成功する可能性があるのでT,Tよりも長い値に設定する。
上限フィールド47は、ストレージ装置10,20のタイムアウト時間の上限値を示す。
CM係数フィールド43は、ストレージ装置10が担当CM型の場合に、待機CMを経由するパスにIOを発行する際に使用するCM係数(≧1)を格納している。
ここで、ストレージ装置10,20には、各LUNに対する通常のアクセスパスが一方のCM11,21に固定されているストレージ装置と、固定されていないストレージ装置とが存在する。このようにアクセスパスが固定されているストレージ装置を「担当CM型」、固定されていないストレージ装置を「非担当CM型」と呼ぶ。
担当CM型のストレージ装置10,20では、一方のCM11,21に接続されたパスがアクティブ状態となり、他方のCM11,21に接続されたパスは待機状態となる。通常のアクセスはアクティブ状態のパスのみが使用され、待機状態のパスは使用されない。アクティブ状態となるパスに接続されるCMを「担当CM」、待機状態となるパスに接続されるCMを「待機CM」と呼ぶ。
これに対し、非担当CM型のストレージ装置10,20では、全てのパスがアクティブ状態となり、通常アクセスに全パスが使用される。
このように、担当CM型のストレージ装置10,20では、CM11,21が担当CMか待機CMかによって性能に差が生じるため、タイムアウト時間についても、CM11,21が担当CMか否かを考慮する。
この性能差はストレージ装置10,20毎に異なるが、予め既知の情報であるので、その性能差の割合に応じたCM係数をCM係数フィールド43に格納する。
サーバ2は、アクセスするパスが担当CM経由か否かがわかる。このため、待機CMにIOを発行するときは、後述するタイムアウトフィールド44〜46のタイムアウト時間にCM係数を乗算して、担当CM経由のパスよりもタイムアウト時間を長めの値に設定する。
例えば、4パス構成を有し、うち2パスが担当CM11に接続され、残り2パスが待機CM11に接続され、SSD13−4にアクセスする場合を考える。
図4の5行目を参照すると、SSDでは、先頭パスのタイムアウト時間には10秒、2パス目のタイムアウト時間には15秒が使用される。
担当CM11に接続されている先頭パス、2パス目いずれもIOエラーが発生した場合、非担当CM11に接続されている3パス目が使用される。
このとき、待機CM側の3パス目のタイムアウト時間には、図4の中間パスのタイムアウト時間フィールド45の値“15”とCM係数フィールド43の値“1.4”とから、15×1.4=21秒が設定される。最終パスである4パス目のタイムアウト時間は、20×1.4=28秒であるが、上限フィールド47の値“25”を超えているので、上限値の25秒が設定される。
サーバ2が起動されると、タイムアウトテーブル収集部5により、図2に示すサーバ側タイムアウトテーブル4が、サーバ2の不図示のメモリに確保される。初期状態のサーバ側タイムアウトテーブル4には、タイムアウト非対応のストレージ装置20に使用されるデフォルトのタイムアウト時間である“40”が全パスに対して設定される。
その後、ストレージ装置10,20が認識されると、タイムアウトテーブル収集部5は、ストレージ装置10の認識時にinquiryコマンド等を使用してストレージ装置10からタイムアウトテーブル14を取得し、データをサーバ側タイムアウトテーブル4に追加する。
ここで、inquiryコマンドとは、SCSI装置の種類と構成をSCSI装置に問い合わせるために使用されるSCSIコマンドであり、その機能は公知であるため、ここでの説明を省略する。なお、マルチパスドライバ部3がほかのコマンドを使用してストレージ装置10,20に対して問い合わせを行なってもよい。
前述のように、このとき、タイムアウトテーブル収集部5は、例えば、ストレージ装置10のモデル名、シリアル番号の情報を、サーバ側タイムアウトテーブル4に装置識別情報として追加する。例えば、タイムアウトテーブル収集部5により、サーバ側タイムアウトテーブル4に、図2に示すようなレコードが追加される。
例えば、その後別のストレージ装置(不図示)が認識されると、サーバ側タイムアウトテーブル4に図2に示すようなレコードが追加される。
又、前述のように、ストレージ装置10側にもタイムアウトテーブル14がそなえられている。
図5は、本実施形態の一例としてのストレージ装置10側のタイムアウトテーブル14を例示する図である。
タイムアウトテーブル14は、ディスク種別142、CM係数143、先頭パスのタイムアウト時間144、中間パスのタイムアウト時間145、最終パスのタイムアウト時間146、及び上限147の各フィールドを有する。
ディスク種別フィールド142は、ストレージ装置10内のディスクの種別を示す。例えば、ディスク種別フィールド142には、図5に示すように、“HDD10000”、“HDD15000”、“SSD”、“NEARLINE”などのディスクの性能や特性を表わす文字列が格納される。“HDD10000”は、回転速度が10,000RPMのHDDを示し、“HDD15000”は、回転速度が15,000RPMのHDDを示す。“SSD”はSSDを示し、“NEARLINE”はニアラインを示す。
CM係数フィールド143は、ストレージ装置10が担当CM型の場合に、待機CMにIOを発行する際に使用するCM係数を格納している。
先頭パスのタイムアウト時間フィールド144は、マルチパス環境の場合に先頭パスに使用するタイムアウト時間を格納している。
中間パスのタイムアウト時間フィールド145は、マルチパス環境の場合に先頭パスにおけるタイムアウト時間を格納している。
最終パスのタイムアウト時間フィールド146は、マルチパス環境の場合に最終パスに使用するタイムアウト時間を格納している。
上限フィールド147は、ストレージ装置10の高負荷などの際に、ストレージ装置10のタイムアウト時間を変更可能な範囲の上限値を示す。
上記のフィールド144〜147には、ストレージ装置10の性能等の特性に合わせ、ストレージ装置10の工場出荷時に最適な値がそれぞれ事前に設定されている。又、フィールド144〜147の各値は、後からオペレータ等が変更可能としてもよい。
図6は、本実施形態の一例としてのタイムアウト上限テーブル16を例示する図である。
タイムアウトテーブル16は、ディスク種別フィールド162と上限フィールド167とを有する。
ディスク種別フィールド162は、ストレージ装置10内のディスクの種別を示す。例えば、ディスク種別フィールド162には、図6に示すように、“HDD10000”、“HDD15000”、“SSD”、“NEARLINE”などのディスクの性能や特性を表わす文字列が格納される。“HDD10000”は、回転速度が10,000RPMのHDDを示し、“HDD15000”は、回転速度が15,000RPMのHDDを示す。“SSD”はSSDを示し、“NEARLINE”はニアラインを示す。
上限フィールド167は、ストレージ装置10の高負荷などの際に、ストレージ装置10のタイムアウト時間を変更可能な範囲の上限値を示す。
上記の上限フィールド167には、ストレージ装置10の性能等の特性に合わせ、ストレージ装置10の工場出荷時に最適な値が事前に設定されている。又、上限フィールド167は、後からオペレータ等が変更可能としてもよい。
なお、サーバ2において、マルチパスドライバ部3、タイムアウトテーブル収集部5、タイムアウト時間取得部6、及びIO発行部8としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
又、ストレージ装置10において、タイムアウト時間変更部15としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
マルチパスドライバ部3、タイムアウトテーブル収集部5、タイムアウト時間取得部6、及びIO発行部8としての機能を実現する際には、内部記憶装置(本実施形態ではサーバ2の不図示のRAMやROM)に格納されたプログラム(入出力プログラム)がコンピュータのマイクロプロセッサ(本実施形態ではサーバ2の不図示のCPU)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
又、タイムアウト時間変更部15としての機能を実現する際には、内部記憶装置(本実施形態ではストレージ装置10の不図示のRAMやROM)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではストレージ装置10のCM11)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとOSとを含む概念であり、OSの制御の下で動作するハードウェアを意味している。又、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、サーバ2及びCM11がコンピュータとしての機能を有しているのである。
(B)動作
次に、図7〜図9を参照して、ストレージシステム1の動作について説明する。
まず、図7を参照して、マルチパスドライバ部3の起動時の処理について説明する。
図7は、本実施形態の一例としての初期化処理を示すフローチャート(ステップSA1からSA11,SB1,SB2)である。
ステップSA1において、サーバ2が起動されて、マルチパスドライバ部3がロードされ、例えばサーバ2の不図示のメモリにサーバ側タイムアウトテーブル4が確保される。
次にステップSA2において、マルチパスドライバ部3は、ストレージ装置10,20のLUNの認識とマルチパスの構築とを行なう。このとき、マルチパスドライバ部3は、ストレージ装置10,20のディスク種別をinquiryコマンドなどで取得する。そして、LUN情報7(図1参照)に、取得したディスク種別を記録する。
次に、タイムアウトテーブル収集部5は、以下のステップSA3〜SA11の処理を、サーバ2に接続されているストレージ装置10,20のそれぞれに対して実行する。
まず、ステップSA4において、タイムアウトテーブル収集部5は、ストレージ装置10,20に、例えばinquiryコマンドを発行し、ストレージ装置10,20がタイムアウト対応かどうかを問い合わせる。
ステップSB1において、ストレージ装置10は、inquiryコマンドの応答として、タイムアウト対応であることを示す情報を返す。一方、タイムアウト非対応のストレージ装置20はこのような情報を返さない。
ステップSA5において、タイムアウトテーブル収集部5は、ストレージ装置10,20からタイムアウト対応を示す応答が返されたかどうかを判定する。
タイムアウト対応を示す応答が返された場合(ステップSA5のYESルート参照)、ステップSA6において、タイムアウトテーブル収集部5は、タイムアウトテーブル14を取得するためのコマンドをストレージ装置10に対して発行する。
ステップSB2において、ストレージ装置10はサーバ2にタイムアウトテーブル14を送信する。
ステップSA7において、タイムアウトテーブル収集部5はストレージ装置10からタイムアウトテーブル14を受け取り、取得したタイムアウトテーブル14のデータを、ステップSA1で確保したサーバ側タイムアウトテーブル4に追加する。
次にステップSA8において、タイムアウトテーブル収集部5は、ストレージ装置10の各LUNに対しinquiryコマンドを発行し、装置名とディスク種別とを取得する。
ステップSA9において、タイムアウトテーブル収集部5は、ステップSA8で取得した装置名とディスク種別とをタイムアウトテーブル収集部5のLUN情報7に追加する。
一方、タイムアウト対応を示す応答が返されない場合(ステップSA5のNOルート参照)、非対応のストレージ装置20であるので、ステップSA10において、ストレージ装置20にデフォルトのタイムアウト値を使うようにLUN情報7にフラグを立てる。
タイムアウトテーブル収集部5は、上記のステップSA3〜SA11の処理を、サーバ3に接続されている全ストレージ装置10,20に実行して、全ストレージ装置10,20の情報を取得する。
次に、図8を参照して、IO発行及び応答時の処理について説明する。
図8は、本実施形態の一例としてのIO発行及び応答時の処理を示すフローチャート(ステップSC1〜SC16)である。
ステップSC1において、タイムアウト時間取得部6は、IOを発行しようとしているストレージ装置10,20が、タイムアウト対応ストレージ装置かどうかを判別する。その際、タイムアウト時間取得部6は、LUN情報7に装置情報とディスク種別とが存在するかどうかを調べ、これらが存在する場合はタイムアウト対応ストレージ装置であると判定する。
タイムアウト対応ストレージ装置の場合(ステップSC1のYESルート参照)、ステップSC2において、タイムアウト時間取得部6は、サーバ側タイムアウトテーブル4を参照して、タイムアウト値を取得する。詳細には、タイムアウト時間取得部6は、LUN情報7のストレージ装置10及びLUNのディスク13の情報に基づいて、サーバ側タイムアウトテーブル4のレコードを参照する。例えば、IOの発行先のLUNが“E4000−6A0299”であり、ディスク種別が“SSD”である場合、タイムアウト時間取得部6は、図4のサーバ側タイムアウトテーブル4を参照して、初回のIOのタイムアウト時間として“10秒”を取得する。
一方、タイムアウトテーブル14を持たず、外部からタイムアウト値を設定できないストレージ装置20の場合(ステップSC1のNOルート参照)、ステップSC3において、タイムアウト時間取得部6は、デフォルト用のレコードを参照し、そのタイムアウト値を取得する。例えば、タイムアウト時間取得部6は、タイムアウト時間として“40秒”を取得する。
次に、ステップSC4において、タイムアウト時間取得部6は、IOを発行可能なパスが他に存在するかどうかを確認する。
IOを発行可能なパスが他に存在する場合(ステップSC4のYESルート参照)、ステップSC5において、タイムアウト時間取得部6は、IOが初回かリトライかを判別する。
IOが初回の場合(ステップSC5のYESルート参照)、ステップSC6において、タイムアウト時間取得部6は、ステップSC2又はステップSC3で参照したレコードの、先頭パスのタイムアウト時間をIOに設定する。前述のように、最初のIOを発行するときは、タイムアウト時間取得部6は、先頭パスの短いタイムアウト時間を使用する。このタイムアウト時間は、短いが、通常のIO性能ではタイムアウトと誤検出しない程度に長い値である。
IOがリトライの場合(ステップSC5のNOルート参照)、ステップSC7において、タイムアウト時間取得部6は、ステップSC2又はステップSC3で参照したレコードの、中間パスのタイムアウト時間をIOに設定する。このとき、IOの発行先のパス30が待機CM11を経由するパスの場合、タイムアウトテーブル14のCM係数フィールド47の値をタイムアウト時間に乗算する。
一方、SC4でIOを発行可能なパスが他にない、つまり最終パスの場合(ステップSC4のNOルート参照)、ステップSC8において、タイムアウト時間取得部6は、SC2又はSC3で選択したレコードの、最終パスのタイムアウト値をIOに設定する。このときも、IOの発行先のパス30が待機CM11を経由するパスの場合、タイムアウトテーブル14のCM係数フィールド47の値をタイムアウト時間に乗算する。
ステップSC9において、IO発行部8がIOを発行する。
ステップSC10において、IO発行部8は、IOの応答が返され、タイムアウト以外のエラーが発生したかどうかを判定する。
タイムアウト以外のエラーの場合(ステップSC10のYESルート参照)、ステップSC11において、IO発行部8は、必要に応じてIOをリトライする。
一方、タイムアウトエラーの場合(ステップSC10のNOルート参照)、ステップSC12において、IO発行部8は、タイムアウトしたかどうかを判定する。
タイムアウトした場合(ステップSC12のYESルート参照)、ステップSC13において、IO発行部8は、代替パスがあり、かつ最大リトライ回数を超えていない(リトライアウトしていない)かどうかを判定する。
代替パスがあり、かつリトライ回数を超えていない場合(ステップSC13のYESルート参照)、ステップSC14において、IO発行部8は、パスを換えてIOをリトライするためにステップSC4に戻る。
一方、ステップSC13で代替パスがないか、或いはリトライ回数を超えている場合(ステップSC13のNOルート参照)、ステップSC16において、IO発行部8は、IOがエラー終了したと判定する。
ステップSC12でタイムアウトしていない場合(ステップSC12のYESルート参照)、ステップSC15において、IO発行部8はIOが正常終了したと判定する。
次に、図9を参照して、ディスク13,23のタイムアウト値が更新され、ストレージ装置10,20のタイムアウトテーブル14が更新されたときの処理について説明する。
前述のように、タイムアウトテーブル14の更新は、図7を参照して説明したストレージ装置10の認識時以外にも行なわれることがある。このようなケースとして、ストレージ装置10がファームアップされて性能が向上した場合などが挙げられる。
このような場合、ストレージ装置10は、特定のsense情報などを用いて、タイムアウトテーブル14の更新をマルチパスドライバ部3に通知する。マルチパスドライバ部3はinquiryコマンド等を用いて、更新されたタイムアウトテーブル14を取得し、サーバ側タイムアウトテーブル4を更新する。
図9は、本実施形態の一例としてのタイムアウト値の更新処理を示すフローチャート(ステップSD1〜SD4,SE1〜SE6)である。
ステップSD1において、ストレージ装置10のタイムアウト時間変更部15は、ファームウェアの更新や、ディスク13,23の高負荷又は負荷の解消等を検出し、タイムアウトテーブル14のタイムアウト値を変更する。
ステップSD2において、タイムアウト時間変更部15は、タイムアウト時間の更新をサーバ2に通知するためのsenseをセット(準備)する。
前述のように、senseとは、ストレージ装置10,20が、サーバ2からのIOに対して、応答する際にサーバ2に通知するために用いられるメッセージである。このため、サーバ2からIOが発行されない限り、ストレージ装置10のタイムアウト時間変更部15がサーバ2にタイムアウトテーブル14の更新を通知することはない。
ステップSE1において、サーバ2のアプリケーション等から通常IOが発行される。
ステップSD3において、ストレージ装置10のタイムアウト時間変更部15は、ステップSD2で設定したsenseをサーバIOに応答する。
ステップSE2において、サーバ2のIO発行部8は、ステップSE1で発行したIOの応答と共にsenseメッセージを受信する。
ステップSE3において、サーバ2のIO発行部8は、IOが正常応答したと判定し、IOの処理を終了する。
ステップSE4において、サーバ2のタイムアウトテーブル収集部5は、タイムアウトテーブル取得コマンドをストレージ装置10に対して発行する。
ステップSD4において、ストレージ装置10のタイムアウト時間変更部15は更新後のタイムアウトテーブル14をサーバ2に送信する。
ステップSE5において、サーバ2のタイムアウトテーブル収集部5は、タイムアウトテーブル14を取得し、取得したタイムアウトテーブル14を用いて、サーバ側タイムアウトテーブル4を更新する。
ステップSE6において、サーバ2のIO発行部8は、更新されたタイムアウト値を使用してIOを発行する。
(C)変形例
(C−1)第1変形例
上記の実施形態においては、先頭パス、中間パス、最終パスのそれぞれに対して、タイムアウト時間を設定していた。
しかし、上記の実施形態の第1の変形例として、図2〜図4に示した先頭パスと中間パスとを「代替パスありの場合」としてまとめて、処理を簡略化してもよい。
図10に、先頭パスと中間パスとを「代替パスありの場合」としてまとめた場合のサーバ側タイムアウトテーブル204を示す。
図10は、本実施形態の第1変形例におけるサーバ側タイムアウトテーブル204を例示する図である。
サーバ側タイムアウトテーブル204は、上記の実施形態におけるサーバ側タイムアウトテーブル4の先頭パスのタイムアウト時間44及び中間パスのタイムアウト時間45に代えて、代替パスありの場合のタイムアウト時間フィールド48を有する。
代替パスありの場合のタイムアウト時間フィールド48は、マルチパス環境の場合に最終パス以外のパスに使用するタイムアウト時間を格納している。
なお、サーバ側タイムアウトテーブル204のその他のフィールドについては前述の実施形態と同じであるため、その説明を省略する。
又、特に図示はしないが、上記の実施形態の第1の変形例においては、ストレージ装置10側のタイムアウトテーブル14も、タイムアウト時間フィールド144〜145に代えて、代替パスありの場合のタイムアウト時間フィールドを有する。
タイムアウト時間取得部6は、サーバ側タイムアウトテーブル204を参照して、最終パス以外のパスに対しては、タイムアウト時間フィールド48に設定されている値を設定してIOを発行する。最終パスの場合は、最終パスのタイムアウト時間フィールド46に設定されている値を使用してIOを発行する。
(C−2)第2変形例
或いは、本実施形態の第2変形例として、タイムアウト時間取得部6が、図10のサーバ側タイムアウトテーブル204を使用して、先頭パスにはタイムアウト時間フィールド48に設定されている値を設定してIOを発行してもよい。そして、2パス目、3パス目…と少しずつ長めの値を設定していってもよい。
(C−3)第3変形例
或いは、本実施形態の第3変形例として、サーバ側タイムアウトテーブル4に複数のタイムアウト時間を設定する代わりに、サーバ側タイムアウトテーブル4のタイムアウト時間を1つだけにしてしてもよい。この場合、タイムアウト時間取得部6は、リトライ可能な残パス数に応じた係数(>1)を掛けて、タイムアウト時間を短くしてもよい。この係数はマルチパスドライバ部3が独自に持ってもよい。
(C−4)第4変形例
或いは、本実施形態の第4変形例として、図11に示すように、サーバ側タイムアウトテーブル204に、先頭パス、2パス目、…、Nパス目(Nは2以上の整数)と、全パスのタイムアウト時間を設定してもよい。
図11に、全てのパスのタイムアウト時間を設定したサーバ側タイムアウトテーブル304を示す。
図11は、本実施形態の第4変形例におけるサーバ側タイムアウトテーブル304を例示する図である。
サーバ側タイムアウトテーブル304は、先頭パス、2パス目、…、Nパス目のそれぞれに対するタイムアウト時間フィールド44、45−1〜45−(N−2)、46を有する。
(C−5)第5変形例
又、ストレージ装置10によっては、LUNが複数種類のストレージで構築されている場合もある。このような例として、LUNコンカチネーションやシンプロビジョニングがある。LUNコンカチネーションやシンプロビジョニングでは、1つのLUNの中に複数のRAIDグループやディスク種別が混在している。
そこで、本実施形態の第5変形例として、マルチパスドライバ部3が、inquiryコマンドを用いてストレージ装置10,20からLUN単位のディスク種別と共に、論理ブロックアドレス(Logical Block Address:LBA)範囲も取得する。そして、マルチパスドライバ部3は、取得したこれらの情報を、図12に示すようなLUN管理テーブル50に記憶する。このLUN管理テーブル50はLUN毎に作成される。
図12は、実施形態の第5変形例におけるLUN管理テーブル50を例示する図である。
LUN管理テーブル50は、装置識別情報フィールド51、ディスク種別フィールド52、開始LBAフィールド53、及び終了LBAフィールド54を有する。
装置識別情報フィールド51は、ストレージ装置10を識別する情報を示す。例えば、装置識別情報フィールド51には、ストレージ装置10のモデル名とシリアル番号とを連結した文字列が格納される。
ディスク種別フィールド52は、ストレージ装置10内のディスクの種別を示す。例えば、ディスク種別フィールド52には、“HDD10000”、“HDD15000”、“SSD”、“NEARLINE”などのディスクの性能や特性を表わす文字列が格納される。“HDD10000”は、回転速度が10,000RPMのHDDを示し、“HDD15000”は、回転速度が15,000RPMのHDDを示す。“SSD”はSSDを示し、“NEARLINE”はニアラインを示す。
開始LBAフィールド53は、ディスク種別フィールド52のディスクの先頭のLBAを示す。
終了LBAフィールド53は、ディスク種別フィールド52のディスクの末尾のLBAを示す。
そして、タイムアウト時間取得部6は、タイムアウトテーブル4とLUN管理テーブル50とを参照して、IOの発行位置によってタイムアウト時間を変更させる。
例えば、図12に示すLUNは、10000LBA毎に2種類のディスク13,23でコンカチネーションされている例を示す。
この例の場合、タイムアウト時間取得部6は、LBA0〜9999の範囲にIOアクセスする場合は、HDD15000に設定されているタイムアウト値を使用する。一方、LBA10000〜19999の範囲にアクセスがあった場合は、HDD10000に設定されているタイムアウト値を使用する。
又、LBA9999と10000との間をまたぐIOの場合は、タイムアウト時間取得部6は、タイムアウト時間が長い方のHDD10000に設定されているタイムアウト値を使用して、HDD10000が多少遅れてもタイムアウトが発生しないようにする。
(D)効果
前述の如く、本実施形態の一例及びその各変形例においては、マルチパス環境において代替パスが存在する場合、サーバからストレージ装置へのIO発行時に短いタイムアウト時間を設定してIOを発行する。当該IOでタイムアウトが発生した場合、パスを切り替えて前回よりも長いタイムアウト時間を設定してIOをリトライすることで、IOの応答時間を短縮することができる。これにより、異常が発生したときエラー応答やパス切替が発生するまでの時間を短くでき、最終的にIO応答時間を短縮することが可能となる。
詳細には、本実施形態の一例及びその各変形例においては、ストレージ装置10にディスク13の種類や最適なIOタイムアウト時間の情報を予め記憶させておき、サーバ2がストレージ装置10を認識した際にその情報がサーバ2に渡される。そして、マルチパスドライバ部3のタイムアウト時間取得部6は、IO発行時に、ストレージ装置10から受け取ったタイムアウトテーブル14に基づいて、最適なIOタイムアウト時間を取得する。これにより、マルチパスドライバ部3は、ストレージ装置10のディスク13の種別及び残りパス数を考慮して最適なIOタイムアウト時間を設定することができる。
さらに、本実施形態の一例及びその各変形例においては、タイムアウトテーブル4,14にCM係数43,143を持っているので、ストレージ装置10のCMの性能(担当CMか否か)を考慮して適切なタイムアウト時間を設定することができる。
なおさらに、本実施形態の一例及びその各変形例においては、ストレージ装置10のタイムアウト時間変更部15が高負荷や故障等を検出して、タイムアウトテーブル14のタイムアウト時間を長めに設定する。これにより、IO応答時間を短縮することが可能となる。
その際、タイムアウト時間変更部15はsenseを用いてサーバ2にタイムアウト値の変更を通知するため、ストレージ装置10側でのタイムアウト値の更新時にネットワーク負荷が上昇するのを抑えることができる。
(E)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記の実施形態及びその各変形例においては、inquiryコマンドを使用して、ストレージ装置10,20からタイムアウト対応/非対応の状況やタイムアウトテーブル14を取得している。しかし、ほかのコマンドを使用してこれらの情報を取得してもよい。
或いは、上記の実施形態及びその各変形例においては、CMが担当CM、非担当CMかに応じてCM係数を設定していたが、パスが、サーバ2からみて担当パスか非担当パスかに応じて「パス係数」を設定してもよい。
又、上記の実施形態及びその各変形例においては、ストレージ装置10のタイムアウト時間変更部15がサーバ2に対してsenseを用いてタイムアウトテーブル14が更新された旨を通知していた。しかし、ほかの手法を用いて更新の通知を行なってもよい。又、ストレージ装置10がタイムアウトテーブル14を更新すると直ちに、ストレージ装置10はサーバ2にタイムアウトテーブル14を送信してもよい。
(F)付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
ストレージ装置と複数の経路を介して接続され、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
をそなえることを特徴とする情報処理装置。
(付記2)
前記管理情報を収集し、前記記憶部に記憶する収集部と、
前記取得部によって取得されたタイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、をそなえることを特徴とする付記1記載の情報処理装置。
(付記3)
前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
前記取得部は、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、
前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得することを特徴とする付記2記載の情報処理装置。
(付記4)
前記第1の入出力タイムアウト時間は前記複数の経路のうちの最終経路以外の経路に対するタイムアウト時間であり、
前記第2の入出力タイムアウト時間は前記複数の経路のうちの最終経路に対するタイムアウト時間であることを特徴とする付記3記載の情報処理装置。
(付記5)
前記取得部は、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記第2の経路に前記入出力を発行する前に、前記複数の経路のうちの前記第1及び第2の経路とは異なる第3の経路に対する、前記第1の入出力タイムアウト時間よりも長く前記第2の入出力タイムアウト時間よりも短い第3の入出力タイムアウト時間を取得することを特徴とする付記4記載の情報処理装置。
(付記6)
前記収集部は、前記ストレージ装置において前記複数の入出力タイムアウト時間が変更されると、変更後の前記複数の入出力タイムアウト時間を前記管理情報として収集することを特徴とする付記2〜5のいずれか1項に記載の情報処理装置。
(付記7)
情報処理装置と複数の経路を介して接続され、
前記複数の経路に対する複数の入出力タイムアウト時間を格納している格納部と、
前記情報処理装置から前記複数の入出力タイムアウト時間を要求されると、前記情報処理装置に前記複数の入出力タイムアウト時間を送信する送信部と、
をそなえることを特徴とするストレージ装置。
(付記8)
前記複数の経路の状況に応じて前記複数の入出力タイムアウト時間を変更する変更部をさらにそなえ、
前記送信部は、前記情報処理装置から入出力を受けると、前記変更部によって変更された前記複数の入出力タイムアウト時間を前記情報処理装置に送信することを特徴とする付記7記載のストレージ装置。
(付記9)
情報処理装置と、
前記情報処理装置と複数の経路を介して接続されたストレージ装置と、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
前記情報処理装置から前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
をそなえることを特徴とする情報処理システム。
(付記10)
前記管理情報を収集し、前記記憶部に記憶する収集部と、
前記取得部によって取得されたタイムアウト時間を用いて前記情報処理装置から前記ストレージ装置に対して入出力を発行する発行部と、をそなえることを特徴とする付記9記載の情報処理システム。
(付記11)
前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
前記取得部は、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、
前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得することを特徴とする付記10記載の情報処理システム。
(付記12)
前記第1の入出力タイムアウト時間は前記複数の経路のうちの最終経路以外の経路に対するタイムアウト時間であり、
前記第2の入出力タイムアウト時間は前記複数の経路のうちの最終経路に対するタイムアウト時間であることを特徴とする付記11記載の情報処理システム。
(付記13)
前記取得部は、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記第2の経路に前記入出力を発行する前に、前記複数の経路のうちの前記第1及び第2の経路とは異なる第3の経路に対する、前記第1の入出力タイムアウト時間よりも長く前記第2の入出力タイムアウト時間よりも短い第3の入出力タイムアウト時間を取得することを特徴とする付記12記載の情報処理システム。
(付記14)
前記収集部は、前記ストレージ装置において前記複数の入出力タイムアウト時間が変更されると、変更後の前記複数の入出力タイムアウト時間を前記管理情報として収集することを特徴とする付記10〜13のいずれか1項に記載の情報処理システム。
(付記15)
情報処理装置に複数の経路を介して接続されたストレージ装置における入出力方法であって、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得することを特徴とする入出力方法。
(付記16)
情報処理装置に複数の経路を介して接続されたストレージ装置における入出力プログラムであって、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する
処理を前記情報処理装置に実行させることを特徴とする入出力プログラム。
1 ストレージシステム(情報処理システム)
10 ストレージ装置
11−1,11−2(11) CM(送信部)
12−1〜12−4(12) CA
13−1〜13−4(13) ディスク
14 タイムアウトテーブル(格納部)
15 タイムアウト時間変更部(変更部)
16 タイムアウト上限テーブル
2 サーバ(情報処理装置)
20 ストレージ装置
3 マルチパスドライバ部
30−1〜30−6(30) パス(経路)
4 サーバ側タイムアウトテーブル(記憶部)
5 タイムアウトテーブル収集部(収集部)
50 LUN管理テーブル
6 タイムアウト時間取得部(取得部)
7 LUN情報
8 IO発行部(発行部)

Claims (7)

  1. ストレージ装置と複数の経路を介して接続され、
    前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
    前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
    前記管理情報を収集し、前記記憶部に記憶する収集部と、
    前記取得部によって取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、
    をそなえ
    前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
    前記取得部は、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、
    前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得することを特徴とする情報処理装置。
  2. 前記第1の入出力タイムアウト時間は前記複数の経路のうちの最終経路以外の経路に対するタイムアウト時間であり、
    前記第2の入出力タイムアウト時間は前記複数の経路のうちの最終経路に対するタイムアウト時間であることを特徴とする請求項記載の情報処理装置。
  3. 前記取得部は、前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記第2の経路に前記入出力を発行する前に、前記複数の経路のうちの前記第1及び第2の経路とは異なる第3の経路に対する、前記第1の入出力タイムアウト時間よりも長く前記第2の入出力タイムアウト時間よりも短い第3の入出力タイムアウト時間を取得することを特徴とする請求項記載の情報処理装置。
  4. 前記収集部は、前記ストレージ装置において前記複数の入出力タイムアウト時間が変更されると、変更後の前記複数の入出力タイムアウト時間を前記管理情報として収集することを特徴とする請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 情報処理装置と、
    前記情報処理装置と複数の経路を介して接続されたストレージ装置と、
    前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
    前記情報処理装置から前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
    前記管理情報を収集し、前記記憶部に記憶する収集部と、
    前記取得部によって取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、
    をそなえ
    前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
    前記取得部は、前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、
    前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得することを特徴とする情報処理システム。
  6. 情報処理装置に複数の経路を介して接続されたストレージ装置における入出力方法であって、
    前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶部に記憶し、
    前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得し、
    前記管理情報を収集して、前記記憶部に記憶し、
    取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行し、
    前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
    前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、
    前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得することを特徴とする入出力方法。
  7. 情報処理装置に複数の経路を介して接続されたストレージ装置における入出力プログラムであって、
    前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶部に記憶し、
    前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得し、
    前記管理情報を収集して、前記記憶部に記憶し、
    取得された前記タイムアウト時間を用いて前記ストレージ装置に対して入出力を発行し、
    前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
    前記複数の経路のうちの第1の経路に対する第1の入出力タイムアウト時間を取得し、
    前記第1の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第1の経路とは異なる第2の経路に対する、前記第1の入出力タイムアウト時間よりも長い第2の入出力タイムアウト時間を取得する
    処理を前記情報処理装置に実行させることを特徴とする入出力プログラム。
JP2012277129A 2012-12-19 2012-12-19 情報処理装置、情報処理システム、入出力方法及び入出力プログラム Expired - Fee Related JP6031992B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012277129A JP6031992B2 (ja) 2012-12-19 2012-12-19 情報処理装置、情報処理システム、入出力方法及び入出力プログラム
US14/088,566 US9092144B2 (en) 2012-12-19 2013-11-25 Information processing apparatus, storage apparatus, information processing system, and input/output method
EP13194610.5A EP2746928A2 (en) 2012-12-19 2013-11-27 Information processing apparatus, storage apparatus, information processing system, and input/output method
CN201310675159.9A CN103885722A (zh) 2012-12-19 2013-12-11 信息处理设备及系统、存储设备与输入和输出方法
KR1020130153871A KR20140079716A (ko) 2012-12-19 2013-12-11 정보 처리 장치, 스토리지 장치, 정보 처리 시스템, 및 입력 및 출력 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012277129A JP6031992B2 (ja) 2012-12-19 2012-12-19 情報処理装置、情報処理システム、入出力方法及び入出力プログラム

Publications (2)

Publication Number Publication Date
JP2014120125A JP2014120125A (ja) 2014-06-30
JP6031992B2 true JP6031992B2 (ja) 2016-11-24

Family

ID=49683534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012277129A Expired - Fee Related JP6031992B2 (ja) 2012-12-19 2012-12-19 情報処理装置、情報処理システム、入出力方法及び入出力プログラム

Country Status (5)

Country Link
US (1) US9092144B2 (ja)
EP (1) EP2746928A2 (ja)
JP (1) JP6031992B2 (ja)
KR (1) KR20140079716A (ja)
CN (1) CN103885722A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5928399B2 (ja) * 2013-04-05 2016-06-01 コニカミノルタ株式会社 画像形成システム及び画像形成システム通信制御方法
CN107204888B (zh) * 2016-03-16 2020-02-14 华为技术有限公司 一种切换超时时间的方法、装置和通信设备
JP6670790B2 (ja) * 2017-03-30 2020-03-25 京セラ株式会社 電源制御方法、分散電源及び制御装置
CN107861847A (zh) * 2017-10-31 2018-03-30 郑州云海信息技术有限公司 一种路径动态检测方法、装置及设备
US11520671B2 (en) * 2020-01-29 2022-12-06 EMC IP Holding Company LLC Fast multipath failover
US20240160734A1 (en) * 2022-11-14 2024-05-16 Sophos Limited Variable timeouts between operating modes of a computer for detecting malicious software

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3201219B2 (ja) * 1995-05-29 2001-08-20 三菱電機株式会社 入出力処理システム
JP2000276824A (ja) 1999-03-24 2000-10-06 Fujitsu Ltd ライブラリ装置およびライブラリ制御装置
JP2005318073A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd 通信装置、その動作プログラム、及び通信方法
JP4927339B2 (ja) 2005-02-23 2012-05-09 株式会社日立製作所 記憶制御装置及びその制御方法
JP4394670B2 (ja) * 2006-09-28 2010-01-06 株式会社日立製作所 ディスク制御装置及びストレージシステム
JP5146032B2 (ja) * 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
US7844757B2 (en) * 2008-06-12 2010-11-30 International Machines Business Corporation Method and system for providing multiple paths to user data stored on a SCSI disk
JP5593184B2 (ja) * 2010-09-30 2014-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチパスを使用するシステム及び方法

Also Published As

Publication number Publication date
EP2746928A2 (en) 2014-06-25
CN103885722A (zh) 2014-06-25
US20140173144A1 (en) 2014-06-19
US9092144B2 (en) 2015-07-28
JP2014120125A (ja) 2014-06-30
KR20140079716A (ko) 2014-06-27

Similar Documents

Publication Publication Date Title
JP6031992B2 (ja) 情報処理装置、情報処理システム、入出力方法及び入出力プログラム
US9626124B2 (en) Direct-attached/network-attached storage device
US8234467B2 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
US8839030B2 (en) Methods and structure for resuming background tasks in a clustered storage environment
CN103970688B (zh) 缩短数据存储系统中写入等待时间的方法和系统
JP4749140B2 (ja) データマイグレーション方法及びシステム
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
JP6409613B2 (ja) 情報処理装置,マルチパス制御方法及びマルチパス制御プログラム
US8516289B2 (en) Storage management apparatus for controlling power supply to storages, storage system including the same, and method for controlling power supply to storages
JP2009043030A (ja) ストレージシステム
JP2006309318A (ja) ストレージ管理システム、ストレージ管理サーバ、データ再配置制御方法およびデータ再配置制御プログラム
JP5923976B2 (ja) 接続装置、ストレージ装置、接続装置における処理方法、および処理プログラム
JP2007305075A (ja) 複数のテープ装置を備えるストレージシステム
US7730474B2 (en) Storage system and automatic renewal method of firmware
JP2011070345A (ja) 計算機システム、計算機システムの管理装置、計算機システムの管理方法
US20110119527A1 (en) Storage control system and storage control method
JP2014215666A (ja) 制御システム,制御装置及び制御プログラム
US11797233B2 (en) Data relay device, relay control method, and storage system
JP2013210744A (ja) ストレージ装置、起動装置決定方法およびプログラム
KR101824671B1 (ko) 비휘발성 메모리 기반 저장 디바이스에서 정보를 라우팅하는 장치 및 방법
CN104471548A (zh) 采用数据管理机制的存储系统及其操作的方法
JP2015184895A (ja) ストレージ制御装置、ストレージ装置、及びストレージ制御プログラム
US20160224273A1 (en) Controller and storage system
US20200073569A1 (en) Storage control system and storage control method
JP2015215708A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161010

R150 Certificate of patent or registration of utility model

Ref document number: 6031992

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees