JP3992427B2 - ファイルシステム - Google Patents

ファイルシステム Download PDF

Info

Publication number
JP3992427B2
JP3992427B2 JP2000233291A JP2000233291A JP3992427B2 JP 3992427 B2 JP3992427 B2 JP 3992427B2 JP 2000233291 A JP2000233291 A JP 2000233291A JP 2000233291 A JP2000233291 A JP 2000233291A JP 3992427 B2 JP3992427 B2 JP 3992427B2
Authority
JP
Japan
Prior art keywords
path
file
node
disk
management table
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
JP2000233291A
Other languages
English (en)
Other versions
JP2002049575A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000233291A priority Critical patent/JP3992427B2/ja
Priority to US09/746,608 priority patent/US6654769B2/en
Priority to EP00127995A priority patent/EP1179770B1/en
Publication of JP2002049575A publication Critical patent/JP2002049575A/ja
Priority to US10/695,149 priority patent/US7130868B2/en
Priority to US11/527,363 priority patent/US20070016751A1/en
Application granted granted Critical
Publication of JP3992427B2 publication Critical patent/JP3992427B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/2087Error 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 with a common controller
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のディスク装置に分散管理されたファイルの処理を行うファイルシステムに係り、特に、1つのディスク装置へアクセスするためのIOパスが複数存在する場合に、IOパスの切り替えを制御を行って一方のパスからディスク装置へアクセスすることができるファイルシステムに関する。
【0002】
【従来の技術】
従来技術によるファイルシステムの1つであるUNIXファイルシステムは、各ファイル毎にユニークに決まる番号(ファイルID)が定義されており、ファイルサーバがファイルIDを指定することによって、リード・ライト処理を行うファイルを特定することができる。そして、ファイルサーバは、ファイルIDとそのファイルが格納されているディスク装置にアクセスするためのIOパス(IOパスを決定する情報は、ノード番号、IOインターフェイス番号、装置番号などである)との対応関係をメモリ上のファイル管理テーブル(UNIXではinodeと呼ばれる)に登録して管理している。この管理方法については、例えば、(The Design of The Unix Operating System; Maurice J. Bach; p60-p72)に述べられている。
【0003】
ファイルIDを指定したリード・ライトアクセス要求に対して、ファイルサーバは、前述のファイル管理テーブルを参照し、ファイルIDからディスク装置にアクセスするためのIOパス名を決定し、そのIOパスを用いてディスク装置にアクセスを行う。ファイル管理テーブルには、IOパス情報の他に、ファイルサイズやファイルの更新日付などのファイル管理情報が登録されており、このファイル管理情報は、ファイルがオープンされたとき、ディスク装置から読み出され、定期的あるいはファイルをクローズしたときに、ディスク装置に書き戻される。ユーザがファイルにアクセスするとき指定するファイル名からファイルIDへの変換は、ファイルサーバが行っている。
【0004】
また、複数のディスク装置をシステムで取り扱う場合、あるディスク装置Aで管理されるディレクトリネームツリー内のいずれかのディレクトリ、例えば、Xに別のディスク装置Bで管理されるネームツリーを組み込むという操作によって、複数のディスク装置を1つのネームツリー内に見せるという方法が知られている。この方法によれば、ユーザは、ディレクトリXにアクセスすればディスク装置B内のファイルにアクセスすることができる。この方法は、マウント処理と呼ばれているものである。ファイルサーバは、起動時にある特定のディスク装置(ルートデバイス)を起点として前述したマウント処理を次々に行い、ユーザには複数のディスク装置を1つのネームツリーとして見せるようにしている。この起動時におけるマウント処理を行うためのディスク装置とネームツリー上のディレクトリ名(マウントポイント)との対応関係を記述した情報は、ルートデバイスにマウント構成ファイルとして記録されており、ファイルサーバは、起動時にこのマウント構成ファイルに記載された情報に従ってマウント処理を行う。
【0005】
マウント構成ファイルには、ディスク装置を特定する情報として、そのディスク装置にアクセスするためのIOパスの情報が記載されている。ファイルサーバは、マウント処理の実行時に、マウント構成ファイルに記載されたIOパスとマウントポイントとの対応関係をメモリ上のマウント構成情報に読み込む。そして、ファイルサーバは、ユーザがファイル名を指定してファイルをオープンするとき、前述のマウント構成情報を元にファイルが格納されている物理ディスク装置にアクセスするためのIOパスを求め、ファイル管理テーブルを作成する。従って、システム管理者は、システムに新しいディスク装置を接続するなどしてシステムの構成を変更したとき、マウント構成ファイルを書き換えることによって、新しい構成情報を計算機システムに設定する必要がある。
【0006】
一方、計算機システムの信頼性を向上させるため、異なる2つのノードを1つのディスク装置に物理的に接続し、異なる2通りのIOパスからディスク装置にアクセスすることができる構成にしておき、通常の運用時に一方のIOパスを使用し、ノード障害が発生して使用中のIOパスが使用できなくなったとき、もう一方のIOパスを用いて別のノードからディスク装置にアクセスするようにすることによって、障害発生時においてもディスク装置の可用性(アベイラビリティ)を保つ方法が、例えば、特開平10−275090号公報等に記載されて知られている。
【0007】
また、ディスク装置の信頼性を向上するために、ファイルを複数のディスクに多重化して記録する方法(ミラーリング)がよく知られている。ミラーリングを行う場合、一般に、論理ボリュームという概念が用いられる。ミラーリングは、複数の物理ディスク装置を、1つの論理ボリュームとしてユーザに見せる仕組みである。ユーザは、予め複数の物理ディスク装置の情報を登録した「論理ボリューム」を作成しておく。そして、ユーザがこの論理ボリュームに対して、物理ディスク装置と同様にアクセスすると、複数の物理ディスクへのファイルのミラーリングが行われる。論理ボリュームを使用することにより、ファイルを複数のディスク装置に分散記録するストライピングを行うことも可能となる。
【0008】
【発明が解決しようとする課題】
前述で説明した使用中のIOパスが使用不可能になったとき、物理ディスク装置にアクセスするためのIOパスを別のIOパスに切り替える処理を、従来のUNIXのファイルシステムに適用して動的に行おうとすると、ファイル管理テーブル及びマウント構成情報を検索し、使用できなくなったIOパス名を新しいIOパス名に書き換える操作を行う必要がある。前述のファイル管理テーブルのエントリを書き換える処理は、オープンされているファイルの個数だけ全てについて行わなければならない。この結果、従来のUNIXのファイルシステムに、前述したIOパスの切り替えの技術を適用した場合、ファイル管理テーブルのエントリを書き換える処理に時間がかかり、その間その物理ディスク装置にIO処理を行うことができないという問題点を生じることになる。
【0009】
また、IOパスに障害が発生したときに、単純にIOパスを切り替えるだけでは、障害発生前に物理ディスク装置にアクセスを行っていたノードが持っていたバッファキャッシュ(物理ディスク装置にリード・ライトするときにデータを一時的に蓄えておき、メモリに比べて処理速度の遅い物理ディスク装置への入出力回数を削減するためのメモリ領域)やファイル管理テーブル、及び、ディスク装置上のディスクキャッシュ(バッファキャッシュと同様の目的のために物理ディスク装置が備えるキャッシュメモリ)の内容が正常に物理ディスク装置に書き戻されず、大切なデータが消えてしまうという問題点をも生じる。しかも、これが原因でファイルシステムの整合性が異常となるため、物理ディスク装置に冗長に記録されたファイルシステムの情報を元にファイルシステムの整合性を正常状態に戻す操作が必要となる。この操作は、ディスク装置全体をチェックする必要があるため、長い時間を要する。この結果、この間、その物理ディスク装置に対するIO処理を行うことはできないという問題点を生じさせてしまう。
【0010】
さらに、IOパス切り替え後、新しいIOパスを用いてディスク装置にアクセスを行うので、IOパス切り替え後にシステムを再起動したときにマウント処理が正常に行われるようにするには、システム管理者がマウント構成ファイルを更新し、ディスク装置への新しいIOパスとマウントポイントとの対応関係をマウント構成ファイルに登録しなおす必要がある。また、ファイルのミラーリングを行う場合、論理ボリュームを作成する必要があるが、論理ボリュームの管理は、システム管理者に対して煩雑な作業を行わせることになる。
【0011】
本発明の第1の目的は、IOパスの切り替え処理のために要する時間を短縮し、一般ユーザからIOパス切り替え処理をできるだけ隠蔽することができるファイルシステムを提供することにある。また、本発明の第2の目的は、IOパスの切り替え時に、バッファキャッシュやファイル管理テーブル及びディスク装置上のディスクキャッシュに保存されたデータを失うことなくIOパスの切り替え処理を行い、ファイルの整合性のチェックを不要とすることができるファイルシステムを提供することにある。また、本発明の第3の目的は、IOパスを切り替えたとき自動的にマウント構成ファイルを更新し、システム管理者の負担を軽減することのできるファイルシステムを提供することある。さらに、本発明の第4の目的は、ユーザに論理ボリュームを意識させずにファイルのミラーリングを行う方法を備えたファイルシステムを提供することにある。
【0012】
【課題を解決するための手段】
本発明によれば前記目的は、ネットワークに接続されたそれぞれの内部にファイルサーバが構成された複数のノードと、複数のノードの少なくとも2つのノードに共通に接続された物理ディスク装置とを備え、ファイル毎にファイルIDが定義されており、前記物理ディスク装置の複数に分散管理されたファイルの処理を行うファイルシステムにおいて、複数のノードのそれぞれは、ファイルID及び該ファイルIDに対応するファイルが格納されている論理ディスクの論理ディスクIDを含むファイル管理テーブルと、論理ディスクID及び前記論理ディスクに対応する1つ以上の物理ディスク装置にアクセスするための複数のIOパスと、前記IOパスの使用状態を示す状態フラグとを含む論理ディスク管理テーブルとを主記憶内に備え、前記状態フラグには、「使用中」、「待機中」、「使用不可」のいずれかが設定されており、通常運用時ユーザからのファイルIDを指定したファイルへのアクセス要求を受信したファイルサーバは、前記ファイル管理テーブルと前記論理ディスク管理テーブルとを参照し、状態フラグが「使用中」となっている運用系IOパスを用いて上記ファイルが格納された物理ディスク装置にアクセスし、使用中のIOパスに障害発生時、前記障害発生IOパスの状態フラグを「使用不可」に更新し、前記障害発生IOパスを利用してアクセスしていた物理ディスク装置にアクセス可能なIOパスで状態フラグが「待機中」の中から1つを新運用系IOパスとして選択し、前記新運用系IOパスの状態フラグを「使用中」に更新し、前記状態フラグの更新はシステムを構成する全てのノード上の論理ディスク管理テーブルが同一内容となるように更新し、前記障害発生IOパスに含まれるノードが保持するファイル管理テーブルを、新運用系IOパスに含まれるノードに転送し、新運用系IOパスに含まれるノードを介するIOパスに、IOパスの切り替えを行うことにより達成される。
【0013】
前述において、論理ディスク管理テーブルは、該論理ディスク管理テーブルに登録されているIOパス毎に稼働状態(「使用中」、「待機中」、「使用不可」)を保持する状態フラグを含み、通常運用時、ファイルサーバは状態フラグが「使用中」状態のIOパス(運用系IOパス)を用いて物理ディスク装置にアクセスする。前記運用系IOパスの障害発生時、障害を検出したノードのファイルサーバは、前記ノードの論理ディスク管理テーブルを更新し、前記障害発生IOパスの状態フラグを「使用不可」とし、状態フラグが「待機中」状態であるIOパスの状態フラグを「使用中」として新運用系IOパスとした後、全リモートノードのファイルサーバと通信を行い、前記論理ディスク管理テーブルの内容を全ノードの論理ディスク管理テーブルに複写することによって、前記物理ディスク装置にアクセスするためのIOパスを旧運用系IOパスから新運用系IOパスに切り替える。
【0014】
このIOパス切り替え処理の間、前記障害発生IOパスに含まれるノードのファイルサーバは、旧運用系IOパスへのアクセス要求を保留し、IOパス切り替え処理終了時、保留していたアクセス要求を前記新運用系IOパスが含むノードに送信する。これによって、IOパス切り替え処理を動的に行うことが可能となり、IOパス切り替え時ファイル管理テーブルを検索・更新する必要をなくし、IOパス切り替え処理に要する時間を短縮することができる。
【0015】
また、前述において、IOパスの切り替え処理時、使用できなくなった旧運用系IOパスを使ってアクセスしていた物理ディスク装置内に設けられたディスクコントローラが有するディスクキャッシュに格納されたデータのうち、前記物理ディスク装置に書き戻す必要のあるデータを、前記物理ディスク装置内に設けられた別のディスクコントローラを使用して前記物理ディスク装置に書き戻し、前記旧運用系IOパスに含まれるノードのファイルサーバと新運用系IOパスに含まれるノードのファイルサーバが通信を行うことによって、前記旧運用系IOパスに含まれるノードの主記憶内に存在し、前記物理ディスク装置に書き戻す必要があるバッファキャッシュ及びファイル管理テーブルを前記新運用系IOパスに含まれるノードに転送する。本発明は、これによって、ディスク装置上のディスクキャッシュに存在していたデータや、バッファキャッシュや、ファイル管理テーブルが消失するのを防ぎ、ファイルシステムの整合性のチェックを不要とすることができる。
【0016】
また、前述において、マウント構成ファイルは、IOパス毎にそのIOパスが使用できるか否かを登録する使用可否情報を含み、ファイルサーバは、システム起動時に前記マウント構成ファイルを読み込み、前記使用可否情報に「使用可」と記載されたIOパスについて、対応する論理ディスク管理テーブルの状態フラグを「使用中」または「待機中」と登録し、前記使用可否情報に「使用不可」と記載されたIOパスについて、対応する論理ディスク管理テーブルの状態フラグを「使用不可」と登録することにより、マウント構成ファイルに「使用可」と記載されたIOパスだけを使用して物理ディスク装置にアクセスをする設定を行っている。IOパス切り替え・切り離し処理終了後、ファイルサーバは、前記マウント構成ファイルを更新し、使用できなくなった旧運用系IOパスの使用可否情報を「使用不可」に書き換える。また、使用不可能となったIOパスが再び使用できるようになったとき、ファイルサーバは、マウント構成ファイルを更新し、使用可能になった前記IOパスの使用可否情報を「使用可」に書き換える。このように、本発明は、IOパスが切り替わったときや復旧したときのマウント構成ファイルの書き換え処理を自動化することにより、システム管理者の負担を軽減することができる。
【0017】
また、本発明は、マウント構成ファイルの1つのエントリに書かれた複数のIOパスからアクセスされる複数のディスク装置に対して、ファイルのミラーリングを行うことができ、これにより、ユーザが論理ボリュームを使用することなくファイルのミラーリングを行うことができる。
【0018】
【発明の実施の形態】
以下、本発明によるファイルシステムの実施形態を図面により詳細に説明する。
【0019】
図1は本発明の第1の実施形態によるファイルシステムの構成を示すブロック図、図2はシステム内に設けられる各種のテーブルの具対的な構成例を説明する図、図3はマウント構成ファイルの具体的な構成例を説明する図である。図1〜図3において、1はネットワーク、10、20、30は物理ディスク装置、11、12、21、22はディスクコントローラ、24はマウント構成ファイル、100、200、300はノード、110、210、310はCPU、120、220、320はメモリ、130、230はユーザアプリケーション(UAP)、140、240はファイルサーバ(FS)、250はディスクドライバ、160、260はファイル管理テーブル、170、270は論理ディスク管理テーブル、180、280はバッファキャッシュ、290、390はIOインタフェースである。
【0020】
本発明の第1の実施形態によるファイルシステムは、図1に示すように、超並列計算機システムを構成するノード100、200、300(図1では3つのノードのみを示しているが、ノードは多数設けられる)がネットワーク1によって相互に接続されて構成されている。ノード200とノード300とには、両ノードからアクセス可能な共用物理ディスク装置10、20が接続されている。物理ディスク装置10、20は、それらのディスク装置内に設けられたディスクコントローラ11、12及びノード200内に設けられたIOインターフェイス290によってノード200と接続されると共に、ディスクコントローラ12、22及びノード300内に設けられたIOインターフェイス390によってノード300と接続されている。ノード100に接続されている物理ディスク装置30は、物理ディスク装置10、20と比べて障害発生率が極めて低い高信頼ディスク装置である。
【0021】
ノード200は、CPU210とメモリ220とから構成される。メモリ220は、ユーザアプリケーション230と、ファイル制御を行うファイルサーバ240と、ディスクIO処理を行うディスクドライバ250と、ファイル管理テーブル260と、論理ディスクを定義している論理ディスク管理テーブル270と、バッファキャッシュ280とを含む。ノード100及びノード300は、ノード200と同様に構成されている。
【0022】
物理ディスク装置にアクセスするための入出力経路をIOパスと呼び、このIOパスは、ノード番号、IOインターフェイス番号、ディスクコントローラ番号の3つの情報で決定され、IOパスを決めると物理ディスク装置を一意に決めることができる。例えば、(ノード番号、IOインターフェイス番号、コントローラ番号)=(200,290,11)というIOパスからは、物理ディスク装置10にアクセスされる。以後の説明において、IOパスは、前述のような形式で記載することとする。
【0023】
論理ディスクは、1つ以上の物理ディスク装置を組み合わせたものとして構成される。その物理ディスクの組み合わせは、IOパスを指定することによって行われる。例えば、(200,290,11)、(300,390,22)という2つのIOパスを組み合わせると、物理ディスク装置10、20を纏めた論理ディスクを構成することができる。その際、物理ディスク装置10、20に同一の内容を記録するようにすれば、論理ディスクをミラー化することができる。また、(200,290,11)、(300,390,12)という2つのIOパスを組み合わせると、これらのIOパスからは共に物理ディスク装置10にアクセスされるため、物理ディスク装置10に対応する論理ディスクが構成される。但し、この場合、物理ディスク装置10にアクセスするためのIOパスが2通り存在するので、片方のIOパスに障害が発生した場合でも、別のIOパスから物理ディスク装置10にアクセスすることができ、これによって、ディスク装置の信頼性の向上を図ることができる。説明する本発明の第1の実施形態は、論理ディスクが1つの物理ディスク装置に対応する後者の場合を例として取り扱う。
【0024】
論理ディスク管理テーブル270は、図2(b)に示すように、論理ディスクID271と、ノード番号272、276と、IOインターフェイス番号273、277と、ディスクコントローラ番号274、278と、状態フラグ275、279とから構成される。272〜274は、論理ディスクID271に対応する物理ディスク装置にアクセスするための第1のIOパスを決定し、状態フラグ275には、このIOパスの稼働状態(「使用中」、「待機中」、「使用不可」のいずれか)が登録される。276〜278は、物理ディスク装置にアクセスするための第2のIOパスを決定し、このIOパスの稼働状態が状態フラグ279に登録される。このように論理ディスク管理テーブル270には、1つの論理ディスクIDに対して2通りのIOパスとそれぞれのIOパスの状態フラグを登録できるようになっている。
【0025】
本発明の第1の実施形態において、前述の2つのIOパスからアクセスされる物理ディスク装置は同一のものであり、通常運用時は2つのIOパスのうち1つを使用し(状態フラグが「使用中」状態になっている)、もう一方のIOパスを「待機中」状態としておき、ディスクコントローラやIOインターフェイスの障害等の原因により、使用中のIOパスが使用できなくなったとき、ファイルサーバが物理ディスク装置にアクセスするためのIOパスを「待機中」状態のIOパスに切り替える。このように、論理ディスク管理テーブルは、論理ディスクIDと物理ディスク装置にアクセスするためのIOパスとを対応付けることによって、仮想的なディスク装置として論理ディスクを定義している。論理ディスクIDはこの論理ディスクを識別するための番号である。
【0026】
また、システムを構成する各ノードが持つ論理ディスク管理テーブルの内容は常に同一となっている。例えば、図1において、ノード100が持つ論理ディスク管理テーブル170と、ノード200が持つ論理ディスク管理テーブル270と、ノード300が持つ論理ディスク管理テーブル370は常に同一の内容を有する。
【0027】
ファイル管理テーブル260は、図2(a)に示すように、ファイルID261と論理ディスクID262とファイル管理情報263とにより構成される。ファイルID261には、現在オープンされているファイルのファイルIDが登録され、論理ディスクID262には、前述のファイルが格納されている論理ディスクの論理ディスクIDが登録される。ファイル管理情報263には、前述のファイルのファイルサイズや更新日付等の情報が登録される。このファイル管理テーブル260の各エントリは、ノード200上で動作するプログラムがファイルをオープンする度に、物理ディスク装置上から各ファイル固有の情報として読み出される。従って、ファイル管理テーブル260のエントリは、少なくともオープンされているファイルの個数分存在する。
【0028】
バッファキャッシュ280は、物理ディスク装置にアクセスを行うときにリード・ライトするデータを一時的に蓄えておき、メモリに比べて処理速度の遅い物理ディスク装置への入出力処理回数を削減するために使用される。バッファキャッシュ280は、図2(c)に示すように、論理ディスクID281とブロック番号282とキャッシュデータ283とから構成される。キャッシュデータ283には、論理ディスクID281のブロック番号282で指定されるディスク領域のデータの内容が格納される。
【0029】
高信頼な物理ディスク装置30内には、マウント構成ファイル24が格納されている。マウント構成ファイル24のエントリは、図3に示すように、システムに接続される物理ディスク装置にアクセスするためのIOパス名51、53と、そのIOパスが使用可能か否かを示す使用可否情報52、54と、前述の物理ディスク装置に対応する論理ディスクをマウントするマウントポイント55との3つの情報を含んでいる。マウント構成ファイル24には、IOパス名が“(ノード番号,IOインターフェイス番号,ディスクコントローラ番号)=(200,290,11)”のような形式で記述され、そのIOパスが使用可能な場合、マウント構成ファイル24の対応するIOパスの使用可否情報に“available” と記述され、そのIOパスが使用不可能な場合、使用可否情報に“unavailable” と記述される。図3に示した例では、IOパス(200,290,11)と(300,390,12)との両者がマウントポイント /mntに対応付けされており、共に使用可能となっている。この記述によって、ユーザが /mntディレクトリ以下のディレクトリツリー内のファイルにアクセスしたとき、物理ディスク装置10にアクセスできるようになる。このとき、物理ディスク装置10にアクセスするためのIOパスは、前述のいずれかのIOパスが使用される。使用していない方のIOパスは「待機中」状態としてスタンバイしている。
【0030】
前述のように、物理ディスク装置にアクセスするためのIOパスが2つ存在する場合、その2つのIOパスを同じエントリに記載することにより、2つのIOパスを1つのマウントポイントに対応付けることができる。マウント構成ファイル24は、通常のエディタなどで編集することが可能であり、システム管理者は、システムの構成を変更したとき、マウント構成ファイル24の内容が新しいシステム構成と一致するように、マウント構成ファイル24を編集し、システムをリブートさせる。システムの起動時、ファイルサーバ140は、修正後のマウント構成ファイル24に従ってマウント処理を行うので、リブート後、新しいシステム構成が使用可能となる。例えば、図1に示した物理ディスク装置装置20をシステムに追加したとき、システム管理者は“((200,290,21) available) ((300,390,22) available) /mnt1”という行をマウント構成ファイル24に追加してシステムをリブートする。この記述によって、ユーザが /mnt1 ディレクトリにアクセスしたとき、前述の追加行に記載したいずれかのIOパスから物理ディスク装置20にアクセスできるようになる。
【0031】
図4はシステムの起動時のファイルサーバの処理動作を説明するフローチャート、図5はシステム全体のノードの論理ディスク管理テーブルを更新する処理動作を説明するフローチャートであり、次に、これらのフローを参照して、システムの起動時にファイルサーバ140がマウント構成ファイル24を読み込み、論理ディスク管理テーブルを設定してマウント処理を行うまでの処理手順及び全ノードでの論理ディスク管理テーブルの更新の処理手順を説明する。
【0032】
(1)システムの起動時、ノード100内のファイルサーバ140は、高信頼ディスク装置30上に格納されているマウント構成ファイル24の1つのエントリを読み込む(ステップ401、402)。
【0033】
(2)ファイルサーバ140は、マウント構成ファイル24に記載されたIOパス名に対して論理ディスクIDを自動的に設定する。マウント構成ファイル24の1つのエントリに複数のIOパス名が記載されていた場合、ファイルサーバ140は、その複数のIOパスに対して1つの論理ディスクIDを設定する。例えば、図3に示した例の場合、ファイルサーバ140は、IOパス名51“(200,290,11)”及びIOパス名53“(300,390,12)”に対して論理ディスクID“123”を設定する。ファイルサーバ140は、これにより、設定した論理ディスクIDを論理ディスク管理テーブル170の論理ディスクID171に登録する(ステップ403)。
【0034】
(3)前述の第1のIOパス名をノード番号172、IOインターフェイス番号173、ディスクコントローラ番号174に登録し、第2のIOパス名をノード番号176、IOインターフェイス番号177、ディスクコントローラ番号178に登録する。図3に示した例の場合、論理ディスクID171には“123”、ノード番号172には“200”、IOインターフェイス番号173には“290”、ディスクコントローラ番号174には“11”、ノード番号176には“300”、IOインターフェイス番号177には“390”、ディスクコントローラ番号178には“12”が登録される(ステップ404)。
【0035】
(4)そして、ファイルサーバ140は、マウント構成ファイル24の使用可否情報に “available”と記載されている最初のIOパス“(200,390,11)”について、論理ディスク管理テーブル170の対応する状態フラグを「使用中」状態と登録し、“available” と記載されている残りのIOパス“(300,390,12)”について、対応する状態フラグを「待機中」状態と登録する。また、ファイルサーバ140は、マウント構成ファイル24の使用可否情報に、“unavailable” と記載されているIOパスについては対応する状態フラグを「使用不可」状態と登録する。この結果、論理ディスク管理テーブル170の内容は、図2に示したようなものとなる(ステップ405)。
【0036】
(5)ファイルサーバ140は、マウント構成ファイル24に記載された全てのエントリについて、論理ディスク管理テーブル170への登録が終了したか否かをチェックし、終了していない場合、ステップ402からの処理を繰り返し実行して論理ディスク管理テーブルへの登録を続ける(ステップ406)。
【0037】
(6)ステップ406で、マウント構成ファイル24に記載された全てのエントリについて、論理ディスク管理テーブル170への登録が終了していた場合、ファイルサーバ140は、全ての他のノード200、300であるリモートノードのファイルサーバと通信を行い、システムを構成する全ノードの論理ディスク管理テーブルの更新を行わせる(ステップ407)。
【0038】
(7)ファイルサーバ140は、全リモートノードから論理ディスク管理テーブルの更新完了の通知を受信したら、マウント構成ファイル24に記載されているIOパス名(“(200,290,11)”及び“(300,390,12)”)とマウントポイント /mnt との対応関係、及び、論理ディスク管理テーブル170に登録した上記IOパス名と論理ディスクID“123”との対応関係から、マウントポイント /mnt と上記論理ディスクID“123”との対応関係を作り、論理ディスクID“123”に対応する論理ディスクをマウントポイント /mnt にマウントする(ステップ408)。
【0039】
次に、図5に示すフローを参照して前述したステップ407の処理時のファイルサーバ140及びリモートノードのファイルサーバの処理動作を説明する。
【0040】
(1)ファイルサーバ140は、自ノード100の論理ディスク管理テーブルの設定を終了した後、全リモートノードのファイルサーバに論理ディスク管理テーブル140の内容を送信し、論理ディスク管理テーブルを更新するように要求する(ステップ901、902)。
【0041】
(2)この通知を受けたリモートノードのファイルサーバは、送信されてきた論理ディスク管理テーブル170の内容を、そのノードの論理ディスク管理テーブルに複写して論理ディスク管理テーブルの更新を行い、ファイルサーバ140に論理ディスク管理テーブルの更新終了を通知する(ステップ905〜907)。
【0042】
(3)ファイルサーバ140は、全リモートノードからそれぞれのノードの論理ディスク管理テーブルの更新完了通知を受信するのを待ち、図4により説明したステップ408のマウント処理を実行して処理を終了する(ステップ903、904)。
【0043】
図6は通常運用時のファイルサーバの処理動作を説明するフローチャートであり、次に、このフローを参照して、通常運用時のファイルアクセスの手順について説明する。ここでは、ファイル管理テーブル160、260及び論理ディスク管理テーブル170、270の設定が図2に示すようになっているとして、ローカルノードとしてのノード200に接続された物理ディスク装置にアクセスする場合について、ノード200上で動作するユーザアプリケーション230が、ファイルID“100”を指定したファイルアクセス要求をファイルサーバ240に発行した場合を例に説明する。
【0044】
(1)ファイルサーバ240は、ユーザアプリケーション230からの要求を受信すると、この要求が他のノードであるリモートノードからの要求であるか否かを判定する(ステップ501、502)。
【0045】
(2)説明している例では、自ノードであるローカルノードのユーザアプリケーションからのアクセスであるとしているので、ファイルサーバ240は、ファイル管理テーブル260を検索し、ファイルID“100”からそのファイルIDで定義されるファイルが格納されている論理ディスクの論理ディスクID“123”を求める(ステップ503)。
【0046】
(3)そして、ファイルサーバ240は、論理ディスク管理テーブル270を検索し、論理ディスクIDから状態フラグが「使用中」状態のIOパス名“(200,290,11)”を求め、そのIOパス名に含まれるノード番号“200”がローカルノードであるか否かを判定する(ステップ504、505)。
【0047】
(4)前述のIOパス名に含まれるノード番号“200”がローカルノードであるとして説明しているので、ステップ505で、前述のIOパス名に含まれるノード番号“200”がローカルノードであると判定され、ファイルサーバ240は、自ローカルノードのディスクドライバ250にIOパスを指定したIOアクセス要求を送る。この要求を受けたディスクドライバ250は、IOインターフェイス290を介してディスクコントローラ11に制御信号を送る(ステップ507)。
【0048】
次に、他のノードであるリモートノードに接続された物理ディスク装置にアクセスする場合について説明する。ここで説明する例は、ノード100上で動作するユーザアプリケーション130が、ファイルID“100”を指定したファイルアクセス要求をファイルサーバ140に発行した場合であるとする。
【0049】
(1)ファイルサーバ140は、ユーザアプリケーション130からの要求を受信すると、ローカルノードに接続された物理ディスク装置にアクセスする場合と同様に、ファイル管理テーブルを160を検索しファイルID“100”から論理ディスクID“123”を求め、論理ディスク管理テーブル170を検索して論理ディスクID“123”からIOパス名“(200,290,11)”を求める(ステップ501〜504)。
【0050】
(2)ファイルサーバ140は、上記IOパス名に含まれるノード番号“200”がリモートノードであることを確認すると、そのノード(ノード200)のファイルサーバ240に上記論理ディスクIDを指定したIOアクセス要求を送る(ステップ505、506)。
【0051】
(3)この要求を受けたファイルサーバ240は、論理ディスク管理テーブル270を検索し論理ディスクID“123”から状態フラグが「使用中」状態のIOパス名“(200,290,11)”を求める(ステップ501、502、504)。
【0052】
(4)ファイルサーバ240は、IOパスに含まれるノード番号“200”が自ノードであるローカルノードであることを確認して、ディスクドライバ250にIOパスを指定したIOアクセス要求を送る。この要求を受けたディスクドライバ250は、IOインターフェイス290を介してディスクコントローラ11に制御信号を送る(ステップ505、507)。
【0053】
前述した処理動作の説明から判るように、ファイルサーバが自ノードであるローカルノードからアクセス要求を受ける場合、その要求は、全てユーザアプリケーションからの要求であり、他のノードであるリモートノードからの要求を受ける場合、その要求は、全てリモートノードのファイルサーバからの要求である。
【0054】
実際のファイルアクセス処理は、バッファキャッシュを経由して行われる。ファイルサーバ240は、論理ディスクIDを指定したIOアクセス要求に対する処理を、バッファキャッシュ280に対するリード・ライト処理と、バッファキャッシュ280と物理ディスク装置10との間でのリード・ライト処理とに分けて行う。ファイルサーバ240は、バッファキャッシュ280と物理ディスク装置10との間のリード・ライトアクセス処理との実行時に、論理ディスクIDからIOパス名への変換を行う。ノード100で動作するプログラムが、リモートノードに接続された物理ディスク装置10にアクセスする場合、ノード100上のバッファキャッシュ180とノード200上のバッファキャッシュ280とを経由してアクセスが行われる。すなわち、ライト処理を行う場合のデータの流れは、バッファキャッシュ180→バッファキャッシュ280→物理ディスク装置10となる。リード処理の場合、この逆の順序となる。
【0055】
ユーザアプリケーションがファイルを更新し、ファイルの更新日付が変わるなどして、ファイル管理テーブルの内容が変更されたとき、ファイル管理テーブルの変更を物理ディスク装置に書き戻す必要がある。次に、この書き戻し処理について説明する。
【0056】
ファイル管理テーブルの内容が変更され、その内容をローカルノードに接続された物理ディスク装置に書き戻す場合、ローカルノードのファイルサーバがローカルノードのファイル管理テーブルの内容を直接その物理ディスク装置に書き戻す。また、リモートノードに接続された物理ディスク装置に書き戻す場合、ローカルノードのファイルサーバは、物理ディスク装置が接続されたノードにローカルノードのファイル管理テーブルの内容を一旦転送する。その後、物理ディスク装置が接続されたノードのファイルサーバが物理ディスク装置にその内容を書き戻す。例えば、ノード100のファイルサーバ140がファイル管理テーブル160の内容を物理ディスク装置10に書き戻す場合、まず、ファイルサーバ140は、物理ディスク装置への書き戻し処理を行いたいファイル管理テーブル160のエントリ中の、論理ディスクID162(“123”)を参照して、書き戻す先の論理ディスクIDを求める。そして、論理ディスク管理テーブル170を検索して上記論理ディスクIDに対応する物理ディスク装置にアクセスするためのIOパス(“200,290,11”)を求め、そのIOパス名に含まれるノード番号(“200”)に対応するノード(ノード200)のファイルサーバ240に書き戻しを行いたいファイル管理テーブルのエントリを送信する。ファイルサーバ240は、受信したデータを一旦ファイル管理テーブル260に書き込む。その後、ファイルサーバ240は、ファイル管理テーブルに保存されている他のデータと纏めて、ファイル管理テーブル260の更新内容を物理ディスク装置10に書き込む。ファイルサーバ240が物理ディスク装置10にアクセスするためのIOパスは、論理ディスク管理テーブル270を検索し、論理ディスクID262をIOパス名に変換することによって求められる。
【0057】
前述したように、最終的な物理ディスク装置へのデータの書き戻しは、物理ディスク装置が接続されたノードに存在するファイル管理テーブル及びバッファキャッシュから行っており、物理ディスク装置が接続されたノードのファイル管理テーブル及びバッファキャッシュには、ローカルノードのユーザアプリケーションに関係するもの以外にリモートノードのユーザアプリケーションに関係するものが存在する。
【0058】
図7はIOパスの切り替えの処理動作を説明するフローチャート、図8〜図10はIOパスに障害が発生しIOパスの切り替えを行う処理について説明する図である。図8〜図10において、13はディスクキャッシュ、340はファイルサーバ、350はディスクドライバ、360はバッファキャッシュであり、他の符号は図1の場合と同一である。以下、これらの図を参照して、ディスクコントローラ11で障害が発生し、通常使用しているIOパス“(200,290,11)”が使用不可能になったとき、物理ディスク装置10にアクセスするためのIOパスを“(200,290,11)”から“(300,390,12)”に切り替える処理について説明する。
【0059】
図9において、ディスクキャッシュ13は、ディスク装置10が備えるディスクコントローラ11の内部に設けられたディスクキャッシュであり、ディスクコントローラ11に対してリード・ライト処理要求が発行されたときに使用される。そして、実際のリード・ライト処理は、このディスクキャッシュ13を経由して行われる。また、ディスクコントローラ12は、ディスクコントローラ11に障害が発生したときに、ディスクキャッシュ13がディスク媒体に書き戻す必要のあるデータを保持している場合、そのデータをディスク媒体に書き戻し、ディスクコントローラ11をディスク装置から切り放す機能を持つ。
【0060】
図8は図7により説明するステップ1003でのリクエストの保留の処理を行うときの各ノードの動作を示し、図9は図7により説明するステップ1004でのディスクキャッシュの書き戻しの処理と、ステップ1005でのバッファキャッシュの転送の処理を行うときの各ノードの動作を示し、図10は図7により説明するステップ1006でのリクエストの保留解除及び転送の処理を行うときの各ノードの動作を示している。
【0061】
以下、ディスクコントローラ11で障害が発生した時、物理ディスク装置10にアクセスするためのIOパスを“(200,290,11)”から“(300,390,12)”に切り替える処理を図8〜図10を併用しながら図7に示すフローを参照して説明する。なお、論理ディスク管理テーブル270の設定は図2に示すようになっているものとする。
【0062】
障害検出の処理(ステップ1001)
ディスクコントローラ11に障害が発生すると、ディスクドライバ250は、IOパス(200,290,11)を使って物理ディスク装置10にアクセスを行うことができなくなる。これをもって障害検出とし、ディスクドライバ250は、IOパス(200,290,11)の障害発生をファイルサーバ240に通知する。また、ディスクドライバ250がローカルノードとしてのノード200のノード番号を含むIOパスのうち、論理ディスク管理テーブル270の状態フラグが、「使用中」状態及び「待機中」状態のIOパスを定期的に監視することによって障害を検出してもよい。これによって、「待機中」状態のIOパスの障害検出が可能となる。
【0063】
切り替え対象IOパスの検索の処理(ステップ1002)
障害発生通知を受けたファイルサーバ240は、図2に示した論理ディスク管理テーブル270を参照し、障害発生IOパス“(200,290,11)”を含むエントリを検索する。そして、障害発生IOパスの状態フラグが「待機中」状態であるか否かをチェックし(ステップ1010)、もし、障害発生IOパスの状態フラグが「待機中」状態であれば、IOパスの切り替え処理は必要なく、ステップ1011の処理に進む。そうでない場合、IOパスの切り替えが必要になりステップ1103の処理に進む。前述の検索によって見つかったエントリには、障害発生IOパス以外に、状態フラグ279(275)が「待機中」状態のIOパス“(300,390,12)”と論理ディスクID“123”が登録されている。この「待機中」状態のIOパス“(300,390,12)”が切り替え先のIOパスとなる。ファイルサーバ240は、障害発生IOパス名と切り替え先のIOパス名とそれらに対応する論理ディスクID(以後、IOパス切り替え処理を行う論理ディスクIDと呼ぶ)を、ファイルサーバ240が管理するメモリ内に保存し、ファイルサーバ240が論理ディスク管理テーブル270を検索することなくいつでも得られるようにしておく。
【0064】
リクエストの保留の処理(ステップ1003)
この処理について、図8を参照して説明する。ファイルサーバ240は、現在処理中あるいは今後受理するIOアクセス要求の中で、IOパスの切り替え処理を行う論理ディスクID“123”あるいは障害発生IOパス“(200,290,11)”を指定したIOアクセス要求を保留し、その内容を後で取り出すことができるようにファイルサーバ240が管理するメモリ上に記録する。図8に示す例では、ファイルサーバ140は、ディスクコントローラ11で障害が発生したことを知らずに、論理ディスク“123”を指定したライト要求をファイルサーバ240に送信している。ファイルサーバ240は、このライト要求と、現在処理中のIOパス名“(200,290,11)”を指定したリード要求を保留している。
【0065】
次に、ファイルサーバ240は、切り替え先のIOパス“(300,390,12)”に含まれるノード番号“300”に対応するノード(以後、切り替え先のノードと呼ぶ)のファイルサーバ340に、障害発生IOパス名“(200,290,11)”と切り替え先のIOパス名“(300,390,12)”と対応する論理ディスクID“123”とを送信し、論理ディスクIDを指定したIOアクセス要求を保留するように要求する。この要求を受信したファイルサーバ340は、前述の2つのIOパス名と論理ディスクIDとをファイルサーバ340が管理するメモリ上に保存し、これらの情報をいつでも得られるようにした後、論理ディスクID“123”を指定したIOアクセス要求を保留し、その内容を後で取り出せるようにファイルサーバ340が管理するメモリ上に保存する。図8に示す例では、ファイルサーバ340は、論理ディスクID“123”を指定したリード要求を保留している。
【0066】
ディスクキャッシュの書き戻しの処理(ステップ1004)
この処理について、図9を参照して説明する。ファイルサーバ340は、リクエストの保留の設定を行った後、障害発生IOパスが含むディスクコントローラ番号“11”に対応するディスクコントローラ11が備えるディスクキャッシュ13を、切り替え先のIOパスが含むディスクコントローラ番号“12”に対応するディスクコントローラ12を使ってディスク装置に書き戻すようにディスクドライバ350に要求する。この要求を受けたディスクドライバ350は、IOインターフェイス390を介してディスクコントローラ12に制御信号を送りディスクキャッシュ13に保存されているdirtyなデータをディスク領域に書き戻し、ディスクコントローラ11をディスク装置10から切り放す。これらの処理の終了後、ディスクドライバ350は、ファイルサーバ340に終了通知を送る。
【0067】
バッファキャッシュの転送の処理(ステップ1005)
この処理について、図9を用いて説明する。ファイルサーバ340は、ディスクドライバ350からの終了通知を受けると、障害発生IOパス“(200,290,11)”に含まれるノード番号“200”に対応するノード(以後、障害発生ノードと呼ぶ)のファイルサーバ240にファイル管理テーブル260及びバッファキャッシュ280の転送を要求する。ファイルサーバ340からの要求を受信したファイルサーバ240は、dirtyな(物理ディスク装置に書き戻す必要のある)ファイル管理テーブル260とdirtyなバッファキャッシュ280の中で、論理ディスクID262や論理ディスクID281が、IOパス切り替え処理を行う論理ディスクID“123”であるデータを、ファイルサーバ340に送信する。この送信が成功したら、ファイルサーバ240は、ノード200内に存在する前述のデータを消去可能とし、バッファキャッシュ280をしばらくの間、読み出し用のキャッシュとして使用するが、バッファキャッシュ280やファイル管理テーブル260のためのメモリ領域が不足してきたらこれらを消去する。ファイルサーバ340は、受け取ったデータを、ノード300上のファイル管理テーブル360及びバッファキャッシュ380にマージする。ノード300上のこれらのデータはdirtyであるので、IOパスの切り替え処理が終了し通常運用状態となったら、ファイルサーバ340が切り替え先のIOパス“(300,390,12)”を使用して物理ディスク装置10に書き込む。また、前述の上記データは、読み出し用のキャッシュとして使用される可能性もある。
【0068】
論理ディスク管理テーブルの更新の処理(ステップ1006)
この処理は、図5により説明したフローの手順で実行される。図5に示したローカルノードは、ここでは障害発生ノード200である。ファイル管理テーブル260及びバッファキャッシュ280の転送が終了すると、ファイルサーバ240は、論理ディスク管理テーブル270に登録されている障害発生IOパス“(200,290,11)”の状態フラグ275を「使用中」状態から「使用不可」状態に、切り替え先のIOパス“(300,390,12)”の状態フラグ279を「待機中」状態から「使用中」状態に更新する。ファイルサーバ240は、論理ディスク管理テーブル270の更新の終了後(図5のステップ901)、全リモートノードのファイルサーバに論理ディスク管理テーブル270の更新情報を送り、論理ディスク管理テーブルの更新を要求し(図5のステップ902)、リプライを待つ。例えば、ファイルサーバ240からの要求を受信したノード100のファイルサーバ140は、受信した論理ディスク管理テーブル270の更新情報に基づいて、ノード100の論理ディスク管理テーブル170のIOパス“(200,290,11)”に対応する状態フラグ175を「使用不可」状態に、IOパス“(300,390,12)”に対応する状態フラグ179を「使用中」状態に更新する(図5のステップ906)。この更新の後、ファイルサーバ140は、ファイルサーバ240に論理ディスク管理テーブル370の更新終了の通知を送る(図5のステップ907)。ファイルサーバ240が、全リモートノードのファイルサーバから論理ディスク管理テーブルの更新終了の通知を受信すれば(図5のステップ903)、システムを構成するすべてのノードの論理ディスク管理テーブルの更新が完了したことになる。
【0069】
リクエストの保留解除及び転送の処理(ステップ1007)
この処理について、図10を参照して説明する。ファイルサーバ240は、切り替え先のノードのファイルサーバ340にリクエストの保留を解除する要求を送る。この要求を受けたファイルサーバ340は、ステップ1003で行ったIOアクセス要求の保留を解除し、保留していたIOアクセス要求の処理を行い、通常運用時の処理を開始する。また、ファイルサーバ240は、ステップ1003で行ったIOアクセス要求の保留を解除し、保留していたIOアクセス要求のうち、障害発生IOパスを指定したIOアクセス要求を、切り替え先のIOパスを指定したIOアクセス要求に変換した後、保留中のすべてのIOアクセス要求を、切り替え先のノードのファイルサーバ340に転送する。図10に示す例では、ファイルサーバ240は、IOパス“(200,290,11)”を指定したリード要求を、IOパス“(300,390,12)”を指定したリード要求に変換し、前述の要求と論理ディスクID“123”を指定したライト要求とをノード300のファイルサーバ340に転送している。転送されたIOアクセス要求は、ファイルサーバ340によって処理される。
【0070】
マウント構成ファイルの更新の処理(ステップ1008)
最後に、ファイルサーバ240は、高信頼ディスク装置30が接続されているノード100のファイルサーバ140に障害発生IOパス“(200,290,11)”が「使用不可」状態になったことをマウント構成ファイル24に記載するように要求し、通常運用時の処理を開始する。この要求を受けたファイルサーバ140は、高信頼ディスク装置30上のマウント構成ファイル24を参照し、障害発生IOパス“(200,290,11)”の使用可否情報52を“unavailable”(使用不可)に書き換える。以上により、IOパスの切り替え処理が終了する。
【0071】
論理ディスク管理テーブルの更新の処理(ステップ1011)
ステップ1010のチェックで、IOパスの切り替え処理を行う必要がなかった場合、障害発生ノードのファイルサーバ240は、ステップ1006の処理と同様の手順でシステム全体の論理ディスク管理テーブルを更新する。但し、障害発生IOパス“(200,290,11)”の状態フラグを「待機中」から「使用不可」に書き換える処理だけを行う。システム全体の論理ディスク管理テーブルの更新が終了した後前述したステップ1008の処理に進む。
【0072】
図11はIOパスが障害から復旧したとき、IOパスをシステムに復旧させる処理手順を説明するフローチャートであり、これについて説明する。ここでは、物理ディスク装置10のディスクコントローラ11の障害などの原因により「使用不可」状態になっていたIOパス“(200,290,11)”がディスクコントローラ11の交換などによって再び使用可能になったとき、システムに上記のIOパスを復旧させる方法を例に説明する。また、ここでは、IOパスの復旧処理中に使用中のIOパスに障害が発生することはないと仮定する。
【0073】
(1)障害が発生したディスクコントローラの交換等により、今まで使用不可能となっていたIOパス“(200,290,11)”が使用可能な状態になると、システム管理者は、管理用のプログラムを使って、このIOパスをシステムに復旧させる要求を、高信頼ディスク装置が接続されているノード100のファイルサーバ140に送信する。ファイルサーバ140は、この要求を受信する(ステップ601)。
【0074】
(2)復旧要求を自したファイルサーバ140は、論理ディスク管理テーブル170を参照して、前述のIOパス“(200,290,11)”の状態フラグ175を「使用不可」状態から「待機中」状態に更新する。また、ファイルサーバ140は、論理ディスク管理テーブル170の更新が終了したら、全ての稼働中のノードのファイルサーバと通信を行い、全ノードの論理ディスク管理テーブルを論理ディスク管理テーブル170と同じ内容にする。この処理は、図7によるIOパスの切り替えのフローにより説明したステップ1006での処理と同様な処理により行われる(ステップ602)。
【0075】
(3)そして、ファイルサーバ140は、高信頼ディスク装置30上のマウント構成ファイル24を参照し、前述のIOパス“(200,290,11)”の使用可否情報52を“unavailable”(使用不可)から“available”(使用可)に変更する。前述の処理により、IOパス“(200,290,11)”を「待機中」状態としてシステムに復旧させることができる(ステップ603)。
【0076】
前述した本発明の実施形態は、ファイル管理テーブル260及びバッファキャッシュ270をノード200からノード300に転送するとして説明した(図7のステップ1005)が、これは次のような理由による。すなわち、物理ディスク装置へのアクセスは、ローカルノードからのアクセスでもリモートノードからのアクセスでも、最終的に、その物理ディスク装置が接続されたノードのファイル管理テーブル及びバッファキャッシュを経由して行われる。従って、物理ディスク装置が接続されたノードは、そのノード(ローカルノード)で動作するプログラムに関係するファイル管理テーブル及びバッファキャッシュの他に、リモートノードで動作するプログラムに関係するファイル管理テーブル及びバッファキャッシュを持つ。前述した本発明の実施形態に示したようなIOパス切り替え処理は、物理ディスク装置が接続されているノードがノード200からノード300に切り替わるので、ノード300がノード200に代わって、ノード200が保持していたファイル管理テーブル260及びバッファキャッシュ280を持つ必要がある。そこで、IOパス切り替え処理時にファイル管理テーブルやバッファキャッシュをノード300に転送するようにしている。このとき、dirtyなデータのみを転送するようにして、データの転送量をなるべく少なく済むようにしている。
【0077】
また、前述した本発明の実施形態は、物理ディスク装置10、20を共にノード200から使用しているときに、IOインターフェイス290に障害が発生した場合、IOパス(200,290,11)及び(200,290,21)の両方が使用できなくなるが、この場合、ディスクドライバ250が、各々のIOパスに対して障害検出を行い、各々のIOパスに対して前述の各ステップで示されるIOパスの切り替え処理を行うようにすればよい。また、ディスクドライバ250がIOインターフェイス290で障害が起こったことを検出する機能を持つ場合、ステップ1001で、ディスクドライバ250がファイルサーバ240にIOインターフェイス290の障害を通知し、ステップ1002で、ファイルサーバ240が論理ディスク管理テーブル270を検索し、障害発生IOインターフェイス番号“290”から、障害発生IOパス(200,290,11)、(200,290,21)と対応する切り替え先のIOパスと論理ディスクIDを探し出し、これら2組のIOパスについて、前述の各ステップで示される切り替え処理を同時に行うようにしてもよい。
【0078】
前述した本発明の実施形態において、ノード200が2つのIOインターフェイスを有し、物理ディスク装置10がこれら2つのIOインターフェイスによってノード200と接続されており、物理ディスク装置10とノード200との間のIOパスが2つ存在し、通常運用時これらのIOパスのうち1つを利用しているような場合、ディスクコントローラやIOインターフェイスの障害発生により、今まで使用していたIOパスが使用できなくなったとき、物理ディスク装置10にアクセスするためのIOパスをもう片方のIOパスに前述したの方法で切り替えることができる。この場合、ステップ1003でノード300のファイルサーバ340がIOアクセス要求を保留する処理と、ステップ1005でノード200が持つバッファキャッシュ280及びファイル管理テーブル260をIOパス切り替え先のノード300に転送する処理が不要となる。
【0079】
また、本発明は、物理ディスク装置にアクセスするためのIOパスが3つ以上存在する場合にも適用することができる。この場合、論理ディスク管理テーブル及びマウント構成ファイル24の各エントリに3つ以上のIOパスの組を登録できるようにし、システムの起動時にファイルサーバ140がマウント構成ファイル24に記載されたIOパスの組に対して、1つの論理ディスクIDを設定し、IOパスと論理ディスクIDとの対応関係を論理ディスク管理テーブルに登録するようにすればよい。そして、この場合、通常運用時、複数のIOパスが「待機中」状態としてスタンバイするため、障害発生時のIOパスの切り替え処理を行う際に、複数の「待機中」状態のIOパスの中から切り替え先のIOパスを選択する必要がある。この切り替え先のIOパスの決定は、前述した実施形態におけるステップ1002で障害を検出したノードのファイルサーバがそのノードの論理ディスク管理テーブルを検索し、障害発生IOパス名を含むエントリを見つけたときに、そのエントリのなるべく最初の方のフィールドに登録されている「待機中」状態のIOパスを切り替え先のIOパスとして選び出すことによって行うようにすればよい。また、論理ディスク管理テーブルに登録されている各IOパス毎に使用時間(状態フラグが「使用中」状態となっていた時間)を上記論理ディスク管理テーブルに登録できるようにし、IOパスの切り替え処理時、使用時間の短いIOパスに切り替えるようにしてもよい。これによって、複数のIOパスをまんべんなく使用することができる。
【0080】
さらに、本発明は、LAN等のネットワークにより接続された疎結合計算機システムによるファイルシステムに対しても適用することができる。この場合、前述のノード番号の代わりにネットワークアドレスを使用すればよい。
【0081】
また、前述した本発明の実施形態において、ディスクキャッシュ13をディスクコントローラ12から制御し、ディスク装置10に書き戻す機能を物理ディスク装置10が持たない場合、ノード200のディスクドライバ250が、ディスクキャッシュ13に保存されたdirtyなキャッシュを少なくとも含むデータを予め保持しておいて、障害発生時、前述のステップ1004でディスクドライバ250がディスクドライバ350と通信を行い、dirtyなディスクキャッシュを少なくとも含むようなデータをノード200からノード300に転送し、ディスクコントローラ12を通してディスク装置10に書き戻すようにしてもよい。
【0082】
前述した本発明の実施形態は、IOパス切り替え処理中、障害発生ノード及び切り替え先のノードに送信されてきたIOアクセス要求は、保留するようにしていたが、IOアクセス要求を保留しないようにすることもできる。以下、この場合のファイルサーバの動作について図面により説明する。
【0083】
図12はIOパス切り替え時の障害発生ノードの処理動作の他の例について説明するフローチャート、図13は障害発生ノード以外のノードの処理動作の他の例を説明するフローチャートである。以下、障害発生ノードがノード200、切り替え先のノードがノード300の場合を例として、図12、図13に示すフローを参照して、IOパス切り替え処理中に各ノードに送信されてきたIOアクセス要求の処理の方法を説明する。まず、障害発生ノードのファイルサーバの動作を図12のフローにより説明する。
【0084】
(1)障害発生ノードのファイルサーバ240は、IOパス切り替え処理中に、IOアクセス要求を受信すると、その要求が他のノードであるリモートノードからの要求が否かを判定する(ステップ701、702)。
【0085】
(2)ステップ702の判定で、受信したIOアクセス要求がローカルノード(自ノード)のユーザアプリケーション230からのものであると判定すると、ファイルサーバ240は、前述した実施形態で説明したと同様に、IOパス切り替え処理の間、その要求を保留する。この要求は、IOパスの切り替え処理終了時に、切り替え先のノードに送信される(ステップ703)。
【0086】
(3)ステップ702の判定で、受信したIOアクセス要求がリモートノードからのものであると判定すると、ファイルサーバ240は、その要求に対してリプライを返さずに無視する(ステップ704)。
【0087】
次に、障害発生ノード以外のノードのファイルサーバの動作を図13に示すフローを参照して説明する。障害発生ノード以外のファイルサーバは、基本的に図4により説明した通常運用時と同様の動作をするので、ここでは図4の処理と重なる部分については説明を省略する。
【0088】
(1)障害発生ノード以外のファイルサーバがIOパス切り替え中に障害発生ノード(ノード200)に送信したIOアクセス要求はタイムアウトとなる(ステップ808)。
【0089】
(2)IOアクセス要求がタイムアウトになったら、IOアクセス要求を送信したファイルサーバは、一定時間(例えば1秒)待った後、論理ディスク管理テーブルを参照して、論理ディスクIDからIOパス名を求める処理から処理をやり直す。このとき、IOパスの切り替え処理が終了していれば、全ノードの論理ディスク管理テーブルが更新されているので、ステップ804の処理によって切り替え先のIOパスが求まる(ステップ804)。
【0090】
(3)IOアクセス要求を送信しようとしているファイルサーバは、求められたIOパス名が含むノードがローカルノードであるか否かを判定し、切り替え先のIOパス名が含むノードがローカルノードでなかった場合、IOアクセス要求を切り替え先のノード(ノード300)に送信する(ステップ805、806)。
【0091】
(4)ステップ805の判定で、切り替え先のIOパスがローカルノードであれば、IOアクセス要求を送信しようとしているファイルサーバは、IOアクセス要求をローカルノードのディスクドライバに送信する(ステップ807)。
【0092】
前述したステップ804の処理において、もし、論理ディスクIDからIOパス名を求めなおしたときに、IOパスの切り替え処理が終了していない場合、IOアクセス要求は、障害発生ノード(ノード200)に送信され、上記IOアクセス要求は再びタイムアウトとなり、IOアクセス要求が成功するまで前述した処理が繰り返される。
【0093】
この方法を使用することにより、図7により説明したステップ1003のリクエストの保留処理でリモートノードからのアクセス要求を保留する必要がなくなるので、IOアクセス要求を保留するためのメモリを節約することができる。また、IOアクセス要求の再送回数に制限(例えば5回)を設け、もし制限回数だけ再送を行ってもタイムアウトになり続ければ、そのIOアクセス要求をエラーとしてもよい。また、IOパス切り替え処理中、障害発生ノードのファイルサーバ240は、リモートノードからのIOアクセス要求を無視するかわりに、「IOパス切り替え処理中なので、IOアクセス要求を処理できない」という意味の通知をアクセス要求を送信したリモートノードのファイルサーバに送信するようにしてもよい。これにより、リモートノードのファイルサーバは、IOパスで障害が発生した場合とノード200で障害が発生した場合とを区別することができるようになる。
【0094】
前述までに説明した本発明の第1の実施形態によるIOパス切り替え方法は、ノード200でOSの障害が発生したとき、ネットワーク1を通じてバッファキャッシュ280やファイル管理テーブル260をノード300に転送することができなくなるため、同じ方法でIOパスの切り替えを行うことは不可能である。
【0095】
これを解決するため、本発明は、バッファキャッシュ280やファイル管理テーブル260をノード300に転送するための専用のハードウェアを使う方法を取ることができる。以下、これを第2の実施形態として説明する。
【0096】
図14は本発明の第2の実施形態によるディスクキャッシュの書き戻しの処理とバッファキャッシュの転送の処理とを説明する図である。
【0097】
本発明の実施形態におけるIOパス切り替え処理の手順は、前述までに説明した第1の実施形態の場合の図7に示すフローと同様に行われる。但し、第2の実施形態では、ステップ1003及びステップ1007の処理は行わない。そして、図14には、ステップ1004でのディスクキャッシュの書き戻しの処理とステップ1005でのバッファキャッシュの転送の処理についてしめしている。
【0098】
図14において、メモリアクセス手段299(399)は、ノード200(300)に付属しており、メモリアクセス手段299とメモリアクセス手段399とは専用通信線2によって互いに接続されている。メモリアクセス手段299は、ノード200でOSの障害が発生しノード200上で動作するプログラムの全てが停止した場合にも、メモリ220にアクセスし、その内容を専用通信線2を使用してメモリアクセス手段399との通信によりノード300に送信することが可能なハードウェアである。
【0099】
通常運用時、図14に示す各ノードのファイルサーバは、図13により説明した動作を行う。ここで例えば、ノード200でOSの障害が発生したとすると、あるファイルサーバがノード200に送信したIOアクセス要求のリプライが戻ってこないので、IOアクセスを送信したファイルサーバは、上記IOアクセス要求をタイムアウトにする(ステップ808)。ファイルサーバは、一定時間待った後、ローカルノードの論理ディスク管理テーブルを参照し、論理ディスクIDからIOパスを求める処理から処理の再実行を行うことになる(ステップ804)。IOパス切り替え処理中、前述の要求は、障害発生ノード(ノード200)に送信されタイムアウトとなるが、IOパス切り替え終了後、要求は切り替え先のノードに送信される。
【0100】
以下、ノード200で障害が発生しノード200で動作する全てのプログラムが停止した場合に、物理ディスク装置10にアクセスするためのIOパスを(200,290,11)から(300,390,12)に切り替えるものとして、その処理を図1、図2、図14を併用しながら図7に示すフローを参照して説明する。
【0101】
障害検出の処理(ステップ1001)
ノード200で障害が発生すると、ノード200は、リクエストを一切受け付けなくなる。従って、ノード200にIOアクセス要求を送信したリモートノードのファイルサーバは、IOアクセス要求をタイムアウトとする。IOアクセス要求を送信したファイルサーバは、このタイムアウトによってノード200で障害が発生したことを検出する。前述したように、IOアクセス要求を送信したファイルサーバは、IO処理要求がタイムアウトになったらその要求を再送するので、何度も障害発生ノード(ノード200)に上記要求を再送し、そのたびに要求をタイムアウトにする可能性がある。上記ファイルサーバは、あるノードへの要求が最初にタイムアウトになったとき、次のステップ1002の処理に進み、2回目以降、ステップ1002以降の処理は行わない。
【0102】
切り替え対象IOパスの検索の処理(ステップ1002)
IOアクセス要求を送信したファイルサーバは、ローカルノードの論理ディスク管理テーブルを参照し、障害が発生したノードのノード番号“200”から障害発生IOパス名と切り替え先のIOパス名とを探し出し、切り替え先のIOパスが含むノード番号に対応するノード(切り替え先のノード)のファイルサーバに、障害発生IOパスから切り替え先のIOパスにIOパスを切り替えるように要求する。切り替え先のノードがローカルノード(自ノード)であれば、IOアクセスを送信したファイルサーバは、直ちにIOパスの切り替えの処理を開始する。但し、障害発生IOパスの状態フラグが「待機中」状態の場合(ステップ1010)、IOパスの切り替え処理は必要なくステップ1011の処理に進む。例えば、ノード100のファイルサーバ140がノード200のファイルサーバ240に送信したIO処理要求がタイムアウトとなった場合、ファイルサーバ140は、図2に示した論理ディスク管理テーブル170を検索し、ノード番号“200”を含むエントリを探す。見つかったエントリには複数のIOパスが記載されているが、ノード番号“200”を含むIOパス“(200,290,11)”が障害発生IOパスであり、状態フラグが「待機中」状態でノード番号“200”を含まないIOパス“(300,390,12)”が切り替え先のIOパスである。障害発生IOパスの状態フラグ275が「使用中」状態であるので、ファイルサーバ140は、切り替え先のノード300のファイルサーバ340に“(200,290,11)”から“(300,390,12)”にIOパスを切り替えるように要求する。もし、上記障害発生IOパスの状態フラグが「待機中」状態であれば、IOパスの切り替え処理は必要なく、ステップ1011の処理に進む。
【0103】
前述した検索処理で、切り替え処理を行うIOパスの組が複数個見つかった場合、障害を検出したファイルサーバは、IOパス毎に対応する切り替え先のノードのファイルサーバにIOパスの切り替え要求を送信する。但し、複数のIOパスの切り替え要求を1つのノードに送る必要がある場合、それらのIOパスの切り替え要求を一括して送り、切り替え先のノードのファイルサーバが、それらのIOパスの切り替え処理を同時に行う。例えば、物理ディスク装置10と物理ディスク装置20とをノード200から使用していた場合、ノード200の障害を検出したファイルサーバは、ノード300のファイルサーバ340に上記2つの物理ディスク装置にアクセスするための2組のIOパスを切り替える要求を発行し、ファイルサーバ340は、前述した2組のIOパスの切り替え処理を同時に行う(ステップ1004〜1008)。
【0104】
ディスクキャッシュの書き戻しの処理(ステップ1004)
障害発生IOパス“(200,290,11)”から切り替え先のIOパス“(300,390,12)”にIOパスを切り替えるように要求されたファイルサーバ340は、IOパスの切り替えモードに入り、その後再び同じIOパス切り替え要求が送られてきても受理しない。これによって、IOパスの切り替え処理が二重に行われることを防止する。このステップの処理の後の処理内容は、第1の実施形態の場合と同様に行われる。ファイルサーバ340は、図14に示すように、ディスクドライバ350にディスクキャッシュの書き戻し要求を送信することにより、ディスクキャッシュ13の内容をディスク領域に書き戻して、ディスクコントローラ11を物理ディスク装置から切り放す。
【0105】
バッファキャッシュの移動の処理(ステップ1005)
ファイルサーバ340は、次に、図14に示すように、メモリアクセス手段399に、障害が発生したノード200のファイル管理テーブル260とバッファキャッシュ280との内容をローカルノード(ノード300)に転送するように要求する。メモリアクセス手段399は、メモリアクセス手段299と通信を行い、専用通信線2を介して、dirtyなバッファキャッシュ280及びdirtyなファイル管理テーブル260の内容をノード300のファイルサーバ340に転送する。ファイルサーバ340は、ノード300上のファイル管理テーブル360及びバッファキャッシュ380にメモリアクセス手段399から送られてきたデータをマージする。マージされたデータは、IOパスの切り替え終了後、ファイルサーバ340によって切り替え先のIOパスから物理ディスク装置10に書き込まれる。また、これらデータは、読み出し用のキャッシュとしても使われる可能性もある。
【0106】
論理ディスク管理テーブルの更新の処理(ステップ1006)
データの転送処理が終了した後、ファイルサーバ340は、論理ディスク管理テーブル370に登録されているIOパスの状態フラグを、障害発生IOパス“(200,290,11)”について、「使用不可」状態に、切り替え先のIOパス“(300,390,12)”について、「使用中」状態に登録し直す。ファイルサーバ340は、論理ディスク管理テーブル370の更新の終了後、第1の実施形態の場合と同様な方法により、全ての稼働中のノードのファイルサーバと通信を行うことにより、全ての稼働中のノードの論理ディスク管理テーブルに登録されている、障害発生IOパスの状態フラグを「使用不可」状態に、切り替え先のIOパスの状態フラグを「使用中」状態に更新する。
【0107】
マウント構成ファイルの更新の処理(ステップ1008)
ファイルサーバ340は、全ての稼働中のノードの論理ディスク管理テーブルの更新が終了した後、高信頼ディスク装置30が接続されているノード100のファイルサーバ140に、IOパス“(200,290,11)”が「使用不可」状態になったことをマウント構成ファイル24に記載するように要求し、IOパスの切り替えモードから抜け、通常運用時の処理を開始する。前述の要求を受けたファイルサーバ140は、「使用不可」状態となったIOパス“(200,290,11)”の使用可否情報52を“available”(使用可)から“unavailable”(使用不可)に更新する。以上によりIOパスの切り替え処理が終了する。
【0108】
論理ディスク管理テーブルの更新の処理(ステップ1011)
ステップ1010で、障害発生パスが「待機中」状態にあると判定され、IOパスの切り替え処理を行う必要がない場合、ステップ1001の処理で障害を検出したファイルサーバは、ステップ1006の処理と同様の手順でシステム全体の論理ディスク管理テーブルを更新する。但し、障害発生IOパスの状態フラグを「使用不可」に書き換える処理だけを行う。システム全体の論理ディスク管理テーブルの更新が終了した後、前述のファイルサーバがファイルサーバ140に対してマウント構成ファイルの更新を要求し、この要求を受けたファイルサーバ140は、ステップ1008の処理を行う。
【0109】
図15は本発明の第3の実施形態によるファイルシステムの構成を示すブロック図、図16は本発明の第3の実施形態におけるマウント構成ファイルの具体的な構成例を説明する図であり、図15における符号は図1の場合と同一である。図15に示す本発明の第3の実施形態は、同一のファイルを物理ディスク装置10と物理ディスク装置20とに二重化(ミラーリング)して記録する例である。
【0110】
図示本発明第3の実施形態において、マウント構成ファイルの1つのエントリには、図16に示すように、物理ディスクにアクセスするためのIOパス名51、53、各IOパスの使用可否情報52、54、マウントポイント55が記載されている。この第3の実施形態は、マウントポイントの1つのエントリに記載されたIOパスからアクセスされる物理ディスク装置にファイルが多重化して記録される。従って、前述のIOパスからアクセスされる物理ディスク装置は異なるものである必要がある。図16に示す例では、/mnt ディレクトリ以下のディレクトリに格納されたファイルは、IOパス“(200,290,11)”、“(300,390,22)”からアクセスされる物理ディスク装置(物理ディスク装置10、20)にミラーリングされる。このような指定方法を採用することにより、システム管理者が論理ボリュームの設定を行う必要がなくなる。
【0111】
システム立ち上げ時、ファイルサーバ140は、マウント構成ファイル24を読み込んで、第1の実施形態の場合と同様の手順で、全てのノードの論理ディスク管理テーブルを設定する。但し、第3の実施形態では、ファイルサーバ140は、マウント構成ファイル24の使用可否情報に“available”(使用可)と記載されているすべてのIOパスについて、論理ディスク管理テーブルの対応する状態フラグに「使用中」と登録する。
【0112】
次に、通常運用時のファイルサーバの動作を、ノード100のユーザアプリケーション130がファイルID“100”を指定したファイルアクセス要求をファイルサーバ140に発行した場合を例に、図15、図16を参照し、図6に示すフローに基づいて説明する。なお、ファイル管理テーブルの設定は図2、論理ディスク管理テーブルの設定は図16に示すようになっているものとする。
【0113】
(1)ファイルサーバ140は、ユーザアプリケーション130からファイルIDを指定したアクセス要求を受けると、その要求がリモートノードからの要求であるか否かを判定し、自ノードからの要求である場合、ファイル管理テーブル160を検索し、ファイルID“100”から論理ディスクID“123”を求める(ステップ501〜503)。
【0114】
(2)そして、ファイルサーバ140は、論理ディスク管理テーブル170を検索し、論理ディスクID“123”から状態フラグが「使用中」状態のIOパス名“(200,290,11)”、“(300,390,22)”を求める(ステップ504)。
【0115】
(3)アクセス要求がライト要求の場合は、前述の両方のIOパスに対して同一内容の書き込みを行う。このため、ファイルサーバ140は、前記2つのIOパス名が含むノードがローカルノードか否かを判定し、ローカルノードでない場合、すなわちリモートノードである場合、2つのIOパスが含むノード番号に対応するノード(ノード200、ノード300)のファイルサーバ240、340にIOパス名を指定したライト要求を送信する(ステップ505、506)。
【0116】
(4)ステップ505での判定が、ノードがローカルノードであった場合、ローカルノードのディスクドライバにIOパスを指定したライト要求を送信する(ステップ507)。
【0117】
図15に示す例の場合、前述の処理で、ファイルサーバ140は、ファイルサーバ240にIOパス“(200,290,11)”を指定したライト要求を送信し、ファイルサーバ340にIOパス“(300,390,22)”を指定したライト要求を送信する。これらのライト要求を受信したファイルサーバ240、340は、それぞれのノードのディスクドライバにIOパスを指定したライト要求を送信する。
【0118】
受信したアクセス要求がリード要求の場合、ファイルサーバ140は、前述したIOパスのうちで、論理ディスク管理テーブルの最も最初のフィールドに登録されていたIOパス“(200,290,11)”を使用してアクセスを行う。もし、IOパスの障害などの理由により、このIOパスを使用してアクセスすることができない場合、順に次のフィールドに登録されているIOパスを使用してアクセスを試みる。また、前述のIOパスの中で、ローカルノードのノード番号を含むものがあれば、そのIOパスを最初に使うようにしてもよい。このように、なるべくリモートアクセスを減らすことによって、ネットワークの負荷を減らすことができる。リード処理に使用するIOパスが決定した後の処理は、ライト要求の場合と同様である。
【0119】
次に、障害発生時、障害が発生したIOパスを切り放す処理を説明する。ここでは、ディスクコントローラやIOインターフェイスの障害により、ノード200に接続されていた物理ディスク装置20にアクセスするためのIOパス“(200,290,11)”が使用不可能になったものとして説明する。
【0120】
障害の発生により、IOパス“(200,290,11)”が使用できなくなった場合、ノード200のデバイスドライバ250は、このIOパスの障害を検出し、障害発生をファイルサーバ240に通知する。
【0121】
この通知を受けたファイルサーバ240は、論理ディスク管理テーブル270を更新し、障害発生IOパスの状態フラグを「使用不可」状態にする。ファイルサーバ240は、図5に示したフローによる方法により、全てのリモートノードのファイルサーバと通信を行い、全てのノードの論理ディスク管理テーブルを論理ディスク管理テーブル270と同一の内容に更新する。
【0122】
最後に、ファイルサーバ240は、高信頼ディスク装置30が接続されたノード100のファイルサーバ140に、障害発生IOパス“(200,290,11)”が「使用不可」状態になったことを、マウント構成ファイル24に記載するように要求する。この要求を受けたファイルサーバは、マウント構成ファイル24を更新し、上記障害発生IOパスの使用可否情報を“unavailable”(使用不可)に書き換える。以上によりIOパスの切り離しが終了する。
【0123】
IOパスの切り離し処理中に、あるノードのファイルサーバ(例えば、ファイルサーバ140)が、ファイルサーバ240に前述の障害発生IOパスを指定したアクセス要求を送るとその要求は失敗する。しかし、ライト処理の場合、データは、同時に複数の物理ディスク装置に書き込まれるので、アクセス可能な物理ディスク装置(物理ディスク装置20)の方に無事に記録されている。また、リード処理の場合、アクセス要求を行ったファイルサーバは、アクセスに失敗したら別のIOパス“(300,390,22)”を指定したIOアクセス要求をファイルサーバ340に送信する。このため、データは、アクセス可能な物理ディスク装置から無事に読み込まれる。従って、IOパス切り替え中もユーザは、それを意識することなくファイルにアクセスすることができる。
【0124】
前述した本発明の実施形態において、ノード200で障害が発生したことにより、IOパス“(200,290,11)”が使用できなくなった場合、ノード200にIOアクセス要求を送信したリモートノードのファイルサーバが、送信したアクセス要求のタイムアウトによってノード200の障害を検出し、障害を検出したこのファイルサーバが上記のIOパスの切り離し処理を行うようにすればよい。
【0125】
また、前述した本発明の実施形態において、論理ディスク管理テーブルに、論理ディスクの使用方法(切り替え、ミラーリングなど)を指定するためのディスクタイプ情報を論理ディスクID毎に登録できるようにし、マウント構成ファイル24に上記ディスクタイプ情報を登録できるようにし、システム起動時にファイルサーバ140がマウント構成情報24に記載されたディスクタイプ情報を、論理ディスク管理テーブルのディスクタイプ情報に登録し、通常運用時及び障害発生時、ファイルサーバが論理ディスク管理テーブルのディスクタイプ情報によって、ディスクタイプを判別し各ディスクタイプ毎の処理を行うようにすることもできる。例えば、図15に示す例の場合、マウント構成ファイル24には“((200,290,11) available) ((300,390,22) available) /mnt mirror”と記載する。“mirror”は、前述2つのIOパスからアクセスされる物理ディスク装置に対して、ミラーリングを行うことを示す。ファイルサーバ140は、起動時に前述のエントリを読み込んで、ディスクタイプが「ミラーリング」であることを判別し、論理ディスク管理テーブルの対応するディスクタイプ情報に、「ミラーリング」であることを登録する。通常運用時、ファイルサーバは、論理ディスク管理テーブルのディスクタイプ情報を参照して、前述のIOパスの組が「ミラーリング」を行うものであることを判別すると、前述した実施形態により説明した「ミラーリング」の処理を行う。ディスクタイプが「切り替え」の場合も同様である。これにより、IOパスの切り替えとミラーリングをシステムで共存させることができる。
【0126】
前述した本発明の第3の実施形態は、ファイルのミラーリングを行うものとして説明したが、論理ディスク管理テーブルの1つのエントリに登録されたIOパスからアクセスされる物理ディスク装置に、ファイルを分散して記録するようにすれば、ファイルのストライピングを行うことができる。
【0127】
【発明の効果】
以上説明したように本発明によれば、IOパス切り替え・復旧処理のためにかかる時間を短縮することができ、また、IOパス切り替え時にファイルの整合性のチェックを不要にすることができる。また、本発明によれば、IOパスの切り替え・切り離し処理が発生しても、一般ユーザはそれを意識することなく作業を続けることができる。さらに、本発明によれば、IOパス切り替え・切り離し処理後あるいは障害発生IOパス復旧後、システムを再起動する際にシステム管理者がマウント構成ファイルを設定しなおす必要をなくすことができ、システム管理者の負担を軽減することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態によるファイルシステムの構成を示すブロック図である。
【図2】システム内に設けられる各種のテーブルの具対的な構成例を説明する図である。
【図3】マウント構成ファイルの具体的な構成例を説明する図である。
【図4】システムの起動時のファイルサーバの処理動作を説明するフローチャートである。
【図5】システム全体のノードの論理ディスク管理テーブルを更新する処理動作を説明するフローチャートである。
【図6】通常運用時のファイルサーバの処理動作を説明するフローチャートである。
【図7】IOパスの切り替えの処理動作を説明するフローチャートである。
【図8】IOパスに障害が発生しIOパスの切り替えを行う処理について説明する図(その1)である。
【図9】IOパスに障害が発生しIOパスの切り替えを行う処理について説明する図(その2)である。
【図10】IOパスに障害が発生しIOパスの切り替えを行う処理について説明する図(その3)である。
【図11】IOパスが障害から復旧したとき、IOパスをシステムに復旧させる処理手順を説明するフローチャートである。
【図12】IOパス切り替え時の障害発生ノードの処理動作の他の例について説明するフローチャートである。
【図13】障害発生ノード以外のノードの処理動作の他の例を説明するフローチャートである。
【図14】本発明の第2の実施形態によるディスクキャッシュの書き戻しの処理とバッファキャッシュの転送の処理とを説明する図である。
【図15】本発明の第3の実施形態によるファイルシステムの構成を示すブロック図である。
【図16】本発明の第3の実施形態におけるマウント構成ファイルの具体的な構成例を説明する図である。
【符号の説明】
1 ネットワーク
10、20、30 物理ディスク装置
11、12、21、22 ディスクコントローラ
13 ディスクキャッシュ
24 マウント構成ファイル
100、200、300 ノード
110、210、310 CPU
120、220、320 メモリ
130、230 ユーザアプリケーション(UAP)
140、240、340 ファイルサーバ(FS)
160、260 ファイル管理テーブ
170、270 論理ディスク管理テーブル
180、280、360 バッファキャッシュ
250、350 ディスクドライバ
290、390 IOインタフェース

