JP2012133772A - リモートストレージシステムのためのデータ処理方法及び装置 - Google Patents

リモートストレージシステムのためのデータ処理方法及び装置 Download PDF

Info

Publication number
JP2012133772A
JP2012133772A JP2011267008A JP2011267008A JP2012133772A JP 2012133772 A JP2012133772 A JP 2012133772A JP 2011267008 A JP2011267008 A JP 2011267008A JP 2011267008 A JP2011267008 A JP 2011267008A JP 2012133772 A JP2012133772 A JP 2012133772A
Authority
JP
Japan
Prior art keywords
processing
data
remote site
data processing
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.)
Pending
Application number
JP2011267008A
Other languages
English (en)
Inventor
Keiichi Matsuzawa
敬一 松澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2012133772A publication Critical patent/JP2012133772A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイルストレージシステムのためのリモートサイトのデータの処理時間を減らすための方法および装置を提供する。
【解決手段】ローカルサイト110とリモートサイト111とを含む情報システム100において、データ処理要求のためのデータの1つ以上のファイルの各々がキャッシュされている場合、各キャッシュされたファイルのデータ処理をローカルサイトで実行する。キャッシュされていない場合、リモートサイトで処理されるべきファイルのファイルリストを作成し、ファイルリスト及び処理プログラムをサロゲート処理コンピュータに送信する。サロゲート処理コンピュータによって処理が実行されることが十分に効果的である場合は、リモートサイトで実行し、その結果を受信する。効果的ででない場合には、リモートサイトから未処理ファイルリストを受信し、ローカルサイトでデータ処理を実行し、かつリモートサイトで既に実行済みの結果を受信する。
【選択図】図1(a)

Description

