以下、発明を実施するための形態について図面とともに説明する。
図1に実施形態として説明する情報処理システム1の概略的な構成を示している。同図に示すように、本実施形態として例示する情報処理システム1は、商社や電機メーカ等の企業における支点や事業所などのように、ユーザが実際に業務を行う拠点(以下、エッジ50(Edge)と称する。)に設けられるハードウエアと、データセンタのように、情報処理システム(アプリケーションサーバ/ストレージシステム等)の管理やクラウドサービスの提供などを行う拠点(以下、コア51(Core)と称する。)に設けられるハードウエアと、を備える。
同図に示すように、エッジ50には、第1サーバ装置3a、第1ストレージ装置10a、及びクライアント装置2が設けられている。またコア51には、第2サーバ装置3b及び第2ストレージ装置10bが設けられている。
エッジに設けられている第1サーバ装置3aは、例えば、エッジに設けられているクライアント装置2に対してファイルを単位としたデータの管理機能を提供するファイルシステムを備えたファイルストレージ装置である。またコアに設けられている第2サーバ装置3bは、例えば、エッジに設けられている第1ストレージ装置10aに対してデータのアーカイブ(書庫)先として機能するアーカイブ装置である。
同図に示すように、クライアント装置2と第1サーバ装置3aとは、通信ネットワーク5を介して通信可能に接続している。また第1サーバ装置3aと第1ストレージ装置10aとは、第1ストレージネットワーク6aを介して通信可能に接続している。また第2サーバ装置3bと第2ストレージ装置10bとは、第2ストレージネットワーク6bを介して通信可能に接続している。また第1サーバ装置3aと第2サーバ装置3bとは、通信ネットワーク7を介して通信可能に接続している。
通信ネットワーク5及び通信ネットワーク7は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、公衆通信網、専用線などである。第1ストレージネットワーク6a及び第2ストレージネットワーク6bは、例えば、LAN、WAN、SAN(Storage Area Network)、インターネット、公衆通信網、専用線などである。
通信ネットワーク5、通信ネットワーク7、第1ストレージネットワーク6a、及び第2ストレージネットワーク6bを介して行われる通信は、例えば、TCP/IP、iSCSI(internet Small Computer System Interface)、ファイバーチャネルプロトコル(Fibre Channel Protocol)、FICON(Fibre Connection)(登録商標)、ESCON(Enterprise System Connection) (登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre Connection Architecture)(登録商標)などのプロトコルに従って行われる。
クライアント装置2は、第1サーバ装置3aを介して第1ストレージ装置10aが提供する記憶領域を利用する情報処理装置(コンピュータ)であり、例えば、パーソナルコンピュータ、オフィスコンピュータなどである。クライアント装置2では、ファイルシステム、カーネルやドライバなどのソフトウエアモジュールによって実現されるオペレーティングシステム(Operating System)、及びアプリケーションなどが機能している。
図2にクライアント装置2のハードウエアを示している。同図に示すように、クライアント装置2は、CPU21、揮発性または不揮発性のメモリ22(RAMまたはROM)、記憶装置23(例えばハードディスクドライブ、半導体記憶装置(SSD(Solid State Drive)))、キーボードやマウス等の入力装置24、液晶モニタやプリンタ等の出力装置25、及びNIC(Network Interface Card)(以下、LANアダプタ261と称する。)等の通信インタフェース(通信I/F26と称する。)を備えている。
第1サーバ装置3aは、第1ストレージ装置10aが提供する記憶領域を利用してクライアント装置2に情報処理サービスを提供する情報処理装置である。第1サーバ装置3aは、パーソナルコンピュータ、メインフレーム(Mainframe)、オフィスコンピュータなどを用いて構成されている。第1サーバ装置3aは、第1ストレージ装置10aが提供する記憶領域へのアクセスに際し、データI/O要求(データ書き込み要求、データ読み出し要求等)を含んだデータフレーム(以下、フレームと略記する。)を、第1ストレージネットワーク6aを介して第1ストレージ装置10aに送信する。尚、上記フレームは、例えば、ファイバーチャネルのフレーム(FCフレーム(FC: Fibre Channel))である。
第2サーバ装置3bは、第2ストレージ装置10bが提供する記憶領域を利用して情報処理を行う情報処理装置である。第2サーバ装置3bは、パーソナルコンピュータ、メインフレーム、オフィスコンピュータなどを用いて構成されている。第2サーバ装置3bは、第2ストレージ装置10bが提供する記憶領域へのアクセスに際し、データI/O要求を含んだフレームを、第2ストレージネットワーク6bを介して第2ストレージ装置10bに送信する。
図3に第1サーバ装置3aのハードウエアを示している。同図に示すように、第1サーバ装置3aは、CPU31、揮発性または不揮発性のメモリ32(RAMまたはROM)、記憶装置33(例えばハードディスクドライブ、半導体記憶装置(SSD))、キーボードやマウス等の入力装置34、液晶モニタやプリンタ等の出力装置35、NIC(以下、LANアダプタ361と称する。)やHBA(以下、FCアダプタ362と称する。)等の通信インタフェース(通信I/F36と表記する。)、及びタイマ回路やRTC等を用いて構成される計時装置37を備えている。尚、コア側に存在する第2サーバ装置3bも第1サーバ装置3aと同一又は類似のハードウエア構成を有する。
図4に第1ストレージ装置10aのハードウエアを示している。第1ストレージ装置10aは、例えばディスクアレイ装置である。尚、コア側に存在する第2ストレージ装置10bも第1ストレージ装置10aと同一又は類似のハードウエア構成を有する。ストレージ装置10は、サーバ装置3(第1サーバ装置3a又は第2サーバ装置3b。以下同様)から送られてくるデータI/O要求を受け付け、受け付けたデータI/O要求に応じて記録媒体にアクセスしてサーバ装置3にデータやレスポンスを送信する。
同図に示すように、ストレージ装置10は、一つ以上のチャネル基板11、一つ以上のプロセッサ基板12(Micro Processor)、一つ以上のドライブ基板13、キャッシュメモリ14(Cache Memory)、共有メモリ15(Shared Memory)、内部スイッチ16、記憶装置17、及び保守装置18(SVP: SerVice Processor)を備える。チャネル基板11、プロセッサ基板12、ドライブ基板13、キャッシュメモリ14、及び共有メモリ15は、内部スイッチ16を介して互いに通信可能に接続されている。
チャネル基板11は、サーバ装置3から送られてくるフレームを受信し、受信したフレームに含まれているデータI/O要求についての処理の応答(例えば読み出したデータ、読み出し完了報告、書き込み完了報告)を含んだフレームをサーバ装置3に送信する。
プロセッサ基板12は、チャネル基板11が受信したフレームに含まれている上記データI/O要求に応じて、チャネル基板11、ドライブ基板13、及びキャッシュメモリ14の間で行われるデータ転送(DMA(Direct Memory Access)等を用いた高速大容量のデータ転送)に関する処理を行う。プロセッサ基板12は、キャッシュメモリ14を介して行われる、チャネル基板11とドライブ基板13との間のデータ(記憶装置17から読み出したデータ、記憶装置17に書き込むデータ)の転送(引き渡し)や、キャッシュメモリ14に格納されるデータのステージング(記憶装置17からのデータの読み出し)及びデステージング(記憶装置17への書き出し)等を行う。
キャッシュメモリ14は、高速アクセスが可能なRAM(Random Access Memory)を用いて構成されている。キャッシュメモリ14には、記憶装置17に書き込まれるデータ(以下、書き込みデータと称する。)や記憶装置17から読み出されたデータ(以下、読み出しデータと記載する。)等が格納される。共有メモリ15には、ストレージ装置10の制御に用いられる様々な情報が格納される。
ドライブ基板13は、記憶装置17からのデータの読み出しや記憶装置17へのデータの書き込みに際して記憶装置17と通信を行う。内部スイッチ16は、例えば高速クロスバースイッチ(Cross Bar Switch)を用いて構成される。尚、内部スイッチ16を介して行われる通信は、例えば、ファイバーチャネル、iSCSI、TCP/IP等のプロトコルに従って行われる。
記憶装置17は、複数の記憶ドライブ171を備えて構成されている。記憶ドライブ171は、例えば、SAS(Serial Attached SCSI)、SATA(Serial ATA)、FC(Fibre Channel)、PATA(Parallel ATA)、SCSI等のタイプのハードディスクドライブ、半導体記憶装置(SSD)等である。
記憶装置17は、記憶ドライブ171を、例えば、RAID(Redundant Arrays of Inexpensive (or Independent) Disks)等の方式で制御することによって提供される論理的な記憶領域を単位としてサーバ装置3に記憶装置17の記憶領域を提供する。この論理的な記憶領域は、例えばRAIDグループ(パリティグループ(Parity Group))を用いて構成される論理装置(LDEV172(LDEV: Logical Device))である。
またストレージ装置10は、サーバ装置3に対してLDEV172を用いて構成される論理的な記憶領域(以下、LU(Logical Unit、Logical Volume、論理ボリューム)と称する。)を提供する。ストレージ装置10は、LUとLDEV172との対応(関係)を管理しており、ストレージ装置10は、この対応に基づきLUに対応するLDEV172の特定、もしくは、LDEV172に対応するLUの特定を行う。
図5にチャネル基板11のハードウエア構成を示している。同図に示すように、チャネル基板11は、サーバ装置3と通信するためのポート(通信ポート)を有する外部通信インタフェース(以下、外部通信I/F111と表記する。)、プロセッサ112(フレーム処理チップ及びフレーム転送チップを含む)、メモリ113、プロセッサ基板12と通信するためのポート(通信ポート)を有する内部通信インタフェース(以下、内部通信I/F114と表記する。)を備えている。
外部通信I/F111は、NIC(Network Interface Card)やHBA(Host Bus Adaptor)等を用いて構成されている。プロセッサ112は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等を用いて構成されている。メモリ113は、RAM(Random Access Memory)、ROM(Read Only Memory)である。メモリ113にはマイクロプログラムが格納されている。プロセッサ112が、メモリ113から上記マイクロプログラムを読み出して実行することにより、チャネル基板11が提供する各種の機能が実現される。内部通信I/F114は、内部スイッチ16を介してプロセッサ基板12、ドライブ基板13、キャッシュメモリ14、共有メモリ15と通信する。
図6にプロセッサ基板12のハードウエア構成を示している。プロセッサ基板12は、内部通信インタフェース(以下、内部通信I/F121と表記する。)、プロセッサ122、及び共有メモリ15に比べてプロセッサ122からのアクセス性能が高い(高速アクセスが可能な)メモリ123(ローカルメモリ)を備えている。メモリ123にはマイクロプログラムが格納されている。プロセッサ122が、メモリ123から上記マイクロプログラムを読み出して実行することにより、プロセッサ基板12が提供する各種の機能が実現される。
内部通信I/F121は、内部スイッチ16を介してチャネル基板11、ドライブ基板13、キャッシュメモリ14、及び共有メモリ15と通信を行う。プロセッサ122は、CPU、MPU、DMA(Direct Memory Access)等を用いて構成されている。メモリ123は、RAM又はROMである。プロセッサ122は、メモリ123及び共有メモリ15のいずれにもアクセスすることができる。
図7にドライブ基板13のハードウエア構成を示している。ドライブ基板13は、内部通信インタフェース(以下、内部通信I/F131と表記する。)、プロセッサ132、メモリ133、及びドライブインタフェース(以下、ドライブI/F134と表記する。)を備えている。メモリ133にはマイクロプログラムが格納されている。プロセッサ132が、メモリ133から上記マイクロプログラムを読み出して実行することにより、ドライブ基板13が提供する各種の機能が実現される。内部通信I/F131は、内部スイッチ16を介して、チャネル基板11、プロセッサ基板12、キャッシュメモリ14、及び共有メモリ15と通信する。プロセッサ132は、CPU、MPU等を用いて構成されている。メモリ133は、例えば、RAM、ROMである。ドライブI/F134は、記憶装置17との間で通信を行う。
図4に示した保守装置18は、ストレージ装置10の各構成要素の制御や状態監視を行う。保守装置18は、パーソナルコンピュータやオフィスコンピュータ等である。保守装置18は、内部スイッチ16又はLAN等の通信手段を介してチャネル基板11、プロセッサ基板12、ドライブ基板13、キャッシュメモリ14、共有メモリ15、及び内部スイッチ16等のストレージ装置10の構成要素と随時通信を行い、各構成要素から稼働情報等を取得して管理装置19に提供する。また保守装置18は管理装置19から送られてくる制御情報や稼働情報に基づき、各構成要素の設定や制御、保守(ソフトウエアの導入や更新を含む)を行う。
管理装置19は、保守装置18とLAN等を介して通信可能に接続されるコンピュータである。管理装置19はストレージ装置10の制御や監視のためのGUI(Graphical User Interface)やCLI(Command Line Interface)等を用いたユーザインタフェースを備える。
図8にストレージ装置10が備える基本的な機能を示している。同図に示すように、ストレージ装置10は、I/O処理部811を備えている。I/O処理部811は、記憶装置17への書き込みに関する処理を行うデータ書き込み処理部8111、記憶装置17からのデータの読み出しに関する処理を行うデータ読み出し処理部8112を備えている。
尚、I/O処理部811の機能は、ストレージ装置10のチャネル基板11やプロセッサ基板12、ドライブ基板13が備えるハードウエアにより、又はプロセッサ112,122,132が、メモリ113,123,133に格納されているマイクロプログラムを読み出して実行することにより実現される。
図9は、ストレージ装置10(第1ストレージ装置10a又は第2ストレージ装置10b。以下同様。)がサーバ装置3(第1サーバ装置3a又は第2サーバ装置3b)からデータ書き込み要求を含んだフレームを受信した場合に、I/O処理部81のデータ書き込み処理部8111によって行われる基本的な処理(以下、書き込み処理S900と称する。)を説明するフローチャートである。以下、同図とともに書き込み処理S900について説明する。尚、以下の説明において、符号の前に付している「S」の文字は処理ステップを意味している。
同図に示すように、まずサーバ装置3から送信されてくるデータ書き込み要求のフレームが、ストレージ装置10のチャネル基板11によって受信される(S911,S912)。
チャネル基板11は、サーバ装置3からデータ書き込み要求を含んだフレームを受信すると、その旨をプロセッサ基板12に通知する(S913)。
プロセッサ基板12は、チャネル基板11から上記通知を受信すると(S921)、当該フレームのデータ書き込み要求に基づくドライブ書き込み要求を生成し、書き込みデータをキャッシュメモリ14に格納し、チャネル基板11に上記通知の受信通知を応答する(S922)。またプロセッサ基板12は、生成したドライブ書き込み要求をドライブ基板13に送信する(S923)。
一方、チャネル基板11は、プロセッサ基板12からの上記応答を受信すると、サーバ装置3に完了報告を送信し(S914)、サーバ装置3は、チャネル基板11から完了報告を受信する(S915)。
ドライブ基板13は、プロセッサ基板12からドライブ書き込み要求を受信すると、受信したドライブ書き込み要求を書き込み処理待ちキューに登録する(S924)。
ドライブ基板13は、書き込み処理待ちキューからドライブ書き込み要求を随時読み出し(S925)、読み出したドライブ書き込み要求に指定されている書き込みデータをキャッシュメモリ14から読み出して、読み出した書き込みデータを記憶装置(記憶ドライブ171)に書き込む(S926)。そしてドライブ基板13は、ドライブ書き込み要求について書き込みデータの書き込みが完了した旨の報告(完了報告)をプロセッサ基板12に通知する(S927)。
プロセッサ基板12は、ドライブ基板13から送られてきた完了報告を受信する(S928)。
図10は、ストレージ装置10が、サーバ装置3からデータ読み出し要求を含んだフレームを受信した場合に、ストレージ装置10のI/O処理部811の読み出し処理部8112によって行われるI/O処理(以下、読み出し処理S1000と称する。)を説明するフローチャートである。以下、同図とともに読み出し処理S1000について説明する。
同図に示すように、まずサーバ装置3から送信されてくるフレームが、ストレージ装置10のチャネル基板11によって受信される(S1011,S1012)。
チャネル基板11は、サーバ装置3からデータ読み出し要求を含んだフレームを受信すると、その旨をプロセッサ基板12及びドライブ基板13に通知する(S1013)。
ドライブ基板13は、チャネル基板11から上記通知を受信すると(S1014)、当該フレームに含まれているデータ読み出し要求に指定されているデータ(例えばLBA(Logical Block Address)によって指定される)を、記憶装置(記憶ドライブ171)から読み出す(S1015)。尚、キャッシュメモリ14に読み出しデータが存在する場合(キャッシュヒットした場合)には、記憶装置17からの読み出し処理(S1015)は省略される。
プロセッサ基板12は、ドライブ基板13によって読み出されたデータをキャッシュメモリ14に書き込む(S1016)。そしてプロセッサ基板12は、キャッシュメモリ14に書き込んだデータをチャネル基板11に随時転送する(S1017)。
チャネル基板11は、プロセッサ基板12から随時送られてくる読み出しデータを受信すると、それらをサーバ装置3に順次送信する(S1018)。読み出しデータの送信が完了すると、チャネル基板11は、サーバ装置3に完了報告を送信する(S1019)。サーバ装置3は、読み出しデータ及び完了報告を受信する(S1020,S1021)。
図11にクライアント装置2が備える主な機能を示している。同図に示すように、クライアント装置2は、アプリケーション211、ファイルシステム212、及びカーネル/ドライバ213の各機能を備える。尚、これらの機能は、クライアント装置2のCPU21が、メモリ22や記憶装置23に格納されているプログラムを読み出して実行することにより実現される。
ファイルシステム212は、クライアント装置2に対してファイル単位又はディレクトリ単位での論理ボリューム(LU)へのI/O機能を実現する。ファイルシステム213は、例えば、FAT(File Allocation Table)、NTFS、HFS(Hierarchical File System)、ext2(second extended file system)、ext3(third extended file system)、ext4(fourth extended file system)、UDF(Universal Disk Format)、HPFS(High Performance File system)、JFS(Journaled File System)、UFS(Unix File System)、VTOC(Volume Table Of Contents)、XFS等である。
カーネル/ドライバ213は、オペレーティングシステムのソフトウエアを構成しているカーネルモジュールやドライバモジュールを実行することにより実現される。カーネルモジュールには、クライアント装置2において実行されるソフトウエアについて、プロセスの管理、プロセスのスケジューリング、記憶領域の管理、ハードウエアからの割り込み要求のハンドリング等、オペレーティングシステムが備える基本的な機能を実現するためのプログラムが含まれている。ドライバモジュールには、クライアント装置2を構成しているハードウエアやクライアント装置2に接続して用いられる周辺機器とカーネルモジュールとが通信するためのプログラム等が含まれている。
図12に第1サーバ装置3aが備える主な機能、及び第1サーバ装置3aにおいて管理される主な情報(データ)を示している。同図に示すように、第1サーバ装置3aでは、仮想環境を提供する仮想化制御部305、及びこの仮想化制御部305の制御の下で動作する1つ以上の仮想マシン310が実現されている。
各仮想マシン310では、ファイル共有処理部311、ファイルシステム312、データ操作要求受付部313、データ複製/移動処理部314、ファイルアクセスログ取得部317、及びカーネル/ドライバ318の各機能が実現されている。
尚、仮想環境は、第1サーバ装置3aのハードウエアと仮想化制御部305との間にオペレーティングシステムを介在させるいわゆるホストOS型、もしくは第1サーバ装置3aのハードウエアと仮想化制御部305との間にオペレーティングシステムを介在させないハイパーバイザー型のいずれの方式で実現されていてもよい。またデータ操作要求受付部313、データ複製/移動処理部314、ファイルアクセスログ取得部317の各機能は、ファイルシステム312の機能として実現してもよいし、ファイルシステム312とは独立した機能として実現してもよい。
同図に示すように、各仮想マシン310は、レプリケーション情報管理テーブル331、ファイルアクセスログ335などの情報(データ)を管理している。これらの情報は、第1ストレージ10aから第1サーバ装置3aに随時読み出されて第1サーバ装置3aのメモリ32や記憶装置33に格納される。
同図に示す機能のうち、ファイル共有処理部311は、クライアント装置2にファイルの共有環境を提供する。ファイル共有処理部311は、例えば、NFS(Network File System)、CIFS(Common Internet File System)、AFS(Andrew File System)等のプロトコルに従った機能を提供する。
ファイルシステム312は、クライアント装置2に対して、第1ストレージ装置10aによって提供される論理ボリューム(LU)に管理されるファイル(又はディレクトリ)に対するI/O機能を提供する。ファイルシステム312は、例えばFAT(File Allocation Table)、NTFS、HFS(Hierarchical File System)、ext2(second extended file system)、ext3(third extended file system)、ext4(fourth extended file system)、UDF(Universal Disk Format)、HPFS(High Performance File system)、JFS(Journaled File System)、UFS(Unix File System)、VTOC(Volume Table Of Contents)、XFS等である。
データ操作要求受付部313は、クライアント装置2から送信されてくるデータの操作に関する要求(以下、データ操作要求と称する。)を受け付ける。データ操作要求には、後述する、レプリケーション開始要求、レプリケーションファイルに対する更新要求、レプリケーションファイルに対する参照要求、同期要求、メタデータに対するアクセス要求、ファイルの実体に対する参照要求、リコール要求、スタブ化ファイルの実体に対する更新要求などがある。
尚、スタブ化とは、ファイル(又はディレクトリ)のデータのメタデータについては第1ストレージ装置10aにて保持するが、ファイル(又はディレクトリ)のデータの実体については第1ストレージ装置10a側では管理せず、第2ストレージ装置10bにおいてのみ保持するようにすることをいう。スタブ化されたファイル(又はディレクトリ)に対してそのファイル(又はディレクトリ)の実体が必要になるようなデータI/O要求を第1サーバ装置3aが受け付けた場合には、そのファイル(又はディレクトリ)の実体が第2ストレージ装置10bから第1ストレージ装置10aに送信される(書き戻される(以下、リコールと称する。))。
データ複製/移動処理部314は、後述する、レプリケーション開始処理S2400、スタブ化候補選出処理S2500、同期処理S2900、スタブ化ファイル実体参照処理S3100、スタブ化ファイル実体更新処理S3200、仮想マシン復旧処理S3300、ディレクトリイメージ事前回復処理S3400、オンデマンド復元処理S3500、オンデマンド復元処理(復元対象追加有)S3700、再スタブ化回避処理S3800などにおいて、第1サーバ装置3aと第2サーバ装置3bとの間、もしくは、第1ストレージ装置10aと第2ストレージ装置10bとの間での制御情報(フラグやテーブルを含む)の授受やデータ(ファイルのメタデータや実体を含む)の転送、レプリケーション情報管理テーブル331、メタデータ332などの各種テーブルの管理を行う。
図12に示すカーネル/ドライバ318は、オペレーティングシステムのソフトウエアを構成しているカーネルモジュールやドライバモジュールを実行することにより実現される。カーネルモジュールには、第1サーバ装置3aにおいて実行されるソフトウエアについて、プロセスの管理、プロセスのスケジューリング、記憶領域の管理、ハードウエアからの割り込み要求のハンドリング等、オペレーティングシステムが備える基本的な機能を実現するためのプログラムが含まれる。ドライバモジュールには、第1サーバ装置3aを構成しているハードウエアや第1サーバ装置3aに接続して用いられる周辺機器とカーネルモジュールとが通信するためのプログラムが含まれる。
図12に示すファイルアクセスログ取得部317は、ストレージ装置10の論理ボリューム(LU)に格納されているファイルへのアクセス(ファイルの更新(Write, Update)、ファイルの読み出し(Read)、ファイルのオープン(Open)、ファイルのクローズ(Close)等)が行われると、そのアクセスの内容(履歴)を示す情報(以下、アクセスログと称する。)を、計時装置37から取得される日時情報に基づくタイムスタンプを付与してファイルアクセスログ335として記憶する。
図13にレプリケーション情報管理テーブル331の一例を示している。同図に示すように、レプリケーション情報管理テーブル331には、レプリケーション先となるホスト名3311(例えばIPアドレス等のネットワークアドレス。)、スタブ化するか否かの判断に用いる閾値3312(後述するスタブ化閾値)が設定される。
図14にファイルアクセスログ335の一例を示している。同図に示すように、ファイルアクセスログ335には、アクセス日時3351、ファイル名3352、及びユーザID3353の各項目からなる一つ以上のレコードで構成されるアクセスログが記録される。
このうちアクセス日時3351には、そのファイル(又はディレクトリ)に対するアクセスがされた日時が設定される。ファイル名3352には、アクセス対象となったファイル(又はディレクトリ)のファイル名(又はディレクトリ名)が設定される。ユーザID3353には、そのファイル(又はディレクトリ)にアクセスしたユーザのユーザIDが設定される。
図15に第2サーバ装置3bが備える主な機能、及び第2サーバ装置3bにおいて管理される主な情報(データ)を示している。同図に示すように、第2サーバ装置3bは、ファイル共有処理部351、ファイルシステム352、データ複製/移動処理部354、及びカーネル/ドライバ358の各機能を備えている。尚、データ複製/移動処理部354の機能は、ファイルシステム352の機能として実現してもよいし、ファイルシステム352とは独立した機能として実現してもよい。
また同図に示すように、第2サーバ装置3bは、リストアログ365、抑制フラグ管理テーブル366、リコールログ367、及びファイルアクセスログ368を管理している。
ファイル共有処理部351は、第1サーバ装置3aに対してファイルの共有環境を提供する。ファイル共有処理部351は、例えばNFS、CIFS、AFS等のプロトコルを用いて実現されている。
ファイルシステム352は、第2ストレージ装置10bによって提供される論理ボリューム(LU)を用い、第1サーバ装置3aに対してファイル単位又はディレクトリ単位での論理ボリューム(LU)へのI/O機能を提供する。ファイルシステム352は、例えばFAT、NTFS、HFS、ext2、ext3、ext4、UDF、HPFS、JFS、UFS、VTOC、XFSなどである。
データ複製/移動処理部354は、第1ストレージ装置10aと第2ストレージ装置10bとの間でのデータの移動や複製に関する処理を行う。
カーネル/ドライバ358は、オペレーティングシステムのソフトウエアを構成しているカーネルモジュールやドライバモジュールを実行することにより実現される。カーネルモジュールには、第2サーバ装置3bにおいて実行されるソフトウエアについて、プロセスの管理、プロセスのスケジューリング、記憶領域の管理、ハードウエアからの割り込み要求のハンドリング等、オペレーティングシステムが備える基本的な機能を実現するためのプログラムが含まれる。ドライバモジュールには、第2サーバ装置3bを構成しているハードウエアや第2サーバ装置3bに接続して用いられる周辺機器とカーネルモジュールとが通信するためのプログラムが含まれる。
図16にリストアログ365の一例を示している。リストアログ365は、後述するディレクトリイメージの復元(リストア)が行われた場合に、第1サーバ装置3a又は第2サーバ装置3bによって復元に関する処理の内容が記録される。同図に示すように、リストアログ365は、日時3651、イベント3652、及びリストア対象ファイル3653の各項目を有する一つ以上のレコードで構成される。
このうち日時3651には、リストアに関するイベントが実行された日時が設定される。イベント3652には、実行されたイベントの内容を示す情報(リストア開始、リストア実行等)が設定される。リストア対象ファイル3653には、リストアの対象となったファイル(又はディレクトリ)を特定する情報(パス名、ファイル名(又はディレクトリ名)等)が設定される。
図17に抑制フラグ管理テーブル366の一例を示している。抑制フラグ管理テーブル366の内容は第2サーバ装置3bによって管理される。同図に示すように、抑制フラグ管理テーブル366には、後述する再スタブ化回避処理S3800において用いられる抑制フラグ3661、及び抑制フラグ3661の最終更新日時3662が管理されている。
図18にリコールログ367の一例を示している。リコールログ367の内容は第2サーバ装置3bによって生成される。リコールログ367には、第2サーバ装置3bが第1サーバ装置3aから受け付けたリコール要求の履歴が管理される。同図に示すように、リコールログ367は、日時3671及びリコール対象ファイル3672の各項目を有する一つ以上のレコードで構成されている。日時3671には、リコール要求を受け付けた日時が設定される。リコール対象ファイル3672には、受け付けたリコール要求に指定されているリコール対象となるファイル(又はディレクトリ)を特定する情報(パス名、ファイル名等)が設定される。
第2サーバ装置3bが管理しているファイルアクセスログ368の内容は、第1サーバ装置3aにおけるファイルアクセスログ335の内容に基本的に一致している。第1サーバ装置3aからファイルアクセスログ335の内容を第2サーバ装置3bに随時通知することにより、両者の同一性が確保されている。
次に第1サーバ装置3aが備えるファイルシステム312(第2サーバ3bが備えるファイルシステム352も同様である。)について詳細に説明する。
図19は、ファイルシステム312が論理ボリューム(LU)上に管理するデータの構造(以下、ファイルシステム構造1900と称する。)の一例である。同図に示すように、ファイルシステム構造1900には、スーパーブロック1911、inode管理テーブル1912、ファイルの実体(データ)が格納されるデータブロック1913の各記憶領域が含まれている。
このうちスーパーブロック1911には、ファイルシステム312に関する情報(ファイルシステムが取り扱う記憶領域の容量、使用量、空き容量等)が格納される。スーパーブロック1911は、原則としてディスク区画(論理ボリューム(LU)上に設定されるパーティション)ごとに設けられる。スーパーブロック1911に格納される上記情報の具体例として、区画内のデータブロック数、ブロックサイズ、空きブロック数、空きinode数、当該区画のマウント数、最新の整合性チェック時からの経過時間等がある。
inode管理テーブル1912には、論理ボリューム(LU)に格納されるファイル(又はディレクトリ)の管理情報(以下、inodeと称する。)が格納される。ファイルシステム312は、1つのファイル(又はディレクトリ)に対して1つのinodeを対応させて管理している。inodeのうちディレクトリに関する情報のみを含むものはディレクトリエントリと称される。ファイルに対するアクセスが行われる場合にはディレクトリエントリを参照してアクセス対象のファイルのデータブロックにアクセスする。例えば、「/home/user-01/a.txt」というファイルにアクセスする場合には、図20に示すように、inode番号2→10→15→100とディレクトリエントリを順に辿ってアクセス対象ファイルのデータブロックにアクセスする。
図21に一般的なファイルシステム(例えば、UNIX(登録商標)系のオペレーティングシステムが備えるファイルシステム)におけるinodeの概念を示している。また図22にinode管理テーブル1912の一例を示している。
これらの図に示すように、inodeには、個々のinodeを区別する識別子であるinode番号2211、当該ファイル(又はディレクトリ)の所有者2212、当該ファイル(又はディレクトリ)について設定されているアクセス権2213、当該ファイル(又はディレクトリ)のファイルサイズ2214、当該ファイル(又はディレクトリ)の最終更新日時2215、当該inodeがディレクトリエントリである場合に設定される当該ディレクトリの親ディレクトリ2216、当該inodeがディレクトリエントリである場合に設定される当該ディレクトリの子ディレクトリ2217、当該ファイルのデータの実体が格納されるデータブロックを特定する情報(以下、ブロックアドレス2218と称する。)などの情報が含まれる。
図23に示すように、本実施形態のファイルシステム312は、図22に示した通常の一般的なファイルシステムにおけるinode管理テーブル1912の内容に加えて、更にスタブ化フラグ2311、メタデータ同期要フラグ2312、実体同期要フラグ2313、レプリケーションフラグ2314、リンク先2315、及び重要度2316を管理している。
尚、レプリケーションによる管理方式やスタブ化による管理方式により、第1ストレージ装置10aに記憶されているファイルのメタデータ(図23に示した各種のフラグを含む。)の複製が第2ストレージ装置10bにも記憶されている場合(レプリケーションされている場合)には、後述する同期処理S2900によって一方の装置のメタデータが更新されるとその旨が他方の装置にも通知される。これにより第1ストレージ装置10aのメタデータと第2ストレージ装置10bのメタデータの内容の同一性がほぼリアルタイムに確保される。
同図において、スタブ化フラグ2311には、当該inodeに対応するファイル(又はディレクトリ)がスタブ化されているか否かを示す情報が設定される。ここでスタブ化とは、第1ストレージ装置10aから第2ストレージ装置10bにファイル(又はディレクトリ)を移動(マイグレーション)するに際し、移動元の第1ストレージ装置10aからそのファイルのデータのうち実体のみ削除し、そのファイルのデータのうちメタデータについては削除せずに移動元の第1ストレージ装置10aに残すことをいう。
尚、スタブ(stub)とは、その場合に第1ストレージ装置10aに残留するメタデータのことをいう。当該inodeに対応するファイル(又はディレクトリ)がスタブ化されている場合はスタブ化フラグ2311にONが設定され、スタブ化されていない場合はスタブ化フラグ2311にOFFが設定される。
メタデータ同期要フラグ2312には、複製元の第1ストレージ装置10aのファイル(又はディレクトリ)のメタデータと複製先の第2ストレージ装置10bのファイル(又はディレクトリ)のメタデータとの間で同期をとる必要(内容を一致させる必要)が有るか否かを示す情報が設定される。メタデータの同期が必要な場合はメタデータ同期要フラグ2312にONが設定され、同期が不要な場合はメタデータ同期要フラグ2312にOFFが設定される。
実体同期要フラグ2313には、複製元の第1ストレージ装置10aのファイルのデータの実体と複製先の第2ストレージ装置10bのファイルのデータの実体との間で同期をとる必要(内容を一致させる必要)が有るか否かを示す情報が設定される。ファイルのデータの実体について同期が必要な場合は実体同期要フラグ2313にONが設定され、同期が不要な場合は実体同期要フラグ2313にOFFが設定される。
メタデータ同期要フラグ2312及び実体同期要フラグ2313は、後述する同期処理S2900において随時参照される。メタデータ同期要フラグ2312、もしくは実体同期要フラグ2313がONになっている場合は、第1ストレージ装置10aのメタデータ又は実体と、その複製である第2ストレージ装置10bのメタデータ又は実体とが自動的に同期される。
レプリケーションフラグ2314には、そのinodeに対応するファイル(又はディレクトリ)が、現在後述するレプリケーション管理方式による管理の対象になっているか否かを示す情報が設定される。当該inodeに対応するファイルが、現在、レプリケーション管理方式による管理の対象になっている場合はレプリケーションフラグ2314にONが設定され、レプリケーションによる管理の対象になっていない場合はレプリケーションフラグ2314にOFFが設定される。
リンク先2315には、そのinodeに対応するファイルが、後述するレプリケーション管理方式で管理されている場合は、そのファイルの複製先を示す情報(例えば、格納先を特定するパス名、RAIDグループの識別子、ブロックアドレス、URL(Uniform Resource Locator)、LU等)が設定される。
重要度2316には、ファイルの重要度が設定される。重要度2316の内容は、例えばユーザがクライアント装置2において設定する。また重要度2316は負荷分散等を目的として設定される場合もある。
=概略的な動作=
次に、以上の構成からなる情報処理システム1の動作について説明する。
図24は、第1サーバ装置3aが、1ストレージ装置10aに格納されているファイルを対象としたレプリケーションを開始させる旨の要求(以下、レプリケーション開始要求と称する。)を受け付けた場合に、情報処理システム1において行われる処理(以下、レプリケーション開始処理S2400と称する)を説明する図である。
第1サーバ装置3aは、クライアント装置2からレプリケーション開始要求を受け付けると、当該要求に対象として指定されているファイルについてレプリケーションによる管理方式による管理を開始する。尚、第1サーバ装置3aは、通信ネットワーク5を介してクライアント装置2からレプリケーション開始要求を受け付ける以外に、例えば、当該第1サーバ装置3aにおいて内部的に発生するレプリケーション開始要求も受け付ける。
ここでレプリケーションによる管理方式とは、ファイルのデータ(メタデータ及び実体)を、第1ストレージ装置10a及び第2ストレージ装置10bの双方において管理する方式である。
レプリケーションによる管理方式では、第1ストレージ装置10aに格納されているファイルの実体又はメタデータが更新されると、このファイルの複製(又はアーカイブファイル)として管理されている、第2ストレージ装置10b側のファイルのメタデータ又は実体が、同期又は非同期に更新される。レプリケーションによる管理方式が行われることにより、第1ストレージ装置10aに格納されているファイルのデータ(メタデータ又は実体)と、その複製として第2ストレージ装置10bに格納されているファイルのデータ(メタデータ又は実体)の一致性が、同期又は非同期に確保(保証)される。
尚、第2ストレージ装置10b側のファイル(アーカイブファイル)におけるメタデータはファイルの実体として管理してもよい。そのようにすることで、第1サーバ装置3aのファイルシステム312と第2サーバ装置3bのファイルシステム352の仕様が相違する場合でもレプリケーションによる管理方式を実現することができる。
同図に示すように、レプリケーション開始要求を受け付けると(S2411)、第1サーバ装置3aは、受け付けたレプリケーション開始要求に指定されているファイルのデータ(メタデータ及び実体)を第1ストレージ装置10aから読み出し、読み出したファイルのデータを第2サーバ装置3bに送信する(S2412)。
第2サーバ3bは、第1サーバ装置3aから送られてくる、上記ファイルのデータを受信すると、受信したデータを第2ストレージ装置10bに格納する(S2413)。
尚、上記転送に際し、第1サーバ装置3aのデータ複製/移動処理部314は、転送元ファイルのレプリケーションフラグ2314をONに設定する(S2414)。
図25は、第1ストレージ装置10aに格納されている、レプリケーション管理方式により管理されているファイル(レプリケーションフラグ2314がONに設定されているファイル。以下、レプリケーションファイルと称する。)を前述したスタブ化の候補として設定する際に、情報処理システム1において行われる処理(以下、スタブ化候補選出処理S2500と称する。)を説明する図である。以下、同図とともにスタブ化候補選出処理S2500について説明する。
第1サーバ装置3aは、ファイル格納領域の残容量を随時(リアルタイム、定期的、予め設定されたタイミング等)監視している。
第1サーバ装置3aは、ファイルシステム312に対してファイルの格納領域として割り当てられている第1ストレージ装置10aの記憶領域(以下、ファイル格納領域と称する。)の残容量が、予め設定された閾値(以下、スタブ化閾値と称する。)未満になると、所定の選出基準に従い、第1ストレージ装置10aに格納されているレプリケーションファイルの中からスタブ化の候補を選出する(S2511)。尚、上記所定の選出基準としては、例えば、最終更新日時が古い順、アクセス頻度の低い順などがある。
次に第1サーバ装置3aは、スタブ化の候補を選出すると、選出したレプリケーションファイルのスタブ化フラグ2311をON、レプリケーションフラグ2314をOFF、メタデータ同期要フラグ2312をONに夫々設定する(S2512)。尚、第1サーバ装置3aは、ファイル格納領域の残容量を、例えば、ファイルシステム312が管理している情報から取得する。
図26は、スタブ化候補選出処理S2500によってスタブ化候補として選出されたファイルを実際にスタブ化する際、情報処理システム1において行われる処理(以下、スタブ化処理S2600と称する。)を説明する図である。スタブ化処理S2600は、例えば、予め設定されたタイミング(例えばスタブ化候補選出処理S2500が行われたのに続いて)で行われる。以下、同図とともにスタブ化処理S2600について説明する。
同図に示すように、第1サーバ装置3aは、第1ストレージ装置10aのファイル格納領域に格納されているファイルの中から、スタブ化候補として選出されているファイル(スタブ化フラグ2311がONに設定されているファイル)を一つ以上抽出する(S2611)。
そして第1サーバ装置3aは、抽出したファイルの実体を第1ストレージ装置10aから削除するとともに、抽出したファイルのメタデータからそのファイルの第1ストレージ装置10aの格納先を示す情報に無効な値を設定し(例えば、メタデータの当該ファイルの格納先を設定する欄(例えばブロックアドレス2218を設定する欄)にNULL値やゼロを設定する。)、スタブ化候補として選出されているファイルを実際にスタブ化する。またこのとき第1サーバ装置3aは、メタデータ同期要フラグ2312をONに設定する(S2612)。
図27は、第1サーバ装置3aが、クライアント装置2から第1ストレージ装置10aのファイル格納領域に格納されているレプリケーションファイルに対する更新要求を受け付けた場合に、情報処理システム1において行われる処理(以下、レプリケーションファイル更新処理S2700と称する。)を説明する図である。以下、同図とともにレプリケーションファイル更新処理S2700について説明する。
第1サーバ装置3aは、レプリケーションファイルに対する更新要求を受け付けると(S2711)、その第1ストレージ装置10aに格納されているそのレプリケーションファイルのデータ(メタデータ、実体)を、受け付けた更新要求に従って更新する(S2712)。
そして第1サーバ装置3aは、メタデータを更新した場合はそのレプリケーションファイルのメタデータ同期要フラグ2312をONに設定し、レプリケーションファイルの実体を更新した場合はそのレプリケーションファイルの実体同期要フラグ2313をONに設定する(S2713)。
図28は、第1サーバ装置3aのファイルシステム312が、クライアント装置2から、第1ストレージ装置10aのファイル格納領域に格納されているレプリケーションファイルに対する参照要求を受け付けた場合に情報処理システム1において行われる処理(以下、レプリケーションファイル参照処理S2800と称する。)を説明する図である。以下、同図とともにレプリケーションファイル参照処理S2800について説明する。
第1サーバ装置3aのファイルシステム312は、レプリケーションファイルに対する更新要求を受け付けると(S2811)、そのレプリケーションファイルのデータ(メタデータ又は実体)を第1ストレージ装置10aから読み出し(S2812)、読み出したデータに基づきクライアント装置2に対して応答する情報を生成し、生成した応答情報をクライアント装置2に送信する(S2813)。
図29は、第1サーバ装置3aが、クライアント装置2から、第1ストレージ装置10aに格納されているレプリケーションファイルとその第2ストレージ装置10b側のファイルの内容とを一致させる要求(以下、同期要求と称する。)を受け付けた際に情報処理システム1において行われる処理(以下、同期処理S2900と称する。)を説明する図である。以下、同図とともに同期処理S2900について説明する。
尚、同期処理S2900は、クライアント装置2からの同期要求を受け付けた場合以外の事象を契機として開始するようにしてもよい。例えば、予め設定されたタイミング(リアルタイム、定期的等)が到来したことを契機として、第1サーバ装置3aが自発的に同期処理S2900を開始するようにしてもよい。
第1サーバ装置3aは、クライアント装置2からレプリケーションファイルの同期要求を受け付けると(S2911)、第1ストレージ装置10aのファイル格納領域に格納されているレプリケーションファイルのうち、メタデータ同期要フラグ2312又は実体同期要フラグ2313の少なくともいずれかがONに設定されているファイルを取得する(S2912)。
そして第1サーバ装置3aは、取得したファイルのメタデータ又は実体を第2サーバ装置3bに送信するとともに、当該レプリケーションファイルのメタデータ同期要フラグ2312又は実体同期要フラグ2313をOFFに設定する(S2913)。
第2サーバ装置3bは、メタデータ又は実体を受信すると(S2913)、受信したメタデータ又は実体に対応する、第2ストレージ装置10bに格納されているファイルのメタデータ又は実体を、受信したメタデータ又は実体に基づき更新する(S2914)。 尚、第1サーバ装置3aから第2サーバ装置3bにメタデータ又は実体の全体を送信するのではなく、前回同期時からの更新差分のみを送信するようにしてもよい。
以上に説明した同期処理S2900が行われることにより、第1ストレージ装置10aに格納されているファイルのデータ(メタデータ及び実体)と、当該ファイルに対応する第2ストレージ装置10bに格納されているファイルのデータ(メタデータ及び実体)とが同期される。
図30は、第1サーバ装置3aのファイルシステム312が、クライアント装置2等から、スタブ化されているファイル(スタブ化フラグ2311がONに設定されているファイル)のメタデータに対するアクセス要求(参照要求又は更新要求)を受け付けた場合に情報処理システム1において行われる処理(以下、メタデータアクセス処理S3000と称する。)を説明する図である。以下、同図とともにメタデータアクセス処理S3000について説明する。
同図に示すように、第1サーバ装置3aは、スタブ化されているファイルのメタデータに対するアクセス要求を受け付けると(S3011)、アクセス要求の対象になっている第1ストレージ装置10aのメタデータを取得し、アクセス要求の内容に従い参照(読み出したメタデータに基づく応答情報のクライアント装置2への送信)、又はメタデータの更新を行う(S3012)。またメタデータの内容を更新した場合には、そのファイルのメタデータ同期要フラグ2312にONを設定する(S3013)。
このように、第1サーバ装置3aは、スタブ化されているファイルに対するアクセス要求が発生し、そのアクセス要求がそのファイルのメタデータのみを対象としている場合には、第1ストレージ装置10aに格納されているメタデータを用いてアクセス要求を処理する。このため、アクセス要求がそのファイルのメタデータのみを対象としている場合にはクライアント装置2に迅速に応答を返すことができる。
図31は、第1サーバ装置3aが、クライアント装置2から、スタブ化されているファイル(スタブ化フラグ2311がONに設定されているファイル。以下、スタブ化ファイルと称する。)の実体に対する参照要求を受け付けた場合に情報処理システム1において行われる処理(以下、スタブ化ファイル実体参照処理S3100と称する。)を説明する図である。以下、同図とともにスタブ化ファイル実体参照処理S3100について説明する。
第1サーバ装置3aは、クライアント装置2からスタブ化ファイルの実体に対する参照要求を受け付けると(S3111)、取得したメタデータを参照して当該スタブ化ファイルの実体が第1ストレージ装置10aに格納されているか否かを判断する(S3112)。ここでこの判断は、例えば、取得したメタデータにスタブ化ファイルの実体の格納先を示す情報(例えばブロックアドレス2218)に有効な値が設定されているか否かに基づいて行う。
上記判断の結果、スタブ化ファイルの実体が第1ストレージ装置10aに格納されている場合には、第1サーバ装置3aは、第1ストレージ装置10aから当該スタブ化ファイルの実体を読み出し、読み出した実体に基づきクライアント装置2に応答する情報を生成し、生成した応答情報をクライアント装置2に送信する(S3113)。
一方、上記判断の結果、スタブ化ファイルの実体が第1ストレージ装置10aに格納されていない場合には、第1サーバ装置3aは、第2サーバ装置3bに対してスタブ化ファイルの実体の提供を要求する(以下、リコール要求と称する。)(S3114)。 尚、実体の取得要求は、必ずしも一度の取得要求によって実体の全体を取得する要求でなくてもよく、例えば実体の一部のみを複数回要求するようにしてもよい。
第1サーバ装置3aは、上記取得要求に応じて第2サーバ装置3bから送られてくるスタブ化ファイルの実体を受信すると(S3115)、受信した実体に基づき応答情報を生成し、生成した応答情報をクライアント装置2に送信する(S3116)。
また第1サーバ装置3aは、上記第2サーバ装置3bから受信した実体を第1ストレージ装置10aに格納し、当該スタブ化ファイルのメタデータの当該ファイルの実体の格納先を示す情報(例えばブロックアドレス2218)に、当該ファイルの第1ストレージ装置10aにおける格納先を示す内容を設定する。また第1サーバ装置3aは、当該ファイルのスタブ化フラグ2311をOFFに、レプリケーションフラグ2314をONに、メタデータ同期要フラグ2312をONに、夫々設定する(当該ファイルをスタブ化ファイルからレプリケーションファイルに変更する。)(S3117)。
尚、メタデータ同期要フラグ2312をONに設定するのは、第1ストレージ装置10aと第2ストレージ装置10bとの間で、当該スタブ化ファイルのスタブ化フラグ2311及びレプリケーションフラグ2314の内容を事後的に自動的に同期させるためである。
図32は、第1サーバ装置3aが、クライアント装置2からスタブ化ファイルの実体に対する更新要求を受け付けた場合に、情報処理システム1において行われる処理(以下、スタブ化ファイル実体更新処理S3200と称する。)を説明する図である。以下、同図とともにスタブ化ファイル実体更新処理S3200について説明する。
第1サーバ装置3aは、スタブ化ファイルの実体に対する更新要求を受け付けると(S3211)、更新要求の対象になっているスタブ化ファイルのメタデータを取得し、取得したメタデータに基づき当該スタブ化ファイルの実体が第1ストレージ装置10aに格納されているか否かを判断する(S3212)。尚、判断方法はスタブ化ファイル実体参照処理S3100の場合と同様である。
上記判断の結果、スタブ化ファイルの実体が第1ストレージ装置10aに格納されていた場合、第1サーバ装置3aは、第1ストレージ装置10aに格納されている当該スタブ化ファイルの実体を更新要求の内容に従って更新するとともに、当該スタブ化ファイルの実体同期要フラグ2313をONに設定する(S3213)。
一方、スタブ化ファイルの実体が第1ストレージ装置10aに格納されていない場合、第1サーバ装置3aは、第2サーバ装置3bに当該スタブ化ファイルの実体の取得要求(リコール要求)を送信する(S3214)。
第1サーバ装置3aは、上記要求に応じて第2サーバ装置3bから送られてきたファイルの実体を受信すると(S3215)、受信した実体の内容を更新要求の内容に従って更新し、更新後の実体を当該スタブ化ファイルの実体として第1ストレージ装置10aに格納する。また第1サーバ装置3aは、当該スタブ化ファイルのスタブ化フラグ2311をOFF、レプリケーションフラグ2314をOFF、メタデータ同期要フラグ2312をONに夫々設定する(S3216)。
<障害回復時の処理>
次に第1サーバ装置3aにおいて何らかの障害が発生して情報処理システム1の機能が停止し、その後、第1サーバ装置3aが修復されて情報処理システム1の機能を再開させる場合に当該情報処理システム1において行われる処理について説明する。
図33は、修復した第1サーバ装置3aに仮想マシン310を復旧させる際に情報処理システム1において行われる処理(以下、仮想マシン復旧処理S3300と称する。)を説明する図である。以下、同図とともに仮想マシン復旧処理S3300について説明する。
尚、仮想マシン復旧処理S3300を実行する前提として、仮想マシン310を復旧させるための仮想マシンイメージ(仮想化制御部305に仮想マシン310を実現させるために必要な構成情報であり、例えば、CPUやメモリ等のハードウエア構成、記憶領域のサイズ、ネットワーク仕様等の情報が含まれる。)が、第2ストレージ装置10bに予め格納されているものとする。
同図に示すように、まず第1サーバ装置3aにおいて、ブートローダ等を用いて記録媒体3310等に記録されているインストールプログラムを実行し、第1サーバ装置3aに仮想化制御部305をインストールし(S3311)、仮想化制御部305の機能を開始させる(S3312)。
次に、機能を開始した仮想化制御部305が、第2サーバ装置3bに仮想マシンイメージの提供を要求する(S3313)。
第2サーバ装置3bは、第1サーバ装置3aから上記要求を受信すると、上記要求に指定されている仮想マシンイメージを第2ストレージ装置10bから取得し(S3314)、取得した仮想マシンイメージを第1サーバ装置3aに送信する(S3315)。
尚、第2サーバ装置3bは、仮想マシンイメージを、例えば、第1サーバ装置3aの識別子(以下、サーバIDと称する。)と第1サーバ装置3aにおいて実現される仮想マシン310の識別子(以下、仮想マシンIDと称する。)とに対応付けて管理しており、上記取得要求を受信すると、その取得要求に指定されているサーバID及び仮想マシンIDで特定される仮想マシンイメージを特定し、特定した仮想マシンイメージを第1ストレージ装置10aに送信する。
第1サーバ装置3aは、第2サーバ装置3bから仮想マシンイメージを受信すると(S3316)、受信した仮想マシンイメージを第1ストレージ装置10aに格納し、受信した仮想マシンイメージに基づく仮想マシン310の動作を開始させる(S3317)。
尚、以上に説明した仮想マシン復旧処理S3300は、原則として仮想マシンイメージに基づく仮想マシン310の再起動が必要になるような大きな障害が発生した場合に行われ、例えば、障害が仮想マシン310の再起動が必要になるような障害でない場合は必ずしも仮想マシン310を再起動させる必要はない。
図34は、図33に示した仮想マシン復旧処理S3300により第1サーバ装置3aにおいて仮想マシン310が動作を開始した後、クライアント装置2からのデータI/O要求を受け付ける前に、情報処理システム1において行われる、ディレクトリイメージを復旧させる処理(以下、ディレクトリイメージ事前回復処理S3400と称する。)を説明する図である。以下、同図とともにディレクトリイメージ事前回復処理S3400について説明する。
まず第1サーバ装置3aが、仮想マシン復旧処理S3300によって再起動された仮想マシン310のファイルシステム312が、障害が発生する前に第1ストレージ装置10aに構成していたディレクトリの構成(つまり第2ストレージ装置10bに記憶されているディレクトリの構成であり、ディレクトリの階層構造を示すデータ、ディレクトリのデータ(メタデータ)、及びファイルのデータ(メタデータ及び実体)を含む。以下、ディレクトリイメージと称する。)における、最上位ディレクトリ(以下、ルートディレクトリと称する。)に存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータの取得要求を、第2サーバ装置3bに送信する(S3411)。
尚、本実施形態において、ルートディレクトリに存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータという場合には、ルートディレクトリに存在する(から見える)ディレクトリ及びファイルは含まれるが、ルートディレクトリに存在するディレクトリの更に配下に存在するディレクトリやそのディレクトリに存在するファイルは含まれない。
第2サーバ装置3bは、上記取得要求を受信すると、要求されているルートディレクトリに存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータを、第2ストレージ装置10bから取得し(S3412)、取得したメタデータを第1ストレージ装置10aに送信する(S3413)。
尚、第2サーバ装置3bは、前述したレプリケーションによる管理方式の運用において、メタデータをサーバIDと仮想マシンIDとに対応づけて管理し、第2サーバ装置3bは、上記取得要求を受信すると、その取得要求に指定されているサーバID及び仮想マシンIDで特定されるメタデータを特定し、特定したメタデータを第2ストレージ装置10bから取得する。
第1サーバ装置3aは、第2サーバ装置3bからメタデータを受信すると(S3413)、受信したメタデータに基づくディレクトリイメージを、第1ストレージ装置10aに復元する(S3414)。またこのとき、第1サーバ装置3aは、メタデータ同期要フラグ2312をON、実体同期要フラグ2313をONに夫々設定する。尚、復元されたファイルはいずれもメタデータのみに基づくものであるため、これらのファイルはいずれもスタブ化された状態になっており、スタブ化フラグ2311がONに設定されている。
そして第1サーバ装置3aは、第1ストレージ装置10aにディレクトリイメージが復元されると、クライアント装置2へのサービスを開始する。
図35は、図34に示したディレクトリイメージ事前回復処理S3400の後、クライアント装置2からのデータI/O要求の受け付けを開始した第1サーバ装置3aが、障害発生前に当該第1サーバ装置3aが管理していたディレクトリイメージを復元していく処理(以下、オンデマンド復元処理S3500と称する。)を説明する図である。以下、同図とともにオンデマンド復元処理S3500について説明する。
第1サーバ装置3aは、サービスを開始した後、クライアント装置2からあるファイルについてデータI/O要求を受け付けると(S3511)、受け付けたデータI/O要求の対象になっているファイル(以下、アクセス対象ファイルと称する。)のメタデータが、第1ストレージ装置10aに存在するか否か(サービス開始後、既に第1ストレージ装置10aにメタデータが復元されているか否か)を調べる(S3512)。
メタデータが第1ストレージ装置10aに復元されている場合、第1サーバ装置3aは、受け付けたデータI/O要求の対象(メタデータ又は実体)、データI/O要求の種類(参照要求か更新要求か)、レプリケーションによる管理方式で管理されているか否か(レプリケーションフラグ2314がONか否か)、スタブ化されているか否か(スタブ化フラグがONか否か)に応じて、受け付けたデータI/O要求に対応する処理(前述したレプリケーションファイル更新処理S2700、レプリケーションファイル参照処理S2800、メタデータアクセス処理S3000、スタブ化ファイル実体参照処理S3100、スタブ化ファイル実体更新処理S3200)を行い、クライアント装置2に応答を返す(S3518)。
一方、アクセス対象ファイルのメタデータが復元されていない場合には、第1サーバ装置3aは、ルートディレクトリを起点としてアクセス対象ファイルが存在するディレクトリレベル(ディレクトリ階層)に至るまでのディレクトリイメージを復元するためのデータを第2サーバ装置3b(第2ストレージ装置10b)から取得し(S3513〜S3515)、取得したデータを用いてルートディレクトリから上記ディレクトリレベルに至るまでのディレクトリイメージを第1ストレージ装置10aに復元する(S3516)。
また第1サーバ装置3aは、アクセス対象ファイルのスタブ化フラグ2311をONに、レプリケーションフラグ2314をOFFに、メタデータ同期要フラグ2312をONに、夫々設定する(S3517)。
次に第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S3518)。
図36に、データI/O要求が繰り返し発生することにより、以上に説明したオンデマンド復元処理S3500によって段階的に第1ストレージ装置10aにディレクトリイメージが復元されていく様子を示している。
同図中、強調された文字列(アンダーラインが付与されている文字列)で示すディレクトリは、そのディレクトリのメタデータは復元されているがその配下のディレクトリのメタデータは未だ復元されていない。また強調されていない文字で示すディレクトリは、そのディレクトリの配下のディレクトリのメタデータも既に復元されている。また強調された文字で示すファイルは、そのファイルのメタデータは復元されているが、その実体は未だ復元されていない。また強調されていない文字で示すファイルは、そのファイルの実体が既に復元されている。
図36の図(0)は、障害が発生する直前に第1サーバ装置3a(第1ストレージ装置10a)において管理されていたディレクトリイメージ(最終的に復元されるディレクトリイメージの全体)である。
図36の図(A)は、ディレクトリイメージ事前回復処理S3400による回復直後(まだ第1サーバ装置3aがデータI/O要求を受け付けていない状態)におけるディレクトリイメージである。この段階ではルートディレクトリ「/」の直下に存在するディレクトリ「/dir1」及び「/dir2」のメタデータは復元されているが、その更に配下のディレクトリのメタデータについては未だ復元されていない。またルートディレクトリ「/」の直下に存在するファイル「a.txt」のメタデータは復元されているが、実体については未だ復元されていない。
図36の図(B)は、図(A)の状態でクライアント装置2からディレクトリ「/dir1」の配下に存在するファイル「c.txt」に対するデータI/O要求を受け付けた後の状態である。クライアント装置2からファイル「c.txt」に対するデータI/O要求を受け付けたため、ディレクトリ「/dir11」のメタデータと「/c.txt」のメタデータが復元されている。
図36の図(C)は、図(B)の状態で更にクライアント装置2からディレクトリ「/dir2」の配下に存在するファイル「b.txt」に対するデータI/O要求を受け付けた後の状態である。同図に示すように、クライアント装置2からファイル「b.txt」に対するデータI/O要求を受け付けたため、「/b.txt」のメタデータが復元されている。尚、「/dir2」の配下に存在する「/b.txt」のメタデータが復元されたため、「/dir2」は強調されていない文字で表記している。
図36の図(D)は、図(C)の状態でクライアント装置2からファイル「b.txt」に対するデータI/O要求(更新要求)を受け付けた後の状態である。クライアント装置2からファイル「b.txt」に対するデータI/O要求(更新要求)を受け付けたため、ファイル「b.txt」の実体が復元されている。
以上に説明したように、本実施形態の情報処理システム1においては、第1サーバ装置3aに障害が発生した後、データI/O要求の受け付けを開始した時点では、ディレクトリイメージ事前回復処理S3400によってルートディレクトリに存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータのみが復元される。そしてその後は第1サーバ装置3aに対してクライアント装置2からまだ復元されていないファイルに対してデータI/O要求が発生する度に、段階的に第1サーバ装置3a(第1ストレージ装置10a)にディレクトリイメージが復元されていく。
このように障害回復後、データI/O要求の受け付けを開始する前にディレクトリイメージの全体を復元してしまうのではなく、ディレクトリイメージを段階的に復元するようにすることで、サービスが再開される前にディレクトリイメージの全体を復元しておくようにしておく場合に比べ、障害発生からサービス再開までに要する時間を短縮することができ、ユーザの業務等への影響を防ぐことができる。
またディレクトリイメージが完全に復元されるまでの間は、第1ストレージ装置10aの資源を節約することができる。さらにディレクトリイメージが完全に復元されるまでの間は記憶容量の消費が抑えられるため、例えば、記憶容量の小さなストレージ装置を障害が発生した第1ストレージ装置10aの代替装置として用いるようなこともできる。
<復元対象の追加>
ところで、例えば、第1サーバ装置3aや第1ストレージ装置10aが充分な性能や記憶容量を備えている場合や、ユーザがサービスの迅速に完全復旧されることを望んでいるような場合には、図35に示したオンデマンド復元処理S3500によって障害発生前における第1ストレージ装置10aのディレクトリイメージを迅速に復元することが好ましい。
しかし前述したオンデマンド復元処理S3500によるディレクトリイメージの復元速度は、クライアント装置2からのデータI/O要求の発生頻度に依存しているため、データI/O要求の発生頻度が少ない場合はディレクトリイメージが完全に復元されるまでに長時間を要してしまうことになる。
そこで本実施形態の情報処理システム1は、このようなディレクトリイメージの復旧速度の低下を防ぐべく、オンデマンド復元処理S3500において、第2サーバ装置3bが、第1サーバ装置3aから復元のためのディレクトリイメージを要求された際、クライアント装置2から受け付けたデータI/O要求が所定の条件を満たすことを条件として、第1サーバ装置3aに送信するディレクトリイメージを追加し、ディレクトリイメージの復元を自動的に促進させる仕組みを備えている。
尚、上記の所定の条件としては、例えば次のようなものが考えられる。
(条件1)アクセス対象ファイルのデータサイズが、現在から遡って所定時間内に発生したデータI/O要求のアクセス対象ファイルのデータサイズの平均値よりも小さい。
(条件2)アクセス対象ファイルのデータサイズが予め設定された閾値よりも小さい。
また上記の仕組みにおいて追加するディレクトリイメージの選出方法としては、例えば次のようなものが考えられる。
(選出方法1)既に復元されているディレクトリの配下に存在するファイルのメタデータ及び/又は実体を選出する。
ここで一般に既に復元されているディレクトリの配下に存在するファイルはその後にアクセスされる可能性が高く、選出方法1に従いそのようなディレクトリの配下に存在するファイルのディレクトリイメージを復元することで、クライアント装置2に対する応答性能の向上が期待できる。
(選出方法2)既に復元されているディレクトリの配下に存在するディレクトリのメタデータを選出する。
ここで既に復元されているディレクトリの配下に存在するディレクトリはその後にアクセスされる可能性が高いので、選出方法2に従い既に復元されているディレクトリの配下に存在するディレクトリのメタデータを復元しておくことでクライアント装置2に対する応答性能の向上が期待できる。
(選出方法3)第1サーバ装置3aに障害が発生する前に第1ストレージ装置10aに実体が格納されていたファイルの実体(障害が発生する前にスタブ化フラグがOFFになっていたファイル)を選出する。
第1サーバ装置3aに障害が発生する前に第1ストレージ装置10aに実体が格納されていたファイルは元々アクセス頻度が高いファイルであった可能性が高い。そこでそのようなファイルの実体を優先して第1ストレージ装置10aに復元しておくようにすればクライアント装置2に対する応答性能の向上を期待することができる。
尚、第1サーバ装置3aは、障害が発生する前に第1ストレージ装置10aに実体が格納されていたファイルであるか否かを、例えば、第2サーバ装置3bにそのファイルのスタブ化フラグ2311を問い合わせることにより把握する(そのファイルのスタブ化フラグ2311がOFFであれば障害が発生する前に第1ストレージ装置10aに実体が格納されていたことになる)。
(選出方法4)アクセス対象ファイルよりも高い重要度が設定されているファイルのメタデータ及び/又は実体を選出する。
一般に高い重要度が設定されているファイルはクライアント装置2からアクセスされる可能性が高いファイルであることが多い。そこでそのようなファイルのメタデータ及び/又は実体を復元しておくようにすることで、クライアント装置2に対する応答性能の向上を期待することができる。
尚、第1サーバ装置3aは、第1サーバ装置3aから第2サーバ装置3bに問い合わせを行うことにより、第1ストレージ装置10aにメタデータが未だ復元されていないファイルの重要度(inode管理テーブル1912の重要度2316の内容)を取得する。
(選出方法5)障害発生時点から遡って所定時間内におけるアクセス頻度がアクセス対象ファイルよりも高いファイルを選出する。
障害発生時点から遡って所定時間内におけるアクセス頻度が高いファイルは、クライアント装置2からアクセスされる可能性が高いファイルであると考えられる。そこでそのようなファイルのメタデータ及び/又は実体を復元しておくようにすることで、クライアント装置2に対する応答性能の向上を期待することができる。
尚、第1サーバ装置3aは、第2サーバ装置3bにファイルアクセスログ368の内容を問い合わせることにより、障害発生時点から遡って所定時間内におけるファイルのアクセス頻度を取得する。
尚、以上に列挙した方法は選出方法の一例に過ぎず、選出方法は以上に示したものに限定されない。例えば以上に列挙した選出方法の二つ以上を組み合わせて復元するディレクトリイメージを選出するようにしてもよい。例えば単独の選出方法だと選出される復元対象が多すぎてしまう場合には、複数の選出方法を組み合わせることで復元対象を絞り込むことができる。
図37は、前述したオンデマンド復元処理S3500において、データI/O要求が前述した所定の条件を満たす場合に前述した所定の選出方法に従い復元するディレクトリイメージを追加するようにした処理(以下、オンデマンド復元処理(復元対象追加有)S3700と称する。)を説明する図である。以下、同図とともにオンデマンド復元処理(復元対象追加有)S3700について説明する。
第1サーバ装置3aは、クライアント装置2からデータI/O要求を受け付けると(S3711)、当該データI/O要求のアクセス対象ファイルのメタデータが第1ストレージ装置10aに存在するか否か(既に復元されているか否か)を判断する(S3712)。
アクセス対象ファイルのメタデータが既に復元されている場合には、第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S3718)。
一方、アクセス対象ファイルのメタデータが復元されていない場合には、第1サーバ装置3aは、ルートディレクトリを起点としてアクセス対象ファイルが存在するディレクトリレベル(ディレクトリ階層)に至るまでのディレクトリイメージを復元するためのデータを第2サーバ装置3bに要求する(ここまでの処理は図35に示したオンデマンド復元処理S3500と同様である。)。
第2サーバ装置3bは、上記要求を受信すると、データI/O要求が前述した所定の条件を満たすか否かを判断し、所定の条件を満たす場合には、前述した所定の選出方法に従い追加するディレクトリイメージをさらに選出する。そしてサーバ装置3bは、上記要求に指定されているディレクトリイメージを復元するためのデータと、上記選出したディレクトリイメージを復元するためのデータとを、第2ストレージ装置10bから取得し、第1サーバ装置3aに送信する(S3713〜S3715)。
第1サーバ装置3aは、第2サーバ装置3bから上記データを受信すると、受信したデータを用いて、第1ストレージ装置10aにディレクトリイメージを復元する(S3716)。
次に第1サーバ装置3aは、アクセス対象ファイルのスタブ化フラグ2311をONに、レプリケーションフラグ2314をOFFに、メタデータ同期要フラグ2312をONに、夫々設定する(S3717)。
そして第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S3718)。
以上に説明したオンデマンド復元処理(復元対象追加有)S3700によれば、データI/O要求が所定の条件を満たす場合は、復元されるディレクトリイメージが自動的に追加される。このため、ディレクトリイメージの復旧速度を自動的に速めることができ、第1ストレージ装置10aのディレクトリイメージを迅速に障害発生前の状態に復元することができる。
また以上に説明したオンデマンド復元処理(復元対象追加有)S3700では、復元するディレクトリイメージを追加するか否かの判断やディレクトリイメージを復元するためのデータの取得に関する処理を、もっぱら第2サーバ装置3b側で行うようにしている。そのため、第1サーバ装置3a側に特別な仕組みを設ける必要がなく、また第1サーバ装置3aの代替装置の選出に際し、機種や製造元(ベンダー)を一致させる必要がない等、情報処理システム1の柔軟な運用形態が可能になる。
<再スタブ化の回避>
前述したスタブ化候補選出処理S2500(図25)では、ファイル格納領域の残容量がスタブ化閾値未満になったことを条件としてスタブ化の候補となるファイルが選出され、選出されたファイルは前述したスタブ化処理S2600(図26)において実際にスタブ化(第1ストレージ装置10aから実体が削除)されるが、スタブ化候補選出処理S2500及びスタブ化処理S2600は、図35に説明したオンデマンド復元処理S3500(又は図37に示したオンデマンド復元処理(復元対象追加有)S3700。以下、オンデマンド復元処理S3500のみ表記する。)の実行中においても実行されてしまうことがある。
そして例えばスタブ化閾値が高めに設定されていた場合や、障害が発生した第1ストレージ装置10aの代替として用意されたストレージ装置が充分な記憶容量を備えていない場合には、オンデマンド復元処理S3500によって第1ストレージ装置10aに実体が復元されたファイルが、オンデマンド復元処理S3500(又は図37に示したオンデマンド復元処理(復元対象追加有)S3700)によって直ぐに再びスタブ化の候補として選出されスタブ化されてしまう(以下、この現象のことを再スタブ化と称する。)。
そしてこのような再スタブ化が頻発すると、情報処理システム1の資源が浪費され、情報処理システム1の運用効率が低下してしまうことになる。
そこで本実施形態の情報処理システム1は、再スタブ化の発生を抑制すべく、再スタブ化の発生を随時監視し、再スタブ化の発生状況に応じてディレクトリイメージの復元を自動的に抑制する仕組みを備えている。
図38は、上記仕組みに関して第2サーバ装置3bによって行われる処理(以下、再スタブ化回避処理S3800と称する。)を説明する図である。以下、同図とともに再スタブ化回避処理S3800について説明する。
第2サーバ装置3bは、前述したオンデマンド復元処理S3500の実行中、単位時間当たりの再スタブ化の発生頻度が予め設定された閾値(以下、再スタブ化頻度閾値と称する。)以上になっているか否か、もしくは再スタブ化の発生時間間隔が予め設定された閾値(以下、再スタブ化発生時間間隔閾値と称する。)未満になっているか否かを監視する(S3811〜S3813)。
ここで再スタブ化が発生したか否かの判断は、例えば、リストアログ365の内容と、メタデータの同期処理S2900における第1サーバ装置3aから第2サーバ装置3bへのスタブ化フラグ2311の更新通知(スタブ化フラグ2311をOFFからONにする通知))とに基づいて行う。
例えば、第2サーバ装置3bは、第1ストレージ装置10aにディレクトリイメージが復元されてから予め設定された所定時間内に、そのディレクトリイメージのデータ(メタデータ又は実体)のスタブ化フラグ2311がONにされたことをもって再スタブ化が発生したと判断する。
同図に示すように、第2サーバ装置3bは、上記監視において再スタブ化の発生頻度が再スタブ化頻度閾値以上になっていること、もしくは再スタブ化の発生時間間隔が再スタブ化発生時間間隔閾値未満になっていることを検知すると、第1サーバ装置3aに送信するディレクトリイメージ(図37に示したオンデマンド復元処理(復元対象追加有)S3700において追加されるディレクトリイメージを含む)の量を抑制(減少)させる。尚、この抑制には、第1サーバ装置3aへのディレクトリイメージの送信を中止する場合も含まれる(S3814)。
ここで上記抑制の具体的な方法としては、例えば、次のようなものが考えられる。
(抑制方法1)データI/O要求がメタデータのみを対象としている場合に当該ファイルの実体を復元しないようにする。
これによれば実体を復元するのに要する負荷を軽減することができる。またデータI/O要求がメタデータのみを対象としている場合には、当該ファイルの実体まで復元する必要がないため、実体を復元しなくてもデータI/O要求の処理に影響を与えることもない。
(抑制方法2)前述した(選出方法1)〜(選出方法5)の一つ以上を用いたディレクトリイメージの選出を行っている場合に、更に別の選出方法を重複して適用するようにする。
選出方法を重複して適用するようにすることで、段階的に再スタブ化の発生を抑制することができ、再スタブ化の発生状況に併せて、第1サーバ装置3aに送信するディレクトリイメージの量を適切に抑制することができる。
(抑制方法3)前述した(選出方法4)において判断に用いている重要度の閾値を更に高く設定する。
重要度の閾値を更に高く設定することで、再スタブ化の抑制を容易に実施することができる。また重要度の閾値を段階的に高く設定していくようにすれば、再スタブ化の発生状況に併せて、第1サーバ装置3aに送信するディレクトリイメージの量を適切に抑制することができる。
(抑制方法4)前述した(選出方法5)においてアクセス頻度の判断に用いているアクセス頻度の閾値を更に高く設定する。
アクセス頻度の閾値を更に高く設定することで、再スタブ化の抑制を容易に実施することができる。またアクセス頻度の閾値を段階的に高く設定していくようにすれば、再スタブ化の発生状況に併せて、第1サーバ装置3aに送信するディレクトリイメージの量を適切に抑制することができる。
尚、第2サーバ装置3bは上記監視を継続して行い、再スタブ化の発生頻度が再スタブ化頻度閾値未満になるとともに、再スタブ化の発生時間間隔が再スタブ化発生時間間隔閾値以上になると、自動的に上記抑制を解除する。ここで解除には、抑制を一度に全て解除してしまう場合のほか、少しずつディレクトリイメージを追加していく等、抑制を段階的に解除していく場合も含む(S3814)。
以上に説明したように、再スタブ化回避処理S3800によれば、再スタブ化が頻繁に発生すると第2サーバ装置3bから第1サーバ装置3aに送信されるディレクトリイメージの量が自動的に抑制されるので、再スタブ化の発生を抑制することができる。そのため、再スタブ化による情報処理システム1の資源の浪費を防ぐことができ、再スタブ化に起因する情報処理システム1を運用効率の低下を防ぐことができる。
また以上に説明した再スタブ化回避処理S3800は、第2サーバ装置3bが主体となって行うため、第1サーバ装置3a側に特別な仕組みを設ける必要がない。そのため、再スタブ化を抑制するための仕組みを情報処理システム1に容易に実現することができる。また特別な性能や仕様が要求されないことで第1ストレージ装置10aの選択肢が拡がり、ベンダーや機種等に依存することなく、ハードウエア及びソフトウエアを自由に選択することができる。
<処理詳細>
次に情報処理システム1において行われる処理の詳細について説明する。
図39は、図24に示したレプリケーション開始処理S2400の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2等からレプリケーション開始要求を受け付けたか否かをリアルタイムに監視している(S3911)。第1サーバ装置3aは、クライアント装置2等からレプリケーション開始要求を受け付けると(S3911:YES)(図24のS2411)、受け付けたレプリケーション開始要求に指定されているファイルのデータ(メタデータ及び実体)の格納先(RAIDグループの識別子、ブロックアドレス等)を第2サーバ装置3bに問い合わせる(S3912)。
第2サーバ装置3bは、上記の問い合わせがあると(S3921)、第2ストレージ装置10bの空き領域を探索してファイルのデータの格納先を決定し、決定した格納先を第1サーバ装置3aに通知する(S3922)。
第1サーバ装置3aは、上記通知を受信すると(S3913)、受け付けたレプリケーション開始要求に指定されているファイルのデータ(メタデータ及び実体)を、第1ストレージ装置10aから読み出し(S3914)(図24のS2412)、読み出したファイルのデータをS3922で通知された格納先とともに第2サーバ装置3bに送信する(S3915)(図24のS2413)。
また第1サーバ装置3aは、当該ファイルのメタデータ(第1ストレージ装置10aに格納されている当該ファイルのメタデータ)のレプリケーションフラグ2314をON、メタデータ同期要フラグ2312をONに夫々設定する(S3916)(図24のS2414)。
尚、メタデータ同期要フラグ2312をONに設定しておくことで、前述した同期処理S2900により第1ストレージ装置10aに格納されているファイルのメタデータと、その複製として第2ストレージ装置10bに格納されているファイルのメタデータの一致性が、同期又は非同期に確保(保証)される。
一方、第2サーバ装置3bは、第1サーバ装置3aからファイルのデータを受信すると(S3923)、受信したファイルのデータを、当該ファイルとともに受信した格納先で特定される第2ストレージ装置10bの位置に格納する(S3924)。
図40は、図25に示したスタブ化候補選出処理S2500の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、ファイル格納領域の残容量がスタブ化閾値未満になっているか否かを随時監視し(S4011、S4012)、ファイル格納領域の残容量がスタブ化閾値未満になっていることを検知すると、前述した所定の選出基準に従い第1ストレージ装置10aに格納されているレプリケーションファイルの中からスタブ化の候補を選出する(S4012)(図25のS2511)。
そして第1サーバ装置3aは、スタブ化の候補を選出すると(S4013)、選出したレプリケーションファイルのスタブ化フラグ2311をON、レプリケーションフラグ2314をOFF、メタデータ同期要フラグ2312をONに夫々設定する(S4014)(図25のS2512)。
図41は、図26に示したスタブ化処理S2600の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、第1ストレージ装置10aのファイル格納領域に格納されているファイルの中から、スタブ化候補として選出されているファイル(スタブ化フラグ2311がONに設定されているファイル)を随時抽出する(S4111,S4112)。
そして第1サーバ装置3aは、抽出したファイルの実体を第1ストレージ装置10aから削除するとともに(S4113)、抽出したファイルのメタデータからそのファイルの第1ストレージ装置10aの格納先を示す情報に無効な値を設定し(例えば、メタデータの当該ファイルの格納先を設定する欄(例えばブロックアドレス2218)にNULL値やゼロを設定する。)(S4114)、メタデータ同期要フラグ2312をONに設定する(S4115)(図26のS2611)。
図42は、図27に示したレプリケーションファイル更新処理S2700の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2からレプリケーションファイルに対する更新要求を受け付けたか否かをリアルタイムに監視している(S4211)。第1サーバ装置3aは、更新要求を受け付けると(S4211:YES)(図27のS2711)、第1ストレージ装置10aに格納されている、当該更新要求の対象になっているレプリケーションファイルのデータ(メタデータ又は実体)を、受け付けた更新要求に従って更新する(S4212)(図27のS2712)。
また第1サーバ装置3aは、メタデータを更新した場合はそのレプリケーションファイルのメタデータ同期要フラグ2312をONに設定し(S4213)、レプリケーションファイルの実体を更新した場合はそのレプリケーションファイルの実体同期要フラグ2313をONに設定する(S4214)(図27のS2713)。
図43は、図28に示したレプリケーションファイル参照処理S2800の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2からレプリケーションファイルに対する参照要求を受け付けたか否かをリアルタイムに監視している(S4311)。第1サーバ装置3aは、参照要求を受け付けると(S4311:YES)(図28のS2811)、そのレプリケーションファイルのデータ(メタデータ又は実体)を第1ストレージ装置10aから読み出し(S4312)(図28のS2812)、読み出したデータに基づきクライアント装置2に対して応答する情報を生成し、生成した応答情報をクライアント装置2に送信する(S4313)(図28のS2813)。
図44は、図29に示した同期処理S2900の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2からレプリケーションファイルの同期要求を受け付けたか否かをリアルタイムに監視している(S4411)。第1サーバ装置3aは、同期要求を受け付けると(S4411:YES)(図29のS2911)、第1ストレージ装置10aのファイル格納領域に格納されているレプリケーションファイルのうち、メタデータ同期要フラグ2312又は実体同期要フラグ2313の少なくともいずれかがONに設定されているファイルを取得する(S4412)(図29のS2912)。
そして第1サーバ装置3aは、取得したファイルのメタデータ又は実体を第2サーバ装置3bに送信するとともに(S4413)、当該レプリケーションファイルのメタデータ同期要フラグ2312又は実体同期要フラグ2313をOFFに設定する(S4414)(図29のS2913)。
一方、第2サーバ装置3bは、メタデータ又は実体を受信すると(S4421)(図29のS2913)、受信したメタデータ又は実体に対応する、第2ストレージ装置10bに格納されているファイルのメタデータ又は実体を、受信したメタデータ又は実体(もしくは更新差分)に基づき更新する(S4422)(図29のS2914)。
図45は、図30に示したメタデータアクセス処理S3000の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2からスタブ化されているファイルのメタデータに対するアクセス要求(参照要求又は更新要求)を受け付けたか否かをリアルタイムに監視している(S4511)。
第1サーバ装置3aは、スタブ化されているファイルのメタデータに対するアクセス要求を受け付けると(S4511:YES)(図30のS3011)、受け付けたアクセス要求の対象になっている第1ストレージ装置10aのメタデータを取得し(S4512)、受け付けたアクセス要求に従い(S4513)、メタデータの参照(読み出したメタデータに基づく応答情報のクライアント装置2への送信)(S1514)、又はメタデータの更新を行う(S4515)(図30のS3012)。またメタデータの内容を更新した場合は(S4515)、そのファイルのメタデータ同期要フラグ2312にONを設定する(図30のS3013)。
図46は、図31に示したスタブ化ファイル実体参照処理S3100の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2からスタブ化ファイルの実体に対する参照要求を受け付けると(S4611:YES)(図31のS3111)、当該スタブ化ファイルの実体が第1ストレージ装置10aに格納されているか否かを判断する(S4612)(図31のS3112)。
スタブ化ファイルの実体が第1ストレージ装置10aに格納されている場合には(S4612:YES)、第1サーバ装置3aは、第1ストレージ装置10aから当該スタブ化ファイルの実体を読み出し、読み出した実体に基づきクライアント装置2に応答する情報を生成し、生成した応答情報をクライアント装置2に送信する(S4613)(図31のS3113)。
一方、スタブ化ファイルの実体が第1ストレージ装置10aに格納されていない場合には(S4612:NO)、第1サーバ装置3aは、第2サーバ装置3bに対してスタブ化ファイルの実体を要求する(リコール要求)(S4614)(図31のS3114)。
第1サーバ装置3aは、上記取得要求に応じて第2サーバ装置3bから送られてくるスタブ化ファイルの実体を受信すると(S4621、S4622、S4615)(図31のS3115)、受信した実体に基づき応答情報を生成し、生成した応答情報をクライアント装置2に送信する(S4616)(図31のS3116)。
また第1サーバ装置3aは、上記第2サーバ装置3bから受信した実体を第1ストレージ装置10aに格納し、当該スタブ化ファイルのメタデータの当該ファイルの実体の格納先を示す情報(例えばブロックアドレス2218)に、当該ファイルの第1ストレージ装置10aにおける格納先を示す内容を設定する(S4617)。
また第1サーバ装置3aは、当該ファイルのスタブ化フラグ2311をOFFに、レプリケーションフラグ2314をONに、メタデータ同期要フラグ2312をONに、夫々設定する(S4618)(図31のS3117)。
図47は、図32に示したスタブ化ファイル実体更新処理S3200の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2からスタブ化ファイルの実体に対する更新要求を受け付けると(S4711:YES)(図32のS3211)、当該スタブ化ファイルの実体が第1ストレージ装置10aに格納されているか否かを判断する(S4712)(図32のS3212)。
スタブ化ファイルの実体が第1ストレージ装置10aに格納されている場合(S4712:YES)、第1サーバ装置3aは、第1ストレージ装置10aに格納されている当該スタブ化ファイルの実体を更新要求の内容に従って更新するとともに(S4713)、当該スタブ化ファイルの実体同期要フラグ2313をONに設定する(S4714)(図32のS3213)。
一方、上記判断の結果、スタブ化ファイルの実体が第1ストレージ装置10aに格納されていない場合には(S4712:NO)、第1サーバ装置3aは、第2サーバ装置3bに当該スタブ化ファイルの実体の取得要求(リコール要求)を送信する(S4715)(図32のS3214)。
第1サーバ装置3aは、上記要求に応じて第2サーバ装置3bから送られてくるファイルの実体を受信すると(S4721、S4722、S4716)(S3215)、受信した実体の内容を更新要求の内容に従って更新し(S4717)、更新後の実体を当該スタブ化ファイルの実体として第1ストレージ装置10aに格納する(S4718)(図32のS3216)。
また第1サーバ装置3aは、当該スタブ化ファイルのスタブ化フラグ2311をOFF、レプリケーションフラグ2314をOFF、メタデータ同期要フラグ2312をONに夫々設定する(S4719)。
図48は、図33に示した仮想マシン復旧処理S3300及び図34に示したディレクトリイメージ事前回復処理S3400の詳細を説明するフローチャートである。以下、同図とともに説明する。
まず第1サーバ装置3aにおいて、ブートローダ等を用いて記録媒体に記録されているインストールプログラムを実行し、第1サーバ装置3aに仮想化制御部305をインストールし、仮想化制御部305の機能を開始させる(S4811)(図33のS3311、S3312)。
次に機能を開始した仮想化制御部305が、第2サーバ装置3bに仮想マシンイメージの取得要求を送信する(S4812)(図33のS3313)。
第2サーバ装置3bは、第1サーバ装置3aから上記取得要求を受信すると(S4821)、当該取得要求に指定されている仮想マシンイメージを第2ストレージ装置10bから取得し、取得した仮想マシンイメージを第1サーバ装置3aに送信する(S4822)(図33のS3314、S3315)。
第1サーバ装置3aは、第2サーバ装置3bから仮想マシンイメージを受信すると(S4813)(図33のS3316)、受信した仮想マシンイメージを第1ストレージ装置10aに格納し(S4814)、受信した仮想マシンイメージに基づき仮想マシン310の動作を開始する(S4815)(図33のS3317)。
次に第1サーバ装置3aは、第2サーバ装置3bに対し、仮想マシン復旧処理S3300によって再起動された仮想マシン310のファイルシステム312が障害発生前に構成していたディレクトリイメージのルートディレクトリに存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータの取得要求を、第2サーバ装置3bに送信する(S4816)(図34のS3411)。
第2サーバ装置3bは、上記取得要求を受信すると(S4823)、要求されているルートディレクトリに存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータを第2ストレージ装置10bから取得し、取得したメタデータを第1ストレージ装置10aに送信する(S4824)(図34のS3412、S3413)。
次に第1サーバ装置3aは、第2サーバ装置3bからメタデータを受信すると(S4817)(図34のS3413)、受信したメタデータに従ったディレクトリイメージを第1ストレージ装置10aに構成(復元)する(S4818)(図34のS3414)。またこのとき、第1サーバ装置3aは、メタデータ同期要フラグ2312をONに、実体同期要フラグ2313をONに夫々設定する(S4819)。
そして第1サーバ装置3aは、第1ストレージ装置10aに上記ディレクトリイメージが構成されると、第1サーバ装置3aはクライアント装置2へのサービスを開始する(S4820)(図34のS3415)。
図49は、図35に示したオンデマンド復元処理S3500の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2から、あるファイルについてデータI/O要求を受け付けると(S4911:YES)(図35のS3511)、受け付けたデータI/O要求の対象になっているファイル(アクセス対象ファイル)のメタデータが、第1ストレージ装置10aに存在するか否かを調べる(S4912)(図35のS3512)。
そしてメタデータが第1ストレージ装置10aに復元されている場合(S4912:YES)、第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S4913)(図35のS3518)。
一方、アクセス対象ファイルのメタデータが第1ストレージ装置10aに復元されていない場合には(S4912:NO)、第1サーバ装置3aは、ルートディレクトリを起点としてアクセス対象ファイルが存在するディレクトリレベルに至るまでのディレクトリイメージを復元するためのデータを第2サーバ装置3bに要求する(S4914)。
第2サーバ装置3bは、要求されたデータを第2ストレージ装置10bから取得し、取得したデータを第1サーバ装置3aに送信する(S4921、S4922、S4915)。
第1サーバ装置3aは、第2サーバ装置3bから送られてくるデータを受信すると(S4915)、そのデータを用いてディレクトリイメージを第1ストレージ装置10aに復元する(S4916)(図35のS3513〜S3516)。
また第1サーバ装置3aは、アクセス対象ファイルのスタブ化フラグ2311をONに、レプリケーションフラグ2314をOFFに、メタデータ同期要フラグ2312をONに、夫々設定する(S4917)(図35のS3517)。
次に第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S4918)(図35のS3518)。
図50及び図51は、図37に示したオンデマンド復元処理(復元対象追加有)S3700の詳細を説明するフローチャートである。以下、同図とともに説明する。
第1サーバ装置3aは、クライアント装置2から、あるファイルについてデータI/O要求を受け付けると(S5011:YES)(図37のS3711)、受け付けたデータI/O要求の対象になっているアクセス対象ファイルのメタデータが、第1ストレージ装置10aに存在するか否かを調べる(S5012)(図37のS3712)。
メタデータが第1ストレージ装置10aに復元されている場合(S5012:YES)、第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S5013)(図37のS3718)。
一方、アクセス対象ファイルのメタデータが第1ストレージ装置10aに復元されていない場合には(S5012:NO)、第1サーバ装置3aは、ルートディレクトリを起点としてアクセス対象ファイルが存在するディレクトリレベルに至るまでのディレクトリイメージを復元するためのデータを、第2サーバ装置3bに要求する(S5014)。
第2サーバ装置3bは、上記要求を受信すると、データI/O要求が前述した所定の条件を満たすか否かを判断する(S5022)。
所定の条件を満たさない場合には(S5022:NO)、S5024に進む。一方、所定の条件を満たす場合には(S5022:YES)、第2サーバ装置3bは、前述した所定の選出方法に従い追加するディレクトリイメージを選出する(S5023)。
S5024では、第2サーバ装置3bは、S5021で受信した要求に指定されているディレクトリイメージを復元するためのデータと、S5023で選出したディレクトリイメージを復元するためのデータとを、第2ストレージ装置10bから取得し、取得したデータを第1サーバ装置3aに送信する(図37のS3713〜S3715)。
第1サーバ装置3aは、上記データを受信すると(S5015)、受信したデータを用いて、第1ストレージ装置10aにディレクトリイメージを復元する(S5016)(図37のS3716)。
次に第1サーバ装置3aは、アクセス対象ファイルのスタブ化フラグ2311をONに、レプリケーションフラグ2314をOFFに、メタデータ同期要フラグ2312をONに、夫々設定する(S5017)(図37のS3717)。
そして第1サーバ装置3aは、受け付けたデータI/O要求の対象や種類、管理方式、スタブ化の有無等に応じて、受け付けたデータI/O要求に対応する処理を行い、クライアント装置2に応答を返す(S5018)(図37のS3718)。
図52は、図38に示した再スタブ化回避処理S3800の詳細を説明するフローチャートである。以下、同図とともに説明する。
第2サーバ装置3bは、オンデマンド復元処理S3500(又は図37に示したオンデマンド復元処理(復元対象追加有)S3700)の実行中、単位時間当たりの再スタブ化の発生頻度が予め設定された閾値(以下、再スタブ化頻度閾値と称する。)以上になっているか否か、もしくは再スタブ化の発生時間間隔が予め設定された閾値(以下、再スタブ化発生時間間隔閾値と称する。)未満になっているか否かを監視する(S5211、S5212)(図38のS3811〜S3813)。
第2サーバ装置3bは、上記監視において再スタブ化の発生頻度が再スタブ化頻度閾値以上になっていることを検知すると(S5211:YES)、抑制フラグ管理テーブル366に管理される抑制フラグ3661をONに設定する(S5213)。
また第2サーバ装置3bは、上記監視において、再スタブ化の発生時間間隔が再スタブ化発生時間間隔閾値未満になっていることを検知すると(S5212:YES)、抑制フラグ3661をONに設定する(S5213)。
また第2サーバ装置3bは、上記監視において、再スタブ化の発生頻度が再スタブ化頻度閾値未満になっており(S5211:NO)、かつ、再スタブ化の発生時間間隔が再スタブ化発生時間間隔閾値以上になっている場合は(S5212:NO)、抑制フラグ3661をOFFに設定する(S5214)(図38のS3814)。
S5215では、第2サーバ装置3bは、抑制フラグ3661がONかOFFかを判断する。抑制フラグ3661がONであれば(S5215:ON)、第2サーバ装置3bから第1サーバ装置3aに送信するディレクトリイメージの量を抑制する処理を開始する(S5216)。尚、既に抑制を開始している場合には抑制を継続する。
一方、抑制フラグ3661がOFFであれば(S5215:OFF)、第2サーバ装置3bは、第1サーバ装置3aに送信するディレクトリイメージの量を抑制する処理を終了する(S5217)。尚、既に抑制を終了している場合は抑制なしの状態を維持する。
以上詳細に説明したように、本実施形態の情報処理システム1にあっては、第1サーバ装置3aの障害復旧に際し、第2サーバ装置3bが、第1サーバ装置3aがデータI/O要求の受け付けを開始するのに先立ち、第2ストレージ装置10bに記憶しているファイルのデータのうち最上位のディレクトリから所定の下位階層までのディレクトリイメージを第1サーバ装置3aに送信し、第1サーバ装置3aが、第2サーバ装置3bから送られてくるディレクトリイメージを第1ストレージ装置10aに復元した後、データI/O要求の受け付けを再開する。
このように、本実施形態の情報処理システム1にあっては、第1サーバ装置3aの障害復旧に際し、障害発生前に第1ストレージ装置10aに存在していたディレクトリイメージの全てを復元するのではなく、最上位のディレクトリから所定の下位階層までのディレクトリイメージのみを復元するので、障害発生前に第1ストレージ装置10aに存在していた全てのディレクトリイメージを復元する場合に比べて復元に要する時間を短縮することができ、早期にサービスを再開することができる。また全てのディレクトリイメージを復元する場合に比べて情報処理システム1に与える負荷が少なくて済む。
また第2サーバ装置3bは、第1サーバ装置3aから第1ストレージ装置10aに復元されていないディレクトリイメージを要求された場合に、要求の対象になっているディレクトリイメージを第2ストレージ装置10bから読み出して送信するとともに、所定の選出方法に従って選出したディレクトリイメージとは異なる追加のディレクトリイメージを第2ストレージ装置10bから読み出して送信し、第1サーバ装置3aは、第2サーバ装置3bから送られてくるディレクトリイメージに基づきデータI/O要求を処理するとともに、ディレクトリイメージ及び第2サーバ装置3bから送られてくる追加のディレクトリイメージを第1ストレージ装置10aに復元する。
このように、本実施形態の情報処理システム1にあっては、第2サーバ装置3bが、第1サーバ装置3aから第1ストレージ装置10aに復元されていないディレクトリイメージを要求された場合に、要求の対象になっているディレクトリイメージに加えて、所定の選出方法に従って選出したディレクトリイメージとは異なる追加のディレクトリイメージを第2ストレージ装置10bから読み出して送信し、第1サーバ装置3aは、ディレクトリイメージ及び追加のディレクトリイメージの双方のディレクトリイメージを第1ストレージ装置10aに復元するので、ディレクトリイメージの復旧速度を自動的に速めることができる。
また第2サーバ装置3bは、再スタブ化の発生頻度が予め設定された閾値以上になっているか、もしくは、再スタブ化の発生時間間隔が予め設定された閾値未満になっている場合に、第1サーバ装置3aへのディレクトリイメージ又は追加のディレクトリイメージの送信を自動的に抑制するので、再スタブ化の発生を抑制することができ、再スタブ化によって情報処理システム1の資源が浪費されてしまうのを防ぐことができる。
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
例えば、以上の説明では、ファイル共有処理部3
11、ファイルシステム312、データ操作要求受付部313、データ複製/移動処理部314、ファイルアクセスログ取得部317、及びカーネル/ドライバ318の各機能が仮想マシン310において実現されているものとして説明したが、これらの機能は必ずしも仮想マシン310において実現されるものでなくてもよい。
また前述したディレクトリイメージ事前復旧処理S3400では、ファイルシステム312が障害発生前に構成していたディレクトリイメージのルートディレクトリに存在するディレクトリのメタデータ、及びルートディレクトリに存在するファイルのメタデータを復旧させるようにしているが、第1サーバ装置3aの能力に余裕がある場合には、より下位階層までのディレクトリイメージを復旧させるようにしてもよい。