Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4131894B2 - ランダムディスクライトに好適なディスク制御機構 - Google Patents
[go: Go Back, main page]

JP4131894B2 - ランダムディスクライトに好適なディスク制御機構 - Google Patents

ランダムディスクライトに好適なディスク制御機構 Download PDF

Info

Publication number
JP4131894B2
JP4131894B2 JP2000053814A JP2000053814A JP4131894B2 JP 4131894 B2 JP4131894 B2 JP 4131894B2 JP 2000053814 A JP2000053814 A JP 2000053814A JP 2000053814 A JP2000053814 A JP 2000053814A JP 4131894 B2 JP4131894 B2 JP 4131894B2
Authority
JP
Japan
Prior art keywords
log
area
mode
disk
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000053814A
Other languages
English (en)
Other versions
JP2001243021A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000053814A priority Critical patent/JP4131894B2/ja
Priority to US09/659,507 priority patent/US6721863B1/en
Publication of JP2001243021A publication Critical patent/JP2001243021A/ja
Application granted granted Critical
Publication of JP4131894B2 publication Critical patent/JP4131894B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムの磁気ディスク装置に代表されるディスク装置(ディスク記憶装置)に対するランダムライトの高速化に好適なディスク制御機構に関する。
【0002】
【従来の技術】
近年、コンピュータシステムにおけるディスク装置に対するランダムライトの高速化の手法として、例えば特開平11−53235号公報に記載されているような、ログ構造化ファイル方式(LFS:Log Structured File System)が提案されている。
【0003】
ログ構造化ファイル方式(以下、LFSと称する)の原理は、「ディスクの大ブロック・シーケンシャルライトは、小ブロック・ランダムライトに比較して非常に高速」であるというディスク装置特有の前提条件のもとに、ディスク領域の効果的利用により(コンピュータの)ディスク制御機構側で小ブロック・ランダムライトを大ブロック・シーケンシャルライトに変換することによって、ディスクライトの高速化を実現するというものである。具体的には、複数の小さなブロックの書き込みデータを、その本来の書き込み位置に全く無関係に集め、1つの大きなブロックのシーケンシャルなログとしてディスクに記録することによって、ディスクライトの高速化を実現する。
【0004】
LFSを適用する場合、「複数の小さなブロックの書き込みデータ」の本来書き込まれるべき位置、つまりコンピュータ側が意図した本来の書き込み位置(以下、本来位置と称する)からログ上の位置(以下、ログ位置と称する)への対応関係を示す情報と、その逆の関係である、ログ位置から本来位置への対応関係を示す情報を保持しておく必要がある。以下の説明では、前者の対応関係情報を順インデックスと呼び、後者の対応関係情報を逆インデックスと呼ぶ。また、両者をまとめてインデックスと呼ぶ。
【0005】
上記インデックスは、一般にコンピュータ側に保持される。このため、当該コンピュータが故障で急に停止した場合に、上記インデックスが不完全な状態になれば、ディスクのデータは信用できないものになってしまう。
【0006】
そこでLFSを適用する従来のコンピュータシステムでは、上記インデックスを専用の不揮発性メモリ、例えばNVRAM(Non-Volatile Random Access Memory)上に保持し、耐障害性を持たせていた。
【0007】
【発明が解決しようとする課題】
上記したように、特開平11−53235号公報に開示されたLFSは、ディスク装置へのランダムライトアクセスの高速化を実現するのに適している。
しかしながら、LFSには以下に示すような問題点もあり、これを改善していくことが、実用上、重要である。
【0008】
第1の問題点は、大ブロック・シーケンシャルリードに対して性能が著しく悪くなる可能性があるということである。この原因は、小ブロック・ランダムライトを大ブロック・シーケンシャルライトに変換したことの「つけ」として、大ブロック・シーケンシャルリードが小ブロック・ランダムリードに変換されてしまうという点にある。つまり、本来位置では連続した領域でも、ログ位置ではばらばらに配置されているかもしれないということである。
【0009】
第2の問題点は、切り替えシステムにおける共有ディスクにLFSを適用することで生じる。切り替えシステムは、複数のコンピュータがディスク装置を共有し、いずれかのコンピュータが故障した場合でも他のコンピュータに処理を引き継がせることが可能なシステムであり、HA(High Availability)システム(高可用性システム)と呼ばれている。この切り替えシステムでは、プライマリのコンピュータが故障で急に停止した場合、セカンダリのコンピュータが処理を引き継ぐ。その際、データは共有ディスクを通して引き継がれる。ところがLFSでは、インデックスなどを不揮発性メモリ(NVRAM)上に持つため、データを共有ディスクを通して引き継ぐことができない。つまり、データを引き継ぐためには、共有不揮発性メモリ(NVRAM)も必要になる。
【0010】
本発明は上記事情を考慮してなされたものでその目的は、ランダムライトの高速化のためにLFS(ログ構造化ファイル方式)を適用したことで大ブロック・シーケンシャルリードの性能が悪化するのを、データの本来の配置を考慮した再配置により防止できるディスク制御機構を提供することにある。
【0011】
本発明の他の目的は、ランダムライトの高速化に必要なインデックスの保存にディスク領域を効果的に利用することで、不揮発性メモリを不要とし、切り替えシステムでのインデックスの引き継ぎが容易に行えるディスク制御機構を提供することにある。
【0012】
【課題を解決するための手段】
本発明の第1の観点に係るディスク制御機構は、上位装置から与えられた複数のディスクライト要求の指定するデータをまとめて、ディスク装置上の上位装置から指定可能な(つまり上位装置から見える)領域(本来領域)とは別に確保された領域(ログ領域)に所定サイズのデータブロック単位で連続して格納するLFS(ログ構造化ファイル方式)を適用するディスク制御機構において、上記ログ領域上の最も古い有効なデータブロックを、上記本来領域上の本来書き込まれるべき位置に再配置する動作を繰り返す再配置手段とを備えたことを特徴とする。
【0013】
このような構成においては、LFSの適用によりランダムライト(小ブロック・ランダムライト)の並列アクセスの高速化を図りながら、再配置手段の再配置により、ログ位置ではばらばらに配置されていても、本来領域では連続した領域に配置されるデータブロック群に対するリード要求については、当該本来領域から連続的に読み出すことが可能となるため、LFSの適用による大ブロック・シーケンシャルリードのアクセス性能低下を防ぐことが可能となる。
【0014】
本発明の第2の観点に係るディスク制御機構は、LFSを適用するディスク制御機構において、上位装置から与えられた複数のディスクライト要求の指定するデータをまとめて上記ログ領域にデータブロック単位で連続して格納するライト処理手段に、上記連続して格納される各データブロックが本来書き込まれるべき上記本来領域上の位置を示す逆インデックスを含む制御ブロックを当該データブロックの列に付加して上記ログ領域に格納する機能を持たせる一方、次の各手段、即ち起動時に、上記ログ領域上の制御ブロックから逆インデックスを読み出して、当該逆インデックスから該当するデータブロックが本来書き込まれるべき上記本来領域上の位置と当該データブロックの上記ログ領域上の位置との対応関係を示す順インデックスを揮発性メモリ上に確保された順インデックス格納領域に復元するリカバリ処理手段と、上位装置からリード要求が与えられた場合、当該リード要求に基づいて上記順インデックス格納領域を参照することで、当該リード要求で指定されるデータブロックが上記ログ領域または本来領域のいずれに格納されているかを判定し、その判定結果に基づいてログ領域または本来領域から対応するデータブロックを読み出すリード処理手段とを備えたことを特徴とする。
【0015】
このような構成においては、LFSの適用によりランダムライト(小ブロック・ランダムライト)の並列アクセスの高速化を図ることができる。しかも上記の構成においては、ログ領域に格納されているデータブロックの順インデックスを保持するのに、NVRAMのような不揮発性メモリではなくて、揮発性メモリ(上に確保された順インデックス格納領域)を用いていながら、起動時(立ち上げ時)に、ログ領域にデータブロック列に付加されて格納されている制御ブロック中の逆インデックスに基づいて当該各データブロックの順インデックスを復元することができる。即ち、電源断の発生により一時的に順インデックス格納領域の情報が失われても、起動時に復元できるため、順インデックスのデータが破壊または喪失するのを防止でき、不揮発性メモリを用いることなく耐障害性を実現できる。ここで、上記制御ブロックを上記データブロックと同一サイズにするならば、当該制御ブロックを簡単にアクセスできる。
【0016】
本発明の第3の観点に係るディスク制御機構は、上記第2の観点に係るディスク制御機構に、上記ログ領域に格納されている各データブロックの逆インデックスを保存するためのディスク装置上に確保されたログ管理領域を管理するログ領域管理手段であって、所定のチェックポイント毎に、前回のチェックポイント以降に上記ログ領域に格納された制御ブロックに含まれる逆インデックスを揮発性メモリ上に記憶して、上記ログ管理領域上の、前回のチェックポイント時点において既に保存されている逆インデックスに後続する位置から、当該記憶された逆インデックスを保存するログ領域管理手段を追加すると共に、上記第2の観点に係るディスク制御機構で適用した上記リカバリ処理手段に代えて、次の機能を持つリカバリ処理手段、即ち上記ログ管理領域から最も最近のチェックポイントまでの逆インデックスを読み出すと共に、当該チェックポイント以降に上記ログ領域に格納された制御ブロックから逆インデックスを読み出して、当該逆インデックスに基づいて上記順インデックス格納領域に順インデックスを復元するリカバリ処理手段を用いることを特徴とする。ここで、ログ領域上での制御ブロックとデータブロックの配列に対応させて、制御ブロックについてもダミーの逆インデックス(制御ブロックであることを示す、逆インデックスと同一サイズのデータ)をログ管理領域上の該当位置に保存する構成とするならば、ログ管理領域からの逆インデックスの読み出しが高速に行える。
【0017】
このような構成においては、最も最近のチェックポイントまでにログ領域に格納されたデータブロックの逆インデックスについては、ログ管理領域から直接取得でき、ログ領域中の制御ブロックから復元する必要があるのは、上記最も最近のチェックポイント以降にログ領域に格納されたデータブロックの逆インデックスだけであるため、起動時の順インデックス復元に要する時間をより短縮できる。なお、この構成においても、ランダムライトの並列アクセスが高速化できると共に、不揮発性メモリを用いることなく耐障害性を実現できることは勿論である。
【0018】
本発明の第4の観点に係るディスク制御機構は、上記第1の観点に係るディスク制御機構に、上記第2の観点に係るディスク制御機構で適用した、上記ライト処理手段、上記リカバリ処理手段及び上記リード処理手段を追加すると共に、上記再配置手段に次の機能、即ちデータブロックの再配置時に、当該データブロックの順インデックスを上記順インデックス格納領域から削除する機能を持たせたことを特徴とする。
【0019】
このような構成においては、上記第1の観点に係るディスク制御機構で得られる効果と上記第2の観点に係るディスク制御機構で得られる効果の両効果を得ることが可能となる。
【0020】
本発明の第5の観点に係るディスク制御機構は、上記第1の観点に係るディスク制御機構に、上記第3の観点に係るディスク制御機構で適用した、上記ライト処理手段、上記ログ領域管理手段、上記リカバリ処理手段及び上記リード処理手段を追加すると共に、上記再配置手段に次の機能、即ちデータブロックの再配置時に、当該データブロックの順インデックスを上記順インデックス格納領域から削除する機能を持たせたことを特徴とする。
【0021】
このような構成においては、上記第1の観点に係るディスク制御機構で得られる効果と上記第3の観点に係るディスク制御機構で得られる効果の両効果を得ることが可能となる。
【0022】
本発明の第6の観点に係るディスク制御機構は、上記第1、第4または第5の観点に係るディスク制御機構に、上位装置からのログモードまたは非ログモードへの切り替え設定指令を受けて、上記ディスク装置をログモードまたは非ログモードに設定するモード設定手段であって、上位装置から与えられるディスクライト要求の指定するデータが、上記ログモードでは制御ブロックを付して上記ログ領域に書き込まれ、上記非ログモードではそのまま上記本来領域に書き込まれるように設定するモード設定手段を追加したことを特徴とする。
【0023】
このような構成においては、ログモードから非ログモードへ、或いは非ログモードからログモードへの切り替え(移行)が、データを保存したまま行える。ここで非ログモードは、大ブロックアクセスが行われるバックアップ処理等に適している。そこで、小ブロックアクセス(特に、小ブロック・ランダムライト)が頻繁に発生するトランザクション処理が行われる期間(例えば業務時間帯)は、ログモードを設定し、バックアップ処理が行われる期間(例えば業務時間外)は、非ログモードを設定(ログモードを解除)すると、常にディスクアクセスの高速化が実現できる。
【0024】
ここで、上記再配置手段に次の手段、即ち非ログモードへの切り替え設定時に、上記ログ領域上の有効なデータブロックを全て上記本来領域上の本来書き込まれるべき位置に再配置する一括再配置手段を持たせるならば、リード処理手段によるデータ読み出しは、非ログモードへの切り替え直後から常に本来領域を対象に行われるため、大ブロック・シーケンシャルリードが最初から高速に行える。
【0025】
本発明の第7の観点に係るディスク制御機構は、上記第1、第4または第5の観点に係るディスク制御機構に、上位装置からのログモードまたは通常モードへの切り替え設定指令を受けて、上記ディスク装置をログモードまたは通常モードに設定するモード設定手段であって、上記通常モードへの切り替え時には、ログモードで割り当てられている本来領域、ログ領域及びログ管理領域のうちの少なくとも本来領域を通常モード用の新たな本来領域に割り当て、上記ログモードへの切り替え時には、上記通常モードで割り当てられている本来領域を含む記憶領域を分割して、ログモード用の新たな本来領域、ログ領域及びログ管理領域に割り当てるモード設定手段を追加すると共に、上記再配置手段に上記一括再配置手段を持たせたことを特徴とする。
【0026】
このような構成においては、ディスク装置の記憶領域が有効に利用できる他、ディスク装置(の記憶領域)の増減にも対応できる。但し、モードの切り替えによりデータを破棄しなければならない場合もあるため、切り替え後のモードに固定して運用するシステムには適しているが、頻繁にモードを切り替えるシステムには不向きである。
【0027】
また、上記第3または第5の観点に係るディスク制御機構を有する複数のコンピュータを用いて、当該各コンピュータによりディスク装置が共有されるコンピュータシステムを構成するならば、運用状態にあるコンピュータ(プライマリのコンピュータ)が故障して停止しても、当該コンピュータの処理を引き継ぐ別のコンピュータ(セカンダリのコンピュータ)では、その起動時に、ディスク制御機構のリカバリ処理手段により順インデックスが復元されるため、不揮発性メモリを用いることなくインデックスの引き継ぎが容易に行え、高可用性システム(切り替えシステム)を実現できる。
【0028】
なお、以上のディスク制御機構に係る本発明はディスク制御方法に係る発明としても成立する。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0030】
[第1の実施形態]
図1は本発明の第1の実施形態に係るコンピュータシステムの構成を示すブロック図である。
同図において、コンピュータシステムの中心をなすコンピュータ10には、磁気ディスク装置に代表されるディスク装置20が接続されている。ディスク装置20には、コンピュータ10の管理のもとでLFS(ログ構造化ファイル方式)が適用される。
【0031】
図1のシステムで、LFSが有効に作用するための前提条件、つまりLFSの適用でディスク装置20に対するランダムライトの高速化が実現可能となるための前提条件は、[従来の技術]の欄で述べたように、「ディスクの大ブロック・シーケンシャルライトは、小ブロック・ランダムライトに比較して非常に高速」でなければならないということである。実際、この条件は殆どのディスク装置に当てはまる。特に、RAID5(Redundant Arrays of Inexpensive Disks 5)などのディスクアレイにおけるパリティ付きストライプセットでは、この性質が非常に強くなるため、LFSの適用を前提とする本発明は有効である。
【0032】
ディスク装置20の記憶領域は、本来領域21とログ領域22とログ管理領域23との3つに分けて管理される。本来領域21は、データをコンピュータ10が指定した位置、つまり本来位置に対応して格納するのに用いられる。ログ領域22は、データをログ位置に対応して格納するのに用いられる。ログ管理領域23は、ログの管理情報を格納するのに用いられる。
【0033】
ここで、ディスク装置20の記憶領域における上記領域割り当てを従来技術と比較する。まず、ランダムライトアクセスの高速化をしない、つまりLFSを適用しない従来技術では、本来領域21に相当する領域のみが存在していた。一方、本実施形態と同様にランダムライトアクセスの高速化をする(LFSを適用する)従来技術では、ログ領域22に相当する領域のみが存在していた。これに対して本実施形態は、ディスク装置20の記憶領域に、本来領域21とログ領域22の両領域が同時に存在し、それに加えてログ管理領域23が更に存在する構成を適用することに第1の特徴がある。
【0034】
ログ領域22は、所定サイズ(例えば4096バイト、つまり4Kバイト)の単位ブロックがリング状に1列につながったように管理される、一種の循環バッファ(リングバッファ)構造を適用する。単位ブロックには、図2に示すように、データを格納するデータブロック(D)と、制御ブロック(H)との2種類がある。
【0035】
制御ブロック(H)には、図2に示すように、連続する複数のデータブロック(D)の先頭に位置し、その複数のデータブロック(D)の列に対してシリアルに付与されるアクセス番号と、当該データブロック(D)の数(データブロック数)と、各データブロック(D)の本来位置(P)と、当該制御ブロック(H)が壊れているか否かを調べるためのCRC(巡回冗長符号)とを含む情報が格納される。制御ブロック(H)と、当該制御ブロック(H)に対応する複数のデータブロック(D)とは連続しているので、書き込み時にはログ領域22にはまとめて書き込むことができる。ここで制御ブロック(H)により管理される複数のデータブロック(D)は連続しており、制御ブロック(H)を含めてブロックサイズは一定(4Kはバイト)であることから、そのブロックサイズと制御ブロック(H)内のブロック数の情報に基づいて、当該データブロック(D)のログ位置は簡単に求められる。したがって、制御ブロック(H)には、当該制御ブロック(H)により管理される各データブロック(D)について、ログ位置(当該データブロック(D)のログ領域22上の位置)から本来位置への対応関係を示す情報(逆インデックス)が保存されているといえる。よって、以降の説明では、制御ブロック(H)には、逆インデックスの情報が保存されているものとして扱う。
【0036】
ログ管理領域23には、図3に示すように、ある時点において、ログ領域22に連続的に格納されている単位ブロックのうち先頭ブロックの開始位置(先頭単位ブロック開始位置)と、同じく最終ブロックの終了位置(最終単位ブロック終了位置)と、各単位ブロックの本来位置とを含む情報が格納される。つまりログ管理領域23では、ある時点におけるログ領域22上での単位ブロックの格納状態を示す情報が保持・管理される。但し、単位ブロックのうちの制御ブロック(H)については、本来位置の情報に代えて、制御ブロックであることを示す特定情報(例えば「−1を示す情報」が用いられる。なお、ログ管理領域23では、1単位ブロックにつき、4バイトの領域が割り当てられる。この場合、ログ管理領域23の先頭単位ブロック開始位置と最終単位ブロック終了位置の情報領域を除く領域、即ち各単位ブロックの本来位置の情報領域のサイズは、単位ブロックのサイズをB(=4Kバイト)とすると、ログ領域22を4/Bに縮小したものに一致する。
【0037】
ログ管理領域23は、常にログ領域22の最新の状態を保持しているわけではなく、その保持内容は、ある程度の時間間隔で更新される。更新された時点を、チェックポイントと呼ぶ。このログ管理領域23の保持内容の更新動作は、後述するリカバリ動作を速く完了させる効果を有する。
【0038】
さて、ログ領域22により管理される単位ブロックの総数nは、ログ領域22のサイズNと、ブロックサイズ(4Kバイト)Bとに基づき、N/Bの演算により簡単に算出できる。また、i番目の単位ブロックのログ位置(ログ領域22での位置)は、ブロックサイズBとiとをもとに、(i−1)*Bの演算により簡単に算出できる。このことは、ログ管理領域23では、ログ位置の情報も本来位置の情報と同様に単位ブロック毎に管理されていることと等価である。即ちログ管理領域23には、チェックポイント時点にログ領域22に格納されている各単位ブロックについて、ログ位置から本来位置への対応関係を示す情報、つまり逆インデックスが保存されているといえる(但し、制御ブロック(H)を除く)。よって、以降の説明では、ログ管理領域23には、逆インデックスの情報が保持されているものとして扱う。なお、ログ管理領域23上で各単位ブロック毎にログ位置と本来位置との情報対を保持するようにしても構わないが、必要領域がほぼ倍となる。
【0039】
このように本実施形態では、ログ領域22に格納されている単位ブロックの本来位置を示す情報、つまり逆インデックスを、ログ領域22に格納されている制御ブロック(H)内と、ログ管理領域23内との両方に保存している点に第2の特徴がある。
【0040】
再び図1を参照すると、コンピュータ10は、オペレーティングシステム(以下、OSと称する)11と、本発明に直接関係するディスク制御機構をなすディスクドライバ12と、順インデックス格納部14とを備えている。
【0041】
OS11はコンピュータ10の中枢をなし、ファイル管理、メモリ管理、タスク管理、デバイス管理等のシステム管理を司る。OS11内の上記ファイル管理を司る機能部分はファイルシステム110と呼ばれる。ここでは、ファイルシステム110はディスク装置20に格納されるファイルの管理を行う。
【0042】
ディスクドライバ12は、上記OS11のファイルシステム110とディスク装置20との間に位置し、ファイルシステム110を介して送られる各種アプリケーションプログラム13からのディスクアクセス要求(ディスクライト要求、ディスクリード要求)を受けて、ディスク装置20との間のデータ入出力を制御するディスク制御機構をなす。ここでは、アプリケーションプログラム13は、小ブロック・ランダムライトを並列に要求するような処理を行うものである。この種のアプリケーションプログラム13は、図1のコンピュータシステムがデータベース・ミドルウェアを使用するようなシステムで適用される。
【0043】
ディスクドライバ12は、リード処理部121、再配置処理部122、ログ領域管理部123、ライト処理部124、及びリカバリ処理部125を備えている。
【0044】
リード処理部121は、OS11を介して与えられるアプリケーションプログラム13からのリード要求に応じて、ログ領域22またはログ管理領域23からデータを読み出す機能を有する。再配置処理部122は、ログ領域22に格納されているデータ(具体的には、その時点で最も古い有効なデータブロック(D))を本来領域21上の本来の位置に再配置する機能を有する。
【0045】
ログ領域管理部123は、ログ領域22に格納されているデータをログ管理領域23の利用により管理する。ライト処理部124は、OS11を介して与えられるアプリケーションプログラム13からのライト要求に応じて、指定されたデータを本来の位置に無関係にログ領域22に格納する機能を有する。リカバリ処理部125は、システムの電源ON時に、ログ領域22に格納されているデータの本来位置と当該ログ領域22上の位置との関係を示す順インデックスを、ログ領域22及びログ管理領域23の情報(逆インデックス)に基づいて、次に述べる順インデックス格納部14上に復元する機能を有する。
【0046】
順インデックス格納部14は、ログ領域22に格納されている有効なデータブロック(D)の本来位置と当該ログ領域22上の位置(ログ位置)との関係を示すインデックス(順インデックス)を格納するのに用いられる。本実施形態において順インデックス格納部14は、主記憶(図示せず)上の所定領域を割り当てることで実現されている。
【0047】
次に、図1のコンピュータシステムにおける動作を、a)リカバリ処理、b)ライト処理、c)ログ領域管理処理、d)再配置処理、e)リード処理の各々について順次説明する。
【0048】
a)リカバリ処理
まずリカバリ処理部125によるリカバリ処理について、図5のフローチャートを参照して説明する。
コンピュータ10のディスクドライバ12が起動されると、当該ディスクドライバ12内のリカバリ処理部125は、ログ管理領域23の情報を(例えば図示せぬ主記憶上に確保される)ログ管理領域バッファ(図示せず)にまとめて読み出す(ステップS1)。次に読み出したログ管理領域23の情報から、(最新の)チェックポイント時点においてログ領域22に格納されていた(先頭単位ブロック開始位置から最終単位ブロック終了位置までの範囲の)各単位ブロックの逆インデックスの情報を先頭単位ブロックから順に取り出し、各逆インデックスの情報の前後(ログ位置と本来位置)を入れ替えて順インデックス格納部14に順次登録する(ステップS2,S3)。ここで、制御ブロック(H)は登録対象外となる。この制御ブロック(H)には本来位置情報に代えて「−1」が用いられることから、簡単に識別できる。
【0049】
リカバリ処理部125は、チェックポイント時点にログ領域22に格納されていた全ての単位ブロックについてステップS2,S3を終了すると(ステップS4)、ステップS1で読み出したログ管理領域23の情報中の最終単位ブロック終了位置の情報に基づいてログ領域22をアクセスし(ステップS5)、ログ領域22における最終単位ブロックに後続する位置に次のアクセス番号の制御ブロック(H)が存在するか否かをチェックする(ステップS6)。
【0050】
もし、次のアクセス番号の制御ブロック(H)が存在するならば、リカバリ処理部125はチェックポイント時以降にログ領域22にデータブロック(D)が格納されているものと判断する。この場合、リカバリ処理部125は、チェックポイント時以降にログ領域22に格納された全ての制御ブロック(H)から、チェックポイント時以降にログ領域22に格納された各単位ブロックの逆インデックスの情報を先頭の単位ブロックより順に読み出し、各逆インデックスの情報の前後(ログ位置と本来位置)を入れ替えて順インデックス格納部14の後続位置(ログ管理領域23から読み出された逆インデックスに基づいて登録された順インデックスの後続位置)に順次登録する(ステップS7,S8)。このようにして、順インデックス格納部14に順インデックスが再生(復元)される。
【0051】
b)ライト処理
次にライト処理部124によるライト処理について、図6のフローチャートを参照して説明する。
アプリケーションプログラム13からディスク装置20へのデータの書き込み要求(ライト要求)が発生すると、当該要求はOS11のファイルシステム110を介してディスクドライバ12に送られる。このライト要求は、ディスクドライバ12内のライト処理部124で受け取られ、ライト要求実行待ち行列(キュー)の最後尾につながれる。このとき、ディスクライトの実行中であるものとすると、その間にライト処理部124で受け取られてライト要求実行待ち行列につながれた新たなライト要求の実行は待たされる。
【0052】
ライト処理部124は、現在実行中のディスクライトが完了して、新たなライト要求の実行が可能になると、例えばその時点においてライト要求実行待ち行列につながれている全てのライト要求(ここでは、小ブロック・ランダムライト要求)について、当該要求(の指定するライトデータ)を論理的に一定サイズのデータブロック(D)に分割する(ステップS11)。次にライト処理部124は、各データブロック(D)のログ位置と本来位置とをログ領域管理部123に通知して、ライト要求の実行が可能か否かを問い合わせる(ステップS12)。ここで、先頭のデータブロック(D)の書き込み開始位置は、前回の書き込み最終位置の次の位置となる。
【0053】
ログ領域管理部123は、ライト処理部124からライト完了した各データブロック(D)の本来位置とログ位置とが通知されると、ログ管理領域バッファに逆インデックス情報を追加する。
【0054】
さて、ログ領域管理部123はログ領域22上で最も古い有効なデータブロック(D)のログ位置を常時把握している。そのためログ領域管理部123は、ライト処理部124からライト要求の実行の可否の問い合わせを受け取ると、ログ領域22上でライト処理部124により書き込まれる位置が、その時点で最も古い有効なデータブロック(D)の位置に追いつく可能性があるか否かを調べ、追いつく可能性があるときはライト処理部124に対してライト要求の実行を待たせる。一方、追いつく可能性がないときは、ログ領域管理部123はライト処理部124に対してライト許可を与える。なお、ログ領域管理部123による上記最も古い有効なデータブロック(D)の位置の把握については後述する。
【0055】
ライト処理部124は、ログ領域管理部123からライト許可が与えられた場合(ステップS13)、上記データブロック(D)への分割の対象となった各ライト要求(小ブロック・ランダムライト要求)をまとめて1つの大ブロック・シーケンシャルライト要求に変換する(ステップS14)。そしてライト処理部124は、大ブロック・シーケンシャルライト要求の実行処理、即ちステップS11で分割した各データブロック(D)を対応するライト要求の要求順で、且つブロック分割順に1つにまとめて、その先頭に制御ブロック(H)を付加し、一括してログ領域22に書き込む処理を行う(ステップS15)。
【0056】
その後、ライト処理部124は、ログ領域22に書き込まれた各データブロック(D)について、当該データブロック(D)の本来位置からログ位置への情報対からなる順インデックスを順インデックス格納部14に順に登録する(ステップS16)。この際、既に同じ本来位置の情報を持つ順インデックスが登録されている場合は、当該順インデックス中のログ位置の情報を新たなログ位置の情報に更新する。
【0057】
e)ログ領域管理処理
次に、ログ領域管理部123によるログ領域管理処理について、図7のフローチャートを参照して説明する。
ログ領域管理部123は、ログ領域22上で最も古い有効なデータブロック(D)の位置を以下に述べるようにして検出する。
【0058】
まずログ領域管理部123は、ログ管理領域バッファより、先頭単位ブロック開始位置直後のデータブロック(D)、即ち先頭単位ブロック開始位置から最終単位ブロック終了位置の範囲内で先頭にあるデータブロック(D)の逆インデックスを参照する(ステップS21)。次にログ領域管理部123は、参照した逆インデックス中の本来位置に対応するログ位置を順インデックス格納部14より検索する(ステップS22)。
【0059】
もし、得られたログ位置が当該データブロックのログ位置と一致したならば(ステップS23)、ログ領域管理部123は該当するデータブロック(D)が現時点においてログ領域22上で最も古い有効なデータブロック(D)であり、先に参照した逆インデックス中の本来位置の情報が当該最も古い有効データブロック(D)の位置を示す情報であると決定する(ステップS24)。この場合、ログ領域管理部123は自身が管理している、現時点で最も古い有効なデータブロック(D)のログ位置と本来位置の情報を更新する(ステップS25)。
【0060】
これに対し、順インデックスが存在しなかった場合、または得られたログ位置が一致しなかった場合(ステップS23)、ログ領域管理部123は該当するブロックは無効ブロックであると決定する(ステップS26)。この場合、ログ領域管理部123は次のデータブロック(D)の逆インデックスを参照し(ステップS27)、当該データブロック(D)が現時点で最も古い有効名データブロック(D)であるか否かを決定するために、ステップS22の処理に戻る。
【0061】
ログ領域管理部123は以上の処理を再配置処理部122による再配置処理に伴って行うことで、ログ領域22上で最も古い有効なデータブロック(D)のログ位置を常時把握する。
【0062】
次にログ領域管理部123によるログ管理領域23の情報の更新処理について説明する。
ログ領域管理部123は、ライト処理部124から通知された各データブロック(D)毎のログ位置と本来位置の情報対に基づいてログ管理領域バッファの情報を更新する。これにより、ログ管理領域バッファには、前回の更新時点(つまり前回のチェックポイント時点)から現在までの間にログ領域22に書き込まれた複数のブロックの各々について、それぞれ4バイトの情報(制御ブロック(H)であれば、その旨を示す「−1」、データブロック(D)であれば本来位置の情報)が追加登録される。
【0063】
ログ領域管理部123は、ログ管理領域バッファ上で更新された情報を、定期的にログ管理領域23にまとめて書き出す。この時点がチェックポイント時点となる。同時に、最終単位ブロック終了位置の情報が、最新の位置を示すように書き替えられる。このとき、先頭単位ブロック開始位置の情報も、最新の位置を示すように書き替えられる。この最新の先頭単位ブロック開始位置は、その時点において最も古い有効なデータブロック(D)を含むデータブロック列に付加されている制御ブロック(H)の開始位置である。
【0064】
d)再配置処理
次に、本発明に直接関係する再配置処理部122による再配置処理について、図8のフローチャートを参照して説明する。
再配置処理部122は、(イ)ディスク装置20の負荷が比較的小さい場合(基準負荷以下の場合)と、(ロ)ログ領域22上でライト処理部124により書き込まれる位置が、その時点で最も古い有効なデータブロック(D)の位置に追いつきそうな場合(両位置の差が基準ブロック数以下の場合)に、以下に述べる再配置処理を行う。
【0065】
さて再配置処理部122は、上記(イ)または(ロ)の状態になると(ステップS31またはS32)、その時点においてログ領域22に格納されているデータブロック(D)のうち、最も古い有効なデータブロック(D)をログ領域管理部123に問い合わせ、当該ログ領域22から読み出す(ステップ33)。そして再配置処理部122は、読み出したデータブロック(D)を本来領域21上の本来位置に書き込む(ステップS34)。
【0066】
次に再配置処理部122は、ステップS32での書き込みの対象となったデータブロック(D)に関する順インデックスを順インデックス格納部14から削除する(ステップS35)。
【0067】
d)リード処理
次に、リード処理部121によるリード処理について、図9のフローチャートを参照して説明する。
アプリケーションプログラム13からディスク装置20へのデータの読み出し要求(リード要求)が発生すると、当該要求はOS11のファイルシステム110を介してディスクドライバ12に送られる。このリード要求は、ディスクドライバ12内のリード処理部121で受け取られる。
【0068】
するとリード処理部121は、受け取ったリード要求(の指定するリード対象データ)をデータブロック(D)単位に分割する(ステップS41)。そしてリード処理部121は、リード対象となる先頭のデータブロックの本来位置に一致する本来位置(の情報)を持つ順インデックスを、順インデックス格納部14上で検索する(ステップS42)。
【0069】
もし、目的とする順インデックスが検索できたなら(ステップS43)、リード処理部121は当該検索できた順インデックス中のログ位置の情報に基づいて、ログ領域22から該当するデータブロック(D)を読み出す(ステップS44)。一方、目的とする順インデックスが検索できなかったならば、リード処理部121は上記本来位置の情報に基づいて、本来領域21から該当するデータブロックを読み出す処理を行う(ステップS45)。
【0070】
リード処理部121は、ログ領域22または本来領域21から目的とするデータブロック(D)を読み出すと、上記リード要求の指定する最後のデータブロック(D)の読み出しまで終了したか否かをチェックする(ステップS46)。
【0071】
もし、リード要求の指定する最後のデータブロック(D)の読み出しまで終了していないならば、リード処理部121はステップS42と同様の処理、即ちリード対象となる次のデータブロック(D)を持つ順インデックスを検索する処理を行い(ステップS47)、上記ステップS43に戻る。
【0072】
このようにして、リード要求の指定するデータを構成する全てのデータブロック(D)について、ログ領域22または本来領域21から読み出し終えると(ステップS46)、リード処理部121によるリード処理は終了となる。
【0073】
なお、リード対象となるデータブロック(D)がログ領域22または本来領域21上で連続しているか否かをチェックし、連続しているデータブロック(D)の列については、まとめてログ領域22または本来領域21から読み出すようにしてもよい。
【0074】
以上、本発明の第1の実施形態について説明した。この第1の実施形態によれば、以下に列挙する効果を得ることができる。
(1)逆インデックスを、ログ領域22に格納された制御ブロック(H)内と、ログ管理領域23内との両方に保存するようにしたので、リカバリ処理部125による当該逆インデックスに基づくリカバリ処理により、本来位置とログ位置との対応関係を示すインデックスを順インデックス格納部14内に完全に復元することができる。したがって、NVRAM等の不揮発性メモリは不要となる。
【0075】
(2)複数の小ブロック・ランダムライトをライト処理部124にて大ブロック・シーケンシャルライトに変換するようにしたので、ディスク書き込みの高速化が実現できる。
【0076】
(3)ライト処理部124によってログ領域22に高速に書き込まれたデータブロック(D)を、ディスク装置20の負荷が比較的小さい期間、つまりディスク装置20が空いているときを利用して、本来領域21内の本来位置に再配置するようにしたので、時間方向の負荷分散を図りながら、(小ブロック・ランダムライトの指定するデータの書き込みの高速化のために)書き込み位置を変換した「つけ」を解消し、リード性能の低下を防ぐことができる。
【0077】
(4)再配置の対象となるデータを、その時点で最も古い有効なデータブロック(D)とし、再配置の時期を、ログ領域22上でライト処理部124により書き込まれる位置が上記データブロック(D)の位置に追いつきそうな場合としたことにより、ライト処理部124によるログ領域22に対する書き込みが当該ログ領域22をほぼ一巡する間に本来位置で上書きされなかった(更新が行われなかった)データ、つまり以後も上書きされないであろうデータが本来領域21に再配置されるため、リード性能の低下を防ぐことができる。このことは、高負荷状態が長い間続いた場合に、比較的頻繁に書き替えられるデータブロックと、そうでないデータブロックとを分別する効果を有することを意味する。
【0078】
(5)順インデックス格納部14には、ログ領域22に格納されているデータブロック(D)の順インデックスを保持するだけでよいため、当該順インデックス格納部14に割り当てるメモリ領域(メモリ容量)を従来技術に比べて少なくできる。
【0079】
[第2の実施形態]
図10は本発明の第2の実施形態に係るコンピュータシステムの構成を示すブロック図であり、図1と同一部分には同一符号を付してある。
【0080】
図10のコンピュータシステムは、(図1中のコンピュータ10に相当する)複数のコンピュータ10-1〜10-nと、これら各コンピュータ10-1〜10-nにより共有されるディスク装置20とから構成される。ディスク装置20はいずれのコンピュータ10-1〜10-nからもアクセス可能であり、その記憶領域は、前記第1の実施形態と同様に、本来領域21とログ領域22とログ管理領域23との3つに分けて管理される。
【0081】
各コンピュータ10-1〜10-nは、図1中のコンピュータ10と同様に、ファイルシステム110を持つOS11と、ディスクドライバ12とを備えている。また各コンピュータ10-1〜10-n上には、同一のアプリケーションプログラム13が置かれている。なお、図10では省略されているが、各コンピュータ10-1〜10-n上には、順インデックス格納部14(の領域)も設けられている。
【0082】
図10のシステムでは、コンピュータ10-1〜10-n上のアプリケーションプログラム13のうち、ある時点で動作しているのは、いずれか1つのコンピュータ10-i(その時点におけるプライマリのコンピュータ)上のアプリケーションプログラム13に限られる。
【0083】
このようなコンピュータシステムは、HAシステム(高可用性システム)と呼ばれている。HAシステムの特徴は、アプリケーションプログラム13が動作しているコンピュータ10-iが故障によって停止しても、他のコンピュータ10-j(jは1〜n、但しj≠i)が処理を引き継ぐことができる点にある。このHAシステムの性能の主な指標に、処理の引き継ぎ時間があり、本実施形態では以下に述べるように高速な引き継ぎが可能となる。
【0084】
まず、各コンピュータ10-1〜10-nに設けられたディスクドライバ12は、前記第1の実施形態で詳述したのと同様に動作する。したがって、アプリケーションプログラム13が動作しているコンピュータがコンピュータ10-1であるものとすると、当該コンピュータ10-1は、通常は前記第1の実施形態におけるコンピュータ10と同様の動作を行い、当該コンピュータ10と同様の効果を有する。
【0085】
さて、アプリケーションプログラム13が動作しているコンピュータ10-1が故障によって停止し、コンピュータ10-nが処理を引き継ぐものとする。この場合、コンピュータ10-n上のディスクドライバ12に設けられたリカバリ処理部125が起動される。
【0086】
するとリカバリ処理部125は、前記第1の実施形態で述べたリカバリ処理(図5参照)、即ち(最新の)チェックポイント時点にログ管理領域23にまとめて保存された逆インデックスと、当該チェックポイント時以降にログ領域22に保存された制御ブロック(H)中の逆インデックスとに基づくリカバリ処理を開始する。このリカバリ処理によって、引き継ぎの時点でディスク装置20のログ領域22に格納されている全てのデータブロック(D)のインデックスが順インデックス格納部14上に完全に復元され、コンピュータ10-1からコンピュータ10-nへの処理の引き継ぎが可能になる。
【0087】
本実施形態では、ログ管理領域23に、チェックポイント毎に逆インデックスをまとめて保存しているので、逆インデックスの読み出しを高速に行うことができる。その結果、コンピュータ間の処理の引き継ぎ時におけるリカバリ時間を短縮することができる。
【0088】
[第3の実施形態]
図11は本発明の第3の実施形態に係るコンピュータシステムの構成を示すブロック図であり、図1と同一部分には同一符号を付してある。
【0089】
図11のコンピュータシステムは、(図1中のコンピュータ10に相当する)コンピュータ10′と、当該コンピュータ10′に接続されたディスク装置20とを備えている。このディスク装置20の記憶領域は、前記第1の実施形態と同様に本来領域21とログ領域22とログ管理領域23との3つに分けて管理される。
【0090】
コンピュータ10′は、ファイルシステム110を有するOS11′とディスクドライバ12′とを備えている。OS11′は、例えばオペレータのモード切り替え指示に従い、ディスクドライバ12′に対してモード切り替え指令Mを発行するようになっている。このモード切り替え指令Mは、前記第1の実施形態で述べたようなLFSを定常的に適用するログモードへの切り替え、または新たなにはLFSを適用しない非ログモードへの切り替えを指示する。
【0091】
ログモードと非ログモードとで最も相違する点は、ライト要求の指定するデータの書き込みが、ログモードでは前記第1の実施形態と同様にログ領域22に対して行われるのに対し、非ログモードでは、本来領域21に対して行われる点である。このためディスクドライバ12′には、図1中のライト処理部124に代えてライト処理部124′が設けられている。このディスクドライバ12′におけるライト処理部124′以外の構成については、図1中のディスクドライバ12と同様である。但し、図11では、ライト処理部124′以外にはリード処理部121のみを示し、他の再配置処理部122、ログ領域管理部123及びリカバリ処理部125については省略してある。
【0092】
ここで、図11の構成のコンピュータシステムにおける主としてディスクドライバ12′の動作を説明する。
【0093】
OS11′は、システム運用状態において、オペレータ操作によりモード切り替えが指示されると、ディスクドライバ12′に対してモード切り替え指令Mを発行する。するとディスクドライバ12′は、現在のモードがログモードであれば非ログモードに、非ログモードであればログモードに切り替え設定する。この設定されたモードを示す情報は、コンピュータ10′の電源がオフされた後の再立ち上げ時にも識別可能なように、不揮発性記憶装置、例えばディスク装置20の記憶領域上の所定位置に記録される。なお、モード切り替え指令Mに代えて、現在のモードに無関係にログモードのON(ログモード設定)またはOFF(ログモード解除、つまり非ログモード設定)を指示するログモードON/OFF指令を発行する構成としても構わない。
【0094】
今、非ログモードが設定されている状態(ログモードOFF状態、ログモード解除状態)で、アプリケーションプログラム13からのライト要求がOS11′を介してディスクドライバ12′に与えられたものとする。この場合、ディスクドライバ12′内のライト処理部124′は、ライト要求の指定する本来領域21内の本来位置に対して指定されたデータを書き込むライト処理を行う。
【0095】
また、非ログモードが設定されている状態でアプリケーションプログラム13からリード要求が与えられた場合には、ディスクドライバ12′内のリード処理部121が前記第1の実施形態と同様に、図9のフローチャートに従って本来領域21またはログ領域22からデータを読み出すリード処理を行う。
【0096】
さて、ディスクドライバ12′内の(図1中の再配置処理部122に相当する)図示せぬ再配置処理部は、ログモード/非ログモードに無関係に、前記第1の実施形態と同様に、図8のフローチャートに従うログ領域22から本来領域21へのブロック単位の再配置処理を行う。また、非ログモードでは、ライト要求の指定するデータの書き込みは上記したように本来領域21に対してのみ行われる。
【0097】
したがって非ログモードにおいて、本来領域21に対する書き込みが続き、また再配置処理が繰り返されると、ログ領域22上の有効なデータブロック(D)が減少し、やがてログ領域22上には有効なデータブロック(D)が存在しない状態が到来し得る。このような状態になると、リード処理部121によるデータ読み出しは本来領域21からのみ行われることになる。
【0098】
一方、ログモードでのディスクドライバ12′の動作は、本来領域21、ログ領域22及びログ管理領域23を用いて前記第1の実施形態と全く同様に行われる。
【0099】
以上に述べたように本実施形態においては、非ログモードからログモードへの切り替えが、本来領域21にデータを保存した状態で行える。また、ログモードから非ログモードの切り替えも、本来領域21、ログ領域22及びログ管理領域23にデータを保存した状態で行える。ここで非ログモードは、大ブロックアクセスが行われるバックアップ処理等に適している。そこで、小ブロックアクセス(特に、小ブロック・ランダムライト)が頻繁に発生するトランザクション処理が行われる期間(例えば業務時間帯)は、ログモードを設定し、バックアップ処理が行われる期間(例えば業務時間外)は、非ログモードを設定(ログモードを解除)すると、常にディスクアクセスの高速化が実現できる。
【0100】
以上の構成は、トランザクション処理とバックアップ処理とが頻繁に(例えば毎日)行われるコンピュータシステムに適している。
【0101】
なお、ログモードから非ログモードに切り替え設定される際に、即ちログモードが解除される際に、ログ領域22上の全ての有効データブロック(D)を、本来領域21に強制的に再配置する構成としても構わない。このようにすると、リード処理部121によるデータ読み出しは、非ログモードへの切り替え直後から常に本来領域21を対象に行われるため、大ブロック・シーケンシャルリードが高速に行える。この構成では、ログモードで動作する(図1中のディスクドライバ12と同様の機能を持つ)新規なディスクドライバと、非ログモードで動作する従来から用いられているディスクドライバの2種のドライバを実装することも可能である。
【0102】
[第4の実施形態]
図12は本発明の第4の実施形態に係るコンピュータシステムの構成を示すブロック図であり、図11と同一部分には同一符号を付してある。
【0103】
図12のコンピュータシステムは、(図11中のコンピュータ10′に相当する)コンピュータ10″と、当該コンピュータ10″に接続されたディスク装置20′とを備えている。このディスク装置20′は、LFSが適用される前記第3の実施形態で述べたログモード、またはLFSが適用されない通常モードのいずれのモードでも利用可能である。
【0104】
ディスク装置20′の記憶領域は、ログモードでは領域21′と領域22′と領域23′の3領域に分けて管理され、領域21′は(図11(図1)中の本来領域21に相当する)本来領域として、領域22′は(図11(図1)中のログ領域22に相当する)ログ領域として、そして領域23′は(図11(図1)中のログ管理領域23に相当する)ログ管理領域として、それぞれ使用される。一方、通常モードでは、領域21′、領域22′及び領域23′の3領域は全て本来領域として用いられる。この点で通常モードは、領域21′に相当する図11中の領域21だけが本来領域として用いられる前記第3の実施形態における非ログモードとは異なる。
【0105】
コンピュータ10″は、ファイルシステム110を有するOS11″とディスクドライバ12″とを備えている。このディスクドライバ12″は、(図1中のリード処理部121、再配置処理部122、ログ領域管理部123、ライト処理部124及びリカバリ処理部125にそれぞれ相当する)リード処理部121″、再配置処理部122″、ログ領域管理部123″、ライト処理部124″及びリカバリ処理部125″を有している。
【0106】
ここで、図12の構成のコンピュータシステムにおける主としてディスクドライバ12″の動作を、図13及び図14のフローチャートを参照して説明する。
【0107】
OS11″は、システム運用状態において、オペレータ操作によりモード切り替えが指示されると、ディスクドライバ12″に対してモード切り替え指令M′を発行する。するとディスクドライバ12″は現在のモードを調べ(ステップS51)、ログモードまたは通常モードのいずれのモードに切り替えるべきかを決定する(ステップS52またはS53)。
【0108】
(ログモードから)通常モードへの切り替えを決定した場合、ディスクドライバ12″は再配置処理部122″により、ログモードにおいてログ領域として割り当てられている領域22′上の全ての有効なデータブロック(D)を、ログモードにおいて本来領域として割り当てられている領域21′に再配置させる(ステップS54)。次にディスクドライバ12″は、ログモードをOFFにして通常モードに切り替える(ステップS55)。このモードを示す情報は、コンピュータ10″の電源がオフされた後の再立ち上げ時にも識別可能なように、不揮発性記憶装置、例えばディスク装置20′の記憶領域上の所定位置に記録される。
【0109】
一方、(通常モードから)ログモードへの切り替えを決定した場合、ディスクドライバ12″は、通常モードにおいて本来領域として割り当てられているディスク装置20′の記憶領域上の3つの領域21′〜23′のうち、領域22′、領域23′を、それぞれログ領域、ログ管理領域として割り当て、その領域の内容を破棄する(ステップS56)。次にディスクドライバ12″はログ管理領域として割り当てた領域23′を初期化する(ステップS57)。そしてディスクドライバ12″は、ログモードをONにして通常モードからログモードに切り替える(ステップS58)。
【0110】
ディスクドライバ12″は、ステップS55またはS58を実行すると、モードの切り替え設定完了をOS11″に通知する。これによりOS11″は、システムの電源をOFFにする(ステップS59)。
【0111】
その後、システムの電源がONされると、ディスクドライバ12″は、ディスク装置20′の記憶領域中の所定位置に記録されているモード情報を参照することで、ログモードが設定されているか否かをチェックする(ステップS61)。
【0112】
もし、ログモードが設定されているならば、ディスクドライバ12″は、ディスク装置20′の記憶領域中の各領域21′〜23′について、領域21′を本来領域とし、領域22′をログ領域とし、そして領域23′をログ管理領域として使用するように設定する(ステップS62)。次に、ディスクドライバ12″はリカバリ処理部125″を起動して、前記第1の実施形態で述べたような、図5のフローチャートに従うリカバリ処理を行わせる(ステップS63)。
【0113】
ここで、前回の電源ON時に、既にログモードが設定されていたならば、上記リカバリ処理により、ログ管理領域(領域23′)とログ領域(領域22′)の情報に基づいて、(図1中の順インデックス格納部14に相当する)図示せぬ順インデックス格納部に順インデックスが復元される。これに対し、前回の電源ON時に通常モードが設定されていたならば、領域23′,22′にはリカバリの対象となる情報が存在しないため、実質的なリカバリ処理は行われずに、当該リカバリ処理は終了となる。そしてリカバリ処理が終了すると、ディスクドライバ12″は、現在設定されているモード、即ちログモードでの動作を開始することが可能となる(ステップS64)。このログモードでのディスクドライバ12″内のリード処理部121″、再配置処理部122″、ログ領域管理部123″、ライト処理部124″及びリカバリ処理部125″の動作は、前記第1の実施形態におけるリード処理部121、再配置処理部122、ログ領域管理部123、ライト処理部124及びリカバリ処理部125の動作と同様である。
【0114】
一方、通常モードが設定されているならば、ディスクドライバ12″は、ディスク装置20′の記憶領域中の各領域21′〜23′の全てを本来領域として使用するように設定する(ステップS65)。これによりディスクドライバ12″は、現在設定されているモード、即ち通常モードでの動作を開始することが可能となる(ステップS64)。この通常モードでは、LFSを適用しない従来のディスクドライバと同様の動作が行われ、リード処理部121″及びライト処理部124″だけが本来領域(領域21′〜23′)を対象とする、それぞれリード動作、ライト動作を行う。
【0115】
以上の構成においては、通常モードでは、領域21′の他に、領域22′,23′も本来領域として用いられるため、前記第3の実施形態と比べて、通常モードにおいてディスク装置(20′)の記憶領域を有効に利用できる。但し、ログモードへの切り替え時には、当該領域22′,23′の内容が破棄されるため、必要であれば当該領域22′,23′の内容のバックアップをとるとよい。したがって、図12の構成は、モード切り替えが頻繁に行われるシステムより、比較的長期に亘って同一モードを適用するシステムに適している。
【0116】
なお、本実施形態では、ログモードまたは通常モードのいずれのモードが設定されていても、1つのディスクドライバ12″で対応できるものとして説明したが、ログモードで動作するディスクドライバと、通常モードで動作するディスクドライバの2種のドライバを実装することも可能である。
【0117】
また本実施形態では、ログモードの場合と通常モードの場合とで、ディスク装置20の記憶領域の大きさが変更されないものとして説明したが、例えば通常モードからログモードへの切り替え時に、新たにディスク装置を増設して、その増設ディスク装置の記憶領域をログ領域用の領域22′とログ管理領域用の領域23′とに用いるようにしても構わない。このような構成では、ログモードから通常モードへの切り替え時には、上記とは逆に、ログ領域用の領域22′とログ管理領域用の領域23′を持つディスク装置を、システムから取り外すようにしても構わない。
【0118】
【発明の効果】
以上詳述したように本発明によれば、ランダムライトの高速化のためにLFS(ログ構造化ファイル方式)を適用したことで大ブロック・シーケンシャルリードの性能が悪化するのを、データの本来の配置を考慮した再配置により防止できる。
【0119】
また本発明によれば、ランダムライトの高速化に必要なインデックスの保存にディスク領域を効果的に利用することで、電源遮断が発生しても、不揮発性メモリを用いることなく、起動時にインデックスを確実に復元することができる。これにより、不揮発性メモリを不要としながら、切り替えシステムでのインデックスの引き継ぎが容易に行えるようになる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図2】図1中のログ領域22における(単位ブロックとしての)制御ブロック(H)及びデータブロック(D)の格納形態と当該制御ブロック(H)のデータ構造例とを、本来領域21上の本来位置と対応付けて示す図。
【図3】図1中のログ管理領域23のデータ構造例をログ領域22上の単位ブロックと対応付けて示す図。
【図4】図1中の順インデックス格納部14のデータ構造例を示す図。
【図5】図1中のリカバリ処理部125によるリカバリ処理を説明するためのフローチャート。
【図6】図1中のライト処理部124によるライト処理を説明するためのフローチャート。
【図7】図1中のログ領域管理部123によるログ領域管理処理を説明するためのフローチャート。
【図8】図1中の再配置処理部122による再配置処理を説明するためのフローチャート。
【図9】図1中のリード処理部121によるリード処理を説明するためのフローチャート。
【図10】本発明の第2の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図11】本発明の第3の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図12】本発明の第4の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図13】図12中のディスクドライバ12″を中心とするモード切り替え時の動作を説明するためのフローチャート。
【図14】図12中のディスクドライバ12″の電源ON時の動作を説明するためのフローチャート。
【符号の説明】
10,10-1〜10-n,10′,10″…コンピュータ
11,11′,11″…OS(オペレーティングシステム)
12,12′,12″…ディスクドライバ
14…順インデックス格納部
20,20′…ディスク装置
21…本来領域
21′〜23′…領域
22…ログ領域
23…ログ管理領域
110…ファイルシステム
121,121″…リード処理部
122,122″…再配置処理部
123,123″…ログ領域管理部
124,124′,124″…ライト処理部
125,125″…リカバリ処理部

