(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024172428
(43)【公開日】2024-12-12
(54)【発明の名称】ファイル共有装置およびファイルシステム間のデータ移行方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20241205BHJP
H04L 67/1095 20220101ALI20241205BHJP
G06F 16/28 20190101ALI20241205BHJP
【FI】
G06F3/06 301X
G06F3/06 304F
H04L67/1095
G06F16/28
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023090141
(22)【出願日】2023-05-31
(71)【出願人】
【識別番号】591275481
【氏名又は名称】株式会社アイ・オー・データ機器
(74)【代理人】
【識別番号】110000844
【氏名又は名称】弁理士法人クレイア特許事務所
(72)【発明者】
【氏名】武石 尊之
(72)【発明者】
【氏名】中林 健太
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA02
(57)【要約】
【課題】移行元のファイル記憶装置からデータ移行する場合において、データ移行中であっても移行後と同じように利用することができるファイル共有装置を提供する。
【解決手段】クライアントPC300および移行元ファイル記憶装置200に接続されるファイル共有装置100であって、移行用仮想ファイルシステム制御部120、移行元ファイルシステム制御部160、自機の記憶装置のファイルシステム制御部140、および自機のファイルの状態を示す管理情報135を備え、移行用仮想ファイルシステム制御部120は、順次ファイルを読み出して自機の記憶装置150のファイルシステムにファイルデータを移行するとともに、クライアントPC300からファイルに対する要求を受けた場合に、管理情報135に基づいてファイルが自機の記憶装置150のファイルシステムに存在する場合と同じ応答を返す。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クライアントPCにネットワークを介して通信可能に接続され、移行元ファイル記憶装置にネットワークを介してまたは直接接続されるファイル共有装置であって、
移行用仮想ファイルシステム制御部、移行元ファイルシステム制御部、自機の記憶装置のファイルシステム制御部、および前記自機の記憶装置のファイルの状態を示す管理情報を保存する管理情報部を備え、
前記移行用仮想ファイルシステム制御部は、前記管理情報を作成、更新し、
前記移行元ファイルシステム制御部を経由して順次ファイルを読み出して前記自機の記憶装置のファイルシステムにファイルデータを移行するとともに、
前記クライアントPCから、共有するファイルに対する要求を受けた場合に、前記管理情報に基づいて前記移行元ファイルシステム制御部、および/または、前記自機の記憶装置のファイルシステム制御部に指示して、ファイルが前記自機の記憶装置のファイルシステムに存在する場合と同じ応答を返す、ファイル共有装置。
【請求項2】
前記管理情報は、
各フォルダごとに、存在しない場合には、フォルダ内のデータ移行処理の開始前、または、クライアントPCからのファイル読出しまたは書込み要求を処理する前に作成され、
移行元ファイルシステムからのコピー書込み、および、前記クライアントPCからの要求に応じた書込みに対して、書込み済みサイズ、および、全体ファイルサイズが変更された場合には全体ファイルサイズが更新されるとともに、
データ移行中に前記クライアントPCからの要求に応じて削除されたファイルには削除フラッグが付与され、
前記移行用仮想ファイルシステム制御部は、
前記クライアントPCからデータの読出し要求を受けた場合に、前記管理情報を参照して前記自機の記憶装置のファイルシステムに該当するデータが存在するかどうかを確認し、存在しない場合には、前記移行元ファイルシステムの該当するデータを読出して前記クライアントPCに提供し、
前記移行元ファイルシステムからのデータ移行の場合には、前記管理情報を参照して、削除フラッグが付与されていないファイルの書き込まれていない部分にコピー書込みし、
各書込みおよびコピー書込み後には前記管理情報を更新する、請求項1に記載のファイル共有装置。
【請求項3】
前記クライアントPCからデータの読出し要求を受けた場合で、前記自機の記憶装置のファイルシステムに該当するデータが存在しない場合において、前記移行元ファイルシステムの該当するデータを読出して前記クライアントPCに提供した後、読み出したデータを前記自機の記憶装置のファイルシステムに書き込みする、請求項2に記載のファイル共有装置。
【請求項4】
前記クライアントPCからフォルダ内のファイルへの読出しまたは書込み要求を受けた場合、または、前記移行元ファイルシステムからのフォルダ内のファイルへの前記データ移行処理の開始前には、前記管理情報の参照がロックされ、
前記読出しまたは書込み要求に対する処理、または前記データ移行処理が完了すると前記管理情報の参照のロックが解除され、
前記管理情報の参照が他のプロセスによってロックされている場合には、前記管理情報を参照するプロセスはロックが解除されるまで待機する、請求項3に記載のファイル共有装置。
【請求項5】
前記クライアントPCからデータの読出し要求を受けた場合、前記移行元ファイルシステムの該当するデータを読出して前記クライアントPCに提供した後、ファイルの冒頭から読出し要求を受けた部分までのデータを前記自機の記憶装置のファイルシステムに書き込む、請求項3に記載のファイル共有装置。
【請求項6】
前記移行元ファイル記憶装置に保持されている設定情報を自機に継承する設定情報継承部を備え、
移行元ファイルシステムから前記自機の記憶装置のファイルシステムへのデータ移行は、前記設定情報継承部による設定情報の継承が完了した後に開始される、請求項1に記載のファイル共有装置。
【請求項7】
前記移行元ファイル記憶装置はファイル共有装置であって、
前記クライアントPCによるアクセスを前記移行元ファイル記憶装置から自機に切り換えさせるために、前記移行元ファイル記憶装置および自機のネットワーク設定を切り換えるネットワーク設定切換部をさらに備え、
前記移行元ファイルシステムから前記自機の記憶装置のファイルシステムへのデータ移行は、前記設定情報継承部による設定情報の継承と前記ネットワーク設定切換部によるアクセス切換が完了した後に開始される、請求項6に記載のファイル共有装置。
【請求項8】
前記移行用仮想ファイルシステム制御部は、前記移行元ファイルシステム制御部を介することなく、直接、前記移行元ファイル記憶装置にアクセスする、請求項1から7のいずれか1項に記載のファイル共有装置。
【請求項9】
移行元ファイルシステムから移行先ファイルシステムへデータを移行させる方法であって、
データ移行の前に、前記移行元ファイルシステムの有する設定情報を前記移行先ファイルシステムに継承させる設定情報継承ステップと、
クライアントPCからのアクセスを前記移行元ファイルシステムから前記移行先ファイルシステムに切り換えさせるために、前記移行元ファイルシステムおよび前記移行先ファイルシステムのネットワーク設定を切り換えるアクセス切換ステップと、
前記アクセス切換ステップ終了後に、前記移行元ファイルシステムに保持されているデータを前記移行先ファイルシステムに移行させるデータ移行ステップと、
前記データ移行ステップと並行して、前記クライアントPCからのアクセスを処理するアクセス処理ステップとを備え、
前記アクセス処理ステップにおいて、共有するファイルに対する要求を受けた場合に、前記移行先ファイルシステムのファイルの状態を示す管理情報に基づいて、前記移行元ファイルシステムおよび/または前記移行先ファイルシステムにアクセスして、ファイルが前記移行先ファイルシステムに存在する場合と同じ応答を返す、データ移行方法。
【請求項10】
移行元ファイルシステムから移行先ファイルシステムへデータを移行させる方法であって、
前記移行元ファイルシステムに保持されているデータを前記移行先ファイルシステムに移行させるデータ移行ステップと、
前記データ移行ステップと並行して、前記クライアントPCからのアクセスを処理するアクセス処理ステップとを備え、
前記アクセス処理ステップにおいて、共有するファイルに対する要求を受けた場合に、前記移行先ファイルシステムのファイルの状態を示す管理情報に基づいて、前記移行元ファイルシステムおよび/または前記移行先ファイルシステムにアクセスして、ファイルが前記移行先ファイルシステムに存在する場合と同じ応答を返す、データ移行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移行元のファイル記憶装置からのデータ移行を容易にするファイル共有装置、およびファイルシステム間のデータ移行方法に関する。
【背景技術】
【0002】
ファイル記憶装置間のデータ移行に関して、以下の特許文献が開示されている。
特許文献1(特開2005-84963号公報)には、既存のNASから新設のNASへのデータ移行とクライアントからのアクセス処理とを並列的に処理する発明が開示されている。
特許文献1に記載のファイル共有装置は、移行元ファイル共有装置及びホストコンピュータに通信ネットワークを介してそれぞれ通信可能に接続されるファイル共有装置において、移行元ファイル共有装置のファイルシステムに保持されているデータを自機のファイルシステムに移行させるデータ移行手段と、データ移行手段によるデータ移行処理中に、データ移行状態に応じて、ホストコンピュータからのアクセスを処理するアクセス処理手段とを備え、アクセス処理手段は、自機のファイルシステムから利用可能な状態のデータへのアクセスの場合は自機のファイルシステムからデータを提供し、自機のファイルシステムから利用不能な状態のデータへのアクセスの場合は移行元ファイル共有装置のファイルシステムからデータを提供させることを特徴とする。
【0003】
特許文献2(特開2003-173279号公報)には、複数のホストコンピュータと複数のファイルサーバ装置が相互結合された計算機システムにおいて、記憶装置間でのデータの移動をホストコンピュータに対して透過的に実施する方法が開示されている。
特許文献2に記載の新ファイルサーバ装置の移行手段は、NFS独自のファイル属性とCIFS独自のファイル属性の両方をコピーし、かつファイルアクセス時刻などの日付情報が変化しないように新ファイルサーバ装置へと格納する。また、ファイル移行処理中にホストからのファイルアクセスがあった場合、新ファイルサーバ装置に未移行のデータについては旧ファイルサーバ装置から読み出してアクセス処理を行うことで、自身が旧ファイルサーバ装置であるかのように動作する。
【0004】
特許文献3(特開2004-102374号公報)には、データ移行に伴うアクセスパス経路の変更を物理的に行うことによる遠隔作業の難しさを解決し、また、複雑な設定項目の入力が必要な移行先ストレージサブシステムに対する誤った設定によるデータ移行の失敗を削減する、データ移行装置を有する情報処理システムが開示されている。
特許文献3に記載の情報処理システムは、少なくとも一つの計算機、第一のストレージサブシステム、第二のストレージサブシステム、計算機、第一のストレージサブシステム、及び第二のストレージサブシステムを接続するネットワーク、及び第一のストレージサブシステムと第二のストレージサブシステムとに接続され、第一のストレージサブシステムが有して計算機がアクセス対象とする記憶領域を対象に、第一のストレージサブシステムから、ネットワークに接続される第二のストレージサブシステムへ移行し、それと共に計算機から記憶領域に対するアクセスパスを第一のストレージサブシステムから第二のストレージサブシステムへ切り替えるデータ移行処理を行うデータ移行装置を有する情報処理システムであって、データ移行装置は、計算機のネットワーク通信プロトコルが保持する第一のストレージサブシステムに関する情報の変更依頼を発信後、第一のストレージサブシステムに対する計算機からのアクセスを拒否することで、計算機から記憶領域へのアクセスパスを第一のストレージサブシステムから第二のストレージサブシステムへ変更することを特徴とする。
【0005】
特許文献4(特開2008-134712号公報)には、利用状況に応じた適切なデータ移行方法を選択し、効率的にデータを移行させるファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法が開示されている。
特許文献4に記載のファイル共有システムは、移行元ファイル共有装置から移行先ファイル共有装置に、ボリュームを移行させるファイル共有システムであって、上位装置と移行元ファイル共有装置と移行先ファイル共有装置とをそれぞれ接続するための第1通信経路と、第1通信経路とは別に設けられ、移行元ファイル共有装置と移行先ファイル共有装置とを互いに接続するための第2通信経路と、移行先ファイル共有装置内に移行先ボリュームを生成するための移行先ボリューム生成部と、移行元ファイル共有装置内の移行元ボリュームと移行先ボリューム生成部により生成される移行先ボリュームとを第2通信経路を介して接続し、移行元ボリュームと移行先ボリュームとを対応付けるボリューム接続部と、上位装置が第1通信経路を介して移行元ボリュームを利用する場合の利用率と予め設定された所定値とを比較することにより、移行元ボリュームの利用状況を判別するための利用状況判別部と、利用状況判別部による利用状況の判別結果に応じて、予め用意されている複数のデータ移行方法の中からいずれか一つのデータ移行方法を選択し、この選択されたデータ移行方法を用いて、移行元ボリュームに記憶されたデータを、移行先ボリュームに移行させるデータ移行部と、を備えている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005-84963号公報
【特許文献2】特開2003-173279号公報
【特許文献3】特開2004-102374号公報
【特許文献4】特開2008-134712号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来、ファイルサーバーまたはNAS(Network Attached Storage)などのファイル共有装置において、新たなファイル共有装置を設置し、使用中のファイル共有装置からデータを移行する場合、データ移行をファイルのコピーで実現していた。
しかし、この場合、移行元のファイル共有装置から移行先のファイル共有装置へのデータの移行が完了するまでの間、移行先のファイル共有装置を使用できないとの課題があった。そして、この以降に要する時間はファイル共有装置の大容量化に伴って増加してきた。
【0008】
特許文献1では、クライアントからアクセスされたファイルが移行先のファイル共有装置にまだコピーされていない場合、移行元のファイル共有装置にアクセスすることで、ファイル移行中においても移行先のファイル共有装置を使用できるようにしている。
しかし、特許文献1の方法では、「移行元アクセス中」および「コピー中」の場合はファイルデータを読み出し専用モードで提供することになっており、ファイル編集が行えないとの課題がある。
【0009】
また特許文献2には、移行処理中にホストからファイルあるいはファイル属性のリード要求があった場合、設定情報が新ファイルサーバ装置に移行されていない場合には、旧ファイルサーバ装置からデータを読み出して新ファイルサーバ装置へ書き込み、引き続いて、新ファイルサーバ装置から直接ファイル属性やデータを読み出し、ホストに結果を返すことが記載されている(特許文献3明細書段落[0043]-[0046]参照)。
しかし、この場合には、クライアントからアクセスを要求されたデータを、いったん新ファイルサーバ装置にコピーしてからクライアントに提供するため、新ファイルサーバ装置への書込みが完了するまでの間ホストにデータを提供することができず、サービスの応答性が低下するとの課題がある。
【0010】
特許文献3に記載の発明は、移行元ファイルシステムから移行先ファイルシステムへのアクセスパスの切り換え、および移行元ファイルシステムのアクセスの制限が主な特徴であり、ファイルコピーとファイルアクセスとの交錯に関しては記載されていない。
【0011】
特許文献4に記載の発明では、仮想ボリュームと移行対象ボリュームである移行元ボリュームとを対応付け、ボリューム移行が指示されると、利用率判定部は、移行元ボリュームの利用率と指定された閾値とを比較する。利用率が閾値以上の場合、ボリュームコピーが選択される。ボリュームコピー部は、仮想ボリュームから移行先ボリュームに、ブロックレベルでデータをコピーさせる。利用率が閾値未満の場合、ファイルコピーが選択される。
しかし、ボリュームコピーでは、コピー元とコピー先の容量が異なっていているとコピーができない、例えばコピー元がクラウド上のファイルシステムの場合、コピーができない、不要なデータもコピーされてしまうなどの課題がある。
【0012】
本発明の主な目的は、移行元のファイル記憶装置からデータ移行する場合において、データ移行中であっても移行完了後と同じように利用することができるファイル共有装置、およびファイル記憶装置間のデータ移行方法を提供することにある。
本発明のその他の目的は、クラウド上のファイルシステムやUSBHDDなどにバックアップしたデータからの復元が容易なファイル共有装置を提供することにある。
【課題を解決するための手段】
【0013】
(1)
一局面に従うファイル共有装置は、クライアントPCにネットワークを介して通信可能に接続され、移行元ファイル記憶装置にネットワークを介して、または直接接続されるファイル共有装置であって、移行用仮想ファイルシステム制御部、移行元ファイルシステム制御部、自機の記憶装置のファイルシステム制御部、および自機の記憶装置のファイルの状態を示す管理情報を保存する管理情報部を備え、移行用仮想ファイルシステム制御部は、管理情報を作成、更新し、移行元ファイルシステム制御部を経由して順次ファイルを読み出して自機の記憶装置のファイルシステムにファイルデータを移行するとともに、クライアントPCから、共有するファイルに対する要求を受けた場合に、管理情報に基づいて移行元ファイルシステム制御部、および/または、自機の記憶装置のファイルシステム制御部に指示して、ファイルが自機の記憶装置のファイルシステムに存在する場合と同じ応答を返す。
【0014】
従来、移行元のファイル記憶装置から新しいファイル共有装置にデータを移行する場合、データ移行中は移行元のファイル記憶装置および移行先のファイル共有装置の使用を停止して、データ移行が完了してからファイル共有装置の使用を再開していた。
しかし、最近ではファイル共有装置の大容量化に伴いデータ移行の時間が長時間化し、この、データ移行中にファイル共有装置が使用できないことは、ファイル共有装置の利用者にとって大きな課題となってきた。
特許文献1では、この課題の解決策として、ファイルのコピー状態に応じてファイルへの
アクセス処理を変更することで、ファイル移行中でもファイル共有装置を使用することのできるファイル共有装置を開示している。具体的には、データ移行が行われていないファイルへのアクセスに対しては移行元のファイルシステムからデータを提供し、データ移行中のファイルへのアクセスに対しては移行元のファイルシステムから読み出し専用モードでデータを提供し、データ移行が完了したファイルへのアクセスに対しては自機のファイルシステムからデータを提供する、などである。
しかし、この方法には2つの課題がある。
第1の課題は、データ移行中のファイルにアクセスした場合には、読み出し専用モードでしかファイルにアクセスできないことである。すなわち、データ移行中のファイルにアクセスした場合、ファイルを編集することができないことから、利用者にとって利便性が悪い。
第2の課題は、データ移行が行われていないファイルにアクセスした場合、ファイルを編集することはできるが、ファイルを編集した場合、移行元のファイル共有装置への書込みが発生することである。そして、移行元のファイル共有装置へ書込みを行った場合、移行元のファイル共有装置(搭載するHDDなど)が故障するリスクが高くなる。
【0015】
一局面に従うファイル共有装置では、移行用仮想ファイルシステム制御部および自機の記憶装置の各フォルダのファイルの状態を示す管理情報を備え、クライアントPCから、自機の記憶装置内のファイルの一覧、情報取得、ファイルデータの読出し、およびファイルデータの書込みのなど要求を受けた場合に、管理情報に基づいて移行元ファイルシステム制御部、および/または、自機の記憶装置のファイルシステム制御部に指示して、ファイルが自機の記憶装置のファイルシステムに存在する場合と同じ応答を返すことができる。
なお、移行元ファイル記憶装置としては、複数のクライアントPCからネットワークを経由してアクセスでき、アクセス制限により情報セキュリティが担保されたファイル共有装置が使用できるが、一局面のファイル共有装置は、例えばクラウド上のファイルシステム、または、自機に直接接続されたUSBHDDから自機の記憶装置のファイルシステムへのバックアップからの復元などにも使用可能である。また、複数の移行元ファイル記憶装置から自機の記憶装置のファイルシステムにデータ移行する場合にも使用可能である。
【0016】
(2)
第2の発明に係るファイル共有装置は、一局面に従うファイル共有装置において、管理情報は、各フォルダごとに、存在しない場合には、フォルダ内のデータ移行処理の開始前、または、クライアントPCからのファイル読出しまたは書込み要求を処理する前に作成され、移行元ファイルシステムからのコピー書込み、および、クライアントPCからの要求に応じた書込みに対して、書込み済みサイズ、および、全体ファイルサイズが変更された場合には全体ファイルサイズが更新されるとともに、データ移行中にクライアントPCからの要求に応じて削除されたファイルには削除フラッグが付与され、移行用仮想ファイルシステム制御部は、クライアントPCからデータの読出し要求を受けた場合に、管理情報を参照して自機の記憶装置のファイルシステムに該当するデータが存在するかどうかを確認し、存在しない場合には、移行元ファイルシステムの該当するデータを読出し、移行元ファイルシステムからのデータ移行の場合には、管理情報を参照して、削除フラッグが付与されていないファイルの書き込まれていない部分にコピー書込みし、各書込みおよびコピー書込み後には管理情報を更新するようにしてもよい。
【0017】
特許文献2には、移行処理中にホストからファイルあるいはファイル属性の読出し要求があった場合、設定情報が新ファイルサーバ装置に移行されていない場合には、旧ファイルサーバ装置からデータを読み出して新ファイルサーバ装置へ書き込み、引き続いて、新ファイルサーバ装置から直接ファイル属性やデータを読み出し、ホストに結果を返すことが記載されている。この方法では、移行先ファイルサーバからクライアントPCにデータを提供するため、データを編集することが可能であり、また、移行元のファイル共有装置へ書込みを行う必要もない。
しかし、特許文献1明細書段落[0008]にも記載されているように、この方法では、クライアントからアクセスを要求されたデータを、いったん移行先ファイルサーバにコピーしてからクライアントに提供するため、クライアントPCの待機時間が長くなり、サービスの応答性が低下するとの課題がある。
これに対して、第2の発明に係るファイル共有装置では、自機の記憶装置のファイルシステムに該当するデータが存在しない場合、まず、移行元ファイルシステムの該当するデータを読出してクライアントPCに提供するため、クライアントPCのデータ読出し時の待機時間を短縮することができる。
【0018】
また、データ移行中にクライアントPCからの要求に応じて削除されたファイルには削除フラッグが付与され、さらに移行元ファイルシステムからのデータ移行の場合には管理情報を参照してコピー書込みを行うため、削除されたファイルをコピー書込みによって誤って復元することがない。
【0019】
(3)
第3の発明に係るファイル共有装置は、第2の発明に係るファイル共有装置において、クライアントPCからデータの読出し要求を受けた場合で、自機の記憶装置のファイルシステムに該当するデータが存在しない場合において、移行元ファイルシステムの該当するデータを読出してクライアントPCに提供した後、読み出したデータを自機の記憶装置のファイルシステムに書き込みするようにしてもよい。
【0020】
この場合、読み出したデータを自機の記憶装置のファイルシステムに書き込みすることによって、一度読出したデータをクライアントPC300から再度要求された場合に応答を速くすることができる。
なお、移行元からの対象データの読出しが速い場合、または、一度読出したデータをクライアントPC300から再度要求された場合の応答を速くする必要がない場合には、移行先にデータを書き込まなくてもよい。この場合には、移行元のファイルシステムからのデータ移行時に移行先にデータが書き込まれる。
【0021】
(4)
第4の発明に係るファイル共有装置は、第3の発明に係るファイル共有装置において、クライアントPCからフォルダ内のファイルへの読出しまたは書込み要求を受けた場合、または、移行元ファイルシステムからのフォルダ内のファイルへのデータ移行処理の開始前には、管理情報の参照がロックされ、アクセス要求に対する処理、またはファイル移行処理が完了すると管理情報の参照がアンロックされ、管理情報の参照が他のプロセスによってロックされている場合には、管理情報を参照するプロセスはロックが解除されるまで待機するようにしてもよい。
【0022】
データ移行とクライアントPCからの読み出し、または書込み処理などのアクセス処理を並行して行う場合、データ移行とクライアントPCからのアクセス処理との排他制御が重要である。
第3の発明に係るファイル共有装置では、データ移行時のコピー書込み、およびクライアントPCからのアクセス処理時の書込みの前に管理情報の参照をロックし、コピー書込みまたは書込みの前に管理情報を参照してからコピー書込みまたは書込みを行う。したがって、例えば、書き込み中に同じ対象フォルダ内のファイルにコピー書込みを行おうとすると管理情報の参照のロックが解除されるまで待機することになり、確実に排他制御を行うことができる。この場合、容量の大きなファイルをコピー書込みする場合には、コピー書込みを複数回に分けて行い、コピー書込みとコピー書込みとの間に一度ロックを解除することによってクライアントPCによるアクセス処理の待機時間を短くすることが望ましい。
また、排他制御はデータ移行とクライアントPCからのアクセス処理との間だけではなく、異なるクライアントPCからのアクセス処理が同時に発生した場合にも必要である。例えば、あるファイルへのWRITEシステムコール処理中に、同じフォルダ内のファイルへのREADシステムコールが発生した場合などである。このような場合にも、第3の発明に係るファイル共有装置では、同時に同じ管理情報へのアクセスが発生するため、一方のプロセスが、管理情報の参照のロックが解除されるまで待機することになり、排他制御が確実に行われる。
【0023】
(5)
第5の発明に係るファイル共有装置は、第3の発明に係るファイル共有装置において、クライアントPCからデータの読出し要求を受けた場合、移行元ファイルシステムの該当するデータを読出してクライアントPCに提供した後、ファイルの冒頭から読み出し要求を受けた部分までのデータを自機の記憶装置のファイルシステムに書き込むようにしてもよい。
【0024】
この場合、データ移行の場合だけでなく、データ読出しの場合にも、ファイルの冒頭から書込み済みの先端部まで常にすべての箇所の書込みが終わっており、したがって、管理情報の全体ファイルサイズと書込み済みサイズだけでファイルの状態(未書込み部分)を把握できるとの利点がある。
【0025】
(6)
第6の発明に係るファイル共有装置は、一局面に従うファイル共有装置において、移行元ファイル記憶装置に保持されている設定情報を自機に継承する設定情報継承部を備え、移行元ファイルシステムから自機の記憶装置のファイルシステムへのデータ移行は、設定情報継承部による設定情報の継承が完了した後に開始されるようにしてもよい。
【0026】
移行元のファイル共有装置から移行先のファイル共有装置へのデータ移行にあたっては、事前にユーザー、グループ、共有フォルダの設定などの設定情報を継承しておく必要がある。ユーザー数、グループ数、または共有フォルダ数が多い場合には、この設定情報の継承にも最大1時間程度の時間を要する場合がある。
第5の発明に係るファイル共有装置では、データ移行を始める前に移行元ファイル記憶装置に保持されている設定情報を自機の記憶装置のファイルシステムに継承することにより、データ移行開始後に設定情報を自機の記憶装置のファイルシステムに継承する場合と比較して、移行先のファイル共有装置を利用開始できるまでの時間を短縮することができる。
【0027】
(7)
第7の発明に係るファイル共有装置は、第6の発明に係るファイル共有装置において、移行元ファイル記憶装置はファイル共有装置であって、クライアントPCによるアクセスを移行元ファイル記憶装置から自機に切り換えさせるために、移行元ファイル記憶装置および自機のネットワーク設定を切り換えるネットワーク設定切換部をさらに備え、移行元ファイルシステムから自機の記憶装置のファイルシステムへのデータ移行は、設定情報継承部による設定情報の継承とネットワーク接続切換部によるアクセス切換が完了した後に開始されるようにしてもよい。
【0028】
移行元ファイル記憶装置がファイル共有装置である場合、クライアントPCはネットワークを経由して移行元および移行先のファイル共有装置に接続される。この場合、移行前の移行元のファイル共有装置のネットワーク設定と、移行後の移行先のファイル共有装置のネットワーク設定とが異なると、全てのクライアントPCの設定を変更する必要があり、煩雑である。
第6の発明に係るファイル共有装置では、ネットワーク設定切換部をさらに備え、移行元ファイル共有装置のネットワーク設定を別の値に変更し、自機のネットワーク設定を移行前の移行元ファイル共有装置のネットワーク設定の値に設定することによって、クライアントPCが移行前と移行後でクライアントPCの設定を変更することなくファイル共有装置を使用できるようにしている。
【0029】
(8)
第8の発明に係るファイル共有装置は、一局面から第7の発明に係るファイル共有装置において、移行用仮想ファイルシステム制御部は、移行元ファイルシステム制御部を介することなく、直接、移行元ファイル記憶装置にアクセスするようにしてもよい。
【0030】
この場合、移行元ファイルシステム制御部が必要なくなり、構成を簡略化できる。
【0031】
(9)
他の局面に従うデータ移行方法は、移行元ファイルシステムから移行先ファイルシステムへデータを移行させる方法であって、データ移行前に、移行元ファイルシステムの有する設定情報を移行先ファイルシステムに継承させる設定情報継承ステップと、クライアントPCからのアクセスを移行元ファイルシステムから移行先ファイルシステムに切り換えさせるために、移行元ファイルシステムと移行先ファイルシステムとのネットワーク設定を切り換えるアクセス切換ステップと、アクセス切換ステップ終了後に、移行元ファイルシステムに保持されているデータを移行先ファイルシステムに移行させるデータ移行ステップと、データ移行ステップと並行して、クライアントPCからのアクセスを処理するアクセス処理ステップとを備え、アクセス処理ステップにおいて、共有するファイルに対する要求を受けた場合に、移行先ファイルシステムのファイルの状態を示す管理情報に基づいて、移行元ファイルシステムおよび/または移行先ファイルシステムにアクセスして、ファイルが移行先ファイルシステムに存在する場合と同じ応答を返す。
【0032】
他の局面に従うデータ移行方法では、データ移行前に移行元ファイルシステムの有する設定情報を移行先ファイルシステムに継承した後、移行元ファイルシステムと移行先ファイルシステムとのネットワーク設定を切り換えてから、データ移行を開始するため、データ移行開始後はクライアントPCは移行元ファイルシステムにアクセスしたのと同じ方法で移行先ファイルシステムにアクセスすることができる。
また、他の局面に従うデータ移行方法では、移行先ファイルシステムのファイルの状態を示す管理情報を備え、クライアントPCから、自機の記憶装置内のファイルの一覧、情報取得、ファイルデータの読出し、およびファイルデータの書込みなどの要求を受けた場合に、管理情報に基づいて移行元ファイルシステム、および/または、移行先ファイルシステムにアクセスして、ファイルが移行先ファイルシステムに存在する場合と同じ応答を返すことができるので、利用者の利便性を高めることができる。
【0033】
(10)
さらに他の局面に従うデータ移行方法は、移行元ファイルシステムから移行先ファイルシステムへデータを移行させる方法であって、移行元ファイルシステムに保持されているデータを移行先ファイルシステムに移行させるデータ移行ステップと、データ移行ステップと並行して、クライアントPCからのアクセスを処理するアクセス処理ステップとを備え、アクセス処理ステップにおいて、共有するファイルに対する要求を受けた場合に、移行先ファイルシステムのファイルの状態を示す管理情報に基づいて、移行元ファイルシステムおよび/または移行先ファイルシステムにアクセスして、ファイルが移行先ファイルシステムに存在する場合と同じ応答を返す。
【0034】
さらに他の局面に従うデータ移行方法では、移行先ファイルシステムのファイルの状態を示す管理情報を備え、クライアントPCから、共有するファイルに対する要求を受けた場合に、管理情報に基づいて移行元ファイルシステム、および/または、移行先ファイルシステムにアクセスして、ファイルが移行先ファイルシステムに存在する場合と同じ応答を返すことができるので、利用者の利便性を高めることができる。
さらに他の局面に従うデータ移行方法は、USBHDDに保存したバックアップデータの復元など、移行元ファイルシステムと移行先ファイルシステムとが大幅に異なる場合、また、移行元ファイルシステムと移行先ファイルシステムとがネットワークで接続されていない場合などに有効である。
【図面の簡単な説明】
【0035】
【
図1】ファイル移行システムの全体構成およびファイル共有装置の構成の一例を示す模式図である。
【
図2】ファイル移行の全体フローの一例を示す模式的フローチャートである。
【
図3】ファイルオープン処理のフローの一例を示す模式的フローチャートである。
【
図4】ファイルリスト作成処理のフローの一例を示す模式的フローチャートである。
【
図5】データ移行処理のフローの一例を示す模式的フローチャートである。
【
図6】データ移行処理のうちのファイルコピー処理のフローの一例を示す模式的フローチャートである。
【
図7】ファイル読出し処理のフローの一例を示す模式的フローチャートである。
【
図8】ファイル共有制御部およびクライアントPCにおけるファイル読出し処理のフローの一例を示す模式的フローチャートである。
【
図9】ファイル書込み処理のフローの一例を示す模式的フローチャートである。
【
図10】ファイル削除処理のフローの一例を示す模式的フローチャートである。
【
図11】データ移行中の管理情報と各ファイルの状態の推移の一例を示す模式図の前半である。
【
図12】データ移行中の管理情報と各ファイルの状態の推移の一例を示す模式図の後半である。
【発明を実施するための形態】
【0036】
以下、図面を参照しつつ、本発明の実施形態について説明する。以下の説明では、同一の部品には同一の符号を付す。また、同符号の場合には、それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰り返さないものとする。
【0037】
[実施形態]
(ファイル移行システム500の全体構成およびファイル共有装置100の構成の説明)
図1は、ファイル移行システム500の全体構成およびファイル共有装置100の構成を示す模式図である。
図1において、ファイル共有装置100は移行元ファイル記憶装置200およびクライアントPC300とネットワーク(図示せず)を介して通信可能に接続されている。なお、移行元ファイル記憶装置200はUSBHDDなど、直接ファイル共有装置100に接続されるファイル記憶装置であってもよい。
ファイル共有装置100には、ファイル共有制御部110、移行用仮想ファイルシステム制御部120、設定情報継承部124、ネットワーク設定切換部126、管理情報部130、記憶装置ファイルシステム制御部140、HDDなどの記憶装置150、移行元ファイルシステム制御部160が含まれている。なお、上記区分は機能上の区分であって、物理的構成においてはファイル共有制御部110、移行用仮想ファイルシステム制御部120、設定情報継承部124、ネットワーク設定切換部126、管理情報部130、記憶装置ファイルシステム制御部140、移行元ファイルシステム制御部160などはCPUとメモリー等で構成されていてもよい。移行用仮想ファイルシステム制御部120には移行元ファイルシステムから移行先ファイルシステムへのデータ移行をつかさどるデータ移行機能122が含まれている。また、
図1では、移行用仮想ファイルシステム制御部120は移行元ファイルシステム制御部160を介して移行元ファイル記憶装置200と接続されているが、移行用仮想ファイルシステム制御部120は移行元ファイル記憶装置200のファイルシステムに直接接続するように構成してもよい。この場合は、移行元ファイルシステム制御部160は無くてもよい。
【0038】
図1において、ファイル共有制御部110はクライアントPC300からの要求を受けて、READ,WRITEなどのシステムコールを移行用仮想ファイルシステム制御部120に送り、移行用仮想ファイルシステム制御部120からの出力を受けてクライアントPC300に返信する。
管理情報部130は、自機の記憶装置内の各ファイルの状態を示す管理情報135を保存しており、管理情報135は対象フォルダごとにフォルダ内のデータ移行またはクライアントPC300からのファイルアクセス前に作成される。そして、移行元ファイルシステム制御部160からのコピー書込み、および、クライアントPC300からのアクセス要求に応じた書込みに対して、書込み済みサイズ、および、全体ファイルサイズが変更された場合には全体ファイルサイズが更新される。また、データ移行中にクライアントPC300からの要求に応じてファイルが削除された場合には、削除されたファイルに削除フラッグが付与される。ファイル移行中の各ファイルの状態の推移と、これに伴う管理情報135の変化については後述する。
【0039】
移行用仮想ファイルシステム制御部120は、移行元ファイルシステム制御部160から順次ファイルを読み出して自機の記憶装置150のファイルシステムにファイルデータを移行するとともに、クライアントPC300から、自機の記憶装置150内のファイルの一覧、情報取得、ファイルデータの読出し、およびファイルデータの書込みのなどのアクセス要求を受けた場合に、管理情報135に基づいて移行元ファイルシステム制御部160、および/または、自機の記憶装置150の記憶装置ファイルシステム制御部140に指示して、ファイルが自機の記憶装置150のファイルシステムに存在する場合と同じ応答を返す。
具体的には、移行用仮想ファイルシステム制御部120は、クライアントPC300からデータの読出し要求を受けた場合に、管理情報135の参照をロックした後、管理情報135を参照して記憶装置150に該当するデータが存在するかどうかを確認する。そして、存在する場合は記憶装置150のデータをクライアントPC300に提供し、存在しない場合には、移行元ファイル記憶装置200の該当するデータを読出してクライアントPC300に提供した後、ファイルの冒頭から読み出し要求を受けた部分までのデータを記憶装置ファイルシステム制御部140を介して記憶装置150に書き込む。
【0040】
移行用仮想ファイルシステム制御部120のデータ移行機能122は、移行元ファイル記憶装置200から記憶装置150へのデータ移行をつかさどり、まず、管理情報135の参照をロックした後、管理情報135を参照して、削除フラッグが付与されていないファイルの書き込まれていない部分にコピー書込みする。なお、一部のみ書き込まれているファイルの場合、必ずファイルの冒頭から書込み済みの先端部まで途中空白なく書き込まれているので、コピー書込みにおいては、書込み済みの先端部以降を書き込むことで、一部のデータ移行を忘れること、または、クライアントPC300からの指示により書き込まれたデータを移行元ファイル記憶装置200のデータで上書きしてしまうことがない。
なお、本実施形態では、必ずファイルの冒頭から書込み済みの先端部まで途中空白なく書き込むことで、管理情報に持つ情報を、書込み済みサイズ、および、全体ファイルサイズとしているが、管理情報に書込み済みデータのオフセットを個別に管理する情報を持ってもよい。この場合、必ずファイルの冒頭から書込む必要がなくなる代わりに、管理情報のサイズが増加する。
また、削除フラッグが付与されたファイルにはコピー書込みをしないため、クライアントPC300によって削除されたファイルを誤って移行元ファイル記憶装置200のデータで復活させることもない。
【0041】
図2はファイル移行の全体フローの一例を示す模式的フローチャートであり、
図3はファイルオープン処理のフローの一例を示す模式的フローチャートであり、
図4はファイルリスト作成処理のフローの一例を示す模式的フローチャートである。
図5はデータ移行処理のフローの一例を示す模式的フローチャートであり、
図6はデータ移行処理のうちのファイルコピー処理のフローの一例を示す模式的フローチャートである。
図7はファイル読出し処理のフローの一例を示す模式的フローチャートであり、
図8はファイル共有制御部およびクライアントPC300における、ファイル読出し処理のフローの一例を示す模式的フローチャートである。
図9はファイル書込み処理のフローの一例を示す模式的フローチャートであり、
図10はファイル削除処理のフローの一例を示す模式的フローチャートである。
【0042】
(データ移行方法の全体フローの説明)
図2において、移行元ファイル記憶装置200から移行先のファイル共有装置100の記憶装置150へのデータ移行にあたっては、まず、設定情報継承部124が移行元ファイルシステム制御部160および記憶装置ファイルシステム制御部140に指示して、ユーザー、グループ、共有フォルダの設定などの設定情報を移行元ファイル記憶装置200から自機の記憶装置150へ継承させる(ステップP1)。ユーザー数、グループ数、または共有フォルダ数が多い場合には、この設定情報の継承にも最大1時間程度の時間を要する場合がある。しかし、この設定情報の継承の間は、クライアントPC300は自由に移行元ファイル記憶装置200にアクセスすることができるため、利用者の利便性を損ねることはない。
次に、移行元ファイル記憶装置200がネットワークで接続されたファイル共有装置である場合には、ネットワーク設定切換部126が移行元ファイル記憶装置200に指示して、移行元ファイル記憶装置200のホスト名およびネットワーク設定を別のホスト名およびネットワーク設定に変更した後、自機のホスト名およびネットワーク設定を移行前の移行元ファイル記憶装置200のホスト名およびネットワーク設定に設定する(ステップP2)。
通常、ファイル共有装置100は複数のクライアントPC300からアクセスされる。したがって、移行元ファイル記憶装置200がファイル共有装置である場合には、移行元ファイル記憶装置200から移行先のファイル共有装置100にデータ移行する場合、移行前と移行後でホスト名および/またはネットワーク設定が異なると、全てのクライアントPC300の設定を変更する必要があり、煩雑である。本実施形態のファイル共有装置100では、自機のホスト名およびネットワーク設定を移行前の移行元ファイル記憶装置200のホスト名およびネットワーク設定に切り換えることにより、クライアントPC300は移行前と同じホスト名およびネットワーク設定で移行先のファイル共有装置100にアクセスすることができるようにしている。
なお、本実施形態のファイル共有装置100は、例えばUSBHDDに記録されたバックアップデータの復元などにも使用可能である。ただし、この場合は移行元ファイル記憶装置200はホスト名およびネットワーク設定を持たないため、アクセス切換は不要である。
【0043】
アクセス切換後、本実施形態のファイル共有装置100は移行元ファイル記憶装置200からのデータ移行(ステップP3)を開始する。ただし、データ移行中にクライアントPC300からファイル共有措置のファイルに読出し、書込みなどのアクセス要求があった場合には、並行してアクセス処理(ステップP4)を実行する。このデータ移行とアクセス処理の並行処理においては、例えば、データ移行とアクセス処理とで同時に同じファイルをアクセスすることの無いよう、排他制御が行われる。
この、データ移行、アクセス処理、および排他制御の詳細については、データ移行およびアクセス処理(読出し処理、書込み処理)のフローの中で説明する。
【0044】
(ファイルオープン処理のフローの説明)
図3にファイルオープン処理のフローを示す。なお、このフローは、
図1の移行用仮想ファイルシステム制御部120がクライアントPC300からファイル共有制御部110を介してファイルオープンを要求された場合の、移行用仮想ファイルシステム制御部120における処理のフローである。
図3において、移行用仮想ファイルシステム制御部120はまず管理情報135を参照のためロック(以下、管理情報参照ロックともいう)した後、管理情報部130に対象のフォルダの管理情報135が保存されているか確認する(ステップS01~S02)。すなわち、管理情報を他のプロセスが参照できないようにロックする。管理情報135が保存されていない場合は、移行元から対象のフォルダのリストを取得して管理情報135を生成、管理情報部130に保存する(ステップS03~S05)。管理情報135が記録されている場合は管理情報部130から管理情報135を取得する(ステップS06)。
その後、移行用仮想ファイルシステム制御部120は管理情報参照のロックを解除した後、ファイルのオープン処理を行う(ステップS07~S08)。
【0045】
(ファイルリスト作成処理フローの説明)
図4に移行用仮想ファイルシステム制御部120におけるファイルリスト作成処理のフローを示す。システムコールから管理情報保存または取得までのフロー(ステップS11~S16)はファイルオープン処理のフローと同一である。その後、移行用仮想ファイルシステム制御部120は、管理情報135からリストを作成し、管理情報参照のロックを解除してからファイルリストを返す(ステップS17~S18)。
【0046】
(データ移行処理のフローの説明)
図5にデータ移行処理の全体フローを示す。このフローは、主として
図1の移行用仮想ファイルシステム制御部120の中のデータ移行機能122が担当する処理のフローである。なお、ファイルコピー処理のフローの詳細は、
図6に示す。
データ移行処理ではまず対象フォルダを選択した後、対象フォルダ内の各フォルダまたはファイルに対して、管理情報取得または生成処理(ステップS23~S29)と、フォルダ作成処理(ステップS31~S36)またはファイルコピー処理(ステップS40~S53)を行う。
管理情報生成または取得処理(ステップS23~S29)では、管理情報参照をロック(ステップS23)した後、管理情報135を生成または取得し、そのファイルがクライアントPC300により削除済み(削除フラッグY)の場合は、管理情報参照をアンロックしたうえでフォルダ/ファイル選択に戻る(ステップS28,S29)。
なお、管理情報参照をロックするのは、対象ブロック内の管理情報取得または生成処理、フォルダ作成処理、またはファイルコピー処理の間に、他のプロセス、例えばファイル読出しプロセスなどが対象ブロック内の管理情報135を取得しようとした場合に、管理情報参照のロックを解除するまで待機させることによって、異なるプロセスの間の排他制御を行うためである。
【0047】
フォルダ作成処理(ステップS31~S36)では、該当するフォルダが移行先に存在しない場合にはフォルダを作成し管理情報参照をアンロックして、まだ移行していないフォルダまたはファイルがある場合はフォルダ/ファイル選択に戻る。ステップS35で管理情報参照をアンロックしているのは、待機中の他のプロセスに待機解除の機会を与えるためである。
【0048】
図6には、ファイルコピー処理のフロー(ステップS41~S53)を示す。
削除フラッグが削除済みになっている場合(ステップS42)、およびファイルの書込み済みサイズが全体ファイルサイズ以上になっている場合(ステップS43)は、管理情報参照をアンロックしてファイルコピー処理を終了する(ステップS53)。
その他の場合は、管理情報135を参照して対象データのオフセット(どの位置からコピー書込みすればよいか)を決定し(ステップS44)、該当するデータを移行元ファイル記憶装置200から読み出して自機の記憶装置150へ書き込み、管理情報135を更新保存して、管理情報参照をアンロックする(ステップS45~S49)。
そして、まだ、書き込んでいない箇所があるかどうかを確認し(ステップS50)、書き込んでいない箇所がある場合は再度管理情報参照をロックし、管理情報135を取得した後(ステップS51~S52)、ステップS42に戻る。
ファイルを何回かに分けてコピー書込みする場合に、毎回管理情報参照をアンロックする(ステップS49)のは、ファイル読出しなど他のプロセスが管理情報取得前で待機している場合の待機時間を短くするためである。
【0049】
(ファイル読出し処理のフローの説明)
図7にファイル読出し処理のフローを示す。なお、このフローは、
図1の移行用仮想ファイルシステム制御部120がクライアントPC300からファイル共有制御部110を介してファイル読出しを要求された場合の、移行用仮想ファイルシステム制御部120における処理のフローである。この場合のクライアントPC300およびファイル共有制御部110の処理フローについては
図8に示す。
ファイル読出しの場合、移行用仮想ファイルシステム制御部120に対して、読出しファイルのファイル名と対象データのオフセットとサイズとが指定される。
移行用仮想ファイルシステム制御部120はファイル読出しのシステムコールを受けると、管理情報参照をロックしてから該当するファイルの管理情報135を取得する(ステップS61~S62)。管理情報参照が他のプロセスによってロックされている場合はロックが解除されるまで待機する。
次に読出し対象データが移行先(自機の記憶装置150)に存在しているかどうかを管理情報135により確認し(ステップS63)、すでに存在している場合は移行先の対象データを読出してファイル共有制御部110に返す(ステップS64~S65)。
読出し対象データが移行先にまだ存在していない場合は、移行元(移行元ファイル記憶装置200)の対象データを読出し、データを返す(ステップS66~S67)。移行用仮想ファイルシステム制御部120はその後、対象ファイルの冒頭から読出し対象オフセットまでのデータが移行先に存在するかどうかを確認し、存在しない場合は冒頭から対象オフセットまでのデータを読出してデータ移行先に書き込む(ステップS68~S70)。そして最後に、読出し対象データを移行先に書込み、管理情報135の書込み済みサイズを更新し、管理情報135を保存する(ステップS71~S73)。
以上により、ファイル読出しが完了するので管理情報参照をアンロックして処理を終了する(ステップS74)。
【0050】
移行元から対象データを読出した場合に移行元の対象データをまずファイル共有制御部110に返してから移行先に書き込むのは、対象データを移行先に書き込んでから返した場合、移行先に書き込む間、クライアントPC300が待機しなければならず、利用者にとって利便性が悪くなるからである。
また、移行元から対象データを読出した場合に移行先に書き込むのは、一度読出したデータをクライアントPC300から再度要求された場合に応答を速くするためである。
なお、移行元からの対象データの読出しが速い場合、または、一度読出したデータをクライアントPC300から再度要求された場合の応答を速くする必要がない場合には、移行先にデータを書き込まなくてもよい。この場合には、移行元のファイルシステムからのデータ移行時に移行先にデータが書き込まれる。
また、読出し対象オフセットまでのデータが移行先に存在するかどうかを確認し、存在しない場合は対象オフセットまでのデータを読出してデータ移行先に書き込むのは、こうすることによって、移行途中の各ファイルの状態が、管理情報135に記載されている、全体ファイルサイズ、書込み済みサイズ、および削除フラッグのみで正確に把握できるようにするためである。
【0051】
図8は、ファイル読出し処理の場合の、クライアントPC300およびファイル共有制御部110のフローである。このフローは、事前にオープンしたファイルに対して全ファイルデータを読み出す場合のフローである。
図8において、クライアントPC300は、読出しバッファを確保したうえで(ステップU01)、対象データのオフセットとバッファサイズを指定して読み出し要求をファイル共有装置100に送信する(ステップU02)。そして対象データが送られてくると、送られてきた対象データを取得する(ステップU03)。その後、未取得ブロックの有無を確認し、未取得ブロックがある場合はステップU02に戻る(ステップU03)。
ファイル共有制御部110は、クライアントPC300から読み出し要求が送られてくると、移行用仮想ファイルシステム制御部120に対して、指定されたオフセットおよびサイズでREADシステムコールを呼び出す(ステップT01)。そして、移行用仮想ファイルシステム制御部120から対象データが送られてくると、送られてきた対象データを取得しクライアントPC300に送る(ステップT02)。
なお、ファイル書込み処理等においても、クライアントPC300およびファイル共有制御部110は
図8と類似のフローで処理を行う。
【0052】
(ファイル書込み処理のフローの説明)
図9にファイル書込み処理のフローを示す。なお、このフローは、
図1の移行用仮想ファイルシステム制御部120がクライアントPC300からファイル共有制御部110を介してファイルの書込み要求を受けた場合の、移行用仮想ファイルシステム制御部120における処理のフローである。
ファイル書込みの場合も、移行用仮想ファイルシステム制御部120に対して、書込みファイルのファイル名と対象データのオフセットとサイズとが指定される。
移行用仮想ファイルシステム制御部120はファイル書込みのシステムコールを受けると、管理情報参照をロックしてから該当するファイルの管理情報135を取得する(ステップS81~S82)。管理情報参照が他のプロセスによってロックされている場合はロックが解除されるまで待機する。
その後、ファイル共有制御部110から書込み対象データを取得し結果を返す(ステップS83)。
移行用仮想ファイルシステム制御部120は対象データのオフセットまでのデータが移行先に存在しているかどうかを確認し、存在していない場合は移行元から対象オフセットまでのデータを読出して移行先に書き込む(ステップS84~S86)。
そして、移行用仮想ファイルシステム制御部120は移行先へ対象データを書込み(ステップS87)、管理情報135の書込み済みサイズ、および、全体ファイルサイズが変更された場合には全体ファイルサイズを更新し、保存する(ステップS88~S91)。
以上により、ファイル書込みが完了するので管理情報参照をアンロックして処理を終了する(ステップS92)。
【0053】
(ファイル削除処理フローの説明)
図10にファイル削除処理のフローを示す。なお、このフローは、
図1の移行用仮想ファイルシステム制御部120がクライアントPC300からファイル共有制御部110を介してファイル削除を要求された場合の、移行用仮想ファイルシステム制御部120における処理のフローである。
移行用仮想ファイルシステム制御部120はファイル共有制御部110からUNLINKシステムコールを受けると管理情報参照をロックしたうえで管理情報135を取得し、対象のフォルダ、ファイルを削除し管理情報135の削除フラッグを削除済みに変更する(ステップS101~S104)。そして、管理情報135を管理情報部130に保存し、管理情報参照のロックを解除し、結果を返す(ステップS105~S106)。
【0054】
(データ移行中の管理情報135と各ファイルの状態の推移の説明)
図11と
図12はデータ移行中の管理情報135と各ファイルの状態の推移の一例を示す模式図である。
図11がデータ移行の前半、
図12は後半である。
本実施形態では、管理情報135には対象フォルダの中の各フォルダ、ファイルの情報が記載されている。フォルダについてはフォルダの名前および削除フラッグが、ファイルについては、ファイルの名前、全体ファイルサイズ、書込み済みサイズ、および削除フラッグが記載されている。管理情報135は、各フォルダごとに、フォルダ内のデータ移行処理の開始前、または、クライアントPC300からのアクセス要求を処理する前に作成される。
図の右側の棒グラフの部分は実施形態には含まれていないが、説明のために追加したものである。図において、棒グラフの長さは全体ファイルサイズに相当し、各マス目は256(kbyte)に相当する。ただし、マス目の大きさおよびファイルサイズは説明のためのものであって、実施形態を限定するものではない。
各マス目は、書き込まれていない場合は空白であり、データ移行によりコピー書込みがなされた部分はC、クライアントPC300からの読出し、書込みによる書込みがなされた部分はW、ファイルの冒頭からWの読出し、書込み箇所の前までの部分にコピー書込みがなされた部分はC1と記載されている。
【0055】
図11において、(a)は管理情報135が生成された直後で、データ移行もクライアントPC300からのアクセス処理も行われていない状態である。当然、すべてのファイルは空白である。
(b)は、ファイルf1とf2の途中までコピー書込み(C)が終わった段階において、クライアントPC300からファイルf3のWに相当する部分のオフセットとサイズを指定したファイル読出し要求があり、移行用仮想ファイルシステム制御部120が、Wに相当する部分を移行元ファイル記憶装置200から読み出してクライアントPC300に提供した後、対象オフセットまでのデータを読出してデータ移行先に書き込み(C1)、さらに読み出した対象データを移行先に書込んだ状態(W)である。管理情報135は、ファイルf1~f3の書込み済みサイズが更新されている。
(c)ではクライアントが(b)のファイルf3のWのデータを更新し、データサイズが大きくなったため、f3の全体ファイルサイズも大きくなっている。そして、このような、データの更新によって全体ファイルサイズが大きくなるような場合には、通常そのファイルは全てのデータが書き込まれる。したがって、(c)ではファイルf3は最後まで書き込まれている(W)。(c)ではさらにファイルf4の途中まで書き込まれた段階でファイルf6のWに相当する部分に読み出し要求があり、C1とWとの書込みが行われている。管理情報135はファイルf3の全体ファイルサイズとファイルf2、f3、f4、f6の書込み済みサイズが更新されている。
【0056】
図12において、(d)ではクライアントによりファイルf5が削除され、ファイルf7が追加されている。またf4のコピー書込みが終了している。管理情報135は、ファイルf7の削除フラッグがY(削除済み)に更新され、ファイルf7が追加されてf7の全体ファイルサイズおよび書込み済みサイズが記載され、ファイルf4の書込み済みサイズが更新されている。
(e)ではファイルf1に新たな読み出し要求があり、ファイルが更新されて管理情報135の全体ファイルサイズおよび書込み済みファイルサイズが更新されている。また、ファイルf6のコピー書込みが終わり、管理情報135の書込み済みサイズが更新されている。
この段階で対象フォルダのすべてのファイルのデータ移行が完了した。
【0057】
本実施形態では、データ移行中にクライアントPC300から読出し、書込みなどのアクセス要求があり、対象ファイルが移行先ファイルシステムに存在しない場合、移行元ファイルシステムから対象ファイルの該当箇所を読み出してクライアントPC300に提供した後、対象ファイルの冒頭から該当箇所までのデータを移行先ファイルシステムに書き込む。
そして、このことによって、以下の(a)~(c)の効果を奏する。
(a)クライアントPC300の待機時間を短縮できる。
(b)一度読出したデータをクライアントPC300から再度要求された場合に応答時間を短縮できる。
(c)移行先ファイルには、常にファイルの冒頭から該当箇所まで書込みが終了しているため、管理情報135から全体ファイルサイズと書込み済みサイズを取得するだけで、空白の部分がどこかを把握することができ、コピー書込みの書込み漏れやクライアントによる書込み部分に対する不適切な上書きの心配がない。
また、本実施形態では、管理情報取得、書込み、コピー書込みの前には管理情報参照をロックするため、別のプロセスが管理情報135を取得しようとしても取得できず、待機する。また、長いファイルを何回かに分けてコピー書込みする場合などにおいて、コピー書込みの途中でいったん管理情報参照のロックを解除する。
そして、このことによって、以下の(d)、(e)の効果を奏する。
(d)同じファイルを同時に別のプロセスが書き込もうするなどのトラブルの発生することがない。
(e)長いファイルをコピー書込みしている場合にも、いったん管理情報参照のロックが解除されるため、別の待機中のプロセス、例えばファイル読出し処理の待機時間を短縮することができる。
【0058】
本発明において、クライアントPC300が『クライアントPC』に相当し、移行元ファイル記憶装置200が『移行元ファイル記憶装置』に相当し、ファイル共有装置100が『ファイル共有装置』に相当し、移行用仮想ファイルシステム制御部120が『移行用仮想ファイルシステム制御部』に相当し、移行元ファイルシステム制御部160が『移行元ファイルシステム制御部』に相当し、記憶装置ファイルシステム制御部140が『自機の記憶装置のファイルシステム制御部』に相当し、管理情報135が『管理情報』に相当し、管理情報部130が『管理情報部』に相当し、記憶装置150が『自機の記憶装置』に相当し、設定情報継承部124が『設定情報継承部』に相当し、ネットワーク設定切換部126が『ネットワーク設定切換部』に相当する。
【0059】
本発明の好ましい実施形態は上記の通りであるが、本発明はそれだけに制限されない。本発明の精神と範囲から逸脱することのない様々な実施形態が他になされることは理解されよう。さらに、本実施形態において、本発明の構成による作用および効果を述べているが、これら作用および効果は、一例であり、本発明を限定するものではない。
【符号の説明】
【0060】
100 ファイル共有装置
120 移行用仮想ファイルシステム制御部
124 設定情報継承部
126 ネットワーク設定切換部
130 管理情報部
135 管理情報
140 記憶装置ファイルシステム制御部
150 記憶装置(HDDなど)
160 移行元ファイルシステム制御部
200 移行元ファイル記憶装置
300 クライアントPC