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

JP2016057876A - 情報処理装置、入出力制御プログラム、及び入出力制御方法 - Google Patents

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

Info

Publication number
JP2016057876A
JP2016057876A JP2014184113A JP2014184113A JP2016057876A JP 2016057876 A JP2016057876 A JP 2016057876A JP 2014184113 A JP2014184113 A JP 2014184113A JP 2014184113 A JP2014184113 A JP 2014184113A JP 2016057876 A JP2016057876 A JP 2016057876A
Authority
JP
Japan
Prior art keywords
disk
input
storage device
request
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2014184113A
Other languages
English (en)
Inventor
洋佑 高田
Yosuke Takada
洋佑 高田
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 JP2014184113A priority Critical patent/JP2016057876A/ja
Priority to US14/811,931 priority patent/US20160070491A1/en
Publication of JP2016057876A publication Critical patent/JP2016057876A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/2082Data synchronisation
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】上位アプリケーションの入出力制御に対する処理完了応答の高速化を図り、上位アプリケーションの入出力制御に占有される時間を短縮する。
【解決手段】入出力制御部12aは、上位アプリケーション11からの入出力要求に応じて、冗長構成の複数の記憶装置2−1,2−2に対して同時に入出力制御を行なう。応答処理部12bは、複数の記憶装置2−1,2−2に対して同時に入出力制御を行なった結果、複数の記憶装置2−1,2−2のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、上位アプリケーション11に対して、入出力要求に対応する処理の完了応答を出力する。
【選択図】図1

Description