Claims (13)

  1. ネットワークに接続されたそれぞれの内部にファイルサーバが構成された複数のノードと、複数のノードの少なくとも2つのノードに共通に接続された物理ディスク装置とを備え、ファイル毎にファイルIDが定義されており、前記物理ディスク装置の複数に分散管理されたファイルの処理を行うファイルシステムにおいて、
    複数のノードのそれぞれは、ファイルID及び該ファイルIDに対応するファイルが格納されている論理ディスクの論理ディスクIDを含むファイル管理テーブルと、論理ディスクID及び前記論理ディスクに対応する1つ以上の物理ディスク装置にアクセスするための複数のIOパスと、前記IOパスの使用状態を示す状態フラグとを含む論理ディスク管理テーブルとを主記憶内に備え、
    前記状態フラグには、「使用中」、「待機中」、「使用不可」のいずれかが設定されており、通常運用時ユーザからのファイルIDを指定したファイルへのアクセス要求を受信したファイルサーバは、前記ファイル管理テーブルと前記論理ディスク管理テーブルとを参照し、状態フラグが「使用中」となっている運用系IOパスを用いて上記ファイルが格納された物理ディスク装置にアクセスし、
    使用中のIOパスに障害発生時、前記障害発生IOパスの状態フラグを「使用不可」に更新し、前記障害発生IOパスを利用してアクセスしていた物理ディスク装置にアクセス可能なIOパスで状態フラグが「待機中」の中から1つを新運用系IOパスとして選択し、前記新運用系IOパスの状態フラグを「使用中」に更新し、前記状態フラグの更新はシステムを構成する全てのノード上の論理ディスク管理テーブルが同一内容となるように更新し、
    前記障害発生IOパスに含まれるノードが保持するファイル管理テーブルを、新運用系IOパスに含まれるノードに転送し、新運用系IOパスに含まれるノードを介するIOパスに、IOパスの切り替えを行うことを特徴とするファイルシステム。
  2. 前記IOパスを特定する情報は、ノード番号、IOインターフェイス番号及び物理ディスク装置内のディスクコントローラ番号からなることを特徴とする請求項1記載のファイルシステム。
  3. 前記IOパスの切り替え処理の間、使用不可能となったIOパスに含まれるノードにアクセス要求を発行したファイルサーバは、前記アクセス要求がタイムアウトになった場合、論理ディスク管理テーブルを参照し論理ディスクIDからIOパスを求め直し、新しく求め直したIOパスを使用して、物理ディスク装置にアクセスし直すことを特徴とする請求項1記載のファイルシステム。
  4. 前記ファイル管理テーブルは、ファイルアクセス時に内容が更新されるファイル管理情報を含み、IOパスの切り替えを行う際に、障害発生IOパスに含まれるノードが保持するファイル管理テーブルに格納された情報のうちファイル管理情報が更新され、かつ、物理ディスク装置へ書き戻していない部分のみ、新運用系IOパスに含まれるノードに転送することを特徴とする請求項1記載のファイルシステム。
  5. 前記物理ディスク装置が接続されているノードは、自ノードの状態にかかわりなく自ノードが備える主記憶内のデータを読み出し、読み出したデータを他のノードに転送する機能を持ったメモリアクセス手段を有し、IOパスの切り替え処理時、前記メモリアクセス手段を用いて、前記障害発生IOパスに含まれるノードが保持するファイル管理テーブルを前記新運用系IOパスに含まれるノードに転送することを特徴とする請求項1記載のファイルシステム。
  6. 前記複数のノードのそれぞれは、物理ディスク装置との間に転送されるデータを一時的に保持するバッファキャッシュを主記憶内に備え、IOパスの切り替え処理時、障害発生IOパスに含まれるノードが保持するバッファキャッシュを、新運用系IOパスに含まれるノードに転送することを特徴とする請求項1記載のファイルシステム。
  7. 前記物理ディスク装置が接続されているノードは、自ノードの状態にかかわりなく自ノードが備える主記憶内のデータを読み出し、読み出したデータを他のノードに転送する機能を持ったメモリアクセス手段を有し、IOパスの切り替え処理時、前記メモリアクセス手段を用いて、前記障害発生IOパスに含まれるノードの主記憶内に存在するバッファキャッシュを前記新運用系IOパスに含まれるノードに転送することを特徴とする請求項5記載のファイルシステム。
  8. 前記物理ディスク装置は、ディスクコントローラを有し、該ディスクコントローラは、ディスク領域との間で転送されるデータを一時的に保持するディスクキャッシュを備え、前記物理ディスク装置内の別のディスクコントローラが備えるディスクキャッシュに格納されたデータをディスク領域に書き戻す機能を有し、
    IOパスの切り替え処理時、前記使用不可能になったIOパスを使ってアクセスしていた物理ディスク装置内に設けられた前記使用不可能になったIOパスに含まれるディスクコントローラが備えるディスクキャッシュに格納されたデータのうち、前記ディスク領域に書き戻す必要のあるデータを、前記物理ディスク装置内に存在し、新運用系IOパスに含まれるディスクコントローラを使用して、前記ディスク領域に書き戻すように、新運用系IOパスに含まれるノードが新運用系IOパスに含まれるディスクコントローラに指示することを特徴とする請求項1記載のファイルシステム。
  9. IOパスの切り替え終了時、マウント構成ファイルを格納するディスク装置が接続されたノードのファイルサーバが前記マウント構成ファイルを更新し、前記使用不可能となったIOパスの使用可否情報を「使用不可」に書き換えることを特徴とする請求項8記載のファイルシステム。
  10. 使用不可能となっていたIOパスが再び使用できるようになったとき、前記複数のノードのある1つのノードのファイルサーバが、自ノードの論理ディスク管理テーブルに登録された前記IOパスの状態フラグを「使用不可」状態から「待機中」状態に更新し、前記ファイルサーバが他の全てのノードのファイルサーバと通信を行うことにより、全てのノードの論理ディスク管理テーブルに前記更新内容を複写した後、マウント構成ファイルを格納するディスク装置が接続されたノードのファイルサーバが、前記マウント構成ファイルに登録された前記IOパスの使用可否情報を「使用可」に書き換えることにより、前記IOパスを待機系IOパスとしてシステムに復旧させることを特徴とする請求項8記載のファイルシステム。
  11. 物理ディスク装置が接続されたノードに障害が発生したとき、前記ノードの障害を検出した他のノードのファイルサーバは、自ノードの論理ディスク管理テーブルを検索し、障害発生ノード番号から障害発生IOパス及び前記障害発生IOパスと同じ論理ディスクIDに対応付けられているIOパスのうち状態フラグが「待機中」であるIOパスの1つを新運用系IOパスとして求め、この新運用系IOパスに含まれるノードのファイルサーバにIOパスの切り替え処理を行うように要求し、前記要求を受けた前記ファイルサーバは、自ノードの論理ディスク管理テーブルを更新し、前記障害発生IOパスの状態フラグを「使用不可」とし、前記新運用系IOパスの状態フラグを「使用中」とした後、他の全てのノードのファイルサーバと通信を行い、前記論理ディスク管理テーブルの内容を全ノードの論理ディスク管理テーブルに複写することによって、前記物理ディスク装置へアクセスするためのIOパスを前記障害発生IOパスから前記新運用系IOパスに切り替えることを特徴とする請求項8記載のファイルシステム。
  12. IOパスの切り替え処理の間、前記障害発生IOパスに含まれるノードにアクセス要求を発行したファイルサーバは、前記アクセス要求がタイムアウトになった場合、論理ディスク管理テーブルを参照し論理ディスクIDからIOパスを求め直し、新しく求め直したIOパスを使用して、物理ディスク装置にアクセスし直すことを特徴とする請求項11記載のファイルシステム。
  13. 前記物理ディスク装置の少なくとも1つは、1つのマウントポイントに対して複数のIOパスと前記IOパスの利用可否情報を対応づける情報を1つのエントリに含むマウント構成ファイルを格納しており、
    システム立ち上げ時、前記マウント構成ファイルを格納する物理ディスク装置が接続されたノードのファイルサーバは、前記マウント構成ファイルを読み出し、前記マウント構成ファイルに記載されたエントリ毎に論理ディスク管理テーブルのエントリを作成し、
    前記マウント構成ファイルに利用可否情報が「使用可」と記載されたIOパスのうちいずれか1つを、論理ディスク管理テーブルに状態フラグが「使用中」のIOパスとして登録し、
    前記マウント構成ファイルに利用可否情報が「使用可」と記載された残りのIOパスを、論理ディスク管理テーブルに状態フラグが「待機中」のIOパスとして登録し、
    前記マウント構成ファイルに利用可否情報が「使用不可」と記載されたIOパスを、論理ディスク管理テーブルに状態フラグが「使用不可」のIOパスとして登録することを特徴とする請求項1記載のファイルシステム。
JP2000233291A 2000-08-01 2000-08-01 ファイルシステム Expired - Fee Related JP3992427B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2000233291A JP3992427B2 (ja) 2000-08-01 2000-08-01 ファイルシステム
US09/746,608 US6654769B2 (en) 2000-08-01 2000-12-20 File system for creating switched logical I/O paths for fault recovery
EP00127995A EP1179770B1 (en) 2000-08-01 2000-12-20 File system
US10/695,149 US7130868B2 (en) 2000-08-01 2003-10-27 File system for creating switched logical I/O paths for fault recovery
US11/527,363 US20070016751A1 (en) 2000-08-01 2006-09-25 File system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000233291A JP3992427B2 (ja) 2000-08-01 2000-08-01 ファイルシステム

Publications (2)

Publication Number Publication Date
JP2002049575A JP2002049575A (ja) 2002-02-15
JP3992427B2 true JP3992427B2 (ja) 2007-10-17

Family

ID=18725830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000233291A Expired - Fee Related JP3992427B2 (ja) 2000-08-01 2000-08-01 ファイルシステム

Country Status (3)

Country Link
US (3) US6654769B2 (ja)
EP (1) EP1179770B1 (ja)
JP (1) JP3992427B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100424481B1 (ko) * 2000-06-24 2004-03-22 엘지전자 주식회사 디지털 방송 부가서비스 정보의 기록 재생장치 및 방법과그에 따른 기록매체
KR100910972B1 (ko) * 2002-12-07 2009-08-05 엘지전자 주식회사 대화형 광디스크 장치에서의 재생 제어방법
US6725393B1 (en) * 2000-11-06 2004-04-20 Hewlett-Packard Development Company, L.P. System, machine, and method for maintenance of mirrored datasets through surrogate writes during storage-area network transients
US7512635B1 (en) * 2000-12-18 2009-03-31 Bmc Software, Inc. System and method for updating information on a computer system using a limited amount of space
US7016920B2 (en) * 2001-05-25 2006-03-21 International Business Machines Corporation Method for tracking relationships between specified file name and particular program used for subsequent access in a database
US6976039B2 (en) 2001-05-25 2005-12-13 International Business Machines Corporation Method and system for processing backup data associated with application, querying metadata files describing files accessed by the application
US7028079B2 (en) * 2001-05-25 2006-04-11 Lenovo (Singapore) Pte, Ltd. Method and apparatus for the automatic migration of applications and their associated data and configuration files
US20030033354A1 (en) * 2001-08-08 2003-02-13 Schulz Kenneth Joseph System and method for caching entitlement sets
US6832297B2 (en) * 2001-08-09 2004-12-14 International Business Machines Corporation Method and apparatus for managing data in a distributed buffer system
JP2003256147A (ja) * 2002-02-28 2003-09-10 Hitachi Ltd クラスタ型ディスクアレイ装置およびクラスタ型ディスクアレイ装置の運用方法
JP2003296290A (ja) * 2002-04-02 2003-10-17 Hitachi Ltd 記憶装置システム及びデータ転送方法
KR100930354B1 (ko) * 2002-06-18 2009-12-08 엘지전자 주식회사 대화형 광디스크 장치에서의 콘텐츠 정보 재생방법과,콘텐츠 제공서버에서의 콘텐츠 정보 제공방법
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
KR100920654B1 (ko) * 2002-12-09 2009-10-09 엘지전자 주식회사 대화형 광디스크 장치에서의 재생 제어방법
US20050010610A1 (en) * 2003-07-08 2005-01-13 Konica Minolta Business Technologies, Inc. File management system, file management apparatus and image forming apparatus
JP4291077B2 (ja) * 2003-07-29 2009-07-08 株式会社日立製作所 分散ストレージ装置のファイル管理方法及び分散ストレージシステム
US7457828B2 (en) * 2003-08-29 2008-11-25 Sap Ag System and method for synchronizing distributed buffers when committing data to a database
JP4383132B2 (ja) * 2003-09-02 2009-12-16 株式会社日立製作所 仮想化制御装置及び計算機システム
JP4349871B2 (ja) * 2003-09-09 2009-10-21 株式会社日立製作所 ファイル共有装置及びファイル共有装置間のデータ移行方法
JP4267421B2 (ja) * 2003-10-24 2009-05-27 株式会社日立製作所 リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
JP4012498B2 (ja) 2003-11-18 2007-11-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US7322010B1 (en) 2004-02-06 2008-01-22 Symantec Operating Corporation Graphical user interface for mapping computer resources
US7313719B1 (en) * 2004-02-06 2007-12-25 Symantec Operating Corporation Restore of backup to computer system with filesystem/volume attribute modification
JP4859348B2 (ja) * 2004-02-18 2012-01-25 大日本印刷株式会社 コンピュータシステム
US20050262296A1 (en) * 2004-05-20 2005-11-24 International Business Machines (Ibm) Corporation Selective dual copy control of data storage and copying in a peer-to-peer virtual tape server system
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US7991783B2 (en) * 2004-10-05 2011-08-02 International Business Machines Corporation Apparatus, system, and method for supporting storage functions using an embedded database management system
JP4448005B2 (ja) * 2004-10-22 2010-04-07 株式会社日立製作所 記憶システム
JP2006134207A (ja) * 2004-11-09 2006-05-25 Fujitsu Ltd ストレージ仮想化装置およびそれを用いたコンピュータシステム
US20060117008A1 (en) * 2004-11-17 2006-06-01 Kabushiki Kaisha Toshiba File management apparatus and file management program
JP4451293B2 (ja) 2004-12-10 2010-04-14 株式会社日立製作所 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
US7543305B2 (en) * 2005-03-24 2009-06-02 International Business Machines Corporation Selective event registration
US20070106700A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Hierarchical file system naming
JP4472646B2 (ja) * 2006-02-10 2010-06-02 エヌイーシーコンピュータテクノ株式会社 システム制御装置、システム制御方法及びシステム制御プログラム
JP4585463B2 (ja) * 2006-02-15 2010-11-24 富士通株式会社 仮想計算機システムを機能させるためのプログラム
US7882539B2 (en) * 2006-06-02 2011-02-01 Microsoft Corporation Abstracting security policy from, and transforming to, native representations of access check mechanisms
JP4872547B2 (ja) * 2006-09-07 2012-02-08 カシオ計算機株式会社 コンピュータ、周辺機器接続管理方法及びプログラム
US8132186B1 (en) 2007-03-23 2012-03-06 Symantec Corporation Automatic detection of hardware and device drivers during restore operations
US7886185B1 (en) 2007-03-23 2011-02-08 Symantec Corporation Creation of a device database and synthesis of device driver information during dissimilar system restore
US7769990B1 (en) 2007-03-23 2010-08-03 Symantec Corporation Using a monitoring process to update system configuration settings during restore operations
JPWO2008139521A1 (ja) * 2007-04-27 2010-07-29 富士通株式会社 リモートファイルシステム、端末装置およびサーバ装置
US9075809B1 (en) * 2007-09-29 2015-07-07 Symantec Corporation Methods and systems for application cluster virtual nodes
US9152817B1 (en) 2007-10-31 2015-10-06 Symantec Corporation Methods and systems for performing data protection operations
JP5146032B2 (ja) * 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
US7844757B2 (en) * 2008-06-12 2010-11-30 International Machines Business Corporation Method and system for providing multiple paths to user data stored on a SCSI disk
JP5352132B2 (ja) * 2008-06-19 2013-11-27 株式会社日立製作所 計算機システム及びそのi/o構成変更方法
JP2010146087A (ja) * 2008-12-16 2010-07-01 Hitachi Ltd 系切替計算機システムの管理方法
JP4743282B2 (ja) * 2009-01-26 2011-08-10 横河電機株式会社 冗長化入出力モジュール
US8326802B2 (en) 2009-06-11 2012-12-04 International Business Machines Corporation File system location verification using a sentinel
US8346721B2 (en) * 2009-07-15 2013-01-01 International Business Machines Corporation Apparatus and method to replicate remote virtual volumes to local physical volumes
US8918534B2 (en) * 2009-09-29 2014-12-23 Cleversafe, Inc. Writing data slices to ready and non-ready distributed storage units in a distributed storage network
US8484256B2 (en) * 2010-01-13 2013-07-09 International Business Machines Corporation Transformation of logical data objects for storage
JP2012208896A (ja) * 2011-03-30 2012-10-25 Nec Corp ディスクアレイ装置、接続経路制御方法、及び接続経路制御プログラム
CN102790784A (zh) * 2011-05-18 2012-11-21 阿里巴巴集团控股有限公司 分布式缓存方法及***、缓存解析方法及解析***
US9122711B1 (en) 2012-05-24 2015-09-01 Symantec Corporation Simplified system backup protection and recovery
JP6005446B2 (ja) * 2012-08-31 2016-10-12 富士通株式会社 ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法
WO2014038334A1 (ja) * 2012-09-05 2014-03-13 三菱電機株式会社 入出力応答制御設定装置
US9430545B2 (en) * 2013-10-21 2016-08-30 International Business Machines Corporation Mechanism for communication in a distributed database
US9992237B1 (en) * 2014-03-28 2018-06-05 Amazon Technologies, Inc. Determining feature unavailability
JP6462116B2 (ja) * 2015-04-30 2019-01-30 株式会社日立製作所 管理装置および管理方法
CN106933872A (zh) * 2015-12-30 2017-07-07 阿里巴巴集团控股有限公司 一种通过传统文件***接口访问云存储服务的方法及装置
US11223537B1 (en) 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
US20180095788A1 (en) * 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
CN106708445B (zh) * 2017-01-19 2019-09-17 北京腾凌科技有限公司 链路选择方法及装置
US11003372B2 (en) * 2018-05-31 2021-05-11 Portworx, Inc. Protecting volume namespaces from corruption in a distributed container orchestrator
JP7094364B2 (ja) * 2018-07-17 2022-07-01 華為技術有限公司 I/o要求処理方法およびデバイス
US10802717B2 (en) * 2018-08-20 2020-10-13 Dell Products L.P. Systems and methods for efficient firmware inventory of storage devices in an information handling system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0680492B2 (ja) * 1984-09-29 1994-10-12 株式会社日立製作所 エラー回復方法
US5197069A (en) * 1989-10-20 1993-03-23 International Business Machines Corp. Method and system for detecting and recovering from switching errors
JPH0792733B2 (ja) 1990-07-10 1995-10-09 富士通株式会社 磁気ディスクシステム
JP3300399B2 (ja) 1992-02-28 2002-07-08 株式会社東芝 計算機システムおよびファイル管理方法
JP2953639B2 (ja) 1992-12-02 1999-09-27 株式会社日立製作所 バックアップ装置及びその方法
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
JPH06332782A (ja) 1993-03-22 1994-12-02 Hitachi Ltd ファイルサーバシステム及びそのファイルアクセス制御方法
US5367669A (en) * 1993-03-23 1994-11-22 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
JPH086839A (ja) 1994-06-20 1996-01-12 Nec Corp 分散ファイルシステム
ES2139924T3 (es) * 1994-08-12 2000-02-16 British Telecomm Procedimiento de configuracion para un sistema de gestion de datos.
DE69521101T2 (de) * 1994-10-31 2001-10-18 Ibm Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
US5845061A (en) * 1994-10-31 1998-12-01 Hitachi, Ltd. Redundant client server system
JPH08314843A (ja) 1995-05-22 1996-11-29 Hitachi Ltd 計算機システム
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
JP2912221B2 (ja) 1996-03-27 1999-06-28 日本電気通信システム株式会社 分散ネットワーク化ストライプド・ファイルシステム
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US6185601B1 (en) * 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US5845081A (en) * 1996-09-03 1998-12-01 Sun Microsystems, Inc. Using objects to discover network information about a remote network having a different network protocol
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
JPH10187516A (ja) 1996-12-24 1998-07-21 Canon Inc 電子ファイリング方法及び装置並びに記憶媒体
US6151684A (en) * 1997-03-28 2000-11-21 Tandem Computers Incorporated High availability access to input/output devices in a distributed system
JP3085239B2 (ja) 1997-03-28 2000-09-04 日本電気株式会社 基本処理装置の二重化方式
US5944838A (en) * 1997-03-31 1999-08-31 Lsi Logic Corporation Method for fast queue restart after redundant I/O path failover
US6366988B1 (en) * 1997-07-18 2002-04-02 Storactive, Inc. Systems and methods for electronic data storage management
US6219693B1 (en) * 1997-11-04 2001-04-17 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
US6145028A (en) * 1997-12-11 2000-11-07 Ncr Corporation Enhanced multi-pathing to an array of storage devices
US6105122A (en) * 1998-02-06 2000-08-15 Ncr Corporation I/O protocol for highly configurable multi-node processing system
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
JP3726484B2 (ja) * 1998-04-10 2005-12-14 株式会社日立製作所 記憶サブシステム
US5964886A (en) 1998-05-12 1999-10-12 Sun Microsystems, Inc. Highly available cluster virtual disk system
US6353878B1 (en) * 1998-08-13 2002-03-05 Emc Corporation Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem
JP3918394B2 (ja) * 2000-03-03 2007-05-23 株式会社日立製作所 データ移行方法
US6629189B1 (en) * 2000-03-09 2003-09-30 Emc Corporation Method and apparatus for managing target devices in a multi-path computer system
US6643795B1 (en) * 2000-03-30 2003-11-04 Hewlett-Packard Development Company, L.P. Controller-based bi-directional remote copy system with storage site failover capability

Also Published As

Publication number Publication date
EP1179770B1 (en) 2012-08-29
EP1179770A3 (en) 2007-03-14
US20040093358A1 (en) 2004-05-13
US20020016792A1 (en) 2002-02-07
US7130868B2 (en) 2006-10-31
EP1179770A2 (en) 2002-02-13
US20070016751A1 (en) 2007-01-18
US6654769B2 (en) 2003-11-25
JP2002049575A (ja) 2002-02-15

Similar Documents

Publication Publication Date Title
JP3992427B2 (ja) ファイルシステム
US7519851B2 (en) Apparatus for replicating volumes between heterogenous storage systems
JP4108973B2 (ja) バックアップシステム
US6789122B1 (en) Mechanism for reliable update of virtual disk device mappings without corrupting data
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
US6345368B1 (en) Fault-tolerant access to storage arrays using active and quiescent storage controllers
JP4165747B2 (ja) 記憶システム、制御装置及び制御装置のプログラム
US6862632B1 (en) Dynamic RDF system for transferring initial data between source and destination volume wherein data maybe restored to either volume at same time other data is written
US6173413B1 (en) Mechanism for maintaining constant permissions for multiple instances of a device within a cluster
US6446219B2 (en) Highly available cluster message passing facility
US8001344B2 (en) Storage control apparatus, storage control program, and storage control method
JP2005537530A (ja) 仮想記憶装置
US7827367B2 (en) Backup control method for acquiring plurality of backups in one or more secondary storage systems
US7836162B2 (en) Transaction processing system and transaction processing method
US20120290787A1 (en) Remote copy method and remote copy system
US20080250079A1 (en) Storage subsystem
US20090150630A1 (en) Computer system and control method for the computer system
JP2007133471A (ja) ストレージ装置及びスナップショットのリストア方法
JP2004252686A (ja) 情報処理システム
JP2003516582A (ja) スケーラブルな記憶アーキテクチャ
US20060184502A1 (en) Method for file level remote copy of a storage device
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP4278452B2 (ja) 計算機システム
US20030093635A1 (en) Distributed background track processing
JP2008108145A (ja) 計算機システム及びこれを用いたデータの管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061204

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070724

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees