[go: up one dir, main page]

JP6128131B2 - 情報処理装置、情報処理方法、及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP6128131B2
JP6128131B2 JP2014540711A JP2014540711A JP6128131B2 JP 6128131 B2 JP6128131 B2 JP 6128131B2 JP 2014540711 A JP2014540711 A JP 2014540711A JP 2014540711 A JP2014540711 A JP 2014540711A JP 6128131 B2 JP6128131 B2 JP 6128131B2
Authority
JP
Japan
Prior art keywords
storage device
information
disk
redundancy
redundant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014540711A
Other languages
English (en)
Other versions
JPWO2014057585A1 (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
Publication of JPWO2014057585A1 publication Critical patent/JPWO2014057585A1/ja
Application granted granted Critical
Publication of JP6128131B2 publication Critical patent/JP6128131B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Description

開示の技術は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
コンピュータを使用して業務処理を行う情報処理システムが知られている。コンピュータを使用して業務処理を行うときには、利用するデータをHDD(Hard Disk Drive)等の記憶装置に記憶して利用することが一般的である。記憶装置の障害が業務処理に影響を及ぼすことを抑制するために、記憶装置を、RAID(Redundant Arrays of Inexpensive Disks)やミラーリングと呼ばれる冗長化技術により冗長化させることが行われている。
例えば、RAIDと呼ばれる冗長化技術では、複数のディスクドライブを仮想的に1つのディスクとして運用する。また、ディスクミラーリングと呼ばれる冗長化技術では、複数のローカルなディスクドライブに同一の内容を記録する。冗長化技術では、複数のディスクや複数の記憶装置の各々に同時にデータを書き込み、データの読み出しは予め定めた主となるディスクや主となる記憶装置から行う。
冗長化技術では、主となるディスクや主となる記憶装置に障害が発生した場合、迅速に他のディスクや他の記憶装置を主となるように切り替える等の障害を復旧する処理が行われる。コンピュータを使用して業務処理を行う場合、ディスクや記憶装置に障害が発生して、他のディスクや他の記憶装置に切り替える等の障害を復旧する処理に要する時間は、業務処理を継続するときの妨げになる。従って、冗長化技術では、円滑に業務処理を継続することが求められる。
例えば、稼動系のサーバと待機系のサーバとのデータを常に同期させ、異常時に切り替えた待機系のサーバから復旧するとき所定メモリ領域を用いる技術が知られている。待機系のサーバから復旧した稼働系のサーバへ切り替える場合、待機系のサーバから稼働系のサーバへデータを全複写する必要がある。そこで、異常時に切り替えた時点より待機系のサーバの差分情報を求めておき、差分情報について所定メモリ領域を用いて待機系のサーバから稼働系のサーバへ復旧する。
また、サーバを切り替えるときのスループットを向上させて、大容量化した記憶装置の入出力性能と信頼性を確保する技術が知られている。入出力性能と信頼性を確保する技術では、入出力の経路を多重化し、所定数の入出力の経路における障害の発生を検知すると、サーバを切り替えることで、サーバの入出力性能と信頼性を確保する。
ところが、冗長化技術により冗長化されるディスクや記憶装置に異常が発生したときにディスクや記憶装置からの応答に遅延が生じて、業務処理を継続するときの妨げになる場合がある。冗長化技術を使用した情報システムでは、タイムアウト技術により、ディスクドライバにおける応答遅延を抑制することができる。
例えば、HDD等を制御するディスクドライバにおけるディスク等からの応答遅延に関する技術として、入出力(I/O)要求に対する応答が異常であるとき、継続的に、I/O要求を繰り返す技術が知られている。この技術では、ディスクドライバの上位側で、ディスクドライバより最初の異常情報を受信すると、ディスクドライバの上位側でのみI/O要求を繰り返し、異常を検知する。検知する異常の一例に、I/O要求に対する応答が所定時間を超えるタイムアウトが知られている。ディスクドライバの上位側でI/O要求を繰り返す技術では、ディスクドライバの上位側において、タイムアウト等の異常情報を受信した場合に、即時I/O要求を繰り返すリトライ処理を実行させる。即時I/O要求を繰り返すリトライ処理を実行させる技術では、I/O要求に対する応答がタイムアウトになる度にディスクドライバへI/O要求を繰り返す技術に比べて短時間で異常を検知できる。
特開2008−140086号公報 特開2005−149281号公報 特開2006−31335号公報
従って、冗長化技術を使用した情報システムにおいて、タイムアウト技術により、ディスクドライバにおける応答遅延を抑制することができる。タイムアウト技術では、I/O要求に対するタイムアウト時間を予め定めて、ディスクドライバのI/O要求に対する応答時間を監視する。HDDに異常がある場合や、通信経路に異常がある場合には、I/O要求に対する応答が異常になるので、ディスクドライバはI/O要求を繰り返して実行する。そして、タイムアウト技術では、監視している応答時間が予め定めたタイムアウト時間を経過したときに、ディスクドライバに発行したI/O要求をキャンセルする。I/O要求がキャンセルされると、冗長化技術により冗長化された他のディスクや記憶装置を用いて業務が継続される。
例えば、ディスクミラーリングソフトウェア等の処理によりディスクが冗長化される場合、一方のディスクで応答遅延が生じると、タイムアウト技術により一方のディスクへのI/O要求がキャンセルされる。そして、他方のディスクにI/O要求が発行され、他方のディスクを用いて業務が継続される。また、クラスタリングソフトウェア等の処理によりサーバが冗長化される場合、稼働中の一方のサーバで応答遅延が生じると、タイムアウト技術により一方のサーバに対するI/O要求がキャンセルされる。そして、クラスタリングソフトウェア等の処理により他方のサーバへ稼働が切替られ、切替先のサーバで業務が継続される。
ところが、情報処理システムにおいて、タイムアウト技術により業務処理の停止を抑制するためには、冗長化技術により冗長化されたディスクや記憶装置を把握済みであることが前提となる。すなわち、タイムアウト技術を使用するためには、冗長化技術により冗長化されたディスクや記憶装置の構成や稼働状態を示す情報を予め取得する。取得した冗長化されたディスクや記憶装置の構成や稼働状態を示す情報を用いて、応答遅延が生じるディスクや記憶装置から冗長化されたディスクや記憶装置へ稼働を切り替える。
しかしながら、情報処理システムにおいて、タイムアウト技術を使用するときに、冗長化技術により冗長化されたディスクや記憶装置の構成や稼働状態を示す情報の取得が困難な場合がある。例えば、ディスクや記憶装置を冗長化技術により冗長化するソフトウェアを、ユーザが独自に導入するとき、タイムアウト技術の使用を考慮していない場合がある。従って、情報処理システムがタイムアウト技術により業務継続が可能な構成や状態にあっても、情報処理システムで稼働中の冗長化技術に対して、タイムアウト技術を使用できない場合がある。情報処理システムで稼働中の冗長化技術に対して、タイムアウト技術を使用できないときには、結果としてシステムスローダウンや業務停止に至る場合がある。
1つの側面では、稼働中の冗長化技術に応じて業務処理を遅延なく継続させ、業務処理に対する可用性を高めることが目的である。
開示の技術は、指示部より、複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する。複数の記憶装置は、冗長化部により冗長化されて切り替え可能なコンピュータの各々が使用する複数の記憶装置であって、前記冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む。授受部は、複数の記憶装置の各々に対してデータの入出力を行うと共に、要求情報を受け取った後に応答を行う。監視部は、前記冗長化されて切り替え可能な記憶装置及び該記憶装置を使用するコンピュータに関係する冗長化情報が予め記憶されており、冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に、前記指示部に対して前記授受部より応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記授受部よりの応答を監視する。また、前記冗長化情報は、前記特定の記憶装置を使用するコンピュータの切り替え先である前記他の記憶装置を使用するコンピュータが正常に稼働可能であるかを示す管理情報を出力させる命令を示すコマンドを含み、前記監視部は、前記授受部より応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する。
1つの実施態様では、稼働中の冗長化技術に応じて業務処理を遅延なく継続させ、業務処理に対する可用性を高めることができる。
第1実施形態に係る情報処理装置を示すブロック図である。 コンピュータシステムの一例を示すブロック図である。 ディスクテーブルの一例を示すイメージ図である。 管理テーブルの一例を示すイメージ図である。 コンピュータの作動に関係する機能の一例を示す機能ブロック図である。 コンピュータの作動に関係する階層構造の一例を示すイメージ図である。 I/O監視ドライバの処理の流れの一例を示すフローチャートである。 タイムアウト判定処理の流れの一例を示すフローチャートである。 管理デーモンプロセスの処理の流れの一例を示すフローチャートである。 ディスクテーブルの登録プロセスの流れの一例を示すフローチャートである。 管理テーブルの登録プロセスの流れの一例を示すフローチャートである。 第2実施形態にかかるコンピュータの作動に関係する機能の一例を示す機能ブロック図である。 第2実施形態にかかるディスクテーブルの一例を示すイメージ図である。 第2実施形態にかかる管理テーブルの一例を示すイメージ図である。 第2実施形態にかかる管理デーモンプロセスの処理の流れの一例を示すフローチャートである。
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
<第1実施形態>
図1に、第1実施形態に係る情報処理装置10の構成を示す。情報処理装置10は、指示部18、監視部20、授受部22、管理部12、及びテーブル16を含む記憶部14を備えている。監視部20、管理部12、及び記憶部14は、各々接続されている。また、授受部22は、複数の記憶装置に接続されている。図1では、2台の記憶装置24,26が接続される一例を示す。なお、複数台の記憶装置は、2台の記憶装置24,26を一例として示したが、2台に限定されるものではなく、3台以上でもよい。
第1実施形態では、情報処理装置10において、複数の記憶装置が冗長化されているときに、タイムアウト技術を適用する場合を説明する。なお、複数の記憶装置は、記憶装置24が主となる記憶装置として説明する。
なお、情報処理装置10は開示の技術における情報処理装置の一例である。また、指示部18は、開示の技術における指示部の一例であり、監視部20は開示の技術における監視部の一例である。また、記憶部14に含まれるテーブル16は、開示の技術におけるテーブルの一例である。
情報処理装置10において、冗長化される記憶装置の応答遅延を抑制するにあたり、記憶部14には、情報処理装置10で冗長化される記憶装置24,26の冗長化情報が登録されたテーブル16が含まれている。冗長化情報の一例には、冗長化されているディスクを識別するためのディスクの名称(ディスク名)を示す情報や、記憶装置を冗長化する冗長化ソフトウェアに対して冗長状態を確認するコマンドの名称を示す情報がある。
情報処理装置10において、指示部18は、冗長化ソフトウェアにより冗長化された記憶装置24,26に対してデータの入出力を要求する要求情報を出力してデータの入出力を指示する。監視部20は、記憶装置24,26に対する入出力(I/O)を監視する。監視部20は、I/O監視中でかつ入出力を要求した記憶装置24,26のどちらかより予め定めた応答時間に応答がない場合、記憶装置の応答遅延を抑制する処理を実行する。なお、ここでは、説明を簡単にするために、記憶装置24,26は冗長化されており、データ入出力の要求が記憶装置24になされた場合を説明する。
監視部20は、I/O要求が発行されると、対象の記憶装置24について冗長状態の確認処理を管理部12に依頼する。管理部12は、監視部20より依頼を受け取ると、記憶部14に記憶されたテーブル16を参照し、依頼対象の記憶装置24の冗長化情報に基づいて冗長状態を取得し、監視部20へ返す。記憶装置24と記憶装置26は冗長化されているので、記憶装置24への要求に対する応答に対してタイムアウトしても、使用する記憶装置を記憶装置24より記憶装置26に切り替えて業務処理を継続できる。
そこで、管理部12は、タイムアウト可能であることを示す情報を含む冗長状態を監視部20へ返す。監視部20は、管理部12より返信された冗長状態に基づいて、記憶装置24より応答がないことを示す情報を指示部18へ出力する。指示部18は、監視部20から出力された情報により使用する記憶装置を記憶装置24から記憶装置26へ切り替える。従って、冗長化ソフトウェアにより冗長化された記憶装置について応答遅延が発生することを抑制できる。これにより、I/Oに応答遅延が発生した場合であっても応答時間を短縮でき、装置の可用性を高めることができる。
図2に、情報処理装置10を、コンピュータシステム30に含まれるコンピュータで実現する場合の一例を示す。コンピュータシステム30は、同一構成のコンピュータ32,34を含み、コンピュータ32,34の各々は通信用のネットワーク36を介して接続されている。また、コンピュータシステム30は、コンピュータ32,34の双方で共通に使用するデータを格納するためのストレージ40を含んでいる。コンピュータ32,34及びストレージ40は、ストレージネットワーク38を介して接続されている。ストレージ40は、ディスク86,88を備え、ディスク86,88は冗長化される。
コンピュータ32はCPU42、メモリ44、不揮発性の格納部54を備えている。CPU42、メモリ44、及び格納部54はバス80を介して互いに接続されている。格納部54はHDDやフラッシュメモリ等によって実現できる。また、コンピュータ32はネットワーク36に接続するための通信制御部50を備え、通信制御部50はバス80に接続されている。また、コンピュータ32は、出力デバイスの一例の表示装置46、キーボードやマウス等の入力デバイスの一例の入力装置47を備えている。表示装置46、及び入力装置47はバス80に接続されている。また、コンピュータ32は、光ディスク等の記録媒体49が挿入され、挿入された記録媒体49に対して読み書きするための装置(R/W装置)48を備え、R/W装置48はバス80に接続されている。なお、表示装置46、入力装置47、及びR/W装置48は、省略してもよく、必要に応じてバス80に接続するようにしてもよい。
また、コンピュータ32は、ストレージネットワーク38に接続するためのストレージ制御部52を備え、ストレージ制御部52はバス80に接続されている。また、コンピュータ32は、情報を格納するためのディスク82,84を備え、ディスク82,84はバス80に接続されている。ディスク82,84は、冗長化される(詳細は後述)。
格納部54には、管理プログラム56、アプリケーションプログラム60、クラスタソフトウェア62,及び冗長化ソフトウェア64が記憶されている。管理プログラム56、アプリケーションプログラム60、クラスタソフトウェア62,及び冗長化ソフトウェア64は、OS(Operating System)より上位のユーザ層で実行されるソフトウェアとして分類される。また、格納部54には、OSのカーネル層で実行されるソフトウェアとして分類されるドライバ66が記憶されている。また、格納部54には、ディスクテーブル76及び管理テーブル78を含むデータベース74が記憶される。
なお、アプリケーションプログラム60は、コンピュータ32で実行される各種のプログラムである。また、クラスタソフトウェア62は、サーバ等のコンピュータの冗長化処理を実行するソフトウェアであり、CPU42が、クラスタソフトウェア62を格納部54から読み出してメモリ44に展開して実行することにより、コンピュータ32,34が冗長化される。冗長化ソフトウェア64は、記憶装置の冗長化処理を実行するソフトウェアであり、CPU42が、冗長化ソフトウェア64を格納部54から読み出してメモリ44に展開して実行することにより、ディスク82,84が冗長化される。
第1実施形態では、冗長化される記憶装置の応答遅延を抑制するために、管理プログラム56、及びドライバ66が実行される。CPU42は、管理プログラム56を格納部54から読み出してメモリ44に展開し、管理プログラム56に含まれるプロセスを実行する。また、CPU42は、ドライバ66を格納部54から読み出してメモリ44に展開し、実行する。つまり、情報処理装置10がコンピュータ32で実現され、CPU32が管理プログラム56及びドライバ66を実行することで、コンピュータ32は情報処理装置10として動作される。
なお、管理プログラム56及びドライバ66の一部は、開示の技術における情報処理プログラムの一例である。また、管理プログラム56及びドライバ66は、コンピュータ32を情報処理装置として機能させるためのプログラムでもある。また、コンピュータ32に処理を実行させるためのプログラムを記録した光ディスク等の記録媒体49は開示の技術の記録媒体の一例である。また、格納部54の実現例であるHDD(Hard Disk Drive)は、開示の技術の記録媒体の一例でもある。また、冗長化ソフトウェア64は、開示の技術における冗長化部の一例である。
ドライバ66は、ディスクミラーリングドライバ68、I/O監視ドライバ70、及びディスクドライバ72を含んでいる。ディスクミラーリングドライバ68は、冗長化ソフトウェア64の実行により冗長化されるディスク82,84に対して、データの入出力処理を要求する要求情報を出力することでデータの入出力を指示する。すなわち、ディスクミラーリングドライバ68は、アプリケーションプログラム60よりディスクに対するデータの入出力を受け付けると、冗長化されるディスク82,84に対して要求情報を出力したりデータの入出力を指示して処理する。CPU42は、ディスクミラーリングドライバ68を実行することで、図1に示す情報処理装置10における指示部18として動作する。すなわち、情報処理装置10がコンピュータ32で実現され、ディスクミラーリングドライバ68を実行することでコンピュータ32は情報処理装置10の指示部18として動作される。
ディスクドライバ72は、ディスク82,84に対して、データの入出力を実行する。すなわち、ディスクドライバ72は、ディスク82,84に対するデータの入出力が要求されると、ディスク82,84に対してデータの入出力を処理する。CPU42は、ディスクドライバ72を実行することで、図1に示す情報処理装置10における授受部22として動作する。すなわち、情報処理装置10がコンピュータ32で実現され、ディスクドライバ72を実行することでコンピュータ32は情報処理装置10の授受部22として動作される。
I/O監視ドライバ70は、ディスクミラーリングドライバ68とディスクドライバ72の間で、入出力(I/O)の応答時間を監視する処理を実行する。詳細は後述するが、I/O監視ドライバ70は、ディスクドライバ72からI/Oのタイムアウト時間内に応答がない場合、I/Oの応答遅延が発生したと判断し、管理デーモンプロセス58にI/Oのタイムアウト機能の実施可否を問い合わせる。I/O監視ドライバ70は、問い合わせ結果に応じて、実施可能な場合に、I/Oのタイムアウト機能を実施する。CPU42は、I/O監視ドライバ70を実行することで、図1に示す情報処理装置10における監視部20として動作する。すなわち、情報処理装置10がコンピュータ32で実現され、I/O監視ドライバ70を実行することでコンピュータ32は情報処理装置10の監視部20として動作される。
管理プログラム56は、管理デーモンプロセス58を含んでいる。管理デーモンプロセス58は、カーネル層に分類されるI/O監視ドライバ70では実施困難な処理を担当するユーザ層のプログラムである。管理デーモンプロセス58は、I/O監視ドライバ70から問い合わせを受け取ると、冗長化ソフトウェアの管理テーブル78を確認し、稼働中の冗長化ソフトウェアに対して冗長状態をチェックするコマンドを発行する。管理デーモンプロセス58は、冗長化ソフトウェアよりコマンドに対する返信結果からI/Oのタイムアウト機能実施の可否を判断し、判断結果をI/O監視ドライバ70に応答する。CPU42は、管理デーモンプロセス58を実行することで、図1に示す情報処理装置10における管理部12として動作する。すなわち、情報処理装置10がコンピュータ32で実現され、管理デーモンプロセス58を実行することでコンピュータ32は情報処理装置10の管理部12として動作される。
なお、冗長化ソフトウェアに対して発行する冗長状態をチェックするコマンドは、冗長化ソフトウェア64に対象のディスクの冗長状態を問い合わせて、I/Oのタイムアウト機能の実行可否を通知する命令を示す情報である。例えば、ディスクミラーリングソフトウェア等の処理によりディスクが冗長化される場合、対象ディスクについてディスクミラーリング処理の稼働状態が正常であり、一方のディスクを縮退しても正常に稼働可能であるかを示す情報が、コマンドに対する返信となる。また、例えばクラスタリングソフトウェア等によりサーバが冗長化される場合、対象のディスクを使用しているクラスタリングソフトウェアについて、切り替えられる切替先のコンピュータが正常に稼働可能であるかを示す情報が、コマンドに対する返信となる。
また、コンピュータ32の格納部54に記憶されるデータベース74は、ディスクテーブル76,及び管理テーブル78を含んでいる。コンピュータ32の格納部54に記憶されたデータベース74は図1に示す情報処理装置10の記憶部14に対応する。つまり、情報処理装置10がコンピュータシステム30によるコンピュータ32で実現されるとき、ディスクテーブル76,及び管理テーブル78を含むデータベース74は、記憶部14に対応する。
ディスクテーブル76は、I/O監視ドライバ70において冗長化されているディスクを判別するために使用するものであり、冗長化されているディスクを管理するための情報がテーブルとしてデータベース74に格納される。冗長化されているディスクを管理するための情報の一例には、冗長化されているディスクを識別するためのディスクの名称(ディスク名)を示す情報がある。
図3に、ディスクテーブル76の一例を示す。ディスクテーブル76は、「冗長構成ディスク」の項目に対して、ディスクを識別するためのディスク名を示す情報が登録される。図3では、項目「冗長構成ディスク」に示す情報として、冗長化されているディスクの名称を示す「ディスク#1」、「ディスク#2」、「ディスク#3」、「ディスク#5」の情報が記憶されている一例を示す。
なお、ディスクテーブル76は、ユーザにより予め登録される。例えば、冗長化ソフトウェア64により冗長化されるディスクの登録、変更及び削除が生じたとき、ユーザは管理プログラム56に含まれるディスクテーブルの登録プロセスを起動して、ディスクテーブル76におけるディスクの登録、変更及び削除を指示する。
図10に、ディスクテーブル76を登録する登録プロセスの流れの一例を示す。図10に示す処理ルーチンは、コンピュータ32の稼働中に、ユーザによる入力装置47の操作、例えば登録プロセスの実行指示により開始される。まず、ユーザは、入力装置47の操作により、冗長構成ディスクを示す情報、つまり冗長化されるディスクの名称を示す情報を入力する。ユーザにより入力された情報の入力値を、コンピュータ32のCPU42は、ステップ150において、冗長構成のディスクに関する情報の入力値として取得する。次に、CPU42は、ユーザによる入力装置47の操作、例えば予め定めた終了キーの押圧指示がなされるまで(ステップ152で否定判断のとき)、冗長構成のディスクに関する情報の入力値の取得を繰り返す。CPU42は、ステップ152で肯定判断のとき、ステップ154において、ステップ150で取得した入力値をディスクテーブル76に登録し、本処理ルーチンを終了する。
管理テーブル78は、管理デーモンプロセス58が冗長化ソフトウェア64に問い合わせを行う際に引数として使用するものであり、冗長化ソフトウェア64に対する問い合わせに関する情報がテーブルとしてデータベース74に格納される。冗長化ソフトウェア64に対する問い合わせに関する情報の一例には、冗長化ソフトウェア64に対応する冗長状態の確認コマンド名、及び登録されているディスク名を示す情報がある。
図4に、管理テーブル78の一例を示す。管理テーブル78には、「No.」、「コマンド名」、及び「ディスク」の各情報が対応付けて各々登録される。
項目「No.」に示す情報は、登録順序を示す情報である。項目「コマンド名」に示す情報は、対象の冗長化ソフトウェアに対する問い合わせを示す命令のコマンド名を示す情報である。項目「ディスク」に示す情報は、対象の冗長化ソフトウェアにより冗長化されているディスクの組み合わせを示す情報である。図4に示すNo.1の一例では、項目「No.」に「1」の情報、項目「コマンド名」に「コマンド1」の情報、及び項目「ディスク」に「ディスク#1,ディスク#2」の情報が対応付けて登録されている。
なお、管理テーブル78は、ユーザにより予め登録される。例えば、冗長化ソフトウェア64に対する問い合わせに関する情報の登録、変更及び削除が生じたとき、ユーザは管理プログラム56に含まれる管理テーブルの登録プロセスを起動して、管理テーブル78における各項目の登録、変更及び削除を指示する。
図11に、管理テーブル78を登録する登録プロセスの流れの一例を示す。図11に示す処理ルーチンは、コンピュータ32の稼働中に、ユーザによる入力装置47の操作、例えば登録プロセスの実行指示により開始される。まず、ユーザは、入力装置47の操作により、冗長化ソフトウェア64に対する問い合わせを示す命令のコマンド名を示す情報、及び冗長化されているディスクの名称を示す情報を入力する。ユーザにより入力された情報の入力値を、コンピュータ32のCPU42は、ステップ160において、取得する。次に、CPU42は、ユーザによる入力装置47の操作、例えば予め定めた終了キーの押圧指示がなされるまで(ステップ162で否定判断のとき)、冗長化コマンドに関する情報の入力値を取得を繰り返す。CPU42は、ステップ162で肯定判断のとき、ステップ164において、ステップ160で取得した入力値を管理テーブル78に登録し、本処理ルーチンを終了する。
図2に示すように、コンピュータシステム30のネットワーク36には、コンピュータ32,34が接続されている。コンピュータ32,34は、同一構成のコンピュータであるので、コンピュータ34はコンピュータ32と同一部分について同一符号を付して詳細な説明を省略する。
次に第1実施形態の作用を説明する。第1実施形態は、冗長化される記憶装置の応答遅延を抑制する一例として、コンピュータ32に対するI/O要求についての処理を説明する。
図5に、コンピュータシステム30において、コンピュータ32の作動に関係する機能を主体とする機能ブロックの一例を示す。図6に、コンピュータ32の作動時におけるソフトウェア機能の階層構造の一例を示す。図6は、第1実施形態にかかるコンピュータ32の作動に関係する階層構造として、ユーザ層90,カーネル層92、及びハードウェア層94に分類した一例を示す。
なお、第1実施形態では、ディスク82,84は、冗長化されている。例えば、データを記録する場合には、冗長化されているディスク82,84の両方に、同一データが記録される。また、データを読み取る場合には、冗長化ソフトウェアにより定められたディスク82またはディスク84より行われる。また、冗長化されているディスク82,84は、個別に識別されるのではなく、仮想的に1つのディスクとして識別される場合がある。そこで、以下では説明を簡単にするため、個別に識別されるのではない冗長化されているディスク82,84を扱う場合には、ディスク83として説明する。また、冗長化されているディスク82,84のうち、ディスク82が主体となるディスクとして説明する。
コンピュータ32では、冗長化ソフトウェア64によりディスク82,84が冗長化されており、冗長化されたハードウェア層94のディスク83に対してユーザ層90においてアプリケーションプログラム60がデータの読み書きを要求する。アプリケーションプログラム60がデータの読み書きを要求すると、カーネル層92において、ディスクミラーリングドライバ68はディスクドライバ72に対して対象となるディスク83にI/O要求を行う。つまり、ディスクミラーリングドライバ68はディスクドライバ72に対して対象となる主体のディスク82にI/O要求を行う。ディスクドライバ72は、I/O要求を受け取ると、応答としてディスク82の状態をディスクミラーリングドライバ68へ返す。
ディスクミラーリングドライバ68が行うI/O要求及びディスクドライバ72による応答は、カーネル層92におけるI/O監視ドライバ70により監視される。I/O監視ドライバ70は、ディスクテーブル76(図3)を確認し、対象のディスクが冗長化されているか否かを判別する。対象のディスクが冗長化されているとき、I/O監視ドライバ70は、ディスク83に対するI/O監視を開始する。つまり、I/O監視ドライバ70は、ディスクドライバ72から予め定めたタイムアウト時間内に応答がない場合、応答遅延が発生したとして、ユーザ層90における管理デーモンプロセス58にタイムアウト機能の実施可否を問い合わせる。管理デーモンプロセス58は、冗長化ソフトウェアの管理テーブル78(図4)を確認し、冗長状態を確認するコマンドを取得し、取得したコマンドをユーザ層90における対象の冗長化ソフトウェア64に発行する。
なお、図6では、冗長化ソフトウェア64に、3つの冗長化ソフトウェア64A,64B,64Cを含む一例を示す。冗長化ソフトウェア64A,64B,64Cの各々について、図6では、冗長化ソフト1,冗長化ソフト2,冗長化ソフト3と表記している。また、図6では、冗長化ソフトウェア64A,64B,64Cの各々に対応して問い合わせるコマンドを、コマンド1,コマンド2,コマンド3と表記している。図6では、冗長化ソフトウェア64として3つの冗長化ソフトウェア64A,64B,64Cを含む一例を示すが、冗長化ソフトウェア64は1つ以上含まれていればよい。
冗長化ソフトウェア64は、受け取ったコマンドにより冗長状態を管理デーモンプロセス58へ返す。管理デーモンプロセス58は、冗長化ソフトウェア64の返信結果からタイムアウト機能を実施可能か否かを判断し、I/O監視ドライバ70に応答する。I/O監視ドライバ70は、管理デーモンプロセス58よりタイムアウト機能の実施可能を示す情報を受け取ると、ディスクドライバ72からの応答を待たずにタイムアウトしたことをディスクミラーリングドライバ68へ返すタイムアウト機能を実施する。従って、ディスクテーブル76を用いて処理するI/O監視ドライバ70、管理テーブル78を用いて処理する管理デーモンプロセス58は、タイムアウト機能を実現するためのタイムアウト判別部96として機能する。
次に、コンピュータ32の作動をさらに説明する。
図7に、コンピュータ32で実行されるカーネル層92におけるI/O監視ドライバ70の処理の流れを示す。図7に示す処理ルーチンは、コンピュータ32の稼働中に、ディスクミラーリングドライバ68よりI/O要求が発行されると実行される。つまり、コンピュータ32のCPU42は、ディスクミラーリングドライバ68によってI/O要求が行われる度に、図7に示す処理ルーチンを実行する。
コンピュータ32のCPU42は、ステップ100において、ディスクミラーリングドライバ68よりなされるI/O要求を受け取る。次に、CPU42は、ステップ102において、ディスクテーブル76を参照して対象のディスクがディスクテーブル76に登録されているか否かを確認する。対象のディスクがディスクテーブル76に登録されているとき、CPU42は、ステップ104で肯定判断し、ステップ106の処理へ移行する。一方、対象のディスクがディスクテーブル76に登録されていない場合、冗長化されていないディスクに対するI/O要求である。従って、冗長化されていないディスクに対するI/O要求を行う。すなわち、CPU42は、対象のディスクがディスクテーブル76に登録されていないとき(ステップ104で否定判断)、ステップ114においてディスクドライバ72へI/O要求を発行し、ディスクドライバ72からの応答を待機する。ディスクドライバ72から応答がなされると、CPU42は、ステップ116において、ディスクドライバ72よりの応答であるI/O要求の結果をディスクミラーリングドライバ68へ返し、本処理ルーチンを終了する。
対象のディスクがディスクテーブル76に登録されている場合、冗長化されているディスクに対するI/O要求であるので、ディスク83に対するI/O監視を開始する。すなわち、CPU42は、ステップ106において、I/O監視のための予め定めたタイムアウト時間を監視時間に設定することにより、I/O応答時間の監視を設定する。次に、CPU42は、ステップ108において、ディスクドライバ72へI/O要求を発行し、ディスクドライバ72よりの応答を、タイムアウト時間について待機する。タイムアウト時間内にディスクドライバ72より応答があれば、冗長化されているディスク83は正常稼働中と判断できる。従って、CPU42は、タイムアウト時間内にディスクドライバ72より応答があるとき(ステップ110で肯定判断)、ステップ116において、ディスクドライバ72よりの応答であるI/O要求の結果をディスクミラーリングドライバ68へ返す。
タイムアウト時間内にディスクドライバ72より応答がない場合、冗長化されているディスク83のうち、主となるディスク82に何らかの障害が生じており、応答遅延を招く可能性がある。主となるディスク82に何らかの障害が生じている場合、応答遅延を回避できる可能性を含んでいる。そこで、CPU42は、タイムアウト時間内にディスクドライバ72より応答がないとき(ステップ110で否定判断)、ステップ112において、タイムアウト判定処理を行った後に、ステップ116の処理へ移行する。
次に、図7に示すステップ112のタイムアウト判定処理についてさらに説明する。
図8に、タイムアウト判定処理の流れの一例を示す。タイムアウト判定処理では、まず、コンピュータ32のCPU42は、ステップ120において、管理プログラム56の管理デーモンプロセス58に対する問い合わせ処理を実行する。管理デーモンプロセス58に対する問い合わせ処理は、対象のディスクがI/O要求に対してタイムアウトすることが可能な冗長状態であるか否かを示すタイムアウトの可否を問い合わせる処理である。具体的には、CPU42は、ステップ102で確認した対象のディスクの名称(ディスク名)を入力とする問い合わせの依頼を示す情報を、管理デーモンプロセス58へ送り、管理デーモンプロセス58よりの返信を待機する。管理デーモンプロセス58は、後述するように、タイムアウトの可否を示す情報を返信する。
次に、CPU42は、ステップ122において、管理デーモンプロセス58より返信されるタイムアウトの可否を示す情報を受け取る。対象のディスク(82)が冗長化されて正常に稼働中の冗長状態であるとき、対象のディスク(82)による稼働を、冗長化されている他のディスク(84)による稼働に切り替えることが可能である。つまり、冗長化されている他のディスク(84)に稼働に切り替えるために、対象のディスク(82)によるI/O要求に対してタイムアウトが可能である。そこで、CPU42は、稼働の切替が可能な冗長状態を示す情報をタイムアウトが可能である情報として受け取ると(ステップ124で肯定判断)、ステップ126において、ディスクドライバ72へ発行したI/O要求をキャンセルし、本処理ルーチンを終了する。
従って、図7のステップ116では、ディスクドライバ72よりの応答を待たずにI/O要求の結果、すなわち対象のディスク82より応答が無いことを示す情報をディスクミラーリングドライバ68へ返すことができる。ディスクミラーリングドライバ68が対象のディスク82より応答が無いことを示す情報を受け取ると、冗長化ソフトウェア64は、対象のディスク82による稼働を、冗長化されている他のディスク84による稼働に切り替えることができる。
対象のディスク(82)が稼働を切替可能な冗長状態にないときは、対象のディスク(82)による稼働が必要である。そこで、CPU42は、稼働の切替が困難な状態を示す情報をタイムアウトが困難である情報として受け取ると(ステップ124で否定判断)、ステップ128へ処理を移行する。ステップ128では、ステップ106(図7)で設定したタイムアウト時間を経過した後においてもディスクドライバ72からの応答を待機し、ディスクドライバ72から応答がなされると、本処理ルーチンを終了する。
次に、管理デーモンプロセス58の処理について説明する。
図9に、コンピュータ32で実行されるユーザ層90における管理デーモンプロセス58の処理の流れの一例を示す。図9に示す処理ルーチンは、コンピュータ32の稼働中に、I/O監視ドライバ70より問い合わせの依頼を示す情報が出力されると実行される。つまり、コンピュータ32のCPU42は、I/O監視ドライバ70による処理で問い合わせの依頼がなされる度に、図9に示す処理ルーチンを実行する。
コンピュータ32のCPU42は、ステップ130において、管理テーブル78を確認し、管理テーブル78に登録済みのコマンドの総数を取得し、かつ取得した総数を変数xに格納する。図4に示す管理テーブル78の例では、コマンド名とディスクの対応が4組登録されているので、変数xには「4」の値が格納される。ステップ130で取得するコマンドの総数は、管理テーブル78への登録数であり、同一のコマンド名のコマンドが複数登録されている場合であっても重複して計数する。
次に、CPU42は、ステップ132において、カウンタ変数Nをリセットし(N=0)、次のステップ134においてカウンタ変数Nを1だけインクリメントする(N=N+1)。次にCPU42は、ステップ136において、カウンタ変数Nの値が変数xの値以下(N<=x)か否かを判断する。カウンタ変数Nの値が変数xの値を超えるときは、対象のディスクを冗長化している冗長化ソフトウェア64に対する冗長状態の問い合わせ結果が、対象のディスクを切替可能な冗長状態になく、タイムアウトが困難であることを示す。従って、N>xのとき(ステップ136で否定判断)、CPU42は、ステップ146において、稼働の切替が困難な冗長状態を示す情報、つまりタイムアウトが困難であることを示す情報を、I/O監視ドライバ70へ返信(通知)し、本処理ルーチンを終了する。
カウンタ変数Nの値が変数xの値以下のとき、管理テーブル78に冗長状態の問い合わせコマンドに関する情報が残存する。従って、カウンタ変数Nの値が変数xの値以下のとき(ステップ136で肯定判断)、CPU42は、ステップ138において、管理テーブル78の第N番目の情報に、対象のディスクが含まれるか否かを判断する。すなわち、管理テーブル78の第N番目の項目「ディスク」の情報に、対象のディスクのディスク名が含まれるか否かを判断する。項目「ディスク」の情報に、対象のディスクのディスク名が含まれていないとき(ステップ138で否定判断)、管理テーブル78の第N番目の情報は、対象のディスクに無関係である。CPU42は、ステップ138で否定判断すると、ステップ134へ戻り、管理テーブル78における次の情報の処理へ移行する。
項目「ディスク」の情報に、対象のディスクのディスク名が含まれるとき(ステップ138で肯定判断)、CPU42は、ステップ140において、管理テーブル78の第N番目の情報におけるコマンドを実行する。すなわち、管理テーブル78の第N番目の項目「コマンド名」の情報によるコマンドを実行する。冗長化ソフトウェア64は、コマンドが実行されると、自身で管理している冗長化しているディスクの冗長状態を確認し、確認結果を示す情報を、管理デーモンプロセス58へ返す。冗長化ソフトウェア64による確認結果を示す情報の一例には、稼働の切替が可能な冗長状態を示す情報または稼働の切替が困難な状態を示す情報がある。冗長化ソフトウェア64による確認結果を示す情報は、稼働の切替が可能な冗長状態を示す情報の値として「1」が返信される。また、稼働の切替が困難な状態を示す情報の値には「0」が返信される。
冗長化ソフトウェア64から返信された確認結果を示す情報の値が「0」であるとき(ステップ142で肯定判断)、管理テーブル78の第N番目の情報では、稼働の切替が困難であることを示している。そこで、CPU42は、ステップ134へ戻り、管理テーブル78における次の情報の処理へ移行する。
冗長化ソフトウェア64から返信された確認結果を示す情報の値が「1」であるとき(ステップ142で否定判断)、管理テーブル78の第N番目の情報で、稼働の切替が可能であることを示している。そこで、CPU42は、ステップ144において、稼働の切替が可能な冗長状態を示す情報、つまりタイムアウトが可能であることを示す情報を、I/O監視ドライバ70へ返信(通知)し、本処理ルーチンを終了する。
以上説明したように、第1実施形態では、冗長化ソフトウェア64によりディスク83が冗長化されていれば、ディスクドライバ72からの応答を待たずにタイムアウトしたことを知らせるタイムアウト機能を実現できる。すなわち、ディスクミラーリングドライバ68自身にタイムアウト機能を含ませる必要はない。また、冗長化ソフトウェア64によりディスク83が冗長化されているときに、I/O監視ドライバ70によりタイムアウト機能を実施できる。従って、コンピュータ32にI/Oの応答遅延が発生した場合にI/Oの応答時間を短縮することができ、コンピュータ32ひいてはコンピュータシステム30全体の可用性を高めることができる。
<第2実施形態>
次に第2実施形態を説明する。第2実施形態は、クラスタリングソフトウェア等の処理によりサーバ等のコンピュータが冗長化される場合に、開示の技術を適用したものである。つまり、第2実施形態では、稼働中のコンピュータにおける応答遅延を抑制して、冗長化される待機用のコンピュータに切り替える。なお、第2実施形態は、第1実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
第2実施形態では、クラスタリングソフトウェアによりコンピュータを冗長化する一例に、コンピュータ32を運用系のサーバとして稼働するコンピュータとし、コンピュータ34を待機系のサーバとして稼働するコンピュータとする場合を説明する。
なお、以下の説明では、運用系のコンピュータ32は第1実施形態と同一符号を用いて、詳細な説明を省略する。また、待機系のコンピュータ34は、運用系のコンピュータ32と同一構成である一例を説明し、運用系のコンピュータ32の符号の後に、記号「S」を付してコンピュータ32,34を区別して扱う。
図12に、第2実施形態にかかるコンピュータシステム30においてコンピュータ32の作動に関係する機能を主体とする機能ブロックの一例を示す。
コンピュータシステム30において、コンピュータ32はクラスタソフトウェア62を含み、コンピュータ34はクラスタソフトウェア62Sを含んでおり、コンピュータ32とコンピュータ34が冗長化される。つまり、コンピュータ32とコンピュータ34とは、常に同一状態に維持されており、コンピュータ32に運用上の不具合が生じると、コンピュータ34を運用系に切り替えることができるようになっている。
コンピュータ32では、ディスク82またはディスク84に対してユーザ層90においてアプリケーションプログラム60がデータの読み書きを要求する。アプリケーションプログラム60がデータの読み書きを要求すると、カーネル層92においてディスクドライバ72に対して対象となるディスク82,84にI/O要求を行う。ディスクドライバ72は、I/O要求を受け取り、例えばディスク82の状態を応答としてアプリケーションプログラム60へ返す。なお、以下の説明を簡単にするために、コンピュータ32ではディスク82に対してアプリケーションプログラム60がデータの読み書きを要求するものとする。
I/O監視ドライバ70は、I/O要求及びディスクドライバ72による応答を監視する。I/O監視ドライバ70は、ディスクテーブル76を確認し、対象のディスクが冗長化されているか否かを判別する。第2実施形態では、コンピュータが冗長化されるので、ディスクテーブル76には、コンピュータ32において冗長化される全てのディスクが登録される。
第2実施形態にかかるディスクテーブル76は、I/O監視ドライバ70において冗長化されているディスクを判別するために使用するものであり、冗長化されているディスクを管理するための情報がテーブルとしてデータベース74に格納される。冗長化されているディスクを管理するための情報の一例には、冗長化されるコンピュータに含まれる冗長化対象のディスクを識別するためのディスクの名称(ディスク名)を示す情報がある。
図13に、第2実施形態にかかるディスクテーブル76の一例を示す。ディスクテーブル76は、図13では、冗長化されているディスクの名称を示す「ディスク#1」、「ディスク#2」、「ディスク#3」、「ディスク#4」、「ディスク#5」の情報が記憶されている一例を示す。
なお、ディスクテーブル76は、ユーザにより予め登録される。例えば、クラスタソフトウェア62により冗長化されるディスクの登録、変更及び削除が生じたとき、ユーザは管理プログラム56に含まれるディスクテーブルの登録プロセスを起動して、ディスクテーブル76におけるディスクの登録、変更及び削除を指示する。
コンピュータ32はクラスタソフトウェア62により冗長化されているので、I/O監視ドライバ70は、ディスク82に対するI/O監視を開始する。つまり、I/O監視ドライバ70は、ディスクドライバ72から予め定めたタイムアウト時間内に応答がない場合、応答遅延が発生したとして、ユーザ層90における管理デーモンプロセス58にタイムアウト機能の実施可否を問い合わせる。管理デーモンプロセス58は、冗長化ソフトウェアの管理テーブル78を確認し、冗長状態を確認するコマンドを取得し、取得したコマンドをユーザ層90における対象のクラスタソフトウェア62に発行する。
第2実施形態にかかる管理テーブル78は、管理デーモンプロセス58がクラスタソフトウェア62に問い合わせを行う際に用いるものであり、クラスタソフトウェア62に対する問い合わせに関する情報がテーブルとしてデータベース74に格納される。クラスタソフトウェア62に対する問い合わせに関する情報の一例には、クラスタソフトウェア62に対応する冗長状態の確認コマンド名、及びコンピュータの名称やコンピュータに含まれるディスクの名称を示す情報がある。
図14に、第2実施形態にかかる管理テーブル78の一例を示す。管理テーブル78には、「No.」、「コマンド名」、及びクラスタリングを示す各情報が対応付けて各々登録される。クラスタリングを示す情報は、クラスタソフトウェア62によりクラスタリングされるコンピュータ同士の関係を示す情報であり、図14では「サーバ」及び「ディスク」を示す各情報が対応付けて各々登録される一例を示す。
項目「サーバ」に示す情報は、クラスタソフトウェア62によりクラスタリングされるコンピュータを示す情報である。項目「ディスク」に示す情報は、対象のクラスタソフトウェア62により冗長化されるコンピュータにおいてクラスタリングの対象とするディスクを示す情報である。図14に示すNo.1の一例では、運用系のコンピュータ32として項目「サーバ」に「サーバ#1」の情報及び項目「ディスク」にディスク82,ディスク84として「ディスク#1,ディスク#2」の情報が対応付けて登録されている。また、待機系のコンピュータ34として項目「サーバ」に「サーバ#2」の情報及び項目「ディスク」にディスク82S,ディスク84Sとして「ディスク#1,ディスク#2」の情報が対応付けて登録されている。
なお、管理テーブル78は、ユーザにより予め登録される。例えば、クラスタソフトウェア62に対する問い合わせに関する情報の登録、変更及び削除が生じたとき、ユーザは管理プログラム56に含まれる管理テーブルの登録プロセスを起動して、管理テーブル78における各項目の登録、変更及び削除を指示する。
クラスタソフトウェア62は、受け取ったコマンドにより冗長状態を管理デーモンプロセス58へ返す。管理デーモンプロセス58は、クラスタソフトウェア62の返信結果からタイムアウト機能を実施可能か否かを判断し、I/O監視ドライバ70に応答する。I/O監視ドライバ70は、管理デーモンプロセス58よりタイムアウト機能を実施可能であることを示す情報を受け取ると、ディスクドライバ72からの応答を待たずにタイムアウトしたことをアプリケーションプログラム60へ返すタイムアウト機能を実施する。従って、ディスクテーブル76を用いて処理するI/O監視ドライバ70、管理テーブル78を用いて処理する管理デーモンプロセス58は、タイムアウト機能を実現するためのタイムアウト判別部96(図6)として機能する。
なお、アプリケーションプログラム60は、I/O要求に対してタイムアウトしたことを示す情報を受け取ると、クラスタソフトウェア62に通知することができる。クラスタソフトウェア62は、アプリケーションプログラム60によるI/O要求がタイムアウトしたことを示す情報を受け取ると、待機系のコンピュータ34にコンピュータの稼働を切り替えることができる。タイムアウトしたことを示す情報を、クラスタソフトウェア62が直接受け取っても良い。従って、運用系のコンピュータ32において、応答遅延が生じてコンピュータ32の稼働に支障が生じる前に、クラスタソフトウェア62により、コンピュータを切り替えることができる。
図15に、第2実施形態にかかるコンピュータ32で実行されるカーネル層92におけるI/O監視ドライバ70の処理の流れを示す。図15に示す処理ルーチンは、コンピュータ32の稼働中に、ディスクに対してI/O要求が発行されると実行される。つまり、コンピュータ32のCPU42は、ディスク82,84にI/O要求がなされる度に、図15に示す処理ルーチンを実行する。
コンピュータ32のCPU42は、ステップ200において、ディスクに対してなされるI/O要求を受け取る。例えば、CPU42は、アプリケーションプログラム60から要求されるディスク82に対してなされるI/O要求を受け取る。次に、CPU42は、対象ディスクのディスクテーブル76への登録を確認し(ステップ102)、登録されているとき(ステップ104で肯定判断)、第1実施形態と同様にステップ106〜ステップ112の処理へ移行する。一方、対象のディスクがディスクテーブル76に登録されていない場合(ステップ104で否定判断)、冗長化されていないディスクに対するI/O要求である。このため、ディスクに対するI/O要求を行い(ステップ114)ディスクドライバ72よりの応答を待機する。ディスクドライバ72より応答がなされると、CPU42は、ステップ202において、ディスクドライバ72よりの応答であるI/O要求の結果を上位ソフトウェア(ここでは、アプリケーションプログラム60)へ返し、本処理ルーチンを終了する。
ディスク82に対するI/O監視を開始してタイムアウト時間内にディスクドライバ72より応答がないとき(ステップ104で肯定判断〜ステップ110で否定判断)、タイムアウト判定処理を行う(ステップ112)。
タイムアウト判定処理では、CPU42は、管理デーモンプロセス58に対する問い合わせ処理を実行する(図8も参照)。CPU42は、問い合わせの依頼を示す情報を、管理デーモンプロセス58へ送り、返信されたタイムアウトの可否を示す情報に応じて、対象のディスク82に対する処理を実行する。つまり、タイムアウトが可能な場合には冗長化されている待機系のコンピュータ34に含まれるディスク82Sによる稼働に切り替えることが可能である。そこで、CPU42は、タイムアウトが可能である情報として受け取ると、ディスクドライバ72へ発行したI/O要求をキャンセルし、本処理ルーチンを終了する。従って、ディスクドライバ72よりの応答を待たずにI/O要求の結果をアプリケーションプログラム60へ返すことができる。
管理デーモンプロセス58は、第1実施形態と同様に、I/O監視ドライバ70より問い合わせの依頼を示す情報が出力されると実行される(図9も参照)。
管理デーモンプロセス58では、冗長化されたコンピュータに関する管理テーブル78を確認し、コマンドを実行することで、クラスタソフトウェア62に対する冗長状態の問い合わせを行う。管理デーモンプロセス58は、クラスタソフトウェア62より返信された冗長状態を示す情報の値に応じて、タイムアウトの可否を示す情報を、I/O監視ドライバ70へ通知する。
以上説明したように、第2実施形態では、クラスタソフトウェア62によりコンピュータのディスクが冗長化されていれば、ディスクドライバ72からの応答を待たずにタイムアウトしたことを知らせるタイムアウト機能を実施できる。すなわち、クラスタソフトウェア62に関係するカーネル層のドライバ自身にタイムアウト機能を含ませる必要はない。また、クラスタソフトウェア62によりコンピュータのディスクが冗長化されているときに、I/O監視ドライバ70によりタイムアウト機能を実施できる。I/O監視ドライバ70によるタイムアウト機能の実施により、コンピュータ32にI/Oの応答遅延が発生する前に速やかにコンピュータ34へ切り替えることができる。従って、クラスタリングにより冗長化されているコンピュータのディスクに対するI/Oの応答時間を短縮することができ、コンピュータシステム30全体の可用性を高めることができる。
なお、上記では情報処理装置10をコンピュータシステム50により実現する一例を説明した。しかし、これらの構成に限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
また、上記ではプログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されるものではない。例えば、開示の技術における情報処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。

Claims (10)

  1. 冗長化部により冗長化されて切り替え可能なコンピュータの各々が使用する複数の記憶装置であって、前記冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する指示部と、
    前記複数の記憶装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答を行う授受部と、
    前記冗長化されて切り替え可能な記憶装置及び該記憶装置を使用するコンピュータに関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に、前記指示部に対して前記授受部より応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記授受部よりの応答を監視する監視部と、を備え、
    前記冗長化情報は、前記特定の記憶装置を使用するコンピュータの切り替え先である前記他の記憶装置を使用するコンピュータが正常に稼働可能であるかを示す管理情報を出力させる命令を示すコマンドを含み、
    前記監視部は、前記授受部より応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
    情報処理装置。
  2. 前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
    前記監視部は、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する請求項1記載の情報処理装置。
  3. 前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
    前記監視部は、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
    請求項1又は請求項2記載の情報処理装置。
  4. 前記監視部は、冗長化されて稼動する冗長状態の場合には、前記タイムアウト処理として、前記要求情報を削除する処理をさらに実行する請求項3記載の情報処理装置。
  5. 冗長化部により冗長化されて切り替え可能なコンピュータの各々が使用する複数の記憶装置であって、前記冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
    前記複数の記憶装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
    前記冗長化されて切り替え可能な記憶装置及び該記憶装置を使用するコンピュータに関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記応答を所定時間監視し、かつ前記所定時間内に応答がない場合に、前記応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記応答を監視し、
    前記冗長化情報は、前記特定の記憶装置を使用するコンピュータの切り替え先である前記と他の記憶装置を使用するコンピュータが正常に稼働可能であるかを示す管理情報を出力させる命令を示すコマンドを含み、
    前記応答を監視する際に、前記応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
    処理をコンピュータに実行させる情報処理方法。
  6. 前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
    前記要求情報に対する応答を監視するときは、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する
    請求項5記載の情報処理方法。
  7. 前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
    前記要求情報に対する応答を監視するときは、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
    請求項5又は請求項6記載の情報処理方法。
  8. 冗長化されて稼動する冗長状態の場合には、前記タイムアウト処理として、前記要求情報を削除する処理をさらに実行する請求項7記載の情報処理方法。
  9. 冗長化部により冗長化されて切り替え可能なコンピュータの各々が使用する複数の記憶装置であって、前記冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
    前記複数の記憶装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
    前記冗長化されて切り替え可能な記憶装置及び該記憶装置を使用するコンピュータに関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記応答を所定時間監視し、かつ前記所定時間内に応答がない場合に、前記応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記応答を監視し、
    前記冗長化情報は、前記特定の記憶装置を使用するコンピュータの切り替え先である前記他の記憶装置を使用するコンピュータが正常に稼働可能であるかを示す管理情報を出力させる命令を示すコマンドを含み、
    前記応答を監視する際に、前記応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
    処理をコンピュータに実行させる情報処理プログラム。
  10. コンピュータに、請求項5〜請求項8の何れか1項記載の情報処理方法に係る処理を実行させるための情報処理プログラム。
JP2014540711A 2012-10-12 2012-10-12 情報処理装置、情報処理方法、及び情報処理プログラム Active JP6128131B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/076526 WO2014057585A1 (ja) 2012-10-12 2012-10-12 情報処理装置、情報処理方法、及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2014057585A1 JPWO2014057585A1 (ja) 2016-08-25
JP6128131B2 true JP6128131B2 (ja) 2017-05-17

Family

ID=50477070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014540711A Active JP6128131B2 (ja) 2012-10-12 2012-10-12 情報処理装置、情報処理方法、及び情報処理プログラム

Country Status (3)

Country Link
US (1) US20150205686A1 (ja)
JP (1) JP6128131B2 (ja)
WO (1) WO2014057585A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6680030B2 (ja) * 2016-03-24 2020-04-15 富士通株式会社 制御プログラム、制御方法、および制御装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178520B1 (en) * 1997-07-31 2001-01-23 Lsi Logic Corporation Software recognition of drive removal or insertion in a storage system
JP3284963B2 (ja) * 1998-03-10 2002-05-27 日本電気株式会社 ディスクアレイの制御装置及び制御方法
JP2001022534A (ja) * 1999-07-08 2001-01-26 Nec Corp ディスクアレイ装置の障害時運用方法及びコンピュータ可読記録媒体
US8719624B2 (en) * 2007-12-26 2014-05-06 Nec Corporation Redundant configuration management system and method
JP5146032B2 (ja) * 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
US8812805B2 (en) * 2008-08-05 2014-08-19 Broadcom Corporation Mixed technology storage device that supports a plurality of storage technologies
JP5691227B2 (ja) * 2010-04-06 2015-04-01 日本電気株式会社 ストレージ装置及びその制御方法

Also Published As

Publication number Publication date
US20150205686A1 (en) 2015-07-23
JPWO2014057585A1 (ja) 2016-08-25
WO2014057585A1 (ja) 2014-04-17

Similar Documents

Publication Publication Date Title
EP2638469B1 (en) Detection and handling of alua preferences and state transitions by host
US10642704B2 (en) Storage controller failover system
US8074222B2 (en) Job management device, cluster system, and computer-readable medium storing job management program
US10108367B2 (en) Method for a source storage device sending data to a backup storage device for storage, and storage device
JP5147941B2 (ja) 異なるネットワークを介した1次ストレージから2次ストレージへの書き込みコピーを管理するための方法、システム、およびコンピュータ・プログラム
WO2011141963A1 (en) Information processing apparatus and data transfer method
JP4903244B2 (ja) 計算機システム及び障害復旧方法
US7216210B2 (en) Data I/O system using a plurality of mirror volumes
JP2008299481A (ja) ストレージシステム及び複数拠点間でのデータコピー方法
US10108360B2 (en) Apparatus and method to reduce a response time for writing data to redundant storage devices by detecting completion of data-writing to at least one driver before elapse of a retry-over time
JP2019095971A (ja) ストレージシステム、ストレージ制御装置およびプログラム
WO2015063889A1 (ja) 管理システム、プラン生成方法、およびプラン生成プログラム
JP2008269469A (ja) ストレージシステム及びその管理方法
CN112068992B (zh) 一种远程数据复制方法、存储设备及存储系统
US7886186B2 (en) Storage system and management method for the same
JP2005182104A (ja) ディスクアレイシステム及びインターフェイス変換装置
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP6390281B2 (ja) 情報処理装置、ストレージ制御装置、情報処理プログラム、ストレージ制御プログラムおよび情報処理システム
JP6461347B2 (ja) ストレージシステム、及び、記憶制御方法
JP5385987B2 (ja) 複数の記憶装置を含む記憶システム、方法、及びプログラム
US20130311430A1 (en) Computer, data storage method, and information processing system
JP6128131B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US8555007B2 (en) Storage system with journal disks dynamically assigned
JP2013161383A (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
WO2016046951A1 (ja) 計算機システム及びそのファイル管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170327

R150 Certificate of patent or registration of utility model

Ref document number: 6128131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150