本発明は、情報処理装置、入出力制御プログラム、及び入出力制御方法に関する。
情報処理装置と記憶装置とを含む情報処理システムにおいて、情報処理装置は、記憶装置に対し入出力要求を発行し、記憶装置のデータに対するライトアクセスやリードアクセスを行なう。ここで、情報処理装置は、例えばサーバ,パーソナルコンピュータである。入出力要求は、例えばライトコマンド,リードコマンドであり、情報処理装置においてアプリケーションプログラムを実行することによって発行される。なお、以降、「入出力」は「I/O(Input/Output)」と記載され、「アプリケーションプログラム」は「アプリケーション」もしくは「アプリ」と記載される場合がある。
上述のような情報処理システムにおいては、記憶装置のディスク故障に対する可用性を向上させるため、複数の記憶装置を備えミラーリングによる冗長構成を採ることが知られている。ミラーリングによる冗長構成を採る場合、ディスク異常が発生しI/Oエラーが生じると、異常の生じたディスクが縮退され、縮退されたディスクと対を成す正常なディスクを用いて業務が継続される。
例えば、冗長構成の2つのディスク(記憶装置)のうちの一方でI/Oエラーが生じた場合の、情報処理システムの動作について、図14を参照しながら説明する。図14に示す例では、冗長構成の2つのディスク201,202の両方が現用(運用状態)である。つまり、冗長構成の2つのディスク201,202の両方がアクティブな状態である。このような状態をアクティブ−アクティブという。
図14に示すように、ディスク201,202は、サーバ100に接続される。サーバ100のCPU(Central Processing Unit)101は、アプリケーション110を実行する。CPU101は、ディスク管理ソフトウエアを実行することでディスク管理部120として機能する。CPU101は、ドライバソフトウエアを実行することで、ディスク201,202のそれぞれに対応するディスクドライバ131,132として機能する。
図14に示す情報処理システムにおいて、アプリケーション110はI/O要求を発行する(矢印A1参照)。ディスク管理部120は、アプリケーション110からのI/O要求を受けると、ディスクドライバ131,132を介し、2つのディスク201,202に対して同時にI/O要求を発行する(矢印A2a,A2b参照)。ディスクドライバ131は、一方のディスク201からの処理完了通知を受けるとI/O完了をディスク管理部120に通知する(矢印A3参照)。
このとき、他方のディスク202が正常であれば処理完了通知をディスクドライバ132に返し、ディスクドライバ132もI/O完了をディスク管理部120に通知する。そして、ディスクドライバ131,132の両方からI/O完了を通知されたディスク管理120は、アプリケーション110にI/O完了を通知する。
これに対し、図14に示すように、ディスク202でI/Oエラーが生じている場合、ディスク202は、ディスクドライバ132にI/O完了通知を返すことができない。このとき、ディスクドライバ132は、ディスク202からのI/O完了通知の待ち状態となり、所定回数のリトライ処理もしくは所定時間のタイムアウト待機を行なう。所定回数のリトライ処理を実行するか、もしくは、待ち時間が所定時間を超えると(符号A4:I/O再送オーバ参照)、ディスクドライバ132は、I/Oエラーをディスク管理部120に通知する(矢印A5参照)。
ディスク管理部120は、ディスクドライバ132からのI/Oエラーを受けると、ディスク202を縮退させ情報処理システムから切り離す(矢印A6参照)。この後、ディスク管理部120は、アプリケーション110にI/O完了を通知する。これにより、アクティブ−アクティブの情報処理システムでは、2つのディスク201,202のいずれか一方でI/Oエラーが生じても、業務が、停止されることなく継続される。
なお、下記特許文献1では、現用の記憶装置と待機の記憶装置とが備えられ、処理装置(サーバ等)は、通常の運用時には、現用の記憶装置に対してアクセスを行なう。現用の記憶装置は、待機の記憶装置との間でコマンド等をやり取りし、ミラーリングを行なう。下記特許文献1では、冗長構成の2つの記憶装置の一方が現用(運用状態;アクティブ)であり、他方が待機状態(スタンバイ)である。このような状態を、上述したアクティブ−アクティブに対しアクティブ−スタンバイという。アクティブ−アクティブとアクティブ−スタンバイとでは上述のごとく構成が異なる。また、アクティブ−アクティブでは、一方の記憶装置に故障が生じても業務を停止させることなく他方の記憶装置による運用を継続することができる。一方、アクティブ−スタンバイでは、現用の記憶装置が故障した場合、現用系から待機系への切替を行なう間、業務が停止することになる。さらに、下記特許文献1に開示された技術は、現用の記憶装置のオーバヘッドを小さくするものであって、現用の記憶装置の故障時の、I/O要求に対する応答時間を短縮するものではない。
特開平09−171441号公報
上述したように、図14に示す情報処理システムでは、ディスク202で異常が発生しI/O応答が無い場合、ディスクドライバ132は、リトライ処理もしくはタイムアウト待機を行なった後に、アプリケーション110にI/Oエラーを返している。しかし、ディスクドライバは、リトライ処理もしくはタイムアウト待機を行なっている間、I/Oの無応答状態になり、その間、業務が停止してしまう。つまり、上位アプリケーションからのI/O要求に応じたI/O制御に対する処理完了応答が遅くなり、上位アプリケーションのI/O制御に占有される時間(業務の停止時間)が長くなる。
このように、情報処理システムの業務が止まることで、業務の停止時間分の損害が発生する。このため、ディスクのI/O応答が遅い場合、ディスクドライバで粘ることなく、当該ディスクを切り離し、業務の停止時間をできるだけ短くすることが望まれている。
また、近年のビッグデータ化に伴い、1システム当たりのディスク本数が大幅に増加している。ディスク本数の増加に伴って、ディスク故障の発生数も増加しており、ディスクの信頼性や、ディスク故障時の業務停止時間短縮が重要視されている。
さらに、CPUやメモリなどの性能の向上に伴ってサーバの性能も向上しているため、ディスクへのI/O性能に対する要求も厳しくなってきている。したがって、上位アプリケーションのI/O制御に対する処理完了応答に要する時間をできるだけ短縮することが望まれている。
ただし、記憶装置として汎用的ディスクを用いている場合、ディスク側の構成を変更することができない。このため、ディスクよりも上位側で、上記処理完了応答の高速化を実現することが望まれる。
一つの側面で、本発明は、上位アプリケーションの入出力制御に対する処理完了応答の高速化を図り、上位アプリケーションの入出力制御に占有される時間を短縮することを目的とする。
本件の情報処理装置は、入出力制御部および応答処理部を有する。前記入出力制御部は、上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行なう。前記応答処理部は、前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する。
上位アプリケーションの入出力制御に対する処理完了応答の高速化を図り、上位アプリケーションの入出力制御に占有される時間を短縮することができる。
本発明の一実施形態としての情報処理装置のハードウェア構成および機能構成を示すブロック図である。 本実施形態のボリューム構成・状態管理情報の例を示す図である。 本実施形態の差分情報(ビットマップ)の例を示す図である。 冗長構成の2つのディスクがいずれも正常である場合の、本実施形態の動作を説明する図である。 冗長構成の2つのディスクのうちの一方が異常である場合の、本実施形態の動作を説明する図である。 冗長構成の2つのディスクのうちの他方が異常である場合の、本実施形態の動作を説明する図である。 冗長構成の2つのディスクのうちの一方が異常である場合の、本実施形態の動作をより具体的に説明する図である。 本実施形態の仮縮退復旧動作を具体的に説明する図である。 本実施形態のディスク管理部の動作を説明するブロック図である。 本実施形態のディスクドライバへのI/O要求発行処理を説明するフローチャートである。 本実施形態の書込み処理時におけるディスク管理部の動作を説明するフローチャートである。 本実施形態の読出し処理時におけるディスク管理部の動作を説明するフローチャートである。 本実施形態の仮縮退復旧スレッドの処理手順を説明するフローチャートである。 冗長構成の2つのディスクのうちの一方でI/Oエラーが生じた場合の、情報処理システムの動作を説明する図である。
以下に、図面を参照し、本願の開示する情報処理装置、入出力制御プログラム、及び入出力制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕本実施形態の構成
まず、図1に示すブロック図を参照しながら、本発明の一実施形態としての情報処理装置1のハードウェア構成および機能構成について説明する。
本実施形態においては、情報処理装置としてのサーバ1と、冗長構成の複数(本実施形態では2台)の記憶装置2−1,2−2とが備えられている。なお、以下では、2台の記憶装置を区別する場合には符号2−1,2−2を用い、任意の記憶装置を指す場合には符号2を用いる。
図1に示す例において、各記憶装置2は、サーバ1に外付けされているが、サーバ1に内蔵されてもよい。また、各記憶装置2は、例えばHDD(Hard Disk Drive),SSD(Solid State Drive)を複数含んでいてもよく、RAID(Redundant Arrays of Inexpensive Disks)を構成していてもよい。
各記憶装置2は、複数のディスク(HDD)を有している。記憶装置2−1は、ディスク#1,…,ディスク#mを有し、記憶装置2−2は、ディスク#2,…,ディスク#nを有している。m,nは、3以上の整数である。本実施形態では、記憶装置2−1のディスク#1と記憶装置2−2のディスク#2とがミラーリングされる。なお、ミラーリングを行なう単位は、一ディスク単位でもよいし、複数ディスク単位(仮想ボリューム単位)でもよい。
各記憶装置2には、サーバ1からのI/O要求を受け当該I/O要求に応じたディスクの制御等を行なうCM(Controller Module;図示略)が備えられている。
また、記憶装置2−1には、図2を参照しながら後述するボリューム構成・状態管理情報31等を保存するディスク#1,…,#m用状態管理領域41a,…,4maが備えられる。記憶装置2−1には、図3を参照しながら後述する差分情報(ビットマップ)51等を保存するディスク#1,…,#m用差分情報管理領域41b,…,4mbが備えられる。領域41a,…,4maおよび領域41b,…,4mbは、それぞれディスク#1,…,#m上に確保されてもよいし、記憶装置2−1内に備えられCMがアクセス可能なRAM(Random Access Memory)等のメモリ(図示略)上に備えられてもよい。なお、領域41a,…,4maおよび領域41b,…,4mbに保存される、ボリューム構成・状態管理情報31等や差分情報(ビットマップ)51等は、例えば、記憶装置2−1のCMによって更新される。
同様に、記憶装置2−2には、図2を参照しながら後述するボリューム構成・状態管理情報32等を保存するディスク#2,…,#n用状態管理領域42a,…,4naが備えられる。記憶装置2−2には、図3を参照しながら後述する差分情報(ビットマップ)52等を保存するディスク#2,…,#n用差分情報管理領域42b,…,4nbが備えられる。領域42a,…,4naおよび領域42b,…,4nbは、それぞれディスク#2,…,#n上に確保されてもよいし、記憶装置2−2内に備えられCMがアクセス可能なRAM等のメモリ(図示略)上に備えられてもよい。なお、領域42a,…,4naおよび領域42b,…,4nbに保存される、ボリューム構成・状態管理情報32等や差分情報(ビットマップ)52等は、例えば、記憶装置2−2のCMによって更新される。
サーバ1は、I/O要求を記憶装置2に対し発行し、記憶装置2のデータに対するライト(書込み)アクセスやリード(読出し)アクセスを行なう。I/O要求は、例えばライトコマンド,リードコマンドであり、サーバ1において上位アプリケーションプログラム11を実行することによって発行される。
サーバ1と2つの記憶装置2−1,2−2との間は、サーバ1から2つの記憶装置2−1,2−2に同時アクセス可能に、FC−SW(Fibre Channel-スイッチ)3によって接続されている。なお、図1において、サーバ1におけるFC−SW3とのインタフェースや、各記憶装置2におけるFC−SW3とのインタフェースの図示は省略されている。また、図1では図示しないが、FC−SW3を介してサーバ1と2つの記憶装置2−1,2−2との間を通信可能に接続するパスは、マルチパス化され冗長化されている。
サーバ1には、CPU10とメモリ20とが備えられている。CPU10は、上位アプリケーションプログラム11を実行する。また、CPU10は、ディスク管理ソフトウエア(入出力制御プログラム)を実行することでディスク管理部12として機能する。ディスク管理部12には、後述する入出力制御部12a,応答処理部12bおよび復旧処理部12cとしての機能が含まれる。さらに、CPU10は、ドライバソフトウエアを実行することで、ディスクドライバ13(例えば、ディスク#1,#2のそれぞれに対応するディスクドライバ131,132)として機能する。
CPU10によって実行される上位アプリケーションプログラム11,ディスク管理ソフトウエアおよびドライバソフトウエアは、フレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、CPU10は、プログラム等を、当該記録媒体から読み取って内部記憶装置(例えばメモリ20)または外部記憶装置に転送し格納して用いる。
メモリ20は、種々のデータや上述したプログラム等を格納するもので、メモリ20としては、例えばRAM,ROM(Read Only Memory),HDD,SSDが用いられる。
メモリ20には、アプリ用のI/O要求管理情報領域20aおよびI/Oバッファ領域20bが必要に応じて確保される。領域20aおよび20bは、上位アプリケーション11からのI/O要求を処理するための第1メモリ領域である。領域20aおよび20bは、I/O要求発行時に上位アプリケーション11によって確保される。一方、領域20aおよび20bは、当該I/O要求に対応する完了応答を受けた上位アプリケーション11によって解放される。
そして、アプリ用I/O要求管理情報領域20aには、上位アプリケーション11からのI/O要求そのものを含む管理情報が保存される。アプリ用I/Oバッファ領域20bには、I/O要求が書込み要求である場合、記憶装置2(ディスク#1および#2)に書き込むべきデータが保存される。また、アプリ用I/Oバッファ領域20bには、I/O要求が読出し要求である場合、記憶装置2(ディスク#1または#2)から読み出されたデータが保存される。
また、メモリ20には、ディスク#1用のI/O要求管理情報領域21aおよびI/Oバッファ領域21bが必要に応じて確保される。領域21aおよび21bは、第1メモリ領域20a,20bとは異なる第2メモリ領域である。領域21aおよび21bは、上位アプリケーション11からディスク#1または#2へのI/O要求を受けたディスク管理部12によって確保される。一方、領域21aおよび21bは、上位アプリケーション11へ当該I/O要求に対応する完了応答を発行する際にディスク管理部12によって解放される。
そして、ディスク#1用I/O要求管理情報領域21aには、アプリ用I/O要求管理情報領域20aに保存された管理情報が、ディスク管理部12によってコピーされる。ディスク#1用I/Oバッファ領域21bには、I/O要求が書込み要求である場合、アプリ用I/Oバッファ領域20bに保存された書込みデータが、ディスク管理部12によってコピーされる。また、ディスク#1用I/Oバッファ領域21bには、I/O要求が読出し要求である場合、ディスク#1から読み出されたデータが保存される。
同様に、メモリ20には、ディスク#2用のI/O要求管理情報領域22aおよびI/Oバッファ領域22bが必要に応じて確保される。領域22aおよび22bも、第1メモリ領域20a,20bとは異なる第2メモリ領域である。領域22aおよび22bは、上位アプリケーション11からディスク#1または#2へのI/O要求を受けたディスク管理部12によって確保される。一方、領域22aおよび22bは、上位アプリケーション11へ当該I/O要求に対応する完了応答を発行する際にディスク管理部12によって解放される。
そして、ディスク#2用I/O要求管理情報領域22aには、アプリ用I/O要求管理情報領域20aに保存された管理情報が、ディスク管理部12によってコピーされる。ディスク#2用I/Oバッファ領域22bには、I/O要求が書込み要求である場合、アプリ用I/Oバッファ領域20bに保存された書込みデータが、ディスク管理部12によってコピーされる。また、ディスク#2用I/Oバッファ領域22bには、I/O要求が読出し要求である場合、ディスク#2から読み出されたデータが保存される。
さらに、メモリ20には、ディスク#1用の状態管理領域21cおよび差分情報管理領域21dが必要に応じて確保される。ディスク#1用状態管理領域21cには、ディスク管理部12によって、記憶装置2−1のディスク#1用状態管理領域41aにおけるディスク#1のボリューム構成・状態管理情報31(図2参照)が保存される。ディスク#1用差分情報管理領域21dには、ディスク管理部12によって、記憶装置2−1のディスク#1用差分情報管理領域41bにおけるディスク#1用差分情報(ビットマップ)51(図3参照)が保存される。
同様に、メモリ20には、ディスク#2用の状態管理領域22cおよび差分情報管理領域22dが必要に応じて確保される。ディスク#2用状態管理領域22cには、ディスク管理部12によって、記憶装置2−2のディスク#2用状態管理領域42aにおけるディスク#2のボリューム構成・状態管理情報32(図2参照)が保存される。ディスク#2用差分情報管理領域22dには、ディスク管理部12によって、記憶装置2−2のディスク#2用差分情報管理領域42bにおけるディスク#2用差分情報(ビットマップ)52(図3参照)が保存される。
ここで、図2および図3を参照しながら、本実施形態のボリューム構成・状態管理情報31,32および差分情報(ビットマップ)51,52について説明する。図2は、本実施形態のボリューム構成・状態管理情報31,32の例を示す図である。図3は、本実施形態の差分情報(ビットマップ)51,52の例を示す図である。
図2に示すように、ボリューム構成・状態管理情報には、ディスク毎に、デバイス名と状態とが含まれる。ここで、デバイス名は、対象ディスクを特定すべく、OS(Operating System)によって認識されるものである。状態は、デバイス名によって特定されるディスクの状態に対応する値である。当該状態としては、例えば以下の4つの状態(11)〜(14)のいずれか一つに対応する値が設定される。
状態(11):正常
状態(12):コピー(正常ディスクから異常ディスクへのデータコピー中)
状態(13):縮退(ミラーリングから切り離されI/O要求の対象とならない状態)
状態(14):仮縮退(ミラーリングから切り離されI/O要求の対象とならない状態ではあるが正常な状態に復旧する可能性のある状態: 仮縮退状態のディスクが存在する際にボリュームに対する書込みを行なった場合、当該書込み箇所の位置情報を差分情報として後述するビットマップ51,52等に記録する)
図2において、ボリューム構成・状態管理情報31には、ディスク#1のデバイス名sdaと当該ディスク#1の状態「正常」とが設定されている。このようなボリューム構成・状態管理情報31は、記憶装置2−1のディスク#1用状態管理領域41aとサーバ1のメモリ20のディスク#1用状態管理領域21cとに保存される。同様に、ディスク#2のボリューム構成・状態管理情報32には、ディスク#2のデバイス名sdbと当該ディスク#2の状態「縮退」とが設定されている。このようなボリューム構成・状態管理情報32は、記憶装置2−2のディスク#2用状態管理領域42aとサーバ1のメモリ20のディスク#2用状態管理領域22cとに保存される。
差分情報は、前述した通り、仮縮退状態のディスクが存在する際にボリュームに対する書込み(ライトアクセス)を行なった場合、当該書込み箇所の位置情報である。より具体的に、ディスク#1またはディスク#2用の差分情報51または52は、図3に示すようなビットマップとして記録される。
つまり、ビットマップ51,52は、仮縮退状態のディスクが存在する場合に当該仮縮退状態のディスクのミラー対象ディスクにおけるボリュームの書込み箇所を管理する。例えば、ディスク#2が仮縮退状態である場合には、ディスク#2のミラー対象ディスク#1におけるボリュームの書込み箇所が、ビットマップ51によって管理される。
このとき、例えば、ビットマップ51,52の1ビットによって、ボリュームの1MB分のデータが管理される。第kビットは、ボリュームのオフセット(k−1)MB〜kMB−1Bの領域に対して書込みが行なわれたか否かを管理する。書込みが行なわれた場合に当該第kビットには“1”が設定され、書込みが行なわれていない場合に当該第kビットには“0”が設定される。後述するように、“1”を設定されたビットに対応するボリュームの領域のデータは、仮縮退状態のディスクを復旧する際に、正常ディスクから仮縮退状態のディスクにコピーされる。
次に、CPU10におけるディスク管理部12に含まれる入出力制御部12a,応答処理部12bおよび復旧処理部12cとしての機能について説明する。
入出力制御部12aは、上位アプリケーション11からのI/O要求に応じて、冗長構成の2台の記憶装置2−1,2−2(ディスク#1,#2)に対して同時に入出力制御を行なう。本実施形態では、冗長構成の2つのディスク#1,#2の両方が現用(運用状態;アクティブ状態)であり、上述したアクティブ−アクティブのシステムが対象になっている。
なお、I/O要求が書込み要求である場合、2つのディスク#1,#2がI/O要求の対象になる。このとき、一方のディスクは上位アプリケーション11によって指定され、他方のディスクとしては、一方のディスクと冗長構成を成すべく予め決められたディスクが選択される。また、I/O要求が読出し要求である場合は、図12を参照しながら後述するごとく、上位アプリケーション11によって指定される一のディスクのみがI/O要求の対象になる。
応答処理部12bは、2つのディスク#1,#2に対して同時にI/O制御を行なった結果、下記条件を満たす場合、上位アプリケーション11に対して、当該I/O要求に対応する処理の完了応答を出力する。当該条件とは、I/O制御を開始してから第1所定時間内に2つのディスク#1,#2のうちのいずれか一方(第1記憶装置)からの処理完了通知を受信するとともに、第1所定時間内に他方のディスク(第2記憶装置)からの処理完了通知を受信しない場合である。このとき、他方のディスクはディスク管理部12によって仮縮退状態に変更され、当該他方のディスク用のボリューム構成・状態管理情報31,32における状態が仮縮退状態に更新される。
なお、第1所定時間は、ユーザ,オペレータ等によって適宜設定される。また、第1所定時間は、ディスク管理部12におけるタイマ機能によってディスク毎に計時される。第1所定時間の計時開始タイミングつまりタイマ起動タイミングは、I/O制御開始時点である。当該I/O制御開始時点は、ディスク管理部12が上位アプリケーション11からI/O要求を受信した時点であってもよいし、図10を参照しながら後述するステップS14の処理の終了タイミングであってもよい。
また、入出力制御部12aは、上述したように、上位アプリケーション11からのI/O要求を処理するための第1メモリ領域20a,20bとは異なる第2メモリ領域21a,21b,22a,22bをディスク毎に確保する。そして、入出力制御部12aは、I/O要求に係る情報を第1メモリ領域20a,20bから第2メモリ領域21a,21b,22a,22bにコピーする。さらに、入出力制御部12aは、第2メモリ領域21a,21b,22a,22bにコピーされたI/O要求に係る情報を用い、ディスクドライバ13経由で各ディスクに対するI/O制御を行なう。
ディスクドライバ131または132(入出力制御部12a)は、他方のディスク用の第2メモリ領域21a,21bまたは22a,22bに保存されたI/O要求に係る情報を用いて、第1所定時間が経過した後に仮縮退状態に切り替えられた他方のディスクに対するI/O制御を行なう。また、入出力制御部12aは、一方のディスク用の第2メモリ領域21a,21bまたは22a,22bに保存された、上位アプリケーション11からの新たなI/O要求に係る情報を用いて、当該新たなI/O要求に応じたI/O制御を一方のディスクに対して行なう。そして、入出力制御部12aは、当該新たなI/O要求に応じたI/O制御がライトアクセスに係る場合、当該ライトアクセスを行なった領域の位置情報を、差分情報管理領域21d,22d,41b,42bにおけるビットマップ51,52に記録する。
復旧処理部12cは、第1所定時間が経過してから第2所定時間内に他方のディスクからの処理完了通知を受信すると、他方のディスクを仮縮退状態から復旧させる。このとき、当該他方のディスク用のボリューム構成・状態管理情報31,32における状態が仮縮退状態からコピー状態(正常状態)に更新される。この後、復旧処理部12cは、ビットマップ51,52で“1”を設定されたビットに対応する差分データを、一方のディスクから他方のディスクにコピーする。
なお、第2所定時間は、ユーザ,オペレータ等によって適宜設定される。また、第2所定時間は、ディスク管理部12におけるタイマ機能によってディスク毎に計時される。第2所定時間の計時開始タイミングつまりタイマ起動タイミングは、例えば図11や図12を参照しながら後述するごとく、上述した第1所定時間の計時完了時点である。
一方、復旧処理部12cは、第1所定時間が経過してから第2所定時間内に他方のディスクからの処理完了通知を受信しない場合、当該他方のディスクを仮縮退状態から縮退状態に変更する。このとき、当該他方のディスク用のボリューム構成・状態管理情報31,32における状態が仮縮退状態から縮退状態に更新される。
〔2〕本実施形態の動作
次に、図4〜図13を参照ながら、上述のごとく構成された本実施形態のサーバ1を含む情報処理システムの動作について説明する。
まず、図4〜図6を参照しながら、本実施形態のサーバ1の基本的な動作を説明する。図4は、冗長構成の2つのディスク#1,#2がいずれも正常である場合の、本実施形態の動作を説明する図である。図5は、冗長構成の2つのディスク#1,#2のうちの一方(ディスク#1)が異常である場合の、本実施形態の動作を説明する図である。図6は、冗長構成の2つのディスク#1,#2のうちの他方(ディスク#2)が異常である場合の、本実施形態の動作を説明する図である。
図4に示すように、冗長構成の2つのディスク#1,#2がいずれも正常である場合、ディスク管理部12(入出力制御部12a)は、上位アプリケーション11からI/O要求を受信すると(図4のタイミングt1参照)、以下の動作を行なう。つまり、ディスク管理部12は、ディスクドライバ131,132を介し、2つのディスク#1,#2に対して同時もしくは略同時にI/O要求を発行しI/O制御を開始する(図4のタイミングt2a,t3a;t2b,t3b参照)。このとき、タイミングt2aおよびt2bでそれぞれディスク#1,#2用のタイマが起動され、第1所定時間の計時が開始される。
図4に示す例では、ディスク#1,#2がいずれも正常であるため、ディスク管理部12は、ディスクドライバ131,132を介し、第1所定時間内にディスク#1,#2の両方から処理完了通知を受信する(図4のタイミングt4a,t5a;t4b,t5b参照)。これに応じ、ディスク管理部12(応答処理部12b)は、上位アプリケーション11に対し完了応答を出力する(図4のタイミングt6参照)。このとき、上位アプリケーション11がI/O要求を発行してから完了応答を受けるまでのI/O応答時間(タイミングt1とt6との時間間隔)は第1所定時間よりも短い。
図5に示すように、ディスク#1が異常でありディスク#2が正常である場合も、ディスク管理部12は、上位アプリケーション11からI/O要求を受信すると(図5のタイミングt1参照)、以下の動作を行なう。つまり、ディスク管理部12は、ディスクドライバ131,132を介し、2つのディスク#1,#2に対して同時もしくは略同時にI/O要求を発行しI/O制御を開始する(図5のタイミングt2a,t3a;t2b,t3b参照)。このとき、タイミングt2aおよびt2bでそれぞれディスク#1,#2用のタイマが起動され、第1所定時間の計時が開始される。
図5に示す例では、ディスク#2が正常であるため、ディスク管理部12は、ディスクドライバ132を介し、第1所定時間内にディスク#2から処理完了通知を受信する(図5のタイミングt4b,t5b参照)。しかし、ディスク#1は異常であるため、第1所定時間の計時がタイムアウトし、第1所定時間内にディスク#1からの処理完了通知が受信されない。
これに応じ、応答処理部12bは、上位アプリケーション11に対し完了応答を出力する(図5のタイミングt7参照)。つまり、応答処理部12bは、ディスク#1からの処理完了通知を受信していなくても、ディスク#2からの処理完了通知を受信しているので、I/O処理結果は正常であるものとして上位アプリケーション11に対し完了応答を出力する。このとき、上位アプリケーション11がI/O要求を発行してから完了応答を受けるまでのI/O応答時間(タイミングt1とt7との時間間隔)は第1所定時間となる。
なお、図5に示す例において、ディスク管理部12は、第1所定時間の経過後にディスク#1からの処理完了通知を受信している(図5のタイミングt4a′,t5a′参照)。このように第1所定時間の経過後にディスク#1からの処理完了通知を受信する場合については、後述する復旧処理部12cによる処理が適用される。
図6に示すように、ディスク#2が異常でありディスク#1が正常である場合も、ディスク管理部12は、上位アプリケーション11からI/O要求を受信すると(図6のタイミングt1参照)、以下の動作を行なう。つまり、ディスク管理部12は、ディスクドライバ131,132を介し、2つのディスク#1,#2に対して同時もしくは略同時にI/O要求を発行しI/O制御を開始する(図6のタイミングt2a,t3a;t2b,t3b参照)。このとき、タイミングt2aおよびt2bでそれぞれディスク#1,#2用のタイマが起動され、第1所定時間の計時が開始される。
図6に示す例では、ディスク#1が正常であるため、ディスク管理部12は、ディスクドライバ131を介し、第1所定時間内にディスク#1から処理完了通知を受信する(図6のタイミングt4a,t5a参照)。しかし、ディスク#2は異常であるため、第1所定時間の計時がタイムアウトし、第1所定時間内にディスク#2からの処理完了通知が受信されない。
これに応じ、応答処理部12bは、上位アプリケーション11に対し完了応答を出力する(図6のタイミングt7参照)。つまり、応答処理部12bは、ディスク#2からの処理完了通知を受信していなくても、ディスク#1からの処理完了通知を受信しているので、I/O処理結果は正常であるものとして上位アプリケーション11に対し完了応答を出力する。このとき、上位アプリケーション11がI/O要求を発行してから完了応答を受けるまでのI/O応答時間(タイミングt1とt7との時間間隔)は第1所定時間となる。
なお、図6に示す例においても、ディスク管理部12は、第1所定時間の経過後にディスク#2からの処理完了通知を受信している(図6のタイミングt4b′,t5b′参照)。このように第1所定時間の経過後にディスク#2からの処理完了通知を受信する場合については、後述する復旧処理部12cによる処理が適用される。
次に、図7を参照しながら、冗長構成の2つのディスク#1,#2のうちの一方(ディスク#2)が異常である場合の、本実施形態の動作について、より具体的に説明する。
図7に示す例では、上位アプリケーション11がI/O要求を発行し(矢印A11参照)、ディスク管理部12が、上位アプリケーション11からのI/O要求を受けると、I/O制御開始タイミングで第1所定時間を計時するタイマを起動する(符号A12参照)。そして、ディスク管理部12(入出力制御部12a)は、ディスクドライバ131,132を介し、2つのディスク#1,#2に対して同時もしくは略同時にI/O要求を発行する(矢印A13a,A13b参照)。
ディスクドライバ131は、正常なディスク#1からの処理完了通知を受け、I/O完了をディスク管理部12に通知する(矢印A14参照)。このとき、ディスク管理部12は、第1所定時間内にディスク#1からの処理完了通知を受信することになる。一方、異常なディスク#2は処理完了通知を返すことができず、ディスクドライバ132およびディスク管理部12は、ディスク#2からの処理完了通知を待機することになる。
そして、第1所定時間が経過しタイムアウトが発生すると(符号A15参照)、ディスク管理部12は、ディスク#2をミラーリングから切り離し(矢印A16参照)ディスク#2を仮縮退状態に変更する。また、応答処理部12aは、上記タイムアウトの発生に応じて、上位アプリケーション11に対し完了応答を通知する(矢印A17参照)。このとき、上位アプリケーション11がI/O要求を発行してからI/O完了を受けるまでのI/O応答時間(矢印A11と矢印A17との時間間隔)は第1所定時間となる。
なお、ディスクドライバ132は、第1所定時間の経過後、第2所定時間の間、仮縮退状態に変更されたディスク#2に対するI/O制御を行なう。その際、ディスクドライバ132は、ディスク#2用の第2メモリ領域22a,22bに保存されたI/O要求に係る情報を参照する。
次に、本実施形態において、一方のディスク#1からの処理完了通知を受信した後に他方のディスク#2からの処理完了通知を待つことなく上位アプリケーション11に対する完了応答を行なうための、ディスク管理部12の機能等について、より詳細に説明する。
上位アプリケーション11は、I/O要求発行時に、メモリ20上にI/O要求管理情報領域20aおよびI/Oバッファ領域20bを確保し、領域20aにはI/O要求そのものを含む管理情報を保存するとともに、書込み時であれば領域20bに書込みデータを保存する。通常、ディスク管理部12やディスクドライバ13は、領域20a,20bに保存された情報を参照しながら、ディスク#1,#2に対する入出力制御等を行なう。そして、上位アプリケーション11は、ディスク管理部12からのI/O完了の通知を受けて領域20a,20bを解放する。
ディスク管理部12は、下位のディスクドライバ13へのI/O処理が全て完了したのを待った後で、上位アプリケーション11にI/O完了を通知する必要がある。もし、下位からのI/O要求の処理完了通知を待たずに上位アプリケーション11にI/O完了を通知した場合、メモリ領域20a,20bが、下位のディスクドライバ13等で使用中であるにもかかわらず解放されてしまう。このため、ディスクドライバ13等が、解放されたメモリ領域20a,20bにアクセスしてしまい、ハングアップやデータ破壊が発生するおそれがある。
そこで、本実施形態では、上位アプリケーション11からI/O要求を受けると、通常通り上位アプリケーション11によって獲得される第1メモリ領域20a,20bとは別の第2メモリ領域21a,21b,22a,22bが獲得される。このとき、2つのディスク#1,#2がI/O要求の対象となり、ディスク#1用の第2メモリ領域21a,21bとディスク#2用の第2メモリ領域22a,22bとが獲得される。そして、第1メモリ領域20aの情報が第2メモリ21a,22aにコピーされ、第1メモリ領域20bの情報が第2メモリ21b,22bにコピーされる。この後、第1メモリ領域20a,20bを用いることなく、第2メモリ領域21a,21b,22a,22bを用いて下位ドライバ13(131,132)に対するI/O制御が行なわれる。
このような構成によれば、第1メモリ領域20a,20bが解放されても、下位のドライバ13等は、第1メモリ領域20a,20bとは異なる第2メモリ領域21a,21b,22a,22bを用いて処理を行なうことができる。つまり、ディスク管理部12が処理完了通知を待つことなく上位アプリケーション11に対してI/O完了を通知することで、第1メモリ領域20a,20bが解放されても、下位のドライバ13等は、第2メモリ領域21a,21b,22a,22bを用いて処理を行なうことができる。これにより、ディスクドライバ13等が、解放されたメモリ領域20a,20bにアクセスするのを抑止でき、ハングアップやデータ破壊の発生が確実に防止される。
ところで、第1所定時間内にI/O要求に対しディスクから何ら応答の無い場合に当該ディスクの縮退(ミラー構成の縮退)を行なうと、当該ディスクが故障していないにもかかわらず当該ディスクが切り離されてしまうことがある。例えば、ディスクとサーバ1との間のパスがマルチパス化されている場合、故障したパスを正常なパスに切り替えている間にタイムアウトが発生し、ディスクが切り離されることがある。
そこで、本実施形態では、第1所定時間内に処理完了通知の無かったディスクは、一時的な仮の縮退状態に変更する。仮縮退状態では、上記状態(14)として説明したように、ディスクは、ミラーリングから切り離されI/O要求の対象とならない状態ではあるが正常な状態に復旧する可能性のある状態である。このような仮縮退状態のディスクが存在している間は、当該仮縮退状態のディスクと対になる、縮退していないディスクに書込みを行なった場合、当該書込み箇所(更新箇所)の位置情報が差分情報としてビットマップ51,52に記録される。
第1所定時間経過後にさらに第2所定時間が経過すると、ディスク制御部12は、図8に示すように動作する。図8は、本実施形態の仮縮退復旧動作を具体的に説明する図である。図8では、ディスク#1が正常状態であり、ディスク#2が仮縮退状態である。
上位アプリ11にI/O完了を通知した後(矢印A17参照)にさらに第2所定時間が経過すると、ディスク制御部12(復旧処理部12c)は、仮縮退状態のディスク#2についてI/O要求の処理完了通知が全て受信されたか否かを確認する(矢印A18参照)。I/O要求の処理完了通知が全て受信された場合、復旧処理部12cは、ディスク#2を仮縮退状態からコピー状態(正常状態)に復旧しミラーに組み込む(矢印A19参照)。この後、復旧処理部12cは、ディスク#1用のビットマップ51を参照し、ディスク#1からディスク#2へ更新箇所(差分データ)をコピーすることで(矢印A20参照)、ディスク#1とディスク#2とをミラー状態に復帰させる。
一方、復旧処理部12cは、確認の結果、仮縮退状態のディスク#2についてI/O要求の処理完了通知が受信されていない場合、ディスク#2を仮縮退状態から縮退状態に変更する。また、復旧処理部12cは、ディスク#1の更新箇所の記録を止め、ディスク#1用のビットマップ(差分情報)51の全ビットを“0”に設定し、ディスク#1用のビットマップ(差分情報)51をクリアする。
第1所定時間を短く設定してI/O完了をできるだけ早く上位アプリ11に返信するようにすると、パス変更等により処理完了通知が遅れているだけで故障していない正常なディスク#2を縮退させてしまう可能性があった。本実施形態では、第1所定時間経過後にさらに第2所定時間だけ経過した時点で仮縮退状態のディスク#2について処理完了通知の再確認を行ない処理完了通知を受信した場合、仮縮退状態のディスク#2が復帰され、ディスク#1とのミラー状態も復帰する。これにより、第1所定時間を短く設定しても正常なディスクを切り離してしまう状況を回避することができ、正常なディスクを有効に利用することができる。
次に、図9〜図13を参照しながら、本実施形態のディスク管理部12の動作について、より詳細に説明する。
図9に示すように、本実施形態のサーバ1において、ディスク管理部12は、上位アプリケーション11からのI/O要求(読出し要求または書込み要求)に応じ、冗長構成の2つのディスク#1,#2に対して同時にI/O制御を行なう。その際、ディスク管理部12は、図10〜図13に示すフローチャートに従って、メモリ20(もしくはディスク#1,#2)上のボリューム構成・状態管理情報31,32および差分情報51,52を参照/更新しながら以下のような動作を行なう。なお、図9は、本実施形態のディスク管理部12の動作を説明するブロック図である。
まず、図10に示すフローチャート(ステップS11〜S17)に従って、本実施形態のディスクドライバ13(ディスク#1,#2)へのI/O要求発行処理(入出力制御部12aの動作)について説明する。なお、当該I/O要求発行処理は、I/O要求が書込み要求の場合、冗長構成の2つのディスク#1,#2のそれぞれに対し実行される。このとき、2つのディスク#1,#2に対するI/O要求発行処理は、並列的に同時に実行されてもよいし、シリアルに略同時に実行されてもよい。また、当該I/O要求発行処理は、I/O要求が読出し要求の場合、図12を参照しながら後述するように、選択された一のディスクに対し実行される。
ディスク管理部12は、上位アプリケーション11からのI/O要求に応じて、上位アプリケーション11が獲得したメモリ領域20a,20bとは異なる、ディスク#1または#2用のI/O要求管理情報領域21aまたは22aを獲得する(ステップS11)。そして、ディスク管理部12は、獲得した領域21aまたは22aに、アプリ用I/O要求管理情報領域20aに保存されている管理情報(上位アプリ11から渡されたI/O要求を含む管理情報)をコピーする(ステップS12)。
また、ディスク管理部12は、上位アプリケーション11からのI/O要求に応じて、上位アプリケーション11が獲得したメモリ領域20a,20bとは異なる、ディスク#1または#2用のI/Oバッファ領域21bまたは22bを獲得する(ステップS13)。そして、ディスク管理部12は、I/O要求が書込み要求である場合、獲得した領域21bまたは22bに、アプリ用I/Oバッファ領域20bに保存されている書込みデータ(上位アプリ11から渡されたI/Oバッファのデータ)をコピーする(ステップS14)。なお、I/O要求が読出し要求である場合、領域21bまたは22bは、ディスク#1または#2から読み出されたデータを保存するために用いられるものであり、ステップS14の処理はスキップされる。
この後、ディスク管理部12は、第1所定時間を計時するタイマ機能を起動する(ステップS15)。当該タイマ機能はディスク毎に起動され、ディスク毎に第1所定時間が計時される。
タイマ機能の起動タイミングに対応して、入出力制御部12aは、メモリ20の領域21a,22a,21b,22bを参照しながら、ディスクドライバ13を介し、2つのディスク#1,#2に対しI/O要求を発行しI/O制御を開始する(ステップS16)。なお、タイマ機能の起動開始タイミングは、図10ではI/O制御の開始前になっているが、I/O制御の開始後や、I/O制御の開始と同時であってもよい。そして、ディスク管理部12は、ディスクドライバ13(ディスク#1,#2)からのI/O応答(処理完了通知)を待機する(ステップS17)。
ついで、図11に示すフローチャート(ステップS21〜S33)に従って、本実施形態の書込み処理時におけるディスク管理部12の動作について説明する。
上位アプリケーション11からのI/O要求が書込み要求である場合、図10に示すI/O要求発行処理が2つのディスク#1,#2に対し実行され、ディスク管理部12は、ディスクドライバ13(ディスク#1,#2)からのI/O応答の待機状態になる。書込み要求について待機状態のディスク管理部12は、引き続き、図11に示す処理が実行されることになる。以下、図11を参照しながら行なう説明では、2つのディスク#1,#2のうち、先にI/O応答を行なったディスクをディスク#1とし、もう一方のディスクをディスク#2とする。
図10のステップS17で待機状態(書込み処理待機中)になったディスク管理部12(入出力制御部12a,応答処理部12b)は、ディスク#1(ディスクドライバ131)からの処理完了通知を受信したか否かを判断する(ステップS21)。ディスク管理部12は、ディスク#1からの処理完了通知を受信すると(ステップS21のYESルート)、ディスク#1用のI/O要求管理情報領域21aに、I/O処理結果(処理完了)が書き込まれる。ディスク管理部12は、ディスク#1用のI/O要求管理情報領域21aにおけるI/O処理結果を、アプリ用のI/O要求管理情報領域20aにコピーする(ステップS22)。
なお、処理完了通知に関する情報は、例えば、処理完了通知を受信した場合に“0”から“1”に書き換えられるフラグ情報である。ステップS22の処理を実行した時点では、アプリ用I/O要求管理情報領域20aおよびディスク#1用のI/O要求管理情報領域21aにおける当該フラグ情報が“1”に書き換えられる。同時点で、ディスク#2用のI/O要求管理情報領域22aにおける当該フラグ情報は“0”のままである。
そして、ディスク管理部12は、ディスク#2用のタイマ機能が第1所定時間を計時したか否か、つまりディスク#2でI/O処理のタイムアウトが発生したか否かを判断する(ステップS23)。ディスク#2でタイムアウトが発生していない場合(ステップS23のNOルート)、ディスク管理部12は、ディスク#2に対するI/O要求による処理が正常に終了したか否かを判断する(ステップS24)。
第1所定時間が経過する前にディスク#2に対するI/O要求による処理が正常に終了した場合(ステップS24のYESルート)、ディスク管理部12は、ディスク#2用に獲得したメモリ領域22a,22bを解放する(ステップS25)。さらに、ディスク管理部12は、ディスク#1用に獲得したメモリ領域21a,21bを解放する(ステップS26)。
この後、ディスク管理部12は、メモリ20上の領域21c,22cにおけるボリューム構成・状態管理情報31,32等を参照し、仮縮退状態のディスクが存在するか否かを判断する(ステップS27)。ここでは、ディスク#1とミラーリング構成を成すディスク#2が仮縮退状態か否かを判断する。
ステップS24のYESルートからステップS25,S26を経由してステップS27の処理に至った場合、ディスク#2は正常状態であり、仮縮退状態のディスクが存在しないと判断され(ステップS27のNOルート)、応答処理部12bは、上位アプリケーション11に対しI/O完了を通知する(ステップS28)。I/O完了通知を受けアプリ用I/O要求管理情報領域20aにおけるフラグ情報“1”を参照した上位アプリケーション11は、メモリ20上の領域20a,20bを解放する。
第1所定時間が経過する前にディスク#2に対するI/O要求による処理が正常に終了しなかった場合(ステップS24のNOルート)、ディスク管理部12は、ディスク#2を縮退状態に変更する。さらに、ディスク管理部12は、領域22c,42aにおけるディスク#2用のボリューム構成・状態管理情報32における状態を正常状態から縮退状態に更新する(ステップS29)。この後、ディスク管理部12はステップS25の処理に移行する。
ステップS24のNOルートからステップS29,S25,S26を経由してステップS27の処理に至った場合、ディスク#2は縮退状態であり、仮縮退状態のディスクが存在しないと判断される(ステップS27のNOルート)。そして、応答処理部12bは、上位アプリケーション11に対しI/O完了を通知する(ステップS28)。このとき、ディスク#2用のI/O要求管理情報領域22aにおける上記フラグ情報は“0”のままである。I/O完了通知を受けアプリ用I/O要求管理情報領域20aにおけるフラグ情報“1”を参照した上位アプリケーション11は、メモリ20上の領域20a,20bを解放する。
一方、ディスク#2でタイムアウトが発生した場合(ステップS23のYESルート)、ディスク管理部12は、第2所定時間を計時するタイマ機能を起動する(ステップS30)。そして、ディスク管理部12は、ディスク#2を仮縮退状態に変更するとともに、領域22c,42aにおけるディスク#2用のボリューム構成・状態管理情報32における状態を正常状態から仮縮退状態に更新する(ステップS31)。さらに、ディスク管理部12は、復旧処理部12cによる仮縮退復旧スレッド(図13参照)を起動してから(ステップS32)、ステップS26の処理に移行する。
ステップS32において仮縮退復旧スレッドが起動されてから完了するまでの間、ディスク#2に対する仮縮退復旧処理と、それ以外のディスク#1との処理は、独立して並列的に行なわれる。この間、ディスク#1のデータを更新しても、ディスク#2には反映されず、ディスク#1のみに対するI/O処理が実行されるが、ディスク#1のデータが更新された場合、更新箇所の位置情報は、差分情報としてビットマップ51に記録される。
ステップS23のYESルートからステップS30〜S32,S26を経由してステップ27の処理に至った場合、ディスク#2は仮縮退状態であり、仮縮退状態のディスクが存在すると判断される(ステップS27のYESルート)。この場合、ディスク管理部12は、ディスク#1に対する書込み要求によって書き換えられた領域の位置情報を、差分情報(ビットマップ)51に記録する(ステップS33)。そして、応答処理部12bは、上位アプリケーション11に対しI/O完了を通知する(ステップS28)。このとき、ディスク#2用のI/O要求管理情報領域22aにおける上記フラグ情報は“0”のままである。I/O完了通知を受けアプリ用I/O要求管理情報領域20aにおけるフラグ情報“1”を参照した上位アプリケーション11は、メモリ20上の領域20a,20bを解放する。
なお、先にI/O応答を行なったディスク#1でI/Oエラーが発生する場合の処理についての説明は省略する。この場合、残りのディスク#2は、最後のディスクとなるため、仮縮退状態に変更されず、一般的なI/Oエラーの処理が実行される。
ついで、図12に示すフローチャート(ステップS41〜S60)に従って、本実施形態の読出し処理時におけるディスク管理部12の動作について説明する。
ディスク管理部12は、上位アプリケーション11からI/O要求として読出し要求を受信すると(ステップS41のYESルート)、当該読出し要求によってリードするディスクを選択する(ステップS42)。そして、ディスク管理部12は、選択したディスク(以下、選択ディスクという)に対応するディスクドライバへのI/O要求発行処理(図10参照)を実行する(ステップS43)。これにより、当該ディスクに対応するタイマ機能が起動され、第1所定時間の計時が開始されるとともに、ディスク管理部12は、ディスクドライバ13からのI/O応答(処理完了通知)を待機する。
読出し処理待機中になったディスク管理部12(入出力制御部12a,応答処理部12b)は、選択ディスク用のタイマ機能が第1所定時間を計時したか否か、つまり選択ディスクでI/O処理のタイムアウトが発生したか否かを判断する(ステップS44)。選択ディスクでタイムアウトが発生していない場合(ステップS44のNOルート)、ディスク管理部12は、選択ディスクに対するI/O要求による処理が正常に終了したか否かを判断する(ステップS45)。
第1所定時間が経過する前に選択ディスクに対するI/O要求による処理が正常に終了した場合(ステップS45のYESルート)、選択ディスク用のI/O要求管理情報領域には、I/O処理結果として処理完了を示す上記フラグ情報“1”が書き込まれている。また、選択ディスク用のI/Oバッファ領域には、I/O処理結果として選択ディスクから読み出されたデータが書き込まれている。そして、ディスク管理部12は、選択ディスク用のI/O要求管理情報領域における処理完了情報を、アプリ用のI/O要求管理情報領域20aにコピーするとともに、選択ディスク用のI/Oバッファ領域における読出しデータを、アプリ用のI/O要求バッファ領域20bにコピーする(ステップS46)。
この後、ディスク管理部12は、選択ディスク用に獲得したメモリ領域を解放する(ステップS47)。そして、応答処理部12bは、上位アプリケーション11に対しI/O完了を通知する(ステップS48)。I/O完了通知を受けアプリ用I/O要求管理情報領域20aにおけるフラグ情報“1”を参照した上位アプリケーション11は、メモリ20上の領域20a,20bを解放する。
第1所定時間が経過する前に選択ディスクに対するI/O要求による処理が正常に終了しなかった場合(ステップS45のNOルート)、ディスク管理部12は、選択ディスクを縮退状態に変更する。さらに、ディスク管理部12は、選択ディスク用のボリューム構成・状態管理情報における状態を正常状態から縮退状態に更新する(ステップS49)。さらに、ディスク管理部12は、選択ディスク用に獲得したメモリ領域を解放する(ステップS50)。
この後、ディスク管理部12は、上記選択ディスクとミラーリング構成を成す「もう一方のディスク」を選択する(ステップS51)。そして、ディスク管理部12は、もう一方のディスクに対応するディスクドライバへのI/O要求発行処理(図10参照)を実行する(ステップS52)。なお、もう一方のディスクに対するI/O処理がタイムアウトする二重故障の場合の処理についての説明は省略している。この場合、一般的なI/Oエラーの動作が実行されるからである。
そして、ディスク管理部12は、もう一方のディスクに対するI/O要求による処理が正常に終了したか否かを判断する(ステップS53)。もう一方のディスクに対するI/O要求による処理が正常に終了した場合(ステップS53のYESルート)、もう一方のディスク用のI/O要求管理情報領域には、I/O処理結果として処理完了を示す上記フラグ情報“1”が書き込まれている。また、もう一方のディスク用のI/Oバッファ領域には、I/O処理結果として、もう一方のディスクから読み出されたデータが書き込まれている。ディスク管理部12は、もう一方のディスク用のI/O要求管理情報領域における処理完了情報を、アプリ用のI/O要求管理情報領域20aにコピーするとともに、もう一方のディスク用のI/Oバッファ領域における読出しデータを、アプリ用のI/O要求バッファ領域20bにコピーする(ステップS54)。
この後、ディスク管理部12は、もう一方のディスク用に獲得したメモリ領域を解放する(ステップS55)。そして、応答処理部12bは、上位アプリケーション11に対しI/O完了を通知する(ステップS48)。I/O完了通知を受けアプリ用I/O要求管理情報領域20aにおけるフラグ情報“1”を参照した上位アプリケーション11は、メモリ20上の領域20a,20bを解放する。
一方、もう一方のディスクに対するI/O要求による処理が正常に終了しなかった場合(ステップS53のNOルート)、ディスク管理部12は、もう一方のディスク用に獲得したメモリ領域を解放する(ステップS56)。そして、応答処理部12bは、上位アプリケーション11に対しI/Oエラーを通知する(ステップS57)。
また、選択ディスクでタイムアウトが発生した場合(ステップS44のYESルート)、ディスク管理部12は、第2所定時間を計時するタイマ機能を起動する(ステップS58)。そして、ディスク管理部12は、選択ディスクを仮縮退状態に変更するとともに、選択ディスク用のボリューム構成・状態管理情報における状態を正常状態から仮縮退状態に更新する(ステップS59)。さらに、ディスク管理部12は、復旧処理部12cによる仮縮退復旧スレッド(図13参照)を起動してから(ステップS60)、ステップS51の処理に移行する。
ステップS60において仮縮退復旧スレッドが起動されてから完了するまでの間、選択ディスクに対する仮縮退復旧処理と、それ以外のディスク(もう一方のディスク)との処理は、独立して並列的に行なわれる。この間、もう一方のディスクのデータを更新しても、選択ディスクには反映されず、もう一方のディスクのみに対するI/O処理が実行されるが、もう一方のディスクのデータが更新された場合、更新箇所の位置情報は、差分情報(ビットマップ)に記録される。
ついで、図13に示すフローチャート(ステップS61〜S70)に従って、本実施形態の仮縮退復旧スレッドの処理手順(復旧処理部12cの動作)について説明する。
図11のステップS32あるいは図12のステップS60において仮縮退復旧スレッドが起動されると、復旧処理部12cが動作を開始する。まず、復旧処理部12cは、対象のディスク(ここではディスク#2とする)において、第2所定時間(仮縮退時間)以上に亘って復帰していないI/O要求があるか否かを判断する(ステップS61)。ここで、「復帰していないI/O要求」とは、当該I/O要求について処理完了通知がディスク#2からディスク管理部12へ返信されていないことをいう。
ディスク#2において第2所定時間以上に亘って復帰していないI/O要求が無い場合(ステップS61のNOルート)、即ちディスク#2に対する全てのI/O要求について処理完了通知が返信されている場合、復旧処理部12cは、以下の処理を実行する。
つまり、復旧処理部12cは、ディスク#2を仮縮退状態からコピー状態に復帰させるとともに、ディスク#2用のボリューム構成・状態管理情報32における状態を仮縮退状態からコピー状態に更新する(ステップS62)。ここで、ディスク#2のコピー状態とは、ディスク#2と対を成す正常状態のディスク#1にFC−SW3やサーバ1(ディスク管理部12)を介して接続され、ディスク#1からディスク#2へのデータコピーが可能になっている状態である。
そして、復旧処理部12cは、もう一方のディスク(ここではディスク#2とミラーリング構成を成すディスク#1とする)用のビットマップ51を参照し、ディスク#1からディスク#2に対し、更新箇所(差分データ)をコピーする(ステップS63)。これにより、ディスク#1とディスク#2とがミラー状態に復旧される。
この後、復旧処理部12cは、差分情報(ビットマップ)51を削除してから(ステップS64)、ステップS63でのコピー処理に成功したか否かを判断する(ステップS65)。コピー処理に成功した場合(ステップS65のYESルート)、復旧処理部12cは、ディスク#2をコピー状態から正常状態に変更するとともに、ディスク#2用のボリューム構成・状態管理情報32における状態をコピー状態から正常状態に更新する(ステップS66)。そして、ディスク#2は、システムに組み込まれ(ステップS67)、ディスク#2とディスク#1とはミラーリング構成を成す。
一方、コピー処理に失敗した場合(ステップS65のNOルート)や、ディスク#2において第2所定時間以上復帰していないI/O要求が有る場合(ステップS61のYESルート)、復旧処理部12cは、以下の処理を実行する。
つまり、復旧処理部12cは、ディスク#2を仮縮退状態から縮退状態に変更するとともに、ディスク#2用のボリューム構成・状態管理情報32における状態を仮縮退状態から縮退状態に更新する(ステップS68)。そして、復旧処理部12cは、ディスク#2に対応するディスク#1の差分情報(ビットマップ)51が存在する場合、当該差分情報(ビットマップ)51を削除する(ステップS69)。
この後、縮退したディスク#2に対するI/O要求が復帰した場合、ディスク制御部12は、縮退したディスク#2用に獲得したメモリ20上のメモリ領域22a,22bを解放する(ステップS70)。
〔3〕本実施形態の効果
このように、本実施形態のサーバ1では、2つのディスク#1,#2に対して同時にI/O制御を行なった結果、I/O制御の開始後、第1所定時間内に一方のディスクからの処理完了通知を受信したが他方のディスクからの処理完了通知を受信しない場合、ディスク管理部12は、他方のディスクに異常が発生しているものと判断する。そして、ディスク管理部12は、ミラー状態を仮縮退してI/O完了を上位アプリケーション11に通知する。したがって、I/O応答時間を、ユーザ,オペレータ等によって適宜設定される第1所定時間に抑えることができ、大幅に短縮することができる。
これにより、上位アプリケーション11のI/O制御に対する処理完了応答が高速化され、上位アプリケーション11のI/O制御に占有される時間を大幅に短縮することができる。このとき、ディスク側の構成を変更することなく、ディスクよりも上位側のサーバ1(ディスク管理部12)によって、処理完了応答の高速化を実現することができる。また、ディスクドライバの種類や、ハードウエア側の性能(リトライ処理時間やキャンセル処理時間)に依存することなく、応答時間を大幅に短縮することができる。
また、本実施形態のサーバ1では、上位アプリケーション11用の第1メモリ領域20a,20bが解放されても、下位のドライバ13等は、第1メモリ領域20a,20bとは異なる第2メモリ領域21a,21b,22a,22bを用いて処理を行なうことができる。つまり、ディスク管理部12が処理完了通知を待つことなく上位アプリケーション11に対しI/O完了を通知することで、第1メモリ領域20a,20bが解放されても、下位のドライバ13等は、第2メモリ領域21a,21b,22a,22bを用いて処理を行なうことができる。これにより、ディスクドライバ13等が、解放されたメモリ領域20a,20bにアクセスするのを抑止でき、ハングアップやデータ破壊の発生が確実に防止される。
ところで、上述した第1所定時間を短く設定してI/O完了をできるだけ早く上位アプリ11に返信するようにすると、パス変更等により処理完了通知が遅れているだけで故障していない正常なディスク#2を縮退させてしまう可能性があった。本実施形態のサーバ1では、第1所定時間経過後にさらに第2所定時間だけ経過した時点で仮縮退状態のディスク#2について処理完了通知の再確認を行ない処理完了通知を受信した場合、仮縮退状態のディスク#2が正常状態に復帰される。このとき、差分情報(ビットマップ)51,52に基づき差分データがディスク#1からディスク#2にコピーされ、ディスク#1とディスク#2とのミラー状態も復旧され、冗長構成が継続される。
〔4〕本実施形態の変形例
上述した実施形態では、2つのディスクに対し同時にI/O制御を行なった結果、I/O制御開始後、第1所定時間内に一方のディスクからの処理完了通知を受信し且つ第1所定時間内に他方のディスクから処理完了通知を受信しない場合、上位アプリ11に完了応答が出力される。しかしながら、本発明は、これに限定されるものではない。
例えば、本実施形態の変形例として、応答処理部12bは、2つのディスクに対し同時にI/O制御を行なった結果、一方のディスク(第1記憶装置)からの処理完了通知を受信すると、直ちに、上位アプリケーション11に対して、I/O要求に対応する処理の完了応答を出力してもよい。これにより、当該変形例では、上述した実施形態よりも早く処理完了応答を返すことができ、上位アプリケーション11のI/O制御に対する処理完了応答をより高速化することができる。
当該変形例において、I/O制御開始後、第1所定時間の計時を行ない、第1所定時間内に2つのディスクのいずれからも処理完了通知を受信しない場合、応答処理部12bは、2重故障が発生したものと判断し、上位アプリケーション11に対しI/Oエラーを出力してもよい。
また、当該変形例において、ディスク制御部12が上位アプリケーション11に対し完了応答を出力した時点で上記第2所定時間の計時を開始してもよい。この場合、上位アプリケーション11に対する完了応答出力後、第2所定時間内に他方のディスク(第2記憶装置)からの処理完了通知を受信すると、復旧処理部12cが、上述した実施形態と同様に機能する。
つまり、復旧処理部12cは、他方のディスクを仮縮退状態から復旧させた後、ビットマップ51,52で“1”を設定されたビットに対応する差分データを、一方のディスクから他方のディスクにコピーすることで、2つのディスクがミラー状態に復旧される。このとき、当該他方のディスク用のボリューム構成・状態管理情報31,32における状態が仮縮退状態から正常状態に更新される。一方、復旧処理部12cは、上位アプリケーション11に対する完了応答出力後、第2所定時間内に他方のディスクからの処理完了通知を受信しない場合、当該他方のディスクを仮縮退状態から縮退状態に変更する。このとき、当該他方のディスク用のボリューム構成・状態管理情報31,32における状態が仮縮退状態から縮退状態に更新される。
これにより、本実施形態の変形例においても、上述した本実施形態と同様の作用効果を得ることができる。
〔5〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した実施形態では、上位アプリケーション11からのI/O要求に応じて同時にI/O制御を行なうディスク(記憶装置)の数が2である場合について説明したが、本発明は、これに限定されるものでなく、3以上である場合にも、上述した実施形態と同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
また、上述した実施形態では、上位アプリケーション11からのI/O要求による処理対象を記憶装置2におけるディスク(HDD)としたが、本発明は、これに限定されるものでなく、SSD等、種々の記憶媒体を対象にしてもよい。
〔6〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行なう入出力制御部と、
前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する応答処理部と、を有する、情報処理装置。
(付記2)
前記応答処理部は、
前記入出力制御を開始してから第1所定時間内に前記第1記憶装置からの処理完了通知を受信するとともに前記第1所定時間内に前記複数の記憶装置のうちの前記第1記憶装置以外の第2記憶装置からの処理完了通知を受信しない場合、前記上位アプリケーションに対して前記完了応答を出力する、付記1に記載の情報処理装置。
(付記3)
前記入出力制御部は、
前記上位アプリケーションからの前記入出力要求を処理するための第1メモリ領域とは異なる第2メモリ領域を前記記憶装置毎に確保し、
前記入出力要求に係る情報を前記第1メモリ領域から前記第2メモリ領域にコピーし、
前記第2メモリ領域にコピーされた前記入出力要求に係る情報を用いて各記憶装置に対する前記入出力制御を行なう、付記2に記載の情報処理装置。
(付記4)
前記入出力制御部は、
前記第2記憶装置用の前記第2メモリ領域に保存された前記入出力要求に係る情報を用いて、前記第1所定時間が経過した後に仮縮退状態に切り替えられた前記第2記憶装置に対する前記入出力制御を行なう一方、
前記第1記憶装置用の前記第2メモリ領域に保存された、前記上位アプリケーションからの新たな入出力要求に係る情報を用いて、前記新たな入出力要求に応じた入出力制御を前記第1記憶装置に対して行ない、
前記新たな入出力要求に応じた入出力制御がライトアクセスに係る場合、前記ライトアクセスを行なった前記第1記憶装置の領域の位置情報を、差分情報として、差分情報管理領域に記録する、付記3に記載の情報処理装置。
(付記5)
前記第1所定時間が経過してから第2所定時間内に前記第2記憶装置からの処理完了通知を受信すると、前記第2記憶装置を前記仮縮退状態から復旧し、前記差分情報管理領域に記録された前記差分情報に対応する差分データを、前記第1記憶装置から前記第2記憶装置にコピーする復旧処理部を有する、付記4に記載の情報処理装置。
(付記6)
前記復旧処理部は、
前記第1所定時間が経過してから前記第2所定時間内に前記第2記憶装置からの処理完了通知を受信しない場合、前記第2記憶装置を前記仮縮退状態から縮退状態に変更する、付記5に記載の情報処理装置。
(付記7)
上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行ない、
前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する、
処理を、コンピュータに実行させる、入出力制御プログラム。
(付記8)
前記入出力制御を開始してから第1所定時間内に前記第1記憶装置からの処理完了通知を受信するとともに前記第1所定時間内に前記複数の記憶装置のうちの前記第1記憶装置以外の第2記憶装置からの処理完了通知を受信しない場合、前記上位アプリケーションに対して前記完了応答を出力する、
処理を、前記コンピュータに実行させる、付記7に記載の入出力制御プログラム。
(付記9)
前記上位アプリケーションからの前記入出力要求を処理するための第1メモリ領域とは異なる第2メモリ領域を前記記憶装置毎に確保し、
前記入出力要求に係る情報を前記第1メモリ領域から前記第2メモリ領域にコピーし、
前記第2メモリ領域にコピーされた前記入出力要求に係る情報を用いて各記憶装置に対する前記入出力制御を行なう、
処理を、前記コンピュータに実行させる、付記8に記載の入出力制御プログラム。
(付記10)
前記第2記憶装置用の前記第2メモリ領域に保存された前記入出力要求に係る情報を用いて、前記第1所定時間が経過した後に仮縮退状態に切り替えられた前記第2記憶装置に対する前記入出力制御を行なう一方、
前記第1記憶装置用の前記第2メモリ領域に保存された、前記上位アプリケーションからの新たな入出力要求に係る情報を用いて、前記新たな入出力要求に応じた入出力制御を前記第1記憶装置に対して行ない、
前記新たな入出力要求に応じた入出力制御がライトアクセスに係る場合、前記ライトアクセスを行なった前記第1記憶装置の領域の位置情報を、差分情報として、差分情報管理領域に記録する、
処理を、前記コンピュータに実行させる、付記9に記載の入出力制御プログラム。
(付記11)
前記第1所定時間が経過してから第2所定時間内に前記第2記憶装置からの処理完了通知を受信すると、前記第2記憶装置を前記仮縮退状態から復旧し、前記差分情報管理領域に記録された前記差分情報に対応する差分データを、前記第1記憶装置から前記第2記憶装置にコピーする、
処理を、前記コンピュータに実行させる、付記10に記載の入出力制御プログラム。
(付記12)
前記第1所定時間が経過してから前記第2所定時間内に前記第2記憶装置からの処理完了通知を受信しない場合、前記第2記憶装置を前記仮縮退状態から縮退状態に変更する、
処理を、前記コンピュータに実行させる、付記11に記載の入出力制御プログラム。
(付記13)
コンピュータが、
上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行ない、
前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する、入出力制御方法。
(付記14)
前記コンピュータが、
前記入出力制御を開始してから第1所定時間内に前記第1記憶装置からの処理完了通知を受信するとともに前記第1所定時間内に前記複数の記憶装置のうちの前記第1記憶装置以外の第2記憶装置からの処理完了通知を受信しない場合、前記上位アプリケーションに対して前記完了応答を出力する、付記13に記載の入出力制御方法。
(付記15)
前記コンピュータが、
前記上位アプリケーションからの前記入出力要求を処理するための第1メモリ領域とは異なる第2メモリ領域を前記記憶装置毎に確保し、
前記入出力要求に係る情報を前記第1メモリ領域から前記第2メモリ領域にコピーし、
前記第2メモリ領域にコピーされた前記入出力要求に係る情報を用いて各記憶装置に対する前記入出力制御を行なう、付記14に記載の入出力制御方法。
(付記16)
前記コンピュータが、
前記第2記憶装置用の前記第2メモリ領域に保存された前記入出力要求に係る情報を用いて、前記第1所定時間が経過した後に仮縮退状態に切り替えられた前記第2記憶装置に対する前記入出力制御を行なう一方、
前記第1記憶装置用の前記第2メモリ領域に保存された、前記上位アプリケーションからの新たな入出力要求に係る情報を用いて、前記新たな入出力要求に応じた入出力制御を前記第1記憶装置に対して行ない、
前記新たな入出力要求に応じた入出力制御がライトアクセスに係る場合、前記ライトアクセスを行なった前記第1記憶装置の領域の位置情報を、差分情報として、差分情報管理領域に記録する、付記15に記載の入出力制御方法。
(付記17)
前記コンピュータが、
前記第1所定時間が経過してから第2所定時間内に前記第2記憶装置からの処理完了通知を受信すると、前記第2記憶装置を前記仮縮退状態から復旧し、前記差分情報管理領域に記録された前記差分情報に対応する差分データを、前記第1記憶装置から前記第2記憶装置にコピーする、付記16に記載の入出力制御方法。
(付記18)
前記コンピュータが、
前記第1所定時間が経過してから前記第2所定時間内に前記第2記憶装置からの処理完了通知を受信しない場合、前記第2記憶装置を前記仮縮退状態から縮退状態に変更する、付記17に記載の入出力制御方法。
1 サーバ(情報処理装置)
2,2−1,2−2 記憶装置
3 FC−SW
10 CPU
11 上位アプリケーションプログラム
12 ディスク管理部
12a 入出力制御部
12b 応答処理部
12c 復旧処理部
13,131,132 ディスクドライバ
20 メモリ
20a アプリ用I/O要求管理情報領域(第1メモリ領域)
20b アプリ用I/Oバッファ領域(第1メモリ領域)
21a ディスク#1用I/O要求管理情報領域(第2メモリ領域)
21b ディスク#1用I/Oバッファ領域(第2メモリ領域)
21c ディスク#1用状態管理領域
21d ディスク#1用差分情報管理領域
22a ディスク#2用I/O要求管理情報領域(第2メモリ領域)
22b ディスク#2用I/Oバッファ領域(第2メモリ領域)
22c ディスク#2用状態管理領域
22d ディスク#2用差分情報管理領域
31 ディスク#1のボリューム構成・状態管理情報
32 ディスク#2のボリューム構成・状態管理情報
41a ディスク#1用状態管理領域
41b ディスク#1用差分情報管理領域
42a ディスク#2用状態管理領域
42b ディスク#2用差分情報管理領域
4ma ディスク#m用状態管理領域
4mb ディスク#m用差分情報管理領域
4na ディスク#n用状態管理領域
4nb ディスク#n用差分情報管理領域
51 ディスク#1用差分情報(ビットマップ)
52 ディスク#2用差分情報(ビットマップ)

Claims (8)

  1. 上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行なう入出力制御部と、
    前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する応答処理部と、を有する、情報処理装置。
  2. 前記応答処理部は、
    前記入出力制御を開始してから第1所定時間内に前記第1記憶装置からの処理完了通知を受信するとともに前記第1所定時間内に前記複数の記憶装置のうちの前記第1記憶装置以外の第2記憶装置からの処理完了通知を受信しない場合、前記上位アプリケーションに対して前記完了応答を出力する、請求項1に記載の情報処理装置。
  3. 前記入出力制御部は、
    前記上位アプリケーションからの前記入出力要求を処理するための第1メモリ領域とは異なる第2メモリ領域を前記記憶装置毎に確保し、
    前記入出力要求に係る情報を前記第1メモリ領域から前記第2メモリ領域にコピーし、
    前記第2メモリ領域にコピーされた前記入出力要求に係る情報を用いて各記憶装置に対する前記入出力制御を行なう、請求項2に記載の情報処理装置。
  4. 前記入出力制御部は、
    前記第2記憶装置用の前記第2メモリ領域に保存された前記入出力要求に係る情報を用いて、前記第1所定時間が経過した後に仮縮退状態に切り替えられた前記第2記憶装置に対する前記入出力制御を行なう一方、
    前記第1記憶装置用の前記第2メモリ領域に保存された、前記上位アプリケーションからの新たな入出力要求に係る情報を用いて、前記新たな入出力要求に応じた入出力制御を前記第1記憶装置に対して行ない、
    前記新たな入出力要求に応じた入出力制御がライトアクセスに係る場合、前記ライトアクセスを行なった前記第1記憶装置の領域の位置情報を、差分情報として、差分情報管理領域に記録する、請求項3に記載の情報処理装置。
  5. 前記第1所定時間が経過してから第2所定時間内に前記第2記憶装置からの処理完了通知を受信すると、前記第2記憶装置を前記仮縮退状態から復旧し、前記差分情報管理領域に記録された前記差分情報に対応する差分データを、前記第1記憶装置から前記第2記憶装置にコピーする復旧処理部を有する、請求項4に記載の情報処理装置。
  6. 前記復旧処理部は、
    前記第1所定時間が経過してから前記第2所定時間内に前記第2記憶装置からの処理完了通知を受信しない場合、前記第2記憶装置を前記仮縮退状態から縮退状態に変更する、請求項5に記載の情報処理装置。
  7. 上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行ない、
    前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する、
    処理を、コンピュータに実行させる、入出力制御プログラム。
  8. コンピュータが、
    上位アプリケーションからの入出力要求に応じて、冗長構成の複数の記憶装置に対して同時に入出力制御を行ない、
    前記複数の記憶装置に対して同時に前記入出力制御を行なった結果、前記複数の記憶装置のうちのいずれか一つの第1記憶装置からの処理完了通知を受信すると、前記上位アプリケーションに対して、前記入出力要求に対応する処理の完了応答を出力する、入出力制御方法。
JP2014184113A 2014-09-10 2014-09-10 情報処理装置、入出力制御プログラム、及び入出力制御方法 Withdrawn JP2016057876A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014184113A JP2016057876A (ja) 2014-09-10 2014-09-10 情報処理装置、入出力制御プログラム、及び入出力制御方法
US14/811,931 US20160070491A1 (en) 2014-09-10 2015-07-29 Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014184113A JP2016057876A (ja) 2014-09-10 2014-09-10 情報処理装置、入出力制御プログラム、及び入出力制御方法

Publications (1)

Publication Number Publication Date
JP2016057876A true JP2016057876A (ja) 2016-04-21

Family

ID=55437563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014184113A Withdrawn JP2016057876A (ja) 2014-09-10 2014-09-10 情報処理装置、入出力制御プログラム、及び入出力制御方法

Country Status (2)

Country Link
US (1) US20160070491A1 (ja)
JP (1) JP2016057876A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018073005A (ja) * 2016-10-26 2018-05-10 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP2020170331A (ja) * 2019-04-03 2020-10-15 富士ゼロックス株式会社 情報処理装置及びプログラム
JP7524701B2 (ja) 2020-10-01 2024-07-30 富士通株式会社 制御装置及び制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11108698B2 (en) * 2017-02-03 2021-08-31 Microsoft Technology Licensing, Llc Systems and methods for client-side throttling after server handling in a trusted client component
US20240069807A1 (en) * 2022-08-31 2024-02-29 Micron Technology, Inc. Managing command completion notification pacing in a memory sub-system

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
US5611073A (en) * 1995-02-09 1997-03-11 Delco Electronics Corp. Method of ensuring parameter coherency in a multi-processor system
JPH09171441A (ja) * 1995-12-20 1997-06-30 Hitachi Ltd 二重化記憶装置の記憶一致方法および装置
JP4033310B2 (ja) * 1997-12-16 2008-01-16 富士通株式会社 情報機器の補助記憶装置及び情報機器
US6795890B1 (en) * 1999-02-19 2004-09-21 Mitsubishi Denki Kabushiki Kaisha Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
US7210001B2 (en) * 1999-03-03 2007-04-24 Adaptec, Inc. Methods of and apparatus for efficient buffer cache utilization
JP2002108573A (ja) * 2000-09-28 2002-04-12 Nec Corp ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体
TW200500857A (en) * 2003-04-09 2005-01-01 Netcell Corp Method and apparatus for synchronizing data from asynchronous disk drive data transfers
WO2006012058A1 (en) * 2004-06-28 2006-02-02 Japan Communications, Inc. Systems and methods for mutual authentication of network
JP2006139478A (ja) * 2004-11-11 2006-06-01 Hitachi Ltd ディスクアレイシステム
US7441081B2 (en) * 2004-12-29 2008-10-21 Lsi Corporation Write-back caching for disk drives
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US8595435B2 (en) * 2009-07-30 2013-11-26 Cleversafe, Inc. Dispersed storage write process
US8589550B1 (en) * 2006-10-23 2013-11-19 Emc Corporation Asymmetric data storage system for high performance and grid computing
WO2008078334A2 (en) * 2006-12-22 2008-07-03 Hewlett-Packard Development Company, L.P. Computer system and method of control thereof
US20080168226A1 (en) * 2007-01-05 2008-07-10 Accusys. Inc. Correction method for reading data of disk array system
JP5219183B2 (ja) * 2007-03-01 2013-06-26 任天堂株式会社 映像コンテンツ表示プログラム、情報処理装置、映像コンテンツ表示方法および映像コンテンツ表示システム
JP2008250695A (ja) * 2007-03-30 2008-10-16 Nec Corp ディスクアレイコントローラ及びこれを備えたディスクアレイシステム
JP5146032B2 (ja) * 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
JP2010009548A (ja) * 2008-06-30 2010-01-14 Toshiba Corp 記憶装置、制御装置、記憶システム、および記憶方法
DE112009002119T5 (de) * 2008-10-15 2011-07-07 Mitsubishi Electric Corp. Informationsspeichereinrichtung
US8060470B2 (en) * 2008-12-23 2011-11-15 Apple Inc. Heterogeneous database management system
US8578084B2 (en) * 2009-04-08 2013-11-05 Google Inc. Data storage device having multiple removable memory boards
JP2010282281A (ja) * 2009-06-02 2010-12-16 Hitachi Ltd ディスクアレイ装置、及びその制御方法、並びにプログラム
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8516137B2 (en) * 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
US8510265B1 (en) * 2010-03-31 2013-08-13 Emc Corporation Configuration utility for a data storage system using a file mapping protocol for access to distributed file systems
WO2011160094A2 (en) * 2010-06-18 2011-12-22 Sandforce, Inc. Scalable storage devices
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US8370310B2 (en) * 2011-03-04 2013-02-05 Microsoft Corporation Managing database recovery time
US8392458B2 (en) * 2011-04-22 2013-03-05 Hitachi, Ltd. Information apparatus and method of controlling the same
WO2013051056A1 (en) * 2011-10-04 2013-04-11 Hitachi, Ltd. Multi-client storage system and storage system management method
KR101445025B1 (ko) * 2012-02-09 2014-09-26 서울시립대학교 산학협력단 신뢰성 있는 ssd를 위한 효율적인 raid 기법
JP5958020B2 (ja) * 2012-03-30 2016-07-27 富士通株式会社 ストレージシステム
US9690703B1 (en) * 2012-06-27 2017-06-27 Netapp, Inc. Systems and methods providing storage system write elasticity buffers
US8904224B2 (en) * 2012-07-20 2014-12-02 International Business Machines Corporation Providing replication and fail-over as a network service in data centers
US9141480B2 (en) * 2012-10-17 2015-09-22 Datadirect Networks, Inc. Handling failed transaction peers in a distributed hash table
US9268695B2 (en) * 2012-12-12 2016-02-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and structure for using region locks to divert I/O requests in a storage controller having multiple processing stacks
US9304901B2 (en) * 2013-03-14 2016-04-05 Datadirect Networks Inc. System and method for handling I/O write requests
US20150095555A1 (en) * 2013-09-27 2015-04-02 Avalanche Technology, Inc. Method of thin provisioning in a solid state disk array
CA2912394A1 (en) * 2013-05-14 2014-11-20 Actifio, Inc. Efficient data replication and garbage collection predictions
US9430383B2 (en) * 2013-09-20 2016-08-30 Oracle International Corporation Fast data initialization
US9514054B2 (en) * 2014-07-08 2016-12-06 Netapp, Inc. Method to persistent invalidation to ensure cache durability
US20160048342A1 (en) * 2014-08-12 2016-02-18 Facebook, Inc. Reducing read/write overhead in a storage array
US20160070714A1 (en) * 2014-09-10 2016-03-10 Netapp, Inc. Low-overhead restartable merge operation with efficient crash recovery
US20160070644A1 (en) * 2014-09-10 2016-03-10 Netapp, Inc. Offset range operation striping to improve concurrency of execution and reduce contention among resources
US9817602B2 (en) * 2014-11-13 2017-11-14 Violin Systems Llc Non-volatile buffering for deduplication

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018073005A (ja) * 2016-10-26 2018-05-10 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP2020170331A (ja) * 2019-04-03 2020-10-15 富士ゼロックス株式会社 情報処理装置及びプログラム
JP7524701B2 (ja) 2020-10-01 2024-07-30 富士通株式会社 制御装置及び制御方法

Also Published As

Publication number Publication date
US20160070491A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
JP5887757B2 (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
US7779202B2 (en) Apparatus and method for controlling disk array with redundancy and error counting
US8762648B2 (en) Storage system, control apparatus and control method therefor
US9395938B2 (en) Storage control device and method for controlling storage devices
JP2013041455A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP2006146833A (ja) ディスク装置の整合性検査支援方法およびディスクアレイ装置の整合性検査方法
US10108481B1 (en) Early termination error recovery
JP2016057876A (ja) 情報処理装置、入出力制御プログラム、及び入出力制御方法
JP4456626B2 (ja) ディスクアレイ装置、ディスクアレイ装置制御プログラムおよびディスクアレイ装置制御方法
JP4491330B2 (ja) ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP6965626B2 (ja) ストレージ制御装置、および制御プログラム
JP2005322399A (ja) 磁気ディスク記憶装置におけるトラック・データ完全性の維持方法
US8782465B1 (en) Managing drive problems in data storage systems by tracking overall retry time
JP6540334B2 (ja) システム、情報処理装置、および情報処理方法
JPH09269871A (ja) ディスクアレイ装置におけるデータ再冗長化方式
CN108170375B (zh) 一种分布式存储系统中的超限保护方法和装置
JP5104479B2 (ja) 情報処理装置
JP2006079219A (ja) ディスクアレイ制御装置およびディスクアレイ制御方法
JP5181795B2 (ja) Raidシステム、及びエラーセクタの修復方法
JP5505329B2 (ja) ディスクアレイ装置及びその制御方法
JP4143040B2 (ja) ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP2007052509A (ja) ディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラム
JP5729043B2 (ja) ストレージ装置および制御装置
JP5273185B2 (ja) 記録媒体制御システム、記録媒体制御方法、記録媒体制御プログラム
JP2016143248A (ja) ストレージ制御装置及びストレージ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170605

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171106