Claims (6)

  1. 上位装置から与えられた複数のディスクライト要求の指定するデータをまとめて、ディスク装置が有するディスク領域に含まれている前記上位装置から指定可能な領域である本来領域とは別に当該ディスク領域内に確保されたログ領域に、所定サイズのデータブロック単位で連続して格納するログ構造化ファイル方式を適用するディスク制御機構において、
    前記上位装置から与えられた複数のディスクライト要求の指定するデータをまとめて前記ログ領域にデータブロック単位で連続して格納するライト処理手段であって、前記連続して格納される各データブロックが本来書き込まれるべき前記本来領域上の位置を示す逆インデックスを含む制御ブロックを当該データブロックの列に付加して前記ログ領域に格納すると共に、当該データブロックが本来書き込まれるべき前記本来領域上の位置と当該データブロックの前記ログ領域上の位置との対応関係を示す順インデックスを揮発性メモリ上に確保された順インデックス格納領域に順に格納するライト処理手段と、
    前記ライト処理手段によって前記ログ領域に格納されたデータブロックのうちの、その時点において最も古い有効なデータブロックを、前記本来領域上の本来書き込まれるべき位置に再配置する動作を繰り返す再配置手段であって、データブロックの再配置時には、前記ライト処理手段によって前記順インデックス格納領域に格納された順インデックスのうち、当該再配置されたデータブロックの順インデックスを、前記順インデックス格納領域から削除する再配置手段と、
    記ライト処理手段によって前記ログ領域に前記データブロックの列と当該データブロックの列に付加される前記制御ブロックとが格納された場合、当該制御ブロックに含まれる前記逆インデックスを前記揮発性メモリ上に確保されたログ管理領域バッファに格納するログ領域管理手段であって、所定のチェックポイント毎に、そのチェックポイントに先行するチェックポイント以降、現在のチェックポイントまでの間に前記ログ管理領域バッファに格納された前記逆インデックスを、前記ディスク装置の前記ディスク領域に確保されたログ管理領域保存するログ領域管理手段と、
    起動時に、最も最近のチェックポイントで前記ログ領域管理手段によって前記ログ管理領域に格納された前記逆インデックスを当該ログ管理領域から読み出すと共に、当該最も最近のチェックポイント以降に前記ライト処理手段によって前記ログ領域に格納された前記制御ブロックから前記逆インデックスを読み出して、当該逆インデックスから該当するデータブロックが本来書き込まれるべき前記本来領域上の位置と当該データブロックの前記ログ領域上の位置との対応関係を示す順インデックスを前記順インデックス格納領域に復元するリカバリ処理手段と、
    前記上位装置からリード要求が与えられた場合、当該リード要求で指定されるデータブロックが本来格納されているべき前記本来領域上の位置を持つ順インデックスを、前記順インデックス格納領域から目的とする順インデックスとして検索し、当該目的とする順インデックスが検索できたか否かによって、当該リード要求で指定されるデータブロックが前記ログ領域または前記本来領域のいずれに格納されているかを判定し、その判定結果に基づいて前記ログ領域または前記本来領域から前記リード要求で指定されるデータブロックを読み出すリード処理手段とを具備することを特徴とするディスク制御機構。
  2. 前記再配置手段は、前記データブロックの再配置時には、当該データブロックの順インデックスを前記順インデックス格納領域から削除するように構成されていることを特徴とする請求項1記載のディスク制御機構。
  3. 前記上位装置からのログモードまたは非ログモードへの切り替え設定指令を受けて、前記ディスク装置をログモードまたは非ログモードに設定するモード設定手段であって、前記上位装置から与えられるディスクライト要求の指定するデータが、前記ログモードでは前記制御ブロックを付して前記ログ領域に書き込まれ、前記非ログモードではそのまま前記本来領域に書き込まれるように設定するモード設定手段を更に具備することを特徴とする請求項1記載のディスク制御機構。
  4. 前記再配置手段は、前記非ログモードへの切り替え設定時に、前記ログ領域上の有効な前記データブロックを全て前記本来領域上の本来書き込まれるべき位置に再配置する一括再配置手段を備えていることを特徴とする請求項3記載のディスク制御機構。
  5. 前記上位装置からのログモードまたは通常モードへの切り替え設定指令を受けて、前記ディスク装置をログモードまたは通常モードに設定するモード設定手段であって、前記通常モードへの切り替え時には、前記ログモードで割り当てられている前記本来領域、前記ログ領域及び前記ログ管理領域のうちの少なくとも前記本来領域を通常モード用の新たな本来領域に割り当て、前記ログモードへの切り替え時には、前記通常モードで割り当てられている前記本来領域を含む記憶領域を分割して、ログモード用の新たな前記本来領域、前記ログ領域及び前記ログ管理領域に割り当てるモード設定手段を更に具備し、
    前記再配置手段は、前記モード設定手段による前記通常モードへの切り替え設定時に、前記ログ領域上の有効な前記データブロックを全て前記新たな本来領域上の本来書き込まれるべき位置に再配置する一括再配置手段を備えていることを特徴とする請求項1記載のディスク制御機構。
  6. 請求項1記載の前記ディスク制御機構を備えた複数のコンピュータと、
    前記各コンピュータにより共有されるディスク装置とを具備することを特徴とするコンピュータシステム。
