(57)【特許請求の範囲】
【請求項１】
ディスク内の空スペースを管理する空スペース管理簿と、
ディスク内のファイルのスペースを管理するファイル属性情報管理簿と、
前記空スペース管理簿の空スペースの大きい順に、当該空スペースに隣接するファイルについて順次前記空スペース管理簿を参照して、該隣接するファイルを格納できる空スペースを検出する処理を繰り返し、再配置計画を決定する再配置計画手段と、
前記再配置計画手段によって決定された前記再配置計画をもとに、前記隣接するファイルを空スペースに移動し、前記空スペース管理簿の空スペースを更新し、前記ファイル属性情報管理簿の前記隣接するファイルのスペースを更新する実再配置手段と
を備えたことを特徴とするディスク内のスペース再配置装置。
【請求項２】
前記実再配置手段は、前記再配置計画手段によって決定された前記再配置計画をオペレータに対して提示し、該オペレータより承諾の旨の指示があつた場合に、前記再配置計画をもとに、前記隣接するファイルを空スペースに移動し、前記空スペース管理簿の空スペースを更新し、前記ファイル属性情報管理簿の前記隣接するファイルのスペースを更新すること
を特徴とする請求項１記載のディスク内のスペース再配置装置。
【請求項３】
前記実再配置手段は  前記再配置計画手段によって決定された前記再配置計画について空スペースが拡大されたと判明した場合に、前記再配置計画をもとに、前記隣接するファイルを空スペースに移動し、前記空スペース管理簿の空スペースを更新し、前記ファイル属性情報管理簿の前記隣接するファイルのスペースを更新すること
を特徴とする請求項１記機のディスク内のスペース再配置装置。
【請求項４】
前記実再配置手段が前記再配置計画をもとに、ディスク内で前記隣接するファイルを空スペースに移動し、前記空スペース管理簿の空スペースを更新し、前記ファイル属性情報管理簿の前記隣接するファイルのスペースを更新する際に、排他を獲得した排他情報を不揮発性メモリに保存しておき、何らかの異常が発生した場合に該不揮発メモリ中の該排他情報をもとに、前記空スペース管理簿および前記ファイル属性情報管理簿を元の状態に復元することを特徴とする請求項１または請求項２または請求項３記載のディスク内のスペース再配置装置。
【請求項５】
前記実再配置手段は、ＩＰＬ時に前記再配置計画手段によって決定された前記再配置計画をもとに、前記隣接するファイルを空スペースに移動し、前記空スペース管理簿の空スペースを更新し、前記ファイル属性情報管理簿の前記隣接するファイルのスペースを更新することを特徴とする請求項１または請求項４記載のディスク内のスペース再配置装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ディスク内のスペース再配置装置に関するものである。
【０００２】
【従来の技術】
ディスク装置のディスク内の空スペースが断片化してしまった場合、ファイルの創成ができなくなる。また、ファイルのエクステントが分割され、結果的にディスクへのヘッド移動によりアクセス性能が低下する。このために、空スペースの断片化を何らかの方法で緩和する必要がある。
【０００３】
従来のシステムは、ディスク内の空スペースの断片化が発生した場合、当該ディスク内のファイルを磁気テープなどにファイル単位にバックアップした後、ディスク内の全ファイルを削除する。その後に、バックアップした磁気テープから空スペースの連続した領域にリストアし、空スペースの断片化を緩和していた。
【０００４】
【発明が解決しようとする課題】
このため、以下の問題があった。
（１）  ディスク内の全ファイルを一旦バックアップした後にリスアするために、処理に時間がかかるという問題があった。
【０００５】
（２）  ディスク内にオープン中のファイルがあった場合、バックアップできす、空スペースの断片化の緩和ができないという問題があった。
（３）  使用中のシステムディスクを対象とした場合、システムの動作に必須のファイルがあるため、バックアップできず、空スペースの断片化の緩和ができないという問題があった。
【０００６】
本発明は、これらの問題を解決するため、ディスク内の空スペースの前後のファイルのうち移動可能なファイルを可及的に離れた空スペースに仮移動させて評価し、効果があるときに実際に移動して空スペースを拡大し、空スペースの断片化の緩和を図ることを目的としている。
【０００７】
【課題を解決するための手段】
図１は、本発明の原理ブロック図を示す。
図１において、ユーザプロセス部１は、各種処理を行なうものであって、ここでは、再配置計画手段２、評価手段３、および実再配置手段４から構成されるものである。
【０００８】
再配置計画手段２は、空スペース管理簿６の空スペースよびファイル属性情報管理簿７のファイルをもとに、空スペースを拡大する再配置計画を決定するものである。
【０００９】
評価手段３は、再配置計画手段２によって決定された再配置計画を評価するものである。
実再配置手段４は、再配置計画をもとに、ディスク５の再配置を行い、空スペースを拡大するものである。
【００１０】
ディスク５は、再配置の対象となるディスクである。
空スペース管理簿６は、ディスク内の空スペースを管理するものである。
ファイル属性情報管理簿７は、ディスク内のファイルのスペースを管理するものである。
【００１１】
不揮発メモリ８は、ディスク５の排他情報８１を保存するものである。
ファイル管理部９は、ファイルの排他などを管理するものである。
カーネル部１０は、全体を統括制御するものである。
【００１２】
【作用】
本発明は、図１に示すように、再配置計画手段２が空スペース管理簿６の空スペースの大きい順に、ファイル属性管理情報７を参照して当該空スペースに隣接するファイルについて順次空スペース管理簿６を参照して格納できる空スペースを検出する処理を繰り返し再配置計画を決定し、実再配置手段４がこの決定された再配置計画をもとにディスク５内でファイルを空スペースに移動および空スペース管理簿６の空スペースの更新とファイル属性情報管理簿７の該当ファイルのスペースを更新し、空スペースを拡大するようにしている。
【００１３】
また、再配置計画手段３が決定した再配置計画について、オペレータに提示して、オペレータよりＯＫの旨の指示があった場合、あるいは空スペースが拡大されたと判明した場合に、実再配置手段４がこの再配置計画をもとに、ディスク５内でファイルを空スペースに移動および空スペース管理簿６の空スペースの更新とファイル属性情報管理簿７の該当ファイルのスペースを更新するようにしている。
【００１４】
また、実再配置手段４が再配置計画をもとに、ディスク５内でファイルを空スペースに移動および空スペース管理簿６の空スペースの更新とファイル属性情報管理簿７の該当ファイルのスペースを更新する際に、排他を獲得した排他情報を不揮発性メモリ８に保存しておき、何らかの異常が発生した場合に当該不揮発メモリ８中の排他情報をもとに、空スペース管理簿６およびファイル属性情報管理簿７を元の状態に復元するようにしている。
【００１５】
また、実再配置手段４が、次のＩＰＬ時に再配置計画手段によって決定された再配置計画をもとに、ディスク５内でファイルを空スペースに移動および空スペース管理簿６の空スペースの更新とファイル属性情報管理簿７の該当ファイルのスペースを更新するようにしている。
【００１６】
従って、ディスク５内の空スペースの前後のファイルのうち移動可能なファイルを可及的に離れた空スペースに仮移動させて評価し、効果があるときに実際に移動して空スペースを拡大することにより、空スペースの断片化の緩和を図って空スペースをまとめ、処理性能を向上させることができる。
【００１７】
【実施例】
次に、図２から図９を用いて本発明の実施例の構成および動作を順次詳細に説明する。
【００１８】
図２は、本発明の動作説明フローチャートを示す。これは、図１の構成の全体の動作説明フローチャートである。
図２において、Ｓ１は、再配置指示する。これは、利用者が再配置指示をコマンドを使って指示する。
【００１９】
Ｓ２は、Ｓ１の再配置指示に対応して、ディスク５のボリュームの排他獲得する。
Ｓ３は、オープン中のファイルの一覧表を作成する。これは、オープン中の再配置不可のファイルの一覧表を作成して記憶しておく。
【００２０】
Ｓ４は、空スペース管理簿６とファイル属性情報管理簿７の読み出しを行なう。
Ｓ５は、移動元ファイルの候補の決定を行なう。これは、Ｓ４で読み出した空スペース管理簿６を参照し、最も大きい空スペースの１つを取り出し、ファイル属性情報管理簿７を参照してこの取り出した空スペースの前と後ろのファイルを見つけてこれを移動元ファイルの候補とする。
【００２１】
Ｓ６はオープン中のファイルか判別する。これは、Ｓ５で移動元のファイルの候補として決定したファイルが、Ｓ３で作成したオープン中のファイル一覧中に存在するか判別する。ＹＥＳの場合には、オープン中のファイルと判明したので、Ｓ５で他の移動元ファイルの候補を決定し、繰り返す。一方、ＮＯの場合には、Ｓ７に進む。
【００２２】
Ｓ７は、移動先があるか判別する。これは、Ｓ６のＮＯでオープン中でないと判明した移動元ファイルのスペースと同じかより大きい空スペースについて、空スペース管理簿６を参照して移動先があるか判別する。この際、移動可能な空スペースが複数ある場合は移動元から距離の遠い方を優先する。ＹＥＳの場合には、Ｓ８で次の空スペースについてＳ５からＳ７を繰り返す。一方、ＮＯの場合には、Ｓ５に戻り、他の移動元ファイルの候補の決定を繰り返す。
【００２３】
以上のＳ１からＳ８によって、空スペース管理簿６を参照して最も空スペースの大きいものから順に、その前と後ろのファイルを順次ファイル属性情報管理簿７を参照して見つけて当該ファイルのスペースと同一の空スペースあるいはより大きい空スペースを見つけて移動先を決定することを、移動できるファイルがなくなるあるいは端になってしまうまで繰り返し、後述する図５のファイル移動作業表に設定して再配置計画を作成することが可能となる。
【００２４】
Ｓ９は、効果について表示（移動前と移動後）する。これは、Ｓ１からＳ８によって作成した再配置計画表から、移動前と移動後の右記の下記の項目を対応づけて表示する。
【００２５】
・最大空スペース
・空総量
・空スペース数
・その他
Ｓ１０は、移動指示ありか判別する。これはＳ９で再配置計画表に設定した移動前と移動後の最大空スペース、空総量、空スペース数、その他を表示し、利用者が再配置の効果がありと判断し、再配置の移動指示をコマンドで入力されたか判別する。尚、移動前と移動後の最大空スペース、空総量、空スペース数、その他を表示し、移動後の方が最大空スペースが大、空スペース数が所定値以上に小さくなったときに移動指示を自動発行するようにしてもよい。Ｓ１０のＹＥＳの場合には、移動指示があったと判明したので、Ｓ１１以降の実際の再配置を行なう。一方、Ｓ１０のＮＯの場合には、再配置の効果が無しと判明したので、再配置を行うことなく終了する（ＥＮＤ）。
【００２６】
Ｓ１１は、空スペース管理簿６に無効表示する。
Ｓ１２は、再配置計画表に設定されている移動元ファイルを移動先の空スペースに複写する。
【００２７】
Ｓ１３は、ファイル属性情報管理簿７の更新を行なう。これは、Ｓ１２で移動元ファイルの情報を、移動先ファイルの情報に更新する。
Ｓ１４は、空スペース管理簿６の更新を行なう。これは、移動元ファイルのあった場所のスペース分だけ空スペースが拡大されたので、この空スペースの拡大の更新を行なうと共に、移動先の空スペースを無効にする。
【００２８】
Ｓ１５は、ボリュームの排他解放する。
以上の一連の処理によって、空スペース管理簿６を参照して大きい空スペースから順に、その前と後ろのファイルをファイル属性情報管理簿７を参照して見つけてこのスペースと同一あるいは若干大きい空スペースで可及的に遠い位置に移動することを繰り返して移動できなくなるまで行い、移動前と移動後の情報をファイル移動作業表の設定し、再配置の効果が有りと判明したときに、ファイル移動作業表をもとに、ファイルの再配置を行って空スペースの拡大を行なう。これにより、空スペースがまとめられて拡大されるため、空スペースの断片化を緩和することが可能となる。
【００２９】
図３は、本発明のディスク例を示す。これは、再配置対象のディスクの例である。ここで、ディスク５内に１つの図示のボリュームがあるとする。このボリュームには、図示の下記の項目を設けている。
【００３０】
0003743723.tif 000002
図４は、本発明の空スペース管理簿例を示す。この空スペース管理簿６は、図示の下記の項目を設定する。
【００３１】
0003743723.tif 000003
図５は、本発明のファイル移動作業表例を示す。このファイル移動作業表は、図２のＳ１からＳ８によって作成されたものであって、移動前（再配置前）と移動後（再配置後）に関する情報として図示の下記の項目を設定したものであり、再配置計画表である。
【００３２】
・再配置前の先頭位置：ボリューム内相対ブロック番号
・再配置前のサイズ  ：ブロック数
・エクステント番号  ：ファイルの一部を構成する連続領域を指す番号
・ファイル通番      ：例えば＃００１
・オープン中の表示  ：オープン中のファイルのときに表示（フラグＯＮ）
・移動先の先頭位置  ：ボリューム内相対ブロック番号
・移動先のサイズ    ：ブロック数
次に、図６および図７のフローチャートに示す順序に従い、図８の（１）から（２０）に示すようにし、空スペースの拡大を行なう場合の動作を具体的に説明する。
【００３３】
図６において、Ｓ２１は、ユーティリティ（コマンド）を受付ける（図８の（１））。これは、ユーティリティからの空スペースを拡大する指示のコマンドを受け付ける。
【００３４】
Ｓ２２は、ディスクの排他獲得、オープン中のファイルのファイル通番の通知依頼する（図８の（２））。
Ｓ２３は、Ｓ２２のディスクの排他獲得要求、およびオープン中のファイル通番の通知依頼の要求に対応して、ファイル管理部がこれらの要求を受け付ける。
【００３５】
Ｓ２４は、ディスクの排他獲得する（図８の（３））。
Ｓ２５は、オープン中のファイルのファイル通番を獲得する（図８の（４））。
【００３６】
Ｓ２６は、復帰する（図８の（５））。
Ｓ２７は、Ｓ２６の復帰を受け付ける。
以上のＳ２２からＳ２７によって、ディスク中のオープン中のファイルのファイル通番を獲得できたこととなる。
【００３７】
Ｓ２８は、空スペース管理簿の読み出しを行なう（図８の（６））。
Ｓ２９は、ファイル属性情報管理簿の読み出しを行なう（図８の（７））。
Ｓ３０は、ファイル移動作業表の作成を行なう。これは、図５のファイル移動作業表の枠を作成する（図８の（８））。
【００３８】
Ｓ３１は、移動元ファイルの選択を行なう（図８（９））。これは、空スペース管理簿６を参照して空スペースの大きい順に当該空スペースの前および後のファイル（オープン中のファイルを除く）を移動元ファイルとして選択する。
【００３９】
Ｓ３２は、移動先スペースの選択を行なう（図８の（１０））。これは、Ｓ３１の空スペースからできるだけ離れかつ当該移動元ファイルのサイズと等しいあるいはより大きいサイズの空スペースを見つけてこれを移動先スペースとして選択する。
【００４０】
Ｓ３３は、ファイル移動作業表の更新する（図８の（１１））。これは、Ｓ３１およびＳ３２でそれぞれ選択した移動元ファイルおよび移動先スペースを、図５のファイル移動作業表に設定して更新する。
【００４１】
Ｓ３４は、空き終わりか判別する。ＹＥＳの場合には、Ｓ３５以降に進む。ＮＯの場合には、Ｓ３１に戻り、繰り返す。
以上のＳ２８からＳ３４のＹＥＳによって、大きい空スペースから順にその前後のファイルを移動元ファイルとして、できるだけ離れてかつスペースが等しいあるいはより大きい空スペースを見つけてこれを移動先空スペースとしてファイル移動作業表に設定して更新する。
【００４２】
Ｓ３５は、再配置の効果の表示、応答入力の依頼を行なう（図８の（１２）。
これは、Ｓ３３で更新したファイル移動作業表をもとに、再配置前のサイズと、再配置後のサイズを並べて表示したり、再配置するとしたときの効果を判り易く表示し、管理者に知らせると共に、ファイルの実際の移動を施してよいかの応答入力の依頼を行なう。
【００４３】
図７のＳ３６は、空スペース管理簿を無効表示を設定する（図８の（１３））。これは、空スペース管理簿６の移動先の空スペースを無効表示する。
Ｓ３７は、ファイルのデータ複写する（図８の（１４））。これは、移動元ファイルから移動先の空スペースにデータを複写する。
【００４４】
Ｓ３８は、ファイル終わりか判別する。ＹＥＳの場合には、Ｓ３９に進む。一方、ＮＯの場合には、Ｓ３７を繰り返す。
Ｓ３９は、ファイル属性情報管理簿７の更新する（図８の（１５））。これは、移動元ファイルを、移動先に移動したので、このようにフィイル属性情報管理簿７を更新する。
【００４５】
Ｓ４０は、空スペース管理簿の作成を行なう（図８の（１６））。これは、移動元ファイルから移動先の空スペースに複写したので、この移動元ファイルが空スペースとなったので、この旨を空スペース管理簿に作成する。
【００４６】
Ｓ４１は、ディスクの排他解放依頼する（図８の（１７））。
Ｓ４２は、ファイル管理部がＳ４１のディスクの排他解放の依頼を受け付ける。
【００４７】
Ｓ４３は、ディスクの排他解放する（図８の（１８））。
Ｓ４４は、復帰する（図８の（１９））。
Ｓ４５は、復帰受け付ける（図８の（２０））。
【００４８】
Ｓ４６は、復帰する。
以上のＳ３５によって、ファイル移動作業表の結果を判り易く表示して空スペースの移動の効果があると判明したときに、管理者からの移動指示あるいは空スペースが拡大されたと判明したときに、Ｓ３６からＳ４６によって、当該ファイル移動作業表に従い、移動元ファイルを移動先の空スペースに複写することを繰り返し、空スペースの拡大を図って連続した空スペースをまとめ、空スペースの断片化をを緩和することが可能となる。
【００４９】
図８は、本発明の具体例構成図を示す。これは、既述した図６および図７のフローチャートに示す手順を（１）から（２０）として判り易く表示したものである。ここで、ユーザプロセス部１、ディスク５、空スペース管理簿６、ファイル属性情報管理簿７、不揮発メモリ８、ディスクの排他情報８１、ファイル管理部９は、図１の同一番号のものに対応する。
【００５０】
図９は、本発明の異常時終了フローチャートを示す。
図９の（ａ）において、Ｓ５１は、カーネル部１０がユーザプロセス部１の異常終了を検出か判別する。ＹＥＳの場合には、ユーザプロセス部１に何らかの異常が発生したと検出されたので、カーネル部１０がＳ５２でファイル管理部９に再配置の中止指示する。一方、ＮＯの場合には終了する。
【００５１】
Ｓ５３は、ファイル管理部９がディスク５の排他を解放する。
以上のＳ５１からＳ５３によって、ユーザプロセス部１に何らかの障害発生とカーネル部１０が検出したときに、ファイル管理部９に指示して再配置中の処理を停止させた後、ディスク５の排他を解放する。
【００５２】
図９の（ｂ）において、Ｓ６１は、カーネル部１０がファイル管理部９の異常終了を検出か判別する。ＹＥＳの場合には、Ｓ６２に進む。ＮＯの場合には、終了する。
【００５３】
Ｓ６２は、カーネル部１０がファイル管理部９を再起動する。
Ｓ６３は、Ｓ６２で再起動されたファイル管理部９が不揮発メモリ８からディスクの排他情報８１を取り出し、この排他情報８１を元に復旧し、再配置処理の前の状態に戻す。即ち空スペースの前後の移動元ファイルをファイル単位にできるだけ離れた位置のサイズが同一あるいは若干大きい空スペースに複写した後にファイル属性情報管理簿７および空スペース管理簿６を書き換えているので、この再配置処理中に何らかの障害が発生した場合、現在複写処理中のファイルについて、複写前の状態に戻す（ファイル属性情報管理簿７および空スペース管理簿６の書き戻しなどによって複写前の状態に戻す）。そして、処理を続行する。
【００５４】
以上のＳ５１からＳ５３、およびＳ６１から６３によって、ユーザプロセス１がディスク５の空スペースの再配置処理（拡大処理）を行っている最中に何らかの障害発生した場合、カーネル部１０がファイル管理部９に指示して再配置中止した後、次にファイル管理部９が起動されたときに不揮発性メモリ８を参照して複写前の状態に復旧した後、処理を続行することが可能となる。
【００５５】
【発明の効果】
以上説明したように、本発明によれば、ディスク５内の空スペースの前後のファイルのうち移動可能なファイルをできるだけ離れた空スペースに仮移動させてフィアル移動作業表を作成などして評価し、効果があるときに実際に移動して空スペースを拡大する構成を採用しているため、空スペースの断片化の緩和を図って空スペースをまとめ、処理性能を向上させることができる。これらにより
（１）  ディスク５の空スペースの断片化を緩和し、ディスク内のファイルの再配置を行って処理性能を向上させることが可能となる。
【００５６】
（２）  使用中のディスク５を対象とした場合でも、ファイルの再配置により空スペースの断片化を緩和することが可能となる。
（３）  ファイルの再配置中（空スペースの拡大化中）に何らかの障害が発生した場合でも、不揮発メモリ８に保存したディスク５の排他情報をもとに元の状態の戻すことができ、矛盾を生じさせる事態が発生しなくすることが可能となる。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明のディスク例である。
【図４】本発明の空スペース管理簿例である。
【図５】本発明のファイル移動作業表例である。
【図６】本発明の具体例動作説明フローチャート（その１）である。
【図７】本発明の具体例動作説明フローチャート（その２）である。
【図８】本発明の具体例構成図である。
【図９】本発明の異常終了フローチャートである。
【符号の説明】
１：ユーザプロセス部
２：再配置計画手段
３：評価手段
４：実再配置手段
５：ディスク
６：空スペース管理簿
７：ファイル属性情報管理簿
８：不揮発メモリ
８１：ディスクの排他情報
９：ファイル管理部
１０：カーネル部
【図１】
0003743723.tif 000004
【図２】
0003743723.tif 000005
【図３】
0003743723.tif 000006
【図４】
0003743723.tif 000007
【図５】
0003743723.tif 000008
【図６】
0003743723.tif 000009
【図７】
0003743723.tif 000010
【図８】
0003743723.tif 000011
【図９】
0003743723.tif 000012