JP3485598B2 - ファイルの配置方法、データ多重化方法及びデータ処理システム - Google Patents
ファイルの配置方法、データ多重化方法及びデータ処理システムInfo
- Publication number
- JP3485598B2 JP3485598B2 JP12577393A JP12577393A JP3485598B2 JP 3485598 B2 JP3485598 B2 JP 3485598B2 JP 12577393 A JP12577393 A JP 12577393A JP 12577393 A JP12577393 A JP 12577393A JP 3485598 B2 JP3485598 B2 JP 3485598B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- data
- mirror
- read
- program
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
能および信頼性向上に係わり、特に多数のディスクドラ
イブ装置が接続されたデータ処理システムにおいて、フ
ァイルシステムの高速化に好適なファイルの配置方法及
びデータ多重化方法に関する。
する第1の従来技術は、第14回VLDBコンファレン
ス予稿集(1988年)の「ディスク・シャドゥイン
グ」第331−338頁("Disk Shadowing", Proceedin
gs of the 14th VLDB Conference(1988), pp331−338)
に記載されている。
単位のミラーリング方法を開示している。基本的なミラ
ーリングとは、ディスク装置2台がペアとなり、2台は
全く同一のデータを保持する。上記文献では3台以上の
多重化を特別にシャドゥイングと呼んでいるが、ここで
は3台以上の多重化もミラーリングと呼ぶことにする。
ミラーリングの動作を説明する。データのwrite時
は複数台のディスク装置のそれぞれに同一データを同一
アドレスに書き込んで多重化し、read時は任意のデ
ィスク装置からデータを読み込む。
格納する場合に比べて、複数のreadを並列に処理で
きるため、単位時間あたりの入出力処理数である入出力
スループットが向上する。さらに、シーク時間の短いデ
ィスク装置を選んでデータを読み込むことができるの
で、readの入出力時間を短縮することができる。w
riteは、複数台のディスク装置への入出力起動オー
バヘッドと全部のディスク装置の書き込み終了を待つオ
ーバヘッドのために、入出力スループットと入出力時間
については性能低下となる。しかし、writeの性能
低下はreadの性能向上に比べはるかに小さいので、
readとwriteの実行数が同じでも、単一ディス
ク装置の場合より平均的な性能は向上する。
および可用性の向上である。同一データのコピーが複数
あるので、一つのディスク装置に障害が発生しても、他
のディスク装置のコピーデータにアクセスすることがで
きるのでデータは失われない。ミラーリングの指定は、
システム管理者が決定し、コンソールからシステムコマ
ンドを投入することにより設定される。このミラーリン
グは、ディスク制御装置のハードウェアと制御ソフトウ
ェアにより実現されることが多いが、オペレーティング
システム(OS)により実現されている例もある。
である第2の従来技術は、オレイリー・アソシエイツ社
(O'Reilly & Associates,Inc.)刊の「ガイド・トゥー
OSF/1:テクニカル・シノプシス」(1991年)
第7−1頁から第7−10頁(Guide to OSF/1: A Tech
nical Synopsis (1991), pp7−1−7−10)に述べられて
いる。
体ではなく、論理ボリュームという概念により、ディス
ク領域単位でミラーリングを行なう。ディスクをエクス
テントと呼ぶ固定長領域に分割し、一つの論理エクステ
ントに対して一つまたは複数の物理エクステントを対応
させる。対応させる物理エクステントは、どの物理ディ
スク装置のものでもよく、一つの論理エクステントに異
なる物理ディスク装置の物理エクステントを対応させて
よい。論理エクステントを集めて、一つの仮想的なディ
スク装置としたものをディスクの論理ボリュームと呼
ぶ。一つの論理エクステントに対して一つまたは複数の
物理エクステントを対応させた場合がミラーリングとな
る。ミラーリングの場合の動作を説明する。論理エクス
テントへのwrite時は、対応する複数の物理エクス
テントのそれぞれに同一データを同一エクステント内相
対アドレスに書き込んで多重化し、read時は任意の
物理エクステントからデータを読み込む。
法は、ディスク装置を部分的にミラーリングすることが
できる。ミラーリングの指定は第1の従来技術と同様
に、システム管理者が決定し、コンソールからシステム
コマンドを投入することにより設定される。この論理ボ
リュームのミラーリングの利点は、第1の従来技術で述
べた性能、信頼性、可用性の他に、ディスク装置の重要
な領域のみ多重化できるので、多重化に要するディスク
容量が小さくできるという利点がある。この例ではミラ
ーリングは、OSにより実現されている。
でデータを多重化する第3の従来技術は、アディソン・
ウェスレー社(Addison−Wesley Publishing Company
)刊の「オペレーティングシステム・コンセプト第3
版」(1991年)第507頁から第508頁(Operati
ng System Concept Third Edition (1991), pp507−50
8)に述べられている。
ータ多重化方法は、レプリケーションと呼ばれる。レプ
リケーションは、分散システムにおいて信頼性と可用性
の向上に用いられる。マスタファイルと同一の内容を保
持するレプリカと呼ぶファイルをマスタファイルとは異
なるデータ処理システムの磁気ディスク装置に格納す
る。マスタファイルがあるコンピュータシステムに障害
が発生した場合、レプリカにアクセスすることによりア
クセス不能の状態を回避することができる。ファイルへ
のwrite時は、マスタファイルにデータを書き込
み、対応する一つまたは複数のレプリカのそれぞれに同
一データに書き込んで多重化し、read時はマスタフ
ァイルまたは任意のレプリカからデータを読み込む。分
散システムにおいて、レプリカに多重にwriteを発
行するのは、大きなオーバヘッドである。したがって、
マスタファイルの更新をレプリカに反映する方法すなわ
ち一致制御方法は、上記のマスタファイルと同時にwr
iteを実行する一致性の高い方法の他に、一定時間間
隔ごとにまとめて更新データをレプリカに書き込むとい
った一致性の低い方法がある。レプリカの指定は、シス
テム管理者がシステムコマンドを投入することにより行
なうが、ファイルへのアクセスを要求するデータ処理シ
ステムに、キャッシングを目的として作成されるレプリ
カは、アクセス要求時にOSにより自動的に作成され
る。これをキャッシュ・レプリケーションと呼ぶ。
従来技術のミラーリングは、システム管理者があらかじ
め負荷を予測して設定する静的なデータ多重化であり、
負荷が高くなる可能性のあるすべてのファイルを格納す
るファイル記憶装置をあらかじめ多重化するため、シス
テム全体の記憶装置数と記憶容量が多量に必要になると
いう第1の問題点があった。ある時点を考えると、上記
のファイルのすべてが使用されているということはまれ
であり、その場合には使用されていないファイルの多重
化データを格納する記憶装置とその記憶容量は全く無駄
のものとなっている。必要な時に必要なだけ、多重化の
ための記憶容量を使用することが望ましい。
は複数の形態があり、プログラムのファイル入出力の特
徴、すなわち入出力特性により、適合する形態と適合し
ない形態とがある。例えば、ミラーリングにおいても、
readに比べてwrite回数が多ければデータを2
重化するのが良く、read回数が多ければデータを3
重化以上にするのが良い。1回のreadのデータ量が
大きく、高速転送を必要とするならば、データを固定長
のブロックに区切り、複数の記憶装置に巡回的にブロッ
クを割り当てるストライピングと呼ばれる形態が適合し
ている。一方、一つのファイルでも入出力特性は入出力
を発行するプログラムにより異なるのが通常である。し
たがって、これらの従来技術の静的なデータ多重化は、
設定時に想定した入出力特性と異なる特性の場合は性能
が低下するという第2の問題点があった。
なるデータ処理システムに多重化データを格納して、信
頼性を向上させることを目的としており、入出力の性能
向上を考慮していない。異なるデータ処理システムにあ
るレプリカへの入出力は、ネットワークを介して転送す
るオーバヘッドがあるため時間がかかり、性能は向上し
ないという第3の問題点があった。
同様にセンタ管理者が負荷が高くなる可能性のあるすべ
てのファイルをあらかじめ多重化するため、システム全
体の記憶容量が多量に必要になる前記第1の問題点もあ
った。さらに、ミラーリングと同様に静的なデータ多重
化であるため、入出力特性の変化に対応できない前記第
2の問題点もあった。
レプリケーションは、ファイルのアクセス要求時に要求
元のデータ処理システムにキャッシング用レプリカを作
成する動的なデータ多重化を行なうため、前記第1の問
題点はない。しかし、キャッシング用レプリカは単純な
2重化であり、入出力特性は考慮していない。したがっ
て、第3の従来技術にも前記第2の問題点があった。さ
らに、キャッシュ・レプリケーションは、入出力要求を
ファイルを有するデータ処理システムにネットワークを
介して転送するオーバヘッドをなくしてアクセス性能を
向上させる。しかし、キャッシュ用レプリカはそれを有
するデータ処理システム以外からはアクセスできないの
で、マスタ・ファイルを有するデータ処理システムにと
っては入出力性能の向上にはつながらないという第4の
問題点があった。
が制御装置を介して接続されたデータ処理システムにお
いて、高性能の入出力特性を実現するファイルデータの
多重化方法及びデータ処理システムを提供することにあ
る。
装置が制御装置を介して接続されたデータ処理システム
において、必要記憶容量の少ないファイルシステムを実
現するファイルのデータ多重化方法及びデータ処理シス
テムを提供することにある。
ルのオープン要求があった時、このファイルの少なくと
も一部の領域のデータを多重化して複数のドライブ(フ
ァイル記憶装置)に分散配置し、このファイルのクロー
ズ時に、前記多重化データを消去することにある。
ルの使用頻度が所定値以上の時、このファイルの全体ま
たは部分領域のデータを多重化して複数のドライブに分
散配置し、このファイルのクローズ時に多重化データを
消去することにある。
全体または部分領域のデータを多重化して複数のドライ
ブに分散配置する。それらのファイルに対するライト
(write)時は、多重に分散配置したすべてのファ
イル領域にデータを書き込み、リード(read)時
は、多重化された任意のファイル領域からデータを読み
込む。read時は、複数のファイル領域がアクセス可
能ならば、最もシーク時間の短いものからデータを読み
込むことができ、入出力時間を短縮できる。またrea
dは、分散配置されたドライブの数まで並列に実行する
ことができ、入出力スループットを向上させることがで
きる。
ープン中にデータ多重化を行なうので、オープンするプ
ログラムの入出力特性に応じたデータ多重度および配置
するドライブ数が選択でき、入出力性能を向上させるこ
とができる。
プン中にデータ多重化を行ない、その多重化データをク
ローズ時に消去するので、一時にオープンするファイル
分の多重化に要する記憶容量のみ用意すればよく、シス
テムのファイル記憶容量を小さくすることができる。
説明する。第一の実施例は、複数の磁気ディスク装置
(ドライブ)がディスク制御装置を介して接続されるデ
ータ処理システムにおいて、オペレーティングシステム
(OS)が本発明を実施する例である。したがって、O
Sのファイルシステムに本発明の方法を組み込む。ファ
イルシステムは、現在の主流OSであるUNIXのそれ
を前提とする。UNIXのファイルシステムについて
は、プレンティスホール社 (Prentice−Hall, Inc.) 刊
「デザイン・オブ・UNIXオペレーティングシステ
ム」(The Design of The UNIX Operating System (198
6)) に記述されている。UNIXのファイルシステムに
処理を追加する構造で本発明を実施するので、発明に直
接関与しないファイルシステムの詳細の記述は省略す
る。すなわち、オープン、クローズ、リード、ライトと
いった従来からあるファルシステムのシステムコールに
本発明のための処理を追加し、本来の機能の処理につい
ては従来のシステムコールに対応する処理ルーチンをコ
ールする形で実現する。また、いくつかの新たな処理プ
ログラムを追加する。第一実施例においては、一定時間
ごとに起動されるプログラムがファイルやファイル記憶
装置の使用状況に基づいてデータを多重化、すなわちミ
ラーファイルを作成する決定を行なう。
明する。図1は、データ処理システムの構成図である。
ハードウェア構成をまず説明する。命令プロセッサ(I
P)1,2と入出力プロセッサ(IOP)4が主記憶装
置(MS)3に接続される。IOP4には、ディスク制
御装置(DKC)5,6が接続され、DKC5,6には
ディスク駆動装置(DKU)7,8,9,10,11,
12が接続される。DKUは、一つのスピンドルからな
るディスクドライブであり、一つのDKUがOS22か
らは一つのボリュームとして管理される。IOP4は、
命令プロセッサ1,2からチャネルプログラムというI
OPのプログラムの起動を受けてI/Oを実行し、I/
O完了を入出力機器から受け取ると、命令プロセッサ
1,2に対してI/O割り込みを発生させて知らせる。
DKC5,6は、IOP4からのデータの書き込みや読
み込みコマンドに応答して、DKUを制御して磁気ディ
スクI/Oを行なう。このIOP、DKC、DKUのI
/Oハードウェア構成は、メインフレームコンピュータ
においては公知のものである。
明する。データ処理システムには、I/Oを発行する応
用プログラム21とそれを処理するOS22が動作す
る。OS22は、ファイルシステム26とディスクドラ
イバ27のプログラムモジュールと、MS3のボリュー
ム制御テーブル31とファイル制御テーブル32、DK
Uのボリューム管理ブロック33、OSバッファ40の
データ構造を有する。ファイルシステム26は、入出力
機器の特性から独立した抽象的なファイルの概念と操作
を実現するソフトウェアである。
ープン、クローズ、リード、ライト、ディスクブロック
の割り当て、多重化の決定、ミラーファイルの作成、ミ
ラーファイルの消去を行なうOpenプログラム41、
Closeプログラム42、Readプログラム43、
Writeプログラム44、Allocプログラム4
5、多重化プログラム46、ミラー作成プログラム4
7、ミラー消去プログラム48を有する。ディスクドラ
イバ27は、ディスク装置の特性を意識したI/O処理
を行なうソフトウェアである。ファイルシステム26
は、ディスクドライバ27を下位モジュールとしてコー
ルして、抽象的なファイル機能を実現する。ドライバ2
7にも、OpenやReadといったファイルに関する
システムコールに対応するプログラムのエントリがあ
り、磁気ディスクの特性に依存したI/O処理を行な
う。
プログラムに処理を追加しドライバ27は変更しないの
で、ドライバ27の中の処理については説明しない。フ
ァイルのデータは、DKUに格納される。オリジナルの
ファイルをマスタファイル34と呼び、マスタファイル
34と同じ内容を持つ多重化データのファイルをミラー
ファイル35,36,38,39と呼ぶ。
示すように、いわゆるストライピングしたファイルであ
り、ファイルデータ301のブロック302を循環的に
複数のDKU02,12に配置する。アクセスするデー
タ長が大きい場合は、複数のDKU02,12が並列に
動作できるので、データ転送速度が向上する。例えば、
ブロック0とブロック1のリード要求を応用プログラム
21が発行した場合は、DKU02とDKU12が並列
に読み込み動作を行なえるので、データ転送速度は2倍
となる。
成図である。OS22は、一つのDKUを一つのボリュ
ームとして管理する。ボリュームのディスク領域は、ボ
リューム管理ブロック33、ファイルノード領域59、
データ領域62の3領域に分割される。ボリューム管理
ブロック33は、以下のフィールドを有する。先頭空き
ブロックアドレス56がデータ領域の空きブロック64
のリストを指し、先頭空きノードインデクス58が空き
ファイルノード60のリストを指す。ファイルシステム
26がファイルを作成する時にこれらのリストから、空
きを探して使用する。
る。ファイルノード61は、一つのファイルの情報を保
持する。所有者識別子などの従来からある基本情報のフ
ィールド71,72,73,74に以下の情報のフィー
ルドを加える。アドレステーブル77はファイルに割り
当てられた複数のブロック63のアドレス79を保持す
るための従来からある情報であるが、本発明のために、
各ブロック63が存在するボリュームの識別子のフィー
ルド78を設けた。ミラーリードリスト76は、ミラー
ファイルを持つ場合にミラーのファイルノードのリスト
を指す。
成図である。ボリュームごとにエントリ81があり、オ
ープン中のファイル数を保持するオープン数85、ボリ
ュームの現在のヘッド位置をあらわすシーク位置86、
当該ボリュームに対するリード発行回数をあらわすre
ad回数87、ライト発行回数をあらわすwrite回
数88、ボリューム管理ブロック33キャッシングす
る、すなわち主記憶に常駐化するための領域89のフィ
ールドを有する。read回数87とwrite回数8
8は、多重化プログラム47が一定時間間隔ごとにリセ
ットする。
図である。当該ファイルをオープン中の数をあらわすオ
ープン数94、当該ファイルがミラーに関してどういう
状態にあるかを示すミラー状態コード95、当該ファイ
ルに対するリード発行回数をあらわすread回数9
6、ライト発行回数をあらわすwrite回数97、リ
ードおよびライト要求の平均データ長をあらわすアクセ
スデータ長98、ファイルノードをキャッシングする領
域99のフィールドを有する。read回数96とwr
ite回数97とアクセスデータ長98は、多重化プロ
グラム47が一定時間間隔ごとにリセットする。アクセ
スデータ長98は、ミラーファイルを作成する時にスト
ライピングするか否かの判断に使用する。
び図7〜14により説明する。まず、Openプログラ
ム41の動作を図7により説明する。通常のファイルオ
ープン処理(ステップ101)を行なった後で、ファイ
ル制御テーブル32の当該ファイルのエントリを探し、
なければ確保して初期化し(ステップ102)、ボリュ
ーム制御テーブル31とファイル制御テーブル32のオ
ープン数85,94をインクリメントする(ステップ1
03)。これで、ボリュームごとに現在オープンしてい
るファイルの数とファイルごとにオープンされている数
を保持する。
より説明する。通常のファイルクローズ処理(ステップ
111)を行なった後で、ボリューム制御テーブル31
とファイル制御テーブル32のオープン数85,94を
デクリメントする(ステップ112)。オープン数94
がゼロでないならば(ステップ113)、まだオープン
中の応用プログラム21があるということであり、ミラ
ーファイルを消去せずに処理をおわる。オープン数94
がゼロならば(ステップ113)、ファイル制御テーブ
ル32の当該エントリを初期化する(ステップ11
4)。当該ファイルのミラーファイルがある場合は、ミ
ラーファイルをミラー消去プログラム48をコールして
消去する(ステップ115〜116)。具体的には、ク
ローズ対象のファイルノード61のミラーノードリスト
74からミラーファイルのファイルノードを見つけ、ミ
ラーファイルを消去し、ミラーファイルのファイルノー
ドをミラーノードリスト74のチェインからはずす。
り説明する。当該ボリュームがビジーか、ミラーファイ
ル35,36の方がシーク時間を短縮できる場合(ステ
ップ121〜122)、シーク距離が最も短いミラーフ
ァイルを選択して(ステップ125)、それに対してリ
ードを発行する(ステップ126)。ビジーの場合にミ
ラーファイルにアクセスするのは、待ち時間の発生を回
避するためである。ビジーでない場合は、マスタファイ
ルとミラーファイルで最もシーク距離の短いボリューム
を選択してI/Oの実行時間を短縮するためである。リ
ード要求のデータ長が大きく分割ミラーファイル38,
39がある場合は(ステップ121〜123)、分割ミ
ラーファイルに対してリードを発行する(ステップ12
6)。リード要求のデータ長が大きければ、ストライピ
ングの効果があるため、分割ミラーファイル38,39
から並列にデータを読み込んだ方がI/Oの実行時間を
短縮できる。
は、マスタファイル34にリードを発行する(ステップ
124)。その後、ボリューム制御テーブル31とファ
イル制御テーブル32のread回数87,96をイン
クリメントし、シーク位置86、アクセスデータ長98
を今回のリードに合わせて更新する(ステップ127〜
129)。アクセスデータ長98は、read回数96
およびwrite回数97でカウントしたアクセスの平
均データ長となるよう計算する。
により説明する。当該マスタファイル34に対して、通
常のファイルライト処理(ステップ141)を行なった
後で、当該マスタファイル34にミラーがある場合は、
すべてのミラーファイル35,36,38,39に対し
て通常のファイルライト処理を発行する(ステップ14
2〜143)。その後、ボリューム制御テーブル31と
ファイル制御テーブル32のwrite回数88,97
をインクリメントし、シーク位置86、アクセスデータ
長98を今回のライトに合わせて更新する(ステップ1
44〜146)。このように、すべてのミラーファイル
にライトを実行することによって、マスタファイルとミ
ラーファイルのデータの整合性が保たれる。
により説明する。Allocプログラム45は、ファイ
ルシステム26がファイルに新たなデータをライトする
時にコールされ、ボリュームのデータ領域62の空きブ
ロック64をファイルに割り当てる。当該ボリュームに
空きブロックがないならば(ステップ161)、当該ボ
リュームのミラーファイルのひとつを選択して消去する
ことにより、空きブロックを作る(ステップ162)。
その後、ボリューム管理ブロック33の空きブロックリ
スト56から空きブロックをアンチェインして、通常の
アロケート処理を行なう(ステップ163)。アロケー
トすると、ファイルノード61のアドレステーブル77
のボリューム識別子78とブロックアドレス79が設定
される。このように、ミラーファイルに割り当てられた
データ領域62のブロックは準空き領域として、空き領
域がなくなった場合は、新しいブロックのために空き領
域として使用される。
テム26のプログラム46,47,48の動作を図12
〜図14で説明する。まず、多重化プログラム46の動
作を図12により説明する。多重化プログラム46は、
タイマ割り込みにより一定時間間隔で起動する。ファイ
ル制御テーブル32のすべての有効エントリ、すなわ
ち、オープンされているすべてのファイルについて、以
下のステップを行なう。次の有効エントリをフェッチ
し、そのエントリのファイルが格納されているボリュー
ムに対するボリューム制御テーブル31のエントリをフ
ェッチする(ステップ181〜182)。ボリュームの
read回数87またはファイルのread回数96を
ミラーファイル数で割った値がそれぞれの閾値より大き
く、かつファイルのアクセスデータ長98が閾値より大
きい場合は(ステップ183)、ストライピング(分割
ミラーファイル38,39)が有効と判断し、当該ファ
イルに対して分割指定でミラー作成プログラム47をコ
ールする(ステップ185)。
イルのread回数96をミラーファイル数で割った値
がそれぞれの閾値より大きい場合は(ステップ18
4)、ミラーファイル35,36が有効と判断し、当該
ファイルに対して分割指定なしでミラー作成プログラム
47をコールする(ステップ186)。上記条件のいず
れにもあてはまらない場合は、ミラーファイルも分割ミ
ラーファイルも作成しない。そして、ファイルのrea
dおよびwrite回数96,97とアクセスデータ長
98をリセットする(ステップ187)。ファイル制御
テーブル32のすべての有効エントリについて上記の処
理が終了したならば(ステップ188)、ボリューム制
御テーブル31のすべての有効エントリについて、re
ad回数87,88をリセットする(ステップ18
9)。本プログラム46の起動ごとに上記データをリセ
ットすることにより、read回数87,96は最近の
read頻度、アクセスデータ長98は最近の平均アク
セスデータ長をあらわすことになる。したがって、シス
テムの動的な負荷変動に応じたデータ多重化が可能にな
る。
により説明する。当該ファイルのミラーがなく、ボリュ
ーム制御テーブル31のread回数87+write
回数88が閾値より小さいボリュームを検索する(ステ
ップ201)。該当ボリュームがない場合はリターンす
る。該当ボリュームがありかつミラーファイルを作成で
きる空きブロックがあり、分割指定がある場合は(ステ
ップ202〜203)、該当ボリューム2個を選択し、
該当ボリュームに対して通常の分割ファイルの作成処理
を行なう(ステップ205〜206)。すなわち、分割
ミラーファイル38,39を作成する。分割指定がない
場合は、該当ボリュームに対して通常のファイルの作成
処理を行なう(ステップ204)。すなわち、ミラーフ
ァイル35,36を作成する。マスタファイル34の内
容を作成したファイルにコピーし(ステップ207)、
作成したミラーファイルのファイルノード61をマスタ
ファイルのミラーノードリスト76にチェインする(ス
テップ208)。マスタファイルのミラー状態コード9
5を分割指定の場合は”分割ミラー”に、分割指定なし
の場合は”ミラー”に設定する(ステップ209)。
により説明する。当該ファイルのミラーノードリスト7
6からミラーファイルのファイルノードをもとめる(ス
テップ221)。ミラーファイルがある場合は(ステッ
プ222)、当該ファイルに対して通常のファイル消去
処理を行ない(ステップ223)、ステップ222に戻
る。ミラーファイルがない場合は、ミラー状態コード9
5を”ミラーなし”に設定する(ステップ224)。
変形した第二の実施例について図15〜17を用いて説
明する。図15は、本実施例のデータ構成図である。第
一の実施例では、ミラーファイル35,36および分割
ミラーファイル38,39を作成した時にマスタファイ
ル34からデータをコピーしていた。すなわち、マスタ
ファイル34からブロック単位で主記憶3のOSバッフ
ァ40に読み込み、ミラーファイルに書き込んでいた。
本実施例では、コピーのオーバヘッドを軽減するため、
リード要求の処理時にOSバッファ40に読み込んだブ
ロック311をミラーファイル35に書き込む。したが
って、ミラーファイル35はマスタファイル34の全体
ではなく部分的なデータを保持することになるが、re
adのアクセスに局所性があるならば部分的なミラーフ
ァイルでも性能を向上させることができる。また、コピ
ーに要するオーバヘッドは、OSバッファ40からの書
き込みのみであり、第一の実施例より小さい。本実施例
では、第一の実施例のReadプログラム43とミラー
作成プログラム47のみを変更する。
より説明する。当該ボリュームがビジーかつミラーファ
イルに対象ブロックがあるか、ミラーファイル35,3
6の方がシーク時間を短縮できかつミラーファイルに対
象ブロックがある場合(ステップ401〜402)、シ
ーク距離が最も短いミラーファイルを選択して(ステッ
プ405)、それに対してリードを発行する(ステップ
406)。ビジーの場合にミラーファイルにアクセスす
るのは、待ち時間の発生を回避するためである。
ラーファイルで最もシーク距離の短いボリュームを選択
してI/Oの実行時間を短縮するためである。リード要
求のデータ長が大きく分割ミラーファイル38,39に
対象ブロックがある場合は(ステップ401〜40
3)、分割ミラーファイルに対してリードを発行する
(ステップ406)。リード要求のデータ長が大きけれ
ば、ストライピングの効果があるため、分割ミラーファ
イル38,39から並列にデータを読み込んだ方がI/
Oの実行時間を短縮できる。上記条件のいずれにもあて
はまらない場合は、マスタファイル34にリードを発行
する(ステップ404)。その後、ボリューム制御テー
ブル31とファイル制御テーブル32のread回数8
7,96をインクリメントし、シーク位置86、アクセ
スデータ長98を今回のリードに合わせて更新する(ス
テップ407〜409)。そして、当該ファイルのミラ
ー状態コードが”部分ミラー”または”部分分割ミラ
ー”の場合は(ステップ410)、当該ファイルのミラ
ーファイルに対してステップ404で読み込み、OSバ
ッファ40にあるブロック311をミラーファイルに書
き込む(ステップ411)。
により説明する。当該ファイルのミラーがなく、ボリュ
ーム制御テーブル31のread回数87+write
回数88が閾値より小さいボリュームを検索する(ステ
ップ421)。該当ボリュームがない場合はリターンす
る。該当ボリュームがありかつミラーファイルを作成で
きる空きブロックがあり、分割指定がある場合は(ステ
ップ422〜423)、該当ボリューム2個を選択し、
該当ボリュームに対して通常の分割ファイルの作成処理
を行なう(ステップ425〜426)。すなわち、分割
ミラーファイル38,39を作成する。分割指定がない
場合は、該当ボリュームに対して通常のファイルの作成
処理を行なう(ステップ424)。すなわち、ミラーフ
ァイル35,36を作成する。作成したミラーファイル
のファイルノード61をマスタファイルのミラーノード
リスト76にチェインする(ステップ427)。マスタ
ファイルのミラー状態コード95を分割指定の場合は”
部分分割ミラー”に、分割指定なしの場合は”部分ミラ
ー”に設定する(ステップ428)。
る。第三実施の例は、第一実施例とほぼ同様の構成を持
ち、ほぼ同様の動作をするが、データを多重化する契機
が異なっている。第一実施例においては、一定時間ごと
に起動されるプログラムがファイルやファイル記憶装置
の使用状況に基づいてデータを多重化するが、第三実施
例では、ファイルのオープンの時にデータを多重化、す
なわちミラーファイルを作成する。
る。図に示すように、その構成は第一実施例とほぼ同じ
である。相違点は、多重化プログラム46がなくなり、
リセットプログラム49が追加されていることと、ファ
イル制御テーブル33がDKU11に格納されることで
ある。ファイル制御テーブル32は、オープン時に多重
化すべきファイルが登録されるテーブルであり、システ
ムが停止している時はDKU11に格納され、次のシス
テム起動時に主記憶装置3に読み込まれる。
41とリセットプログラム49のみが第一実施例と異な
る。さらに、ファイル制御テーブル32,33にオープ
ン時に多重化すべきファイルをシステム管理者が登録お
よび削除する動作が追加される。この登録と削除は、シ
ステム管理者がコンソール端末からファイルを指定する
コマンドを入力することにより行なう。この処理は、特
別なものではないので処理フローは省略する。
より説明する。通常のファイルオープン処理(ステップ
501)を行なった後で、当該ファイルがファイル制御
テーブル32に登録されているならば(ステップ50
2)、ボリューム制御テーブル31とファイル制御テー
ブル32のオープン数85,94をインクリメントする
(ステップ503)。これで、ボリュームごとに現在オ
ープンしているファイルの数とファイルごとにオープン
されている数を保持する。その後、当該ファイルに対し
てミラー作成プログラム47をコールする(ステップ5
04)。
より説明する。本プログラムは、タイマ割り込みにより
一定時間間隔で起動する。ボリューム制御テーブル31
すべての有効エントリのreadおよびwrite回数
87,88をリセットし(ステップ521)、ファイル
制御テーブル32すべての有効エントリのreadおよ
びwrite回数96,97とアクセスデータ長98を
リセットする(ステップ522)。本プログラムの起動
ごとに上記データをリセットすることにより、read
回数87,96は最近のread頻度、アクセスデータ
長98は最近の平均アクセスデータ長をあらわすことに
なる。したがって、システムの動的な負荷変動に応じた
データ多重化方法の選択が可能になる。
る。この実施例は、第三の実施例の処理をOSではな
く、OSと応用プログラムの間に位置するライブラリプ
ログラムで行なうものである。これは、本発明が必ずし
もOSで実施しなくても良いということを示すものであ
る。
る。図21に示すように、本発明に必要な処理プログラ
ムとテーブルは第一実施例ではOSに含まれていたが、
第四実施例では、ライブラリプログラム24に含まれ
る。ライブラリプログラム24は、従来のOS22のシ
ステムコールをコールしてファイルシステムの処理を行
なう。第四の実施例の動作は、第三の実施例の処理と同
じである。ただし、通常のファイルのオープン、クロー
ズ、リード、ライト処理をコールするという処理が、O
Sのすべてファイルのオープン、クローズ、リード、ラ
イト処理をコールするに変更する。
イルの全体または部分領域のデータを多重化して複数の
ファイル記憶装置に分散配置するので、read時、複
数のファイル領域がアクセス可能ならば、最もシーク時
間の短いものからデータを読み込むことができ、入出力
時間を短縮できる。またreadは、分散配置されたフ
ァイル記憶装置の数まで並列に実行することができ、入
出力スループットを向上させることができる。
合は、個々のアクセス要求がそれぞれ異なるファイル記
憶装置で独立に実行され、より多数のアクセス要求が処
理される。長いデータ長のアクセス要求の場合は、一つ
のアクセス要求が複数のファイル記憶装置で並列に実行
され、長いデータ長でもアクセス要求が高速に処理され
る。
うので、オープンするプログラムの入出力特性に応じた
データ多重度および配置するファイル記憶装置の数が選
択でき、入出力性能を向上させることができる。例え
ば、readのみを発行する場合は、データ多重度nを
大きくしてn台のファイル記憶装置に分散配置すること
により、readの入出力スループットをn倍にするこ
とができる。
は、ファイルのデータをd/mの長さのブロックに分割
して、m台のファイル記憶装置にストライピングするこ
とにより、readの入出力時間を1/mに短縮するこ
とができる。したがって、高性能なファイルシステムを
実現することができる。
化を行ない、その多重化データをクローズ時に消去する
ので、一時にオープンするファイル分の多重化に要する
記憶容量のみ用意すればよく、システムのファイル記憶
容量を小さくすることができる。
み多重化するが、ファイルの最近更新された部分が多重
化されているので、定期的なファイルのバックアップが
行なわれているシステムでは、従来のミラーリングとほ
ぼ同等の信頼性をより小さい冗長データ用記憶容量で実
現できる。
ブロック図である。
る。
である。
である。
ある。
ートである。
ャートである。
ートである。
チャートである。
チャートである。
ートである。
チャートである。
チャートである。
チャートである。
ーチャートである。
すブロック図である。
ャートである。
ャートである。
すブロック図である。
スク制御装置、7,8,9,10,11,12…ディス
ク駆動装置、22…OS、26…ファイルシステム、2
7…ドライバ、32…ファイル制御テーブル、33…ボ
リューム管理ブロック、34…マスタファイル、35,
36,37,38,39…ミラーファイル、40…OS
バッファ
Claims (3)
- 【請求項1】ファイルを構成する複数のブロックデータ
と、該ファイルの基本情報及び前記複数のブロックデー
タのアドレスを保持するファイルノードとを格納する複
数のドライブが主記憶装置及び命令処理プロセッサに接
続されたデータ処理システムにおけるファイルのデータ
多重化方法において、前記ファイルノードの各ブロック
データのアドレスフィールドに対応して、当該ブロック
データが当該ドライブ以外の別のドライブに形成された
ミラーファイルに存在するときにその別のドライブを特
定するボリューム識別子を記録するためのフィールドを
備え、前記複数のドライブのうちのあるドライブに格納
されたあるファイルに属するブロックデータの読み出し
処理に伴い、読み出されたブロックデータを前記主記憶
装置に設けられたバッファに保持し、かつ前記ファイル
についてデータの多重化を行うか否かを判定し、データ
の多重化を行うと判定された場合には当該ファイルを読
み出したドライブとは別のドライブにミラーファイルを
生成し、該ミラーファイルに前記バッファに保持されて
いるブロックデータのみを格納することを特徴とするフ
ァイルのデータ多重化方法。 - 【請求項2】前記ブロックデータが前記ミラーファイル
にある場合に、前記あるドライブがビジーか要シーク距
離が長いとき前記ファイルの代わりにビジーでない前記
別のドライブ上の前記ミラーファイルから前記ブロック
データを読み出すことを特徴とする請求項1記載のデー
タ多重化方法。 - 【請求項3】前記ファイルのクローズ時に前記ミラーフ
ァイルを消去することを特徴とする請求項1記載のデー
タ多重化方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12577393A JP3485598B2 (ja) | 1993-05-27 | 1993-05-27 | ファイルの配置方法、データ多重化方法及びデータ処理システム |
US08/250,427 US5511177A (en) | 1991-11-21 | 1994-05-27 | File data multiplexing method and data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12577393A JP3485598B2 (ja) | 1993-05-27 | 1993-05-27 | ファイルの配置方法、データ多重化方法及びデータ処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06332625A JPH06332625A (ja) | 1994-12-02 |
JP3485598B2 true JP3485598B2 (ja) | 2004-01-13 |
Family
ID=14918484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12577393A Expired - Fee Related JP3485598B2 (ja) | 1991-11-21 | 1993-05-27 | ファイルの配置方法、データ多重化方法及びデータ処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3485598B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08329021A (ja) * | 1995-03-30 | 1996-12-13 | Mitsubishi Electric Corp | クライアントサーバシステム |
JPH10124366A (ja) * | 1996-10-18 | 1998-05-15 | Nec Corp | ファイルデータ格納機構の並列管理方式 |
US6112257A (en) * | 1997-09-24 | 2000-08-29 | Emc Corporation | Dynamic adjustment of mirror service policy for logical volumes in a disk drive system based on collected statistics |
JP4669027B2 (ja) * | 1998-12-24 | 2011-04-13 | 株式会社日立製作所 | 記憶装置システム |
JP2000242437A (ja) * | 1998-12-24 | 2000-09-08 | Hitachi Ltd | データのコピーを作成する記憶装置システム |
JP4604666B2 (ja) * | 2004-11-10 | 2011-01-05 | 株式会社日立製作所 | 入出力対象変更制御方法 |
SG135056A1 (en) * | 2006-02-14 | 2007-09-28 | Trek 2000 Int Ltd | Data storage device using two types of storage medium |
JP4945232B2 (ja) * | 2006-12-21 | 2012-06-06 | 株式会社日立製作所 | アクセス制御方法、計算機システム、及びオブジェクト複製プログラム |
JP2008186425A (ja) * | 2007-01-31 | 2008-08-14 | Ntt Docomo Inc | データ管理システム |
JP2008293350A (ja) * | 2007-05-25 | 2008-12-04 | Storage Vision Co Ltd | 記憶装置、記憶装置の制御方法および制御プログラム |
JP2010238124A (ja) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | データ管理プログラム、データ管理装置、およびデータ管理方法 |
US8407516B2 (en) * | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
JP5697195B2 (ja) * | 2010-12-24 | 2015-04-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法 |
WO2014155553A1 (ja) | 2013-03-27 | 2014-10-02 | 富士通株式会社 | 分散処理のための情報処理方法、情報処理装置及びプログラム、並びに分散処理システム |
US9483352B2 (en) * | 2013-09-27 | 2016-11-01 | Fisher-Rosemont Systems, Inc. | Process control systems and methods |
-
1993
- 1993-05-27 JP JP12577393A patent/JP3485598B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06332625A (ja) | 1994-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5511177A (en) | File data multiplexing method and data processing system | |
JP5142995B2 (ja) | メモリページ管理 | |
US4603380A (en) | DASD cache block staging | |
JP3485598B2 (ja) | ファイルの配置方法、データ多重化方法及びデータ処理システム | |
US7085909B2 (en) | Method, system and computer program product for implementing copy-on-write of a file | |
CA1303747C (en) | Method of rapidly opening disk files identified by path names | |
US5946711A (en) | System for locking data in a shared cache | |
US6934822B2 (en) | Organization of multiple snapshot copies in a data storage system | |
US6792518B2 (en) | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies | |
US6502174B1 (en) | Method and system for managing meta data | |
US5317728A (en) | Storage management of a first file system using a second file system containing surrogate files and catalog management information | |
US7577817B2 (en) | Storage virtualization system and methods | |
US7155586B1 (en) | Method of allowing point-in-time view of data on a disk using a map on cache disk | |
US20040030951A1 (en) | Instantaneous restoration of a production copy from a snapshot copy in a data storage system | |
US20080177975A1 (en) | Database management system for controlling setting of cache partition area in storage system | |
JP2003067248A (ja) | 記憶装置のキャッシング方法およびシステム | |
US7240172B2 (en) | Snapshot by deferred propagation | |
JP2004062869A (ja) | コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置 | |
WO2011114384A1 (en) | Storage system and method for changing configuration of cache memory for storage system | |
JPH04245352A (ja) | 制御装置の制御方法 | |
US6629203B1 (en) | Alternating shadow directories in pairs of storage spaces for data storage | |
KR100443320B1 (ko) | 메모리 저장 장치를 관리하기 위한 시스템 및 방법과, 컴퓨터 판독가능한 기록 매체 | |
Rahm | Performance evaluation of extended storage architectures for transaction processing | |
US20040039875A1 (en) | Disk array device and virtual volume management method in disk array device | |
EP0319148B1 (en) | Method of operating a multi-processor system for the transfer of data between processor units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071024 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081024 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091024 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091024 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101024 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111024 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121024 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |