JP2008077290A - 情報処理装置及び情報処理方法並びにストレージシステム - Google Patents
情報処理装置及び情報処理方法並びにストレージシステム Download PDFInfo
- Publication number
- JP2008077290A JP2008077290A JP2006254113A JP2006254113A JP2008077290A JP 2008077290 A JP2008077290 A JP 2008077290A JP 2006254113 A JP2006254113 A JP 2006254113A JP 2006254113 A JP2006254113 A JP 2006254113A JP 2008077290 A JP2008077290 A JP 2008077290A
- Authority
- JP
- Japan
- Prior art keywords
- file
- data
- cache area
- stored
- storage
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0686—Libraries, e.g. tape libraries, jukebox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】論理デバイスの切替え処理が頻発することに起因するストレージ装置のデータの読書き性能の低下を防止し得る情報処理装置及び情報処理方法並びにストレージシステムを提案する。
【解決手段】記憶デバイスが提供する記憶領域上にキャッシュ領域を作成すると共に、上位装置に提供する仮想的な論理ユニットと、上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置における論理ユニット及び論理デバイス間のマッピングの切り替えを必要に応じてストレージ装置に要求し、必要なファイルのデータをストレージ装置内の対応する論理デバイスから読み出してキャッシュ領域に格納し、上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、キャッシュ領域に格納された当該ファイルのデータに対して行うようにした。
【選択図】図3
【解決手段】記憶デバイスが提供する記憶領域上にキャッシュ領域を作成すると共に、上位装置に提供する仮想的な論理ユニットと、上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置における論理ユニット及び論理デバイス間のマッピングの切り替えを必要に応じてストレージ装置に要求し、必要なファイルのデータをストレージ装置内の対応する論理デバイスから読み出してキャッシュ領域に格納し、上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、キャッシュ領域に格納された当該ファイルのデータに対して行うようにした。
【選択図】図3
Description
本発明は、情報処理装置及び情報処理方法並びにストレージシステムに関し、特に、ジュークボックス機能が搭載されたストレージ装置を備えるストレージシステムに適用して好適なものである。
従来、ストレージ装置として、上位装置に仮想的な記憶領域である論理ユニット(以下、これを仮想論理ユニットと呼ぶ)を提示し、上位装置から与えられる仮想論理ユニットに対するデータ入出力要求に応じて、対応するデータの読み書きを当該仮想論理ユニットに割り当てられた論理デバイス(LDEV:Logical Device)に対して行う機能が搭載されたものがある。
また近年では、ストレージ装置として、かかる仮想論理ユニットに対する論理デバイスの割り当てを、上位装置に搭載されたアプリケーションプログラムからの要求に応じて動的に変更するLDEVジュークボックス機能と呼ばれる機能が搭載されたものも実用化されている(特許文献1及び特許文献2を参照)。このようなLDEVジュークボックス機能によれば、OS(Operating System)が管理可能な論理ユニット数を超える論理デバイス数を取り扱うことができる。
特開2005−209149号公報
特開2006−107257号公報
しかしながら、かかるLDEVジュークボックス機能によると、上述のような論理デバイスの切替え処理時に論理デバイスに対するデータ入出力処理を行うことができない。このため、ある仮想論理ユニットに割り当てる論理デバイスとして複数のアプリケーションプログラムがそれぞれ異なる論理デバイスを要求した場合、かかる論理デバイスの切替え処理が頻発し、そのオーバヘッドによって、ストレージ装置のデータの読書き性能が一時的に低下する問題があった。
また、かかるLDEVジュークボックス機能によると、上位装置のアプリケーションプログラムが仮想論理ユニットにアクセスしている最中は当該仮想論理ユニットに割り当てられた論理デバイスが切り替わらないように、アプリケーションプログラム間で排他処理を行う必要があり、その分、上位装置の負荷が大きくなる問題があった。
本発明は以上の点を考慮してなされたもので、論理デバイスの切替え処理が頻発することに起因するストレージ装置のデータの読書き性能の低下を防止し得る情報処理装置及び情報処理方法並びにストレージシステムを提案しようとするものである。
かかる課題を解決するため本発明においては、情報処理装置において、データを記憶するための記憶領域を提供する記憶デバイスと、当該記憶領域上にキャッシュ領域を作成すると共に、上位装置に提供する仮想的な論理ユニットと、前記上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置における前記論理ユニット及び前記論理デバイス間のマッピングの切り替えを必要に応じて前記ストレージ装置に要求し、必要なファイルのデータを前記ストレージ装置内の対応する前記論理デバイスから読み出して前記キャッシュ領域に格納し、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、前記キャッシュ領域に格納された当該ファイルのデータに対して行う処理部とを設けるようにした。
この結果、この情報処理装置によれば、ファイルのデータが記憶デバイス上に存在する限りは、そのファイルへのアクセスが記憶デバイス上のデータに対して行われるため、ストレージ装置において論理ユニットと論理デバイスとのマッピングの切替え処理が頻発することを有効に防止することができる。
また本発明においては、情報処理方法において、記憶デバイスが提供する記憶領域上にキャッシュ領域を作成すると共に、上位装置に提供する仮想的な論理ユニットと、前記上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置における前記論理ユニット及び前記論理デバイス間のマッピングの切り替えを必要に応じて前記ストレージ装置に要求し、必要なファイルのデータを前記ストレージ装置内の対応する前記論理デバイスから読み出して前記キャッシュ領域に格納する第1のステップと、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、前記キャッシュ領域に格納された当該ファイルのデータに対して行う第2のステップとを設けるようにした。
この結果、この情報処理方法によれば、ファイルのデータが記憶デバイス上に存在する限りは、そのファイルへのアクセスが記憶デバイス上のデータに対して行われるため、ストレージ装置において論理ユニットと論理デバイスとのマッピングの切替え処理が頻発することを有効に防止することができる。
さらに本発明においては、ストレージシステムにおいて、上位装置に提供する仮想的な論理ユニットと、前記上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置と、所定の記憶デバイスが提供する記憶領域上にキャッシュ領域を作成すると共に、前記論理ユニット及び前記論理デバイス間のマッピングの切り替えを必要に応じて前記ストレージ装置に要求し、必要なファイルのデータを前記ストレージ装置内の対応する前記論理デバイスから読み出して前記キャッシュ領域に格納し、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、前記キャッシュ領域に格納された当該ファイルのデータに対して行うサーバ装置とを設けるようにした。
この結果、このストレージシステムでは、ファイルのデータがサーバ装置の記憶デバイス上に存在する限りは、そのファイルへのアクセスが記憶デバイス上のデータに対して行われるため、ストレージ装置において論理ユニットと論理デバイスとのマッピングの切替え処理が頻発することを有効に防止することができる。
本発明によれば、論理デバイスの切替え処理が頻発することに起因するストレージ装置のデータの読書き性能の低下を防止することができる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態による計算機システムの構成
図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、上位装置としてのファイルアクセスクライアント2と、ファイル共有サーバ3及びストレージ装置4からなるストレージシステム6と、管理装置5とから構成されている。そしてファイルアクセスクライアント2は、ファイル共有サーバ3を介してストレージ装置4と接続されると共に、ファイル共有サーバ3及びストレージ装置4が管理装置5と接続されている。
(1−1)本実施の形態による計算機システムの構成
図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、上位装置としてのファイルアクセスクライアント2と、ファイル共有サーバ3及びストレージ装置4からなるストレージシステム6と、管理装置5とから構成されている。そしてファイルアクセスクライアント2は、ファイル共有サーバ3を介してストレージ装置4と接続されると共に、ファイル共有サーバ3及びストレージ装置4が管理装置5と接続されている。
ファイルアクセスクライアント2は、ユーザが利用し、ファイル共有サーバ3に対してファイルアクセスを要求する端末であり、パーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。このファイルアクセスクライアント3は、CPU(Central Processing Unit)及びメモリ等の情報処理資源のほか、キーボード、スイッチ、ポインティングデバイス及び又はマイクロフォン等の情報入力装置(図示せず)や、モニタディスプレイやスピーカ等の情報出力装置(図示せず)などの情報出力装置を備える。
ファイル共有サーバ3は、ファイルアクセスクライアント2からファイルアクセス要求を受けてサービスを提供するサーバであり、NFS(Network File System)サーバや、CIFS(Common Internet File System)サーバなどから構成される。ファイル共有サーバ3は、ネットワークインタフェース部10、CPU11、メモリ12及びストレージインタフェース部13を備えており、これらがバス14を介して相互に通信可能な状態に接続されている。
ネットワークインタフェース部10は、例えばSCSI(Small Computer System Interface)カードやLAN(Local Area Network)インタフェースカード等のネットワークインタフェースカードから構成され、ファイルアクセスクライアント2をストレージ装置4に接続するためのデータ入出力アダプタとして用いられる。
CPU11は、ファイル共有サーバ3全体の動作制御を司るプロセッサであり、メモリ12に格納された各種プログラムに基づいて、各種の制御処理を実行する。
メモリ12は、主として各種アプリケーションプログラム20や、各種制御プログラム及び各種管理テーブルを保持するために使用される。後述のファイルシステムプログラム21及びキャッシュ制御プログラム22や、LDEVマッピングテーブル23、LDEVキャッシュ管理テーブル24、論理ユニット割当て管理テーブル25、ファイルディスクリプタ管理テーブル26及びキャッシュ領域管理テーブル27などもこのメモリ12に保持される。またメモリ12には、後述のように、ストレージ装置4から読み出したファイルデータを保持するためのLDEVキャッシュ領域28が作成される。
ストレージ装置4は、ファイル共有サーバ3に提供する仮想的な記憶領域である仮想論理ユニット47(図2)と、ストレージ装置4が管理する論理的な記憶デバイスである論理デバイス46(図2)とのマッピングを動的に切替えるLDEVジュークボックス機能が搭載された大容量のデータ記憶装置である。このストレージ装置4は、複数のディスクデバイス30からなるディスクデバイス部31と、ディスクデバイス部31内の各ディスクデバイス31を制御するコントローラ32とから構成される。
各ディスクデバイス30は、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスク、又はSATA(Serial AT Attachment)ディスクや光ディスク等の安価なディスクなどの安価なディスクから構成される。これらディスクデバイス30は、コントローラ32によりRAID(Redundant Array of Inexpensive Disks)方式で運用される。なお、ディスクデバイス30に代えて、例えばフラッシュメモリなどの半導体メモリを適用するようにしても良い。
図2に示すように、1又は複数のディスクデバイス30が提供する物理的な記憶領域上に、1又は複数の論理デバイス46(LDEV1,LDEV2,……)が定義され、これら論理デバイス46がストレージ装置4内に設定された仮想論理ユニット47(LU1,LU2,……)にマッピング(割り当て)される。そしてファイルアクセスクライアント2から仮想論理ユニット47を指定したデータ入出力要求が送信されてきた場合、その仮想論理ユニット47にマッピングされた論理デバイス46に対して対応するデータの読書き処理が行われる。
コントローラ32は、ストレージインタフェース部40、メモリ41、CPU42及びネットワークインタフェース部43がバス44を介して接続されることにより構成される。
ストレージインタフェース部40は、ファイル共有サーバ3との間で行われるデータ送受信時のインタフェースとして機能する。またメモリ41は、上述のLDEVジュークボックス機能を提供する制御プログラム(以下、これをジュークボックス制御プログラムと呼ぶ)45を含む各種制御プログラムを保持するために使用されるほか、CPU42のワークメモリとして用いられる。
CPU42は、ストレージ装置4全体の動作制御を司るプロセッサであり、メモリ41に格納された各種制御プログラムに基づいてストレージインタフェース部40、ネットワークインタフェース部43及びディスクデバイス部31を制御する。
ネットワークインタフェース部43は、ファイル共有サーバ3のネットワークインタフェース部10と同様に、例えばSCSIカードやLANインタフェースカード等のネットワークインタフェースカードから構成され、ストレージ装置5を管理装置5に接続するためのアダプタとして機能する。
管理装置5は、システム管理者がファイル共有サーバ3及びストレージ装置4を管理するために利用する端末であり、パーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。
この管理装置5は、バス53を介して相互に接続されたネットワークインタフェース部50、CPU51及びメモリ52を備えて構成されており、ネットワークインタフェース部50を通じてファイル共有サーバ3及びストレージ装置4と接続されている。メモリ52には、管理プログラム54等の各種制御プログラムが格納されており、CPU51が、これら制御プログラムを実行することにより、管理装置5全体として各種の処理を実行する。
(1−2)本実施の形態によるLDEV切替え制御機能
次に、かかる計算機システム1に採用された本実施の形態によるLDEV切替え制御機能について説明する。
次に、かかる計算機システム1に採用された本実施の形態によるLDEV切替え制御機能について説明する。
この計算機システム1では、図3に示すように、ファイル共有サーバ3上で動作するアプリケーションプログラム20がストレージ装置4に格納されたファイルにアクセスする場合に、そのファイルのデータ(ファイルデータ)FDをストレージ装置4からファイル共有サーバ3内のメモリ12内に作成した所定容量の記憶領域(以下、これをLDEVキャッシュ領域と呼ぶ)28に読み出し、この後そのファイルに対するアクセスをこのLDEVキャッシュ領域28に読み出したファイルデータFDに対して行う点を特徴の1つとしている。言い換えると、ファイル共有サーバ3は、アプリケーションプログラム20ごと又はファイルごとに、LDEVキャッシュ領域28の一部の領域が割り当てられるファイル共有サーバである。
これによりこの計算機システム1では、かかるLDEVキャッシュ領域28内にファイルデータが存在する間は、アプリケーションプログラム20(図2)のファイルアクセスがLDEVキャッシュ領域28に対して行われるため、ストレージ装置4内において、LDEVジュークボックス機能による仮想論理ユニット47にマッピングする論理デバイス46の切り替えが行われるのを回避することができる。この結果、かかるLDEVジュークボックス機能による仮想論理ユニット47にマッピングする論理デバイス46の切り替え回数を低減することができ、当該論理デバイス46の切替え処理に関するオーバヘッドを低減することができる。
またこの計算機システム1では、ファイルシステムプログラム21(図1)が仮想論理ユニット47に対する論理デバイス46のマッピングを管理する。これによりこの計算機システム1では、ファイル共有サーバ3のアプリケーションプログラム20が仮想論理ユニット47にマッピングする論理デバイス46の切り替えを意識することなく、通常のファイルアクセスと同じアクセス方法で所望するファイルにアクセスすることができる。
具体的には、この計算機システム1では、あるアプリケーションプログラム20が仮想論理ユニット47にマッピングされている論理デバイス46にアクセス中に、他のアプリケーションプログラム20がそのマッピングを変更しないように、アプリケーションプログラム20自身で排他処理を行う必要がない。つまり、複数のアプリケーションプログラム20が異なる論理デバイス46に同一の仮想論理ユニット47を用いてアクセスする場合、アプリケーションプログラム20に特別な変更を加えずに、LDEVジュースボックス機能を利用することができる。
このようなLDEV切替え制御機能を提供するための手段として、ファイル共有サーバ3のメモリ12には、図1に示すように、LDEVマッピングテーブル23、LDEVキャッシュ管理テーブル24、LU割当て管理テーブル25、ファイルディスクリプタ管理テーブル26及びキャッシュ領域管理テーブル27が格納されている。
LDEVマッピングテーブル23は、ストレージ装置4にマウントされたファイルシステムFS(図2)ごとのマウントパスと、論理デバイス46及び仮想論理ユニット47との間のマッピング関係を管理するためのテーブルであり、図4に示すように、「マウントパス」欄23A、「LDEV番号」欄23B、「割当てLU番号」欄23C及び「LDEVキャッシュ管理テーブルポインタ」欄23Dから構成される。
このうち「マウントパス」欄23Aには、対応するファイルシステムFSへのパスが格納される。すなわち、本実施の形態の場合、論理デバイス46ごとに1つのファイルシステムFSがそれぞれ作成され、これら作成されたファイルシステムFSが、ファイル共有サーバ3が管理するファイルパスの一部に接木のようにマウントされる。そして、LDEVマッピングテーブル23の「マウントパス」欄23Aには、このようにマウントされた対応するファイルシステムFS(論理デバイス46)へのパスが格納される。
また「LDEV番号」欄23Bには、そのファイルシステムFSのデータが格納された論理デバイス46の識別番号(以下、これをLDEV番号と呼ぶ)が格納され、「割当てLU番号」欄23Cには、そのときその論理デバイス46がマッピングされている仮想論理ユニット47の識別番号(以下、これをLU番号と呼ぶ)が格納される。ただし、そのときその論理デバイス46が仮想論理ユニット47にマッピングされていない場合には、これを表す所定の情報(「−」)が格納される。さらに「LDEVキャッシュ管理テーブルポインタ」欄23Dには、そのファイルシステムFSに対応する後述のLDEVキャッシュ管理テーブル24へのポインタが格納される。
従って、例えば図4の場合、あるファイルシステムFSへのマウントパスは「/mnt/fs1」 であり、そのファイルシステムFSのデータはLDEV番号が「1」の論理デバイス46に格納され、その論理デバイス46はLU番号が「16」の仮想論理ユニット47にマッピングされ、そのファイルシステムFSについて作成されたLDEVキャッシュ管理テーブル24へのポインタは「1」であることが示されている。
一方、LDEVキャッシュ管理テーブル24は、あるファイルシステムFSに属する各ファイルがLDEVキャッシュ領域28に読み出されているか否か等を管理するためのテーブルである。本実施の形態においては、上述のように1つの論理デバイス46内に1つのファイルシステムFSのデータが格納される(1つのファイルシステムFSが1つの論理デバイス46に対応する)ため、このLDEVキャッシュ管理テーブル24はファイルシステムFS(論理デバイス46)ごとに作成されることになる。
このLDEVキャッシュ管理テーブル24は、図5に示すように、「ファイルパス」欄24A、「オンメモリフラグ」欄24B、「Syncフラグ」欄24C、「参照カウンタ」欄24D及び「キャッシュ領域アドレス欄」24Eから構成される。
そして「ファイルパス」欄24Aには、対応するファイルへのローカルパス(ファイルパス)が格納される。従って、LDEVマッピングテーブル23の「マウントパス」欄23Aに格納されたマウントパスと、対応するLDEVキャッシュ管理テーブル24の「ファイルパス」欄24Aに格納されたファイルパスとを組み合わせることによって、ルートディレクトリからそのファイルへの全体パス(フルパス)を得ることができる。
例えば図4に示すLDEVマッピングテーブル23の1行目のレコードに対応するファイルシステムFSと、図5に示すLDEVキャッシュ管理テーブル24とが対応する場合において、LDEVキャッシュ管理テーブル24の2行目のレコードに対応するファイルへのフルパスは、かかるLDEVマッピングテーブル23の対応する「マウントパス」欄(1行目の「マウントパス」欄)23Aに格納されたマウントパス「/mnt/fs1」と、かかるLDEVキャッシュ管理テーブル24の対応する「ファイルパス」欄(2行目の「ファイルパス」欄)24Aに格納された「aa/cc/b.doc」とを組み合わせた「/mnt/fs1/aa/cc/b.doc」となる。
また「オンメモリフラグ」欄24Bには、対応するファイルのデータがファイル共有サーバ3のメモリ12に保持されているか否かを表すフラグが格納される。例えば図5の場合、現在、LDEVキャッシュ管理テーブル24の1行目のレコードに対応するファイルのデータはファイル共有サーバ3のメモリ12内に存在せず、これに対してLDEVキャッシュ管理テーブル24の2行目及び3行目のレコードにそれぞれ対応する各ファイルのデータはファイル共有サーバ3のメモリ12に保持されていることが示されている。
さらに「Syncフラグ」欄24Cには、ファイル共有サーバ3のメモリ12に読み出されたそのファイルのデータと、ストレージ装置4内の対応する論理デバイス46に格納されたデータとが同期しているか否か(すなわち一致しているか否か)を表す情報が格納される。具体的には、後述のように、かかるファイルのデータをファイル共有サーバ3のメモリ12内に作成されたLDEVキャッシュ領域28に読み出した段階で「Syncフラグ」欄24Cに「1」が格納(同期がとれている)され、そのLDEVキャッシュ領域28に読み出されたデータが更新されたときに当該「Syncフラグ」欄24Cに「0」が格納(同期がとれていない)されることとなる。
さらに「参照カウンタ」欄24Dには、そのファイルを参照しているアプリケーションプログラム20の数が格納される。従って、図5の例では、1行目のレコードに対応するファイルはいずれのアプリケーションプログラム20にも参照されておらず、これに対して2行目のレコードに対応するファイルは3つのアプリケーションプログラム20に参照されていることが示されている。
さらに「キャッシュ領域アドレス」欄24Eには、ファイル共有サーバ3のメモリ12内に作成されたLDEVキャッシュ領域28におけるそのファイルのデータが格納されている記憶領域(以下、これをキャッシュ領域と呼ぶ)28A(図3)のアドレスが格納される。本実施の形態の場合、かかるメモリ12は所定大きさ(例えば4キロバイト)のブロック単位で管理されるため、「キャッシュ領域アドレス」欄24には、かかるファイルのデータが格納されたブロックのアドレスが格納されることとなる。この場合において、例えばそのファイルのデータ量が大きく、当該ファイルのデータが複数のブロックに跨って格納される場合には、各ブロックのアドレスがそれぞれ「キャッシュ領域アドレス」欄24Eに格納される。
図5の例では、1行目のレコードに対応するファイルのデータは、メモリ12上にあるため、アドレスを「0x0000」に設定する。また図5では、2行目のレコードに対応するファイルのデータは、ファイル共有サーバ3のメモリ12におけるアドレスが「0xFFB2」及び「0xFF40」の2つのブロックに跨って格納されていることが示されている。
他方、論理ユニット割当て管理テーブル25は、LDEVジュークボックス機能で使用する仮想論理ユニット47を管理するためのテーブルであり、図6に示すように、「LU番号」欄25A及び「使用中フラグ」欄25Bから構成される。
このうち「LU番号」欄25Aには、LDEVジュークボックス機能で利用可能な仮想論理ユニット47のLU番号が格納され、「使用中フラグ」欄25Bには、その仮想論理ユニット47が現在使用中、つまりいずれかの論理デバイス46がマッピングされているか否かを表すフラグが格納される。
従って、図6の例では、LDEVジュークボックス機能で使用可能な仮想論理ユニット47として、それぞれLU番号が「15」、「16」、「19」又は「21」のものが存在し、これら仮想論理ユニット47のうち、LU番号が「15」及び「21」の仮想論理ユニット47には現在いずれの論理デバイス46もマッピングされておらず、LU番号が「16」及び「19」の仮想論理ユニット47には現在いずれかの論理デバイス46がマッピングされていることが示されている。
ファイルディスクリプタ管理テーブル26は、ファイル共有サーバ3に実装されたアプリケーションプログラム20が起動されたときにファイルシステムプログラム21(図1)によって作成されるテーブルであり、そのアプリケーションプログラム20がファイルをオープンする際にファイルシステムプログラム21が当該ファイルに対して割り当てる識別番号である、いわゆるファイルディスクリプタを管理するために用いられる。
このファイルディスクリプタ管理テーブル26は、図7に示すように、「ファイルディスクリプタ」欄26A、「LDEVキャッシュ管理テーブルレコードポインタ」欄26B、「LDEVマッピングテーブルレコードポインタ」欄26C及び「使用フラグ」欄26Dから構成される。
そして「ファイルディスクリプタ」欄26Aには、対応するファイルをオープンしたときに割り当てたファイルディスクリプタが格納され、「LDEVキャッシュ管理テーブルレコードポインタ」欄26Bには、そのファイルに対応するLDEVキャッシュ管理テーブル24上のレコードへのポインタが格納される。
また「LDEVマッピングテーブルレコードポインタ」欄26Cには、そのファイルに対応するLDEVマッピングテーブル23上のレコードへのポインタが格納され、「使用フラグ」欄26Dには、対応するファイルが現在オープンしているか否かを表す情報が格納される。具体的には、対応するファイルがオープンしているときには、「使用フラグ」欄26Dに「1」が格納され、当該ファイルがオープンしていないときには「使用フラグ」欄26Dに「0」が格納される。
従って、図7の例では、ファイルディスクリプタとして「1」が付与されたファイルは、LDEVキャッシュ管理テーブル24上の「2」番目のレコード及びLDEVマッピングテーブル23の「1」番目のレコードとそれぞれ対応し、現在、そのファイルはオープンしていることが示されている。
これに対してキャッシュ領域管理テーブル27は、ファイル共有サーバ3のメモリ12の使用状況をブロック領域単位で管理するためのテーブルであり、図8に示すように、「キャッシュ領域」欄27A及び「使用中フラグ」欄27Bから構成されている。
そして「キャッシュ領域」欄27Aには、かかるメモリ12内に作成されたLDEVキャッシュ領域28(図1)内に存在する各ブロックのアドレスがそれぞれ格納され、「使用中フラグ」欄27Bには、現在、対応するブロックが使用中であるか否か(当該ブロックにファイルデータが格納されているか否か)を表す情報が格納される。具体的には、対応するブロックが使用中であるときには、「使用フラグ」欄27Bに「1」が格納され、当該ブロックが使用中でないときには、「使用フラグ」欄27Bに「0」が格納される。
従って、図8の例では、アドレスが「0xF000」及び「0xF004」の各ブロックは現在使用中であり、アドレスが「0xFFFF」のブロックは現在使用されていないことが示されている。
なお、ファイルディスクリプタ管理テーブル26、LDEVマッピングテーブル23及びLDEVキャッシュ管理テーブル24の相関関係を図9に示す。
上述のようにファイルディスクリプタ管理テーブル26は、ファイル共有サーバ3に実装されたアプリケーションプログラム20ごとに存在し、LDEVキャッシュ管理テーブル24はストレージ装置4内に設けられた論理デバイス46(ファイルシステムFS)ごとに存在する。またLDEVマッピングテーブル23は、1つのみ存在する。
そして、このファイルディスクリプタ管理テーブル26上の1つのレコードと、LDEVマッピングテーブル23上の1つのレコードと、対応するLDEVキャッシュ管理テーブル24上の1つのレコードとがファイルディスクリプタ管理テーブル26上の対応するポインタによって関連付けられ、ファイルディスクリプタ管理テーブル26上の1つのレコードと、対応するLDEVキャッシュ管理テーブル24とがLDEVマッピングテーブル24のポインタによって関連付けられている。
(1−3)LDEV切替え制御機能に関する具体的処理内容
(1−3−1)アプリケーションプログラムに基づくCPUの具体的な処理内容
図10は、本実施の形態によるLDEV切替え制御機能に関して、ファイル共有サーバ3のCPU11がアプリケーションプログラム20に基づき実行する処理の具体的な内容を示すフローチャートである。
(1−3−1)アプリケーションプログラムに基づくCPUの具体的な処理内容
図10は、本実施の形態によるLDEV切替え制御機能に関して、ファイル共有サーバ3のCPU11がアプリケーションプログラム20に基づき実行する処理の具体的な内容を示すフローチャートである。
CPU11は、例えば対象とするファイルを特定したファイルアクセス要求がファイルアクセスクライアント2から与えられると、この図10に示すアプリケーションプログラム処理を開始し(SP0)、まず、アプリケーションプログラム20に基づいて、かかるファイルアクセス要求に応じたファイル処理要求(ファイルオープン処理、ファイル読込み処理、ファイル書込み処理又はファイルクローズ処理)をファイルシステムプログラム21に発行する(SP1)。
そしてCPU11は、この後、かかるファイル処理要求に対する処理結果がファイルシステムプログラム21から与えられると、必要な処理(例えばかかる処理結果として取得したデータを上位装置に転送するなど)を実行した後(SP2)、このアプリケーションプログラム処理を終了する(SP3)。
(1−3−2)ファイルシステムプログラムに基づくCPUの具体的な処理
(1−3−2−1)キャッシュ領域作成処理
一方、図11は、ファイル共有サーバ3の起動時にファイルシステムプログラム21に基づきCPU11により実行されるキャッシュ領域作成処理の処理内容を示すフローチャートである。
(1−3−2−1)キャッシュ領域作成処理
一方、図11は、ファイル共有サーバ3の起動時にファイルシステムプログラム21に基づきCPU11により実行されるキャッシュ領域作成処理の処理内容を示すフローチャートである。
CPU11は、ファイル共有サーバ3が起動されると、この図11に示すキャッシュ領域作成処理を開始し(SP10)、まず、ストレージ装置4から読み出したファイルのデータを記憶保持するためのLDEVキャッシュ領域28をメモリ12上に作成する(SP11)。
次いでCPU11は、作成したLDEVキャッシュ領域28の使用状況をブロック単位で管理するためのキャッシュ領域管理テーブル27(図8)を作成する(SP12)。具体的に、CPU11は、ステップSP11において作成したLDEVキャッシュ領域28に含まれる各ブロックのアドレスをキャッシュ領域管理テーブル27の「キャッシュ領域」欄27A(図8)にそれぞれ格納し、これらに対応する各「使用中フラグ」欄27B(図8)にそれぞれ「0」を格納したキャッシュ領域管理テーブル27を作成することとなる。
そしてCPU11は、この後、このキャッシュ領域作成処理を終了する(SP13)。
(1−3−2−2)ファイルアクセス処理
他方、図12は、アプリケーションプログラム20から発行されたファイル処理要求に応じて、ファイルシステムプログラム21に基づきCPU11が実行するファイルアクセス処理の具体的な内容を示すフローチャートである。
他方、図12は、アプリケーションプログラム20から発行されたファイル処理要求に応じて、ファイルシステムプログラム21に基づきCPU11が実行するファイルアクセス処理の具体的な内容を示すフローチャートである。
CPU11は、かかるファイル処理要求を受信すると、この図12に示すファイルアクセス処理を開始し、まず、受信したファイル処理要求が、ファイルオープン要求、ファイル読込み要求、ファイル書込み要求及びファイルクローズ要求のうちのいずれであるかを判断する。
そしてCPU11は、そのファイル処理要求がファイルオープン要求であった場合には、指定されたファイルを使用できるようにオープンするファイルオープン処理を実行し(SP23)、そのファイル処理要求がファイル読込み要求であった場合には、指定されたファイルのデータを読み込むファイル読込み処理を実行する(SP24)。
またCPU11は、そのファイル処理要求がファイル書込み要求であった場合には、書込み対象のファイルのデータをストレージ装置4内の指定された論理デバイス46に書き込むファイル書込み処理を実行し(SP25)、そのファイル処理要求がファイルクローズ要求であった場合には、指定されたファイルをクローズするファイルクローズ処理を実行する(SP26)。
そしてCPU11は、これらファイルオープン処理、ファイル読込み処理、ファイル書込み処理及びファイルクローズ処理のうち、受信したファイル処理要求に応じた処理を実行し終えると、アプリケーションプログラム20に処理結果を返却し、この後このファイルアクセス処理を終了する(SP28)。
(1−3−2−3)ファイルオープン処理
図13は、かかるファイルアクセス処理のステップSP23におけるファイルオープン処理の具体的な処理内容を示すフローチャートである。
図13は、かかるファイルアクセス処理のステップSP23におけるファイルオープン処理の具体的な処理内容を示すフローチャートである。
CPU11は、かかるファイルアクセス処理のステップSP23に進むとこのファイルオープン処理を開始し、まず、LDEVマッピングテーブル23の各レコードの「マウントパス」欄23Aを参照して、これらレコードのうち、ファイル処理要求と共に与えられたそのとき対象とするファイル(以下、これを対象ファイルと呼ぶ)までのフルパスのうちのマウントパス部分と同じマウントパスを有するレコードを検索する(SP31)。
そしてCPU11は、この後、かかる検索結果に基づいて、そのようなレコードがLDEVマッピングテーブル23上に存在するか否かを判断する(SP33)。
ここで、この判断において否定結果を得ることは、アプリケーションプログラム20からのファイル処理要求が、存在しないファイル(例えばマウントされていないファイルシステムに属するファイル)を対象としたものであることを意味する。かくして、このときCPU11は、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP34)、この後このファイルオープン処理を終了する(SP35)。
これに対して、CPU11は、ステップSP33の判断において肯定結果を得ると、LDEVマッピングテーブル23上のステップSP31の検索により検出したレコードの「LDEVキャッシュ管理テーブルポインタ」欄23D(図4)を参照して、対象ファイルが属するファイルシステムに対応するLDEVキャッシュ管理テーブル24(図5)を特定する(SP36)。
またCPU11は、この後、LDEVキャッシュ管理テーブル24(図5)の各レコードの「マウントパス」欄24Aを参照して、これらレコードのうち、アプリケーションプログラム20からファイル処理要求と共に与えられた対象ファイルまでのフルパスのうちのファイルパス部分と同じファイルパスを有するレコードを検索する(SP37)。
そしてCPU11は、この後、かかる検索結果に基づいて、そのようなレコードがLDEVキャッシュ管理テーブル24上に存在するか否かを判断する(SP38)。
ここで、この判断において肯定結果を得ることは、対象ファイルが、少なくとも1度はアクセスしたことがあるファイルであることを意味する。
かくして、このときCPU11は、LDEVキャッシュ管理テーブル24上のステップSP37の検索により検出したレコードの「オンメモリフラグ」欄24Bを参照して、当該「オンメモリフラグ」欄24Bに「1」が格納されているか否か、つまり対象ファイルがファイル共有サーバ3のLDEVキャッシュ領域28に読み込まれているか否かを判断する(SP39)。
そしてCPU11は、この判断において肯定結果を得ると、ファイルディスクリプタ管理テーブル26(図7)を参照して、対象ファイルに対して、そのとき使用していないファイルディスクリプタを採番する(SP45)。
またCPU11は、この後、対象ファイルに関する必要な情報をファイルディスクリプタ管理テーブル26に登録する(SP46)。具体的には、CPU11は、そのとき採番したファイルディスクリプタをファイルディスクリプタ管理テーブル26の「ファイルディスクリプタ」欄26Aに格納すると共に、その対象ファイルと対応付けられているLDEVキャッシュ管理テーブル24(図5)へのポインタを、当該ファイルディスクリプタ管理テーブル26の「LDEVキャッシュ管理テーブルレコードポインタ」欄26Bに格納する。またCPU11は、LDEVマッピングテーブル23(図4)のそのLDEVキャッシュ管理テーブル24と対応付けられたレコードへのポインタをファイルディスクリプタ管理テーブル26の「LDEVマッピングテーブルレコードポインタ」欄26Cに格納すると共に、当該ファイルディスクリプタ管理テーブル26の対応する「使用フラグ」欄26Dにフラグを格納(「1」を格納)する。
続いてCPU11は、LDEVキャッシュ管理テーブル24の対象ファイルと対応するレコードの「参照カウンタ」欄24Dに格納された数値を「1」増加させ(SP47)、この後このファイルオープン処理を終了する。
これに対して、ステップSP38又はステップSP39の判断において否定結果を得ることは、対象ファイルがいままでに1度もアクセスしたことがないファイルであるか(SP38:NO)、又は対象ファイルのデータがファイル共有サーバ3のLDEVキャッシュ領域28に読み込まれていない(SP39:NO)ことを意味する。かくして、このときCPU11は、対象ファイルのデータをかかるLDEVキャッシュ領域28に読み込むキャッシュ読込み処理を実行すべきことをキャッシュ制御プログラム22(図1)に要求(以下、これをキャッシュ読込み処理要求と呼ぶ)する(SP40)。
またCPU11は、これと併せて、ファイル処理要求と共にアプリケーションプログラム20から与えられた対象ファイルまでのフルパスをキャッシュ制御プログラム22に通知する(SP41)。
そしてCPU11は、この後、かかるキャッシュ読込み処理要求の処理結果をキャッシュ制御プログラム22から受け取ると(SP42)、キャッシュ読込み処理が成功したか否かを判断する(SP43)。
そしてCPU11は、この判断において肯定結果を得ると、この後上述のステップSP45〜ステップSP47の処理を実行した後、このファイルオープン処理を終了する。またCPU11は、かかるステップSP43の判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP44)、この後このファイルオープン処理を終了する。
(1−3−2−4)ファイル読込み処理
一方、図14は、図12について上述したファイルアクセス処理のステップSP24におけるファイル読込み処理の具体的な処理内容を示すフローチャートである。
一方、図14は、図12について上述したファイルアクセス処理のステップSP24におけるファイル読込み処理の具体的な処理内容を示すフローチャートである。
CPU11は、かかるファイルアクセス処理のステップSP24に進むとこのファイル読込み処理を開始し、まず、対象ファイルのファイルオープン処理時に付与(図13のステップSP45参照)したファイルディスクリプタをアプリケーションプログラム22から取得する(SP50)。
続いてCPU11は、ファイルディスクリプタ管理テーブル26に登録されたレコードの中から、「ファイルディスクリプタ」欄26Aに格納されたファイルディスクリプタとステップSPにおいて取得したファイルディスクリプタとが一致するレコードを検索する(SP52)。
次いでCPU11は、かかる検索により検出したレコードについて、ファイルディスクリプタ管理テーブル26の対応する「使用フラグ」欄26Dを参照して(SP53)、そのファイルが使用中であるか否かを判断する(SP54)。
ここで、図13のステップSP46について上述したように、ファイルオープン処理がなされたファイルの場合、ファイルディスクリプタ管理テーブル26の「使用フラグ」欄26Dには「1」が格納される。従って、かかる判断において否定結果を得ることは、例えばアプリケーションプログラム20からのファイル処理要求が、ファイルオープンされていないファイルを対象としているなどの不正なものであることを意味する。かくして、このときCPU11は、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP55)、この後このファイル読込み処理を終了する(SP56)。
これに対してCPU11は、かかるステップSP54の判断において肯定結果を得ると、ファイルディスクリプタ管理テーブル26の対応する「LDEVキャッシュ管理テーブルレコードポインタ」欄26Bから対応するLDEVキャッシュ管理テーブル24へのポインタを読み出すと共に、かかるファイルディスクリプタ管理テーブル26の対応する「LDEVマッピングテーブルレコードポインタ」欄26CからLDEVマッピングテーブル23上の対応するレコードへのポインタを読み出す(SP57)。
次いでCPU11は、ステップSP57においてファイルディスクリプタ管理テーブル26から読み出した、対応するLDEVキャッシュ管理テーブル24へのポインタに基づいて、LDEVキャッシュ管理テーブル24上の対象ファイルのレコードを特定し、当該LDEVキャッシュ管理テーブル24の対応する「ファイルパス」欄24Aから当該対象ファイルへのファイルパスを読み出す(SP58)。
またCPU11は、ステップSP57においてファイルディスクリプタ管理テーブル26から読み出した、LDEVマッピングテーブル23上の対応するレコードへのポインタに基づいて、LDEVマッピングテーブル23上の対象ファイルが属するファイルシステムFSに対応するレコードを特定し、当該LDEVマッピングテーブル23の対応する「マウントパス」欄23Aから当該ファイルシステムFSへのマウントパスを読み出す(SP59)。
そしてCPU11は、この後、対象ファイルについてのキャッシュ読込み処理要求をキャッシュ制御プログラム22に送信する(SP60)。またCPU11は、これと併せて、ステップSP59において取得したマウントパスと、ステップSP58において取得したファイルパスとを組み合わせてそのファイルまでのフルパスを生成し、このフルパスをキャッシュ制御プログラム22に通知する(SP61)。
この結果、後述のように、キャッシュ制御プログラム22の制御のもとに、対象ファイルのデータがストレージ装置4から読み出されてファイル共有サーバ3のメモリ3(LDEVキャッシュ領域28)に格納される。またこれに伴って、LDEVマッピングテーブル23、LDEVキャッシュ管理テーブル24及びLU割当て管理テーブル25が更新される。
この後CPU11は、キャッシュ制御プログラム22からかかるキャッシュ読込み処理要求に対する処理結果を受け取ると(SP62)、LDEVキャッシュ管理テーブル24を参照して、対象ファイルのデータが格納されているファイル共有サーバ3のLDEVキャッシュ領域28内のアドレスを、かかるLDEVキャッシュ管理テーブル24の対応する「キャッシュ領域アドレス」欄24Eから読み出す。またCPU11は、このようにして取得したかかるアドレスに基づいて、ファイル共有サーバ3のLDEVキャッシュ領域28内の当該アドレス位置に格納されているファイルデータを読み込む(SP63)。
そしてCPU11は、この後、このようにして取得したファイルデータと、この一連のファイル読込み処理の処理結果(成功又は失敗)の情報とを対応するアプリケーションプログラム20に送信し(SP64)、この後このファイル読込み処理を終了する。
(1−3−2−5)ファイル書込み処理
他方、図15は、図12について上述したファイルアクセス処理のステップSP25におけるファイル書込み処理の具体的な処理内容を示すフローチャートである。
他方、図15は、図12について上述したファイルアクセス処理のステップSP25におけるファイル書込み処理の具体的な処理内容を示すフローチャートである。
CPU11は、かかるファイルアクセス処理のステップSP25に進むとこのファイル書込み処理を開始し、ステップSP70〜ステップSP74をファイル読込み処理のステップSP50〜ステップSP54と同様に処理する。
そしてCPU11は、ステップSP74の判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP75)、この後このファイル読込み処理を終了する(SP82)。
これに対してCPU11は、ステップSP74の判断において肯定結果を得ると、ファイルディスクリプタ管理テーブル26(図7)上の対応するレコード「LDEVキャッシュ管理テーブルレコードポインタ」欄26Bを参照して、対応するLDEVキャッシュ管理テーブル24(図5)上の対応するレコードを特定し、当該レコードへのポインタを読み出す(SP76)。
続いてCPU11は、アプリケーションプログラム20から送信される書込み対象のデータを受け取り(SP77)、この後、LDEVキャッシュ管理テーブル24のステップSP76において特定したレコードの「キャッシュ領域アドレス」欄24Eから、ファイル共有サーバ3のLDEVキャッシュ領域28における対象ファイルのデータを書き込むべきキャッシュ領域28A(図3)のアドレスを読み出す(SP78)。
そしてCPU11は、この後、ステップSP77においてアプリケーションプログラム20から受け取った書込み対象のデータをファイル共有サーバ3のLDEVキャッシュ領域28内のステップSP78においてアドレスを取得したキャッシュ領域28Aに書き込む(SP79)。
さらにCPU11は、LDEVキャッシュ管理テーブル24のステップSP76において特定したレコードの「オンメモリフラグ」欄24Bに格納された数値を「1」に更新すると共に、当該レコードの「Syncフラグ」欄24Cに格納された数値を「0」に更新する(SP80)。
次いでCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP81)、この後このファイル読込み処理を終了する(SP81)。
(1−3−2−6)ファイルクローズ処理
図16及び図17は、図12について上述したファイルアクセス処理のステップSP26におけるファイルクローズ処理の具体的な処理内容を示すフローチャートである。
図16及び図17は、図12について上述したファイルアクセス処理のステップSP26におけるファイルクローズ処理の具体的な処理内容を示すフローチャートである。
CPU11は、かかるファイルアクセス処理のステップSP26に進むとこのファイルクローズ処理を開始し(SP90)、まず、ステップSP90〜ステップSP96を図14について上述したファイル読込み処理のステップSP50〜ステップSP56と同様に処理する。
そしてCPU11は、ステップSP94の判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP95)、この後このファイルクローズ処理を終了する(SP96)。
これに対してCPU11は、ステップSP94の判断において肯定結果を得ると、ファイルディスクリプタ管理テーブル26(図7)の対応する「LDEVキャッシュ管理テーブルレコードポインタ」欄26Bから、LDEVマッピングテーブル23(図4)上の対応するレコードへのポインタを特定する(SP97)。
続いてCPU11は、かかるLDEVキャッシュ管理テーブル24(図5)上のステップSP97において特定したレコードの「参照カウンタ」欄24Dに格納されたカウンタ値を読み出し、その値が「1」であるか、「2以上」であるかを判断する(SP98)。
ここで、かかる値が「1」の場合、その対象ファイルに対するファイルアクセスが、そのときファイルクローズ要求を送信してきたアプリケーションプログラム20だけであることを意味する。かくして、このときCPU11は、そのファイルのデータをファイル共有サーバ3のLDEVキャッシュ領域28から削除する処理を実行する(ステップSP99〜ステップSP103)。
具体的にCPU11は、ステップSP98の判断においてかかる値が「1」との判断結果を得ると、LDEVキャッシュ管理テーブル24の対応する「ファイルパス」欄24Aからそのレコードと対応付けられたファイルへのファイルパスを読み出す(SP99)。
またCPU11は、ファイルディスクリプタ管理テーブル26の対応する「LDEVマッピングテーブルレコードポインタ」欄26Cを参照してLDEVマッピングテーブル23上の対応するレコードを特定し、LDEVマッピングテーブル23における当該レコードの「マウントパス」欄23Aから対象ファイルが属するファイルシステムFSへのマウントパスを読み出す(SP100)。
そしてCPU11は、この後、対象ファイルのデータをファイル共有サーバ3のLDEVキャッシュ領域28から読み出してストレージ装置4内の対応する論理デバイス46に書き込むキャッシュ読込み処理の実行をキャッシュ制御プログラム22に要求(以下、これをキャッシュ書込み処理要求と呼ぶ)する(SP101)。
またCPU11は、これと併せて、ステップSP99において取得したそのファイルのファイルパスと、ステップSP100において取得したそのファイルが属するファイルシステムFSへのマウントパスとを組み合わせた対象ファイルへのフルパスを生成し、生成したフルパスをキャッシュ制御プログラム22に通知する(SP102)。
この後、CPU11は、キャッシュ制御プログラム22からかかるキャッシュ書込み処理の処理結果を受け取ると(SP103)、当該キャッシュ書込み処理が成功したか否かを判断する(SP104)。そしてCPU11は、この判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP105)、この後このファイルクローズ処理を終了する(SP109)。
これに対してCPU11は、かかる判断において肯定結果を得ると、ファイル共有サーバ3のLDEVキャッシュ領域28におけるそのファイルのデータが格納されていたキャッシュ領域28A(図3)を解放すると共に、LDEVキャッシュ管理テーブル24から当該対象ファイルのレコードを削除する(SP106)。
そしてCPU11は、この後LDEVキャッシュ管理テーブル24上の対象ファイルに対応する「参照カウンタ」欄24Dに格納された数値を「1」だけ減少させる(SP107)。またCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP108)、この後このファイルクローズ処理を終了する(SP109)。
一方、ステップSP98において、かかる値が「2以上」であった場合、現在、対象ファイルに対して、そのときファイルクローズ要求を送信してきたアプリケーションプログラム20以外のアプリケーションプログラム20がアクセスしていることを意味する。かくして、このときCPU11は、その対象ファイルのデータをファイル共有サーバ3のLDEVキャッシュ領域28から削除することなく対象ファイルをクローズするための処理を実行する。
具体的にCPU11は、ステップSP98の判断において、かかる値が「2以上」であると判断すると、ステップSP107に進み、この後ステップSP107及びステップSP108を上述と同様に処理した後に、このファイルクローズ処理を終了する(SP109)。
(1−3−3)キャッシュ制御プログラムに基づくCPUの具体的な処理
図18〜図20は、ファイルオープン処理(図13)のステップSP40やファイル読込み処理(図14)のステップSP60において発行されるキャッシュ読込み処理要求、又はファイルクローズ処理(図16)のステップSP101において発行されるキャッシュ書込み処理要求に応じて、キャッシュ制御プログラム22に基づきCPU11が行うキャッシュ読込み/書込み処理の具体的な内容を示すフローチャートである。
図18〜図20は、ファイルオープン処理(図13)のステップSP40やファイル読込み処理(図14)のステップSP60において発行されるキャッシュ読込み処理要求、又はファイルクローズ処理(図16)のステップSP101において発行されるキャッシュ書込み処理要求に応じて、キャッシュ制御プログラム22に基づきCPU11が行うキャッシュ読込み/書込み処理の具体的な内容を示すフローチャートである。
CPU11は、かかるキャッシュ読込み処理要求又はキャッシュ書込み処理要求がファイルシステムプログラム21(図1)から発行されると、この図18〜図20に示すキャッシュ読込み/書込み処理を開始し(SP110)、まず、かかるキャッシュ読込み処理要求又はキャッシュ書込み処理要求を受け取る(SP111)。またCPU11は、この後ファイルシステムプログラム21から通知されるフルパスを受け取る(SP112)。
そしてCPU11は、LDEVマッピングテーブル23のレコードの中から、ステップSP112において取得したフルパスのうちのマウントパス部分と同じマウントパスが「マウントパス」欄23Aに格納されたレコードを検索する(SP113)。
続いてCPU11は、LDEVマッピングテーブル23上のステップSP113にいて検出したレコードの「LDEVキャッシュ管理テーブルポインタ」欄23Dに格納されたLDEVキャッシュ管理テーブル24へのポインタに基づいて、対応するLDEVキャッシュ管理テーブル24を特定し(SP114)、この後、ステップSP111において受け取った要求処理がキャッシュ読込み処理であるか否かを判断する(SP115)。
CPU11は、この判断において肯定結果を得ると、ステップSP114において特定したLDEVキャッシュ管理テーブル24上の各レコードの「ファイルパス」欄24Aに格納されたファイルパスと、ステップSP112において取得した対象ファイルへのフルパスとをそれぞれ比較し、当該フルパスのファイルパス部分と同じファイルパスが「ファイルパス」欄24Aに格納されたレコードを検索する(SP116)。またCPU11は、この後この検索結果に基づいて、かかるファイルパスのレコードが存在するか否かを判断する(SP116)。
ここで、この判断において否定結果を得ることは、対象ファイルのデータが一度もファイル共有サーバ3のLDEVキャッシュ領域28に読み出されたことがないことを意味する。かくして、このときCPU11は、かかる対象ファイルのレコードをLDEVキャッシュ管理テーブル24上に新規作成する。またCPU11は、この際、かかるレコードの「オンメモリフラグ」欄24B、「Syncフラグ」欄24C及び「参照カウンタ」欄24Dにそれぞれ初期値(「0」)を格納する(SP118)。そして、CPU11は、この後ステップSP123に進む。
これに対して、ステップSP117の判断において肯定結果を得ることは、対象ファイルのデータが以前にファイル共有サーバ3のLDEVキャッシュ領域28に読み出されたことがあることを意味する。かくして、このときCPU11は、LDEVキャッシュ管理テーブル24の対応する「オンメモリフラグ」欄24Bを参照して、そのファイルデータが現在もかかるLDEVキャッシュ領域28に保持されているか否かを判断する(SP120)。
そしてCPU11は、この判断において肯定結果を得ると、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP121)、この後このキャッシュ読込み/書込み処理を終了する(SP122)。
これに対してCPU11は、かかるステップSP120の判断において否定結果を得ると、LDEVマッピングテーブル23(図4)の対応するレコードの「LDEV番号」欄23B及び「割当てLU番号」欄23Cから、対応する論理デバイス46のLDEV番号及び当該論理デバイス46が割り当てられた仮想論理ユニット47のLU番号をそれぞれ読み出す処理を実行すると共に(SP123)、このときかかる仮想論理ユニット47のLU番号を読み出せたか否かを判断する(SP124)。
この判断において否定結果を得ることは、対象ファイルのデータが格納されている論理デバイス46がいずれの仮想論理ユニット47にもマッピングされていないことを意味する。かくして、このときCPU11は、LU割当て管理テーブル25(図6)を参照して、未使用の仮想論理ユニット47(「使用中フラグ」欄25Bに「1」が格納されていない仮想論理ユニット47)を検索する(SP125)。そしてCPU11は、未使用の仮想論理ユニット47を検出できたか否かを判断する(SP126)。
そしてCPU11は、この判断において肯定結果を得るとステップSP129に進む。これに対してCPU11は、かかるステップSP126の判断において否定結果を得ると、LU割当て管理テーブル25を参照して、使用中の仮想論理ユニット47の中から任意の仮想論理ユニット47を選択する(SP127)。なお、この場合における仮想論理ユニット47の選択方法として、アクセス頻度の最も少ない又は最後にアクセスがあった時刻が最も古いファイルシステムFSのデータを格納する論理デバイス46が割り当てられた仮想論理ユニット47を選択する選択方法を採用するようにしても良い。
この後CPU11は、ストレージ装置4内のジュークボックス機能を提供する上述のジュークボックス制御プログラム45(図1)に対して、ステップSP127において選択した仮想論理ユニット47に対する論理デバイス46の割り当ての解除を要求(以下、これを割当て解除要求と呼ぶ)する(SP128)。この結果、ストレージ装置4のCPU42(図1)は、この割当て解除要求に応じて、ジュークボックス制御プログラム45に基づき、指定された仮想論理ユニット47に対する論理デバイス46の割り当てを解除する。
続いてCPU11は、ストレージ装置4に対して、仮想論理ユニット47に対する論理デバイス46の割り当てを要求する(SP129)。またCPU11は、その対象となる仮想論理ユニット47のLU番号として、ステップSP125の検索において検出した未使用の仮想論理ユニット47のLU番号(ステップSP125において肯定結果を得た場合)又はステップSP127において選択した仮想論理ユニット47のLU番号(ステップSP126において否定結果を得た場合)を、かかるストレージ装置4に送信すると共に、当該仮想論理ユニット47に割り当てるべき論理デバイス46のLDEV番号として、対象ファイルのデータが格納されている論理デバイス46のLDEV番号をストレージ装置4に送信する(SP130)。この結果、ストレージ装置4のCPU42は、ジュークボックス制御プログラム45に基づいてかかる仮想論理ユニット47にかかる論理デバイス46を割り当てる割当て処理を実行する。
次いでCPU11は、ファイル共有サーバ3のLDEVキャッシュ領域28内に、対象ファイルのデータを読み出すためのキャッシュ領域28Aを確保するキャッシュ領域確保処理を実行する(SP131)。またCPU11は、この後ストレージ装置4にアクセスすることにより、対応する論理デバイス46から対象ファイルのデータを読み出し、当該ファイルデータをステップSP131において確保したキャッシュ領域28Aに格納する(SP132)。
続いてCPU11は、ステップSP125においてLU番号を取得した未使用の仮想論理ユニット47(ステップSP126において肯定結果を得た場合)又はステップSP127において選択した仮想論理ユニット47(ステップSP126において否定結果を得た場合)に対応するLU割当て管理テーブル25(図6)上の「使用中フラグ」欄25Bに、当該仮想論理ユニット47が使用中であることを表すフラグを格納する(SP133)。
またCPU11は、LDEVマッピングテーブル23(図4)の「割当てLU番号」欄23Cのうち、対象ファイルのデータが格納されている論理デバイス46に対応する「割当てLU番号」欄23Cに、当該論理デバイス46を割り当てた仮想論理ユニット47のLU番号を格納する(SP134)。
さらにCPU11は、LDEVキャッシュ管理テーブル24(図5)上の対応する「オンメモリフラグ」欄24B及び「Syncフラグ」欄24Cにそれぞれ「1」を格納し(SP135)、この後、LDEVキャッシュ管理テーブル24上の対応する「キャッシュ領域アドレス」欄24Eに、ファイル共有サーバ3のLDEVキャッシュ領域28における対象ファイルのデータが格納されたキャッシュ領域28A(図3)のアドレスを格納する(SP136)。
さらにCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP137)、この後このキャッシュ読込み/書込み処理を終了する。
これに対してCPU11は、ステップSP115(図18)の判断において否定結果を得ると、ステップSP114において特定したLDEVキャッシュ管理テーブル24上の各レコードの「ファイルパス」欄24Aに格納されたファイルパスと、ステップSP112において取得した対象ファイルへのフルパスとをそれぞれ比較し、当該フルパスのファイルパス部分が一致するレコードを検索する(SP139)。またCPU11は、この後この検索結果に基づいて、かかるフルパスのファイルパス部分が一致するレコードが存在するか否かを判断する(SP140)。
そしてCPU11は、この判断において否定結果を得ると、返却値に「エラー」を設定した応答通知をアプリケーションプログラム20に送信し(SP141)、この後このキャッシュ読込み/書込み処理を終了する(SP142)。
これに対してCPU11は、かかる判断において肯定結果を得ると、LDEVキャッシュ管理テーブル24(図5)上の「オンメモリフラグ」欄24Bのうち、対象ファイルが格納されている論理デバイス46に対応する「オンメモリフラグ」欄24Bを参照して(SP143)、かかる対象ファイルのデータがファイル共有サーバ3のLDEVキャッシュ領域28に格納されているか否かを判断する(SP144)。
ここで、この判断において否定結果を得ることは、ファイルオープン処理された対象ファイルのデータがファイル共有サーバ3のLDEVキャッシュ領域28上に読み出されているはずにも係わらず、その対象ファイルのデータがかかるLDEVキャッシュ領域28上に存在しないことを意味する。かくして、このときCPU11は、返却値に「エラー」を設定した応答通知をアプリケーションプログラム20に送信し(SP145)、この後このキャッシュ読込み/書込み処理を終了する(SP146)。
これに対してCPU11は、かかる判断において肯定結果を得ると、LDEVキャッシュ管理テーブル24(図5)上の対象ファイルに対応する「Syncフラグ」欄24Cに「1」が格納されているか否かを判断する(SP147)。
ここで、この判断において肯定結果を得ることは、ファイル共有サーバ3のLDEVキャッシュ領域28上に格納されている対象ファイルのデータと、ストレージ装置4の対応する論理デバイス46に保存されている対象ファイルのデータとが同じ、つまり、その対象ファイルのオープン後に当該対象ファイルのデータが更新されていないことを意味する(図15のステップSP80参照)。従って、この場合には、その対象ファイルをクローズ処理するに際し、かかるLDEVキャッシュ領域28に格納された対象ファイルのデータをストレージ装置4の対応する論理デバイス46に書き戻す必要はない。かくして、このときCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP148)、この後このキャッシュ読込み/書込み処理を終了する(SP149)。
これに対して、かかる判断において否定結果を得ることは、かかるLDEVキャッシュ領域28上に格納されている対象ファイルのデータと、ストレージ装置4の対応する論理デバイス46に保存されている対象ファイルのデータとが異なる、つまり、その対象ファイルのオープン後に当該対象ファイルのデータが更新されていることを意味する(図15のステップSP80参照)。従って、この場合には、その対象ファイルをクローズ処理するに際し、かかるLDEVキャッシュ領域28に格納された対象ファイルのデータをストレージ装置4内の対応する論理デバイス46に書き戻す必要がある。かくして、このときCPU11は、LDEVマッピングテーブル23上の対応する「LDEV番号」欄23B及び「割当てLU番号」欄23Cから、対象ファイルを書き戻すべき論理デバイス46のLDEV番号と、そのときその論理デバイス46に割り当てられている仮想論理ユニット47のLU番号とを読み出す(SP150)。
そしてCPU11は、この後、かかるステップSP150の処理によって対応する仮想論理ユニット47のLU番号を取得できたか否か、つまり、LDEVマッピングテーブル23上の対応する「割当てLU番号」欄23Cにいずれかの仮想論理ユニット47のLU番号が格納されていたか否かを判断する(SP151)。
この判断において肯定結果を得ることは、対象ファイルのデータが保存されている論理デバイス46に対し、そのときいずれかの仮想論理ユニット47が割り当てられていることを意味する。かくして、このときCPU11は、ステップSP158に進む。
これに対して、かかる判断において否定結果を得ることは、対象ファイルのデータが保存されている論理デバイス46が、そのときいずれの仮想論理ユニット47に対しても割り当てられていないことを意味する。かくして、このときCPU11は、LU割当て管理テーブル25(図6)から未使用の仮想論理ユニット47のLU番号を取得する処理を実行し(SP152)、この後、かかるステップSP152において未使用の仮想論理ユニット47のLU番号を取得できたか否か(未使用の仮想論理ユニット47があるか否か)を判断する(SP153)。
そしてCPU11は、この判断において肯定結果を得るとステップSP156に進み、これに対して否定結果を得ると、LU割当て管理テーブル25(図6)を参照して、現在使用中の仮想論理ユニット47の中から1つの仮想論理ユニット47を選択し(SP154)、この後、ストレージ装置4に対して、この仮想論理ユニット47に対する論理デバイス46の割当て解除を要求する(SP155)。
またCPU11は、ストレージ装置4に対して仮想論理ユニット47に対する論理デバイス46の割り当てを要求する(SP156)。さらにCPU11は、LU割当て管理テーブル25から取得し(ステップSP151において肯定結果を得た場合)又はステップSP154において選択した(ステップSP151において否定結果を得た場合)仮想論理ユニット47のLU番号と、対象ファイルのデータが格納されている論理デバイス46のLDEV番号とをストレージ装置4に送信する(SP157)。この結果、ストレージ装置4のCPU42(図1)は、ジュークボックス制御プログラム45に基づいて、かかる仮想論理ユニット47をかかる論理デバイス46に割り当てるように論理デバイスの切替え処理を実行する。
その後CPU11は、LDEVキャッシュ管理テーブル24(図5)上の対応する「キャッシュ領域アドレス」欄24Eから、LDEVキャッシュ領域28における対象ファイルのデータが格納されているブロックのアドレスを読み出す(SP158)。またCPU11は、この読み出したアドレスに基づいて、かかるLDEVキャッシュ領域28から対象ファイルのデータを読み込み、これをストレージ装置4に転送することにより、対応する論理デバイス46に書き戻させる(SP159)。
次いでCPU11は、LDEVキャッシュ管理テーブル24上の対応する「Syncフラグ」欄24Cに「1」を設定し(SP159)、さらに返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信した後(SP160)、このキャッシュ読込み/書込み処理を終了する(SP161)。
なお、かかるキャッシュ読込み/書込み処理のステップSP131(図19)におけるキャッシュ領域確保処理の具体的内容を図21に示す。
CPU11は、かかるキャッシュ読込み/書込み処理のステップSP131に進むと、この図21に示すキャッシュ領域確保処理を開始し、まず、キャッシュ領域管理テーブル27(図8)を参照して、対象ファイルのデータを格納するための未使用のブロックを検索及び選択する(SP171)。
続いてCPU11は、キャッシュ領域管理テーブル27におけるステップSP171において選択した未使用のブロックの「使用中フラグ」欄に「1」を設定する(SP172)。
次いでCPU11は、ステップSP171において選択したブロックのアドレスをLDEVキャッシュ管理テーブル24(図5)の対応する「キャッシュ領域アドレス」欄24Eに格納し(SP173)、この後このキャッシュ領域確保処理を終了する(SP174)。
(1−4)ファイルオープンに関する一連の流れ
図22は、上述した各種処理のうち、特にファイルオープン処理時におけるファイル共有サーバ3内のアプリケーションプログラム20、ファイルシステムプログラム21、キャッシュ制御プログラム22及びストレージ装置3間での一連の処理の流れを示している。
図22は、上述した各種処理のうち、特にファイルオープン処理時におけるファイル共有サーバ3内のアプリケーションプログラム20、ファイルシステムプログラム21、キャッシュ制御プログラム22及びストレージ装置3間での一連の処理の流れを示している。
まず、ファイルアクセスクライアント2(図1)からファイル共有サーバ3に処理要求が与えられると、ファイル共有サーバ3内の対応アプリケーションプログラム20は、これに応じたファイルオープン要求をファイルシステムプログラム21に与える(SP180)。また、かかるアプリケーションプログラム20は、これと併せてオープン対象の対象ファイルへのフルパスをファイルシステムプログラム21に与える(SP181)。
そしてファイルシステムプログラム21は、かかるファイルオープン要求及びフルパスを受信すると、指定されたファイル(対象ファイル)をオープンするファイルオープン処理や、LDEVキャッシュ管理テーブル24を検索して当該対象ファイルのデータがファイル共有サーバ3のLDEVキャッシュ領域28に保持されているか否かを判定する処理等を実行する(SP182)。またファイルシステムプログラム21は、この後、キャッシュ制御プログラム22に対してキャッシュ読込み要求を送信する(SP183)。
キャッシュ制御プログラム22は、かかるキャッシュ読込み要求を受信すると、対象ファイルのデータがLDEVキャッシュ領域28上に存在せず、かつ、そのとき当該対象ファイルのデータが保存された論理デバイス46にいずれの仮想論理ユニット47も割り当てられていないときには、当該論理デバイス46にいずれかの仮想論理ユニット47を割り当てるようにLDEV切替え要求をストレージ装置4に送信する(SP184)。
そしてストレージ装置4は、このLDEV切替え要求を受信すると、仮想論理ユニット47に指定された論理デバイス46を割り当てるように、当該仮想論理ユニット47に割り当てる論理デバイス46の切替え処理を実行し(SP185)、この後、割り当て結果をキャッシュ制御プログラム22に通知する(SP186)。
かかる通知を受信したキャッシュ制御プログラム22は、当該通知に基づいて対象ファイルのデータをファイル共有サーバ3内のLDEVキャッシュ領域28に読み込み(SP187)、このキャッシュ読込み処理の処理結果をファイルシステムプログラム21に通知する(SP188)。
またこの通知を受信したファイルシステムプログラム21は、この通知に基づいてLDEVキャッシュ管理テーブル24等の対応する各テーブルを更新すると共に、そのファイルに対してファイルディスクリプタを採番し(SP189)、このファイルディスクリプタを対応するアプリケーションプログラム20に送信する(SP190)。
(1−5)LDEV切替え制御機能に関するユーザの設定手順
図23は、上述のような本実施の形態によるLDEV切替え制御機能に関してシステム管理者が管理装置5(図1)を用いて行う各種設定の手順を示すフローチャートである。
図23は、上述のような本実施の形態によるLDEV切替え制御機能に関してシステム管理者が管理装置5(図1)を用いて行う各種設定の手順を示すフローチャートである。
システム管理者は、まずストレージ装置4内に設定された仮想論理ユニット47の中から本実施の形態によるLDEV切替え制御機能に関連して使用する仮想論理ユニット47を設定する(SP201)。かくしてこの設定に基づいて図6について上述したLU割当て管理テーブル25が作成されることとなる。
続いてシステム管理者は、ストレージ装置4内に作成したファイルシステムFSのうちのマウントするファイルシステムFSへのマウントパスをそれぞれ入力する(SP202)。かくしてこの入力に基づいて、図4について上述したLDEVマッピングテーブル23の各「マウントパス」欄23A内に対応するマウントパスが格納されることとなる。
この後システム管理者は、ステップSP202においてマウントパスを入力した各ファイルシステムとそれぞれ対応付けられている論理デバイス46の識別番号を入力する(SP203)。かくしてこの入力に基づいて、図4について上述したLDEVマッピングテーブル23の各「LDEV番号」欄23B内に対応する識別番号が格納されることとなる。
(1−6)本実施の形態の効果
以上のように本実施の形態による計算機システム1では、ファイルアクセスクライアント2からのファイルオープン要求に応じて対象とするファイルをファイル共有サーバ3上のLDEVキャッシュ領域28に読み出し、この後、当該ファイルに対するアクセスをこのLDEVキャッシュ領域28に保持されたデータに対して行う。
以上のように本実施の形態による計算機システム1では、ファイルアクセスクライアント2からのファイルオープン要求に応じて対象とするファイルをファイル共有サーバ3上のLDEVキャッシュ領域28に読み出し、この後、当該ファイルに対するアクセスをこのLDEVキャッシュ領域28に保持されたデータに対して行う。
従って、この計算機システム1では、ストレージ装置4におけるLDEVジュークボックス機能により仮想論理ユニット47に割り当てる論理デバイス46の切替え回数を低減させることができ、当該論理デバイス46の切り替え時におけるオーバヘッドを低減させることができる。かくするにつき、論理デバイス46の切替え処理が頻発することに起因するデータの読書き性能の低下を防止することができる。
また本実施の形態による計算機システム1では、かかる仮想論理ユニット47に割り当てる論理デバイス46の切り替えをファイルシステムプログラム21が行うようにしているため、アプリケーションプログラム20がかかる論理デバイス46の切り替えを意識することなく、通常のファイルアクセスと同じアクセス方法でファイルアクセスすることができる。かくするにつき、アプリケーションプログラム20として、専用品でなく通常のアプリケーションプログラム20を適用することができ、汎用性を向上させることができる。
(2)第2の実施の形態
(2−1)本実施の形態による計算機システムの構成
図1において、60は第2の実施の形態による計算機システムを示す。この計算機システム60は、LDEVキャッシュ領域61を作成するタイミングが異なる点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
(2−1)本実施の形態による計算機システムの構成
図1において、60は第2の実施の形態による計算機システムを示す。この計算機システム60は、LDEVキャッシュ領域61を作成するタイミングが異なる点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
すなわち、第1の実施の形態では、すべてのファイルシステムFSで共有するLDEVキャッシュ領域28をファイル共有サーバ3の起動時に作成していたのに対し(図11参照)、本実施の形態では、ファイルシステムFSごとのLDEVキャッシュ領域61を、そのファイルシステムFSをファイル共有サーバ3にマウント又はアンマウントするタイミングで作成又は削除する点を特徴としている。
従って、本実施の形態の場合、ファイル共有サーバ3の起動時に図11について上述したキャッシュ領域作成処理は行われず、これに代えて、ファイルシステムFSがファイル共有サーバ3にマウント又はアンマウントされるごとに、そのファイルシステムFSに専用のLDEVキャッシュ領域61をファイル共有サーバ3のメモリ12内に作成し又は当該メモリ12内に作成された対応するLDEVキャッシュ領域61を削除する処理が行われる。
図24は、このような第2の実施の形態によるLDEVキャッシュ領域作成/削除処理の具体的な処理内容を示すフローチャートである。
CPU11は、管理装置5が操作されて入力されたファイルシステムFSをマウント又はアンマウントすべき旨の処理要求(以下、これをファイルシステムマウント/アンマウント処理要求と呼ぶ)を受信するごとに、メモリ12に格納された第2の実施の形態によるファイルシステムプログラム62(図1)に基づき、この図24に示すLDEVキャッシュ領域作成/削除処理を実行する。
すなわちCPU11は、かかるファイルシステムマウント/アンマウント処理要求を受信すると、このLDEVキャッシュ領域作成/削除処理を開始し(SP190)、まず、受信したファイルシステムマウント/アンマウント処理要求がファイルシステムFSのマウント処理及びアンマウント処理のいずれであるかを判定する(SP191)。
そしてCPU11は、受信したファイルシステムマウント/アンマウント処理要求がファイルシステムFSのマウント処理の要求であると判定した場合、そのファイルシステムFS専用の所定容量のLDEVキャッシュ領域61をファイル共有サーバ3のメモリ12上に作成すると共に、そのファイルシステムFS専用のキャッシュ領域管理テーブル27(図8)を作成する(SP192)。従って、この第2の実施の形態の場合、ファイルシステムFS(論理デバイス46)ごとにキャッシュ領域管理テーブル27が作成されることとなる。この後、CPU11は、かかるLDEVキャッシュ領域61を作成した旨の応答通知をアプリケーションプログラム20に送信し(SP194)、この後このLDEVキャッシュ領域作成/削除処理を終了する(SP1195)。
これに対してCPU11は、ステップSP191において、受信したファイルシステムマウント/アンマウント処理要求がファイルシステムのマウント処理の要求であると判定した場合、ファイル共有サーバ3のメモリ12上にアンマウント対象のファイルシステムFS専用に作成したLDEVキャッシュ領域61を破棄すると共に、このLDEVキャッシュ領域61に対応するキャッシュ領域管理テーブル27(図8)を破棄する(SP193)。そしてCPU11は、この後かかるLDEVキャッシュ領域61を破棄した旨の応答通知をアプリケーションプログラム20に送信し(SP194)、このLDEVキャッシュ領域作成/削除処理を終了する(SP195)。
一方、図25は、図21について上述した第1の実施の形態によるキャッシュ領域確保処理に代えて、第2の実施の形態によるファイルシステムプログラム62に基づき、図18〜図20について上述したキャッシュ読込み/書込み処理のステップSP131(図19)において行われる第2の実施の形態によるキャッシュ領域確保処理の具体的な処理内容を示すフローチャートである。
CPU11は、かかるキャッシュ読込み/書込み処理のステップSP131に進むと、この図25に示すキャッシュ領域確保処理を開始し、まず、ステップSP112(図18)において取得した対象ファイルへのフルパスに基づいて対応する論理デバイス46(ファイルシステムFS)を特定し(SP201)、この後、その論理デバイス46(ファイルシステムFS)に対応するキャッシュ領域管理テーブル27を参照して、当該ファイルシステムFSに割り当てられたLDEVキャッシュ領域61の中から未使用のキャッシュ領域(ブロック)を検索及び検出する(SP202)。
そしてCPU11は、かかる未使用のキャッシュ領域を検出すると、そのキャッシュ領域管理テーブル27上の当該キャッシュ領域に対応する「使用中フラグ」欄27Bに「1」を格納する(SP203)。またCPU11は、その論理デバイス46(ファイルシステムFS)に対応するLDEVキャッシュ管理テーブル24(図5)上の対応する「キャッシュ領域アドレス」欄24Eに、ステップSP203において「使用中フラグ」欄27Bに「1」を格納したキャッシュ領域のアドレスを格納し(SP204)、この後このキャッシュ領域確保処理を終了する(SP205)。
(2−2)本実施の形態の効果
以上のように本実施の形態による計算機システム50では、ファイルシステムFSごとのLDEVキャッシュ領域61を、そのファイルシステムFSをファイル共有サーバ3にマウント又はアンマウントするタイミングで作成又は削除する。
以上のように本実施の形態による計算機システム50では、ファイルシステムFSごとのLDEVキャッシュ領域61を、そのファイルシステムFSをファイル共有サーバ3にマウント又はアンマウントするタイミングで作成又は削除する。
この場合において、例えば第1の実施の形態のようにファイル共有サーバ3のメモリ12上にすべてのファイルシステムFSで共有するLDEVキャッシュ領域28を作成する方式によると、あるファイルシステムFSに多量のアクセスが発生した場合に、別のファイルシステムFSが使用可能なキャッシュ領域が逼迫して不具合が発生するおそれがある。
しかしながら、本実施の形態によるLDEVキャッシュ領域61の作成方式によれば、各ファイルシステムFSが予め自己に割り当てられたLDEVキャッシュ領域61のみを使用することになるため、1つのファイルシステムFSに対するアクセスが多発しても、他のファイルシステムFSがその影響を受けることなく、自己に割り当てられたLDEVキャッシュ領域61を使用できる。従って、本実施の形態によれば、各ファイルシステムFSが常に一定量のLDEVキャッシュ領域61を使用できるため、不具合が発生するおそれが少なく、信頼性の高い計算機システムを構築することができる。
(3)第3の実施の形態
(3−2)本実施の形態による計算機システムの構成
図1において、65は第3の実施の形態による計算機システムを示す。この計算機システム65は、ファイル共有サーバ3のメモリ12上に設けられたLDEVキャッシュ領域28に保持された全ファイルデータを定期的にストレージ装置3に書き込む点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
(3−2)本実施の形態による計算機システムの構成
図1において、65は第3の実施の形態による計算機システムを示す。この計算機システム65は、ファイル共有サーバ3のメモリ12上に設けられたLDEVキャッシュ領域28に保持された全ファイルデータを定期的にストレージ装置3に書き込む点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
すなわち、第1の実施の形態では、かかるLDEVキャッシュ領域28に保持された各ファイルのデータを、そのファイルをクローズ処理するタイミングでストレージ装置4に書き込んでいたのに対し(図20のSP159参照)、本実施の形態では、当該タイミングに加えて、かかるLDEVキャッシュ領域28に保持されたすべてのファイルのデータを定期的にストレージ装置4内の対応する論理デバイス46に書き込む点を特徴としている。
図26は、このようにLDEVキャッシュ領域28に保持されたファイルデータをストレージ装置4に書き込む書込み処理(以下、これを全キャッシュデータ書込み処理と呼ぶ)の具体的な処理内容を示すフローチャートである。CPU11は、第2の実施の形態によるキャッシュ制御プログラム66に基づき、ファイル共有サーバ3内の図示しないタイマから定期的に与えられる割込み信号に応じて、この図26に示す全キャッシュデータ書込み処理を実行する。
すなわちCPU11は、かかる割込み信号を受信すると、この全キャッシュデータ書込み処理を開始し、まず、LDEVマッピングテーブル23(図4)のレコードを1つ選択する(SP211)。次いでCPU11は、ステップSP211においてレコードを選択できたか否かを判断する(SP212)。
この判断において肯定結果を得ることは、ステップSP213〜ステップSP217について後述する処理を行っていないレコード(ファイルシステムFS)が存在しない、つまり、LDEVマッピングテーブル23のすべてのレコードについてステップSP213〜ステップSP217の処理を行ったことを意味する。かくして、このときCPU11は、この全キャッシュデータ書込み処理を終了する(SP218)。
これに対してCPU11は、かかる判断において否定結果を得ると、LDEVマッピングテーブル23におけるステップSP211において選択したレコードの「LDEVキャッシュ管理テーブルポインタ」欄23Dを参照して、当該レコードに対応するLDEVキャッシュ管理テーブル24(図5)を特定し(SP213)、この後、このLDEVキャッシュ管理テーブル24に登録されているレコードの中から1つのレコードを選択する(SP214)。
そしてCPU11は、この後、LDEVキャッシュ管理テーブル24におけるステップSP214において選択したレコードの「Syncフラグ」欄24Cを参照して、当該「Syncフラグ」欄24Cに「1」が格納されているか否かを判断する(SP215)。
ここで、この判断において肯定結果を得ることは、そのとき対象としているレコードに対応するファイルに関して、ファイル共有サーバ3のメモリ12に格納されているそのファイルのデータと、ストレージ装置4の対応する論理デバイス46に格納されているそのファイルのデータとが一致する(同期が取れている)ことを意味する。かくして、このときCPU11は、ステップSP214に戻って、同じLDEVキャッシュ管理テーブル24から次のレコードを選択する。
これに対して、ステップSP215の判断において否定結果を得ることは、そのとき対象としているレコードに対応するファイルに関して、ファイル共有サーバ3のメモリ12に格納されているそのファイルのデータと、ストレージ装置4の対応する論理デバイス46に格納されているそのファイルのデータとが一致しない(同期が取れていない)ことを意味する。かくして、このときCPU11は、図20のステップSP150〜ステップSP159について上述した手順と同じ手順でかかるメモリ12のLDEVキャッシュ領域28に格納されているそのファイルのデータをストレージ装置4内の対応する論理デバイス46に書き込む(SP216)。
この後CPU11は、そのとき対象としているレコードがステップSP217において特定したLDEVキャッシュ管理テーブル24上の最後のレコードであるか否かを判断する(SP217)。そしてCPU11は、この判断において否定結果を得るとステップSP124に戻り、これに対して肯定結果を得るとステップSP211に戻って、この後ステップSP212において否定結果を得るまで同様の処理を繰り返す。
(3−2)本実施の形態の効果
このように本実施の形態による計算機システム65では、ファイル共有サーバ3のメモリ12のLDEVキャッシュ領域28に保持された各ファイルのデータを、そのファイルをクローズ処理するタイミングに加えて、定期的にストレージ装置4内の対応する論理デバイス46に書き込むため、かかるLDEVキャッシュ領域28に格納されたファイルデータと、ストレージ装置4における対応するファイルのデータとが不整合となっている時間を短縮させることができ、その分障害発生によるデータ損失の危険性を低減させて、耐障害性を向上させることができる。
このように本実施の形態による計算機システム65では、ファイル共有サーバ3のメモリ12のLDEVキャッシュ領域28に保持された各ファイルのデータを、そのファイルをクローズ処理するタイミングに加えて、定期的にストレージ装置4内の対応する論理デバイス46に書き込むため、かかるLDEVキャッシュ領域28に格納されたファイルデータと、ストレージ装置4における対応するファイルのデータとが不整合となっている時間を短縮させることができ、その分障害発生によるデータ損失の危険性を低減させて、耐障害性を向上させることができる。
(4)第4の実施の形態
(4−1)第4の実施の形態による計算機システムの構成
図1において、70は第4の実施の形態による計算機システムを示す。この計算機システム70は、ファイル書込み処理の際にファイル共有サーバ3のメモリ12上に確保されたLDEVキャッシュ領域28に空きがない場合に対応し得るようになされた点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
(4−1)第4の実施の形態による計算機システムの構成
図1において、70は第4の実施の形態による計算機システムを示す。この計算機システム70は、ファイル書込み処理の際にファイル共有サーバ3のメモリ12上に確保されたLDEVキャッシュ領域28に空きがない場合に対応し得るようになされた点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
すなわち、第1の実施の形態では、ファイル書込み処理の際にかかるLDEVキャッシュ領域28内に対応するファイルのデータを格納するためのキャッシュ領域28A(図3)を必ずLDEVキャッシュ領域28内に確保できることを前提としていた。
しかしながら、ファイル共有サーバ3のメモリ12の容量は有限であり、数多くのファイルがオープンされた場合、かかるLDEVキャッシュ領域28の残容量が逼迫し、その後の新たなファイルのオープン時に、図21について上述したキャッシュ領域確保処理において、当該新たなファイル用のキャッシュ領域28Aを確保できなくなる(そのファイルにキャッシュ領域28Aを割り当てられなくなる)事態が発生することも考えられる。
そこで、この第4の実施の形態による計算機システム70では、ファイル書込み処理の際に対象ファイルにキャッシュ領域28Aを割り当てるだけの残容量がLDEVキャッシュ領域28内に存在しない場合には、同じファイルシステムFS内の使用されていないファイルに割り当てられているキャッシュ領域28Aを解放し、そのキャッシュ領域28Aに書込み対象のファイルのデータを格納する点を特徴としている。
図27は、このような第4の実施の形態による計算機システム70におけるファイル書込み処理の具体的な処理内容を示すフローチャートである。CPU11は、ファイルシステムプログラム21からファイル書込み要求が与えられると、第4の実施の形態によるキャッシュ制御プログラム71(図1)に基づき、この図27に示す手順に従って、対応するファイルのデータをファイル共有サーバ3のメモリ12上に設けられたLDEVキャッシュ領域28に書き込む。
すなわちCPU11は、ファイルシステムプログラム21からファイル書込み要求が与えられると、このファイル書込み処理を開始し(SP220)、ステップSP221〜ステップSP228を図15について上述した第1の実施の形態によるファイル書込み処理のステップSP71〜ステップSP78と同様に処理する。
この後CPU11は、ステップSP228においてLDEVキャッシュ管理テーブル24の対応する「キャッシュ領域アドレス」欄24Eからアドレスを取得できたか否か、つまり、書込み対象のファイルにLDEVキャッシュ領域28内のキャッシュ領域28Aが割り当てられているか否かを判断し(SP229)、肯定結果を得るとステップSP232に進む。そしてCPU11は、この後ステップSP232〜ステップSP234までを第1の実施の形態のファイル書込み処理のステップSP79〜ステップSP81までと同様に処理し、この後、このファイル書込み処理を終了する(SP235)。
これに対してCPU11は、ステップSP229の判断において否定結果を得ると、同じファイルシステムFS内の使用されていないファイルに割り当てられているLDEVキャッシュ領域28内のキャッシュ領域28Aを解放して書込み対象のファイル用のキャッシュ領域28Aを確保するキャッシュ領域確保処理を実行する(SP230)。
次いでCPU11は、ストレージ装置4の対応する論理デバイス46から対応するファイルのデータを読み出し(SP231)、この後ステップSP232〜ステップSP234までを第1の実施の形態のファイル書込み処理のステップSP79〜ステップSP81までと同様に処理し、この後、このファイル書込み処理を終了する。
ここで、図28は、この第4の実施の形態によるファイル書込み処理のステップSP230の具体的な処理内容を示すフローチャートである。
CPU11は、かかるファイル書込み処理のステップSP230に進むと、この図28に示すキャッシュ領域確保処理を開始し、まず、キャッシュ領域管理テーブル27(図8)を参照して、未使用のキャッシュ領域28Aを検索する(SP241)。
CPU11は、この検索により未使用のキャッシュ領域28Aを検出できなかった場合には、書込み対象のファイルが属するファイルシステムFSと対応付けられたLDEVキャッシュ管理テーブル24(図5)のレコードの中から、アクセス頻度の最も低いファイル又は最後にアクセスされた時間が最も古いファイルに対応するレコードを1つ選択する(SP245)。
続いてCPU11は、図20のステップSP150〜ステップSP159について上述した手順と同じ手順で、LDEVキャッシュ領域28に格納されているかかるレコードに対応するファイルのデータをストレージ装置4内の対応する論理デバイス46に書き込む(SP246)。
またCPU11は、この後、キャッシュ領域管理テーブル27(図8)上のかかるファイルのデータが格納されていたキャッシュ領域28A(ブロック)に対応する「使用中フラグ」欄27Bに「0」を格納する(SP247)。さらにCPU11は、対応するLDEVキャッシュ管理テーブル24上の当該ファイルに対応するレコードの「キャッシュ領域アドレス」欄24Eに、割り当てられたキャッシュ領域28Aが存在しないということを表す「0」を格納し(SP248)、この後ステップSP242に戻る。
そして、CPU11は、この後必要に応じてステップS241P〜ステップSP248の処理を繰り返し、やがてステップSP242において肯定結果を得ると、このキャッシュ領域確保処理を終了する。
(4−2)本実施の形態の効果
以上のように本実施の形態による計算機システム70では、ファイル書込み処理の際に対象ファイルにキャッシュ領域28Aを割り当てるだけの残容量がLDEVキャッシュ領域28内に存在しない場合には、使用されていないファイルに割り当てられているキャッシュ領域28Aを解放し、そのキャッシュ領域28Aに書込み対象のファイルのデータを格納するようにしているため、新たなファイルのオープン時にキャッシュ領域28Aを割り当てられないという事態が発生することを確実に防止することができ、信頼性の高い計算機システムを構築することができる。
以上のように本実施の形態による計算機システム70では、ファイル書込み処理の際に対象ファイルにキャッシュ領域28Aを割り当てるだけの残容量がLDEVキャッシュ領域28内に存在しない場合には、使用されていないファイルに割り当てられているキャッシュ領域28Aを解放し、そのキャッシュ領域28Aに書込み対象のファイルのデータを格納するようにしているため、新たなファイルのオープン時にキャッシュ領域28Aを割り当てられないという事態が発生することを確実に防止することができ、信頼性の高い計算機システムを構築することができる。
(5)第5の実施の形態
(5−1)第5の実施の形態による計算機システムの構成
図1との対応部分に同一符号を付して示す図29は、第5の実施の形態による計算機システム80を示す。この計算機システム80は、ストレージシステム86を構成するファイル共有サーバ81のLDEVキャッシュ領域28に保持するファイルデータの単位が異なる点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
(5−1)第5の実施の形態による計算機システムの構成
図1との対応部分に同一符号を付して示す図29は、第5の実施の形態による計算機システム80を示す。この計算機システム80は、ストレージシステム86を構成するファイル共有サーバ81のLDEVキャッシュ領域28に保持するファイルデータの単位が異なる点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
すなわち、第1の実施の形態による計算機システム1では、ファイルデータをファイル単位でファイル共有サーバ3のLDEVキャッシュ領域28に保持する方式であったのに対し、本実施の形態による計算機システム80では、ファイルデータをストレージ装置4における記憶領域の管理単位である上述のブロック単位でファイル共有サーバ81のLDEVキャッシュ領域28に保持する点を特徴としている。
そして本実施の形態においては、このようにファイル共有サーバ81のLDEVキャッシュ領域28においてファイルデータをブロック単位で管理するための手段として、LDEVマッピングテーブル23、LDEVキャッシュ管理テーブル82、LU割当て管理テーブル25、ファイルディスクリプタ管理テーブル83及びキャッシュ領域管理テーブル27がファイル共有サーバ81のメモリ12に格納されている。
このうち、LDEVマッピングテーブル23、LU割当て管理テーブル25及びキャッシュ領域管理テーブル27は、第1の実施の形態と同様のものであるので、その説明は省略する。
一方、LDEVキャッシュ管理テーブル82は、ストレージ装置4内の対応する論理デバイス46に格納されたデータを、当該論理デバイス46が提供する記憶領域の基本単位であるブロック単位で管理するために用いられるテーブルであり、論理デバイス46ごと(ファイルシステムFSごと)に作成される。
このLDEVキャッシュ管理テーブル82は、図30に示すように、「ブロック番号」欄82A、「オンメモリフラグ」欄82B、「Syncフラグ」欄82C、「参照カウンタ」欄82D及び「キャッシュ領域アドレス」欄82Eから構成される。このうち「オンメモリフラグ」欄82B、「Syncフラグ」欄82C及び「参照カウンタ」欄82Dには、図5について上述した第1の実施の形態のLDEVキャッシュ管理テーブル24の「オンメモリフラグ」欄24B「Syncフラグ」欄24C及び「参照カウンタ」欄24Dに格納されるデータと同様のデータが格納される。
また「ブロック番号」欄82Aには、そのレコードに対応する各論理デバイス46内の各ブロックのブロック番号が格納される。さらに「キャッシュ領域アドレス」欄82Eには、そのブロックに格納されていたデータが格納されたファイル共有サーバ81内のLDEVキャッシュ領域28上のアドレスが格納される。なお、本実施の形態において、論理デバイス46が提供する記憶領域の基本的な単位であるブロックと、LDEVキャッシュ領域28の基本単位であるブロックとは、同じ大きさに設定されているものとする。
従って、図30の例では、ストレージ装置4内のある論理デバイス46が提供する記憶領域のうち、ブロック番号が「1」のブロックに格納されたファイルデータは、現在、LDEVキャッシュ領域28内のアドレスが「0xF224」のブロックに読み出されているが、当該ブロックに格納されたデータはかかる論理デバイス46の対応するブロックに格納されたデータと同期がとれておらず、かつ、そのLDEVキャッシュ領域28内のかかるブロックに格納されたデータを、現在3つのアプリケーションプログラム20が参照していることが示されている。
他方、ファイルディスクリプタ管理テーブル83は、ファイル共有サーバ81に実装されたアプリケーションプログラム20が起動されたときにファイルシステムプログラム21(図1)によって作成されるテーブルであり、そのアプリケーションプログラム20がファイルをオープンする際にファイルシステムプログラム21が割り当てるファイルディスクリプタ(識別番号)を管理するために用いられる。
このファイルディスクリプタ管理テーブル83は、図31に示すように、「ファイルディスクリプタ」欄83A、「LDEV番号」欄83B、「使用フラグ」欄83C及び「inodeポインタ」欄84Dから構成される。このうち「LDEV」欄83B及び「使用フラグ」欄83Cには、図26について上述した第1の実施の形態によるファイルディスクリプタ管理テーブル26の「ファイルディスクリプタ」欄26A及び「使用フラグ」欄26Dに格納されるデータと同様のデータが格納される。
また「LDEV番号」欄83Bには、対応するデータが格納されているストレージ装置4内の論理デバイス46の識別番号(LDEV番号)が格納され、「inodeポインタ」欄83Dには、後述のようにファイル共有サーバ81のメモリ12に読み出された対応するファイルシステムFSのiノードへのポインタが格納される。
図32は、本実施の形態の計算機システム80におけるファイルデータの管理方法の概要を示している。計算機システム80において、ファイルディスクリプタ管理テーブル83の各レコードは、それぞれ対応するiノード90A,90Bへのポインタを備える。
iノード90A,90Bは、ファイルごとに作成される当該ファイルの管理情報であり、そのファイルを所有するユーザのユーザID(「UID(User ID)」)や、そのファイルのグループID(「GID(Group ID)」)、そのファイルへのアクセスモード(「mode」)及びそのファイルの実体(ファイルデータ)が格納されている論理デバイス46上のブロックアドレス(「BLOCK」)のほか、そのファイルのサイズ、アクセス権限及び作成日時などの各種情報から構成される。
このiノード90A,90Bは、通常、論理デバイス46内におけるファイルデータが格納されている領域AR2と異なる領域AR1に保存されているが、本実施の形態においては、このiノード90A,90Bを論理デバイス46からファイル共有サーバ3のメモリ12に読み出して利用する。
そして本実施の形態においては、このメモリ12に読み出したiノード90A,90Bを参照して、必要時には論理デバイス46に格納されたファイルデータをブロック単位で読み出すと共に、このブロックに対応したキャッシュ領域28AをLDEVキャッシュ領域28上に確保し、当該キャッシュ領域28A内にかかるブロックから読み出したファイルデータを格納するようにする。
(5−2)本実施の形態のLDEV切替え制御機能に関するCPUの具体的処理内容
(5−2−1)ファイルシステムプログラムに基づくCPUの具体的な処理
(5−2−1−1)ファイルオープン処理
図33は、図13について上述した第1の実施の形態によるファイルオープン処理に代えて、ファイルシステムプログラム84(図29)に基づいてファイル共有サーバ81のCPU11が実行する、本実施の形態によるファイルオープン処理の具体的な処理内容を示すフローチャートである。
(5−2−1)ファイルシステムプログラムに基づくCPUの具体的な処理
(5−2−1−1)ファイルオープン処理
図33は、図13について上述した第1の実施の形態によるファイルオープン処理に代えて、ファイルシステムプログラム84(図29)に基づいてファイル共有サーバ81のCPU11が実行する、本実施の形態によるファイルオープン処理の具体的な処理内容を示すフローチャートである。
CPU11は、図12について上述したファイルアクセス処理のステップSP23に進むとこのファイルオープン処理を開始し(SP250)、まず、ファイルオープン要求と共にアプリケーションプログラム20から与えられたオープン対象の対象ファイルまでのフルパスに基づいて、当該対象ファイルのデータが格納されている論理デバイス46及び当該論理デバイス46上のブロックを検索する(SP251)。
例えば、与えられた対象ファイルまでのファイルパスが「/mut/fs1/aa.txt」であった場合、CPU11は、まず、最初の「/」に対応するiノードを検索する。次いでCPU11は、そのiノードから「mut」に対応するiノードを特定し、その後そのiノードから「fs1」に対応するiノードを取得し、さらにそのiノードから「aa.txt」のiノードを取得する。このとき「aa.txt」のiノードには、対応する論理デバイス46上の対応するブロックのブロック番号が記述されている。かくして、CPU11は、この「aa.txt」のiノードから、所望のブロックのブロック番号を取得することとなる。
次いでCPU11は、LDEVキャッシュ管理テーブル82の対応する「オンメモリフラグ」欄82Bを参照して(SP252)、ステップSP251において取得したブロック番号のブロックに格納されているファイルデータがファイル共有サーバ81のLDEVキャッシュ領域28上に存在するか否かを判断する(SP253)。
そしてCPU11は、この判断において肯定結果を得ると、かかるLDEVキャッシュ領域28から対応するiノードのデータを読み出す(SP254)。またCPU11は、そのとき対象としているiノードに対して、そのとき使用していないファイルディスクリプタを採番して対応付け、その後、当該ブロックに関する必要な情報をファイルディスクリプタ管理テーブル83(図31)に登録する(SP255)。
具体的に、CPU11は、そのとき採番したファイルディスクリプタをファイルディスクリプタ管理テーブル83の「ファイルディスクリプタ」欄83Aに格納すると共に、当該「ファイルディスクリプタ」欄83Aと同じ行の「LDEV番号」欄83Bに、そのブロックを含む論理デバイス46の識別番号を格納する。またCPU11は、かかる「LDEV番号」欄83Bと同じ行の「使用フラグ」欄83Cに「1」を格納すると共に、当該「使用フラグ」欄83Cと同じ行の「iノードポインタ」欄83Dに、対応するiノードへのポインタを格納する。これにより、ファイルディスクリプタ管理テーブル83上に、そのブロックについてのレコードが作成されることとなる。
続いてCPU11は、ステップSP255において採番したファイルディスクリプタを返却値に設定した応答通知をアプリケーションプログラム20に送信する(SP258)。従って、アプリケーションプログラム20は、この後このファイルディスクリプタを利用して、そのブロックにアクセスすることが可能となる。そしてCPU11は、この後このファイルオープン処理を終了する(SP259)。
これに対してCPU11は、ステップSP253の判断において否定結果を得ると、キャッシュ制御プログラム85(図29)にそのとき対象としているブロックに格納されているiノードの読み出しを要求する(SP256)。
またCPU11は、この後この結果としてファイル共有サーバ81のLDEVキャッシュ領域28に読み出されたかかるiノードのデータをステップSP254と同様にしてLDEVキャッシュ領域28から読み出すと共に、そのとき対象としているブロックに関するレコードをステップSP255と同様にしてファイルディスクリプタ管理テーブル83に作成する(SP257)。
次いでCPU11は、ステップSP257において採番したファイルディスクリプタを返却値に設定した応答通知をアプリケーションプログラム20に送信し(SP258)、この後このファイルオープン処理を終了する(SP259)。
(5−2−1−2)ファイル読込み処理
一方、図34は、図14について上述した第1の実施の形態によるファイル読込み処理に代えて、ファイルシステムプログラム84(図29)に基づいてCPU11が実行する、本実施の形態によるファイル読込み処理の具体的な処理内容を示すフローチャートである。
一方、図34は、図14について上述した第1の実施の形態によるファイル読込み処理に代えて、ファイルシステムプログラム84(図29)に基づいてCPU11が実行する、本実施の形態によるファイル読込み処理の具体的な処理内容を示すフローチャートである。
CPU11は、図12について上述したファイルアクセス処理のステップSP24に進むとこのファイル読込み処理を開始し(SP260)、まず、アプリケーションプログラム20から与えられたファイル読込み要求に基づいて、ファイルディスクリプタ及び読込み対象のファイルのサイズを取得する(SP261)。
続いてCPU11は、ファイルディスクリプタ管理テーブル83(図31)を参照して、ステップSP261において取得したファイルディスクリプタに対応するiノードを特定し、このiノードに基づいて、対象とするファイルのデータが格納されているブロックのブロック番号を取得する(SP262)。
次いでCPU11は、対象ファイルが格納されている論理デバイス46の識別番号と、ステップSP262において取得したブロック番号とをファイル読出し要求と共にキャッシュ制御プログラム85(図29)に送信する(SP263)。
そしてCPU11は、この後、かかるファイル読出し要求に対する応答として、返却値に「成功」が設定された応答通知がキャッシュ制御プログラム85から与えられると、対象ファイルのデータが格納されているファイル共有サーバ81内のLDEVキャッシュ領域28のアドレスをLDEVキャッシュ管理テーブル82の対応する「キャッシュ領域アドレス」欄82Eから読み出し、当該アドレス位置から対象ファイルのデータを読み出す(SP264)。
さらにCPU11は、このファイルデータと読込み結果とを対応するアプリケーションプログラム20に送信し(SP265)、この後、このファイル読出し処理を終了する(SP266)。
(5−2−1−3)ファイル書込み処理
他方、図35は、図15について上述した第1の実施の形態によるファイル書込み処理に代えて、ファイルシステムプログラム84(図29)に基づいてファイル共有サーバ81のCPU11が実行する、本実施の形態によるファイル書込み処理の具体的な処理内容を示すフローチャートである。
他方、図35は、図15について上述した第1の実施の形態によるファイル書込み処理に代えて、ファイルシステムプログラム84(図29)に基づいてファイル共有サーバ81のCPU11が実行する、本実施の形態によるファイル書込み処理の具体的な処理内容を示すフローチャートである。
CPU11は、図12について上述したファイルアクセス処理のステップSP25に進むとこのファイル書込み処理を開始し(SP270)、ステップSP271〜ステップSP274を図15について上述した第1の実施の形態によるファイル書込み処理のステップSP71〜ステップSP74と同様に処理する。
そしてCPU11は、ステップSP274の判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP275)、この後このファイル書込み処理を終了する(SP285)。
これに対してCPU11は、ステップSP274の判断において肯定結果を得ると、ファイルディスクリプタ管理テーブル83(図31)を参照して、対象ファイルに対応するiノードへのポインタを検出すると共に、そのiノードに基づいて、対応する論理デバイス46における当該対象ファイルが格納されているブロックのブロック番号を特定する(SP276)。
続いてCPU11は、アプリケーションプログラム20から書込み対象のファイルデータを受け取り(SP277)、この後、ステップSP276において特定したLDEVキャッシュ管理テーブル82上のレコードの「キャッシュ領域アドレス」欄82Eから、ファイル共有サーバ81のLDEVキャッシュ領域28における対象ファイルのデータを書き込むべきキャッシュ領域28Aのアドレスを読み出す(SP278)。
次いで、CPU11は、ステップSP278において対象ファイルのデータを書き込むべきキャッシュ領域28Aのアドレスを読み出せたか否か、つまり当該対象ファイルのデータがLDEVキャッシュ領域28に保持されているか否かを判断する(SP279)。
そしてCPU11は、この判断において肯定結果を得ると、ステップSP277においてアプリケーションプログラム20から受け取ったファイルデータをLDEVキャッシュ領域28内のステップSP278においてLDEVキャッシュ管理テーブル82から読み出したアドレス位置に書き込む(SP282)。
これに対してCPU11は、この判断において否定結果を得ると、図25について上述したキャッシュ領域確保処理を実行することにより、かかる対象ファイルのデータを読み出すべきキャッシュ領域28AをLDEVキャッシュ領域28内に確保する(SP280)。
次いでCPU11は、このようにして確保したキャッシュ領域28AのアドレスをLDEVキャッシュ管理テーブル82(図30)上の対応する「キャッシュ領域アドレス」欄82Eに格納し(SP281)、この後、ステップSP277においてアプリケーションプログラム20から受け取ったファイルデータをこの「キャッシュ領域アドレス」欄82Eに書き込む(SP282)。
さらにCPU11は、LDEVキャッシュ管理テーブル82におけるステップSP272において特定したレコードの「オンメモリフラグ」欄82Bに「1」を格納すると共に、当該レコードの「Syncフラグ」欄82Cに「0」を格納する(SP283)。
次いでCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP284)、この後このファイル読込み処理を終了する(SP285)。
(5−2−1−4)ファイルクローズ処理
図36及び図37は、図16及び図17について上述した第1の実施の形態によるファイルクローズ処理に代えて、ファイルシステムプログラム84(図29)に基づいてCPU11が実行する、本実施の形態によるファイルクローズ処理の具体的な処理内容を示すフローチャートである。
図36及び図37は、図16及び図17について上述した第1の実施の形態によるファイルクローズ処理に代えて、ファイルシステムプログラム84(図29)に基づいてCPU11が実行する、本実施の形態によるファイルクローズ処理の具体的な処理内容を示すフローチャートである。
CPU11は、図12について上述したファイルアクセス処理のステップSP26に進むとこのファイルクローズ処理を開始し(SP290)、まず、ステップSP291〜ステップSP294を図16について上述した第1の実施の形態によるファイルクローズ処理のステップSP91〜ステップSP94と同様に処理する。
そしてCPU11は、ステップSP294の判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP295)、この後このファイル書込み処理を終了する(SP296)。
これに対してCPU11は、ステップSP294の判断において肯定結果を得ると、ファイルディスクリプタ管理テーブル83(図31)を参照して、対象ファイルに対応するiノードのiノード番号を特定する(SP297)。またCPU11は、特定したiノード番号に基づいて、対応する論理デバイス46における当該対象ファイルが格納されているブロックのブロック番号を特定し、当該ブロックに対応するLDEVキャッシュ管理テーブル82(図30)上のレコードを特定する(SP298)。
次いでCPU11は、かかるLDEVキャッシュ管理テーブル82上の特定したレコードの「参照カウンタ」欄82Dに格納されたカウンタ値を読み出し、その値が「1」であるか否かを判断する(SP299)。
ここで、この判断において肯定結果を得ることは、そのファイルに対するファイルアクセスが、そのときファイルクローズ要求を送信してきたアプリケーションプログラム20だけであることを意味する。かくして、このときCPU11は、LDEVキャッシュ管理テーブル82の対応するレコードの「キャッシュ領域アドレス」欄82Eから、対象ファイルのデータが格納されているLDEVキャッシュ領域28のアドレスを読み出す(SP300)。
またCPU11は、この後、対象ファイルのデータをファイル共有サーバ81のLDEVキャッシュ領域28から読み出してストレージ装置4内の対応する論理デバイス46に書き込むキャッシュ読込み処理の実行をキャッシュ制御プログラム85に要求する(SP301)。
そしてCPU11は、この後、キャッシュ制御プログラム85からかかるキャッシュ書込み処理の処理結果を受け取ると(SP302)、当該キャッシュ書込み処理が成功したか否かを判断する(SP303)。
CPU11は、この判断において否定結果を得ると、返却値にエラーを設定した応答通知をアプリケーションプログラム20に送信し(SP304)、この後このファイルクローズ処理を終了する(SP308)。
これに対してCPU11は、かかる判断において肯定結果を得ると、ファイル共有サーバ3のLDEVキャッシュ領域28におけるそのファイルのデータが格納されていたキャッシュ領域28Aを解放すると共に、LDEVキャッシュ管理テーブル82から当該対象ファイルのレコードを削除する(SP305)。
そしてCPU11は、この後LDEVキャッシュ管理テーブル82上の対象ファイルに対応する「参照カウンタ」欄82Dに格納された数値を「1」だけ減少させる(SP306)。またCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP307)、この後このファイルクローズ処理を終了する(SP308)。
一方、ステップSP299の判断において否定結果を得ることは、現在、対象ファイルに対して、そのときファイルクローズ要求を送信してきたアプリケーションプログラム20以外のアプリケーションプログラム20がアクセスしていることを意味する。かくして、このときCPU11は、その対象ファイルのデータをファイル共有サーバ81のLDEVキャッシュ領域28から削除することなく対象ファイルをクローズするための処理を実行する。
具体的にCPU11は、ステップSP299の判断において否定結果を得ると、ステップSP306に進み、この後ステップSP306及びステップSP307を上述と同様に処理した後に、このファイルクローズ処理を終了する(SP308)。
(5−2−2)キャッシュ制御プログラムに基づくCPUの具体的な処理
図38〜図40は、図33について上述した第5の実施の形態によるファイルオープン処理のステップSP256や図34について上述した第5の実施の形態によるファイル読込み処理のステップSP263において発行されるキャッシュ読込み処理要求、又は図36及び図37について上述した第5の実施の形態によるファイルクローズ処理のステップSP301において発行されるキャッシュ書込み処理要求に応じて、キャッシュ制御プログラム85(図29)に基づきCPU11が行う第5の実施の形態によるキャッシュ読込み/書込み処理の具体的な内容を示すフローチャートである。
図38〜図40は、図33について上述した第5の実施の形態によるファイルオープン処理のステップSP256や図34について上述した第5の実施の形態によるファイル読込み処理のステップSP263において発行されるキャッシュ読込み処理要求、又は図36及び図37について上述した第5の実施の形態によるファイルクローズ処理のステップSP301において発行されるキャッシュ書込み処理要求に応じて、キャッシュ制御プログラム85(図29)に基づきCPU11が行う第5の実施の形態によるキャッシュ読込み/書込み処理の具体的な内容を示すフローチャートである。
CPU11は、かかるキャッシュ読込み処理要求又はキャッシュ書込み処理要求がファイルシステムプログラム84(図29)から送信されると、この図38〜図40に示すキャッシュ読込み/書込み処理を開始し(SP310)、まず、かかるキャッシュ読込み要求又はキャッシュ書込み要求を受け取る(SP311)。またCPU11は、この後ファイルシステムプログラム84から送信される、そのとき対象とする論理デバイス46の識別番号及びそのとき対象とするブロックのブロック番号を受け取る(SP312)。
続いてCPU11は、ステップSP311において受け取った処理要求がキャッシュ読込み処理であるか否かを判断する(SP313)。そしてCPU11は、この判断において肯定結果を得ると、LDEVキャッシュ管理テーブル82(図30)の対応する「オンメモリフラグ」欄82Bを参照し(SP314)、この参照結果に基づいて、そのとき対象とするブロックのデータがファイル共有サーバ81のLDEVキャッシュ領域28に保存されているか否かを判断する(SP315)。
CPU11は、この判断において肯定結果を得ると、返却値に「読出し成功」を表すコードを設定した応答通知をアプリケーションプログラム20に送信し(SP316)、この後このキャッシュ読込み/書込み処理を終了する(SP317)。
これに対してCPU11は、かかる判断において否定結果を得ると、LDEVマッピングテーブル23(図29)上の対応するレコードを参照して、そのとき対象としているブロックが格納された論理デバイス46の識別番号と、そのときその論理デバイス46に割り当てられている仮想論理ユニット47の識別番号とを取得する(SP318)。またCPU11は、この後、かかる仮想論理ユニット47の識別番号を取得できたか否かを判断する(SP319)。
この判断において否定結果を得ることは、そのとき対象としているブロックを含む論理デバイス46が、現在、仮想論理ユニット47と対応付けられていないことを意味する。かくして、このときCPU11は、ステップSP320〜ステップSP325を図18〜図20について上述した第1の実施の形態によるキャッシュ読込み/書込み処理のステップSP124〜ステップSP130と同様に処理することにより、そのとき対象としているブロックを含む論理デバイス46をいずれかの仮想論理ユニット47に割り当てる。
またCPU11は、この後、図21について上述したキャッシュ領域確保処理と同様のキャッシュ領域確保処理を実行することにより、ファイル共有サーバ81のLDEVキャッシュ領域28内にそのとき対象としているブロックのデータを読み出すためのキャッシュ領域28Aを確保し(SP326)、当該キャッシュ領域28Aに当該対象ブロックに格納されたデータを読み出す(SP327)。
次いでCPU11は、ステップSP328〜ステップSP332を、上述の第1の実施の形態によるキャッシュ読込み/書込み処理のステップSP133〜ステップSP137と同様に処理することにより、LDEVマッピングテーブル23及びLDEVキャッシュ管理テーブル82を更新し、この後、このキャッシュ読込み/書込み処理を終了する(SP333)。
これに対してステップSP319の判断で肯定結果を得ることは、そのとき対象としているブロックを含む論理デバイス46が、現在、いずれかの仮想論理ユニット47と対応付けられていることを意味する。かくして、このときCPU11は、ステップSP326〜ステップSP332を上述のように処理することにより、そのとき対象としているブロックに格納されているデータをファイル共有サーバ81のLDEVキャッシュ領域28に読み出し、さらにこれに応じてLDEVマッピングテーブル23及びLDEVキャッシュ管理テーブル82を更新する。そしてCPU11は、この後、このキャッシュ読込み/書込み処理を終了する(SP333)。
一方、CPU11は、ステップSP313の判断において否定結果を得ると、LDEVキャッシュ管理テーブル82の対応する「オンメモリフラグ」欄82Bを参照して、そのとき対象とするブロックのデータがファイル共有サーバ81のLDEVキャッシュ領域28に保持されているか否かを判断する(SP335)。
CPU11は、この判断において否定結果を得ると、返却値に「エラー」を表すコードを設定した応答通知をアプリケーションプログラム20に送信し(SP336)、この後このキャッシュ読込み/書込み処理を終了する(SP337)。
これに対してCPU11は、かかる判断において肯定結果を得ると、LDEVキャッシュ管理テーブル82上のそのとき対象としているブロックに対応する「Syncフラグ」欄82Cに「1」が格納されているか否かを判断する(SP338)。
ここで、この判断において肯定結果を得ることは、ファイル共有サーバ81のLDEVキャッシュ領域28上に格納されている対象ブロックのデータと、ストレージ装置4の対応する論理デバイス46に保存されている対象ブロックのデータとが同じ、つまり、その対象ブロックのオープン後に当該対象ブロックのデータが更新されていないことを意味する。従って、この場合には、その対象ブロックをクローズ処理するに際し、ファイル共有サーバ81のLDEVキャッシュ領域28に格納された対象ブロックのデータをストレージ装置4の対応する論理デバイス46に書き戻す必要はない。かくして、このときCPU11は、返却値に「成功」を設定した応答通知をアプリケーションプログラム20に送信し(SP339)、この後このキャッシュ読込み/書込み処理を終了する(SP340)。
これに対して、かかる判断において否定結果を得ることは、ファイル共有サーバ81のLDEVキャッシュ領域28上に格納されている対象ブロックのデータと、ストレージ装置4の対応する論理デバイス46に保存されている対象ブロックのデータとが異なる、つまり、その対象ブロックのオープン後に当該対象ブロックのデータが更新されていることを意味する。従って、この場合には、その対象ファイルをクローズ処理するに際し、ファイル共有サーバ81のLDEVキャッシュ領域28に格納された対象ファイルのデータをストレージ装置4の対応する論理デバイス46に書き戻す必要がある。かくして、このときCPU11は、LDEVマッピングテーブル23(図29)上の対応する「LDEV番号」欄23B及び「割当てLU番号」欄23Cから、対象ブロックを書き込むべき論理デバイス46の識別番号と、そのときその論理デバイス46に割り当てられている仮想論理ユニット47の識別番号とを読み出す(SP341)。
そしてCPU11は、この後ステップSP342〜ステップSP352を上述の第1の実施の形態のステップSP151〜ステップSP160と同様に処理することにより、ファイル共有サーバ81のLDEVキャッシュ領域28に格納されている対象ブロックのデータをストレージ装置4内の対応する論理デバイス46に書き込むと共に、これに応じてLDEVキャッシュ管理テーブル82を更新し、この後キャッシュ読込み/書込み処理を終了する(SP353)。
(5−3)本実施の形態の効果
以上のように本実施の形態による計算機システム80では、ファイルデータをストレージ装置4における記憶領域の管理単位であるブロック単位でファイル共有サーバ81のメモリ12内に設けられたLDEVキャッシュ領域28に保持するようにしているため、対象ファイル内のアクセス対象外のブロックのデータまでもがLDEVキャッシュ領域28に読み込まれることがなく、その分かかるLDEVキャッシュ領域28を有効利用することができる。
以上のように本実施の形態による計算機システム80では、ファイルデータをストレージ装置4における記憶領域の管理単位であるブロック単位でファイル共有サーバ81のメモリ12内に設けられたLDEVキャッシュ領域28に保持するようにしているため、対象ファイル内のアクセス対象外のブロックのデータまでもがLDEVキャッシュ領域28に読み込まれることがなく、その分かかるLDEVキャッシュ領域28を有効利用することができる。
(6)他の実施の形態
なお上述の第1〜第5の実施の形態においては、本発明を図1又は図29のように構成された計算機システム1,60,65,70,80に適用する場合について述べたが、本発明はこれに限らず、要は、上位装置に提供する仮想的な論理ユニットと、データを記憶する論理デバイスとのマッピングを動的に切り替える機能が搭載されたストレージ装置を備える計算機システムであれば、この他種々の構成の計算機システムに広く適用することができる。
なお上述の第1〜第5の実施の形態においては、本発明を図1又は図29のように構成された計算機システム1,60,65,70,80に適用する場合について述べたが、本発明はこれに限らず、要は、上位装置に提供する仮想的な論理ユニットと、データを記憶する論理デバイスとのマッピングを動的に切り替える機能が搭載されたストレージ装置を備える計算機システムであれば、この他種々の構成の計算機システムに広く適用することができる。
また上述の第1〜第5の実施の形態においては、本発明によるLDEV切替え制御機能を適用する情報処理装置としてファイル共有サーバ3を適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の装置に広く適用することができる。例えばかかるLDEV切替え制御機能をストレージ装置4に搭載するようにしても良い。
さらに上述の第1〜第5の実施の形態においては、ファイル共有サーバ3において、ストレージ装置4から読み出したファイルデータを記憶する記憶デバイスとしてメモリ12を適用するようにした場合について述べたが、本発明はこれに限らず、ハードディスク等のディスクデバイスなどのメモリ12以外の記憶デバイスを適用するようにしても良い。
さらに上述の第1〜第5の実施の形態においては、ファイル共有サーバ3において、各種制御プログラムや各種管理テーブルが格納されたメモリ12内にストレージ装置4から読み出したファイルデータを格納するLDEVキャッシュ領域28,51を作成するようにした場合について述べたが、本発明はこれに限らず、かかるメモリ12とは別に専用の記憶デバイスを設け、当該記憶デバイスが提供する記憶領域上にLDEVキャッシュ領域28,51を作成するようにしても良い。
さらに上述の第1〜第5の実施の形態においては、仮想的論理ユニット47と論理デバイス46とのマッピングの切り替えを必要に応じてストレージ装置4に要求し、必要なファイルのデータをストレージ装置4内の対応する論理デバイス46から読み出してファイル共有サーバ3のメモリ12に格納し、ファイルアクセスクライアント2から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、メモリ12に格納された当該ファイルのデータに対して行う処理部を、ファイルシステムプログラム21,52,84及びキャッシュ制御プログラム22,61,71,85と、LDEVマッピングテーブル23及びLDEVキャッシュ管理テーブル24等の管理テーブルと、CPU11とで構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を広く適用することができる。この場合において、かかる処理部による処理の一部をハードウェア構成とするようにしても良い。
さらに上述の第3の実施の形態においては、メモリ12内のLDEVキャッシュ領域28に格納された全ファイルのデータを、定期的にストレージ装置4内の対応する論理デバイス46にそれぞれ書き込ませるようにした場合について述べたが、本発明はこれに限らず、例えばLDEVキャッシュ領域28に格納されたいずれかのファイルのデータをストレージ装置4内の対応する論理デバイス46に書き込むタイミングなど、定期的なタイミング以外のタイミングでメモリ12内のLDEVキャッシュ領域28に格納された全ファイルのデータをストレージ装置4内の対応する論理デバイス46にそれぞれ書き込ませるようにしても良い。
本発明は、記憶装置としてLDEVジュークボックス機能が搭載されたストレージ装置を備える種々の構成のストレージシステムに広く適用することができる。
1,60,65,70,80……計算機システム、2……ファイルアクセスクライアント、3、81……ファイル共有サーバ、4……ストレージ装置、5……管理装置、11……CPU、12……メモリ、20……アプリケーションプログラム、21,62,84……ファイルシステムプログラム、22,66,71,85……キャッシュ制御プログラム、23……LDEVマッピングテーブル、24,82……LDEVキャッシュ管理テーブル、25……LU割当て管理テーブル、26,83……ファイルディスクリプタ管理テーブル、27……キャッシュ領域管理テーブル、28,61……LDEVキャッシュ領域、28A……キャッシュ領域、30……ディスクデバイス、90A,90B……iノード、LDEV……論理デバイス、LU……仮想論理ユニット、FS……ファイルシステム。
Claims (20)
- データを記憶するための記憶領域を提供する記憶デバイスと、
当該記憶領域上にキャッシュ領域を作成すると共に、上位装置に提供する仮想的な論理ユニットと、前記上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置における前記論理ユニット及び前記論理デバイス間のマッピングの切り替えを必要に応じて前記ストレージ装置に要求し、必要なファイルのデータを前記ストレージ装置内の対応する前記論理デバイスから読み出して前記キャッシュ領域に格納し、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、前記キャッシュ領域に格納された当該ファイルのデータに対して行う処理部と
を備えることを特徴とする情報処理装置。 - 前記処理部は、
前記ファイルのデータを、当該ファイルのオープン時に前記ストレージ装置内の対応する前記論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納し、
当該キャッシュ領域に格納された前記ファイルのデータを、当該ファイルのクローズ時に前記ストレージ装置内の対応する前記論理デバイスに書き込ませる
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理部は、
前記記憶デバイス内の前記キャッシュ領域にデータが格納された前記ファイルに対する前記ファイル処理要求が与えられたときには、当該ファイル処理要求に応じたデータ入出力処理を前記キャッシュ領域に格納された当該データに対して行い、前記記憶デバイスにデータが格納されていない前記ファイルに対する前記ファイル処理要求が与えられたときには、当該ファイルのデータを前記ストレージ装置内の対応する論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納する
を備えることを特徴とする請求項1に記載の情報処理装置。 - 前記処理部は、
ファイルシステムをマウント処理する際に、当該ファイルシステムに属する各前記ファイルのデータを格納するための当該ファイルシステムに専用の前記キャッシュ領域を前記記憶デバイス内に作成し、当該ファイルシステムをアンマウント処理する際に当該キャッシュ領域を削除する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理部は、
前記記憶デバイス内の前記キャッシュ領域に格納された各前記ファイルのデータを、所定のタイミングで前記ストレージ装置内の対応する前記論理デバイスにそれぞれ書き込ませる
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理部は、
前記記憶デバイスの残容量に応じて、当該記憶デバイスに格納されているいずれかの前記ファイルのデータを前記ストレージ装置内の対応する前記論理デバイスに書き込ませると共に、前記記憶デバイスにおける当該ファイルのデータが格納されていた前記キャッシュ領域を解放した後、必要なファイルのデータを前記ストレージ装置内の対応する論理デバイスから読み出して、当該キャッシュ領域に書き込む
ことを特徴とする請求項1に記載の情報処理装置。 - 前記処理部は、
前記ファイルのデータを、前記ストレージ装置における前記記憶領域の管理単位であるブロック単位で前記論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納し、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、当該ブロック単位で行う
ことを特徴とする請求項1に記載の情報処理装置。 - 記憶デバイスが提供する記憶領域上にキャッシュ領域を作成すると共に、上位装置に提供する仮想的な論理ユニットと、前記上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置における前記論理ユニット及び前記論理デバイス間のマッピングの切り替えを必要に応じて前記ストレージ装置に要求し、必要なファイルのデータを前記ストレージ装置内の対応する前記論理デバイスから読み出して前記キャッシュ領域に格納する第1のステップと、
前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、前記キャッシュ領域に格納された当該ファイルのデータに対して行う第2のステップと
を備えることを特徴とする情報処理方法。 - 前記第1のステップでは、前記ファイルのデータを、当該ファイルのオープン時に前記ストレージ装置内の対応する前記論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納し、
当該キャッシュ領域に格納された前記ファイルのデータを、当該ファイルのクローズ時に前記ストレージ装置内の対応する前記論理デバイスに書き込ませる第3のステップを備える
ことを特徴とする請求項8に記載の情報処理方法。 - 前記第1のステップでは、
前記記憶デバイス内の前記キャッシュ領域にデータが格納された前記ファイルに対する前記ファイル処理要求が与えられたときには、当該ファイル処理要求に応じたデータ入出力処理を前記キャッシュ領域に格納された当該データに対して行い、前記記憶デバイスにデータが格納されていない前記ファイルに対する前記ファイル処理要求が与えられたときには、当該ファイルのデータを前記ストレージ装置内の対応する論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納する
ことを特徴とする請求項8に記載の情報処理方法。 - 前記第1のステップでは、ファイルシステムをマウント処理する際に、当該ファイルシステムに属する各前記ファイルのデータを格納するための当該ファイルシステムに専用の前記キャッシュ領域を前記記憶デバイス内に作成し、
当該ファイルシステムをアンマウント処理する際に当該キャッシュ領域を削除する第3のステップを備える
ことを特徴とする請求項8に記載の情報処理方法。 - 前記記憶デバイス内の前記キャッシュ領域に格納された各前記ファイルのデータを、所定のタイミングで前記ストレージ装置内の対応する前記論理デバイスにそれぞれ書き込ませる
ことを特徴とする請求項8に記載の情報処理方法。 - 前記第1のステップでは、
前記記憶デバイスの残容量に応じて、当該記憶デバイスに格納されているいずれかの前記ファイルのデータを前記ストレージ装置内の対応する前記論理デバイスに書き込ませると共に、前記記憶デバイスにおける当該ファイルのデータが格納されていた前記キャッシュ領域を解放した後、必要なファイルのデータを前記ストレージ装置内の対応する論理デバイスから読み出して、当該キャッシュ領域に書き込む
ことを特徴とする請求項8に記載の情報処理方法。 - 前記第1のステップでは、
前記ファイルのデータを、前記ストレージ装置における前記記憶領域の管理単位であるブロック単位で前記論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納し、
前記第2のステップでは、
前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、当該ブロック単位で行う
ことを特徴とする請求項8に記載の情報処理方法。 - 上位装置に提供する仮想的な論理ユニットと、前記上位装置から与えられたデータを記憶する論理デバイスとのマッピングを外部からの要求に応じて動的に切り替えるストレージ装置と、
所定の記憶デバイスが提供する記憶領域上にキャッシュ領域を作成すると共に、前記論理ユニット及び前記論理デバイス間のマッピングの切り替えを必要に応じて前記ストレージ装置に要求し、必要なファイルのデータを前記ストレージ装置内の対応する前記論理デバイスから読み出して前記キャッシュ領域に格納し、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、前記キャッシュ領域に格納された当該ファイルのデータに対して行うサーバ装置と
を備えることを特徴とするストレージシステム。 - 前記サーバ装置は、
前記ファイルのデータを、当該ファイルのオープン時に前記ストレージ装置内の対応する前記論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納し、
当該キャッシュ領域に格納された前記ファイルのデータを、当該ファイルのクローズ時に前記ストレージ装置内の対応する前記論理デバイスに書き込ませる
ことを特徴とする請求項15に記載のストレージシステム。 - 前記サーバ装置は、
ファイルシステムをマウント処理する際に、当該ファイルシステムに属する各前記ファイルのデータを格納するための当該ファイルシステムに専用の前記キャッシュ領域を前記記憶デバイス内に作成し、当該ファイルシステムをアンマウント処理する際に当該キャッシュ領域を削除する
ことを特徴とする請求項15に記載のストレージシステム。 - 前記サーバ装置は、
前記記憶デバイス内の前記キャッシュ領域に格納された各前記ファイルのデータを、所定のタイミングで前記ストレージ装置内の対応する前記論理デバイスにそれぞれ書き込ませる
ことを特徴とする請求項15に記載のストレージシステム。 - 前記処理部は、
前記記憶デバイスの残容量に応じて、当該記憶デバイスに格納されているいずれかの前記ファイルのデータを前記ストレージ装置内の対応する前記論理デバイスに書き込ませると共に、前記記憶デバイスにおける当該ファイルのデータが格納されていた前記キャッシュ領域を解放した後、必要なファイルのデータを前記ストレージ装置内の対応する論理デバイスから読み出して、当該キャッシュ領域に書き込む
ことを特徴とする請求項15に記載のストレージシステム。 - 前記処理部は、
前記ファイルのデータを、前記ストレージ装置における前記記憶領域の管理単位であるブロック単位で前記論理デバイスから読み出して前記記憶デバイス内の前記キャッシュ領域に格納し、前記上位装置から与えられる当該ファイルに対するファイルアクセス要求に応じたデータ入出力処理を、当該ブロック単位で行う
ことを特徴とする請求項15に記載のストレージシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006254113A JP2008077290A (ja) | 2006-09-20 | 2006-09-20 | 情報処理装置及び情報処理方法並びにストレージシステム |
US11/593,976 US7624230B2 (en) | 2006-09-20 | 2006-11-06 | Information processing apparatus, information processing method and storage system using cache to reduce dynamic switching of mapping between logical units and logical devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006254113A JP2008077290A (ja) | 2006-09-20 | 2006-09-20 | 情報処理装置及び情報処理方法並びにストレージシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008077290A true JP2008077290A (ja) | 2008-04-03 |
Family
ID=39190033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006254113A Pending JP2008077290A (ja) | 2006-09-20 | 2006-09-20 | 情報処理装置及び情報処理方法並びにストレージシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7624230B2 (ja) |
JP (1) | JP2008077290A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012128845A (ja) * | 2010-12-16 | 2012-07-05 | Internatl Business Mach Corp <Ibm> | データ処理のための方法、システム、およびコンピュータ・プログラム |
US9933978B2 (en) | 2010-12-16 | 2018-04-03 | International Business Machines Corporation | Method and system for processing data |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009098887A (ja) * | 2007-10-16 | 2009-05-07 | Hitachi Ltd | 記憶システム及びデータ消去方法 |
JP5081761B2 (ja) * | 2008-08-05 | 2012-11-28 | 富士通株式会社 | アーカイブ装置,不正アクセス検出方法及び不正アクセス検出プログラム |
US8555019B2 (en) | 2010-09-08 | 2013-10-08 | International Business Machines Corporation | Using a migration cache to cache tracks during migration |
US8667098B2 (en) * | 2010-12-03 | 2014-03-04 | Hitachi, Ltd. | Cluster storage setting method, system, and management system |
US8745329B2 (en) * | 2011-01-20 | 2014-06-03 | Google Inc. | Storing data across a plurality of storage nodes |
US8966190B1 (en) * | 2012-03-31 | 2015-02-24 | Emc Corporation | System and method for assigning control of a logical unit number |
US8914583B1 (en) | 2012-03-31 | 2014-12-16 | Emc Corporation | System and method for improving cache performance |
US8909886B1 (en) | 2012-03-31 | 2014-12-09 | Emc Corporation | System and method for improving cache performance upon detecting a migration event |
US10496491B1 (en) * | 2015-09-30 | 2019-12-03 | EMC IP Holding Company LLC | Cloning a volume drawn from different storage tiers with consistent performance |
CN106648440B (zh) * | 2015-10-28 | 2020-07-24 | 华为技术有限公司 | 操作存储设备的控制方法和存储设备 |
US11507512B2 (en) * | 2020-12-08 | 2022-11-22 | EMC IP Holding Company LLC | Fault tolerant cluster data handling |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499354A (en) * | 1993-05-19 | 1996-03-12 | International Business Machines Corporation | Method and means for dynamic cache management by variable space and time binding and rebinding of cache extents to DASD cylinders |
JP4299555B2 (ja) * | 2002-03-15 | 2009-07-22 | 富士通株式会社 | キャッシュ制御プログラム |
US20050071560A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corp. | Autonomic block-level hierarchical storage management for storage networks |
JP4463042B2 (ja) | 2003-12-26 | 2010-05-12 | 株式会社日立製作所 | ボリュームの動的割り付け機能を有する記憶装置システム |
JP4574315B2 (ja) | 2004-10-07 | 2010-11-04 | 株式会社日立製作所 | ストレージ装置およびストレージ装置における構成管理方法 |
-
2006
- 2006-09-20 JP JP2006254113A patent/JP2008077290A/ja active Pending
- 2006-11-06 US US11/593,976 patent/US7624230B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012128845A (ja) * | 2010-12-16 | 2012-07-05 | Internatl Business Mach Corp <Ibm> | データ処理のための方法、システム、およびコンピュータ・プログラム |
US9933978B2 (en) | 2010-12-16 | 2018-04-03 | International Business Machines Corporation | Method and system for processing data |
US10884670B2 (en) | 2010-12-16 | 2021-01-05 | International Business Machines Corporation | Method and system for processing data |
Also Published As
Publication number | Publication date |
---|---|
US20080071983A1 (en) | 2008-03-20 |
US7624230B2 (en) | 2009-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008077290A (ja) | 情報処理装置及び情報処理方法並びにストレージシステム | |
US7343465B2 (en) | Storage system | |
US8667241B2 (en) | System for data migration from a storage tier allocated to a virtual logical volume | |
US7594084B2 (en) | File storage control device and method | |
US9454317B2 (en) | Tiered storage system, storage controller and method of substituting data transfer between tiers | |
US7383465B1 (en) | Undoable volume using write logging | |
US7603529B1 (en) | Methods, systems, and computer program products for mapped logical unit (MLU) replications, storage, and retrieval in a redundant array of inexpensive disks (RAID) environment | |
US7975115B2 (en) | Method and apparatus for separating snapshot preserved and write data | |
US7584229B2 (en) | Method and system for priority-based allocation in a storage pool | |
US8271444B2 (en) | Storage control device to backup data stored in virtual volume | |
US20080282047A1 (en) | Methods and apparatus to backup and restore data for virtualized storage area | |
US20130227236A1 (en) | Systems and methods for storage allocation | |
US7185048B2 (en) | Backup processing method | |
US20120151169A1 (en) | Storage apparatus | |
US20080320258A1 (en) | Snapshot reset method and apparatus | |
JP2010541060A (ja) | シン・プロビジョニングの移行および取り消しのための方法および装置 | |
WO2010106694A1 (en) | Data backup system and data backup method | |
JP5715297B2 (ja) | ストレージ装置及びその制御方法 | |
KR20120093061A (ko) | 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적 | |
JP2011215750A (ja) | バックアップ装置,バックアップ方法およびバックアッププログラム | |
JP2019028954A (ja) | ストレージ制御装置、プログラム、及び重複排除方法 | |
US10387043B2 (en) | Writing target file including determination of whether to apply duplication elimination | |
WO2016038714A1 (ja) | ファイルシステム、データ重複排除方法、及びファイルシステムのためのプログラム | |
JP6579149B2 (ja) | ストレージ制御装置、及びストレージ制御プログラム | |
JP6805501B2 (ja) | ストレージ装置 |