(57)【特許請求の範囲】
【請求項１】
連続したブロックアドレスで管理される複数の記憶領域を有するディスク装置に接続され、前記複数の記憶領域の一又は複数にそれぞれ格納された複数のファイルと、前記複数の記憶領域の一又は複数にそれぞれ格納され、前記複数のファイルを階層的に管理する複数のディレクトリとを含むファイルシステムのバックアップサービスを提供するサーバにおいて、
バックアッププログラムを格納するメモリと、
前記バックアッププログラムを実行するＣＰＵ（Central Processing Unit）とを備え、
前記バックアッププログラムは、
前記ディスク装置から前記複数のファイル及び前記複数のディレクトリを読み出す順序を決定させる順序決定手順と、
前記複数のファイル及び前記複数のディレクトリを、前記順序に従って前記ディスク装置から読み出させる読出し手順と、
前記複数のファイル及び前記複数のディレクトリを、前記ディスク装置から読み出した順にバックアップ装置に転送させる転送手順とを有し、
前記順序決定手順では、
前記バックアッププログラムは、前記複数のファイルの後に前記複数のディレクトリを読み出させ、前記複数のファイルを該複数のファイルが格納されている前記一又は複数の記憶領域の先頭アドレスの順に読み出させ、前記複数のディレクトリを該ディレクトリのパスネームの順に読み出させる
ことを特徴とするサーバ。
【請求項２】
前記順序決定手順は、
前記複数のファイルの各々におけるアドレスとして、各ファイルが格納される前記一又は複数の記憶領域の先頭アドレスを取得させる先頭アドレス取得手順と、
前記複数のディレクトリの各々におけるアドレスとして、前記連続したブロックアドレスの最大値を割り当てさせる最大値割当て手順と、
前記複数のファイル及び前記複数のディレクトリを、前記先頭アドレス取得手順及び前記最大値割当て手順によって定めたアドレスに基づき並び替えさせ、該アドレスが同じアドレスである場合には、該アドレスが定められた前記ファイル又は前記ディレクトリをパス名で並び替えさせる並び替え手順と、
を有することを特徴とする請求項１に記載のサーバ。
【請求項３】
前記順序決定手順は、前記ファイル及び前記ディレクトリのデータとは別個に前記ディスク装置に格納された前記ファイル毎及び前記ディレクトリ毎の拡張属性情報を、前記ファイル及び前記ディレクトリのデータに先行して当該ディスク装置から読み出して前記メモリに記憶させる拡張属性情報読出し手順を有し、
前記転送手順では、前記バックアッププログラムは、前記読出し手順によって前記ディスク装置から読み出させた前記ファイル及び前記ディレクトリのデータを、該ファイル又は該ディレクトリのデータに対応し、前記拡張属性情報読出し手順で前記メモリに記憶させた前記拡張属性情報と共に、前記バックアップ装置に順次転送させる
ことを特徴とする請求項２に記載のサーバ。
【請求項４】
前記バックアッププログラムは、前記拡張属性情報読出し手順を並行して複数実行させる
ことを特徴とする請求項３に記載のサーバ。
【請求項５】
前記バックアッププログラムは、次又は一定数回後に転送予定の前記ファイル及び前記ディレクトリについて、該ファイル又は該ディレクトリの先頭から所定単位分のデータを先読みさせる先読み手順を更に有する
ことを特徴とする請求項２に記載のサーバ。
【請求項６】
連続したブロックアドレスで管理される複数の記憶領域を有するディスク装置に接続され、前記複数の記憶領域の一又は複数にそれぞれ格納された複数のファイルと、前記複数の記憶領域の一又は複数にそれぞれ格納され、前記複数のファイルを階層的に管理する複数のディレクトリとを含むファイルシステムのバックアップサービスを提供するサーバによるバックアップ方法において、
前記サーバは、バックアッププログラムを格納するメモリと、前記バックアッププログラムを実行するＣＰＵとを有し、
前記ディスク装置から前記複数のファイル及び前記複数のディレクトリを読み出す順序を決定する順序決定手順と、
前記順序決定手段によって決定した順序に従って、前記複数のファイル及び前記複数のディレクトリを前記ディスク装置から読み出す読出し手順と、
前記複数のファイル及び前記複数のディレクトリを、前記読出し手順によって読み出した順にバックアップ装置に転送する転送手順とを有し、
前記順序決定手順では、
前記複数のファイルの後に前記複数のディレクトリを読み出し、前記複数のファイルを該複数のファイルが格納されている前記一又は複数の記憶領域の先頭アドレスの順に読み出し、前記複数のディレクトリを該ディレクトリのパスネームの順に読み出す
ことを特徴とするバックアップ方法。
【請求項７】
前記順序決定手順は、
前記複数のファイルの各々におけるアドレスとして、各ファイルが格納される前記一又は複数の記憶領域の先頭アドレスを取得する先頭アドレス取得手順と、
前記複数のディレクトリの各々におけるアドレスとして、前記連続したブロックアドレスの最大値を割り当てる最大値割当て手順と、
前記複数のファイル及び前記複数のディレクトリを、前記先頭アドレス取得手順及び前記最大値割当て手順によって定めたアドレスに基づき並び替え、該アドレスが同じアドレスである場合には、該アドレスが定められた前記ファイル又は前記ディレクトリをパス名で並び替える並び替え手順と、
を有することを特徴とする請求項６に記載のバックアップ方法。
【請求項８】
前記読出し手順は、前記ファイル及び前記ディレクトリのデータとは別個に前記ディスク装置に格納された前記ファイル毎及び前記ディレクトリ毎の拡張属性情報を、前記ファイル及び前記ディレクトリのデータに先行して当該ディスク装置から読み出して前記メモリに記憶する拡張属性情報読み出し手順を有し、
前記転送手順では、前記読出し手順で前記ディスク装置から読み出した前記ファイル及び前記ディレクトリのデータを、該ファイル又は該ディレクトリのデータに対応し、前記拡張属性情報読出し手順で前記メモリに記憶した前記拡張属性情報と共に、前記バックアップ装置に順次転送する
ことを特徴とする請求項７に記載のバックアップ方法。
【請求項９】
前記拡張属性情報読出し手順を並行して複数実行する
ことを特徴とする請求項８に記載のバックアップ方法。
【請求項１０】
前記読出し手順では、次又は一定数回後に転送予定の前記ファイル及び前記ディレクトリについて、該ファイル又は該ディレクトリの先頭から所定単位分のデータを先読みする先読み処理を実行する
ことを特徴とする請求項７に記載のバックアップ方法。
【請求項１１】
連続したブロックアドレスで管理される複数の記憶領域を有するディスク装置に接続され、前記記憶領域の一又は複数にそれぞれ格納された複数のファイルを読み出すファイル読出し装置において、
前記複数のファイルは、前記複数のファイルを階層的に管理する複数のディレクトリを含むファイルシステムによって管理され、
前記ファイル読出し装置は、
読出しプログラムを格納するメモリと、
前記読出しプログラムを実行するＣＰＵとを備え、
前記読出しプログラムは、
前記ディスク装置から前記複数のファイル及び前記複数のディレクトリを読み出す順序を決定させる順序決定手順と、
前記複数のファイル及び前記複数のディレクトリを、前記順序に従って前記ディスク装置から読み出させる読出し手順とを有し、
前記順序決定手順では、
前記読出しプログラムは、前記複数のファイルの後に前記複数のディレクトリを読み出させ、前記複数のファイルを該複数のファイルが格納されている前記一又は複数の記憶領域の先頭アドレスの順に読み出させ、前記複数のディレクトリを該ディレクトリのパスネームの順に読み出させる
ことを特徴とするファイル読出し装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補助記憶装置としてのディスク装置に格納された複数のファイルを管理するファイルシステムのバックアップサービスを提供するサーバ及びバックアップ方法並びに当該複数のファイルを補助記憶装置から読み出すファイル読出し装置に関し、例えばファイルサーバに適用して好適なものである。
【背景技術】
【０００２】
近年、多くのコンピュータシステムにファイルシステムと呼ばれるファイル管理機能が搭載されている。ファイルシステムは、プログラムやユーザデータなどのファイルの管理を容易化するため、ファイルを階層的に管理するディレクトリを備える。ファイルシステムには、ファイルやディレクトリの階層の頂点となるルートディレクトリと呼ばれる特別なディレクトリが存在し、ファイルシステムに格納されるファイルやディレクトリは、ルートディレクトリから辿れるようになっている。
【０００３】
ファイルシステムは、ファイルの名前、作成日時、最終更新日時、最終参照日時及びアクセス権などの属性情報と、当該ファイルのデータ（ファイルデータ）が補助記憶装置が提供する記憶領域上のどの位置に格納されているかを示すアドレス情報となどから構成されるｉノードと呼ばれる管理情報（以下、これをファイル情報と呼ぶ）をファイル毎に作成し、このファイル情報に基づいて各ファイルを管理する。各ファイルのファイル情報は、ファイルデータが格納される記憶領域とは別個に設けられたスーパーブロックと呼ばれる専用の記憶領域に格納されて保持される。
【０００４】
またファイルシステムは、ディレクトリについても、そのディレクトリの名前、作成日時、最終更新日時、最終参照日時及びアクセス権などの属性情報と、そのディレクトリ内に存在する各ファイル及び各ディレクトリのｉノードへのポインタ等の内部管理情報となどからなるｉノードと呼ばれる管理情報（以下、これをディレクトリ情報と呼ぶ）をディレクトリ毎に作成し、このディレクトリ情報に基づいて各ディレクトリを管理する。各ディレクトリのディレクトリ情報も、上述のスーパーブロックに格納されて保持される。
【０００５】
新たにファイルが作成された場合、ファイルシステムは、当該ファイルのファイル情報を作成し、当該ファイル情報及びデータをそれぞれ対応する記憶領域に書き込んだうえで、そのファイルを作成したディレクトリのディレクトリ情報に当該ファイルのファイル情報へのポインタを書き加える。
【特許文献１】米国特許７，２０６，７９５号明細書
【非特許文献１】“Design and Implementation of the Second Extended Filesystem”、［online］、［平成１９年１１月２８日検索］、インターネット〈http://web.mit.edu/tytso/www/linux/ext2intro.html〉
【非特許文献２】Jhon.Hennessy及びDevid.Patterson共著、「Computer Architecture A Quantitative Approach」、第３版（ISBN 1-55860-724-2）、（米国）、Elsevier、Chapter 7
【非特許文献３】“Cheetah 10K.7FC Product Manual”、［online］、［Seagate Technology LLC］、［平成１９年１１月２８日検索］、インターネット〈http://www.seagate.com/Staticfiles/support/disc/manuals/enterprise/cheetah/10K.7/FC/100260916d.pdf〉
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ファイルシステムに存在するファイルのデータ量が同じでも、ファイル当りのデータ量が小さいときには、そのファイルシステムをバックアップするのに必要な時間が大きくなる。
【０００７】
これは、ファイル当たりのデータ量が大きい場合、そのファイルのファイルデータを格納するための単位記憶領域（以下、これをブロックと呼ぶ）がディスク上で連続的に割り当てられることが多く、その場合、ディスクが1回転する時間内で大量のデータを読み出すことができるからである。またこのようなファイルのファイルデータを読み出す際には、シーケンシャルアクセスとして先読みが行われることがあり、その場合には、ディスク側で最適なヘッドシークが可能となって回転待ちなどのオーバヘッドが最小化される。
【０００８】
すなわち、ファイルサーバなどがハードディスクドライブ等に格納されたファイルを読み出す場合、固定サイズのメモリ領域を用いて、当該サイズのファイルデータを繰り返し読み出す処理をファイルの終端まで繰り返す処理を行うのが一般的である。この場合において、ファイルシステムは、ファイルがシーケンシャルに読まれていることを検知し、事前にその先のファイルデータまでメモリに読み込む先読み機能を備えることが多い（非特許文献１参照）。
【０００９】
ところが、ファイル当たりのデータ量が小さい（例えばファイル当たりのデータ量が１ブロック分の記憶容量よりも小さい）場合、ディスクが1回転する時間内で読み出されるデータ量は少なく、また各ファイルのファイルデータがディスク上のランダムな位置のブロックに格納されることが多いために、１つのファイルを読み出す毎にディスクのヘッドシーク及び回転待ちのオーバヘッドが発生する。このオーバヘッドは、１つの小さなサイズのファイルを読み出す時間（例えば数ミリ程度）と同程度かかることがある（非特許文献２参照）。このためファイル当たりのデータ量が小さい場合、ファイルの読出し性能及びバックアップ性能が極端に悪化するという問題がある。
【００１０】
さらに、マルチスレッドを用いてファイルを並列的に読み出すことにより、ファイルの読み出し性能を改善しようとする技術が特許文献１に開示されている。しかしながら、マルチスレッドを用いた場合においてもディスク側では逐次的にしかブロックを読み出すことができず、各々のファイルがディスク上のランダムな位置に保存されている場合には、ヘッドシークと回転待ちを繰り返すことになり、このオーバヘッドが支配的になってファイルの読出し性能及びバックアップ性能が上がらないという問題があった。
【００１１】
本発明は以上の点を考慮してなされたもので、バックアップ性能を向上させ得るサーバ及びバックアップ方法並びにファイル読出し性能を向上させ得るファイル読出し装置を提案しようとするものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するため本発明においては、連続したブロックアドレスで管理される複数の記憶領域を有するディスク装置に接続され、前記複数の記憶領域の一又は複数にそれぞれ格納された複数のファイルと、前記複数の記憶領域の一又は複数にそれぞれ格納され、前記複数のファイルを階層的に管理する複数のディレクトリとを含むファイルシステムのバックアップサービスを提供するサーバにおいて、バックアッププログラムを格納するメモリと、前記バックアッププログラムを実行するＣＰＵ（Central Processing Unit）とを備え、前記バックアッププログラムは、前記ディスク装置から前記複数のファイル及び前記複数のディレクトリを読み出す順序を決定させる順序決定手順と、前記複数のファイル及び前記複数のディレクトリを、前記順序に従って前記ディスク装置から読み出させる読出し手順と、前記複数のファイル及び前記複数のディレクトリを、前記ディスク装置から読み出した順にバックアップ装置に転送させる転送手順とを有し、前記順序決定手順では、前記バックアッププログラムは、前記複数のファイルの後に前記複数のディレクトリを読み出させ、前記複数のファイルを該複数のファイルが格納されている前記一又は複数の記憶領域の先頭アドレスの順に読み出させ、前記複数のディレクトリを該ディレクトリのパスネームの順に読み出させることを特徴とする。
【００１３】
この結果、ディスク装置から複数のファイルを読み出す際のディスク装置におけるヘッドシーク及び回転待ち等のオーバヘッドを格段的に低減させることができる。
【００１４】
また本発明においては、連続したブロックアドレスで管理される複数の記憶領域を有するディスク装置に接続され、前記複数の記憶領域の一又は複数にそれぞれ格納された複数のファイルと、前記複数の記憶領域の一又は複数にそれぞれ格納され、前記複数のファイルを階層的に管理する複数のディレクトリとを含むファイルシステムのバックアップサービスを提供するサーバによるバックアップ方法において、前記サーバは、バックアッププログラムを格納するメモリと、前記バックアッププログラムを実行するＣＰＵとを有し、前記ディスク装置から前記複数のファイル及び前記複数のディレクトリを読み出す順序を決定する順序決定手順と、前記順序決定手段によって決定した順序に従って、前記複数のファイル及び前記複数のディレクトリを前記ディスク装置から読み出す読出し手順と、前記複数のファイル及び前記複数のディレクトリを、前記読出し手順によって読み出した順にバックアップ装置に転送する転送手順とを有し、前記順序決定手順では、前記複数のファイルの後に前記複数のディレクトリを読み出し、前記複数のファイルを該複数のファイルが格納されている前記一又は複数の記憶領域の先頭アドレスの順に読み出し、前記複数のディレクトリを該ディレクトリのパスネームの順に読み出すことを特徴とする。
【００１５】
この結果、ディスク装置から複数のファイルを読み出す際のディスク装置におけるヘッドシーク及び回転待ち等のオーバヘッドを格段的に低減させることができる。
【００１６】
さらに本発明においては、連続したブロックアドレスで管理される複数の記憶領域を有するディスク装置に接続され、前記記憶領域の一又は複数にそれぞれ格納された複数のファイルを読み出すファイル読出し装置において、前記複数のファイルは、前記複数のファイルを階層的に管理する複数のディレクトリを含むファイルシステムによって管理され、前記ファイル読出し装置は、読出しプログラムを格納するメモリと、前記読出しプログラムを実行するＣＰＵとを備え、前記読出しプログラムは、前記ディスク装置から前記複数のファイル及び前記複数のディレクトリを読み出す順序を決定させる順序決定手順と、前記複数のファイル及び前記複数のディレクトリを、前記順序に従って前記ディスク装置から読み出させる読出し手順とを有し、前記順序決定手順では、前記読出しプログラムは、前記複数のファイルの後に前記複数のディレクトリを読み出させ、前記複数のファイルを該複数のファイルが格納されている前記一又は複数の記憶領域の先頭アドレスの順に読み出させ、前記複数のディレクトリを該ディレクトリのパスネームの順に読み出させることを特徴とする。
【００１７】
この結果、ディスク装置から複数のファイルを読み出す際のディスク装置におけるヘッドシーク及び回転待ち等のオーバヘッドを格段的に低減させることができる。
【発明の効果】
【００１８】
本発明によれば、ディスク装置から複数のファイルを読み出す際の読出し速度を向上させることができるため、バックアップ装置のバックアップ性能やファイル読出し装置のファイルの読出し性能を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
以下図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）第１の実施の形態
（１−１）本実施の形態によるコンピュータシステムの構成
図１において、１は全体として本実施の形態によるコンピュータシステムを示す。このコンピュータシステム１は、クライアント２、ファイルサーバ３、バックアップサーバ４、テープ装置５が接続されたテープサーバ６及び管理端末装置７がネットワーク８を介して接続されると共に、ファイルサーバ３にストレージバス９を介してディスク装置１０，１１、ストレージ装置１２及びテープ装置１３が接続されることにより構成されている。
【００２１】
クライアント２は、ユーザが利用し、ファイルサーバ３に対してファイルアクセスを要求する端末であり、ＣＰＵ（Central Processing Unit）及びメモリ等の情報処理資源を備える。具体的には、クライアント２は、パーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。
【００２２】
ファイルサーバ３は、クライアント２からのファイルアクセス要求を受けてファイルアクセスサービスを提供するサーバであり、ネットワークインタフェース２０、ＣＰＵ２１、メモリ２２、ストレージインタフェース２３及びこれらを相互に接続する内部バス２４を備えて構成される。
【００２３】
ネットワークインタフェース２０は、各種通信速度（１０Ｇｂｐｓや１Ｇｂｐｓ）に対応したEthernet（登録商標）インタフェースカードや無線ＬＡＮ（Local Area Network）インタフェースカードなどのネットワークインタフェースカードから構成され、ファイルサーバ３をクライアント２やバックアップサーバ４及びテープサーバ６に接続するためのデータ入出力アダプタとして機能する。
【００２４】
ＣＰＵ２１は、ファイルサーバ３全体の動作制御を司るプロセッサであり、メモリ２２に格納された制御プログラムに基づいて、各種の制御処理を実行する。メモリ２２は、主として制御プログラム及び管理テーブルを保持するために使用される。図２について後述するファイルサーバプログラム５２、バックアッププログラム５３、ストレージ入出力プログラム５４、スナップショットプログラム５５、ファイルシステム処理プログラム５６及びリストアプログラム５７もこのメモリ２２に保持される。
【００２５】
ストレージインタフェース２３は、ＳＣＳＩ（Small Computer System Interface）インタフェースカードやＦＣ（Fibre Channel）インタフェースカード、ＵＳＢ（Universal Serial Bus）インタフェースカード、ＩＥＥＥ（The Institute of Electrical Electronics Engineers）１３９４インタフェースカードなどから構成され、ファイルサーバ３をディスク装置１０，１１やストレージ装置１２及びテープ装置１３に接続するためのデータ入出力アダプタとして機能する。
【００２６】
バックアップサーバ４、テープサーバ６及び管理端末装置７は、ＣＰＵ及びメモリなどの情報処理資源を備え、例えばパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。
【００２７】
このうちバックアップサーバ４は、ディスク装置１０，１１及びストレージ装置１３などに格納されたデータのバックアップやリストアを管理するためのサーバであり、管理端末装置７から与えられるバックアップ実行命令やリストア実行命令に応じてファイルサーバ３にバックアップ要求やリストア要求を発行する。
【００２８】
テープサーバ６は、接続されたテープ装置５に対するデータの入出力を制御するサーバであり、テープ装置５との間でデータをやり取りするためのストレージインタフェースを備える。また管理端末装置７は、管理者がコンピュータシステム１を管理するために用いる端末装置であり、管理者からの操作入力等に応じて、バックアップサーバ４に対してバックアップ実行命令やリストア実行命令を発行する。
【００２９】
ネットワーク８は、クライアント２、ファイルサーバ３、バックアップサーバ４、テープサーバ６及び管理端末装置７間におけるデータ転送を可能にする通信路であり、例えばＬＡＮや電話回線又は専用回線などが用いられる。ネットワーク８としてＬＡＮが用いられる場合、一般的にＩＥＥＥ８０２．３やＩＥＥＥ８０２．１１などの規格に準拠したものが用いられる。
【００３０】
ストレージバス９は、ファイルサーバ３と、第１及び第２のディスク装置１０，１１、ストレージ装置１２並びにテープ装置１３との間でデータのやり取りを行うための通信路であり、例えばＳＣＳＩバス、ＦＣバス、ＵＳＢバス又はＩＥＥＥ１３９４バスなどが適用される。
【００３１】
ディスク装置１０は、クライアント２に対してファイルシステムのデータを格納するための記憶領域を提供する記憶装置である。このディスク装置１０が提供する記憶領域上にクライアント２により生成されたファイルシステムのデータが格納される。またディスク装置１１は、ディスク装置１０が提供する記憶領域のスナップショットを作成するために使用される。さらにテープ装置５，１３は、ディスク装置１０及びストレージ装置１２に格納されたファイルシステムのバックアップデータを磁気テープに記録再生するための記憶装置である。
【００３２】
なお、以下においては、ディスク装置１０，１１は、いずれも上記非特許文献２の7.2節に記載された「Magnetic Disks」と同様の基本構造を有するハードディスクドライブであり、テープ装置５，１３は、いずれも当該特許文献２の7.2節に記載された「Magnetic Tapes」又は「Automated Tape Libraries」と同様の基本構造を有する磁気テープ記録再生装置であるものとする。
【００３３】
ストレージ装置１２は、複数のディスク装置３０と、これらディスク装置３０を制御するコントローラ３１とから構成される。
【００３４】
ディスク装置３０は、例えばＦＣディスク等の高価なディスクドライブや、ＳＡＴＡ（Serial AT Attachment）ディスク等の安価なディスクドライブなどのハードディスクドライブから構成される。所定数（例えば４つ）のディスク装置３０によって１つのＲＡＩＤ（Redundant Array of Inexpensive Disks）グループが構成され、１つのＲＡＩＤグループを構成する各ディスク装置３０が提供する記憶領域上に１又は複数の論理的なボリュームＶＯＬが定義される。そして、このボリュームＶＯＬにファイルシステムのデータがブロックを単位として読み書きされる。
【００３５】
コントローラ３１は、第１及び第２のストレージインタフェース４０，４１、ＣＰＵ４２、メモリ４３並びにこれらを相互に接続する内部バス４４を備えて構成される。第１及び第２のストレージインタフェース４０，４１は、ファイルサーバ３のストレージインタフェース２３と同様の機能を有する。またＣＰＵ４２は、ストレージ装置１２全体の動作制御を司るプロセッサであり、ファイルサーバ３から与えられる各種コマンド及びメモリ４３に格納された各種プログラムに基づいて、必要な制御処理を実行する。メモリ４３は、主として各種プログラム及び各種管理テーブルを保持するために使用される。図２について後述する入出力制御プログラム５８及びキャッシュ制御プログラム５９もこのメモリ４３に保持される。
【００３６】
図２は、かかるコンピュータシステム１のソフトウェア構成を示す。この図２に示すように、バックアップサーバ４にはバックアップサーバプログラム５０が実装されている。バックアップサーバプログラム５０は、管理端末装置７から与えられるバックアップ実行命令及びリストア実行命令に応じて、ファイルサーバ３のファイルサーバプログラム５２が提供するファイルやファイルシステムを指定して、ファイルサーバ３のバックアッププログラム５３にそのバックアップを依頼したり、指定されたファイルやファイルシステムのリストアをファイルサーバ３のリストアプログラム５７に依頼する。
【００３７】
またテープサーバ６には、テープサーバプログラム５１実装されている。テープサーバプログラム５１は、バックアップサーバプログラム５０からの指示に応じてテープ装置５を制御することにより、ファイルサーバ３のバックアッププログラム５３から送信されるバックアップデータをテープ装置５を介して磁気テープに記録させたり、指定されたデータをテープ装置５を介して磁気テープから読み出させ、これをファイルサーバ３のリストアプログラム５７に送信する。
【００３８】
一方、ファイルサーバ３には、ファイルサーバプログラム５２、バックアッププログラム５３、ストレージ入出力プログラム５４、スナップショットプログラム５５、ファイルシステム処理プログラム５６及びリストアプログラム５７が実装されている。
【００３９】
ファイルサーバプログラム５２は、ファイルサーバ３に接続されたディスク装置１０やストレージ装置１２が提供する記憶領域をクライアント２に提供すると共に、クライアント２からのファイルアクセス要求に応じて、当該記憶領域に格納されたファイルシステムにファイルシステム処理プログラム５６を経由してアクセスする機能を提供する。
【００４０】
バックアッププログラム５３は、バックアップサーバ４のバックアップサーバプログラム５０により指定されたファイルシステムのデータを指定されたテープ装置５，１３を介して磁気テープにバックアップする機能を提供する。またバックアッププログラム５３は、必要に応じてスナップショットプログラム５５を起動することにより、ディスク装置１０やストレージ装置１２に格納されたファイルやファイルシステムのスナップショットを作成させ、そのスナップショットをテープ装置５,１３を介して磁気テープにバックアップする機能を提供する。
【００４１】
ストレージ入出力プログラム５４は、バックアッププログラム５３やリストアプログラム５７がテープ装置１３にアクセスする場合や、ファイルシステム処理プログラム５６がディスク装置１０にアクセスする場合に、ファイルサーバ３のストレージインタフェース２３（図１）を制御してデータを入出力する機能を提供する。
【００４２】
スナップショットプログラム５５は、バックアッププログラム５３などからスナップショット作成の指示が与えられたときに、ディスク装置１０又はストレージ装置１２に格納されたファイルシステムのスナップショットを作成する機能を提供する。スナップショットは、スナップショットを作成した時点でのファイルデータを保つため、バックアップにどれだけ時間がかかっても、スナップショットを作成した時点の状態をバックアップすることが可能になる。
【００４３】
なお、例えばディスク装置１０に格納されたファイルやファイルシステムのスナップショットを作成する方式としては、スナップショット作成の指示が与えられた時点のディスク装置１０に格納されたデータを他のディスク装置１１にコピーするコピー方式や、ディスク装置１０及びディスク装置１１にデータを二重書きしておき、スナップショット作成の指示が与えられた時点で、ディスク装置１１へのデータ書き込みを中止し、その後はディスク装置１０へのみ書き込みのみを行う二重書き分割方式、及びスナップショット作成の指示が与えられた後、ディスク装置１０のブロックに最初にデータを書き込む際に、書き換えられる前のデータをディスク装置１１に退避させて保存するコピーオンライト差分スナップショット方式などがある。ストレージ装置１２に格納されたファイルやファイルシステムのスナップショットを作成する方式も同様である。
【００４４】
ファイルシステム処理プログラム５６は、ファイルシステム内に存在する各ファイルのファイル情報及び各ディレクトリのディレクトリ情報を管理している。そしてファイルシステム処理プログラム５６は、これらのファイル情報及びディレクトリ情報に基づいて、ファイル名を指定したファイルアクセス要求をそのファイルの先頭ブロックアドレス及びそのファイルのファイルサイズを指定したブロックデータの入出力要求に変換し、この入出力要求をストレージ入出力プログラム５４に与えることで、ファイルに対するアクセスを実現する。
【００４５】
さらにリストアプログラム５７は、バックアッププログラム５３がテープ装置５，１３を介して磁気テープにバックアップしたファイルシステムのデータを、元のディスク装置１０，１１やストレージ装置１２にリストア（復元）するリストア処理を行う。
【００４６】
他方、ストレージ装置１２には、入出力制御プログラム５８及びキャッシュ制御プログラム５９が実装されている。
【００４７】
入出力制御プログラム５８は、論理的に１又は複数のディスク装置３０（図１）がストレージバス９上に接続されているように、ストレージ装置１２の第１のストレージインタフェース４０の入出力を制御する。また入出力制御プログラム５８は、ストレージ装置１２の第２のストレージインタフェース４１を制御して、ストレージ装置１２に搭載された複数のディスク装置３０をＲＡＩＤ方式で運用するための処理を行う。
【００４８】
キャッシュ制御プログラム５９は、入出力制御プログラム５８の処理を高速化するため、ストレージ装置１２のメモリ４３（図１）上のキャッシュ領域に対するデータの入出力を制御する。例えばキャッシュ制御プログラム５９は、同一の論理ボリュームに対するデータの入出力要求（書込み要求又は読出し要求）が連続して与えられた場合、かかる論理ボリュームに対するデータの入出力を現在のデータサイズよりも大きいサイズで行なわせ、かかるキャッシュ領域上にデータを一時的に蓄える。またキャッシュ制御プログラム５９は、ファイルサーバ３から入出力要求のあったデータが上記キャッシュ領域上に存在する場合には、論理ボリュームにアクセスせず、当該キャッシュ領域上のデータを用いて入出力処理を実行する。
【００４９】
なお、以下においては、各種処理の処理主体を「プログラム」として説明する場合があるが、実際上は、その「プログラム」に基づいて、バックアップサーバ４や、テープサーバ６、ファイルサーバ３又はストレージ装置１２内のＣＰＵが対応する処理を行なうことは言うまでもない。
【００５０】
（１−２）本実施の形態によるバックアップ方法
次に、コンピュータシステム１における本実施の形態によるファイルシステムのバックアップ方法について説明する。
【００５１】
コンピュータシステム１において、ディスク装置１０に格納されたファイルシステムをバックアップする場合、管理者は、管理端末装置７を操作して、バックアップ対象のファイルシステムの先頭ディレクトリと、バックアップ先となどを指定したバックアップ実行命令をバックアップサーバ４に与える。
【００５２】
このバックアップ実行命令を受信したバックアップサーバ４のバックアップサーバプログラム５０は、同様の情報が格納されたバックアップ要求をファイルサーバ３に送出する。また、このバックアップ要求を受信したファイルサーバ３のバックアッププログラム５３は、指定されたファイルシステム内に存在するファイル及びディレクトリ毎の読出し要求をディスク装置１０に順次送信する。
【００５３】
そして、この読出し要求を受信したディスク装置１０は、読出し要求において指定された読出し対象がファイルのときにはそのファイルのファイル情報及びファイルデータ、当該読出し対象がディレクトリのときにはそのディレクトリのディレクトリ情報を順次読み出し、これらをバックアップデータとしてファイルサーバ３に送信する。かくしてこのバックアップデータは、この後ファイルサーバ３のバックアッププログラム５３により、バックアップ先のテープ装置５，１３等に転送されて磁気テープにバックアップされる。
【００５４】
この場合において、本実施の形態によるコンピュータシステム１では、上述のようにファイルサーバ３のバックアッププログラム５３がディスク装置１０にファイルの読出し要求を送信する際に、当該ディスク装置１０における各ファイルのファイルデータがそれぞれ格納された記憶領域の物理アドレスに基づいて、各ファイルをディスク装置１０から読み出す際の読出し順序を決定し、決定した読出し順序に従って、各ファイルのファイルデータをディスク装置１０から読み出すことを特徴の１つとしている。
【００５５】
図３は、このようなバックアップ処理に関するバックアッププログラム５３の具体的な処理内容を示している。
【００５６】
バックアッププログラム５３は、バックアップサーバ３のバックアップサーバプログラム５０から上述のバックアップ要求が与えられると、この図３に示すバックアップ処理を開始し、まず、そのとき与えられたバックアップ要求を解析し、バックアップ対象のファイルシステムと、当該ファイルシステムのバックアップ先とを確認する（ＳＰ１）。
【００５７】
続いてバックアッププログラム５３は、バックアップ対象として指定されたファイルシステムの先頭のディレクトリを、図示しない検出ディレクトリリストに登録し（ＳＰ２）、この後、このディレクトリ内に存在するファイルやディレクトリを探索するためのスレッド（以下、これをディレクトリ探索スレッドと呼ぶ）を複数生成する（ＳＰ３）。なお、このとき生成するディレクトリ探索スレッドの数は、４個などの固定値であっても、またバックアップすべきファイルやディレクトリの数に応じて変更するようにしても良い。
【００５８】
続いてバックアッププログラム５３は、これらすべてのディレクトリ探索スレッドがバックアップ対象として指定されたファイルシステム内に存在するファイル及びディレクトリの探索処理（以下、これをディレクトリ探索処理と呼ぶ）を完了するのを待ち受ける（ＳＰ４）。
【００５９】
このとき各ディレクトリ探索スレッドは、後述のように、それぞれバックアップ対象として指定されたファイルシステム（ディレクトリ）内を探索しており、ファイルやディレクトリを検出した場合には、そのファイルやディレクトリを図４に示すバックアップリスト６０に登録する。
【００６０】
このバックアップリスト６０は、かかる探索により検出されたファイル及びディレクトリを登録するためのリストであり、ファイル名／ディレクトリ名欄６０Ａ、サイズ欄６０Ｂ及び先頭ブロックアドレス欄６０Ｃを備える。そしてファイル名／ディレクトリ名欄６０Ａには、後述のようにバックアップ対象のファイルシステム内を探索することにより検出されたファイル及びディレクトリの名称が格納される。またサイズ欄６０Ｂには、そのエントリがファイルに対応する場合には、そのファイルのファイルデータ及びファイル情報の合計サイズが格納され、そのエントリがディレクトリに対応する場合には、そのディレクトリ情報のサイズが格納される。さらに先頭ブロックアドレス欄６０Ｃには、そのエントリがファイルに対応する場合には、そのファイルが格納されている記憶領域の先頭ブロックの物理アドレス（以下、これを先頭ブロックアドレスと呼ぶ）が格納され、そのエントリがディレクトリに対応する場合には、ブロックアドレスの最大値が格納される。
【００６１】
従って、図４の例では、かかる検索によってファイル名が「/data/aaa」で、サイズが「1024byte」のファイルが検出され、そのファイルの先頭ブロックアドレスが「528」であることが示されている。
【００６２】
そしてバックアッププログラム５３は、すべてのディレクトリ探索スレッドからディレクトリ探索処理が完了した旨の通知（以下、これをディレクトリ探索処理完了通知と呼ぶ）が与えられると、バックアップリスト６０のエントリを、先頭ブロックアドレス欄６０Ｃに格納された先頭ブロックアドレスが小さいものから順番に並べ替えるソート処理を実行する（ＳＰ５）。
【００６３】
なお、このソート処理時における処理アルゴリズムとしては、マージソート方式などの一般に効率が良いとされているソート方式を利用することが望ましい。また、上述のように、エントリがディレクトリに対応する場合には先頭ブロックアドレスとしてブロックアドレスの最大値が格納されるが、このように先頭ブロックアドレスの値が同じときには、対応するファイル又はディレクトリのパス名のアルファベット又は数字順で並び替えを行なうようにする。
【００６４】
次いでバックアッププログラム５３は、かかるソート処理を施したバックアップリスト６０に登録されているエントリの中から先頭のエントリの情報を読み出し、そのエントリに対応するファイル又はディレクトリの読出し要求をディスク装置１０に送信する。またバックアッププログラム５３は、バックアップリスト６０のすべてのエントリについて、エントリの並び順に同様の処理を実行する。
【００６５】
かくして、このときバックアップ対象のファイルシステム内に存在するファイル及びディレクトリに関するバックアップデータが、先頭ブロックアドレスの小さいファイルのものから順番にディスク装置１０から読み出されてファイルサーバ３に与えられる。そしてバックアッププログラム５３は、このとき得られた各ファイルのファイルデータをストレージ入出力プログラム５４を介してバックアップ先のテープ装置５に接続されたテープサーバ６やテープ装置１３に転送する（ＳＰ６）。この結果、これらファイルのファイルデータがテープ装置５，１３を介してバックアップ要求において指定された磁気テープに順次バックアップされることとなる。
【００６６】
そしてバックアッププログラム５３は、やがてバックアップリスト６０のすべてのエントリについて上述の処理を実行し終えると、バックアップが完了した旨の通知をバックアップサーバ４に送信し、この後このバックアップ処理を終了する。
【００６７】
なお、かかるバックアップ処理のステップＳＰ３において生成された各ディレクトリ探索スレッドが行なうディレクトリの探索処理の具体的な処理内容を図５に示す。
【００６８】
各ディレクトリ探索スレッドは、バックアッププログラム５３により生成されると、この図５に示すディレクトリ探索処理を開始し、まず、現在、ディレクトリ探索処理を実行中のディレクトリ探索スレッドが存在せず、かつ検出ディレクトリリストが空であるか（検出ディレクトリリストにファイル又はディレクトリが掲載されていないか）否かを判断する（ＳＰ１０）。
【００６９】
ディレクトリ探索スレッドは、この判断において否定結果を得ると、検出ディレクトリリストが空であるか否かを再度判断し、肯定結果を得るとステップＳＰ１０に戻る。そしてディレクトリ探索スレッドは、この後ステップＳＰ１０において肯定結果を得又はステップＳＰ１１において否定結果を得るまで同様の処理を繰り返す（ＳＰ１０−ＳＰ１１−ＳＰ１０）。
【００７０】
一方、ディレクトリ探索スレッドは、ステップＳＰ１１の判断において否定結果を得ると、検出ディレクトリリストからエントリを１つ取り出し（ＳＰ１２）、取り出したエントリについて、そのエントリはディレクトリに対応するエントリであるか否かを判断する（ＳＰ１３）。
【００７１】
この判断において否定結果を得ることは、バックアップサーバ４からのバックアップ要求において指定されたバックアップ対象がファイルであったことを意味する。かくしてこのときディレクトリ探索スレッドは、対応するファイルの先頭ブロックアドレスをファイルシステム処理プログラム５６（図２）に問い合わせ（ＳＰ１４）、そのファイルのファイル名と、そのファイルのサイズと、ステップＳＰ１４において得られたそのファイルの先頭ブロックアドレスとをバックアップリスト６０に格納（つまりそのファイルをバックアップリストに登録）し（ＳＰ２２）、この後ステップＳＰ１０に戻る。
【００７２】
これに対してステップＳＰ１３の判断において肯定結果を得ることは、バックアップサーバ４からのバックアップ要求において指定されたバックアップ対象がファイルシステムの一部又は全部であったことを意味する。かくしてこのときディレクトリ探索スレッドは、ステップＳＰ１２において取得したエントリに対応するディレクトリは空であるか否かを判断する（ＳＰ１５）。
【００７３】
ディレクトリ検索スレッドは、この判断において肯定結果を得るとステップＳＰ１０に戻り、これに対して否定結果を得るとそのディレクトリ内のエントリ（ファイル又はディレクトリ）を１つ選択する（ＳＰ１６）。そしてディレクトリ探索スレッドは、このとき選択したエントリがディレクトリであるか否かを判断する（ＳＰ１７）。
【００７４】
ディレクトリ検索スレッドは、この判断において否定結果を得ると、ステップＳＰ１４と同様にしてそのファイルの先頭ブロックアドレスを取得し（ＳＰ１８）、そのファイルをバックアップリスト６０に登録する（ＳＰ１９）。これに対してディレクトリ検索スレッドは、ステップＳＰ１７の判断において肯定結果を得ると、そのディレクトリを検出ディレクトリリストに登録する（ＳＰ２０）。
【００７５】
そしてディレクトリ検索スレッドは、この後、ステップＳＰ１２において選択したエントリに対応するディレクトリ内に未処理のエントリ（ファイル又はディレクトリ）があるか否かを判断し（ＳＰ２１）、否定結果を得るとステップＳＰ１６に戻る。さらにディレクトリ検索スレッドは、この後、ステップＳＰ２１において否定結果を得るまで同様の処理を繰り返す（ＳＰ１６〜ＳＰ２１−ＳＰ１６）。
【００７６】
そしてディレクトリ検索スレッドは、ステップＳＰ１２において検出ディレクトリリストから取得したエントリに対応するディレクトリ内に存在するすべてのファイル又はディレクトリについての処理を終えることによりステップＳＰ２１において否定結果を得ると、そのディレクトリをバックアップリスト６０に追加する（ＳＰ２２）。この際、ディレクトリ検索スレッドは、そのディレクトリの先頭ブロックアドレスとして、ブロックアドレスの最大値を設定する。
【００７７】
続いてディレクトリ検索スレッドは、ステップＳＰ１０に戻り、この後ステップＳＰ１０において肯定結果を得るまで同様の処理を繰り返す（ＳＰ１０〜ＳＰ２２−ＳＰ１０）。そしてディレクトリ検索スレッドは、やがてバックアップ対象のファイルシステム内のすべてのファイル及びディレクトリをバックアップリスト６０に登録し終えることによりステップＳＰ１０において肯定結果を得ると、バックアッププログラム５３（図２）に上述のディレクトリ探索処理完了通知を送信した後（ＳＰ２３）、このディレクトリ探索処理を終了する。
【００７８】
次に、上述のようなバックアップ処理によって、どのようにディスク装置１０からデータが読み出されるかを、図４及び図６を参照して説明する。
【００７９】
図６は、一般的なハードディスクドライブの内部構造を簡略的に示している。この図６に示すように、ハードディスクドライブは、図示しない第１のスピンドルモータにより軸７０を中心として一定回転数で回転する磁気円盤７１を備える。
【００８０】
またハードディスクドライブには、図示しない第２のスピンドルモータにより軸７２を中心として回転し得るように支持されたアーム７３が設けられている。またアーム７３の先端部には磁気円盤７１と間隙を介して対向するように磁気ヘッド７４が固定されており、かくして第２のスピンドルモータを制御することによって、磁気円盤７１の表面上に同心円状に形成される複数のトラックＴ０〜Ｔ１３のうちの所望のトラックＴ０〜Ｔ１３上に磁気ヘッド７４を移動させ得るようになされている。
【００８１】
これによりハードディスクドライブにおいては、磁気ヘッド７４を介して所望のトラックＴ０〜Ｔ１３上にデータを記録したり、そのトラックＴ０〜Ｔ１３に記録されたデータを磁気ヘッド７４を介して読み出すことができるようになされている。
【００８２】
なお、ハードディスクドライブの中には、この磁気円盤７１が複数枚設けられたものや、磁気円盤７１の両面に情報を記録できるものも存在するが、ここでは簡単のためディスク装置１０やストレージ装置１２に搭載されたハードディスクドライブにおいては、磁気円盤７１を１枚のみ内蔵し、かつこの磁気円盤７１の片面にのみ情報を記録できるものとする。
【００８３】
また非特許文献３の4.1章には、磁気円盤の表面上に形成されるトラック数が90774個であることが規定されているが、図６では、トラックが１４個設けられている場合について示しており、以下においては、磁気円盤７１の最外周のトラックＴ０を０番トラックとし、以降、内周に行く毎にトラック番号が１つずつ大きくなるものとする。
【００８４】
ここで、従来のバックアップ方式では、ソート処理を行なっていないバックアップリスト６０上でのエントリの並び順で対応するファイルやディレクトリのバックアップを行っているため、例えば図４に例示したようなソート処理を行なっていないバックアップリスト６０に従えば、図６のブロックＢＬ３、ブロックＢＬ５、ブロックＢＬ２、ブロックＢＬ４及びブロックＢＬ１の順にアクセスが必要となる。
【００８５】
すると、ディスク装置１０は、まず５番トラックＴ４に移動してブロックＢＬ３のデータを読み出し、次に１番トラックＴ１に移動してブロックＢＬ５のデータを読み出した後、５番トラックＴ５に移動してブロックＢＬ２のデータを読み出し、さらに１１番トラックＴ１１に移動してブロックＢＬ４のデータを読み出し、この後５番トラックＴ５に移動してブロックＢＬ１のデータを読み出すという動作を行なうことになる。
【００８６】
これに対して本実施の形態によるバックアップ方法では、図４のバックアップリスト６０の各エントリを先頭ブロックアドレスが小さい順に並べ替えてから当該バックアップリストに従ってバックアップを行うため、ブロックＢＬ５、ブロックＢＬ１、ブロックＢＬ２、ブロックＢＬ３及びブロックＢＬ４の順番でファイルが読み出されることになる。
【００８７】
すなわちディスク装置１０は、１番トラックＴ１に移動してブロックＢＬ５のデータを読み出し、５番トラックＴ５に移動してブロックＢＬ１、ブロックＢＬ２及びブロックＢＬ３のデータをそれぞれ読み出し、この後１１番トラックＴ１１に移動してブロックＢＬ４のデータを読み出すという動作を行なうことになる。
【００８８】
従って、本実施の形態によるバックアップ方法によれば、磁気ヘッド７４の移動量が従来に比べて低減するため、ヘッドシーク時間を低減させることができる。かくするにつき、ディスク装置１０からファイルを読み出すのに必要な時間を低減させることができ、かくしてコンピュータシステム１全体としてファイル読出し性能やバックアップ性能を向上させることができる。
【００８９】
また本実施の形態によるバックアップ方法によれば同一トラックＴ５上にあるブロックＢＬ１〜ＢＬ３から連続してデータを読み出すことができるため、シーク回数を減らすことができる。かくするにつき、ディスク装置１０やストレージ装置１２からファイルを読み出すのに必要な時間をより一層低減させることができ、かくしてコンピュータシステム１全体としてファイル読出し性能やバックアップ性能をより一層向上させることができる。
【００９０】
さらに、上述においては５個のファイルをバックアップする場合について説明したが、バックアップ対象のファイルが何千、何万である場合、磁気ヘッド７４のシーク時間の短縮によるファイル読出し時間やバックアップ総時間の短縮効果がより一層高まる。
【００９１】
なお上述においては、バックアップ対象がディスク装置１０に格納されたファイルシステムである場合について説明したが、バックアップ対象のファイルシステムがスナップショットである場合にも、同様に本実施の形態によるバックアップ方法を適用することができる。この場合、スナップショットの作成方式としては、上述したコピー方式及び二重書き分割方式などがあるが、いずれの方式を採用した場合においても、本実施の形態によるバックアップ方法を適用することによって、スナップショットのバックアップ時にも同様の効果を得ることができる。
【００９２】
またスナップショットの他の作成方式として、スナップショットの取得時点からの差分データを他のディスク装置に蓄積する方式や、更新箇所の更新前データをハードディスクドライブにコピーすることでスナップショットを作成する方式もある。このようなスナップショット作成方式によると、バックアップ対象となるスナップショットのデータが複数のディスク装置に分散することとなる。
【００９３】
このような場合には、一般的にスナップショットを取得した場合には直ちにバックアップを実行するため、ユーザがデータを読み書きするディスク装置上に存在していた元のブロックアドレスを用いてバックアップリスト６０内の各エントリの並べ替えを行なっても、また差分データを移動させる移動先のディスク装置上でのブロックアドレスを用いてバックアップリスト６０内の各エントリの並べ替えを行なっても、差分データの量が支配的にならなければ充分に効果を得ることができる。
【００９４】
また、ファイルシステムのデータがストレージ装置１２が提供する論理ボリュームＶＯＬ（図１）に格納されている場合でも、論理ボリュームＶＯＬのブロックアドレス順にアクセスすれば、論理ボリュームを構成する物理ディスクに対しても、ブロックアドレス順のアクセスとなるため、同様の効果が得られる。さらに、ストレージ装置１２では、論理ボリュームＶＯＬのブロックアドレス順にアクセスすることで、シーケンシャルアクセスであるとキャッシュ制御プログラム５９が判断して、シーケンシャル先読みを行う場合がある。このような場合には、隣接しているブロックＢＬ１〜ＢＬ３からのデータの読み出しが1回にまとめられる確率が高くなるため、更なる効果が期待できる。
【００９５】
一方、コンピュータシステム１において、テープ装置５，１３を介して磁気テープにバックアップされたファイルシステムのデータをリストアする場合、管理者は管理端末装置７を操作することにより、バックアップサーバ４に対してリストア対象のバックアップデータ及びその所在と、リストア先となどを指定したリストア実行命令を与える。
【００９６】
このリストア実行命令を受信したバックアップサーバ４のバックアップサーバプログラム５０（図１）は、同様の情報が格納されたリストア要求をファイルサーバ３に送出する。またこのリストア要求を受信したファイルサーバ３のリストアプログラム５７は、リストア対象のバックアップデータが格納されている磁気テープが装填されたテープ装置５，１３に対して、リストア対象のバックアップデータを自サーバ（ファイルサーバ３）に転送すべきデータ転送要求を送信する。
【００９７】
かくして、かかるデータ転送要求に応じてバックアップデータがテープ装置５，１３により磁気テープから読み出されてファイルサーバ３に送信され、当該ファイルサーバ３のリストアプログラム５７（図２）によりディスク装置１０やストレージ装置１２が提供する記憶領域内にリストアされる。
【００９８】
図７は、このようなリストア処理に関するファイルサーバ３のリストアプログラム５７の具体的な処理内容を示している。
【００９９】
リストアプログラム５７は、バックアップサーバ３のバックアップサーバプログラム５０（図２）から上述のリストア要求が与えられると、この図７に示すリストア処理を開始し、まず、そのとき与えられたリストア要求を解析し、リストア対象のバックアップデータ及び当該バックアップデータの所在と、当該バックアップデータのリストア先とを確認する（ＳＰ３０）。
【０１００】
続いてリストアプログラム５７は、バックアップデータが格納されている磁気テープが装填されたテープ装置５，１３に対して、必要に応じてリストア対象のバックアップデータの転送要求を送信し（ＳＰ３１）、この後リストアが完了したか否かを判断する（ＳＰ３２）。
【０１０１】
そしてリストアプログラム５７は、この判断において否定結果を得ると、かかるテープ装置５，１３から転送されるリストア対象のバックアップデータに基づいて、ファイルやディレクトリを指定されたリストア先にリストアする（ＳＰ３３）。
【０１０２】
具体的に、リストアプログラム５７は、かかるテープ装置５，１３からいずれかのエントリ（ファイル又はディレクトリ）の情報のバックアップデータが送信されるのを待ち受ける。そしてリストアプログラム５７は、１つ分のエントリの情報を受信すると、その情報がディレクトリ情報である場合には、リストア先にディレクトリを作成（そのディレクトリ情報を対応するスーパーブロック内に格納）する。またリストアプログラム５７は、かかるディレクトリ情報内の作成時刻などの情報を後で復元できるよう、かかるディレクトリを図示しない所定の復元リストに登録する。
【０１０３】
これに対してリストアプログラム５７は、受信した管理情報がファイル情報であった場合には、さらにかかるテープ装置５，１３からそのファイルのファイル情報及びファイルデータを受け取り、指定されたリストア先にそのファイルデータを書き込むと共に、ファイル情報を対応するスーパーブロック内に格納する。なお、この際スーパーブロック内に格納されるファイル情報内のファイルの作成時刻や更新時刻は、バックアップの際に保存された当該ファイルの作成時刻や更新時刻である。
【０１０４】
またリストアプログラム５７は、そのとき復元したファイルのパス上に存在するディレクトリが復元リストに登録されているときには、そのファイルのファイル情報へのポインタをそのディレクトリのディレクトリ情報に設定することにより、そのディレクトリからそのファイルへのパスを形成し、この後、当該ディレクトリを復元リストから削除する。
【０１０５】
次いでリストアプログラム５７は、ステップＳＰ３２に戻り、この後、同様の処理を繰り返す（ＳＰ３２〜ＳＰ３３−ＳＰ３２）。そしてリストアプログラム５７は、やがてリストア対象のすべてのファイルやディレクトリを復元し終えることによりステップＳＰ３２において肯定結果を得ると、このリストア処理を終了する。
【０１０６】
なお、以上の処理は、従来から行なわれているリストア処理と何ら変わりはない。しかしながら、上述のように本実施の形態によるバックアップ方法では、バックアップされるファイルの順番がファイルのパス順ではないため、ファイルのパス順にファイルやディレクトリをバックアップすることを前提に設計されているディレクトリ情報の反映が正確に行なうことができない。例えば、上述した本実施の形態によるバックアップ方法では、ディレクトリを復元した後に当該ディレクトリ内にファイルが復元されることがあり、このような場合には、かかるディレクトリの更新時間がそのファイルを復元した時刻に書き換えられてしまうことになる。
【０１０７】
そこで、本実施の形態では、図５について上述したディレクトリ探索処理のステップＳＰ２２において、各ディレクトリの先頭ブロックアドレスとして最大値を設定し、さらに図３について上述したバックアップ処理のステップＳＰ５において先頭ブロックアドレスの値が同じ場合にはパス名でソートする。これによりバックアップリスト６０上においてディレクトリがファイルの最後に集められ、さらにこれらがパス名でソートされているため、ディレクトリの更新時刻を最後に上書きすることで、正確なディレクトリ情報を復元することができる。
【０１０８】
（２）第２の実施の形態
図１及び図２において、８０は全体として第２の実施の形態によるコンピュータシステムを示す。このコンピュータシステム８０は、ファイルシステムのファイル及びディレクトリがそれぞれＡＣＬ（Access Control List）などの拡張属性情報をもつ点が第１の実施の形態によるコンピュータシステム１（図１）と異なる。
【０１０９】
この場合において、これらの拡張属性情報も、各ファイルのデータ同様、ディスクドライブ１０の磁気円盤７１（図６）上で分散配置される。従って、バックアップ対象のファイル及びディレクトリをその先頭ブロックアドレスの順番でソートしたとしても、例えば各ファイルの拡張属性情報がそのファイルのファイルデータとはまったく異なる場所に格納されている場合には、バックアップを高速化することが困難となる。
【０１１０】
そこで、本実施の形態においては、かかる問題を解決するための手段として、拡張属性情報の先読みを行う。
【０１１１】
図８は、ファイル及びディレクトリが拡張属性情報をもつファイルシステムをバックアップする場合におけるファイルサーバ８１（図２）に実装されたバックアッププログラム８２（図２）の具体的な処理内容を示している。
【０１１２】
すなわちバックアッププログラム８２は、バックアップサーバ４のバックアップサーバプログラム５０から上述のバックアップ要求が与えられると、この図８に示すバックアップ処理を開始し、ステップＳＰ４０〜ステップＳＰ４３を図３について上述した第１の実施の形態によるバックアップ処理のステップＳＰ１〜ステップＳＰ４と同様に処理することにより、図９に示すようなバックアップリスト８３を作成する。
【０１１３】
このバックアップリスト８３は、ステップＳＰ４２において生成した各ディレクトリ探索スレッドがバックアップ対象のファイルシステム（ディレクトリ）内を探索することにより検出したバックアップ対象のファイル及びディレクトリを登録するためのリストである。このバックアップリスト８３は、ファイル名／ディレクトリ名欄８３Ａ、サイズ欄８３Ｂ、先頭ブロックアドレス欄８３Ｃ及び拡張属性ブロックアドレス欄８３Ｄを備える。
【０１１４】
そしてファイル名／ディレクトリ名欄８３Ａ、サイズ欄８３Ｂ及び先頭ブロックアドレス欄８３Ｃには、図４について上述した第１の実施の形態によるバックアップリスト６０と同様に、かかる探索により検出されたバックアップ対象のファイル又はディレクトリの名称、サイズ及び先頭ブロックアドレスがそれぞれ格納される。また拡張属性ブロックアドレス欄８３Ｄには、対応するファイル又はディレクトリの拡張属性情報が格納されている記憶領域のうちの先頭ブロックのアドレスが格納される。
【０１１５】
続いてバックアッププログラム８２は、作成したバックアップリスト８３の各エントリを先頭ブロックアドレスの小さいものから順番に並べ替えるソート処理を実行する（ＳＰ４４）。なお、この場合における処理アルゴリズムとしては、図３について上述した第１の実施の形態によるバックアップ処理のステップＳＰ５と同様のソート方式を用いることができる。
【０１１６】
次いでバックアッププログラム８２は、拡張属性情報読出しスレッドを複数生成する（ＳＰ４５）。そして、このとき生成された拡張属性情報読出しスレッドは、バックアップリスト８３に登録された各ファイル及び各ディレクトリの拡張属性情報を、バックアップリスト８３における対応するエントリの並び順で順次読み出すように、ファイルシステム処理プログラム５６（図２）に拡張属性情報の読出し指示を順次与える。かくしてファイルシステム処理プログラム５６は、この指示に従って、指定された拡張属性情報の読出し要求をディスク装置１０に送信すると共に、この結果としてディスク装置１０から送信されるファイル又はディレクトリの拡張属性情報をメモリ２２のバッファ領域に格納する。
【０１１７】
次いでバックアッププログラム８３は、先読みスレッドを複数生成する（ＳＰ４６）。そして、このとき生成された先読みスレッドは、バックアップリスト８３に登録された各ファイルのファイルデータを、そのファイルに対応するエントリの並び順で、先頭ブロック分だけ順次先読みするように、ファイルシステム処理プログラム５６にファイルデータの読出し指示を順次与える。かくしてファイルシステム処理プログラム５６は、この指示に従って、指定された先頭ブロックのデータの読出し要求をディスク装置１０に送信すると共に、この結果としてディスク装置１０から送信されるかかるファイルの先頭ブロックのデータをメモリ２２のバッファ領域に格納する。
【０１１８】
なお、ステップＳＰ４５において生成する拡張属性情報読出しスレッド及びステップＳＰ４６において生成する先読みスレッドの数は、それぞれ４個などの固定値であっても、またバックアップすべきファイルやディレクトリの数に応じて変更するようにしても良い。
【０１１９】
この後バックアッププログラム８３は、上述のようにしてメモリ２２のバッファ領域に格納されたバックアップ対象のファイル及びディレクトリの拡張属性情報及びファイルデータを、バックアップリスト８３上における対応するエントリの並び順でメモリ２２から読み出し、これをバックアップ先のテープ装置５，１３に順次転送する（ＳＰ４７）。そしてバックアッププログラム８３は、やがてすべてのデータを転送し終えると、このバックアップ処理を終了する。
【０１２０】
図１０は、かかる本実施の形態によるバックアップ処理（図８）のステップＳＰ４５において生成された各拡張属性情報読出しスレッドが実行する拡張属性情報読出し処理の処理手順を示している。拡張属性情報読出しスレッドは、この図１０に示す処理手順に従って、対応するディスク装置１０から対応するファイル及びディレクトリの拡張属性情報を読み出す。
【０１２１】
すなわち拡張属性情報読出しスレッドは、まず、バックアップリスト８３（図９）を参照して、次又は一定回数後にデータ転送を行なう予定のファイル又はディレクトリの拡張属性情報のファイルをオープンするようファイルシステム処理プログラム５６に指示を与える（ＳＰ５０）。かくして、この指示を受けたファイルシステム処理プログラム５６は、ストレージ入出力プログラム５４にファイルオープン要求を発行することにより、ディスク装置１０内に保存されている指定された拡張属性情報のファイルをオープンさせる。
【０１２２】
続いて拡張属性情報読出しスレッドは、かかる拡張属性情報のファイルのオープンが成功したか否かを判断し（ＳＰ５１）、肯定結果を得ると、その拡張属性情報の読み出しをファイルシステム処理プログラム５６に指示する（ＳＰ５２）。かくして、この指示を受けたファイルシステム処理プログラム５６は、ストレージ入出力プログラム５４にデータ読出し要求を発行することにより、指定された拡張属性情報のファイルのデータをディスク装置１０に読み出させ、読み出させたデータをメモリ２２上に確保したバッファ領域に格納させる。
【０１２３】
この後、拡張属性情報読出しスレッドは、ステップＳＰ５０に戻り、ステップＳＰ５１において否定結果を得るまで同様の処理を繰り返す（ＳＰ５０〜ＳＰ５２−ＳＰ５０）。これによりバックアップリスト８３に登録された各ファイル及びディレクトリの拡張属性情報がバックアップリスト８３における対応するエントリの並び順で順次読み出されてメモリ２２のバッファ領域に格納される。そして、これが図８について上述したバックアップ処理のステップＳＰ４７において、バックアッププログラム８２によりバックアップ先のテープ装置５，１３に順次転送されることとなる。
【０１２４】
そして拡張属性情報読出しスレッドは、やがてバックアップリスト８３に登録されたすべてのファイル及びすべてのディレクトリの拡張属性情報を読み出し終えるなどして、拡張属性情報のファイルのオープンに失敗したときには、この拡張属性読出し処理を終了する。
【０１２５】
一方、図１１は、かかるバックアップ処理（図８）のステップＳＰ４６において生成された各先読みスレッドが実行する先読み処理の処理手順を示している。先読みスレッドは、この図１０に示す処理手順に従って、ディスク装置１０から対応するファイルのファイルデータを読み出す。
【０１２６】
すなわち先読みスレッドは、まず、バックアップリスト８３（図９）を参照して、次又は一定回数後にデータ転送を行なう予定のファイルをオープンするようファイルシステム処理プログラム５６に指示を与える（ＳＰ６０）。かくして、この指示を受けたファイルシステム処理プログラム５６は、ストレージ入出力プログラム５４にファイルオープン要求を発行することにより、ディスク装置１０に保存されている指定されたファイルをオープンさせる。
【０１２７】
続いて先読みスレッドは、かかるファイルのオープンが成功したか否かを判断し（ＳＰ６１）、肯定結果を得ると、そのファイルのファイルデータの先頭ブロックのデータの読み出しをファイルシステム処理プログラム５６に指示する（ＳＰ６２）。かくして、この指示を受けたファイルシステム処理プログラム５６は、ストレージ入出力プログラム５４にデータ読出し要求を発行することにより、指定されたファイルの先頭ブロックのデータをディスク装置１０から読み出させ、読み出させたデータをメモリ２２上に確保したバッファ領域に格納させる。
【０１２８】
この後、先読みスレッドは、ステップＳＰ６１に戻り、ステップＳＰ６１において否定結果を得るまで同様の処理を繰り返す（ＳＰ６０〜ＳＰ６２−ＳＰ６０）。これによりバックアップリスト８３に登録された各ファイルの先頭ブロックのデータが、バックアップリスト８３上での対応するエントリの並び順で順次読み出されてメモリ２２のバッファ領域に格納される。そして、これが図８について上述したバックアップ処理のステップＳＰ４７において、バックアッププログラム８２によりバックアップ先のテープ装置５，１３に順次転送されることとなる。
【０１２９】
そして先読みスレッドは、やがてバックアップリスト８３に登録されたすべてのファイルの先頭ブロックのデータを読み出し終えるなどして、ファイルのオープンに失敗したときには、この先読み処理を終了する。
【０１３０】
次に、上述のようなバックアップ処理によって、どのようにディスク装置１０からデータが読み出されるかを、図９及び図１２を参照して説明する。
【０１３１】
図６との対応部分に同一符号を付して示す図１２において、ブロックＢＬ１０〜ブロックＢＬ１４には、それぞれブロックＢＬ１〜ＢＬ５にそれぞれファイルデータが格納されたファイルの拡張属性情報が格納されているものとする。
【０１３２】
従来のバックアップ方法では、ソート処理を行なっていないバックアップリスト８３における対応するエントリの並び順で、ファイルやディレクトリの拡張属性情報及びデータ（ファイルの場合にはファイルデータ及びファイル情報、ディレクトリの場合にはディレクトリ情報）の順番でバックアップを行っているため、例えば図９に例示したようなソート処理を行なっていないバックアップリスト８３に従えば、図１２のブロックＢＬ１２，ブロックＢＬ３，ブロックＢＬ１４，ブロックＢＬ５，ブロックＢＬ１１，ブロックＢＬ２，ブロックＢＬ１３，ブロックＢＬ４，ブロックＢＬ１０，ブロックＢＬ１の順にアクセスが必要となる。
【０１３３】
具体的に、ディスク装置１０は、まず６番トラックＴ６に移動してブロックＢＬ１２のデータを読み出し、次に５番トラックＴ５に移動してブロックＢＬ３及びブロックＢＬ１４のデータをそれぞれ読み出した後、１番トラックＴ１に移動してブロックＢＬ５のデータを読み出す。次いでディスク装置１０は、１３番トラックＴ１３に移動してブロックＢＬ１１のデータを読み出し、５番トラックＴ５に移動してブロックＢＬ２のデータを読み出した後、１番トラックＴ１に移動してブロックＢＬ１３のデータを読み出し、１１番トラックＴ１１に移動してブロックＢＬ４のデータを読み出し、この後４番トラックＴ４に移動してブロックＢＬ１０のデータを読み出し、５番トラックＴ５に移動してブロックＢＬ１のデータを読み出すという動作を行なうことになる。
【０１３４】
これに対して本実施の形態によるバックアップ方法では、図９のバックアップリスト８３のエントリを先頭ブロックアドレスが小さい順に並べ替え、その後、このバックアップリストに従って各ファイルのデータを読み出す処理と、各ファイルや各ディレクトリの拡張属性情報を読み出す処理とを並列に行うため、ブロックＢＬ５、ブロックＢＬ１、ブロックＢＬ２、ブロックＢＬ３及びブロックＢＬ４の順番でファイルが読み出され、かつディスク装置１０に対するデータの読出し要求は、数個先のファイルのものまでも発行されていることになる。
【０１３５】
例えば、簡単のため２個先のファイルの拡張属性情報及び当該ファイルのデータの先読みを行うものとすると、最初に５番トラックＴ５のブロックＢＬ１４及び１番トラックＴ１のブロックＢＬ５と、４番トラックＴ４のブロックＢＬ１０及び５番トラックＴ５のブロックＢＬ１とのデータを読み出すべき旨の読出し要求が、バックアッププログラム８２からストレージ入出力プログラム５４を介してディスク装置１０に与えられる。
【０１３６】
このときディスク装置１０は、例えば最初の読出し要求に応じて５番トラックＴ５上に磁気ヘッド７４を移動させるが、このときにはブロックＢＬ１及びブロック１４からデータを読み出す必要があることが分かっているため、先にアクセスできる一方のブロックＢＬ１，ＢＬ１４からデータを読み出し、次に他方のブロックＢＬ１４，ＢＬ１からデータを読み出した後に、当該５番トラックＴ５に近い方の４番トラックＴ４上に磁気ヘッド７４を移動させてブロックＢＬ１０からデータを読み出し、さらにこの後１番トラックＴ１に移動してブロックＢＬ５のデータを読み出す。
【０１３７】
この後、ディスク装置１０には、次のファイルのデータとして、ブロックＢＬ１１，ブロックＢＬ２、ブロックＢＬ１２及びブロックＢＬ３に格納されているデータの読出し要求が与えられる。このときディスク装置１０は、１番トラックＴ１上に磁気ヘッド７４が位置しているため、当該磁気ヘッド７４を１番トラックＴ１から最も近い５番トラックＴ５に移動させてブロックＢＬ２及びブロックＢＬ３のうちの先にアクセスできる一方のブロックＢＬ２，ＢＬ３からデータを読み出し、次に他方のブロックＢＬ３，ＢＬ２からデータを読み出す。またディスク装置１０は、この後、５番トラックＴ５に近い方の６番トラックＴ６上に磁気ヘッド７４を移動させてブロックＢＬ１２からデータを読み出し、次に磁気ヘッド７４を１３番トラックＴ１３上に移動させてブロックＢＬ１１からデータを読み出す。
【０１３８】
さらにディスク装置１０には、次ぎに読み出すべきファイルのデータとして、ブロックＢＬ１３及びブロックＢＬ４に格納されているデータの読出し要求が与えられる。このときディスク装置１０は、１３番トラックＴ１３上に磁気ヘッド７４が位置しているため、当該１３番トラックＴ１３に近いトラックである１１番トラックＴ１１上に磁気ヘッド７４を移動させてブロックＢＬ４からデータを読み出し、最後に磁気ヘッド７４を１番トラックＴ１に移動させてブロックＢＬ１３からデータを読み出す。
【０１３９】
このように本実施の形態によるバックアップ方法によれば、バックアップ対象のファイルシステムに属する各ファイル及びディレクトリの拡張属性情報の先読みを行うため、例えばファイルの拡張属性情報及びファイルデータを連続してディスク装置１０から読み出す場合に比べて磁気ヘッド７４の移動量を低減させることができる。かくするにつき、ファイル及びディレクトリが拡張属性情報をもつ場合においてもディスク装置１０からファイルを読み出すのに必要な時間を低減させることができ、かくしてコンピュータシステム１全体としてファイル読出し性能やバックアップ性能を向上させることができる。またこの際、かかる拡張属性情報の読出し処理を複数の拡張属性情報読出しスレッドによって並行して行なうため、バックアップ対象のファイルシステム内に存在する各ファイル及びディレクトリの拡張属性情報を迅速に行なうことができる。
【０１４０】
また本実施の形態によるバックアップ方法によれば、これらファイル及びディレクトリのバックアップと並行してファイルのファイルデータを先頭ブロック分だけ先読みするようにしているため、ディスク装置１０からファイルを読み出すのに必要な時間をより一層と低減させることができる。かくするにつき、コンピュータシステム１全体としてファイル読出し性能やバックアップ性能をさらに向上させることができる。またこの際、かかる拡張属性情報の読出し処理を複数の先読みスレッドによって並行して行なうため、バックアップ対象のファイルシステム内に存在する各ファイルの先読み処理を迅速に行なうことができる。
【０１４１】
なお、拡張属性情報を備えている場合には、リストアの際にファイルよりも先にディレクトリを作成する必要が生じる場合がある。そこで、本実施の形態の場合、図８について上述したバックアップ処理のステップＳＰ４２において生成した各ディレクトリ探索スレッドが、図５について上述したディレクトリ探索処理のステップＳＰ２２において、ディレクトリの先頭ブロックアドレスとして「０」を設定しておき、さらに、図８のバックアップ処理のステップＳＰ４４において、同一値の場合にパス名でソートするようにしておく。これによりディレクトリは、ファイルの前に集められ、それらは、パス名でソートされているため、ディレクトリの拡張属性情報を先に設定し、更新時刻は失われるが正確な拡張属性に復元することも可能である。
【０１４２】
（３）他の実施の形態
なお上述の実施の形態においては、本発明をファイルサーバ３，８１に適用するようにした場合について述べたが、本発明はこれに限らず、要は、ディスク装置に格納された複数のファイルを連続して読み出す処理を実行する種々の装置に広く適用することができる。
【０１４３】
また上述の実施の形態においては、ディスク装置１０における各ファイルのファイルデータがそれぞれ格納された各記憶領域の先頭ブロックアドレスに基づいて、各ファイルをディスク装置１０から読み出す際の読出し順序を決定する読出し順序決定部としての機能と、当該読出し順序決定部により決定された読出し順序に従って、各ファイルのファイルデータをディスク装置１０から順番に読み出すデータ読出し部としての機能と、当該データ読出し部によりディスク装置１０から読み出された各ファイルのファイルデータを、バックアップ先に転送するデータ転送部としての機能とを、１つのファイルサーバ３，８１に搭載するようにした場合について述べたが、本発明はこれに限らず、これらの機能の一部又は全部を、ディスク装置１０やストレージ装置１２又は専用のサーバなどの他の機器に搭載するようにしても良い。
【０１４４】
さらに上述の実施の形態においては、ファイルサーバ３，８１のバックアッププログラム５３，８２がバックアップリスト６０，８３のエントリを、そのエントリに対応するファイル等の先頭ブロックアドレスが小さい順に並べ替えるようにした場合について述べたが、本発明はこれに限らず、先頭ブロックアドレスが大きい順に並べ替えるようにしても良い。この場合には、ディレクトリの先頭ブロックアドレスを物理ブロックアドレスの最小値である「０」に設定するようにすれば良い。
【０１４５】
さらに上述の実施の形態においては、バックアップ対象として指定されたディレクトリを探索し、バックアップ対象となるファイル及び当該ファイルの先頭ブロックアドレスを取得するディレクトリ探索処理を実行するディレクトリ探索処理部としてのディレクトリ探索スレッドや、ファイルのファイルデータとは別個にディスク装置１０に格納されたファイル毎の拡張属性情報を、ファイルのファイルデータに先行して当該ディスク装置１０から読み出す拡張属性情報読出し部としての拡張属性情報読出しスレッド、及びファイルのファイルデータを先読みする先読み部としての先読みスレッドの数を、固定値又はバックアップすべきファイルやディレクトリの数に応じて変更するようにした場合について述べたが、本発明はこれに限らず、例えばバックアップサーバ４からファイルサーバ３に送信するバックアップ要求において指定するようにしても良い。
【産業上の利用可能性】
【０１４６】
本発明は、ファイルサーバの他、ディスク装置に格納された複数のファイルを連続して読み出す処理を実行する種々の装置に広く適用することができる。
【図面の簡単な説明】
【０１４７】
【図１】本発明を適用したコンピュータシステムの概略構成を示すブロック図である。
【図２】コンピュータシステムのソフトウェア構成を示すブロック図である。
【図３】第１の実施の形態によるバックアップ処理の処理手順を示すフローチャートである。
【図４】第１の実施の形態によるバックアップリストを示す概念図である。
【図５】ディレクトリ探索処理の処理手順を示すフローチャートである。
【図６】第１の実施の形態によるバックアップ処理時におけるディスク装置内又はストレージ装置内の対応するハードディスクドライブの動作の説明に供する概念図である。
【図７】リストア処理の処理手順を示すフローチャートである。
【図８】第２の実施の形態によるバックアップ処理の処理手順を示すフローチャートである。
【図９】第２の実施の形態によるバックアップリストを示す概念図である。
【図１０】拡張属性情報読出し処理の処理手順を示すフローチャートである。
【図１１】先読み処理の処理手順を示すフローチャートである。
【図１２】第２の実施の形態によるバックアップ処理時におけるディスク装置内又はストレージ装置内の対応するハードディスクドライブの動作の説明に供する概念図である。
【符号の説明】
【０１４８】
１，８０……コンピュータシステム、２……クライアント、３，８１……ファイルサーバ、４……バックアップサーバ、５，１３……テープ装置、６……テープサーバ、７……管理端末装置、１０，１１，３０……ディスク装置、１２……ストレージ装置、２１，４２……ＣＰＵ、２２，４３……メモリ、５０……バックアップサーバプログラム、５１……テープサーバプログラム、５２……ファイルサーバプログラム、５３，８２……バックアッププログラム、５４……ストレージ入出力プログラム、５５……スナップショットプログラム、５６……ファイルシステム処理プログラム、５７……リストアプログラム、５８……入出力制御プログラム、５９……キャッシュ制御プログラム、６０，８３……バックアップリスト、７１……磁気円盤、７４……磁気ヘッド、ＢＬ１〜ＢＬ５，ＢＬ１０〜ＢＬ１４……ブロック、Ｔ０〜Ｔ１３……トラック。
【図１】
0005147376.tif 000002
【図２】
0005147376.tif 000003
【図３】
0005147376.tif 000004
【図４】
0005147376.tif 000005
【図５】
0005147376.tif 000006
【図６】
0005147376.tif 000007
【図７】
0005147376.tif 000008
【図８】
0005147376.tif 000009
【図９】
0005147376.tif 000010
【図１０】
0005147376.tif 000011
【図１１】
0005147376.tif 000012
【図１２】
0005147376.tif 000013