0001 本発明は、概してストレージシステムに関し、特に、複数のリモートファイルストレージシステムの間のデータ処理のための方法及び装置に関する。
0002 複数のリモートサイト間のデータ転送は、通常、多様な目的のために使用される。例えば、複数のリモートオフィス間のデータ共有は、異なる場所の複数のユーザ間で文書を共有するために使用される。リモートサイトへのデータバックアップ及びレプリケーションは、地震や停電などの災害によって引き起こされる損害を避けるためのDR(災害復旧)及びBS(事業継続)のために有用であり、かつ通常使用される方法である。しかし、複数のリモートサイト間のデータ転送は、データ処理の問題をもたらす。長距離のデータ転送の結果、レイテンシが高くなり、帯域幅が小さくなる。ローカルサイトのコンピュータがリモートサイトに格納された全データを要求するデータ処理プログラム(テキスト検索又はウィルススキャンなど)を実行し、ローカルサイトがキャッシュデータを有しない場合、コンピュータは、リモートサイトから全データをリコールしなければならず、その結果、処理時間がかなり長くなってしまう。
0003 本発明の例示的な実施形態は、ファイルストレージシステムのためのリモートサイトのデータのデータ処理時間を減らすための方法及び装置を提供する。特定の実施形態では、ローカルサイトは、リモートファイルサーバのキャッシュとして動作するファイルサーバを備える。このローカルファイルサーバは、各ファイルのキャッシングステータスを取得するためのインタフェースを提供する。データを処理するローカルサイトのローカルコンピュータは、ターゲットファイルがキャッシュされているか否かを問い合わせる。このローカルコンピュータは、キャッシュされたファイルをローカルで処理し、長距離のデータ転送を必要としないので、この処理は速く終了する。ローカルコンピュータは、ローカルで処理されない処理プログラム及びファイルリストをリモートサイトのリモート処理コンピュータに送信する。リモート処理コンピュータは、送信されたプログラムを処理し、その結果をローカルコンピュータに戻す。リモート処理コンピュータは、リモートファイルサーバに近く、長距離のデータ転送を必要としない。ローカルサイトとリモートサイトとの間で転送されるコンテンツは、処理プログラム、ファイルリスト、及び処理された結果である。これらのコンテンツは、一般にファイルデータよりも小さい。よって、ローカルコンピュータを使用した結果、処理時間を短縮することができる。本発明は、各ファイルのキャッシュステータスを考慮し、制限がありかつ高価なネットワーク帯域幅を効果的に使用する。
0004 本発明の一態様は、リモートサイトから遠く離れて配置されたローカルサイトを含む情報システムにおけるデータ処理の方法を対象とし、前記ローカルサイトは、ホストコンピュータに結合されたキャッシュファイルサーバを含み、前記リモートサイトは、サロゲート処理コンピュータに結合されたリモートファイルサーバを含むものである。前記方法は、データ処理要求のためのデータの1つ以上のファイルの各々がキャッシュされているか否かを判断し、YESの場合は、前記ローカルサイトにおいて結果を生じさせるように、各キャッシュされたファイルのデータ処理を実行することと、NOの場合は、前記リモートサイトで処理されるべき、キャッシュされていないファイルのファイルリストを作成することと、前記ファイルリスト及び前記データ処理のための処理プログラムを前記リモートサイトのサロゲート処理コンピュータに送信することと、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的である場合は、前記リモートサイトで実行された前記ファイルリストのデータについての前記データ処理の結果を受信することと、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的でない場合は、前記リモートサイトから未処理データの未処理ファイルリストを受信し、前記ローカルサイトにおいて前記未処理ファイルリストのデータ処理を実行し、前記リモートサイトで既に実行済みの前記ファイルリストのデータについての前記データ処理のあらゆる結果を受信することとを含む。
0005 ある実施形態では、前記方法は、前記ローカルサイトで実行されたデータ処理の前記結果を、前記リモートサイトで実行され、かつ前記リモートサイトから受信されたデータ処理の前記結果とマージすることをさらに含む。前記サロゲート処理コンピュータは、仮想コンピュータをエミュレートする仮想マシンモニタプログラムを含むものであり、前記方法は、前記処理プログラム及び前記リモートサイトで処理されるファイルの前記ファイルリストを含む、仮想マシンイメージを作成することと、前記ファイルリスト及び前記処理プログラムを含む前記仮想マシンイメージを、前記リモートサイトの前記サロゲート処理コンピュータに送信することとをさらに含む。前記方法は、前記リモートサイトにおける前記ファイルリストのデータのデータ処理を実行するために、前記サロゲート処理コンピュータの仮想マシンをブートするために、前記仮想マシンモニタプログラムを実行することをさらに含む。前記仮想マシンイメージは、前記リモートサイトにおける第1データ処理のために第1回目に送信されるものであり、前記方法は、前記リモートサイトにおける第2データ処理のために、前記第1回目に続く第2回目に、前記リモートサイトの前記サロゲート処理コンピュータに前記仮想マシンイメージの異なる部分を送信することをさらに含む。
0006 ある実施形態では、前記方法は、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であるか否かを判断することをさらに含む方法であって、当該判断が、前記リモートサイトの前記サロゲート処理コンピュータによって前記ファイルリストの前記データの一部分について前記データ処理を実行することと、前記リモートサイトにおける前記ファイルリストの前記データの前記部分のデータ処理のためのリモート処理時間を測定することと、前記リモートサイトにおける前記ファイルリストの前記データの残りの部分の処理が、前記ローカルサイトにおける前記ファイルリストの前記データの前記残りの部分の処理よりも速いか否かを、前記ローカルサイトの前記ホストコンピュータによる前のデータの処理のためのローカル処理時間に基づいて判断し、YESの場合は、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であると判断することとを含む。
0007 本発明の他の態様に従って、情報システムは、ホストコンピュータに結合されたキャッシュファイルサーバを含むローカルサイトと、前記ローカルサイトから遠く離れて配置されて、かつ前記ローカルサイトに結合されるとともに、サロゲート処理コンピュータに結合されたリモートファイルサーバを含む、リモートサイトとを備える。キャッシュされているデータ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記ホストコンピュータは、各キャッシュされたファイルが前記ローカルサイトにおいて結果を生じるようにデータ処理を実行する。キャッシュされていない前記データ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記ホストコンピュータは、前記リモートサイトで処理されるべき、キャッシュされていないファイルのファイルリストを作成し、前記ファイルリスト及び前記データ処理のための処理プログラムを、前記リモートサイトの前記サロゲート処理コンピュータに送信する。前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的である場合は、前記ホストコンピュータは、前記リモートサイトで実行された前記ファイルリストのデータについての前記データ処理の結果を受信する。前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的でない場合は、前記ホストコンピュータは、前記リモートサイトから未処理データの未処理ファイルリストを受信し、前記ローカルサイトにおいて前記未処理ファイルリストのデータ処理を実行し、かつ前記リモートサイトで既に実行された前記ファイルリストのデータについての前記データ処理のあらゆる結果を受信する。
0008 ある実施形態では、前記ホストコンピュータは、前記ローカルサイトで実行されたデータ処理の前記結果を、前記リモートサイトで実行され、かつ前記リモートサイトから受信されたデータ処理の結果とマージするように構成された、処理委譲モジュールを含む。前記サロゲート処理コンピュータは、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であるか否かを判断するように構成され、YESの場合は、前記サロゲート処理コンピュータは、前記ファイルリストのデータについて前記データ処理を実行し、前記データ処理の結果を前記ホストコンピュータに戻し、NOの場合は、前記サロゲート処理コンピュータは、未処理データの前記未処理ファイルリストを、前記ローカルサイトにおける前記未処理ファイルリストのデータ処理のために前記ホストコンピュータに戻し、前記リモートサイトで既に実行された前記ファイルリストのデータについての前記データ処理のあらゆる結果を戻す。前記サロゲート処理コンピュータは、仮想コンピュータをエミュレートする仮想マシンモニタプログラムを含み、前記ホストコンピュータは、前記処理プログラムと、前記リモートサイトで処理されるべきファイルの前記ファイルリストとを含む仮想マシンイメージを作成し、前記ファイルリスト及び前記処理プログラムを含む前記仮想マシンイメージを、前記リモートサイトの前記サロゲート処理コンピュータに送信する。
0009 特定の実施形態では、前記サロゲート処理コンピュータは、前記リモートサイトにおける前記ファイルリストのデータのデータ処理を実行するように、前記サロゲート処理コンピュータの仮想マシンをブートするために、前記仮想マシンモニタリングプログラムを実行する。前記ホストコンピュータは、前記リモートサイトにおける第1データ処理のために第1回目に前記サロゲート処理コンピュータに前記仮想マシンイメージを送信し、前記リモートサイトにおける第2データ処理のために、前記第1回目に続く第2回目に、前記サロゲート処理コンピュータに前記仮想マシンイメージの異なる部分を送信する。前記仮想マシンイメージは、サロゲートプログラムを含み、前記サロゲート処理コンピュータは、前記リモートサイトにおける前記ファイルリストのデータのデータ処理のための前記受信された処理プログラムを実行するために前記サロゲートプログラムを実行する。
0010 本発明の他の態様は、ホストコンピュータに結合されたキャッシュファイルサーバを有するローカルサイトと、前記ローカルサイトから遠く離れて配置されて、かつ前記ローカルサイトに結合されるとともに、サロゲート処理コンピュータに結合されたリモートファイルサーバを含むリモートサイトとを含む、情報システムのホストコンピュータを対象とする。前記ホストコンピュータは、プロセッサと、メモリと、処理モジュールと、ソートモジュールと、処理委譲モジュールとを備える。キャッシュされているデータ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記処理モジュールは、前記ローカルサイトにおいて結果を生じさせるために、キャッシュされた各ファイルについてデータ処理を実行するように構成される。キャッシュされていない前記データ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記ソートモジュールは、前記リモートサイトで処理されるべき、キャッシュされていないファイルのファイルリストを作成するように構成され、前記処理委譲モジュールは、前記ファイルリスト及び前記データ処理のための処理プログラムを前記リモートサイトの前記サロゲート処理コンピュータに送信するように構成される。前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的である場合は、前記処理委譲モジュールは、前記リモートサイトで実行される前記ファイルリストのデータについての前記データ処理の結果を受信するように構成される。前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的でない場合は、前記処理委譲モジュールは、前記リモートサイトから未処理データの未処理ファイルリストを受信し、前記ローカルサイトにおいて前記未処理ファイルリストのデータ処理を実行し、かつ前記リモートサイトで既に実行された前記ファイルリストのデータについての前記データ処理のあらゆる結果を受信するように構成される。
0011 ある実施形態では、前記処理委譲モジュールは、前記ローカルサイトで実行されたデータ処理の前記結果を、前記リモートサイトで実行されかつ前記リモートサイトで受信されたデータ処理の前記結果とマージするように構成される。前記処理委譲プログラムは、前記処理プログラム及び前記リモートサイトで処理されるべきファイルの前記ファイルリストを含む仮想マシンイメージを作成し、前記ファイルリスト及び前記処理プログラムを含む前記仮想マシンイメージを前記リモートサイトの前記サロゲート処理コンピュータに送信するように構成される。前記処理委譲プログラムは、前記リモートサイトにおける第1データ処理のために第1回目に、前記サロゲート処理コンピュータに前記仮想マシンイメージを送信し、前記リモートサイトにおける第2データ処理のために、前記第1回目に続く第2回目に、前記仮想マシンイメージの異なる部分を前記サロゲート処理コンピュータに送信するように構成される。前記仮想マシンイメージは、前記リモートサイトにおける前記ファイルリストのデータのデータ処理のために前記受信された処理プログラムを実行するために、前記サロゲート処理コンピュータによって実行されるべきサロゲートプログラムを含む。
0012 本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
0013 図1(a)は、本発明の方法及び装置が第1の実施形態に従って適用され得る情報システム概要の一例を示す。 図1(b)は、本発明の方法及び装置が第1の実施形態に従って適用され得る情報システム概要の一例を示す。 図1(c)は、本発明の方法及び装置が第1の実施形態に従って適用され得る情報システム概要の一例を示す。 図1(d)は、本発明の方法及び装置が第1の実施形態に従って適用され得る情報システム概要の一例を示す。 図1(e)は、本発明の方法及び装置が第1の実施形態に従って適用され得る情報システム概要の一例を示す。 0014 図2(a)は、スタブファイル技術を使用したファイルレベルHSM(階層型ストレージ管理)の実装の一例を示す。 図2(b)は、スタブファイル技術を使用したファイルレベルHSM(階層型ストレージ管理)の実装の一例を示す。 0015 図3(a)は、キャッシュファイルサーバがファイルI/O要求を受信した場合に、ファイルシステムプログラム及びキャッシュ管理プログラムが実行する処理フローの一例を示す。 0016 図3(b)は、キャッシュファイルサーバがディレクトリについてのI/O要求を受信した場合に、ファイルシステムプログラム及びキャッシュ管理プログラムが実行する処理フローの一例を示す。 0017 図4は、第1の実施形態に従ったデータ処理フローの一例を示す。 0018 図5(a)は、第2の実施形態に従った情報システムの一例を示す。 図5(b)は、第2の実施形態に従った情報システムの一例を示す。 図5(c)は、第2の実施形態に従った情報システムの一例を示す。 0019 図6は、第2の実施形態に従ったデータ処理フローの一例を示す。
0020 以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として(但し限定ではない)示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する(以下に説明し、かつ図面で示される通り)が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示している場合もある。
0021 さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は(必ずしもそうではないが)、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
0022 本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置(ROM)、ランダムアクセスメモリ(RAM)、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等(但し、これらに限定されない)のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び(情報)提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
0023 以下により詳細に示す本発明の例示的実施形態は、複数のリモートファイルストレージシステムにおけるデータ処理のための装置、方法及びコンピュータプログラムを提供する。
0024 第1の実施形態
0025 A. システム構成
0026 図1(a)〜(e)は、本発明の方法及び装置が第1の実施形態に従って適用され得る情報システム概要100の一例を示す。図1(a)に示されるように、情報システム100は、ローカルサイト110とリモートサイト111とを含む。ローカルサイト110は、ユーザがデータを物理的に使用し、かつデータを処理することを望むサイトである。ローカルサイト110は、1台以上のホストコンピュータ140と、キャッシュファイルサーバ160と、これらを接続するローカルネットワーク151とを含む。リモートサイト111は、ユーザデータが格納されている遠隔地に物理的に位置しているサイトである。リモートサイト11は、1台以上のサロゲート処理コンピュータ170と、リモートファイルサーバ130と、これらを接続するローカルネットワーク152とを含む。ローカルサイト110とリモートサイト111は、サイト間ネットワーク153を介して接続される。
0027 多様はコンピュータ(ホストコンピュータ140、リモートファイルサーバ130、キャッシュファイルサーバ160、及びサロゲート処理コンピュータ 170)は各々、CPU(中央演算装置)141と、メモリ142と、ネットワークインタフェース150とを備える。CPU141は、コンピュータのデバイスをメモリ142内のプログラムとして制御する。メモリ142は、例えばプログラムやバッファキャッシュを含む多種のデータを格納する。ネットワークインタフェース150は、ネットワーク151及び152を介して他のコンピュータと通信するために使用される。
0028 図1(b)に示されるように、ホストコンピュータ140は、情報システム100のユーザがその業務のためにデータを処理するために使用するものである。ホストコンピュータ140は、そのメモリ142にプログラム143、144、145、及び146、並びリスト147を有する。ネットワークファイルシステムクライアントプログラム143は、ファイルI/O要求をネットワークインタフェース150を介してキャッシュファイルサーバ160に発行するためにCPU141によって実行され、ホストコンピュータ140がキャッシュファイルサーバ160のファイルにアクセスすることを可能にする。処理プログラム144は、ユーザが行いたいこと(例えば、テキスト検索、ウィルススキャン、文書の編集など)を記述するプログラムである。ソートプログラム145は、キャッシュファイルサーバ160のキャッシュステータス情報APIプログラム162と通信するためにCPU141によって実行され、ターゲットデータがローカルサイト110又はリモートサイト111のどちらで処理されるかを判断する。処理委譲プログラム146は、処理プログラム144及びファイルリスト147をリモートサイト111のサロゲート処理コンピュータ170に送信し、かつサロゲート処理コンピュータ170から結果を受信するために、CPU141によって実行される。ファイルリスト147は、リモートサイト111で処理されるべきファイルのリストである。
0029 図1(c)に示されるように、リモートサイト111のリモートファイルサーバ130は、ユーザのファイルデータを格納する。CPU141は、外部コンピュータからファイルI/O要求を受信し、ネットワークファイル処理プログラム134を参照することによってネットワークインタフェース150を介して結果を戻す。CPU141は、ファイルI/O要求を処理し、ファイルシステムプログラム135を参照することによって、ストレージインタフェース131を介して接続された記憶媒体132又はストレージアレイ133から/にデータを読み出す/書き込む。FC(ファイバチャネル)、SATA(Serial Attached Technology Attachment)、SAS(Serial attached SCSI)、IDE(Integrated Device Electronics)、又は他のインタフェースは、CPU141とストレージインタフェース131の間の通信のために使用される。リモートファイルサーバ130は、多種の記憶媒体132(HDD(ハードディスクドライブ)、SSD(ソリッドステートドライブ)、フラッシュメモリ、光ディスク、磁気テープなど)を備えることができる。RAID(Redundant Array of Independent Disk)技術によるそれらのアレイは、記憶媒体132のためにも利用できる。さらに、外部ストレージアレイ133は、内蔵記憶媒体132の代わりに使用することができる。CPU141は、バッファキャッシュ136などの他の用途のためにメモリ142を使用することができる。このバッファキャッシュ136は、記憶媒体132へのI/O要求を減らすことによって高速データアクセスを達成するために、記憶媒体132のキャッシュデータを格納する。
0030 図1(d)に示されるように、キャッシュファイルサーバ160は、ローカルサイト110に存在し、その構造は、リモートファイルサーバ130に類似している。キャッシュファイルサーバ160は、リモートファイルサーバ130に比べて、いくつかの追加プログラム143、161、及び162を備えている。ネットワークファイルシステムクライアントプログラム143は、ホストコンピュータ140のシステムクライアントプログラム143と同じである。キャッシュファイルサーバ160は、リモートファイルサーバ130にファイルI/O要求を発行するために、このプログラム143を使用する。キャッシュ管理プログラム161は、キャッシュファイルサーバ160がリモートファイルサーバ130のためのキャッシュとして動作することを可能にする。キャッシュ管理プログラム161を使用することによって、ホストコンピュータ140は、リモートファイルサーバ130のデータに透過的にアクセスすることができるが、これは、ホストコンピュータ140が、キャッシュファイルサーバ160にファイルI/O要求を発行するだけでよく、リモートファイルサーバ130を意識する必要がないことを意味する。キャッシュステータス情報API(アプリケーションプログラムインタフェース)プログラム162は、ホストコンピュータ140がキャッシュのステータスを取得することを可能にする。
0031 図1(e)に示されるように、サロゲート処理コンピュータ170は、リモートサイト111に存在し、リモートサイト111のデータ処理を担当する。このサロゲートコンピュータ170は、ローカルサイト110のホストコンピュータ140の代わりとしてデータを処理するものである。ネットワークファイルシステムクライアントプログラム123は、リモートファイルサーバ130にファイルI/O要求を発行するために使用される。サロゲートプログラム171は、処理委譲プログラム146と通信し、かつ受信された処理プログラム172及びファイルリスト173を含む委譲要求を受信するために、CPU141によって実行される。受信された処理プログラム172は、リモートサイトで実行されるようにホストコンピュータ140によって送信される。ファイルリスト173は、ホストコンピュータ140によって送信され、リモートサイトで処理されるべきターゲットファイルを列挙する。
0032 ローカルネットワーク151、152については、同じサイトのコンピュータは、互いに通信し、I/O要求を発行し、ネットワークインタフェース150を使用することによってローカルネットワーク151及び152を介してデータ処理要求を発行する。ローカルネットワーク151及び152もまた、異なるサイトのコンピュータが互いに通信できるように双方向に結合される。NFS(ネットワークファイルシステム)、CIFS(Common Internet File System)、及びAFP(Apple Filing Protocol)などのネットワークを介したファイルI/O要求インタフェースのための共通プロトコルがいくつか存在する。
0033 B. ファイルレベル階層型ストレージ管理
0034 本実施形態は、ファイルレベルHSM(階層型ストレージ管理)を使用することによるファイル単位キャッシュ管理方法の一例を示すが、本発明は、ファイルレベルHSMに基づく方法に限定されない。他のファイル単位キャッシュ管理方法は、本実施形態にも利用できる。
0035 一般に、HSMは、異なる特性を有する複数の記憶媒体を使用するための技術である。HSMが可能なストレージシステムは、各データがどの記憶媒体上に格納されているかをユーザが認識する必要がないように、データ位置を自動的に管理する。HSMを使用することによって、ユーザは、頻繁にアクセスされるデータを高速だが高価な記憶媒体に、頻繁にアクセスされないデータを低速だが安価な媒体に配置することができる。よって、ユーザは、記憶媒体のための総費用を削減し、合理的な性能を得ることができる。
0036 ファイルレベルHSMは、HSMの一種である。ファイルレベルHSM技術は、ファイル単位で異なる記憶媒体にデータを分配する。ファイルレベルHSMのいくつかの実装は、ファイルデータを他のいずれかの外部ファイルストレージシステムに配置することができる。この特性は、ファイル単位キャッシュ管理を実施するために使用されることができる。
0037 本実施形態は、ファイルデータを他のいずれかの外部ファイルストレージシステムに配置する、最後の種類のファイルレベルHSMに焦点を当てる。本実施形態では、キャッシュ管理プログラム161がこのようなファイルレベルHSMの機能を使用することを想定する。
0038 図2(a)及び2(b)は、スタブファイル技術を使用したファイルレベルHSMの実装の一例を示す。「スタブファイル」とは、基本的にファイルのデータを有さず、外部ファイルサーバ上に格納されたデータの位置を示す仮想ファイルである。スタブファイルは、データの一部分又は全体をキャッシュとして有してもよい。HSMファイルシステム200のファイルツリーは、HSMファイルサーバ130がクライアントに示すHSMファイルシステムの階層を示す。ファイルツリー200は、ルート210及びサブディレクトリ211、212、213を有し、各ディレクトリは、ファイル221、222、223、又は227などのいくつかのファイルを有する。各パス位置は、各ディレクトリ名とファイル名をスラッシュで区切ったパス名で示される。例えば、ファイル221のパス名は、「/root/dirA/file1」である。HSMファイルシステム自体は、通常のファイルシステムとして使用されることができる。ファイル221、222、及び223は、クライアントがパス名(「/root/dirA/file1」、「/root/dirA/file2」、及び「/root/dirA/file3」など)を指定することによって読み出す/書き込むことができるように、通常のファイルである。ファイル224、225、及び226は、HSM特性の例である。HSMファイルシステム200は、このようなファイルのデータのいくつかの部分をその内蔵記憶媒体132に格納する。例えば、HSMファイルシステム200は、ファイル名及びメタデータ(ファイル作成時間又はアクセス制御情報など)のみを格納するが、それらのデータは格納しない。ファイルのデータ全体を有する代わりに、HSMファイルシステムは、ファイルデータの位置に関する情報を格納する。
0039 図2(b)は、このようなスタブファイル224の構造例を示す。ファイルメタデータ270は、各ファイルのメタデータを格納する。ファイルメタデータ270は、ファイルがスタブであるか又はそうでないか(通常ファイル)を示すエントリ281を有する。ファイルがスタブである場合は、ファイルメタデータ270は、対応するスタブ情報271を有する。ファイルがスタブではない場合は、ファイルメタデータ270は、ファイルシステムユーザのために十分な情報283、284、及び285に提供するように満たされなければならない。ファイルがスタブである場合は、パス名、及びファイルがスタブであるか否かの状態を特定するために、エントリ281及びファイル名282のみが必要とされる。スタブファイルの他のエントリ283、284、及び285は格納されても格納されなくてもよい。なぜならば、ファイルシステムプログラム124は、対応するスタブ情報271及び外部ファイルサーバを参照することによって、このようなメタデータを取得することができるからである。スタブ情報271は、ファイルデータの実際の位置を示す。この例では、スタブ情報271は、外部サーバ名286、外部ファイルサーバ内のファイルシステム名287、及びファイルシステム上のパス名288を特定することによって位置を示す。実際のファイルは、HSMファイルシステムのパス名と同じパス名を有する必要はない。例えば、スタブファイル224は、パス名「/root/dirB/file4」を有するが、実ファイル246(ファイルシステムA231に格納される)は、「/root/dirD/file10」となる。ファイルメタデータ270は、ファイルデータの部分ごとに複数のスタブ情報271を有し得る。これによって、複数のファイルサーバ間でのファイルデータの分配と、外部ファイルサーバへの当該データの一部のみの格納が可能になる。ファイルがスタブであっても、HSMファイルサーバ130は、より高速に応答するために外部ファイルサーバとの通信を減らすために、ファイルデータの一部又はデータ全体を内蔵記憶媒体132のキャッシュとして維持することができる。
0040 キャッシュファイルサーバ160は、「リコール」及び「移動」によってファイルをスタブに、かつスタブをファイルに変換できる。「リコール」は、スタブ情報で指定される外部ファイルサーバから実ファイルデータを読み出すためのプロセスである。データ全体を読み出した後で、キャッシュファイルサーバ160は、スタブをファイル全体で置き換えることができる。「移動」とは、ファイルデータを外部ファイルサーバにコピーし、スタブ情報を作成し、バックエンドネットワーク152を介してファイルをスタブに変換するための逆のプロセスである。
0041 ディレクトリ213「/root/dirC」は、スタブファイルとして扱うことができる。この状況では、HSMファイルシステム 200は、下のファイル227、228、及び229についての情報を有さなくてもよい。クライアントがディレクトリ213の下のファイルにアクセスした場合に、HSMファイルシステム200は、ディレクトリ254に実際に格納されたファイル227、228、及び229を有するように作動し、このディレクトリ254は、ファイルシステムB232内に存在する。なぜならば、ディレクトリ254は、かかる3つのファイル247、248、及び249を有するからである。
0042 図3(a)は、キャッシュファイルサーバ160がファイルI/O要求を受信した場合に、ファイルシステムプログラム135及びキャッシュ管理プログラム161が実行する処理フロー300の一例を示す。最初に、キャッシュファイルサーバ160は、要求されたファイルがスタブであるか否かを確認するために情報を調べる(ステップ305)。ファイルがスタブでない場合は、キャッシュファイルサーバ160は、通常のファイルサーバ(ステップ310)として要求を処理する。ファイルがスタブである場合は、キャッシュファイルサーバ160は、必要に応じて、外部ファイルサーバからファイルデータをリコールする(ステップ315)。クライアントが「読み出し」I/Oを要求した場合、キャッシュファイルサーバ160は、キャッシュファイルサーバ160が実データを有しないので、データをリコールしなければならない。クライアントが既存ファイルを上書きした場合、キャッシュファイルサーバ160は、クライアントがデータを送信するので、データをリコールする必要はない。「リコールするか否か」は、操作タイプ(読み出し又は書き出し)、データ範囲、及びユーザのポリシーによって異なる。リコールの後で、キャッシュファイルサーバ160は、通常のようにI/O要求を処理する(ステップ320)。最後に、キャッシュファイルサーバ160は、再びファイルを外部サーバに移動してもよい(ステップ325)。
0043 図3(b)は、キャッシュファイルサーバ160がディレクトリについてのI/O要求を受信した場合に、ファイルシステムプログラム135及びキャッシュ管理プログラム161が実行する処理フロー350の一例を示す。最初に、キャッシュファイルサーバ160は、要求されたディレクトリがスタブであるか否かを確認するために調べる(ステップ355)。ディレクトリがスタブである場合は、キャッシュファイルサーバ160は、外部ファイルサーバからディレクトリエントリデータをリコールする(ステップ360)。その後で、キャッシュ管理プログラム161は、必要に応じて、外部ファイルサーバのディレクトリエントリ及びメタデータを読み出すことによって、そのディレクトリの下のファイルのためのスタブを作成する(ステップ365)。ステップ360及びステップ365によって、キャッシュ管理プログラム161は、当該ディレクトリの下のファイルに関する情報を有し、クライアントは、これらのファイルを調べることができる。ここでディレクトリはスタブではないため、キャッシュ管理プログラム161は通常のファイルシステムとして要求を処理する(ステップ370)。クライアントが、親ディレクトリがスタブであるファイルについてI/O要求を発行した場合、キャッシュ管理プログラム161は、ターゲットファイルにアクセスするためにフロー350のように親ディレクトリをリコールする。
0044 これらのI/Oフロー300及び350によって、キャッシュファイルサーバ160は、クライアントが1つのキャッシュファイルサーバ160にアクセスするだけで、複数の外部ファイルサーバの中のファイルにアクセスできるように、クライアント用の外部ファイルサーバを隠す。
0045 C. キャッシュ情報及び処理委譲を用いたデータ処理
0046 図4は、第1の実施形態に従ったデータ処理フロー400の一例を示す。情報システム100のユーザによってホストコンピュータ140がデータ処理を開始した場合、情報システム100の構成要素は、このフロー400を実行する。
0047 最初に、ホストコンピュータ140のソートプログラム145は、キャッシュファイルサーバ160のキャッシュ管理プログラム161と通信し、ターゲットファイルの各々がキャッシュされているか否かを示すステータスを受信する(ステップ410)。キャッシュ管理プログラム161が上記のようなキャッシュ管理のためのファイルレベルHSMを使用することを想定して、キャッシュ管理プログラムは、ファイルがスタブではない場合には、ファイルがキャッシュされていると判断し、ファイルがスタブである場合には、ファイルがキャッシュされていないと判断することができる。ホストコンピュータ140の処理プログラム144は、キャッシュファイルサーバ160にキャッシュされたファイルに対してユーザの目的のデータ処理を実行する(ステップ420)。
0048 同時に又はその後で、ソートプログラム145は、データの長距離転送を防ぐために、キャッシュされておらず、かつリモートサイトで処理されるべきファイル名をリストしたファイルリスト147を作成する(ステップ430)。ホストコンピュータ140の処理委譲プログラム146は、処理プログラム144及びファイルリスト147をリモートサイト111のサロゲート処理コンピュータ170に送信する(ステップ440)。サロゲート処理コンピュータ170のサロゲートプログラム171は、処理委譲プログラム146からデータを受信し、そのメモリ142に当該データを、受信された処理プログラム172及びファイルリスト173として格納する。サロゲートプログラム171は、リモートサイト111におけるデータ処理が効果的か否かを判断する(ステップ450)。いくつかの種類のデータ処理は、ローカルサイト110よりもリモートサイト111で行うのにより多くの時間がかかる。例えば、サロゲート処理コンピュータ170のCPU141は、ホストコンピュータ140のCPUよりも遅い。別の例では、ローカルサイト110のデータとリモートサイト111のデータとの間のデータ比較には、ローカルサイト110からリモートサイト111へのデータ転送、又は逆方向のデータ転送を必要とする。どちらのデータ転送も時間がかかるため、リモートサイト111における処理は効果的でない。
0049 ステップ450の問い合わせの回答がYESである場合は、サロゲートプログラム171は、データ処理のために受信済み処理プログラム172を実行する(ステップ460)。受信済み処理プログラム172は、ファイルリスト173にリストされ、かつリモートファイルサーバ130に格納されたデータを処理する。この処理には、ローカルネットワーク152を介したデータ転送を要求するが、サイト間ネットワーク153を介した転送は必要としない。よって、この処理は、長距離転送のための時間があまりかからない。サロゲートプログラム171がステップ450でNOと判断した場合は、サロゲートプログラム171は、リモートサイト111における未処理データを列挙しているファイルリストを戻す(ステップ470)。ローカルサイト110におけるホストコンピュータ140の処理プログラム144は、未処理データについてのデータ処理を実行する(ステップ480)。ステップ420、450、460、470、及び480は、ファイル単位で並行して実行することができる。さらに、サロゲートプログラム171は、ステップ450及び480で前のデータを処理した結果の情報を使用することができる。例えば、サロゲートプログラム171がリストされたファイルの10%を処理した後で、サロゲートプログラム171は、データの時間処理10%を測定し、リモートサイト111で残りの90%を処理することがより高速か否かを判断する。これらのステップの後で、処理委譲プログラム146は、ステップ420、460、及び480の結果をマージする(ステップ490)。マージされた結果は最終的なものである。
0050 本実施形態は、複数のサイト間で処理されるべきファイルデータの転送を減らすが、処理プログラム144、ファイルリスト147、及び処理された結果の追加の転送を必要とする。一般に、データ処理の結果は、テキスト検索及びウィルススキャンなどのデータ自体よりもサイズが小さい。よって、本実施形態は、ローカルサイトとリモートサイトの間のデータ転送の削減を達成し、かつ全体的な処理時間を減らすことができる。
0051 第2の実施形態
0052 第1の実施形態は、サロゲート処理コンピュータ170が複数のホストコンピュータ140の同じプログラムを実行することを必要とする。それらが異なるCPUアーキテクチャ、異なるオペレーティングシステム、又は異なるライブラリを使用している場合に、上記要件を満たすことはできない。第2の実施形態は、仮想マシン技術を使用することによってこの要件を満たす。
0053 図5(a)〜5(c)は、第2の実施形態に従った情報システム500の一例を示すものであり、この情報システム500は、ホストコンピュータ540及びサロゲートコンピュータ570が異なる点以外は図1のシステム100と類似している。ホストコンピュータ540は、図1のホストコンピュータ140と類似しているが、サロゲートプログラム171、処理プログラム144、及びファイルリスト147を含む仮想マシンイメージ541を有する(図5(b))。サロゲートコンピュータ570は、図1のサロゲートコンピュータ140と類似しているが、仮想マシンイメージ541及び仮想マシンモニタプログラム571を有する(図5(c))。
0054 A. 仮想マシンモニタ
0055 仮想マシン(VM)技術は、最近のコンピューティングシステムで広く使用されている。この技術は、異なる種類のCPU、メモリ、及び他の構成要素を有する場合がある仮想コンピュータをエミュレートする。この技術によって、情報システムのユーザは、異なるコンピュータで異なる種類のオペレーティングシステム及びプログラムを実行することができる。米国特許第7,117,499号は、このような技術の一例を開示し、その全体を参照することにより本明細書に組み込まれている。仮想マシンモニタ(VMM)571は、仮想コンピュータをエミュレートするこのようなプログラムである。VMM571は、メモリ142内の仮想マシンイメージ541にアクセスし、エミュレートされた仮想コンピュータ上の仮想マシンイメージ541に格納されたオペレーティングシステム及びプログラムを実行する。
0056 VMMの多くの公知の実装が存在する。VMMの一例は、ハードウェアを仮想化し、VMM上のVMは、それらが実際のハードウェア上にあるかのように動作し(実際には仮想化されている)、その上でそれらのOS及びアプリケーションを実行する。しかし、VMが何らかの種類のハードウェアリソース(CPU上の特別なレジスタ、メモリ上のページテーブル、ACPI(Advanced Configuration and Power Interface)情報、及びPCI(Peripheral Component Interface)のためのマップされたメモリ領域など)にアクセスした場合に、又はVMが割込を引き起こした場合に、VMMは、アクセスをトラップし、動作をエミュレートし、実ハードウェアが行うように応答する。このアクションは、実際のハードウェア構成をVMから隠し、VMが仮想化ハードウェア上でそれ自身のOS及びアプリケーションを実行することを可能にする。
0057 B. キャッシュ情報及び処理委譲を用いたデータ処理
0058 図6は、第2の実施形態に従ったデータ処理フロー600の一例を示す。情報システム500のユーザによってホストコンピュータ540がデータ処理を開始した場合、情報システム500の構成要素は、このフロー500を実行する。
0059 このフロー600は、図4のフロー400とほぼ同じであるが、ステップ430とステップ450の間の異なる処理ステップを含む。図6のステップ430の後で、ホストコンピュータ540の処理委譲プログラム146は、ステップ430でリストされたファイルリスト147及び処理プログラム144を含むVMI541を生成する(ステップ635)。このVMI541は、CPUアーキテクチャ、オペレーティングシステム、及びライブラリに関してホストコンピュータ540と同じ処理環境を含む。次に、処理委譲プログラム146は、サイト間ネットワーク153を介してVMI541をサロゲート処理コンピュータ570に送信する(ステップ640)。VMI541は、オペレーティングシステム及びライブラリのための大量のデータを含むので、大きい場合がある。ユーザがデータを繰り戻し処理すると想定すると、ホストコンピュータ540が第1回目にVMI541全体を送信し、第2回目にVMI541の異なる部分を送信することによって、データ転送を減らすことは有用な方法である。サロゲート処理コンピュータ570のVMMプログラム571は、VMI571から仮想マシンをブートする(ステップ645)。VMは、サロゲートプログラム171が図4のフロー400を実行するように、図6のステップ450、460、及び470を実行する。
0060 サロゲート処理コンピュータ570がホストコンピュータ540のCPUアーキテクチャ、オペレーティングシステム、又はライブラリとは異なるCPUアーキテクチャ、オペレーティングシステム、又はライブラリを備えていたとしても、本実施形態は、システムが、ローカルサイト510の全データを処理するよりも短い時間でデータを処理することを可能にする。
0061 当然のことながら、図1及び図5に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置(例えば、CD及びDVDドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等)も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、無線ネットワーク、ストレージエリアネットワーク等を含む。
0062 説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
0063 当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置(ハードウェア)を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体(ソフトウェア)上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び/又は暗号化形式で命令を媒体に記憶することができる。
0064 上記により、本発明が、ファイルストレージステムのためのリモートサイトにおけるデータのデータ処理時間を短縮するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。

Claims (19)

  1. リモートサイトから遠く離れて配置されたローカルサイトを含む情報システムにおけるデータ処理の方法であって、前記ローカルサイトは、ホストコンピュータに結合されたキャッシュファイルサーバを含み、前記リモートサイトは、サロゲート処理コンピュータに結合されたリモートファイルサーバを含むものであり、
    データ処理要求のためのデータの1つ以上のファイルの各々がキャッシュされているか否かを判断し、YESの場合は、前記ローカルサイトにおいて結果を生じさせるように、各キャッシュされたファイルのデータ処理を実行することと、NOの場合は、
    前記リモートサイトで処理されるべき、キャッシュされていないファイルのファイルリストを作成することと、
    前記ファイルリスト及び前記データ処理のための処理プログラムを前記リモートサイトの前記サロゲート処理コンピュータに送信することと、
    前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的である場合は、前記リモートサイトで実行された前記ファイルリストのデータについての前記データ処理の結果を受信することと、
    前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的でない場合は、前記リモートサイトから未処理データの未処理ファイルリストを受信し、前記ローカルサイトにおいて前記未処理ファイルリストのデータ処理を実行し、前記リモートサイトで既に実行済みの前記ファイルリストのデータについての前記データ処理のあらゆる結果を受信することとを含む、方法。
  2. 前記ローカルサイトで実行されたデータ処理の前記結果を、前記リモートサイトで実行され、かつ前記リモートサイトから受信されたデータ処理の前記結果とマージすることをさらに含む、請求項1に記載の方法。
  3. 前記サロゲート処理コンピュータは、仮想コンピュータをエミュレートする仮想マシンモニタプログラムを含むものであり、
    前記処理プログラム及び前記リモートサイトで処理されるファイルの前記ファイルリストを含む、仮想マシンイメージを作成することと、
    前記ファイルリスト及び前記処理プログラムを含む前記仮想マシンイメージを、前記リモートサイトの前記サロゲート処理コンピュータに送信することと、
    をさらに含む、請求項1に記載の方法。
  4. 前記リモートサイトにおける前記ファイルリストのデータのデータ処理を実行するために、前記サロゲート処理コンピュータの仮想マシンをブートするために、前記仮想マシンモニタプログラムを実行することをさらに含む、請求項3に記載の方法。
  5. 前記仮想マシンイメージは、前記リモートサイトにおける第1データ処理のために第1回目に送信されるものであり、
    前記リモートサイトにおける第2データ処理のために、前記第1回目に続く第2回目に、前記リモートサイトの前記サロゲート処理コンピュータに前記仮想マシンイメージの異なる部分を送信することをさらに含む、請求項3に記載の方法。
  6. 前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であるか否かを判断することをさらに含む方法であって、
    当該判断が
    前記リモートサイトの前記サロゲート処理コンピュータによって前記ファイルリストの前記データの一部分について前記データ処理を実行することと、
    前記リモートサイトにおける前記ファイルリストの前記データの前記部分のデータ処理のためのリモート処理時間を測定することと、
    前記リモートサイトにおける前記ファイルリストの前記データの残りの部分の処理が、前記ローカルサイトにおける前記ファイルリストの前記データの前記残りの部分の処理よりも速いか否かを、前記ローカルサイトの前記ホストコンピュータによる前のデータの処理のためのローカル処理時間に基づいて判断し、YESの場合は、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であると判断することとを含む、請求項1に記載の方法。
  7. ホストコンピュータに結合されたキャッシュファイルサーバを含むローカルサイトと、
    前記ローカルサイトから遠く離れて配置されて、かつ前記ローカルサイトに結合されるとともに、サロゲート処理コンピュータに結合されたリモートファイルサーバを含む、リモートサイトと
    を備える情報システムであって、
    キャッシュされているデータ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記ホストコンピュータは、各キャッシュされたファイルが前記ローカルサイトにおいて結果を生じるようにデータ処理を実行し、
    キャッシュされていない前記データ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記ホストコンピュータは、前記リモートサイトで処理されるべき、キャッシュされていないファイルのファイルリストを作成し、前記ファイルリスト及び前記データ処理のための処理プログラムを、前記リモートサイトの前記サロゲート処理コンピュータに送信し、
    前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的である場合は、前記ホストコンピュータは、前記リモートサイトで実行された前記ファイルリストのデータについての前記データ処理の結果を受信し、
    前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的でない場合は、前記ホストコンピュータは、前記リモートサイトから未処理データの未処理ファイルリストを受信し、前記ローカルサイトにおいて前記未処理ファイルリストのデータ処理を実行し、かつ前記リモートサイトで既に実行された前記ファイルリストのデータについての前記データ処理のあらゆる結果を受信する、情報システム。
  8. 前記ホストコンピュータは、前記ローカルサイトで実行されたデータ処理の前記結果を、前記リモートサイトで実行され、かつ前記リモートサイトから受信されたデータ処理の結果とマージするように構成された、処理委譲モジュールを含む、請求項7に記載の情報システム。
  9. 前記サロゲート処理コンピュータは、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であるか否かを判断するように構成され、YESの場合は、前記サロゲート処理コンピュータは、前記ファイルリストのデータについて前記データ処理を実行し、前記データ処理の結果を前記ホストコンピュータに戻し、NOの場合は、前記サロゲート処理コンピュータは、未処理データの前記未処理ファイルリストを、前記ローカルサイトにおける前記未処理ファイルリストのデータ処理のために前記ホストコンピュータに戻し、前記リモートサイトで既に実行された前記ファイルリストのデータについての前記データ処理のあらゆる結果を戻す、請求項7に記載の情報システム。
  10. 前記サロゲート処理コンピュータは、仮想コンピュータをエミュレートする仮想マシンモニタプログラムを含み、
    前記ホストコンピュータは、前記処理プログラムと、前記リモートサイトで処理されるべきファイルの前記ファイルリストとを含む仮想マシンイメージを作成し、前記ファイルリスト及び前記処理プログラムを含む前記仮想マシンイメージを、前記リモートサイトの前記サロゲート処理コンピュータに送信する、請求項7に記載の情報システム。
  11. 前記サロゲート処理コンピュータは、前記リモートサイトにおける前記ファイルリストのデータのデータ処理を実行するように、前記サロゲート処理コンピュータの仮想マシンをブートするために、前記仮想マシンモニタリングプログラムを実行する、請求項10に記載の情報システム。
  12. 前記ホストコンピュータは、前記リモートサイトにおける第1データ処理のために第1回目に前記サロゲート処理コンピュータに前記仮想マシンイメージを送信し、前記リモートサイトにおける第2データ処理のために、前記第1回目に続く第2回目に、前記サロゲート処理コンピュータに前記仮想マシンイメージの異なる部分を送信する、請求項10に記載の情報システム。
  13. 前記仮想マシンイメージは、サロゲートプログラムを含み、
    前記サロゲート処理コンピュータは、前記リモートサイトにおける前記ファイルリストのデータのデータ処理のための前記受信された処理プログラムを実行するために前記サロゲートプログラムを実行する、請求項10に記載の情報システム。
  14. 前記サロゲート処理コンピュータは、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であるか否かを判断するように構成され、
    当該判断が、
    前記リモートサイトの前記サロゲート処理コンピュータによって前記ファイルリストの前記データの一部分について前記データ処理を実行することと、
    前記リモートサイトにおける前記ファイルリストの前記データの前記部分のデータ処理のためのリモート処理時間を測定することと、
    前記リモートサイトにおける前記ファイルリストの前記データの残りの部分の処理が、前記ローカルサイトにおける前記ファイルリストの前記データの前記残りの部分の処理よりも速いか否かを、前記ローカルサイトの前記ホストコンピュータによる前のデータの処理のためのローカル処理時間に基づいて判断し、YESの場合は、前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的であると判断することとを含む、請求項7に記載の情報システム。
  15. ホストコンピュータに結合されたキャッシュファイルサーバを有するローカルサイトと、前記ローカルサイトから遠く離れて配置されて、かつ前記ローカルサイトに結合されるとともに、サロゲート処理コンピュータに結合されたリモートファイルサーバを含むリモートサイトとを含む、情報システムのホストコンピュータであって、
    前記ホストコンピュータは、
    プロセッサと、
    メモリと、
    処理モジュールと、
    ソートモジュールと、
    処理委譲モジュールとを備え、
    キャッシュされているデータ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記処理モジュールは、前記ローカルサイトにおいて結果を生じさせるために、キャッシュされた各ファイルについてデータ処理を実行するように構成され、かつ
    キャッシュされていない前記データ処理要求のためのデータの1つ以上のファイルの各ファイルについて、前記ソートモジュールは、前記リモートサイトで処理されるべき、キャッシュされていないファイルのファイルリストを作成するように構成され、前記処理委譲モジュールは、前記ファイルリスト及び前記データ処理のための処理プログラムを前記リモートサイトの前記サロゲート処理コンピュータに送信するように構成され、
    前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的である場合は、前記処理委譲モジュールは、前記リモートサイトで実行される前記ファイルリストのデータについての前記データ処理の結果を受信するように構成され、及び
    前記リモートサイトの前記サロゲート処理コンピュータによって前記データ処理が実行されることが十分に効果的でない場合は、前記処理委譲モジュールは、前記リモートサイトから未処理データの未処理ファイルリストを受信し、前記ローカルサイトにおいて前記未処理ファイルリストのデータ処理を実行し、かつ前記リモートサイトで既に実行された前記ファイルリストのデータについての前記データ処理のあらゆる結果を受信するように構成される、ホストコンピュータ。
  16. 前記処理委譲モジュールは、前記ローカルサイトで実行されたデータ処理の前記結果を、前記リモートサイトで実行されかつ前記リモートサイトで受信されたデータ処理の前記結果とマージするように構成される、請求項15に記載のホストコンピュータ。
  17. 前記処理委譲プログラムは、前記処理プログラム及び前記リモートサイトで処理されるべきファイルの前記ファイルリストを含む仮想マシンイメージを作成し、前記ファイルリスト及び前記処理プログラムを含む前記仮想マシンイメージを前記リモートサイトの前記サロゲート処理コンピュータに送信するように構成される、請求項15に記載のホストコンピュータ。
  18. 前記処理委譲プログラムは、前記リモートサイトにおける第1データ処理のために第1回目に、前記サロゲート処理コンピュータに前記仮想マシンイメージを送信し、前記リモートサイトにおける第2データ処理のために、前記第1回目に続く第2回目に、前記仮想マシンイメージの異なる部分を前記サロゲート処理コンピュータに送信するように構成される、請求項17に記載のホストコンピュータ。
  19. 前記仮想マシンイメージは、前記リモートサイトにおける前記ファイルリストのデータのデータ処理のために前記受信された処理プログラムを実行するために、前記サロゲート処理コンピュータによって実行されるべきサロゲートプログラムを含む、請求項17に記載のホストコンピュータ。
JP2011267008A 2010-12-21 2011-12-06 リモートストレージシステムのためのデータ処理方法及び装置 Pending JP2012133772A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/974,415 2010-12-21
US12/974,415 US8812677B2 (en) 2010-12-21 2010-12-21 Data processing method and apparatus for remote storage system

Publications (1)

Publication Number Publication Date
JP2012133772A true JP2012133772A (ja) 2012-07-12

Family

ID=46236243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011267008A Pending JP2012133772A (ja) 2010-12-21 2011-12-06 リモートストレージシステムのためのデータ処理方法及び装置

Country Status (2)

Country Link
US (1) US8812677B2 (ja)
JP (1) JP2012133772A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021535462A (ja) * 2018-08-07 2021-12-16 オラクル・インターナショナル・コーポレイション ステートレスアプリケーションにおいてほぼ一定時間に大きな階層のブラウズおよびランダムアクセスを行うこと

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430338B2 (en) * 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8868831B2 (en) * 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
WO2013019913A1 (en) * 2011-08-02 2013-02-07 Jadhav Ajay Cloud-based distributed persistence and cache data model
US8935227B2 (en) * 2012-04-17 2015-01-13 Oracle International Corporation Redistributing computation work between data producers and data consumers
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
FR3011355B1 (fr) 2013-10-01 2017-01-27 Bull Double deport de traitement vers dispositifs de traitement supplementaire et central
US9547592B2 (en) * 2014-07-29 2017-01-17 International Business Machines Corporation Cache mobility
US10255180B2 (en) * 2015-12-11 2019-04-09 Netapp, Inc. Server-based persistence management in user space
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US11113312B2 (en) * 2017-06-29 2021-09-07 Microsoft Technology Licensing, Llc Reliable hierarchical storage management with data synchronization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US7028313B2 (en) * 2001-03-28 2006-04-11 International Business Machines Corporation Method for transmitting function parameters to a remote node for execution of the function thereon
WO2004086246A1 (ja) * 2003-03-24 2004-10-07 Fujitsu Limited 分散処理制御装置、分散処理制御方法および分散処理制御プログラム
JP4322031B2 (ja) 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
JP4308241B2 (ja) * 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
JP5251002B2 (ja) * 2007-05-25 2013-07-31 富士通株式会社 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
US8127032B2 (en) * 2007-10-18 2012-02-28 International Business Machines Corporation Performance sampling in distributed systems
JP5259714B2 (ja) * 2008-06-30 2013-08-07 パナソニック株式会社 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021535462A (ja) * 2018-08-07 2021-12-16 オラクル・インターナショナル・コーポレイション ステートレスアプリケーションにおいてほぼ一定時間に大きな階層のブラウズおよびランダムアクセスを行うこと
JP7404338B2 (ja) 2018-08-07 2023-12-25 オラクル・インターナショナル・コーポレイション ステートレスアプリケーションにおいてほぼ一定時間に大きな階層のブラウズおよびランダムアクセスを行うこと

Also Published As

Publication number Publication date
US20120159480A1 (en) 2012-06-21
US8812677B2 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
US8812677B2 (en) Data processing method and apparatus for remote storage system
US11593319B2 (en) Virtualized data storage system architecture
US9460106B2 (en) Data synchronization among file storages using stub files
US10156993B1 (en) Managing inline data compression in storage systems
US9977718B1 (en) System and method for smart throttling mechanisms for virtual backup appliances
US8966476B2 (en) Providing object-level input/output requests between virtual machines to access a storage subsystem
JP4824085B2 (ja) ネットワークファイルシステムをキャッシュするシステム、及び方法
US9286007B1 (en) Unified datapath architecture
US9569455B1 (en) Deduplicating container files
US9934108B2 (en) System and method for optimizing mirror creation
US9760574B1 (en) Managing I/O requests in file systems
US9122589B1 (en) Data storage system with unified system cache
US10353872B2 (en) Method and apparatus for conversion of virtual machine formats utilizing deduplication metadata
US20110055471A1 (en) Apparatus, system, and method for improved data deduplication
US9454326B1 (en) File metro cluster for site failover of data storage system
US20130290248A1 (en) File storage system and file cloning method
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
WO2012033554A1 (en) On demand virtual machine image streaming
US10042719B1 (en) Optimizing application data backup in SMB
US20130325810A1 (en) Creation and expiration of backup objects in block-level incremental-forever backup systems
US10089037B1 (en) Block active/active access to data storage systems at different locations
US10346077B2 (en) Region-integrated data deduplication
US8595454B1 (en) System and method for caching mapping information for off-host backups
US9329803B1 (en) File system over thinly provisioned volume file in mapped mode
JP2005234860A (ja) バージョン管理システム、バージョン管理サーバ装置、及び記憶デバイス制御装置