(57)【要約】【課題】  本発明は、デフラグ処理中のI/O処理を記録するが、その記憶容量を制限できる方法についてのべている。従来はジャーナルに記憶していたため、記憶領域がI/O処理量による（I/O処理が多いと記憶容量も多くなる）。また、同じディスク装置でI/O処理とデフラグ処理を行うため、デフラグ処理中のI/O処理性能劣化が生じる。【解決手段】  ジャーナルではなく、I/O処理の更新セクタ番号とデフラグ処理による並べ替え前後のセクタ番号対応表をテーブルであわせもつため、I/O処理による更新量に依存しない記憶容量となる。またI/Oを行うディスク装置とは別のデフラグ用のディスク装置を用意し、デフラグ処理の前にディスクの複製を行い、デフラグ処理をデフラグ用のディスク装置で行うことにより、デフラグ処理中のI/O処理性能を劣化させない。【選択図】  図１
2005208697.tif 000002
【特許請求の範囲】
【請求項１】
デフラグ処理中のI/O処理で更新されたセクタがあった場合、その更新されたセクタ番号を記憶する方法と、デフラグ処理によるセクタ番号の変更があった場合、その前後のセクタ番号を対応して記憶する方法と、更新されたセクタは、デフラグ前後の対応セクタ番号をもとに、デフラグ後のセクタ番号へ記憶領域を反映する手段を特徴とするデフラグ方法。
【請求項２】
要求項１のデフラグ処理中に、通常のI/O処理は、別のパスで行なうことで、デフラグ処理によるI/O処理の劣化を防ぐ手段を特徴とするデフラグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットのような広域ネットワークを介して多数のユーザが断続的にアクセスするサーバに接続されたデータ記憶装置またはNAS（Network  Attached  Storage）において、ユーザからの要求によるデータの入出力性能を低下させることなく、データの入出力とデフラグとを並列実行可能とする方法。
【背景技術】
【０００２】
多数のユーザが断続的にアクセスするデータ記憶装置でデータのフラグメンテーションが発生した場合、ユーザからの要求を停止させてメンテナンスを行う時間の確保が困難なため、ユーザからの要求による入出力とデフラグとを並列実行させる手段が求められている。
【０００３】
前記の要求に対して特許文献１では、デフラグ前のデータ記憶装置に加えてデフラグ後のデータ記憶装置を設け、デフラグ前のデータ記憶装置からデフラグ後のデータ記憶装置にデフラグを行いながら複写するのと並行して、ユーザからの要求による入出力はデフラグ前のデータ記憶装置に対して行うとともにデータ出力時はそのキー情報をメモリ上にスタックし、前記複写が完了した後に前記キー情報を用いてデフラグ後のデータ記憶装置に追い付き出力し、前記追い付き出力完了後のユーザからの要求はデフラグ後のデータ記憶装置に対して行うように切り替えることで実現している。
【０００４】
データのフラグメンテーションによる入出力性能低下が発生すると、ユーザからの要求を停止させてデフラグを実施するメンテナンス時間の確保が困難であるため、下記のような運用をしていた。
（１）            同じディスク装置でI/O処理（業務プログラムからの参照更新）とデフラグ処理を並列実行する。
（２）            デフラグ処理用にディスク装置を複製し、デフラグ処理中にI/O処理の更新履歴をジャーナルに取得する。デフラグ処理完了後にデフラグ処理用のディスク装置に更新履歴を反映して、もとのオリジナルディスク装置と交換する。
【０００５】
【特許文献１】特開平６−７５８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記（１）の運用では，I/O処理バス・キャッシメモリなどの競合によるディスク装置へのI/O処理性能劣化がおこる。また、それに伴いデフラグ処理時間も間延びするため、処理に時間がかかる。
上記（２）の運用では、デフラグ処理実行中のオリジナル更新量に応じたジャーナル用記憶領域が必要になる (記憶領域が多く必要) 。そのため、このジャーナル用記憶領域は、外付け記憶媒体で確保するか、または事前に見積もってユーザが用意する必要がある。ジャーナルを用いることで、それを備えたファイルシステムでは高度な制御が必要であり、ジャーナル取得によるファイルシステムのI/Oの性能劣化が発生する。
上記（２）の運用では、デフラグ処理用のディスク装置を元のオリジナルディスク装置と交換する作業が発生する。
【０００７】
本発明の目的は、I/O処理時間の劣化やデフラグ処理時間の間延びもなくデフラグ処理を行なえることを提供する。
【０００８】
本発明の他の目的は、I/O処理による更新量に関係なく、一定量の記憶領域だけでI/O処理中の更新データを記録する。また、ジャーナル取得というファイルシステムやデータベースの機能に頼らないため、どのようなファイルシステムにも適用可能である。
【０００９】
本発明の他の目的は、ディスク装置の交換作業を不要とする。
【課題を解決するための手段】
【００１０】
本来のディスク装置とは別にデフラグ処理用に複製したディスク装置を用意する。そのディスク装置ではデフラグ処理を、元のディスク装置ではI/O処理を行なうことで、I/O処理パス・キャッシメモリなどの競合をなくし、I/O処理の性能劣化を防ぐ。また、デフラグ処理時間の間延びがなくなる。
【００１１】
複製後のデフラグ処理中にI/O処理をした結果、更新があったセクタ番号は、対応した更新テーブルに記録し、デフラグ処理によって並べ替えた前後のセクタ番号を対応表に記録し、それぞれを対応つけた結果をデフラグしたディスク装置に反映する。そのため、更新情報を記録する領域は、一定領域だけで十分になる。
【発明の効果】
【００１２】
本発明によれば、デフラグ処理中のI/O処理量とは関係なく、セクタ数に比例した一定量の記憶領域でデフラグ処理中のオリジナルに対する更新データを複製に反映可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施例を図面に基づいて詳細に説明する。
【００１４】
図１は、本発明の実施例である，デフラグ処理方法を実現するための構成図である。
本発明は、サーバ100とディスクシステム110、サーバとディスクシステムを結ぶパス140とパス141で構成されている。
【００１５】
サーバ100は、デフラグ処理の制御を行なうデフラグ処理部101とサーバ・ディスクシステム間にあるパスのうち、どのパスをI/O用とするか、またはデフラグ用にするか等を制御する、サーバ・ディスクシステム間のパス制御部102で構成されている。
【００１６】
ディスクシステムは、ディスク装置113・123とそれを制御するコントローラ111・121、コントローラ間の通信を行なうコントローラ間通信機構130で構成されている。
コントローラ111内には、複製処理部114と更新テーブル112が存在する。コントローラ121内には、追つき機能124とデフラグ変換テーブル122が存在する。テーブル112・122間での照会等は、コントローラ間通信機構130を利用することで、パス140・141には負荷をかけない。
【００１７】
I/O処理は、サーバとディスクシステム間のパス140、コントローラ111、ディスク装置113で構成されているI/O用ディスクシステム115で行なう。デフラグ処理は、サーバとディスクシステム間のパス141、コントローラ121、ディスク装置123で構成されているディスクシステム125で行なう。
【００１８】
図２は、コントローラ111にあるテーブル112の構成図である。このテーブル112は更新テーブルと称し、その中にあるセクタマップ200は、ディスク装置113にあるセクタのビットマップである。デフラグ処理中に、I/O処理が発生し、セクタの内容を更新する必要があった場合、セクタマップ200の該当セクタ位置に更新マークをつけ記録する。
【００１９】
図３は、コントローラ121内にあるテーブル122の構成図である。このテーブル122は、デフラグ変換テーブルと称し、デフラグ前のセクタ番号とデフラグ後のセクタ番号で構成されている。ディスク装置123でデフラグ中にセクタ番号が変わった場合、その番号についてのデフラグ前とデフラグ後のセクタ番号をテーブル122に登録していく。デフラグ処理中にディスク装置113でI/O処理により更新されたデータをディスク装置123へ反映する時に使用する。
【００２０】
図４は、本発明の実施例の処理を示すフローチャートである。この図で、本発明の概要を説明する。
【００２１】
サーバのデフラグ処理部101とサーバ・ディスクシステム間のパス制御部102とディスクシステムのI/O処理用コントローラ111とデフラグ処理用コントローラ121での処理の流れを示している。
【００２２】
まず、デフラグ処理部101では、複製開始するためにコントローラ111に対し、複製開始要求を出す（ステップ401）。
【００２３】
それを受けたコントローラ111では、更新テーブル112を初期化し、ディスク装置113の更新を監視する(ステップ402)。以降、I/O処理によってセクタの内容が更新された場合、更新テーブル112の該当セクタ位置に更新マークを付け記録する。これは追つき処理が完了(ステップ410)するまで継続して行なわれる。次に、ディスク装置113の情報をコントローラ間通信機構130を使用してディスク装置123に複製する（ステップ403）。デフラグ処理中でも性能劣化せずにI/O処理を可能とするために、ディスク装置を別々にして、それぞれでI/O処理とデフラグ処理を行なうためである。複製が完了すると、コントローラ111はデフラグ処理部101に複製完了報告を行なう（ステップ404）。
【００２４】
デフラグ処理部101では、複製完了報告404を受けた後、デフラグ処理を実施する（ステップ405）。デフラグ処理中もコントローラ111では通常にI/O処理を行う。
【００２５】
デフラグ処理が完了すると、デフラグ処理部101はコントローラ121にデフラグ処理完了報告を通知する（ステップ406）。コントローラ121では、デフラグ処理した結果、セクタ番号の並べ替えがあった場合、その最終結果をデフラグ変換テーブル122の並べ替え前後のセクタ番号に記録する（ステップ407）。デフラグ変換テーブル122の作成が完了すると、コントローラ121がコントローラ111に追つき処理の開始要求を出す（ステップ408）。
【００２６】
コントローラ111とコントローラ121では、追つき処理(ステップ409)を行う。追つき処理が完了すると、コントローラ111での更新テーブル112の監視が終了（ステップ410）し、コントローラ121からデフラグ処理部101へ追つき処理完了報告を出す（ステップ411）。
【００２７】
コントローラ121下のディスク装置123ではデフラグ処理結果やその間のI/O処理結果が反映されているため、ステップ411以降のI/O処理はコントローラ121で行なう。そのために、デフラグ処理部101は、パス制御部102に対し、I/Oパスを140から141に切り替えるよう要求を出す（ステップ412）。パス制御部102では、I/Oパスの切り替えを行い(ステップ413)、終了する。
【００２８】
図５は、図４のうち、コントローラ111・121での追つき処理（ステップ409）を抜き出したものであり、それを詳細化したフローチャートである。
サーバとディスクシステム間の負荷をかけないために、追つき処理は、コントローラ間通信機構130を使用してデフラグ中に更新のあった差分データをディスク装置113からディスク装置123へ反映する。
【００２９】
更新テーブル112に更新マークがあった場合（ステップ501）、それに対応するセクタ番号が、デフラグ変換テーブル122に記録されたデフラグ前のセクタ番号300の中にあるかを確認する（ステップ502）。
【００３０】
デフラグ前のセクタ番号300の中に同じ番号がない場合は、デフラグ変換テーブル122のデフラグ後のセクタ番号301の中に同じ番号がないかを確認する(ステップ504)。
デフラグ後のセクタ番号301の中に同じ番号がある(ステップ504)場合は、他の処理に使用されているため、その該当セクタ番号を空きのセクタ番号先へ移動させ(ステップ506)、使用可能後にディスク装置123上の更新マークをつけたセクタ先へデータを反映する(ステップ507)。デフラグ後のセクタ番号301と同じ番号がない場合には、そのままディスク装置123上の更新マークをつけたセクタ先へデータを反映する(ステップ507)。
【００３１】
デフラグ前のセクタ番号300の中に同じ番号がある（ステップ502）場合、デフラグ処理により並べ替えが行なわれているため、デフラグ変換テーブル122のデフラグ後のセクタ番号301の中に同じ番号があるかを確認する（ステップ503）。
【００３２】
デフラグ後のセクタ番号301の中に同じ番号がある(ステップ503)場合、他の処理に使用されているため、その該当セクタ番号を空きのセクタ番号先へ移動させ(ステップ505)、使用可能後にディスク装置123上の使用可能としたセクタ番号先へディスク装置113のデータを反映する（ステップ508）。セクタ番号301の中に同じ番号がない場合（ステップ503）は、ディスク装置123のデフラグ後のセクタ番号301先へディスク装置113のデータを反映する(ステップ508)。以上の処理を未処理の更新セクタ番号がなくなるまで繰り返す（ステップ509）。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施例である，デフラグ処理方法を実現するための構成図である。
【図２】図１のディスク装置上にある更新テーブルの構成図である。
【図３】図１のディスク装置上にあるデフラグ変換テーブルの構成図である。
【図４】本発明の実施例の処理を示すフローチャートである。
【図５】図４中の処理406の詳細を示すフローチャートである。
【符号の説明】
【００３４】
100・・・サーバ
101・・・デフラグ処理部
102・・・サーバ・ディスクシステム間のパス制御部
110・・・ディスクシステム
111・・・コントローラ
112・・・更新テーブル
113・・・ディスク装置
114・・・複製処理部
115・・・I/O用処理
121・・・コントローラ
122・・・デフラグ変換テーブル
123・・・ディスク装置
124・・・追つき機能
125・・・デフラグ用処理
130・・・コントローラ間通信機構
140・・・I/Oパス
141・・・I/Oパス
【図１】
2005208697.tif 000003
【図２】
2005208697.tif 000004
【図３】
2005208697.tif 000005
【図４】
2005208697.tif 000006
【図５】
2005208697.tif 000007