JP2011018206A - ファイル管理方法、計算機、及びファイル管理プログラム - Google Patents
ファイル管理方法、計算機、及びファイル管理プログラム Download PDFInfo
- Publication number
- JP2011018206A JP2011018206A JP2009162494A JP2009162494A JP2011018206A JP 2011018206 A JP2011018206 A JP 2011018206A JP 2009162494 A JP2009162494 A JP 2009162494A JP 2009162494 A JP2009162494 A JP 2009162494A JP 2011018206 A JP2011018206 A JP 2011018206A
- Authority
- JP
- Japan
- Prior art keywords
- file
- environment
- information
- shared
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数のシステムを提供する計算機システムにおいて、各システムの稼働に必要なディスク容量を抑える。
【解決手段】複数の環境を提供可能であって、各環境で利用されるファイルを格納する記憶装置を管理する計算機において、ファイルの位置情報、ファイルの識別情報及びファイルの共有情報を含むファイルマッピング情報を環境ごとに記憶し、記憶装置にファイル格納する場合に、当該ファイルのファイル識別情報と同じファイル識別情報を有する他のファイルのファイルマッピング情報が抽出された場合には、当該他のファイルのファイルマッピング情報に含まれるファイル識別情報、ファイル位置情報及びファイルが共有されていることを示す共有情報を含むファイルマッピング情報を当該ファイルのファイルマッピング情報として設定し、抽出された他のファイルマッピング情報に含まれる共有情報にファイルが共有されていることを示す情報を設定する。
【選択図】図1
【解決手段】複数の環境を提供可能であって、各環境で利用されるファイルを格納する記憶装置を管理する計算機において、ファイルの位置情報、ファイルの識別情報及びファイルの共有情報を含むファイルマッピング情報を環境ごとに記憶し、記憶装置にファイル格納する場合に、当該ファイルのファイル識別情報と同じファイル識別情報を有する他のファイルのファイルマッピング情報が抽出された場合には、当該他のファイルのファイルマッピング情報に含まれるファイル識別情報、ファイル位置情報及びファイルが共有されていることを示す共有情報を含むファイルマッピング情報を当該ファイルのファイルマッピング情報として設定し、抽出された他のファイルマッピング情報に含まれる共有情報にファイルが共有されていることを示す情報を設定する。
【選択図】図1
Description
本発明は、複数のOS実行環境を提供することが可能な計算機システムにおいてファイルを管理する技術に関する。
システム開発におけるテスト工程では、標準的な実行環境を想定してソフトウェアのテストが行われるが、実際にソフトウェアが利用される環境はさまざまである。例えば、開発されたシステムを利用する計算機には、様々なソフトウェアが共存している。利用者の環境で最新バージョンのソフトウェアが利用されているとは限らず、さまざまな環境で開発したアプリケーションのテストを行う必要が生じる場合がある。
しかし、ソフトウェアによっては、複数のバージョンが一つの環境で共存できない場合が多く、テストを行うためには、バージョンごとに複数の環境(システム)を用意する必要がある。
これらの複数の環境では、一部のソフトウェアを除いて、OSなどは共通である。この場合、一台の計算機をマルチブートで利用することによって、ハードウェア資源を共通化することは可能であるが、ソフトウェアの共通部分は環境ごとに保持する必要がある。
すなわち、マルチブートによって類似する複数の環境を構築する場合には、構築する環境の数だけのソフトウェアをインストール及び設定する必要があり、多くのディスク容量を必要とするだけでなく、OSなどの環境設定にも多くの手間が必要となる。
そこで、いわゆるスナップショット方式と呼ばれる技術が提案されている。スナップショット方式では、まず、各環境で共通の状態まで一つの環境を構築し、この時点におけるディスクの状態を固定する。この固定されたディスクの状態をスナップショットという。その後、各環境で新たに更新された部分を環境ごとに別の領域に書き込むことによって、必要なディスク容量を少なくすることができる。
しかし、スナップショット方式では、スナップショットを取得するタイミングによって節約できる容量が相違してしまう。さらに、同じパッケージを追加する場合であっても、スナップショット取得後は環境ごとに保存されるため、ディスク容量を節約することができなくなる。
そこで、記憶領域に格納されたデータをファイル単位で認識し、他の環境に同じファイルが含まれている場合には、基本となるファイルを設定し、複数の環境で基本となるファイルを参照し、残りのファイルを圧縮して保持する技術が開示されている(特許文献1参照)。
特許文献1に開示された技術では、完全にファイル単位ではなく、基本となるファイルが格納された領域に格納されたデータと、一致しない領域に格納されたデータとがあわせて出力される。したがって、ファイルの取得が要求されるたびにファイルの復元が必要となる。バックアップシステムを対象とする場合には問題なくても、アプリケーションの実行に必要なファイルを読み書きする環境ではファイルの復元が処理全体のボトルネックになってしまう可能性がある。
また、特許文献1に開示された技術では、システム稼働中にファイルが変更された場合であっても動的に共有又は解除を行うことができない。したがって、環境構築後に同じアプリケーションをインストールした場合であっても共有できない場合がある。
本発明は、各OS実行環境で利用されるファイルを動的に共有することによって、各OS実行環境を提供するために必要なファイル(各システムを稼働させるためのファイル)を格納するための容量を抑えることを可能とする技術を提供することを目的とする。
本発明の代表的な一形態では、複数のOS実行環境を提供可能な計算機におけるファイル管理方法であって、前記計算機は、プロセッサ及び前記プロセッサに接続されるメモリを備え、前記各環境で利用されるファイルを格納する記憶装置を管理し、前記メモリは、前記ファイルが格納された位置を示すファイル位置情報、前記ファイルを識別するファイル識別情報、及び前記ファイルが他の環境で共有されているか否かを示す共有情報を含むファイルマッピング情報を、前記環境ごとに記憶し、前記方法は、前記記憶装置に格納されたファイルを読み出す場合には、前記プロセッサが、前記計算機で提供されている環境に対応するファイルマッピング情報から、当該ファイルに対応するファイル位置情報を特定し、前記特定されたファイル位置情報に基づいて、前記読み出し対象のファイルを取得し、前記記憶装置にファイルを格納する場合には、前記プロセッサが、前記格納されるファイルを識別するためのファイル識別情報を生成し、前記プロセッサが、前記生成されたファイル識別情報と同じファイル識別情報を含み、かつ、前記計算機で提供されている環境とは別の環境に対応するファイルマッピング情報を抽出し、前記別の環境に対応するファイルマッピング情報が抽出された場合には、前記プロセッサが、前記抽出されたファイルマッピング情報から、前記格納されるファイルに対応するファイル位置情報を取得し、前記プロセッサが、前記計算機で提供されている環境に対応し、かつ、前記格納されるファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記取得されたファイル位置情報、及び他の環境でファイルが共有されていることを示す共有情報を設定し、前記プロセッサが、前記別の環境に対応するファイルマッピング情報に含まれる共有情報に、前記他の環境でファイルが共有されていることを示す情報を設定し、前記プロセッサが、前記生成されたファイル情報と同じファイル識別情報を含まない、または、前記別の環境に対応するファイルマッピング情報が抽出されない場合には、前記プロセッサが新たなファイル位置情報を設定し、前記プロセッサが、前記ファイルが共有されていないことを示す情報を設定する。
本発明の一形態によれば、OS実行環境ごとにファイルを動的に共有することによって、各環境を提供するために必要なファイルを格納するための容量を抑えることができる。
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
本発明では、実行可能なオペレーティングシステムを含む、完結されたファイルのまとまりを「システム」と呼ぶ。システムにはアプリケーションを構成するファイルを含んでもよい。システムは、例えば、「DBシステム」「WEBアプリケーションシステム」など、特定の機能を備えたサーバ等である。
(第1の実施の形態)
図1は、本発明の第1の実施の形態のファイル管理システムを実現するサーバ装置101のソフトウェア構成を示すブロック図である。
図1は、本発明の第1の実施の形態のファイル管理システムを実現するサーバ装置101のソフトウェア構成を示すブロック図である。
サーバ装置101は、ファイルマッピングシステム部105、ファイル保存部109及びマッピング情報保存部110を含む。
ファイルマッピングシステム部105は、要求されたファイルの読み書きを実行し、本発明の第1の実施の形態のファイル管理システムを制御する。ファイルマッピングシステム部105には、ファイルマッピング制御部106、マッピング情報管理部107及びマッピング情報制御部108が含まれる。
ファイルマッピング制御部106は、要求されたファイルを読み書きするための制御を行う。例えば、要求されたファイルの格納位置を特定したり、ファイルを共有するか否かを判定したりする。
ファイルマッピング制御部106には、ファイル入出力監視部201、ファイル情報取得部202、同一ハッシュ探索部203、ハッシュ生成部204、ファイルシステムアクセス部205、位置情報設定部206、共有フラグ設定部207及びハッシュ値設定部208が含まれる。ファイルマッピング制御部106の各構成については、図3にて後述する。
マッピング情報管理部107は、格納されたファイルの位置情報などを含むファイルマッピング情報を管理する。マッピング情報管理部107には、ファイルマッピングテーブル301及びシステム保存部302が含まれる。マッピング情報管理部107の各構成については、図4にて後述する。
マッピング情報制御部108は、次回起動するシステムを指定するなど、ファイル管理システム全体を制御する。マッピング情報制御部108には、マッピングシステム制御コマンド受付部401、システム存在確認部402、システム操作部403、システム複製部404及びシステム削除部405が含まれる。マッピング情報制御部108の各構成については、図5にて後述する。
ファイル保存部109は、読み書きされるファイルを格納する。マッピング情報保存部110は、読み書きされるファイルを格納するための位置情報などが保存される。具体的には、ファイルマッピングテーブル301の実体が格納される。
図2は、本発明の第1の実施の形態のファイル管理システムを実現するサーバ装置101のハードウェア構成を示すブロック図である。
本発明の第1の実施の形態のサーバ装置101は、メモリ102、CPU103、ディスク装置104及びインタフェース113を備える。メモリ102、CPU103、ディスク装置104及びインタフェース113は、内部バスによって接続されている。
メモリ102は、CPU103によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。メモリ102に記憶されるプログラム及びデータは、ディスク装置104に格納されたプログラム及びデータがロードされたものであってもよい。
メモリ102には、図1に示したファイルマッピングシステム部105が記憶される。前述したように、ファイルマッピングシステム部105には、ファイルマッピング制御部106、マッピング情報管理部107及びマッピング情報制御部108が含まれている。ファイルマッピングシステム部105は、プログラム及びデータによって構成されている。
CPU103は、メモリ102に記憶されたプログラムを実行することによって、要求された処理を実行する。
ディスク装置104は、プログラム及びデータを格納する。ディスク装置104は、例えば、磁気記憶装置又は半導体記憶装置などの不揮発性記憶媒体である。前述したように、メモリ102にロードされるプログラム及びデータなどが記憶される。
ディスク装置104には、ファイル保存部109及びマッピング情報保存部110が格納される。ファイル保存部109には、本発明の第1の実施の形態のファイル管理システムによって管理されるファイルの実体が格納される。また、マッピング情報保存部110には、ファイル保存部109に格納されたファイルの位置情報を含むマッピング情報が格納される。
なお、本発明の第1の実施の形態では、図2に示すように、ディスク装置104がサーバ装置101に備えられる構成としているが、外部のストレージ装置にファイル保存部109及びマッピング情報保存部110、又は一方を格納する構成としてもよい。この場合には、インタフェース113を介して外部のストレージ装置に接続してもよいし、ストレージ装置に接続するためのインタフェースを別途備えるようにしてもよい。また、外部のストレージ装置が複数のサーバ装置によってアクセスされる場合には、ファイル保存部109及びマッピング情報保存部110を各サーバ装置で共有してもよい。こうすることによって、複数のサーバ装置で実行されるシステムを一元的に管理することができる。
インタフェース113は、外部に接続するためのインタフェースである。例えば、ディスク装置104に格納されたファイルの取得要求を、インタフェース113を介して受け付ける。
図3は、本発明の第1の実施の形態のファイルマッピング制御部106の構成を示す図である。
ファイルマッピング制御部106には、前述のように、ファイル入出力監視部201、ファイル情報取得部202、同一ハッシュ探索部203、ハッシュ生成部204、ファイルシステムアクセス部205、位置情報設定部206、共有フラグ設定部207及びハッシュ値設定部208が含まれる。
ファイル入出力監視部201は、ファイルの入出力要求を受け付け、ファイルの入出力要求に応じた処理を実行する。ファイル入出力監視部201による処理の詳細については、図8にて後述する。
ファイル情報取得部202は、要求されたファイルの情報を取得する。ファイル情報取得部202による処理の詳細については、図11にて後述する。
同一ハッシュ探索部203は、要求されたファイルに対応するハッシュ値と同じハッシュ値を有するファイルを検索する。同一ハッシュ探索部203による処理の詳細については、図12にて後述する。
ハッシュ生成部204は、要求されたファイルに対応するハッシュ値を算出する。ハッシュ生成部204による処理の詳細については、図13Aにて後述する。
ファイルシステムアクセス部205は、要求された処理に応じてファイルシステムにアクセスする。ファイルシステムに対するアクセスとは、例えば、ファイルの読み書きである。ファイルシステムアクセス部205による処理の詳細については、図13Bにて後述する。
位置情報設定部206は、要求されたファイルが格納された位置情報をファイルマッピングテーブル301に設定する。位置情報設定部206による処理の詳細については、図13Cにて後述する。
共有フラグ設定部207は、要求されたファイルが共有されているか否かを示す共有フラグをファイルマッピングテーブル301に設定する。共有フラグ設定部207による処理の詳細については、図13Dにて後述する。
ハッシュ値設定部208は、要求されたファイルに対応するハッシュ値をファイルマッピングテーブル301に設定する。ハッシュ値設定部208による処理の詳細については、図13Eにて後述する。
図4は、本発明の第1の実施の形態のマッピング情報管理部107の構成を示す図である。
マッピング情報管理部107には、前述のように、ファイルマッピングテーブル301及びシステム保存部302が含まれる。
ファイルマッピングテーブル301は、ディスク装置104のファイル保存部109に格納されたファイルの位置情報などが格納される。例えば、ファイルが格納されたアドレス、当該ファイルが共有されているか否かを示す情報などが格納される。ファイルマッピングテーブル301の詳細については、図6にて後述する。
システム保存部302は、現在、サーバ装置101によって提供されている環境、すなわち、実行中のシステムを識別する情報を格納する。また、次回起動するシステムについてもシステム保存部302に設定される。システム保存部302の詳細については、図7にて説明する。
図5は、本発明の第1の実施の形態のマッピング情報制御部108の構成を示す図である。
マッピング情報制御部108には、前述のように、マッピングシステム制御コマンド受付部401、システム存在確認部402、システム操作部403、システム複製部404及びシステム削除部405が含まれる。
マッピングシステム制御コマンド受付部401は、ファイル管理システムの管理用コマンドの入力を受け付け、受け付けられた処理を実行する。マッピングシステム制御コマンド受付部401による処理の詳細については、図14にて後述する。
システム存在確認部402は、指定されたシステムが存在するか否かを確認する。システム存在確認部402による処理の詳細については、図18Aにて後述する。
システム操作部403は、指定された操作種別に基づいて処理を実行する。具体的には、現在実行中又は次回起動予定のシステムを取得したり、更新したりする。システム操作部403による処理の詳細については、図19にて後述する。
システム複製部404は、新たにシステムを生成するために、既存のシステムの情報を複製する。システム複製部404による処理の詳細については、図18Bにて後述する。
システム削除部405は、指定されたシステムを削除する。システム削除部405による処理の詳細については、図18Cにて後述する。
図6は、本発明の第1の実施の形態のファイルマッピングテーブル301の構成を示す図である。
ファイルマッピングテーブル301は、サーバ装置101で提供されるシステム名ごとに定義されるシステム名行3011、及び各システムで利用されるファイルごとに定義されるファイル名列3010によって構成される。各ファイルの情報は、システムごとに、位置情報3012、ハッシュ値3013及び共有フラグ3014を含む。
各システムが類似している場合、すなわち、利用されるファイルの構成が類似している場合には、図6に示すように、システム名行3011及びファイル名列3010によってファイルマッピングテーブル301を構成すると効率がよい。
しかし、各システムにおいて共通に利用されるファイルが多くない場合には、一つのシステムしか使用しないファイルであっても各システムに含まれるすべてのファイルの数だけ、フィールドを生成する必要があり、容量効率がよくない。このような場合には、例えば、システム名及びファイル名をキーとしてファイル情報(位置情報3012、ハッシュ値3013及び共有フラグ3014)を特定するようにファイルマッピングテーブル301を構成するとよい。
また、システム名行3011及びファイル名列3010によって構成されるファイルマッピングテーブル301と、システム名及びファイル名をキーとしてファイル情報を特定するようにファイルマッピングテーブル301とを併用してもよい。例えば、各システムでOSが共通、かつ、利用されるアプリケーションが相違する場合などには、OS関連のファイルはシステム名行3011及びファイル名列3010によって構成し、アプリケーション関連のファイルは、システム名及びファイル名をキーとしてファイル情報を格納するように構成するとよい。また、共有する可能性の高いファイルのみをファイルマッピングテーブル301で管理するようにしてもよい。
位置情報3012は、ファイルが実際に格納されている場所を示す情報である。例えば、ディスク装置104によって提供される記憶領域のアドレスである。したがって、別のシステムで同じファイルを利用する場合には、各システムでファイルの位置情報3012を同じ値に設定することによって、当該ファイルの格納場所を一つにすることができ、システムごとにファイルを格納する必要がなくなる。
ハッシュ値3013は、ファイルを一意に識別するための情報であって、本発明の第1の実施の形態では、ハッシュ値を利用している。ハッシュ値は、周知の方法で求めればよい。なお、ファイルを一意に識別することが可能であれば、ハッシュ以外の手法を利用してもよい。
共有フラグ3014は、当該ファイルが他のシステムに共有されているか否かを示すフラグである。共有されている場合には“true”が設定され、共有されていない場合には“false”が設定される。
図6のファイルマッピングテーブル301についてさらに説明すると、システム2によって利用されるファイルの情報は、レコードセット3015に格納されている。また、システム3のファイル名1に対応するファイル情報は、位置情報3012、ハッシュ値3013及び共有フラグ3014を含むセルセット3016に格納されている。
図7は、本発明の第1の実施の形態のシステム保存部302の構成を示す図である。
システム保存部302には、サーバ装置ごとに現在実行中のシステムと次回実行予定のシステムの識別情報が格納される。
システム保存部302は、サーバ3023、現在システム3021及び次回システム3022を含む。
サーバ3023は、システムを実行しているサーバ装置の識別情報である。なお、サーバ装置101に備えられたディスク装置104にシステム保存部302が格納される場合にはサーバ3023はなくてもよい。複数のサーバがシステム保存部302を共有する場合には、サーバ3023は必要である。
現在システム3021は、現在実行中又は直前に実行されていたシステムの識別情報である。次回システム3022は、次回起動時に実行されるシステムの識別情報である。
本発明の第1の実施の形態では、システムを切り替える一つの手段としては、現在システムの実行中に次回システムを設定し、再起動後、次回システムに指定されたシステムを実行する。または、システム切替処理によって、明示的に次回システムの内容を現在システムに更新してからシステムを切り替え、サーバ装置101起動時には、常に現在システムに設定されているシステムを起動するようにしてもよい。さらに、サーバ装置101を再起動する場合には、メニュー画面を表示するなどして、サーバ装置起動時に実行するシステムを選択するようにしてもよい。
以下、本発明の第1の実施の形態のファイル管理システムにおいて、図8から図13Eを参照しながら、共有ファイルを読み書きする手順について説明する。
図8は、本発明の第1の実施の形態のファイル入出力監視部201による処理の手順を示すフローチャートである。
本発明の第1の実施の形態では、ユーザからのファイルアクセス(入出力)要求が監視されており、ファイルアクセス要求が検知されると、まず、当該ファイルアクセス要求を受け付けたシステム名を特定する。ファイルアクセス要求には、アクセスされるファイル名(filename)が含まれる。ファイル名及びシステム名に基づいてファイルの格納位置が特定され、ファイルの書き込み処理又は読み出し処理が実行される。ファイルアクセス要求には、さらにデータ(data)が含まれており、書き込み要求の場合に書き込み内容が格納されている。
CPU103は、ファイル入出力監視部201によって、ユーザからのファイルアクセス要求が検知されると、まず、現在実行されているシステム名を取得する(ステップ2011)。システム名は、システム保存部302の現在システム3021の値を随時取得してもよいし、システム起動時にあらかじめメモリ102に記憶しておいてもよい。
CPU103は、ファイルアクセス要求が書き込み要求か読み出し要求かを判定し(ステップ2012)、書き込み処理(ステップ2013)又は読み出し処理(ステップ2014)を実行する。
ステップ2013の書き込み処理は、システム名(sysname)、ファイル名(filename)及び更新内容(data)が引数として実行される。返り値には、例えば、実行結果が格納される。
一方、ステップ2014の読み出し処理は、システム名(sysname)及びファイル名(filename)を引数とし、返り値に読み出された内容が格納される。
ファイルの書き込み処理(ステップ2013)又は読み出し処理(ステップ2014)が終了すると、本処理は終了する。
図9A及び図9Bは、本発明の第1の実施の形態のファイルの書き込み処理(ステップ2013)の手順を示すフローチャートである。
CPU103は、まず、書き込み処理が実行されると、ファイル情報取得部202によって、書き込み対象のファイルのファイル情報を取得する(ステップ2020)。このとき、引数としてシステム名(sysname)及びファイル名(filename)を渡し、ファイル情報取得処理の結果を変数retに代入する。なお、ファイル情報取得部202による処理の詳細については、図11にて後述する。
CPU103は、変数retの値が−1であるか否かを判定することによって、書き込み対象のファイルのファイル情報を取得できたか否かを判定する(ステップ20131)。ファイル情報取得処理では、書き込み対象のファイルのファイル情報を取得できた場合には、実行結果としてファイル情報が応答される。一方、書き込み対象のファイルのファイル情報を取得できなかった場合には、−1が応答される。
CPU103は、変数retの値が−1の場合、すなわち、書き込み対象のファイルのファイル情報を取得できなかった場合には(ステップ20131の結果が「Y」)、書き込み対象のファイルのハッシュ値を生成する処理を実行する(ステップ2040)。書き込み対象のファイルが存在しない場合には、例えば、ファイルを新たに作成する場合などが考えられる。
一方、CPU103は、変数retの値が−1でない場合、すなわち、書き込み対象のファイルのファイル情報を取得できた場合には(ステップ20131の結果が「N」)、当該ファイルが他のシステムに共有されているか否かを判定する(ステップ20132)。具体的には、ファイル情報取得処理で取得されるファイル情報には、ファイルマッピングテーブル301に格納されたファイル情報が含まれている。したがって、ファイルが共有されているか否かは、共有フラグ3014の値に基づいて判定することができる。
CPU103は、書き込み対象のファイルが共有されていない場合、すなわち、共有フラグ3014の値がfalseの場合には(ステップ20132の結果が「false」)、書き込み対象のファイルに対応するハッシュ値を生成する(ステップ2040)。
一方、CPU103は、書き込み対象のファイルが共有されている場合、すなわち、共有フラグ3014の値がtrueの場合には(ステップ20132の結果が「true」)、ファイルの共有を解除する(ステップ2070)。他のシステムと共有しているファイルを更新すると利用されるファイルが相違するため、共有フラグをfalseに設定し、共有を解除する必要がある。
CPU103は、さらに、書き込み対象のファイルと内容が一致するファイルを探索する(ステップ2030)。このとき、探索結果(ret)として、共有されていたファイル数のファイル情報が応答される。応答されたファイル情報は、例えば、ファイル情報の配列となっている。
CPU103は、retの個数、すなわち、ステップ2070による探索結果に含まれるファイル情報の数に基づいて処理を分岐させる(ステップ20133)。retの個数が1以外(より大きい)、すなわち、更新対象のファイルを共有していた他のファイルの数が複数存在する場合には(ステップ20133の結果が「1以外」)、そのままファイルが共有された状態となるため、書き込み対象のファイルのハッシュ値を生成する処理を実行する(ステップ2040)。
一方、CPU103は、retの個数が1、すなわち、書き込み対象のファイルが2つのシステムで共有されていた場合には(ステップ20133の結果が「1」)、当該ファイルは単独のシステムで利用されるため、共有フラグをfalseに設定する(ステップ2070)。
以上の処理が終了すると、CPU103は、ハッシュ生成部204によって、書き込み対象のファイルのハッシュ値を生成する(ステップ2040)。ハッシュ生成部204による処理の詳細については、図13Aにて後述する。生成されたハッシュ値は、変数hashに代入される。
さらに、CPU103は、更新後のファイルのハッシュ値と一致するファイル、すなわち、更新後のファイルと内容が同じファイルを探索し、探索結果を変数retに格納する(ステップ2030)。
CPU103は、変数retの値を評価し、更新後のファイルと内容が同じファイルが存在するか否かを判定する(ステップ20134)。
CPU103は、更新後のファイルと内容が同じファイルが存在する場合には(ステップ20134の結果が「存在する」)、共有される既存のファイルのファイル情報の共有フラグ3014にtrueを設定する(ステップ2070)。その後、本処理を終了する。なお、この場合には新たに更新後のファイルを格納する必要がない。このように動的にファイルを共有することによって、ファイルを格納するための容量を最小限に抑えることができる。
CPU103は、更新後のファイルと内容が同じファイルが存在しない場合には(ステップ20134の結果が「存在しない」)、ディスク装置104のファイル保存部109に当該ファイルを格納する(ステップ2050)。さらに、ファイルマッピングテーブル301の対応するファイル情報の位置情報3012を更新する(ステップ2060)。さらに、ステップ2040の処理で生成されたハッシュ値を当該ファイル情報のハッシュ値3013に設定する(ステップ2080)。その後、本処理を終了する。
なお、ファイルの書き込み処理では、書き込み後のファイルが共有されるか否かを判定する前に、一旦、ファイル保存部109の新たな領域に書き込み、当該ファイルの書き込み処理の要求元に応答するように処理してもよい。この場合には、要求元に応答した後、ファイルが共有されるか否かを判定する。
具体的には、ファイルの書き込み処理が開始されると、CPU103は、まず、ファイル保存部109に新たな領域を割り当てて書き込み後のファイル(data)を格納し(ステップ2050)、ファイルマッピングテーブル301の対応するファイル情報を更新する。具体的には、共有フラグ3014をfalseに設定する。
その後、CPU103は、図9Aのステップ2020から図9Bのステップ2030までの処理を順次実行し、書き込み後のファイルと同一のファイルが存在するか否かを判定する(ステップ20134)。
CPU103は、書き込み後のファイルと同一のファイルが存在しなかった場合には(ステップ20134の結果が「存在しない」)、ファイルマッピングテーブル301の対応するファイル情報の位置情報3012を設定する(ステップ2060)。なお、ファイル保存部109に更新後のファイルを格納したタイミングで、書き込み後のファイルの位置情報3012を設定するようにしてもよい。さらに、ファイルマッピングテーブル301のハッシュ値3013をステップ2040の処理で生成されたハッシュ値に更新する(ステップ2080)。
一方、CPU103は、書き込み後のファイルと同一のファイルが存在した場合には(ステップ20134の結果が「存在する」)、ステップ2070及びステップ2060の処理を実行し、既に格納されている書き込み後のファイルをファイル保存部109から削除する。
こうすることによって、ファイルの書き込み頻度が多い場合であっても、ハッシュ計算などを実行せずにファイルの書き込み要求元に応答することができるため、ファイル書き込み時のオーバヘッドを削減することができる。さらに、要求元に応答した後の処理を別のプロセスで実行したり、CPU103の負荷が小さいタイミングで実行したりすることによって、サーバ装置101の負荷を分散させることができる。
図10は、本発明の第1の実施の形態のファイルの読み出し処理(ステップ2014)の手順を示すフローチャートである。
CPU103は、まず、読み出し処理が実行されると、ファイル情報取得部202によって、読み出し対象のファイルに対応するファイル情報を取得し、結果を変数retに代入する(ステップ2020)。
CPU103は、ステップ2020の処理で取得されたファイル情報の位置情報3012を指定してファイルシステムアクセス処理を実行し、ディスク装置104のファイル保存部109からファイルの内容を取得して変数dataに代入する(ステップ2050)。最後に、返り値に変数dataの値を設定し、呼び出し元に応答する(ステップ20141)。
図11は、本発明の第1の実施の形態のファイル情報取得部202による処理(ステップ2020)の手順を示すフローチャートである。
CPU103は、システム名(sysname)及びファイル名(filename)を受け付け、ファイルマッピングテーブル301から指定されたシステムに対応するレコードセットを取得する(ステップ2021)。
CPU103は、ステップ2021の処理で取得されたレコードに、指定されたファイル名に対応するファイル情報(セルセット)が存在するか否かを判定する(ステップ2022)。
CPU103は、対応するファイル名が存在する場合には(ステップ2022の結果が「存在する」)、当該ファイルに対応するセルセット(位置情報3012、ハッシュ値3013、共有フラグ3014)を返り値(ret)に設定する(ステップ2023)。一方、対応するファイル名が存在しない場合には(ステップ2022の結果が「存在しない」)、返り値(ret)に−1を設定する(ステップ2024)。
図12は、本発明の第1の実施の形態の同一ハッシュ探索部203による処理(ステップ2030)の手順を示すフローチャートである。
CPU103は、ファイル名(filename)及びハッシュ値(hash)を受け付け、ファイルマッピングテーブル301の指定されたファイル名に対応する列を探索し、受け付けたハッシュ値とハッシュ値3013が一致するセルセットを取得する(ステップ2031)。
CPU103は、ステップ2031の処理でセルセットが取得されたか否かを判定する(ステップ2032)。セルセットが取得された場合には(ステップ2032の結果が「Y」)、取得したセルセットを配列変数に代入して返り値(ret)に設定する(ステップ2033)。一方、セルセットが取得されなかった場合には(ステップ2032の結果が「N」)、返り値(ret)に0を設定する(ステップ2034)。
図13Aは、本発明の第1の実施の形態のハッシュ生成部204による処理(ステップ2040)の手順を示すフローチャートである。
CPU103は、ファイルの内容(data)を受け付け、ハッシュ値(hash)を生成する(ステップ2041)。前述したように、従来技術に基づいてハッシュ値を生成すればよい。ハッシュ値が生成されると、生成されたハッシュ値(hash)を返り値に設定し、本処理の呼び出し元に応答する(ステップ2042)。
ここで、ハッシュの生成についてさらに説明すると、本発明の第1の実施の形態のようにハッシュによってファイルを識別する場合には、ハッシュ値の桁数(ハッシュ長)を適切に設定しなければならない。ハッシュ長が長い場合にはハッシュ値の生成及び検索に要する時間が増大するが、異なるファイルに対して同じハッシュ値が生成される可能性が低くなる。一方、ハッシュ長を短くすると、ハッシュ値の生成及び検索に要する時間は短くなるが、異なるファイルに同じハッシュ値が設定される可能性が高くなる。
そこで、ファイルごとに異なるハッシュ長を設定可能であることを利用して、ハッシュ値の桁数(ハッシュ長)をファイルサイズごとに決定するようにしてもよい。通常、ファイルサイズが大きいほどファイルが取りうる状態のバリエーションが多く、ファイルサイズが小さいほど少なくなる。そこで、ファイルサイズの平均に基準となるハッシュ長を対応させ、ファイルサイズに応じてハッシュ長を変更する。具体的には、ファイルサイズが大きいほどハッシュ長が長くなるように設定し、小さいほど短くなるように設定すればよい。
また、サーバ装置101が提供する環境(システム)の数に応じてハッシュ長を設定するようにしてもよい。システムの数が多ければ多いほど同じハッシュ値が生成される可能性が高いため、システムの数が多いほどハッシュ長を長くする。 図13Bは、本発明の第1の実施の形態のファイルシステムアクセス部205による処理(ステップ2050)の手順を示すフローチャートである。
CPU103は、処理のタイプ(type)、位置情報(position)及びデータ(data)を受け付け、処理のタイプに応じて処理を分岐させる(ステップ2051)。処理のタイプには、データの書き込み(write)又はデータの読み出し(read)が含まれる。なお、データを新たに書き込む場合には、ファイルシステムによって空き領域を特定し、特定された空き領域にデータを書き込むため、位置情報を設定する必要はない。例えば、位置情報にNULL値を設定してもよいし、新規書き込みであることを明示するために、位置情報に“new”と設定するようにしてもよい。
CPU103は、処理のタイプが書き込み要求の場合には(ステップ2051の結果が「write」)、受け付けられたデータの書き込みをファイルシステムに要求する(ステップ2052)。さらに、データが書き込まれた位置を返り値に設定する(ステップ2054)。
一方、CPU103は、処理のタイプが読み出し要求の場合には(ステップ2051の結果が「read」)、受け付けられた位置情報を指定して、ファイルシステムにデータの読み出しを要求する(ステップ2053)。さらに、読み出されたデータを変数dataに代入する。最後に、返り値にdataの値を設定する(ステップ2055)。
図13Cは、本発明の第1の実施の形態の位置情報設定部206による処理(ステップ2060)の手順を示すフローチャートである。
CPU103は、システム名(sysname)、ファイル名(filename)及び指定されたファイルの位置情報を示す値(value)を受け付ける。そして、受け付けられたシステム名及びファイル名に基づいて、ファイルマッピングテーブル301のファイル情報(セルセット)を特定し、位置情報3012に受け付けられた値を保存する(ステップ2061)。
図13Dは、本発明の第1の実施の形態の共有フラグ設定部207による処理(ステップ2070)の手順を示すフローチャートである。
CPU103は、システム名(sysname)、ファイル名(filename)及び指定されたファイルを共有するか否かを示す値(value)を受け付ける。そして、受け付けられたシステム名及びファイル名に基づいて、ファイルマッピングテーブル301のファイル情報(セルセット)を特定し、共有フラグ3014に受け付けられた値を保存する(ステップ2071)。
図13Eは、本発明の第1の実施の形態のハッシュ値設定部208による処理(ステップ2080)の手順を示すフローチャートである。
CPU103は、システム名(sysname)、ファイル名(filename)及び指定されたファイルに対応するハッシュ値(value)を受け付ける。そして、受け付けられたシステム名及びファイル名に基づいて、ファイルマッピングテーブル301のファイル情報(セルセット)を特定し、ハッシュ値3013に受け付けられた値を保存する(ステップ2081)。
以上に示した処理によって、ディスク容量を節約しながら、共有されたファイルを読み書きすることができる。以下、本発明の第1の実施の形態のファイル管理システムを管理する手順について、図14から図19を参照しながら説明する。
図14は、本発明の第1の実施の形態のマッピングシステム制御コマンド受付部401による処理の手順を示すフローチャートである。
CPU103は、マッピングシステム制御コマンド受付部401によって、コマンド(command)及び制御対象のシステム名(sysname)の入力を受け付ける。さらに、受け付けたコマンドに応じて処理を分岐する(ステップ4011)。
本発明の第1の実施の形態では、受け付けられるコマンドには、次回起動するシステムを設定するための「次回システム設定」、システムを削除するための「システム削除」、現在のシステムを設定されている次回システムに切り替えるための「システム切替」、システムを複製するための「システム複製」が指定される。なお、これ以外も必要に応じてコマンドを追加してもよい。
CPU103は、受け付けられたコマンドが「次回システム設定」の場合には(ステップ4011の結果が「次回システム設定」)、次回システム設定処理を実行する(ステップ4012)。このとき、受け付けられたシステム名には、次回起動されるシステムの名称が設定されている。次回システム設定処理の詳細については、図15にて後述する。
CPU103は、受け付けられたコマンドが「システム削除」の場合には(ステップ4011の結果が「システム削除」)、システム削除処理を実行する(ステップ4013)。このとき、受け付けられたシステム名には、削除対象のシステムの名称が設定される。システム削除処理の詳細については、図16にて後述する。
CPU103は、受け付けられたコマンドが「システム切替」の場合には(ステップ4011の結果が「システム切替」)、システム切替処理を実行する(ステップ4014)。システム切替処理の詳細については、図17Aにて後述する。
CPU103は、受け付けられたコマンドが「システム複製」の場合には(ステップ4011の結果が「システム複製」)、システム複製処理を実行する(ステップ4015)。このとき、受け付けられたシステム名には、複製元のシステムの名称が設定される。システム複製処理の詳細については、図17Bにて後述する。なお、複製先のシステム名については、システム複製処理において入力が要求されるようになっているが、本処理において引数として複製先のシステムの入力を受け付け、システム複製処理を実行するようにしてもよい。
図15は、本発明の第1の実施の形態の次回システム設定処理(ステップ4012)の手順を示すフローチャートである。
本発明の第1の実施の形態では、システムを切り替えるためには、次回実行するシステムを設定する必要がある。具体的には、システム保存部302の次回システム3022に次回起動するシステムを設定する。本処理は、次回起動するシステムを設定するための処理である。
CPU103は、まず、次回起動するシステムのシステム名の入力を受け付け、当該システム名を有するシステムが存在するか否かを確認する(ステップ4020)。システム存在確認処理の詳細については、図18Aにて後述する。
CPU103は、ステップ4020の処理の結果に基づいて、指定されたシステムが存在するか否かを判定する(ステップ40121)。指定されたシステムが存在しない場合には(ステップ40121の結果が「存在しない」)、返り値に−1を設定し(ステップ40122)、本処理を終了する。
CPU103は、指定されたシステムが存在する場合には(ステップ40121の結果が「存在する」)、システム操作処理を実行する(ステップ4030)。ここで実行されるシステム操作処理は、システム保存部302の次回システム3022に、指定されたシステム名を書き込む処理である。システム操作処理の詳細については、図19にて後述する。さらに、返り値に0を設定し(ステップ40123)、本処理を終了する。
図16は、本発明の第1の実施の形態のシステム削除処理(ステップ4013)の手順を示すフローチャートである。
システム削除処理において、CPU103は、まず、システム名を受け付け、当該システムの存在を確認し、結果を変数retに代入する(ステップ4020)。
CPU103は、変数retの値を評価し、指定されたシステムが存在するか否かを判定する(ステップ40131)。指定されたシステムが存在しない場合には(ステップ40131の結果が「存在しない」)、処理が失敗したことを示す値である−1を返り値に設定し(ステップ40134)、本処理を終了する。
一方、CPU103は、指定されたシステムが存在する場合には(ステップ40131の結果が「存在する」)、システム操作処理を実行し、システム保存部302から現在システム3021の値を取得し、変数retに設定する(ステップ4030)。
さらに、CPU103は、変数retの値と指定されたシステムとが等しいか否かを判定する(ステップ40132)。現在実行中のシステムを削除することはできないため、変数retの値と指定されたシステムとが等しい場合には(ステップ40132の結果が「等しい」)、返り値に−1を設定し(ステップ40134)、本処理を終了する。
CPU103は、変数retの値と指定されたシステムとが等しくない場合には(ステップ40132の結果が「等しくない」)、システム操作処理を実行し、システム保存部302から次回システム3022の値を取得し、変数retに設定する(ステップ4030)。
次回システムと指定されたシステムとを比較するのは、次回実行予定のシステムを削除することによって、システムを切替又は再起動することができなくなることを防ぐためである。すなわち、次回システムに設定されているシステムを削除する場合には、次回システムを再設定してからシステムを削除する必要がある。なお、削除対象のシステムに次回システムが指定された場合には、現在システム3021の値を次回システム3022の値に設定するなどして削除を許可するようにしてもよい。
したがって、CPU103は、変数retの値と指定されたシステムとが等しい場合には(ステップ40133の結果が「等しい」)、返り値に−1を設定し(ステップ40134)、本処理を終了する。
CPU103は、変数retの値と指定されたシステムとが等しくない場合には(ステップ40133の結果が「等しくない」)、システム削除部405によって、指定されたシステムを削除する(ステップ4050)。システム削除部405による処理の詳細については、図18Cにて後述する。最後に、システムの削除処理が成功したことを意味する値0を返り値に設定し(ステップ40135)、本処理を終了する。
図17Aは、本発明の第1の実施の形態のシステム切替処理(ステップ4014)の手順を示すフローチャートである。
CPU103は、システム操作部403によって、まず、システム保存部302から次回システム3022を取得し、取得されたシステム名を変数sysnameに代入する(ステップ4030)。
CPU103は、さらに、sysnameに設定された次回システムのシステム名を、システム保存部302の現在システム3021に設定する(ステップ4030)。
以上の処理が終了した後、メモリに常駐しているプログラムなどを切替後のシステムの対応するプログラムと切り替えることによって、システムを切り替えることができる。メモリ内のプログラムの切替ができない場合には、必要に応じてシステムを再起動することによってシステムを切り替えればよい。
図17Bは、本発明の第1の実施の形態のシステム複製処理(ステップ4015)の手順を示すフローチャートである。
システム複製処理において、CPU103は、まず、指定された複製元のシステムが存在するか否かを確認し、結果を変数retに代入する(ステップ4020)。
さらに、CPU103は、変数retの値を評価し、指定されたシステムが存在するか否かを判定する(ステップ40151)。指定されたシステムが存在しない場合には(ステップ40151の結果が「存在しない」)、返り値に−1を設定し(ステップ40152)、本処理を終了する。
一方、CPU103は、指定されたシステムが存在する場合には(ステップ40151の結果が「存在する」)、指定されたシステム名を引数として、システム複製部404によって、指定されたシステムを複製する(ステップ4040)。システム複製部404による処理の詳細については、図18Bにて後述する。さらに、返り値に0を設定し(ステップ40153)、本処理を終了する。
図18Aは、本発明の第1の実施の形態のシステム存在確認部402による処理(ステップ4020)の手順を示すフローチャートである。
CPU103は、指定されたシステムがサーバ装置101によって提供されるシステムとして存在するか否か判定する(ステップ4021)。具体的には、ファイルマッピングテーブル301に、指定されたシステム名に対応するレコードセットが含まれているか否かを判定する。対応するレコードセットが存在する場合には返り値retに指定されたシステムが存在することを示す値を設定する。
図18Bは、本発明の第1の実施の形態のシステム複製部404による処理(ステップ4040)の手順を示すフローチャートである。
CPU103は、まず、複製先のシステム名(newname)の入力を受け付ける(ステップ4041)。さらに、ファイルマッピングテーブル301から、入力されたシステム名を探索し、存在するか否かを示す値を変数retに設定する(ステップ4042)。
CPU103は、変数retの値を評価し、入力されたシステム名がファイルマッピングテーブル301に存在するか否かを判定する(ステップ4043)。入力されたシステム名が既にファイルマッピングテーブル301に存在する場合には(ステップ4043の結果が「存在する」)、システムを複製することができないため、返り値に−1を設定し(ステップ4046)、本処理を終了する。
一方、CPU103は、入力されたシステム名がファイルマッピングテーブル301に存在しない場合には(ステップ4043の結果が「存在しない」)、指定された複製元のシステムに対応するレコードをファイルマッピングテーブル301から取得し、取得されたレコードセットに入力されたシステム名を設定し、新たなレコードセットを登録する(ステップ4044)。最後に、返り値に0を設定し(ステップ4045)、本処理を終了する。
図18Cは、本発明の第1の実施の形態のシステム削除部405による処理(ステップ4050)の手順を示すフローチャートである。
CPU103は、指定されたシステム名に対応するレコードをファイルマッピングテーブル301から削除する(ステップ4051)。このとき、削除されたシステムで利用されるファイルであって、他のシステムに共有されていないファイルを削除してもよい。また、指定されたシステムが削除されたことによって、他のシステムが単独でファイルを利用することになった場合には、対応するセルセットの共有フラグをtrueからfalseに変更する。
具体的な処理としては、削除するシステムに対応するレコードに含まれるすべてのファイルについて、共有フラグ3014の値を取得する。共有フラグの値がfalseの場合には、対応するファイルを削除する。
一方、共有フラグ3014の値がtrueの場合には、他に共有しているシステムの数を取得する。他に共有しているシステムの数が2以上の場合には、他のシステムのファイル情報を変更する必要はない。他に共有しているシステムの数が1の場合には、対応するファイル情報の共有フラグ3014の値をtrueからfalseに変更する。これらの処理については、図9Aに示したステップ20701からステップ20702までの処理と同様である。
図19は、本発明の第1の実施の形態のシステム操作部403による処理(ステップ4030)の手順を示すフローチャートである。
システム操作部403による処理は、システム保存部302に格納された情報を読み書きするための処理である。
CPU103は、操作種別、変更対象のシステムを示す値(現在又は次回)、及びシステム名(sysname)を受け付け、操作種別によって処理を分岐させる(ステップ4031)。
CPU103は、操作種別が書き込みの場合には(ステップ4031の結果が「write」)、さらに、操作対象のシステムが現在システムか次回システムかを判定する(ステップ40321)。
CPU103は、対象のシステムが現在の場合には(ステップ40321の結果が「現在」)、システム保存部302の現在システム3021に、指定されたシステム名を設定する(ステップ4033)。一方、対象のシステムが次回の場合には(ステップ40321の結果が「次回」)、システム保存部302の次回システム3022に、指定されたシステム名を設定する(ステップ4034)。
CPU103は、操作種別が読み出しの場合には(ステップ4031の結果が「read」)、さらに、操作対象のシステムが現在システムか次回システムかを判定する(ステップ40322)。
CPU103は、対象のシステムが現在システムの場合には(ステップ40322の結果が「現在」)、システム保存部302の現在システム3021からシステム名を取得し(ステップ4035)、返り値に取得されたシステム名を設定する(ステップ4037)。
一方、対象のシステムが次回システムの場合には(ステップ40322の結果が「次回」)、システム保存部302の次回システム3022からシステム名を取得し(ステップ4036)、返り値に取得されたシステム名を設定する(ステップ4037)。
以上の処理によって、サーバ装置101で実行されるシステムを切り替えることができる。さらに、サーバ装置101が提供するシステムの追加又は削除を行うことができる。
本発明の第1の実施の形態によれば、ファイルの更新などによって、ファイルの共有状態を動的に変更することによって、ディスク容量を節約することができる。例えば、更新後のファイルと一致するファイルの存在を逐次判定するため、スナップショットのように同期点以降にファイルが更新されると、同じファイルであっても別々に保存されることがない。また、ハッシュを利用してファイルの内容を比較しているため、短時間でファイルを比較することができる。
また、本発明の第1の実施の形態によれば、システムの複製によって、環境ごとに共通のファイルをインストールする必要がなく、環境を構築するために必要なコストを削減することができる。例えば、各システムのオペレーティングシステム(OS)が共通であって、ミドルウェアなどのアプリケーションの一部が相違する環境を複数構築する必要が場合にさらに高い効果を発揮することができる。また、システム開発におけるテスト環境を構築する場合以外にも、例えば、学校などで複数の学生が教育用に計算機を同時に利用する環境を構築する場合にも本発明は有効である。
さらに、本発明の第1の実施の形態によれば、ソフトウェア開発におけるテスト環境に利用すると、システム間で相違するファイルの特定が容易になるため、環境に依存した不具合の原因究明などに役立てることができる。
(第2の実施の形態)
本発明の第2の実施の形態では、本発明を仮想計算機に適用する。第2の実施の形態のサーバ装置では、1以上の仮想計算機が稼動し、各仮想計算機上でシステムが提供されている。
本発明の第2の実施の形態では、本発明を仮想計算機に適用する。第2の実施の形態のサーバ装置では、1以上の仮想計算機が稼動し、各仮想計算機上でシステムが提供されている。
なお、第2の実施の形態の説明では、第1の実施の形態と共通する構成及び処理については、同一の符号を付与して説明を省略する。
図20は、本発明の第2の実施の形態のファイル管理システムを実現する計算機システムのハードウェア及びソフトウェアの構成を示すブロック図である。
本発明の第2の実施の形態の計算機システムは、仮想計算機を制御する管理計算機2000、仮想計算機が稼動するサーバ装置101、及びディスク装置104を含む。管理計算機2000及びサーバ装置101は、ネットワークなどを介して接続される。
管理計算機2000は、メモリ2002、CPU2003及びインタフェース2013を備える。メモリ2002、CPU2003及びインタフェース2013は、内部バスによって接続されている。
メモリ2002は、CPU2003によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。具体的には、リモート管理部111が記憶される。
リモート管理部111は、サーバ装置101で稼動している複数の仮想計算機によって提供されるシステムをネットワーク経由でリモート管理するためのプログラム及びデータである。
リモート管理部111には、マッピングシステム制御コマンド受付部2401、システム存在確認部402、システム複製部404、システム削除部405及び仮想計算機管理テーブル操作部406を含む。リモート管理部111の各構成の詳細については、図22にて後述する。
CPU2003は、メモリ2002に記憶されたプログラムを実行することによって、要求された処理を実行する。インタフェース2013は、外部に接続するためのインタフェースである。
第2の実施の形態のサーバ装置101は、第1の実施の形態と同様に、メモリ102、CPU103、ディスク装置104及びインタフェース113を備える。メモリ102、CPU103、ディスク装置104及びインタフェース113は、内部バスによって接続されている。
メモリ102は、CPU103によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。メモリ102に記憶されるプログラム及びデータは、ディスク装置104に格納されたプログラム及びデータがロードされたものであってもよい。この際、ディスク装置104のキャッシュには共通部を含むデータがロードされるため、複数の仮想計算機で共通の情報は高速で読み出せるようになる。
メモリ102には、ハイパバイザ117が記憶される。ハイパバイザとは、仮想計算機を実行するための制御プログラムである。ハイパバイザ117には、仮想化に対応したファイルマッピング制御部2106及びマッピング情報管理部107が実行され、仮想計算機管理テーブル112が記憶される。
ファイルマッピング制御部2106の機能は、仮想計算機に対応している点を除いて、第1の実施の形態のファイルマッピング制御部106と同様である。ファイルマッピング制御部2106の詳細については、図21にて後述する。
マッピング情報管理部107は、第1の実施の形態と同様に、ファイルマッピングテーブル301を含む。システム保存部302は、仮想計算機ごとに現在実行されているシステムと次回実行されるシステムを格納できるようになっており、後述する仮想計算機管理テーブル112と実質的に同じである。
仮想計算機管理テーブル112は、仮想計算機ごとに、現在実行しているシステム及び次回起動するシステムが定義される。仮想計算機管理テーブル112の詳細については、図29にて後述する。
CPU103は、メモリ102に記憶されたプログラムを実行することによって、要求された処理を実行する。インタフェース113は、管理計算機2000などに接続するためのインタフェースである。
ディスク装置104は、第1の実施の形態と同様に、プログラム及びデータを格納する。具体的には、ファイル保存部109及びマッピング情報保存部110が格納される。なお、ディスク装置104は、サーバ装置101に含まれる構成としてもよいし、ネットワークを介してサーバ装置101に接続される構成としてもよい。
図21は、本発明の第2の実施の形態の仮想化対応したファイルマッピング制御部2106の構成を示す図である。
ファイルマッピング制御部106には、ファイル入出力監視部2201、ファイル情報取得部202、同一ハッシュ探索部203、ハッシュ生成部204、ファイルシステムアクセス部205、位置情報設定部206、共有フラグ設定部207及びハッシュ値設定部208が含まれる。
ファイル入出力監視部2201は、ファイルの入出力要求を受け付け、ファイルの入出力要求に応じた処理を実行する。ファイル入出力監視部2201による処理の詳細については、図23にて後述する。
ファイル情報取得部202、同一ハッシュ探索部203、ハッシュ生成部204、ファイルシステムアクセス部205、位置情報設定部206、共有フラグ設定部207及びハッシュ値設定部208は、第1の実施の形態と同じである。
図22は、本発明の第2の実施の形態のリモート管理部111の構成を示す図である。
リモート管理部111は、第1の実施の形態のマッピング情報制御部108に対応し、前述のように、サーバ装置101で稼動している仮想計算機及び当該仮想計算機によって提供されているシステムを管理する。
リモート管理部111は、第1の実施の形態のマッピング情報制御部108と同様に、システム存在確認部402、システム複製部404及びシステム削除部405が含まれる。さらに、マッピングシステム制御コマンド受付部2401及び仮想計算機管理テーブル操作部406が含まれている。
第2の実施の形態のマッピングシステム制御コマンド受付部2401は、サーバ装置101で稼動している仮想計算機又は当該仮想計算機によって提供されているシステムに対する制御コマンドの入力を受け付ける。マッピングシステム制御コマンド受付部2401は、第1の実施の形態ではサーバ装置101に含まれていたが、サーバ装置101で稼動している複数の仮想計算機を制御するため、第2の実施の形態では、管理計算機2000で実行される。マッピングシステム制御コマンド受付部2401による処理の詳細については、図24にて後述する。
仮想計算機管理テーブル操作部406は、第1の実施の形態のシステム操作部403に対応する。システム操作部403では、現在又は次回のシステムの識別情報を読み書きしていたが、仮想計算機管理テーブル操作部406では、さらに仮想計算機の指定を受け付ける。
システム存在確認部402、システム複製部404及びシステム削除部405については、第1の実施の形態と同様である。
図23は、本発明の第2の実施の形態のファイル入出力監視部2201による処理の手順を示すフローチャートである。
本発明の第2の実施の形態では、第1の実施の形態と同様に、ユーザからのファイルアクセス要求が監視されている。ハイパバイザ117上で実行されているファイル入出力監視部2201によってファイルアクセス要求が検知されると、まず、ファイルアクセス要求に対応するシステムを特定する。さらに、処理対象のファイルの実際の格納位置を特定し、当該ファイルの書き込み処理又は読み出し処理を実行する。システムの特定に仮想計算機の識別情報が必要となる点を除いて、第1の実施の形態のファイル入出力監視部201による処理と同様である。
CPU103は、ファイル入出力監視部2201によって、ユーザからのファイルアクセス要求が検知されると、ファイルアクセスが要求された仮想計算機の識別情報に基づいて、仮想計算機管理テーブルから現在実行されているシステム名を取得する(ステップ2011B)。
CPU103は、ファイルアクセス要求が書き込み要求か読み出し要求かを判定し(ステップ2012)、書き込み処理(ステップ2013)又は読み出し処理(ステップ2014)を実行する。
ステップ2013の書き込み処理は、システム名(sysname)、ファイル名(filename)及び更新内容(data)が引数として実行される。一方、ステップ2014の読み出し処理は、システム名(sysname)及びファイル名(filename)を引数とし、返り値に読み出された内容が格納される。
ファイルの書き込み処理(ステップ2013)又は読み出し処理(ステップ2014)が終了すると、本処理は終了する。
図24は、本発明の第2の実施の形態のマッピングシステム制御コマンド受付部2401による処理の手順を示すフローチャートである。
CPU2003は、マッピングシステム制御コマンド受付部2401によって、コマンド(command)、制御対象のシステム名(sysname)及び仮想計算機の識別情報(machine)の入力を受け付ける。さらに、受け付けたコマンドに応じて処理を分岐する(ステップ4011)。
本発明の第2の実施の形態では、各仮想計算機に対し、第1の実施の形態と同様に、「次回システム設定」、「システム削除」、「システム切替」及び「システム複製」が指定される。さらに、「仮想計算機の作成(追加)」及び「仮想計算機の削除」を指定することができる。仮想計算機の作成及び削除は、サーバ装置101で稼動している仮想計算機を新たに作成したり、不要となった仮想計算機を削除したりする。
CPU2003は、受け付けられたコマンドが「次回システム設定」の場合には(ステップ4011の結果が「次回システム設定」)、第1の実施の形態と同様に、次回システム設定処理を実行する(ステップ4012B)。このとき、次回起動されるシステムの名称の他に、当該システムが稼働する仮想計算機の識別情報も入力される。次回システム設定処理の詳細については、図25にて後述する。
CPU2003は、受け付けられたコマンドが「システム削除」の場合には(ステップ4011の結果が「システム削除」)、システム削除処理を実行する(ステップ4013B)。このとき、削除対象のシステムの名称の他に、当該システムが稼働する仮想計算機の識別情報も入力される。システム削除処理の詳細については、図26にて後述する。
CPU2003は、受け付けられたコマンドが「システム切替」の場合には(ステップ4011の結果が「システム切替」)、システム切替処理を実行する(ステップ4014B)。このとき、システムを切り替える対象となる仮想計算機が指定される。システム切替処理の詳細については、図27Aにて後述する。
CPU2003は、受け付けられたコマンドが「システム複製」の場合には(ステップ4011の結果が「システム複製」)、システム複製処理を実行する(ステップ4015B)。システム複製処理の手順については、第1の実施の形態と同様である。
CPU2003は、受け付けられたコマンドが「仮想計算機作成」の場合には(ステップ4011の結果が「仮想計算機作成」)、サーバ装置101に新たに仮想計算機を追加する(ステップ4016)。仮想計算機追加処理の詳細については、図27Bにて後述する。
CPU2003は、受け付けられたコマンドが「仮想計算機削除」の場合には(ステップ4011の結果が「仮想計算機削除」)、サーバ装置101で稼動可能な仮想計算機を削除する(ステップ4017)。仮想計算機削除処理の詳細については、図27Cにて後述する。
図25は、本発明の第2の実施の形態の次回システム設定処理(ステップ4012B)の手順を示すフローチャートである。
次回システム設定処理は、各仮想計算機で次回起動するシステムを設定するための処理である。
CPU2003は、仮想計算機の識別情報及び次回起動するシステムのシステム名を受け付け、当該システムが存在するか否かを確認する(ステップ4020)。第2の実施の形態のシステム存在確認部402では、サーバ装置101の仮想計算機管理テーブル112を参照することによって、指定されたシステムが存在するか否かを判定する。
CPU2003は、ステップ4020の処理の結果に基づいて、指定されたシステムが存在するか否かを判定する(ステップ40121)。指定されたシステムが存在しない場合には(ステップ40121の結果が「存在しない」)、返り値に−1を設定し(ステップ40122)、本処理を終了する。
CPU2003は、指定されたシステムが存在する場合には(ステップ40121の結果が「存在する」)、仮想計算機管理テーブル操作部406を実行する(ステップ4060)。仮想計算機管理テーブル操作部406による処理は、第1の実施の形態におけるシステム操作処理と同様である。なお、第2の実施の形態では、設定対象の仮想計算機を指定して、仮想計算機管理テーブル112の対応するセルに指定されたシステムを設定するようにサーバ装置101に要求する。仮想計算機管理テーブル操作部406による処理の詳細については、図28にて後述する。さらに、返り値に0を設定し(ステップ40123)、本処理を終了する。
図26は、本発明の第2の実施の形態のシステム削除処理(ステップ4013B)の手順を示すフローチャートである。
システム削除処理において、CPU2003は、まず、削除対象のシステム名の指定を受け付け、当該システムの存在を確認し、結果を変数retに代入する(ステップ4020)。
CPU2003は、変数retの値を評価し、指定されたシステムが存在するか否かを判定する(ステップ40131)。指定されたシステムが存在しない場合には(ステップ40131の結果が「存在しない」)、処理が失敗したことを示す値である−1を返り値に設定し(ステップ40134)、本処理を終了する。
一方、CPU2003は、指定されたシステムが存在する場合には(ステップ40131の結果が「存在する」)、仮想計算機管理テーブル112から、各仮想計算機の現在システムを取得し、変数retに設定する(ステップ4060)。
CPU2003は、変数retに含まれるシステム名に指定されたシステム名が含まれるか否かを判定する(ステップ40132)。いずれかの仮想計算機で実行中のシステムを削除することはできないため、変数retに含まれるシステム名に指定されたシステム名が含まれている場合には(ステップ40132の結果が「含まれる」)、返り値に−1を設定し(ステップ40134)、本処理を終了する。
CPU2003は、変数retに含まれるシステム名に指定されたシステム名が含まれていない場合には(ステップ40132の結果が「含まれない」)、仮想計算機管理テーブル操作処理を実行し、仮想計算機管理テーブル112から各仮想計算機の次回システムの値を取得し、変数retに設定する(ステップ4060)。さらに、変数retに含まれるシステム名に指定されたシステム名が含まれている場合には(ステップ40133の結果が「含まれる」)、返り値に−1を設定し(ステップ40134)、本処理を終了する。
CPU2003は、変数retに含まれるシステム名に指定されたシステム名が含まれていない場合には(ステップ40133の結果が「含まれない」)、システム削除部405によって指定されたシステムを削除する(ステップ4050)。最後に、システムの削除処理が成功したことを意味する値0を返り値に設定し(ステップ40135)、本処理を終了する。
図27Aは、本発明の第2の実施の形態のシステム切替処理(ステップ4014B)の手順を示すフローチャートである。
CPU2003は、仮想計算機管理テーブル操作部406によって、まず、指定された仮想計算機に対応する次回システムをサーバ装置101の仮想計算機管理テーブル112から取得し、取得されたシステム名を変数sysnameに代入する(ステップ4060)。
CPU2003は、さらに、sysnameに設定されたシステム名を、仮想計算機管理テーブル112の現在システムに設定するように、サーバ装置101に要求する(ステップ4060)。
以上の処理が終了した後、メモリに常駐しているプログラムなどを切替後のシステムの対応するプログラムに切り替えることによって、システムを切り替えることができる。プログラムの切替ができない場合には、必要に応じて指定された仮想計算機を再起動することによってシステムを切り替えればよい。
図27Bは、本発明の第2の実施の形態の仮想計算機追加処理(ステップ4016)の手順を示すフローチャートである。
仮想計算機追加処理では、CPU2003は、追加する仮想計算機の識別情報の指定を受け付けると、サーバ装置101の仮想計算機管理テーブル112に指定された仮想計算機を追加する(ステップ40161)。具体的には、指定された仮想計算機の識別情報を仮想計算機管理テーブル112に追加するように、サーバ装置101に要求する。
また、追加された仮想計算機を起動する前に、仮想計算機管理テーブル112の対応するレコードに次回システムを設定しておく必要があるが、仮想計算機追加時に設定するようにしてもよい。
図27Cは、本発明の第2の実施の形態の仮想計算機削除処理(ステップ4017)の手順を示すフローチャートである。
仮想計算機追加処理では、CPU2003は、削除対象の仮想計算機の識別情報の指定を受け付けると、サーバ装置101の仮想計算機管理テーブル112から指定された仮想計算機を削除する(ステップ40171)。具体的には、指定された仮想計算機の識別情報を仮想計算機管理テーブル112から削除するように、サーバ装置101に要求する。指定された仮想計算機が稼働中の場合には、指定された仮想計算機を終了させてから削除するようにしてもよいし、稼働中の仮想計算機を停止せずに、仮想計算機管理テーブル112の該当するレコードを削除し、次回起動できないようにしてもよい。
図28は、本発明の第2の実施の形態の仮想計算機管理テーブル操作部406による処理(ステップ4060)の手順を示すフローチャートである。
仮想計算機管理テーブル操作部406による処理は、第1の実施の形態のシステム操作部403による処理に対応し、仮想計算機管理テーブル112に格納された情報を読み書きするための処理である。
仮想計算機管理テーブル操作部406による処理は、第1の実施の形態のシステム操作部403による処理に対応し、仮想計算機管理テーブル112に格納された情報を読み書きするための処理である。
CPU2003は、操作種別、変更対象のシステムを示す値(現在又は次回)、システム名(sysname)及び仮想計算機の識別情報(machine)の指定を受け付け、操作種別によって処理を分岐させる(ステップ4061)。
CPU2003は、操作種別が書き込みの場合には(ステップ4061の結果が「write」)、さらに、操作対象のシステムが現在システムか次回システムかを判定する(ステップ40621)。
CPU2003は、対象のシステムが現在の場合には(ステップ40621の結果が「現在」)、仮想計算機管理テーブル112の指定された仮想計算機に対応する現在システム1122に、指定されたシステム名を設定する(ステップ4063)。一方、対象のシステムが次回の場合には(ステップ40621の結果が「次回」)、仮想計算機管理テーブル112の指定された仮想計算機に対応する次回システム1123に、指定されたシステム名を設定する(ステップ4064)。
CPU2003は、操作種別が読み出しの場合には(ステップ4061の結果が「read」)、さらに、操作対象のシステムが現在システムか次回システムかを判定する(ステップ40622)。
CPU2003は、操作対象のシステムが現在システムの場合には(ステップ40622の結果が「現在」)、仮想計算機管理テーブル112の指定された仮想計算機に対応する現在システム1122からシステム名を取得し(ステップ4065)、返り値に取得されたシステム名を設定する(ステップ4067)。
一方、CPU2003は、操作対象のシステムが次回システムの場合には(ステップ40622の結果が「次回」)、仮想計算機管理テーブル112の指定された仮想計算機に対応する次回システム1123からシステム名を取得し(ステップ4066)、返り値に取得されたシステム名を設定する(ステップ4067)。
図29は、本発明の第2の実施の形態の仮想計算機管理テーブル112の構成を示す図である。
仮想計算機管理テーブル112には、仮想計算機ごとに現在実行されているシステムと次回実行予定のシステムの識別情報が格納されている。仮想計算機管理テーブル112は、仮想計算機1121、現在システム1122及び次回システム1123を含む。
仮想計算機1121は、サーバ装置101で稼動可能な仮想計算機の識別情報である。現在システム1122は、現在実行中又は直前に実行されていたシステムの識別情報である。次回システム1123は、次回起動時に実行されるシステムの識別情報である。
本発明の第2の実施の形態によれば、仮想計算機上で実行されるシステムを切り替えることが可能となり、複数の環境を一つ仮想計算機上で提供することができる。
さらに、本発明の第2の実施の形態によれば、各仮想計算機上で提供される各システムで同じファイルを動的に共有することができるため、第1の実施の形態と同様に、ディスク容量を節約することができる。
101 サーバ装置
102 メモリ
103 CPU
104 ディスク装置
105 ファイルマッピングシステム部
106 ファイルマッピング制御部
107 マッピング情報管理部
108 マッピング情報制御部
109 ファイル保存部
110 マッピング情報保存部
111 リモート管理部
112 仮想計算機管理テーブル
113 インタフェース
117 ハイパバイザ
201 ファイル入出力監視部
202 ファイル情報取得部
203 同一ハッシュ探索部
204 ハッシュ生成部
205 ファイルシステムアクセス部
206 位置情報設定部
207 共有フラグ設定部
208 ハッシュ値設定部
301 ファイルマッピングテーブル
302 システム保存部
401 マッピングシステム制御コマンド受付部
402 システム存在確認部
403 システム操作部
404 システム複製部
405 システム削除部
406 仮想計算機管理テーブル操作部
2000 管理計算機
2002 メモリ
2003 CPU
2013 インタフェース
2106 ファイルマッピング制御部
2201 ファイル入出力監視部
2401 マッピングシステム制御コマンド受付部
3010 ファイル情報
3011 システム名
3012 位置情報
3013 ハッシュ値
3014 共有フラグ
3015 レコードセット
3016 セルセット
102 メモリ
103 CPU
104 ディスク装置
105 ファイルマッピングシステム部
106 ファイルマッピング制御部
107 マッピング情報管理部
108 マッピング情報制御部
109 ファイル保存部
110 マッピング情報保存部
111 リモート管理部
112 仮想計算機管理テーブル
113 インタフェース
117 ハイパバイザ
201 ファイル入出力監視部
202 ファイル情報取得部
203 同一ハッシュ探索部
204 ハッシュ生成部
205 ファイルシステムアクセス部
206 位置情報設定部
207 共有フラグ設定部
208 ハッシュ値設定部
301 ファイルマッピングテーブル
302 システム保存部
401 マッピングシステム制御コマンド受付部
402 システム存在確認部
403 システム操作部
404 システム複製部
405 システム削除部
406 仮想計算機管理テーブル操作部
2000 管理計算機
2002 メモリ
2003 CPU
2013 インタフェース
2106 ファイルマッピング制御部
2201 ファイル入出力監視部
2401 マッピングシステム制御コマンド受付部
3010 ファイル情報
3011 システム名
3012 位置情報
3013 ハッシュ値
3014 共有フラグ
3015 レコードセット
3016 セルセット
Claims (17)
- 複数の環境を提供可能な計算機におけるファイル管理方法であって、
前記計算機は、プロセッサ及び前記プロセッサに接続されるメモリを備え、前記各環境で利用されるファイルを格納する記憶装置を管理し、
前記メモリは、前記ファイルが格納された位置を示すファイル位置情報、前記ファイルを識別するファイル識別情報、及び前記ファイルが他の環境で共有されているか否かを示す共有情報を含むファイルマッピング情報を、前記環境ごとに記憶し、
前記方法は、
前記記憶装置に格納されたファイルを読み出す場合には、前記プロセッサが、前記計算機で提供されている環境に対応するファイルマッピング情報から、当該ファイルに対応するファイル位置情報を特定し、
前記特定されたファイル位置情報に基づいて、前記読み出し対象のファイルを取得し、
前記記憶装置にファイルを格納する場合には、前記プロセッサが、前記格納されるファイルを識別するためのファイル識別情報を生成し、
前記プロセッサが、前記生成されたファイル識別情報と同じファイル識別情報を含み、かつ、前記計算機で提供されている環境とは別の環境に対応するファイルマッピング情報を抽出し、
前記別の環境に対応するファイルマッピング情報が抽出された場合には、前記プロセッサが、前記抽出されたファイルマッピング情報から、前記格納されるファイルに対応するファイル位置情報を取得し、
前記プロセッサが、前記計算機で提供されている環境に対応し、かつ、前記格納されるファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記取得されたファイル位置情報、及び他の環境でファイルが共有されていることを示す共有情報を設定し、
前記プロセッサが、前記別の環境に対応するファイルマッピング情報に含まれる共有情報に、前記他の環境でファイルが共有されていることを示す情報を設定し、
前記別の環境に対応するファイルマッピング情報が抽出されなかった場合には、前記プロセッサが、前記取得されたファイル位置情報を設定し、
前記格納されるファイルに対応するファイルマッピング情報に、ファイルが共有されていないことを示す情報を設定することを特徴とするファイル管理方法。 - 前記方法は、さらに、
前記記憶装置に格納されたファイルを更新する場合には、前記プロセッサが、前記計算機で提供されている環境に対応するファイルマッピング情報に基づいて、前記更新されるファイルが前記計算機で提供されている環境とは別の環境で共有されているか否かを判定し、
前記更新されるファイルが別の環境で共有されている場合には、前記プロセッサが、前記更新されるファイルを共有している別の環境の数が1であるか否かを判定し、
前記ファイルを共有している別の環境の数が1である場合には、前記ファイルを共有している別の環境に対応するファイルマッピング情報の共有情報をファイルが共有されていないことを示す情報に更新し、
前記プロセッサが、前記記憶装置に更新後のファイルを格納することを特徴とする請求項1に記載のファイル管理方法。 - 前記方法は、
前記記憶装置に格納されたファイルを更新する場合には、前記プロセッサが、更新後のファイルを前記記憶装置に格納し、
前記プロセッサが、前記ファイルの更新を要求した要求元に応答した後に、前記更新後のファイルを識別するためのファイル識別情報を生成し、
前記別の環境に対応するファイルマッピング情報が抽出されなかった場合には、前記プロセッサが、前記計算機で提供されている環境に対応し、かつ、前記更新後のファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記更新後のファイルのファイル位置情報、及び他の環境でファイルが共有されていないことを示す共有情報を設定し、
前記別の環境に対応するファイルマッピング情報が抽出された場合には、前記プロセッサが、前記抽出されたファイルマッピング情報から、前記更新後のファイルに対応するファイル位置情報を取得し、
前記プロセッサが、前記計算機で提供されている環境に対応し、かつ、前記更新後のファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記取得されたファイル位置情報、及び他の環境でファイルが共有されていることを示す共有情報を設定し、
前記プロセッサが、前記更新後のファイルを前記記憶装置から削除することを特徴とする請求項1に記載のファイル管理方法。 - 前記ファイル識別情報は、前記ファイルの内容に基づいて生成されたハッシュ値であることを特徴とする請求項1に記載のファイル管理方法。
- 前記ハッシュ値のサイズは、前記ファイルのサイズに基づいて生成されることを特徴とする請求項4に記載のファイル管理方法。
- 前記ハッシュ値のサイズは、前記計算機によって提供される環境の数に基づいて生成されることを特徴とする請求項4に記載のファイル管理方法。
- 前記計算機は、
複数の仮想計算機を実行可能であり、
前記仮想計算機ごとに、前記環境が提供され、外部の管理プログラムによって前記仮想計算機の制御を行うことを可能とすることを特徴とする請求項1に記載のファイル管理方法。 - 前記方法は、前記プロセッサが、他の仮想計算機によって利用されうる情報を、高速アクセスが可能な領域に配置することを特徴とする請求項7に記載のファイル管理方法。
- 複数の環境を提供可能な計算機であって、
プロセッサ及び前記プロセッサに接続されるメモリを備え、前記各環境で利用されるファイルを格納する記憶装置を管理し、
前記メモリは、前記ファイルが格納された位置を示すファイル位置情報、前記ファイルを識別するファイル識別情報、及び前記ファイルが他の環境で共有されているか否かを示す共有情報を含むファイルマッピング情報を、前記環境ごとに記憶し、
前記プロセッサは、
前記記憶装置に格納されたファイルを読み出す場合には、前記計算機で提供されている環境に対応するファイルマッピング情報から、当該ファイルに対応するファイル位置情報を特定し、
前記特定されたファイル位置情報に基づいて、前記読み出し対象のファイルを取得し、
前記記憶装置にファイルを格納する場合には、前記格納されるファイルを識別するためのファイル識別情報を生成し、
前記生成されたファイル識別情報と同じファイル識別情報を含み、かつ、前記計算機で提供されている環境とは別の環境に対応するファイルマッピング情報を抽出し、
前記別の環境に対応するファイルマッピング情報が抽出された場合には、前記抽出されたファイルマッピング情報から、前記格納されるファイルに対応するファイル位置情報を取得し、
前記計算機で提供されている環境に対応し、かつ、前記格納されるファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記取得されたファイル位置情報、及び他の環境でファイルが共有されていることを示す共有情報を設定し、
前記別の環境に対応するファイルマッピング情報に含まれる共有情報に、前記他の環境でファイルが共有されていることを示す情報を設定し、
前記別の環境に対応するファイルマッピング情報が抽出されなかった場合には、前記格納されるファイルに対応するファイルマッピング情報に、前記ファイル識別情報、前記ファイル位置情報、及び他の環境でファイルが共有されていないことを示す共有情報を設定することを特徴とする計算機。 - 前記プロセッサは、
前記記憶装置に格納されたファイルを更新する場合には、前記計算機で提供されている環境に対応するファイルマッピング情報に基づいて、前記更新されるファイルが前記計算機で提供されている環境とは別の環境で共有されているか否かを判定し、
前記更新されるファイルが別の環境で共有されている場合には、前記更新されるファイルを共有している別の環境の数が1であるか否かを判定し、
前記ファイルを共有している別の環境の数が1である場合には、前記ファイルを共有している別の環境に対応するファイルマッピング情報の共有情報をファイルが共有されていないことを示す情報に更新し、
前記記憶装置に更新後のファイルを格納することを特徴とする請求項9に記載の計算機。 - 前記方法は、
前記記憶装置に格納されたファイルを更新する場合には、更新後のファイルを前記記憶装置に格納し、
前記ファイルの更新を要求した要求元に応答した後に、前記更新後のファイルを識別するためのファイル識別情報を生成し、
前記別の環境に対応するファイルマッピング情報が抽出されなかった場合には、前記計算機で提供されている環境に対応し、かつ、前記更新後のファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記更新後のファイルのファイル位置情報、及び他の環境でファイルが共有されていないことを示す共有情報を設定し、
前記別の環境に対応するファイルマッピング情報が抽出された場合には、前記抽出されたファイルマッピング情報から、前記更新後のファイルに対応するファイル位置情報を取得し、
前記計算機で提供されている環境に対応し、かつ、前記更新後のファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記取得されたファイル位置情報、及び他の環境でファイルが共有されていることを示す共有情報を設定し、
前記更新後のファイルを前記記憶装置から削除することを特徴とする請求項9に記載の計算機。 - 前記ファイル識別情報は、前記ファイルの内容に基づいて生成されたハッシュ値であることを特徴とする請求項9に記載の計算機。
- 前記ハッシュ値のサイズは、前記ファイルのサイズに基づいて生成されることを特徴とする請求項12に記載の計算機。
- 前記ハッシュ値のサイズは、前記計算機によって提供される環境の数に基づいて生成されることを特徴とする請求項12に記載の計算機。
- 前記計算機は、
複数の仮想計算機を実行可能であり、
前記仮想計算機ごとに、前記環境が提供され、管理プログラムにより仮想計算機の制御を行うことを可能とすることを特徴とする請求項9に記載の計算機。 - 前記計算機は、他の仮想計算機によって利用されうる情報を、高速アクセスが可能な領域に配置することを特徴とする請求項15に記載の計算機。
- 複数の環境を提供可能な計算機に実行させるファイル管理プログラムであって、
前記計算機は、
前記各環境で利用されるファイルを格納する記憶装置を管理し、
前記ファイルが格納された位置を示すファイル位置情報、前記ファイルを識別するファイル識別情報、及び前記ファイルが他の環境で共有されているか否かを示す共有情報を含むファイルマッピング情報を、前記環境ごとに記憶し、
前記プログラムは、
前記記憶装置に格納されたファイルを読み出す場合には、前記計算機で提供されている環境に対応するファイルマッピング情報から、当該ファイルに対応するファイル位置情報を特定する手順と、
前記特定されたファイル位置情報に基づいて、前記読み出し対象のファイルを取得する手順と、
前記記憶装置にファイルを格納する場合には、前記格納されるファイルを識別するためのファイル識別情報を生成する手順と、
前記生成されたファイル識別情報と同じファイル識別情報を含み、かつ、前記計算機で提供されている環境とは別の環境に対応するファイルマッピング情報を抽出する手順と、
前記別の環境に対応するファイルマッピング情報が抽出された場合には、前記抽出されたファイルマッピング情報から、前記格納されるファイルに対応するファイル位置情報を取得する手順と、
前記計算機で提供されている環境に対応し、かつ、前記格納されるファイルに対応するファイルマッピング情報に、前記生成されたファイル識別情報、前記取得されたファイル位置情報、及び他の環境でファイルが共有されていることを示す共有情報を設定する手順と、
前記別の環境に対応するファイルマッピング情報に含まれる共有情報に、前記他の環境でファイルが共有されていることを示す情報を設定する手順と、含むことを特徴とするファイル管理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009162494A JP2011018206A (ja) | 2009-07-09 | 2009-07-09 | ファイル管理方法、計算機、及びファイル管理プログラム |
PCT/JP2010/054160 WO2011004634A1 (ja) | 2009-07-09 | 2010-03-05 | ファイル管理方法、計算機、及びファイル管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009162494A JP2011018206A (ja) | 2009-07-09 | 2009-07-09 | ファイル管理方法、計算機、及びファイル管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011018206A true JP2011018206A (ja) | 2011-01-27 |
JP2011018206A5 JP2011018206A5 (ja) | 2011-04-07 |
Family
ID=43429060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009162494A Withdrawn JP2011018206A (ja) | 2009-07-09 | 2009-07-09 | ファイル管理方法、計算機、及びファイル管理プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2011018206A (ja) |
WO (1) | WO2011004634A1 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3157235B2 (ja) * | 1991-11-26 | 2001-04-16 | 沖電気工業株式会社 | データ管理装置 |
JPH06266541A (ja) * | 1993-03-15 | 1994-09-22 | Hitachi Ltd | 成果物の版管理方法 |
JP5026213B2 (ja) * | 2007-09-28 | 2012-09-12 | 株式会社日立製作所 | ストレージ装置及びデータ重複排除方法 |
WO2009066611A1 (ja) * | 2007-11-20 | 2009-05-28 | Nec Corporation | 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム |
-
2009
- 2009-07-09 JP JP2009162494A patent/JP2011018206A/ja not_active Withdrawn
-
2010
- 2010-03-05 WO PCT/JP2010/054160 patent/WO2011004634A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2011004634A1 (ja) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078147B (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
US8515911B1 (en) | Methods and apparatus for managing multiple point in time copies in a file system | |
KR100974156B1 (ko) | 파일 서버 재초기화 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 | |
CN109684282B (zh) | 一种构建元数据缓存的方法及装置 | |
US20100036872A1 (en) | Data management method | |
US10353636B2 (en) | Write filter with dynamically expandable overlay | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
JP2016517122A (ja) | システムメモリから不揮発性データストレージに移行されるアプリケーションプログラムデータの選択的保持 | |
JP2005276192A (ja) | データ記憶容量を増大させるための方法及び装置 | |
JPH11134117A (ja) | コンピュータシステム | |
JP2006268139A (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
WO2018076633A1 (zh) | 一种远程数据复制方法、存储设备及存储*** | |
US11687533B2 (en) | Centralized storage for search servers | |
US9507657B2 (en) | Investigation program, information processing apparatus, and information processing method | |
US10055139B1 (en) | Optimized layout in a two tier storage | |
CN109189480B (zh) | 文件***启动方法及装置 | |
CN107832097B (zh) | 数据加载方法及装置 | |
JP6033420B2 (ja) | ストレージシステムおよびストレージシステムの制御方法 | |
KR102105478B1 (ko) | 고 쓰루풋, 고 신뢰성의 데이터 처리 시스템 | |
US9235349B2 (en) | Data duplication system, data duplication method, and program thereof | |
US20170039110A1 (en) | Computer | |
US11093169B1 (en) | Lockless metadata binary tree access | |
US10628391B1 (en) | Method and system for reducing metadata overhead in a two-tier storage architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110217 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110217 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110916 |