JP2000053814A 2000-02-29 2000-02-29 ランダムディスクライトに好適なディスク制御機構 Expired - Fee Related JP4131894B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000053814A JP4131894B2 (ja) 2000-02-29 2000-02-29 ランダムディスクライトに好適なディスク制御機構
US09/659,507 US6721863B1 (en) 2000-02-29 2000-09-11 Disk control mechanism preferable for random disk write

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000053814A JP4131894B2 (ja) 2000-02-29 2000-02-29 ランダムディスクライトに好適なディスク制御機構

Publications (2)

Publication Number Publication Date
JP2001243021A JP2001243021A (ja) 2001-09-07
JP4131894B2 true JP4131894B2 (ja) 2008-08-13

Family

ID=18575145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000053814A Expired - Fee Related JP4131894B2 (ja) 2000-02-29 2000-02-29 ランダムディスクライトに好適なディスク制御機構

Country Status (2)

Country Link
US (1) US6721863B1 (ja)
JP (1) JP4131894B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020112030A1 (en) * 2000-12-19 2002-08-15 Naoko Iwami Guaranteed data access speed of a storage system
JP3590381B2 (ja) 2001-12-18 2004-11-17 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ更新方法
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
JP2008134720A (ja) * 2006-11-27 2008-06-12 Toshiba Corp 情報記憶装置
JP4623318B2 (ja) * 2007-01-24 2011-02-02 日本電気株式会社 追記型データベース管理システム、不要領域修復処理方法及び不要領域修復プログラム
US20080276124A1 (en) * 2007-05-04 2008-11-06 Hetzler Steven R Incomplete write protection for disk array
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) * 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP5196567B2 (ja) * 2008-12-02 2013-05-15 日本電気株式会社 演算装置、復号化装置およびメモリ制御方法ならびにプログラム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US9507827B1 (en) * 2010-03-25 2016-11-29 Excalibur Ip, Llc Encoding and accessing position data
JP4886877B2 (ja) 2010-05-31 2012-02-29 株式会社東芝 記録媒体制御装置、及びその方法
JP2014081984A (ja) * 2012-10-18 2014-05-08 Toshiba Corp 情報記録装置および情報記録方法
US10148755B2 (en) * 2015-08-27 2018-12-04 Dell Products L.P. System and method to redirect USB mass storage devices in high latency VDI environments
US11762568B2 (en) * 2017-03-16 2023-09-19 Microsoft Technology Licensing, Llc Storage system control
CN110033799B (zh) * 2018-01-12 2025-07-11 三星电子株式会社 基于屏障命令按顺序存储数据的存储设备
JP7832251B2 (ja) * 2024-04-19 2026-03-17 日立ヴァンタラ株式会社 ストレージシステム及びストレージシステムの制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557770A (en) * 1993-03-24 1996-09-17 International Business Machines Corporation Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk
US5708793A (en) * 1995-03-31 1998-01-13 International Business Machines Corporation Method and apparatus using address and read head location information to provide optimal operation of a disk system
US5966708A (en) * 1997-03-28 1999-10-12 International Business Machines Tail compression of a log stream using a scratch pad of logically deleted entries
US6108667A (en) * 1997-03-28 2000-08-22 International Business Machines Corporation System of compressing a log stream using a scratch pad of logically deleted entries
JPH1153235A (ja) 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JPH11194899A (ja) * 1997-12-26 1999-07-21 Toshiba Corp ディスク記憶システム及び同システムに適用するデータ更新方法

