JP2023069701A - データ制御装置、ストレージシステム、及びデータ制御方法 - Google Patents
データ制御装置、ストレージシステム、及びデータ制御方法 Download PDFInfo
- Publication number
- JP2023069701A JP2023069701A JP2021181770A JP2021181770A JP2023069701A JP 2023069701 A JP2023069701 A JP 2023069701A JP 2021181770 A JP2021181770 A JP 2021181770A JP 2021181770 A JP2021181770 A JP 2021181770A JP 2023069701 A JP2023069701 A JP 2023069701A
- Authority
- JP
- Japan
- Prior art keywords
- application
- data
- file
- site
- storage device
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims description 82
- 238000005259 measurement Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 claims description 4
- 239000006185 dispersion Substances 0.000 abstract 3
- 238000007726 management method Methods 0.000 description 77
- 238000010586 diagram Methods 0.000 description 36
- MKIMSXGUTQTKJU-UHFFFAOYSA-N Propamocarb hydrochloride Chemical compound [Cl-].CCCOC(=O)NCCC[NH+](C)C MKIMSXGUTQTKJU-UHFFFAOYSA-N 0.000 description 20
- 230000010076 replication Effects 0.000 description 10
- 238000013468 resource allocation Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003362 replicative effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 208000018910 keratinopathic ichthyosis Diseases 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】他拠点にあるデータ単位を使用するアプリケーションを適切に処理できるようにする。【解決手段】アプリケーションで使用するファイルをアクセス可能に管理する分散ファイル・オブジェクトストレージ320を管理する管理ノード100において、分散ファイル・オブジェクトストレージ320は、他拠点のストレージで管理されているファイルに対してアクセス可能であり、管理ノード100は、プロセッサを有し、プロセッサを、アプリケーションによるファイルに関するアクセス状況を特定し、アクセス状況に基づいて、アプリケーションの実行前において、アプリケーションで使用される他拠点のストレージで管理されているファイルについての自拠点の分散ファイル・オブジェクトストレージ320によるキャッシュを制御するように構成する。【選択図】図1
Description
本発明は、アプリケーションに使用する他の拠点にあるデータ単位の読み出しを制御する技術等に関する。
ハイブリッドクラウドやEdge-Core連携のような拠点間でのデータ利活用へのニーズが高まっている。こうした背景から、拠点間のデータ共有のためにファイル仮想化機能を有するファイルストレージシステムに対する関心が高まっている。
ファイル仮想化機能は、他拠点にあるファイルと対応するスタブファイルを自拠点に作成し、あたかも自拠点にファイルがあるかのように見せる機能である。アプリケーションがスタブファイルへリードアクセスを行うと、スタブファイルのリード対象部分のデータが他拠点から取得される。このように、データの拠点間転送が発生することとなるので、アプリケーションの性能低下が発生する虞がある。
例えば、データをキャッシュする技術として、特許文献1には、メディア再生アプリケーションにおいて、再生可能性のあるメディアファイルの先頭部分のデータをメディアサーバからキャッシュし、メディアの再生ビットレートと、ネットワークの転送スループットに基づいてキャッシュデータ量を決定する技術が開示されている。
しかし、特許文献1に開示された技術は、再生ビットレートが決まっているメディアファイルを対象とする技術であり、メディア再生アプリケーション以外には適用することができない。
本発明は、上記事情に鑑みなされたものであり、その目的は、他拠点にあるデータ単位を使用するアプリケーションを適切に処理することのできる技術を提供することにある。
上記目的を達成するため、一観点に係るデータ制御装置は、アプリケーションで使用するデータ単位をアクセス可能に管理するストレージ装置を制御するデータ制御装置であって、前記ストレージ装置は、自拠点とは別の他拠点のストレージ装置で管理されているデータ単位に対してアクセス可能であり、前記データ制御装置は、プロセッサを有し、前記プロセッサは、前記アプリケーションによる前記データ単位に関するアクセス状況を特定し、前記アクセス状況に基づいて、前記アプリケーションの実行前において、前記アプリケーションで使用される前記他拠点のストレージ装置で管理されているデータ単位についての前記自拠点のストレージ装置によるキャッシュを制御する。
本発明によれば、他拠点にあるデータ単位を使用するアプリケーションを適切に処理することができる。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の説明では、「AAAファイル」、「AAA表」、「AAAデータベース」「AAAログ」等の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAファイル」、「AAA表」、「AAAデータベース」「AAAログ」を「AAA情報」と呼ぶことができる。
また、以下の説明では、プログラムを動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばNIC(Network Interface Card))を用いながら行うため、処理の主体がプロセッサとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサ或いはそのプロセッサを有する計算機(システム)が行う処理としてもよい。
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(又は、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(又は参照符号)を使用することがある。
図1は、一実施形態に係る計算機システムの全体構成図である。
計算機システム10は、拠点1の拠点システム20(20-1)と、拠点2の拠点システム20(20-2)と、拠点3の拠点システム20(20-3)とを有する。なお、計算機システム10における拠点の数は、3つに限られず、任意の数でよい。拠点システム20-1と、拠点システム20-2と、拠点システム20-3とは、拠点間ネットワーク11を介して接続されている。拠点間ネットワーク11は、例えば、WAN(Wide Area Network)である。
拠点システム20(20-1,20-2,20-3)は、ストレージシステムの一例であり、管理ノード100と、複数のコンピュートノード200と、複数のストレージノード300と、1以上のクライアントノード400とを含む。管理ノード100と、コンピュートノード200と、ストレージノード300と、クライアントノード400とは、拠点内ネットワーク12を介して接続されている。拠点内ネットワーク12は、例えば、LAN(Local Area Network)である。
管理ノード100は、データ制御装置の一例であり、拠点システム20の各装置を管理する。コンピュートノード200は、計算装置の一例であり、アプリケーションを実行するエンティティ(例えば、コンテナ、仮想計算機(VM)、プロセス)を構成して、アプリケーションの処理を実行する。ストレージノード300は、拠点内の他のストレージノード300とで、ファイルやオブジェクト(データ単位)を分散して管理する分散ストレージを構成する。クライアントノード400は、アプリケーションを利用するユーザにより使用される計算機であり、ユーザによる指示を管理ノード100に送信したり、各種処理結果を表示したりする。
図2は、一実施形態に係る計算機システムの拠点システムのハードウェア構成図である。
拠点システム20は、管理ノード100と、コンピュートノード200と、ストレージノード300と、クライアントノード400とを含む。
管理ノード100は、プロセッサの一例としてのCPU(Central Processing Unit)101と、メモリ102と、ディスク103と、NIC(Network Inteface Card)104と、これらの構成部を接続するバス105とを含む。
NIC104は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、拠点内ネットワーク12を介して拠点内の他の装置と通信し、拠点内ネットワーク12及び拠点間ネットワーク11を介して他拠点の装置と通信する。
CPU101は、メモリ102及び/又はディスク103に格納されているプログラムに従って各種処理を実行する。
メモリ102は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU101で実行されるプログラムや、必要な情報を記憶する。
ディスク103は、例えば、ハードディスクやSSD(Solid State Disk)などであり、CPU101で実行されるプログラムや、CPU101に利用されるデータを記憶する。
コンピュートノード200は、CPU201と、メモリ202と、ディスク203と、NIC204と、これらの構成部を接続するバス205とを含む。コンピュートノード200の各構成部は、管理ノード100の同名の構成部と同様である。
ストレージノード300は、CPU301と、メモリ302と、ディスク303と、NIC304と、これらの構成部を接続するバス305とを含む。ストレージノード300の各構成部は、管理ノード100の同名の構成部と同様である。
クライアントノード400は、CPU401と、メモリ402と、ディスク403と、NIC404と、これらの構成部を接続するバス405とを含む。クライアントノード400の各構成部は、管理ノード100の同名の構成部と同様である。
図3は、一実施形態に係る計算機システムの拠点システムの構成図である。
クライアントノード400は、クライアントプログラム420を格納し、実行する。クライアントプログラム420は、ユーザに指示に基づく各種要求(例えば、アプリケーションのデプロイ要求)を管理ノード100に送信し、管理ノード100からの各種情報を表示出力する。
管理ノード100は、QoS(Quality Of Service)制御プログラム120と、アプリケーション管理プログラム160と、ストレージ管理プログラム180とを格納し、実行する。
QoS制御プログラム120は、デプロイ要求受付プログラム125と、リソース割当管理プログラム130と、モデル管理プログラム135とを含む。
デプロイ要求受付プログラム125は、クライアントノード400からのデプロイ要求を受け付け、要求に基づいて処理を行う。リソース割当管理プログラム130は、アプリケーションモデルに基づいて、アプリケーションを実行するコンテナへのリソース割当量を算出する。リソース割当管理プログラム130は、拠点間ネットワーク帯域管理表900を格納する。モデル管理プログラム135は、アプリケーションモデルの管理や作成の処理を行う。モデル管理プログラム135は、アプリケーションモデル管理表1000を格納する。
アプリケーション管理プログラム160は、アプリケーションを管理する処理を行う。アプリケーション管理プログラム160は、例えば、アプリケーションのデプロイ指示を後述するアプリケーション実行基盤220に送信する。
ストレージ管理プログラム180は、ストレージノード300で構成される分散ファイル・オブジェクトストレージ320の管理処理を行う。具体的には、ストレージ管理プログラム180は、分散ファイル・オブジェクトストレージ320に管理されているデータの操作、ファイルについてのメタデータの検索用のUIのクライアントノード400への提供、メタデータの検索の分散ファイル・オブジェクトストレージ320への指示等を行う。
コンピュートノード200は、実行基盤プログラム227と、リソース割当制御プログラム240とを格納し、実行する。
リソース割当制御プログラム240は、アプリケーションへのリソースの割り当てを制御する。
実行基盤プログラム227は、他のコンピュートノード200(本実施形態では、同一の拠点内のコンピュートノード200)の実行基盤プログラム227と共働することにより、アプリケーション実行基盤220を構成する。
アプリケーション実行基盤220においては、アプリケーションを実行する1以上のコンテナが構成される。図3においては、アプリケーション221-A(アプリケーションA)とアプリケーション221-B(アプリケーションB)とのコンテナが構成された例を示している。
また、アプリケーション実行基盤220には、アプリケーション管理表1400と、IO解析プログラム225が格納される。アプリケーション管理表1400は、アプリケーション実行基盤220においてデプロイできるアプリケーションの情報を格納する。IO解析プログラム225は、アプリケーション実行時のオペレーションログ800を作成し、管理する。
ストレージノード300は、実行基盤プログラム323と、リソース割当制御プログラム340とを格納し、実行する。
リソース割当制御プログラム340は、後述する分散ファイル・オブジェクトストレージ320に対するリソースの割り当てを制御する。
実行基盤プログラム323は、他のストレージノード300(本実施形態では、同一の拠点内のストレージノード300)の実行基盤プログラム323と共働することにより、分散ファイル・オブジェクトストレージ320を構成する。分散ファイル・オブジェクトストレージ320は、ストレージ装置の一例である。
分散ファイル・オブジェクトストレージ320は、ファイル、オブジェクト等のデータ単位を分散して管理する処理を行う。分散ファイル・オブジェクトストレージ320は、ファイル・オブジェクト仮想化プログラム321と、QoS制御プログラム322と、メタデータDB(データベース)プログラム750と、管理情報ファイル600と、ユーザファイル500とを含む。
ファイル・オブジェクト仮想化プログラム321は、他の拠点にあるユーザファイルを自拠点にあるように見えるようにする仮想化処理を行う。例えば、ファイル・オブジェクト仮想化プログラム321は、スタブファイル(スタブオブジェクト)のデータのキャッシュ状況や、ファイルのレプリケーションの状況を管理する。QoS制御プログラム322は、アプリケーションに割り当てるIO制御を行う。
メタデータDBプログラム750は、メタデータDB700を管理し、検索クエリに基づいて、自拠点のメタデータDB700を検索し、検索結果を、要求元に送信する。メタデータDB700は、分散ファイル・オブジェクトストレージ320に管理されているユーザファイルのメタデータを格納する。管理情報ファイル600は、ファイル・オブジェクト仮想化プログラム321が使用する管理情報を格納する。ユーザファイル500は、分散ファイル・オブジェクトストレージ320のユーザが利用するファイル(ユーザファイル)である。
図4は、一実施形態に係る計算機システムの各拠点のファイルシステムが管理するファイル間の関係の一例を示す図である。
本実施形態においては、ファイルシステムで取り扱うファイルの種類は、オリジナルのファイル(オリジナルファイル:図中ではoriginal)と、スタブ化されたファイル(スタブファイル:図中では、stub)と、キャッシュ化されたファイル(キャッシュファイル:図中では、cache)と、レプリケーションされたファイル(レプリカファイル:図中では、replica)とのいずれかとなる。スタブファイル、キャッシュファイル、レプリカファイルは、ファイル・オブジェクト仮想化プログラム321により生成される。
ここで、オリジナルファイルは、その拠点において作成されて管理され、ファイルの実データを含むファイルであり、スタブファイルは、他拠点のオリジナルファイルのデータを参照するために生成されるファイルであり、キャッシュファイルは、スタブファイルの中でファイル内の全データがキャッシュされたファイルであり、レプリカファイルは、バックアップなどを目的として他拠点のオリジナルファイルを複製したファイルである。なお、本実施形態に係るファイルシステムでは、或るオリジナルファイルに対応するスタブファイル、キャッシュファイル、レプリカファイルのUUIDは、オリジナルファイルのUUIDと同じである。
拠点1のファイルシステム(分散ファイル・オブジェクトストレージ320により管理されているファイルシステム)は、ルートディレクトリ550-10、ディレクトリ550-11、550-12、550-13を有する。
ディレクトリ550-11には、ファイル500-11、500-12が格納されている。ファイルシステムにおいて、各ファイル500は、複数の拠点の分散ファイル・オブジェクトストレージ320において一意であるUUID(Universally Unique Identifier)により特定することができる。本実施形態では、各ファイルについては、さらにバージョン管理がされており、特定のバージョンのファイルは、UUID及びバージョン番号により特定可能である。
ファイル500-11は、ファイル名File1であり、UUIDはAAAAであり、バージョン番号はver.1であるオリジナルファイルである。ファイル500-12は、ファイル500-11の更新版のファイルであり、バージョン番号がver.2に更新されている。
ディレクトリ550-12には、ファイル500-21が格納されている。ファイル500-21は、拠点2に格納されているファイル500-51をオリジナルファイルとするスタブファイルである。
ディレクトリ550-13には、ファイル500-31が格納されている。ファイル500-31は、拠点3に格納されているファイル500-71をレプリケーションしたレプリカファイルである。
拠点2のファイルシステムは、ルートディレクトリ550-20、ディレクトリ550-24、550-25を有する。
ディレクトリ550-24には、ファイル500-41が格納されている。ファイル500-41は、拠点1のファイル500-11に対応するキャッシュファイルである。ディレクトリ550-25には、ファイル500-51が格納されている。ファイル500-51については、対応するスタブファイル500-21が拠点1に格納されている。
拠点3のファイルシステムは、ルートディレクトリ550-30、ディレクトリ550-36、550-37を有する。
ディレクトリ550-36には、ファイル500-61が格納されている。ファイル500-61は、拠点1のファイル500-11をレプリケーションしたファイルである。ディレクトリ550-37には、ファイル500-71、500-81が格納されている。ファイル500-71をレプリケーションしたファイル500-21は、拠点1に格納されている。
次に、管理情報ファイル600について説明する。
図5は、一実施形態に係る管理情報ファイルの構成図である。なお、図5における管理情報ファイルは、例えば、図4のファイル500-12に対応している。
管理情報ファイル600は、ユーザファイル500毎に生成される。管理情報ファイル600は、ユーザファイル管理情報610と、部分管理情報650とを含む。
ユーザファイル管理情報610は、UUID611、バージョン612、仮想パス613、ファイル状態614、参照先拠点615、参照元拠点616、レプリケーション先拠点617、レプリケーション元拠点618、及びメタデータ登録済みフラグ619のフィールドを含む。
UUID611には、管理情報ファイル600に対応するユーザファイル500(図5の説明において対応ユーザファイルという)のUUIDが格納される。バージョン612には、対応ユーザファイル500のバージョン番号が格納される。仮想パス613には、拠点におけるファイルシステムでの対応ユーザファイルの格納先を示すファイルパスが格納される。ファイル状態614には、対応ユーザファイルの状態が格納される。ファイルの状態としては、オリジナル(Original)、スタブ(Stub)、キャッシュ(Chache)、複写(Replica)のいずれかがある。
参照先拠点615には、対応ユーザファイルがスタブファイルである場合において、このファイルに対応するオリジナルファイルが格納されている拠点(参照先拠点)の拠点名が格納される。参照元拠点616には、対応ユーザファイルに対応するスタブファイルが格納されている拠点(参照元拠点)の拠点名が格納される。レプリケーション先拠点617には、対応ユーザファイルのレプリカファイルが格納されている拠点(レプリケーション先拠点)の拠点名が格納される。レプリケーション元拠点618には、対応ユーザファイルがレプリカファイルである場合に、このファイルに対応するオリジナルファイルが格納されている拠点(レプリケーション元拠点)の拠点名が格納される。メタデータ登録済みフラグ619には、対応ユーザファイルのメタデータがメタデータDB700に登録されたか否かのフラグが格納される。メタデータ登録済みフラグ619には、メタデータが登録されている場合には、Trueが設定され、登録されていない場合には、Falseが設定される。
部分管理情報650は、対応ユーザファイルの各部分に対応するエントリを含む。部分管理情報650のエントリは、オフセット651、サイズ652、及び部分状態653のフィールドを含む。
オフセット651には、エントリに対応する部分の対応ユーザファイルにおける先頭位置を示すオフセット値が格納される。サイズ652には、エントリに対応する部分のデータサイズが格納される。部分状態653には、エントリに対応する部分の状態が格納される。部分の状態としては、Cache、Dirty、Stubがある。Cacheは、エントリに対応する部分の実データを持っており、実データをレプリケーション先拠点にレプリケーション済みであることを示し、Dirtyは、エントリに対応する部分の実データを持っており、実データをレプリケーション先拠点にレプリケーションしていないことを示し、Stubは、エントリに対応する部分の実データを持っていないこと、すなわち、この部分に対するアクセス要求があった場合に、実データを他拠点からデータ取得(リコール)することが必要であることを示している。
次に、メタデータDB700について説明する。
図6は、一実施形態に係るメタデータデータベースの構成図である。なお、図6におけるメタデータDB700は、図4の拠点1のメタデータDB700に対応している。
メタデータDB700は、各拠点でそれぞれ設けられており、その拠点におけるファイル毎のエントリを格納する。メタデータDB700のエントリは、UUID701、バージョン702、仮想パス703、ファイル状態704、ファイル種別705、及びキーワード706のフィールドを含む。なお、ファイルに対して複数のバージョンが存在する場合には、1つのUUID701に対して、複数の組(バージョン702、仮想パス703、ファイル状態704、ファイル種別705、及びキーワード706)が対応付けられる。
UUID701には、エントリに対応するユーザファイル500(図6の説明において対応ユーザファイルという)のUUIDが格納される。バージョン702には、対応ユーザファイル500における各バージョンに対応するバージョン番号が格納される。仮想パス703には、拠点におけるファイルシステムでの対応ユーザファイル(バージョンがあれば各バージョン)の格納先を示すファイルパスが格納される。ファイル状態704には、対応ユーザファイルの状態が格納される。ファイルの状態としては、オリジナル(Original)、スタブ(Stub)、キャッシュ(Chache)、複写(Replica)のいずれかがある。ファイル種別705には、対応ユーザファイル500のファイル種別が格納される。キーワード706には、対応ユーザファイルに関するキーワードが格納される。
次に、オペレーションログ800について説明する。
図7は、一実施形態に係るオペレーションログの構成図である。
オペレーションログ800は、各拠点でそれぞれにおいて、アプリケーション毎に作成されて管理されている。オペレーションログ800は、後述するアクセスパターンモデル学習データ1220(図11参照)を生成するために使用される。オペレーションログ800は、オペレーション毎のエントリを格納する。
オペレーションログ800のエントリは、アプリID801、コンテナID802、オペレーション811、UUID812、バージョン813、パス814、タイプ815、オフセット816、サイズ817、及びタイムスタンプ818のフィールドを含む。
アプリID801には、エントリに対応するアプリケーションの識別子(アプリID)が格納される。コンテナID802には、エントリに対応するアプリケーションを実行する実体(エンティティ)であるコンテナの識別子(コンテナID)が格納される。なお、アプリケーション実行基盤220において、アプリケーションを実行するエンティティが、仮想計算機(VM)や、プロセスである場合には、コンテナID802には、そのエンティティの識別子を格納すればよい。オペレーション811には、エントリに対応するオペレーション(操作内容)の種別が格納される。オペレーションとしては、例えば、リード(Read)、ライト(Write)、生成(Create)等がある。UUID812には、エントリに対応するオペレーションの対象としたユーザファイルやディレクトリのUUIDが格納される。バージョン813には、エントリに対応するオペレーションの対象としたユーザファイルのバージョン番号が格納される。パス814には、エントリに対応するオペレーションの対象としたユーザファイルやディレクトリについてのパスが格納される。タイプ815には、エントリに対応するオペレーションが対象としたユーザファイル又はディレクトリのタイプが格納される。オフセット816には、エントリに対応するオペレーションが対象としたユーザファイルのデータの先頭を示すオフセット値が格納される。サイズ817には、エントリに対応するオペレーションが対象としたユーザファイルのデータのサイズが格納される。タイムスタンプ818には、エントリに対応するオペレーションが実行された時刻を示すタイムスタンプが格納される。
次に、拠点間ネットワーク帯域管理表900について説明する。
図8は、一実施形態に係る拠点間ネットワーク帯域管理表の構成図である。
拠点間ネットワーク帯域管理表900は、各拠点間のネットワーク帯域を管理する。拠点間ネットワーク帯域管理表900の左端の列は、送信元の拠点(送信元拠点)のそれぞれを示し、上端の行は、送信先の拠点(送信先拠点)のそれぞれを示し、それらに対応するフィールド(送信元拠点の行と、送信先拠点の列とが交差するフィールド)には、その送信元拠点と送信先拠点との間のネットワーク帯域が格納される。
次に、アプリケーションモデル管理表1000について説明する。
図9は、一実施形態に係るアプリケーションモデル管理表の構成図である。
アプリケーションモデル管理表1000は、アプリケーション毎のエントリを格納する。アプリケーションモデル管理表1000のエントリは、アプリケーション1001、性能モデル情報1010と、アクセスパターンモデル情報1020と、許容リードレイテンシ1002とのフィールドを含む。
アプリケーション1001には、エントリに対応するアプリケーションのアプリケーション名が格納される。性能モデル情報1010には、エントリに対応するアプリケーションについての性能モデルの情報が格納される。性能モデル情報1010は、IOオペレーション1011と、性能モデル式1012とのフィールドを含む。IOオペレーション1011には、エントリに対応するアプリケーションにおけるIOオペレーションが格納される。性能モデル式1012には、エントリに対応するアプリケーションのIOオペレーションにおける性能モデルを示す式(性能モデル式)が格納される。
アクセスパターンモデル情報1020には、エントリに対応するアプリケーションについてのアクセスパターンモデルの情報が格納される。アクセスパターンモデル情報1020は、アクセスパターンモデル格納パス1021のフィールドを含む。アクセスパターンモデル格納パス1021には、エントリに対応するアプリケーションのアクセスパターンモデルの格納位置を示すパスが格納される。
許容リードレイテンシ1002には、エントリに対応するアプリケーションで許容されるリードレイテンシ(許容リードレイテンシ)が格納される。ここで、許容リードレイテンシとしては、アプリケーションがタイムアウトしてしまったり、著しく性能が低下してしまったりするリードレイテンシとしてもよい。なお、図9の例では、許容リードレイテンシ1002には、リードレイテンシの値を格納するようにしているが、本発明はこれに限られず、例えば、許容リードレイテンシを推定できるリードレイテンシモデルの情報を格納するようにしてもよい。
次に、性能モデル1100について説明する。
図10は、一実施形態に係る性能モデルの概要を示す図である。
性能モデル1100の作成は、例えば、アプリケーションのIO性能(アクセス性能、アクセス状況の一例)を変化させて、その際のアプリケーション性能(アプリケーションの処理性能)を測定することを繰り返し実行して、図10に示すようなIO性能の変化に対するアプリケーション性能のグラフを作成し、グラフの近似曲線の式、y=g(x)を性能モデルとしてもよい。この性能モデルが、アプリケーションモデル管理表1000の対応するアプリケーションの性能モデル式1012に格納される。性能モデルの作成におけるグラフの作成及び近似曲線式の導出は、既存の表計算ソフトウェアやプログラム等を用いることにより実現できる。なお、性能モデルは、近似曲線として保持することに限られず、例えば、機械学習モデルとして保持してもよい。ここで、アプリケーション性能としては、例えば、アプリケーションにおける単位時間当たりのデータ処理量としてもよく、アプリケーションによる単位時間当たりの要求に対する処理数や、単位時間当たりの処理ファイル数であってもよい。
また、1つのアプリケーションについて複数の性能モデルを作成するようにしてもよい。例えば、アプリケーションにおいて複数のアルゴリズムから選択して実行させることができる場合には、実行するアルゴリズムごとに性能モデルを作成してもよい。また、アプリケーションにおける分析対象のデータ種別により性能が変化する場合には、分析対象のデータ種別毎に性能モデルを作成してもよい。また、アプリケーションのIOオペレーション毎に性能モデルを作成してもよい。
次に、アクセスパターンモデル1200について説明する。
図11は、一実施形態に係るアクセスパターンモデルを説明する図である。
アクセスパターンモデル1200は、アプリケーション毎に生成される。アクセスパターンモデル1200は、機械学習モデル(深層学習モデルを含む)等の形式により保存されてもよい。
アクセスパターンモデル1200は、アクセスパターンモデル入力1240を入力すると、入力に基づいて予測されるアプリケーションのアクセスパターン(アクセス状況の一例)を推論し、推論結果としてアクセスパターンモデル出力1260を出力する。
アクセスパターンモデル入力1240は、処理対象ファイル数1241と、リード回数1242とを含む。処理対象ファイル数1241は、アプリケーションで処理対象とするファイルの数である。リード回数1242は、アプリケーションにおけるアクセスパターンを判定したいリードの順番(リード回数)である。
アクセスパターンモデル出力1260は、パス1261と、オフセット1262と、サイズ1263と、スコア1264とを含む。パス1261には、アクセスが推定されるファイルへのパスである。オフセット1262は、アクセスが推定されるファイルの部分を示すオフセットである。サイズ1263は、アクセスが推定されるファイルの部分のサイズである。スコア1264は、推論結果の確かさを示すスコアである。
アクセスパターンモデル1200は、アクセスパターンモデル学習データ1220を用いて学習される。アクセスパターンモデル学習データ1220は、アクセスパターンモデル1200の対象とするアプリケーションにおけるリード毎のエントリを格納する。アクセスパターンモデル学習データ1220のエントリは、処理対象ファイル数1221と、リード回数1222と、パス1223と、オフセット1224と、サイズ1225とのフィールドを含む。処理対象ファイル数1221には、アプリケーションが処理対象とするファイルの総数が格納される。リード回数1222には、エントリに対応するリードの順番(リード回数)が格納される。パス1223には、エントリに対応するリードが対象としたファイルのパスが格納される。オフセット1224には、エントリに対応するリードが対象としたファイルの部分を示すオフセットが格納される。サイズ1225には、エントリに対応するリードが読み出したデータのサイズが格納される。アクセスパターンモデル学習データ1220のエントリは、オペレーションログ800から必要な情報を抽出することにより作成することができる。
なお、図11では、アクセスパターンモデル1200に対する入出力情報の一例を記載しているが、アクセスパターンモデル1200に対する入出力は図示例に限定されない。例えば、一例として、直前複数回のリードアクセス情報に対応するアクセスパターンモデルを入力し、直後の複数回のリードアクセスを予測して出力するようにしてもよい。また、アクセスパターンモデル1200に対してファイルパスや親ディレクトリのUUIDを入力するようにしたり、出力するようにしたりしてもよい。また、アクセスパターンモデル1200の具体的な構成については特段の限定はなく、機械学習(含む深層学習)に用いられる公知の学習モデルであってもよい。
次に、計算機システム1における処理動作について説明する。
図12は、一実施形態に係るアプリケーションモデル作成処理のフローチャートである。
本実施形態のアプリケーションモデル作成処理では、アプリケーションモデル(性能モデル及びアクセスパターンモデル)を、アプリケーション毎に作成する。アプリケーションモデル作成処理は、例えば、新規アプリケーションを登録する際に管理ノード100により実行される。
管理ノード100のモデル管理プログラム135(厳密には、モデル管理プログラム135を実行するCPU101)は、新たに登録するアプリケーションを実行する指示をアプリケーション実行基盤220に行うことにより、アプリケーションを実行させる(ステップS101)。
モデル管理プログラム135は、実行中のアプリケーションのIOオペレーションのオペレーションログ800及びアプリケーション性能を取得する(ステップS102)。ここで、アプリケーション性能は、処理対象のデータのサイズと、処理時間とに基づいて取得してもよく、例えば、アプリケーションにおける単位時間当たりのデータ処理量としてもよく、アプリケーションによる単位時間当たりの要求に対する処理数や、単位時間当たりの処理ファイル数であってもよい。
次いで、モデル管理プログラム135は、アプリケーション(アプリケーションのエンティティ)に割り当てるIO性能を変更し(ステップS103)、アプリケーション実行基盤220にアプリケーションを実行させ、IOオペレーションのオペレーションログ800及びアプリケーション性能を取得する(ステップS104)。この処理により、性能モデル1100を作成するための、アプリケーション性能と、IO性能との対応関係を示す1つのデータが得られる。
次に、モデル管理プログラム135は、アプリケーションの性能モデル1100を作成可能か否か、具体的には、性能モデル1100を作成するために必要な回数の性能測定を行ったか否かを判断する(ステップS105)。
この結果、性能モデルの作成に必要な回数の測定を行っていない場合(ステップS105:No)には、モデル管理プログラム135は、処理をステップS103に進め、IO性能の変更と、アプリケーション性能測定とを繰り返す。なお、性能モデル1100を作成するために性能測定を行う回数と、性能測定ごとに変更するIO性能の変化量とは、予め決められている。
一方、性能モデルの作成に必要な回数の測定を行っている場合(ステップS105:Yes)には、モデル管理プログラム135は、複数の測定結果に基づいて性能モデル1100を作成する(ステップS106)。
次いで、モデル管理プログラム135は、アプリケーション実行時に取得したオペレーションログ800からアクセスパターンモデル学習データ1220を作成し、アクセスパターンモデル学習データ1220を用いてアクセスパターンモデル1200を生成し(学習させ)(ステップS107)、作成した性能モデル1100とアクセスパターンモデル1200をアプリケーションモデル管理表1000に登録し(ステップS109)、処理を終了する。
このアプリケーションモデル作成処理によると、アプリケーションに対応する性能モデルとアクセスパターンモデルを適切に作成することができる。
次に、ユーザが所望のファイルを検索するために、クライアントノード400によって検索要求を送信したことに起因して実行される拠点間横断メタデータ検索処理及び拠点内メタデータ検索処理について説明する。
図13は、一実施形態に係る拠点間横断メタデータ検索処理のフローチャートである。
拠点間横断メタデータ検索処理S200は、ストレージノード300がクライアントノード400からのファイル検索要求を受領したときに実行が開始される。
まず、メタデータDBプログラム750は、ファイル検索要求を受領すると、自拠点及び他拠点のメタデータDBプログラム750に対して、ファイル検索要求に対応した検索クエリを発行する(ステップS201)。この結果、各拠点のメタデータDBプログラム750は、拠点内メタデータ検索処理S250を実行し、検索結果を要求元のメタデータDBプログラム750に送信することとなる。
次いで、メタデータDBプログラム750は、検索クエリの応答である検索結果を各拠点から受領する(ステップS202)。次いで、メタデータDBプログラム750は、受領した各拠点の検索結果を集約することにより、拠点間横断メタデータ検索結果1300(図15参照)を作成し、ファイル検索要求をしたクライアントノード400に応答する、すなわち、拠点間横断メタデータ検索結果1300を送信する(ステップS203)。
図14は、一実施形態に係る拠点内メタデータ検索処理のフローチャートである。
拠点内メタデータ検索処理S250は、ステップS201で発行された検索クエリをメタデータDBプログラム750が受領した場合に開始される。
まず、メタデータDBプログラム750は、検索クエリを受領すると、メタデータDB700から検索クエリの条件に該当するレコードを抽出する(ステップS251)。次いで、メタデータDBプログラム700は、抽出したレコードから、メタデータへのアクセス権がないレコードを削除する(ステップS252)。次いで、メタデータDBプログラム700は、残ったレコードを検索結果として検索クエリを発行したメタデータDBプログラム750に応答する(ステップS253)。
図15は、一実施形態に係る拠点間横断メタデータ検索結果の構成図である。
図15に示す例は、クライアントノード400により「教育」に関するファイルの検索要求が送信された場合における拠点間横断メタデータ検索結果を示している。
拠点間横断メタデータ検索結果1300は、検索されたファイルに対応するエントリを含む。拠点間横断メタデータ検索結果1300のエントリは、UUID1301、バージョン1302、拠点1303、仮想パス1304、ファイル状態1305、ファイル種別1306、及びキーワード1307のフィールドを含む。
UUID1301には、検索結果のユーザファイル500のUUIDが格納される。バージョン1302には、検索結果のユーザファイル500のパージョン番号が格納される。拠点1303には、検索結果のユーザファイル500が格納されている拠点の拠点名が格納される。仮想パス1304には、検索結果のユーザファイル500が格納されている拠点内の位置を示すファイルパスが格納される。ファイル状態1305には、検索結果のユーザファイル500の状態が格納される。ファイルの状態は、オリジナル(Original)、スタブ(Stub)、キャッシュ(Chache)、複写(Replica)のいずれかである。ファイル種別1306には、検索結果のユーザファイル500の種別が格納される。ファイル種別としては、ドキュメント、画像等がある。キーワード1307には、検索結果のユーザファイル500に関するキーワードが格納される。
次に、アプリケーションデプロイ処理を説明する。
図16は、一実施形態に係るアプリケーションデプロイ処理のフローチャートである。
アプリケーションデプロイ処理は、クライアントノード400においてユーザからアプリケーションの実行要求があった場合に実行される。
クライアントノード400のクライアントプログラム420(クライアントプログラム420を実行するCPU401)は、例えば、アプリケーション実行要求画面1500(図19参照)等を介して、ユーザからアプリケーションの実行要求(アプリケーション実行要求)を受け付けた場合には、実行要求に従ってアプリケーションをデプロイさせる要求(アプリケーションデプロイ要求)を作成し(ステップS301)、アプリケーションデプロイ要求を管理ノード100に送信する(ステップS302)。
管理ノード100のデプロイ要求受付プログラム125は、アプリケーションデプロイ要求を受け付け、QoS制御プログラム120は、実行プラン作成処理(S400:図17参照)を実行することにより、アプリケーション実行プラン表1600(図20参照)を作成し、KPI(Key Performance Indicator)を満たすアプリケーション実行プランをクライアントノード400に提示する(ステップS303)。
クライアントノード400のクライアントプログラム420は、提示されたアプリケーション実行プランを表示させ、ユーザから実行させるアプリケーション実行プランの選択を受け付け、受け付けたアプリケーション実行プランを管理ノード100に送信する(ステップS304)。
管理ノード100のQoS制御プログラム120は、ストレージプログラム180を介して、ストレージノード300のファイル・オブジェクト仮想化プログラム321に、スタブ作成要求を送信し、アプリケーション実行プランで指定されたアプリケーションが参照するデータを含むファイル(オブジェクト)のスタブファイル(スタブオブジェクト)を作成するスタブ作成処理を実行させる(ステップS500:図23)。ここで、スタブ作成要求には、アプリケーション実行プランで指定されたアプリケーションが参照するデータを含むファイルを特定する情報が含まれている。
次いで、QoS制御プログラム120は、ストレージプログラム180を介して、ファイル・オブジェクト仮想化プログラム321に、リコール要求を送信して、アプリケーションのデプロイ前にキャッシュすべきデータを取得するためのリコール処理(ステップS600:図24)を実行させる。ここで、リコール要求には、ユーザに選択されたアプリケーション実行プランにおいて、デプロイ前にキャッシュすべきデータを特定する情報(例えば、拠点名、仮想パス、オフセット、サイズ等の少なくとも一部)が含まれている。
次いで、QoS制御プログラム120は、リソース割当制御プログラム340により、分散ファイル・オブジェクトストレージ320に、デプロイ対象のアプリケーションに割り当てるIO性能を設定させ(ステップS305)、アプリケーション管理プログラム180を介して、実行基盤プログラム227にアプリケーションをデプロイさせる(ステップS306)。
次いで、QoS制御プログラム120は、バックグラウンドでのキャッシュ取得を行う否かを判定し(ステップS307)、キャッシュ取得を行わないと判定した場合(ステップS307:No)には、処理を終了する。一方、キャッシュ取得を行うと判定した場合(ステップS307:Yes)には、QoS制御プログラム120は、ファイル・オブジェクト仮想化プログラム321にデプロイ後にキャッシュを取得するデプロイ後キャッシュ取得処理(ステップS700:図25)を実行させ、その後処理を終了する。
次に、実行プラン作成処理(S400)について説明する。
図17は、一実施形態に係る実行プラン作成処理のフローチャートである。
QoS制御プログラム120は、アプリケーション処理性能と、アプリケーションによる拠点間ネットワーク帯域の使用量とを変えた複数の実行プランを作成する(ステップS401)。
次いで、QoS制御プログラム120は、アプリケーションに対応するアクセスパターンモデル1200を用いて、アプリケーションのリードアクセスを予測する(ステップS402)。
次いで、QoS制御プログラム120は、アプリケーションデプロイ要求にデプロイ前の全データキャッシュの設定があるか否かを判定する(ステップS403)。なお、アプリケーション実行要求画面1500において、デプロイ前の全データキャッシュの設定がされている場合に、アプリケーションデプロイ要求に、この設定が含まれることとなる。
この結果、デプロイ前の全データキャッシュの設定がない場合(ステップS403:No)には、QoS制御プログラム120は、予測したリードアクセスのスコアが所定の閾値以上であるか否かを判定する(ステップS404)。
この結果、予測したリードアクセスのスコアが所定の閾値以上である場合(ステップS404:Yes)には、QoS制御プログラム120は、各実行プランでのデプロイ前キャッシュデータサイズと、アプリケーションに関わる総所要時間(キャッシュ取得時間及びアプリケーション実行時間の合計)とを算出する(ステップS405)。なお、デプロイ前キャッシュデータサイズと、総所要時間とを算出する方法(デプロイ前キャッシュデータ量算出方法1700:図21参照)については、後述する。
次いで、QoS制御プログラム120は、予測したリードアクセスに基づいて、各実行プランでのデプロイ前にキャッシュする部分データを決定し、アプリケーション実行プラン表1600を作成し(ステップS406)、処理を終了する。なお、デプロイ前にキャッシュする部分データを決定する方法(デプロイ前キャッシュ部分決定方法1800:図22参照)については、後述する。
一方、予測したリードアクセスのスコアが所定の閾値以上でない場合(ステップS404:No)には、予測したリードアクセスの信頼性が低いことを示しているので、QoS制御プログラム120は、アプリケーションの許容リードレイテンシが閾値以上であるか否かを判定する(ステップS407)。
この結果、アプリケーションの許容リードレイテンシが閾値以上である場合(ステップS407:Yes)には、QoS制御プログラム120は、各実行プランでのデプロイ前にデータを全てキャッシュしないとして総所要時間を算出し、アプリケーション実行プラン表1600を作成し(ステップS408)、処理を終了する。
一方、デプロイ前の全データキャッシュの設定がある場合(ステップS403:Yes)又はアプリケーションの許容リードレイテンシが閾値以上でない場合(ステップS407:No)には、QoS制御プログラム120は、各実行プランについて、デプロイ前に全データをキャッシュするとして総所要時間を算出し、アプリケーション実行プラン表1600を作成し(ステップS409)、処理を終了する。
次に、アプリケーション管理表について説明する。
図18は、一実施形態に係るアプリケーション管理表の構成図である。
アプリケーション管理表1400は、アプリケーション実行基盤220で実行可能なアプリケーションの情報を管理する表であり、アプリケーション毎のエントリを格納する。アプリケーション管理表1400のエントリは、ID1401と、名称1402と、説明1403とのフィールドを含む。
ID1401には、エントリに対応するアプリケーションの識別情報(アプリID)が格納される。名称1402には、エントリに対応するアプリケーションの名称が格納される。説明1403には、エントリに対応するアプリケーションの説明が格納される。
次に、アプリケーション実行要求画面1500について説明する。
図19は、一実施形態に係るアプリケーション実行要求画面の一例を示す図である。
アプリケーション実行要求画面1500は、例えば、管理ノード100により、アプリケーション管理表1400及び拠点間横断メタデータ検索結果1300等の情報に基づいて作成されて、クライアントノード400に表示される。アプリケーション実行要求画面1500は、使用するアプリケーションを選択するためのアプリケーション選択欄1510と、アプリケーションで対象とするデータに対する指示を入力する対象データ指示欄1520と、KPIを入力するためのKPI入力欄1530と、送信ボタン1504とを有する。
アプリケーション選択欄1510には、アプリケーション管理表1400に登録されているアプリケーションの中の少なくとも一つのアプリケーションが選択可能に表示される。ユーザは、アプリケーション選択欄1510において、デプロイさせて実行させるアプリケーションを選択することとなる。
対象データ指示欄1520は、対象データを選択する対象データ選択欄1521と、対象データを追加する指示を行う追加ボタン1522と、全データキャッシュ指定欄1523とを含む。
対象データ選択欄1521には、例えば、拠点間横断メタデータ検索結果1300に含まれるデータの中の少なくとも一つのデータが選択可能に表示される。ユーザは、対象データ選択欄1521において、アプリケーションで処理対象とするデータを選択することとなる。
追加ボタン1522は、対象データ選択欄1521に表示させるデータを追加する指示を受け付けるボタンである。追加ボタン1522が押下されると、クライアントノード400は、対象データを追加させる指示を管理ノード100に送信し、管理ノード100を介して、対象データを選択するための画面(図示せず)が表示される。
全データキャッシュ指定欄1523には、アプリケーションを開始させる前に、使用する全データをキャッシュさせる指示を指定可能なチェックボックスが表示される。このチェックボックスが指定されると、アプリケーションを実行する前(本実施形態では、デプロイ前)において、アプリケーションに使用される対象データのうちのキャッシュされていない全てのデータについてのキャッシュが行われることとなる。
KPI入力欄1530は、使用するKPIの種類の選択及び、そのKPIの値(目標値の一例)の入力を受け付ける。選択可能なKPIは、例えば、処理時間、処理費用、消費電力、応答時間、又はこれらの組合せであってもよい。
送信ボタン1504は、アプリケーション選択欄1510、対象データ指示欄1520、及びKPI入力欄1530に入力された情報を管理ノード100に送信する指示を受け付けるボタンである。送信ボタン1504が押下されると、クライアントプログラム420は、入力された情報に基づくアプリケーション実行要求を管理ノード100に送信する。
次に、アプリケーション実行プラン表1600について説明する。
図20は、一実施形態に係るアプリケーション実行プラン表の構成図である。
アプリケーション実行プラン表1600は、作成された実行プランについて推定された情報を管理する表であり、作成された実行プラン毎のエントリを含む。アプリケーション実行プラン表1600のエントリは、アプリケーション処理性能1601と、拠点間ネットワーク帯域1602と、総所要時間1603と、KPI達成可否1604とのフィールドを含む。
アプリケーション処理性能1601には、エントリに対応する実行プランに対して設定されたアプリケーションの処理性能(例えば、データ処理速度)が格納される。拠点間ネットワーク帯域1602には、エントリに対応する実行プランに対して設定された拠点間のネットワーク帯域(ネットワーク性能)が格納される。総所要時間1603には、エントリに対応する実行プランにおいてアプリケーションの実行に係る総所要時間が格納される。KPI達成可否1604には、エントリに対応する実行プランにより、指定されたKPIを達成できるか否かの情報(本実施例では、可能又は不可)が格納される。
本実施形態では、例えば、アプリケーション実行プラン表1600におけるKPI達成可否1604が可能であるエントリに対応する実行プランが、クライアントノード400を介してユーザに提示される。
次に、デプロイ前キャッシュデータ量算出方法1700について説明する。
図21は、一実施形態に係るデプロイ前キャッシュデータ量算出方法を説明する図である。
ここで、アプリケーションの処理対象のデータのデータサイズ(処理対象データサイズ)は把握されており、実行プランに対しては、アプリケーション処理性能と、拠点間ネットワーク帯域とが設定されている。
まず、QoS制御プログラム120は、処理対象データサイズをアプリケーション処理性能で除算することにより、アプリケーション実行時間を算出する(図21(1))。また、QoS制御プログラム120は、性能モデル1100に対してアプリケーション処理性能を使用する(図21(2))ことにより、アプリケーションにおけるリードスループットを推定する(図21(3))。
次いで、QoS制御プログラム120は、処理対象のデータサイズと、推定されたリードスループットと、拠点間ネットワーク帯域とに基づいて、拠点間ネットワーク帯域の影響を受けることなくアプリケーションを実行するために、デプロイ前(アプリケーションの実行前)に必要なキャッシュデータサイズを算出する(図21(4))。本実施形態では、キャッシュデータサイズを、処理対象データサイズ×(1-拠点間ネットワーク帯域/リードスループット)により算出する。
次いで、QoS制御プログラム120は、キャッシュデータサイズを拠点間ネットワーク帯域で除算して、キャッシュ取得時間を算出し(図21(5))、アプリケーション実行時間とキャッシュ取得時間とを加算することにより、アプリケーションに関わる総所要時間を算出する。このデプロイ前キャッシュデータ量算出方法によると、実行プランを実行する際に必要なキャッシュデータサイズを適切に算出することができる。
次に、デプロイ前キャッシュ部分決定方法について説明する。
図22は、一実施形態に係るデプロイ前キャッシュ部分決定方法を説明する図である。図22において、実線の矩形は、デプロイ前にキャッシュする部分を示し、点線の矩形は、デプロイ前にキャッシュしない部分を示している。
実行プラン作成処理のステップS407においては、アクセスパターンモデル1200により推定されたアクセスパターンに基づいて、方法1~方法3のいずれかにより、キャッシュ部分を決定する。
アクセスパターンが、シーケンシャルリードであって、リードするファイル順が推定できない場合には、方法1によりキャッシュ部分が決定される。方法1においては、アプリケーションの他の拠点から読み出す必要がある全てのファイルのそれぞれに対して均等な割合で、ファイルの先頭部分からキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがある場合には、FileXと、FileYとのそれぞれについて、先頭部分から各ファイルの全体に対して均等な割合でキャッシュするように決定される。この方法によると、アクセスされる可能性の高いファイルのデータを適切にキャッシュするように決定できる。
アクセスパターンが、シーケンシャルリードであって、リードするファイル順が推定できる場合には、方法2によりキャッシュ部分が決定される。方法2においては、リードするファイル順を推定し、そのファイル順に従い、そのファイルの先頭部分からキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがある場合であって、FileX、FileYの順に読み出される場合には、FileXの先頭部分からキャッシュし、FileXのデータサイズでは必要なキャッシュデータサイズに満たない場合には、次の順番のFIleYの先頭部分からキャッシュするように決定される。この方法によると、アクセスされる可能性の高いファイルについて読み出される可能性が高い順にファイルのデータを適切にキャッシュするように決定できる。
アクセスパターンが、シーケンシャルリードであって、リードするファイルの部分についての順番が推定できる場合には、方法3によりキャッシュ部分が決定される。方法3においては、リードするファイルの部分の順番を推定し、その順番に従い、各部分をキャッシュデータサイズになるまでキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがあり、ファイルXの(1)、FileYの(2)、(3)の順番に読み出される場合には、FileXの(1)からキャッシュし、必要なキャッシュデータサイズに満たない場合には、次の順番のFIleY(2)、(3)の部分をキャッシュするように決定される。この方法によると、アクセスされる可能性の高い部分について、読み出される可能性が高い順に適切にキャッシュするように決定できる。
実行プラン作成処理のステップS408においては、方法4に示すように、他の拠点から読み出すファイルをキャッシュしないように決定される。
実行プラン作成処理のステップS409においては、方法5に示すように、他の拠点から読み出すファイルのデータを全てキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがある場合には、FileXと、FileYの全てのデータをキャッシュするように決定される。
次に、スタブ作成処理(S500)について説明する。
図23は、一実施形態に係るスタブ作成処理のフローチャートである。
スタブ作成処理S500は、例えば、ファイル・オブジェクト仮想化プログラム321が管理ノード100からスタブ作成要求を受領したときに実行される。
まず、ファイル・オブジェクト仮想化プログラム321は、自拠点内でスタブ作成要求により指示されたファイルに対応する管理情報ファイル600とスタブファイルを作成し、メタデータDB700にファイルに対応するレコード(エントリ)を追加する(ステップS501)。
次いで、ファイル・オブジェクト仮想化プログラム321は、スタブファイルの参照先拠点、つまり、スタブファイルに対応するオリジナルファイルが格納されている拠点のオリジナルファイルに対応する管理情報ファイル600を更新させる(ステップS502)。この際、参照先拠点のファイル・オブジェクト仮想化プログラム321は、オリジナルファイルの管理情報ファイル600の参照元拠点616のフィールドに、スタブファイルが作成された拠点名を格納する。
次いで、ファイル・オブジェクト仮想化プログラム321は、スタブ作成要求の要求元の管理ノード100に対して、スタブ作成処理の応答を返し(ステップS503)、処理を終了する。
次に、リコール処理(S600)について説明する。
図24は、一実施形態に係るリコール処理のフローチャートである。
リコール処理S600は、例えば、ファイル・オブジェクト仮想化プログラム321が管理ノード100からリコール要求を受領したときに実行される。
ファイル・オブジェクト仮想化プログラム321は、リコール要求に含まれている対象のデータのオリジナルがある拠点へ、対象データを取得するためのデータ取得要求を発行する(ステップS601)。これに対して、データ取得要求を受信した拠点のファイル・オブジェクト仮想化プログラム321は、対象データを含む応答を返送することとなる。
次いで、ファイル・オブジェクト仮想化プログラム321は、データ取得要求への応答を受領し(ステップS602)、応答に含まれている対象データを、ファイルに反映させ(ステップS603)、反映させたファイルに対応する管理情報ファイル600の部分管理情報650の該当部分の部分状態653をCacheに変更する(ステップS604)。
次いで、ファイル・オブジェクト仮想化プログラム321は、データが反映されたファイルに対応する管理情報ファイル600の部分管理情報650の全部分の部分状態653がCacheであるか否かを判定する(ステップS605)。
この結果、部分管理情報650の全部分の部分状態653がCacheである場合(ステップS605:Yes)には、このファイルの全部分をキャッシュしたことを示しているので、ファイル・オブジェクト仮想化プログラム321は、自拠点のメタデータDB700のこのファイルのファイル状態704と、管理情報ファイル600のファイル状態614をCacheに変更し(ステップS606)、処理をステップS607に進める一方、部分管理情報650の全部分の部分状態653がCacheでない場合(ステップS605:No)には、処理をステップS607に進める。
ステップS607では、ファイル・オブジェクト仮想化プログラム321は、リコール要求の要求元にリコール処理の完了を応答する。
次いで、ファイル・オブジェクト仮想化プログラム321は、アプリケーションで利用されるファイルの他のデータを先読みする先読みキャッシュ取得を行うか否かを判定する(ステップS608)。ここで、先読みキャッシュ取得行うか否かは、例えば、分散ファイル・オブジェクトストレージ320の設定に従って判定される。なお、アプリケーションデプロイ処理S300において、バックグラウンドでのデプロイ後キャッシュ取得処理S700を実行することとなる場合には、ここでの処理は実行しない。
ここで、先読みキャッシュ取得を行うと判定した場合(ステップS608:Yes)、ファイル・オブジェクト仮想化プログラム321は、管理ノード100のQoS制御プログラム120に、デプロイ後キャッシュ取得処理S700(図25参照)を実行させ、処理を終了する一方、先読みキャッシュ取得を行うと判定しなかった場合(ステップS608:No)には、処理を終了する。
次に、デプロイ後キャッシュ取得処理(S700)について説明する。
図25は、一実施形態に係るデプロイ後キャッシュ取得処理のフローチャートである。
QoS制御プログラム120は、アプリケーションに対応するアクセスパターンモデル1200を用いて、アプリケーションのリードアクセスを予測し、次にキャッシュとして取得すべき部分(追加キャッシュ部分)を決定する(ステップS701)。なお、追加キャッシュ部分を決定する方法(デプロイ後キャッシュ部分決定方法1900:図26参照)については、後述する。
次いで、QoS制御プログラム120は、ファイル・オブジェクト仮想化プログラム321に、決定した追加キャッシュ部分を取得するリコール要求を送信して、決定した追加キャッシュ部分を取得するためのリコール処理(ステップS702)を実行させる。ここでのリコール処理は、例えば、ステップS600のステップS601~S607までの処理である。
次いで、QoS制御プログラム120は、十分な量のキャッシュがたまったか否かを判定する(ステップS703)。ここで、十分な量のキャッシュがたまったか否かについては、アプリケーションのリードに対して必要となるデータが不足してしまわないようにするために必要な量のキャッシュがした又は必要なデータの全てのキャッシュが完了したことを判定する。
例えば、バックグラウンドでキャッシュ取得を行う場合、すなわち、アプリケーションデプロイ処理S300でのステップS700の処理においては、必要なデータの全てのデータをキャッシュしているか否かでよく、また、例えば、リード処理S800におけるリコール処理S600において、ステップS700の処理を実行する場合には、例えば、アプリケーションのリードデータサイズに合わせて追加取得するキャッシュデータサイズ(追加キャッシュデータサイズ)を決定してもよい。例えば、追加キャッシュデータサイズは、アプリケーションのリードデータサイズ×(拠点間ネットワーク帯域/リードスループット)としてもよい。このデプロイ後キャッシュ取得処理によると、アプリケーションを実行した後において、後続して利用される可能性の高いデータを適切にキャッシュすることができる。
次に、デプロイ後キャッシュ部分決定方法1900について説明する。
図26は、一実施形態に係るデプロイ後キャッシュ部分決定方法を説明する図である。図26において、実線の矩形は、既にキャッシュしたキャッシュ済部分を示し、点線の矩形は、未だキャッシュしていない未キャッシュ部分を示し、実線の矢印を含む矩形は、次にキャッシュすべき追加キャッシュ部分を示している。
デプロイ後キャッシュ取得処理のステップS701においては、アクセスパターンモデル1200により推定されたアクセスパターンに基づいて、方法1-1,1-2,2,3のいずれかにより、追加キャッシュ部分を決定する。
アクセスパターンが、シーケンシャルリードであって、リードするファイル順が推定できない場合には、方法1―1又は、方法1-2により追加キャッシュ部分が決定される。方法1-1においては、他の拠点から読み出す必要がある全てのファイルのそれぞれに対して均等な割合で、ファイルのキャッシュ済部分の次からキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがある場合には、FileXと、FileYとのそれぞれについて、キャッシュ済部分の直後から各ファイルの全体に対して均等な割合でキャッシュするように決定される。方法1-2においては、実際にファイルに対してアクセスがあった場合において、実際にアクセスされたファイルのキャッシュ済部分の次からキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがあり、実際にFileXに対するアクセスがあった場合には、FileXのキャッシュ済部分の直後から次にキャッシュするように決定される。この方法によると、利用される可能性の高いデータを適切にキャッシュさせることができる。
アクセスパターンが、シーケンシャルリードであって、リードするファイル順が推定できる場合には、方法2によりキャッシュ部分が決定される。方法2においては、リードするファイル順を推定し、そのファイル順に従い、そのファイルのキャッシュ済部分の次からキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがある場合であって、FileX、FileYの順に読み出される場合には、FileXのキャッシュが終了した場合には、次の順番のFileYのキャッシュ済部分の次からキャッシュするように決定される。この方法によると、利用される可能性の高いデータを適切にキャッシュさせることができる。
アクセスパターンが、所定の範囲内においてシーケンシャルリードであって、リードするファイルの部分についての順番が推定できる場合には、方法3によりキャッシュ部分が決定される。方法3においては、リードするファイルの部分の順番を推定し、その順番に従い、キャッシュ済の部分の次からキャッシュするように決定される。例えば、他の拠点から読み出すファイルとして、FileXと、FileYとがあり、ファイルXの(1)、FileYの(2)、(3),(4)の順番に読み出される場合には、FileYの(3)までキャッシュ済であれば、次の順番のFIleY(4)の部分からキャッシュするように決定される。この方法によると、利用される可能性の高い部分のデータを適切にキャッシュさせることができる。
次に、リード処理(S800)について説明する。
図27は、一実施形態に係るリード処理のフローチャートである。
リード処理は、アプリケーション実行基盤220にデプロイされた実行されているアプリケーション221からのリード要求をファイル・オブジェクト仮想化プログラム321が受領した場合に実行される。ここで、リード要求には、読み出す対象のファイルの部分を特定可能な情報が含まれている。
ファイル・オブジェクト仮想化プログラム321は、リード要求の対象のファイル(対象ファイル)に対応する管理情報ファイル600を参照し、対象ファイルの読み出す対象の部分の部分状態653がStubであるか否かを判定する(ステップS801)。
この結果、対象部分の部分状態がStubでない場合(ステップS801:No)には、対象ファイルの対象部分のデータが、自拠点に既に存在することを意味しているので、ファイル・オブジェクト仮想化プログラム321は、処理をステップS803に進める。
一方、対象部分の部分状態がStubである場合(ステップS801:Yes)には、ファイル・オブジェクト仮想化プログラム321は、決定した対象部分を取得するためのリコール処理を実行し(ステップS802)、処理をステップS803に進める。ここでのリコール処理は、例えば、ステップS600と同様な処理でよい。
次いで、ファイル・オブジェクト仮想化プログラム321は、このアプリケーションのオペレーションログ800に対して、リード要求のエントリを追記し(ステップS803)、ユーザファイルから対象部分のデータを読み出してアプリケーションに返答する(ステップS804)。
このリード処理によると、既にキャッシュしているデータについては、リコール処理することなく、迅速にアプリケーションに対象部分のデータを返答することができる。
なお、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態において、拠点間のネットワークの情報としてネットワーク帯域を管理するようにしていたが、本発明はこれに限られず、例えば、拠点間のジッタや、レイテンシなどを管理し、利用するようにしてもよい。
また、上記実施形態において、アプリケーションモデル管理表1000においては、IOオペレーションごとに1つの性能モデルを管理するようにしていたが、例えば、アクセスするデータの種類、例えば、データベース、ファイル、ブロックに応じて性能モデルを管理するようにしてもよく、また、画像ファイル、動画ファイル、音声ファイル等に応じて性能モデルを管理するようにしてもよく、1番目に指定されたファイル(例えば、設定ファイル)と2番目に指定されたファイル(例えば、分析対象ファイル)との組み合わせのそれぞれに対して性能モデルを管理するようにしてもよい。
また、上記実施形態においては、拠点システム20においては、複数のストレージノード300により、分散してファイルやオブジェクトを管理する分散ファイル・オブジェクトストレージ320を構成するようにしていたが、本発明はこれに限られず、分散ファイル・オブジェクトストレージ320に代えて、ファイルを分散して管理する分散ファイルシステムとしてもよく、また、オブジェクトを分散して管理する分散オブジェクトシステムとしてもよく、また、分散して管理を行わないファイルストレージやオブジェクトストレージとしてもよく、また、データをブロック単位で管理するブロックストレージとしてもよい。
また、上記実施形態において、クライアントノード400と同じ拠点内のコンピュートノード200及びストレージノード300とを利用してアプリケーションを実行する例を示していたが、本発明はこれに限られず、例えば、アプリケーションをクライアントノード400とは違う場所にあるパブリッククラウドのコンピュートノードとストレージノードとによりアプリケーションを実行するようにしてもよい。このような構成とした場合には、アプリケーションをデプロイする前にデータをキャッシュさせておくことにより、アプリケーションをデプロイしてからの処理が終わるまでの時間を抑制でき、パブリッククラウドにおいてデプロイを起因して課金する場合における課金額を抑えることができる。
また、上記実施形態においては、アプリケーションデプロイ処理では、ユーザにより実行するアプリケーション実行プランの選択を受けて、後続の処理を実行するようにしていたが、本発明はこれに限られず、例えば、KPIを満たすアプリケーション実行プランをユーザによる選択によらずに実行するようにしてもよい。
また、上記実施形態においては、アプリケーションをデプロイする前にデータをキャッシュするようにしていたが、本発明はこれに限られず、アプリケーションをデプロイしたが実際にアプリケーションの処理を開始する前にデータをキャッシュするようにしてもよい。
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、専用のハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記録メディア(例えば可搬型の記録メディア)であってもよい。
10…計算機システム、11…拠点間ネットワーク、12…拠点内ネットワーク、20,20-1,20-2,20-3…拠点システム、100…管理ノード、120…QoS制御プログラム、200…コンピュートノード、220…アプリケーション実行基盤、221…アプリケーション、300…ストレージノード、320…分散ファイル・オブジェクトストレージ、321…ファイル・オブジェクト仮想化プログラム、400…クライアントノード
Claims (15)
- アプリケーションで使用するデータ単位をアクセス可能に管理するストレージ装置を管理するデータ制御装置であって、
前記ストレージ装置は、自拠点とは別の他拠点のストレージ装置で管理されているデータ単位に対してアクセス可能であり、
前記データ制御装置は、プロセッサを有し、
前記プロセッサは、
前記アプリケーションによる前記データ単位に関するアクセス状況を特定し、
前記アクセス状況に基づいて、前記アプリケーションの実行前において、前記アプリケーションで使用される前記他拠点のストレージ装置で管理されているデータ単位についての前記自拠点のストレージ装置によるキャッシュを制御する
データ制御装置。 - 前記アクセス状況は、前記アプリケーションによる前記データ単位に対するアクセス性能を含み、
前記プロセッサは、
前記アクセス性能に基づいて、前記アプリケーションを実行する前にキャッシュすべき前記データ単位のデータのサイズであるキャッシュサイズを決定し、
決定した前記キャッシュサイズのデータをキャッシュするように前記自拠点の前記ストレージ装置を制御する
請求項1に記載のデータ制御装置。 - 前記データ制御装置は、前記アプリケーションの処理性能を実現可能なアクセス性能を特定可能な性能モデルを有し、
前記プロセッサは、
前記アプリケーションに対する処理性能に関わる目標としての目標値を受け付け、
前記性能モデルに基づいて、前記目標値を満たすアクセス性能を特定する
請求項2に記載のデータ制御装置。 - 前記プロセッサは、
前記アプリケーションの処理性能を変えて実際に実行させた場合のアクセス性能の測定を行い、前記測定の結果に基づいて前記性能モデルを作成する
請求項3に記載のデータ制御装置。 - 前記プロセッサは、
前記アクセス性能と、前記自拠点のストレージ装置と前記拠点のストレージ装置との間のネットワーク性能とに基づいて、前記キャッシュサイズを決定する
請求項2に記載のデータ制御装置。 - 前記アクセス状況は、前記アプリケーションによる前記データ単位に対するアクセスパターンを含み、
前記プロセッサは、
前記アクセスパターンに基づいて、前記データ単位のデータの中のキャッシュする部分を制御する
請求項1に記載のデータ制御装置。 - 前記データ制御装置は、前記アプリケーションによる前記アクセスパターンを推定可能なアクセスパターンモデルを有し、
前記プロセッサは、
前記アクセスパターンモデルに基づいて、前記アプリケーションによるアクセスパターンを特定する
請求項6に記載のデータ制御装置。 - 前記アクセスパターンモデルは、アプリケーションのリードの順番を入力すると、そのリードの順番においてアクセスされるデータ単位の部分を示すアクセス部分情報を出力し、
前記プロセッサは、前記アクセス部分情報に基づいて、前記データ単位のデータの中のキャッシュする部分を制御する
請求項7に記載のデータ制御装置。 - 前記プロセッサは、
前記アプリケーションを実行した場合のアクセスログを用いて機械学習することにより前記アクセスパターンモデルを作成する
請求項8に記載のデータ制御装置。 - 前記アクセスパターンモデルは、さらに、前記アクセス部分情報の確かさを示すスコアを出力し、
前記プロセッサは、
前記スコアが所定以上である場合に、前記データ単位について所定のキャッシュサイズのデータをキャッシュするように制御し、前記スコアが所定以上でない場合に、前記データ単位の全てをキャッシュしない又は前記データ単位の全てのデータをキャッシュするように制御する
請求項8に記載のデータ制御装置。 - 前記プロセッサは、
前記アプリケーションが実行された後に、前記自拠点の前記ストレージ装置に対して、前記アプリケーションで使用するデータ単位のデータのうちの前記自拠点の前記ストレージ装置に読み出していないデータをさらに読み出すように制御する
請求項1に記載のデータ制御装置。 - 前記アプリケーションは、所定の計算装置にデプロイされて実行され、
前記プロセッサは、前記計算装置に前記アプリケーションをデプロイする前に、前記アプリケーションで使用される前記他拠点のストレージ装置で管理されているデータ単位について前記自拠点のストレージ装置によるキャッシュさせる
請求項1に記載のデータ制御装置。 - アプリケーションを実行可能な計算装置と、前記アプリケーションで使用するデータ単位をアクセス可能に管理するストレージ装置と、前記計算装置と前記ストレージ装置を管理するデータ制御装置とを備えるストレージシステムであって、
前記ストレージ装置は、自拠点とは別の他拠点のストレージ装置で管理されているデータ単位に対してアクセス可能であり、
前記データ制御装置は、
前記計算装置で実行される前記アプリケーションによる前記データ単位に関するアクセス状況を特定し、
前記アクセス状況に基づいて、前記計算装置での前記アプリケーションの実行前において、前記アプリケーションで使用される前記他拠点のストレージ装置で管理されているデータ単位についての前記自拠点の前記ストレージ装置によるキャッシュを制御する
ストレージシステム。 - 前記ストレージ装置は、
前記計算装置により実行されている前記アプリケーションからデータ単位の読み出しがあった場合に、前記アプリケーションで使用されるデータ単位のデータであって前記他拠点の前記ストレージ装置から読み出されていないデータを読み出す
請求項13に記載のストレージシステム。 - アプリケーションで使用するデータ単位をアクセス可能に管理するストレージ装置を管理するデータ制御装置によるデータ制御方法であって、
前記ストレージ装置は、自拠点とは別の他拠点のストレージ装置で管理されているデータ単位に対してアクセス可能であり、
前記データ制御装置は、
前記アプリケーションによる前記データ単位に関するアクセス状況を特定し、
前記アクセス状況に基づいて、前記アプリケーションの実行前において、前記アプリケーションで使用される前記他拠点のストレージ装置で管理されているデータ単位についての前記自拠点のストレージ装置によるキャッシュを制御する
データ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021181770A JP2023069701A (ja) | 2021-11-08 | 2021-11-08 | データ制御装置、ストレージシステム、及びデータ制御方法 |
US17/902,078 US11977487B2 (en) | 2021-11-08 | 2022-09-02 | Data control device, storage system, and data control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021181770A JP2023069701A (ja) | 2021-11-08 | 2021-11-08 | データ制御装置、ストレージシステム、及びデータ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023069701A true JP2023069701A (ja) | 2023-05-18 |
Family
ID=86228376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021181770A Pending JP2023069701A (ja) | 2021-11-08 | 2021-11-08 | データ制御装置、ストレージシステム、及びデータ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11977487B2 (ja) |
JP (1) | JP2023069701A (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337120B2 (en) * | 2002-02-07 | 2008-02-26 | Accenture Global Services Gmbh | Providing human performance management data and insight |
US20090125634A1 (en) | 2007-11-08 | 2009-05-14 | Microsoft Corporation | Network media streaming with partial syncing |
US20120290789A1 (en) * | 2011-05-12 | 2012-11-15 | Lsi Corporation | Preferentially accelerating applications in a multi-tenant storage system via utility driven data caching |
US9298719B2 (en) * | 2012-09-04 | 2016-03-29 | International Business Machines Corporation | On-demand caching in a WAN separated distributed file system or clustered file system cache |
JP6350162B2 (ja) * | 2014-09-18 | 2018-07-04 | 富士通株式会社 | 制御装置 |
JP2016143166A (ja) * | 2015-01-30 | 2016-08-08 | 富士通株式会社 | 制御装置,ストレージシステム及び制御プログラム |
KR20170109108A (ko) * | 2016-03-17 | 2017-09-28 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
US11514996B2 (en) * | 2017-07-30 | 2022-11-29 | Neuroblade Ltd. | Memory-based processors |
EP3797554B1 (en) * | 2018-05-22 | 2022-04-06 | Lenovo (Singapore) Pte. Ltd. | Measuring access network performance for a multi-access data connection |
US10846227B2 (en) * | 2018-12-21 | 2020-11-24 | Paypal, Inc. | Controlling cache size and priority using machine learning techniques |
US10848379B2 (en) * | 2019-01-30 | 2020-11-24 | Hewlett Packard Enterprise Development Lp | Configuration options for cloud environments |
-
2021
- 2021-11-08 JP JP2021181770A patent/JP2023069701A/ja active Pending
-
2022
- 2022-09-02 US US17/902,078 patent/US11977487B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11977487B2 (en) | 2024-05-07 |
US20230146399A1 (en) | 2023-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846137B2 (en) | Dynamic adjustment of application resources in a distributed computing system | |
US9747013B2 (en) | Predictive caching and fetch priority | |
US10459892B2 (en) | Filesystem hierarchical aggregate metrics | |
JP4516306B2 (ja) | ストレージネットワークの性能情報を収集する方法 | |
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
JP4327481B2 (ja) | データベースシステム、サーバ、問い合わせ投入方法及びデータ更新方法 | |
US20160299919A1 (en) | Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job | |
JP5701398B2 (ja) | 計算機システム、データ管理方法及びプログラム | |
WO2017092447A1 (en) | Method and apparatus for data quality management and control | |
CN105308576A (zh) | 确定和监测计算机资源服务的性能能力 | |
CN104885064B (zh) | 用于管理计算机系统的数据高速缓存的方法和装置 | |
US20180176290A1 (en) | System and method for reducing data streaming and/or visualization network resource usage | |
US20180107404A1 (en) | Garbage collection system and process | |
CN107409142A (zh) | 存储受约束的共享内容项同步 | |
JP7192645B2 (ja) | 情報処理装置、分散処理システム及び分散処理プログラム | |
CN109154933A (zh) | 分布式数据库系统以及分布和访问数据的方法 | |
CN109947667A (zh) | 数据访问预测方法和装置 | |
US20130086021A1 (en) | Apparatus and method for controlling data access | |
JP2008225686A (ja) | 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム | |
JP2023069701A (ja) | データ制御装置、ストレージシステム、及びデータ制御方法 | |
JP6506773B2 (ja) | 情報処理装置、方法およびプログラム | |
US11036439B2 (en) | Automated management of bundled applications | |
JP4173189B2 (ja) | ファイル管理プログラム | |
US20230297486A1 (en) | Arrangement plan search device, computer system, and arrangement plan search method | |
JP2020119445A (ja) | 情報処理装置、情報処理プログラム、及び情報処理システム |