Also Published As

Publication number Publication date
JP2001243021A (ja) 2001-09-07
US6721863B1 (en) 2004-04-13

Similar Documents

Publication Publication Date Title
JP4131894B2 (ja) ランダムディスクライトに好適なディスク制御機構
US11921684B2 (en) Systems and methods for database management using append-only storage devices
US6311193B1 (en) Computer system
US7325159B2 (en) Method and system for data recovery in a continuous data protection system
US7650533B1 (en) Method and system for performing a restoration in a continuous data protection system
US7406488B2 (en) Method and system for maintaining data in a continuous data protection system
US5881311A (en) Data storage subsystem with block based data management
US6240527B1 (en) Method software and apparatus for saving using and recovering data
US7519625B2 (en) Snapshot management apparatus and method, and storage system
US7054960B1 (en) System and method for identifying block-level write operations to be transferred to a secondary site during replication
US6807605B2 (en) Managing a data storage array, a data storage system, and a raid controller
US6898669B2 (en) Disk array apparatus and data backup method used therein
US8615641B2 (en) System and method for differential backup
US20020049883A1 (en) System and method for restoring a computer system after a failure
JPH06180671A (ja) ディスクキャッシュ制御装置
JPH06236322A (ja) ディスクアレイ用キャッシュシステム
JP3246146B2 (ja) 外部記憶装置のデータ移行方法
US7082498B2 (en) Online RAID migration without non-volatile memory
KR20090091746A (ko) 라이트백 캐시 유닛을 사용하여 데이터를 관리하는 시스템, 방법 및 컴퓨터 프로그램 제품
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
JP2003330782A (ja) 計算機システム
JP4908481B2 (ja) データ記憶装置及び筐体内レプリケーション方法
JP2002132554A (ja) データベースアクセス方法
JP6579149B2 (ja) ストレージ制御装置、及びストレージ制御プログラム
KR20170002848A (ko) 가비지 컬렉션 저널링 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080318

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080529

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees