JP6589500B2 - Information processing terminal, shared file system, shared file method, and shared file program - Google Patents
Information processing terminal, shared file system, shared file method, and shared file program Download PDFInfo
- Publication number
- JP6589500B2 JP6589500B2 JP2015184912A JP2015184912A JP6589500B2 JP 6589500 B2 JP6589500 B2 JP 6589500B2 JP 2015184912 A JP2015184912 A JP 2015184912A JP 2015184912 A JP2015184912 A JP 2015184912A JP 6589500 B2 JP6589500 B2 JP 6589500B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- terminal
- unit
- data
- pairing
- 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.)
- Active
Links
Images
Description
本発明は、クライアント端末側から共有ファイル(ストレージ)に対するデータの読み出しおよび書き込みを管理することができる情報処理端末等に関する。 The present invention relates to an information processing terminal that can manage reading and writing of data with respect to a shared file (storage) from a client terminal side.
近年、ストレージサーバ等において、記憶装置としてHDD(Hard Disc Drive)の代わりにSSD(Solid State Drive)を搭載しているもの、又はその両方を搭載しているものがある。この場合、多くはOS(operation system)格納用には高速で小容量のSSDを使い、データ格納用には低速だが低価格かつ大容量のHDDを用いる。可能な限り最速のシステムを構築しようとすると、データ格納用に最速のSSDを使用すればよいが、大容量SSDは高価である。 In recent years, some storage servers or the like are equipped with SSDs (Solid State Drives) instead of HDDs (Hard Disc Drives) as storage devices, or both. In this case, many use high-speed and small-capacity SSDs for OS (operation system) storage, and low-speed but low-cost and large-capacity HDDs for data storage. In order to construct the fastest system possible, the fastest SSD may be used for data storage, but a large capacity SSD is expensive.
このため、低速で大容量のHDDデータドライブのキャッシュとして、高速で小容量のSSDを利用する手法が用いられている。例えば、ストレージのデータ最適配置機能や、Linux(リナックス;登録商標)のbcasheなどがこれにあたる。 For this reason, as a cache of a low-speed and large-capacity HDD data drive, a method using a high-speed and small-capacity SSD is used. For example, this is the optimal data placement function for storage and bcashe of Linux (registered trademark).
しかしながら、この手法では、キャッシュ(SSD等)から安定したストレージ(HDD等)までの距離が遠い場合、突発的に大量に発生するIO(Input/Output)キャッシュとしては適切に動作しないことがある。また、クライアント端末が非常に多い場合、キャッシュ内の記憶領域がすぐに飽和して性能低下を招きやすい。 However, with this method, when the distance from the cache (SSD, etc.) to the stable storage (HDD, etc.) is long, it may not operate properly as an IO (Input / Output) cache that occurs suddenly in large quantities. In addition, when there are a large number of client terminals, the storage area in the cache is quickly saturated and performance is likely to deteriorate.
さらに、データ更新が多いシステムで使用する場合には、共有ファイルシステム間のキャッシュコヒーレンシを保つため頻繁にキャッシュフラッシュを行う必要があり、これはIO性能の低下を招く要因となっていた。具体的例としては、この手法を用いて高性能コンピューティング(単位時間当たりの計算量が非常に多い計算処理)を実行する場合、低いIO性能が起因し、途中の計算結果を一時格納する記憶領域(チェックポイントファイル)としては、高い性能を発揮しない。 Further, when used in a system with frequent data updates, it is necessary to frequently perform cache flushing in order to maintain cache coherency between shared file systems, which causes a decrease in IO performance. As a specific example, when high-performance computing (calculation processing with a very large amount of calculation per unit time) is executed using this technique, storage that temporarily stores intermediate calculation results due to low IO performance As an area (checkpoint file), it does not show high performance.
この問題を解消するため、複数のクライアント端末に処理を分散させるストレージシステムが開発されている。当該クライアント端末の各々は高速IO可能なキャッシュ(SDD)を備えている。 In order to solve this problem, a storage system that distributes processing to a plurality of client terminals has been developed. Each of the client terminals includes a cache (SDD) capable of high-speed IO.
このようなストレージシステムにおいて、リモートコピー時にバッファのデータ洩れを防ぐためにIO制限を実行する技術が開示されている(特許文献1)。 In such a storage system, a technique for executing IO restriction to prevent buffer data leakage during remote copy is disclosed (Patent Document 1).
また、このようなストレージシステムにおいて、シン・プロビジョニング機能と高可用性を両立させるための技術が開示されている(特許文献2)。 Further, in such a storage system, a technique for achieving both a thin provisioning function and high availability is disclosed (Patent Document 2).
特許文献1および2の技術では、クライアント端末間でキャッシュを相互に利用するためにペアリング機構を設ける。しかしながらクライアント端末のペアは自動に検出されるものではなく、そのペアリングに手間を要していた。更に、ペアリングの単位はディスク単位であり、小規模なタスクを実現するには頻繁なペアリング処理が必要となっていた。
In the techniques of
本発明は、上記の問題点を解決するべくなされた。本発明は、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い情報処理端末等を提供することを主たる目的とする。 The present invention has been made to solve the above problems. The main object of the present invention is to provide an information processing terminal or the like that automatically performs appropriate pairing processing in a shared storage system and has high reliability at the time of cache writing.
上記の課題を解決するために、本発明の第1の特徴は、共有するファイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する、
情報処理端末である。
In order to solve the above-described problem, the first feature of the present invention is to detect a terminal that can connect to a shared file system and cache data for each file unit in a cache memory area, Instruct to write to the cache memory area of the pairing device,
An information processing terminal.
本発明の第2の特徴は、上記の情報処理端末を複数と、
情報処理端末の各々がデータファイルを共有するための共有ファイルシステムサーバと、を備える共有ファイルシステムである。
A second feature of the present invention is that a plurality of the information processing terminals are provided,
A shared file system comprising: a shared file system server for sharing data files among information processing terminals.
本発明の第3の特徴は、共有するファイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、
キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する、
共有ファイル方法である。
The third feature of the present invention is to detect a terminal that can be connected to a shared file system and paired cache data for each file unit of the cache memory area,
Instructing the cache data to be written to the cache memory area of the pairing device.
It is a shared file method.
本発明の第4の特徴は、共有するファイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、
キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する
機能をコンピュータに実行させる共有ファイルプログラムである。
A fourth feature of the present invention is to detect a terminal that can be connected to a shared file system and paired cache data for each file unit of a cache memory area,
This is a shared file program that causes a computer to execute a function of instructing cache data to be written into a cache memory area of a terminal to be paired.
本発明によれば、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い情報処理端末等を提供することができる。 According to the present invention, it is possible to automatically perform an appropriate pairing process in a shared storage system and provide an information processing terminal or the like having high reliability at the time of cache writing.
次に図面を参照して、本発明の実施形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は本発明の実施形態における構成を模式的に表している。更に以下に記載される本発明の実施形態は一例であり、その本質を同一とする範囲において適宜変更可能である。 Next, an embodiment of the present invention will be described with reference to the drawings. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals. However, the drawings schematically show the configuration of the embodiment of the present invention. Furthermore, the embodiment of the present invention described below is an example, and can be appropriately changed within a range in which the essence is the same.
<本発明の第1の実施形態>
バースト性の高いIO処理には、共有ファイルシステムであっても、個々のIO端末は、データを共有する必要がないものも多い(特に中間ファイル等)。このため、このようなファイルについては、可能な限りIO端末内で閉じて処理をし、最終的な結果を共有ファイルシステムに書き戻す手法が用いられる(ステージング、デステージング等)。本発明の第1の実施形態においては、このようなIO処理を自動化する。これは、大容量で安価なSSD等の高速キャッシュメモリを用いた、低レイテンシで且つ広帯域における、ローカルファイルシステム内でのIO処理、即ち、共有ファイルシステムへのIO帯域とローカルファイルシステムのIO帯域とを可能な限り等しくすることにより、実現できる。
<First Embodiment of the Present Invention>
Many IO processes with a high burst property do not need to share data even with a shared file system (especially intermediate files). For this reason, such a file is closed in the IO terminal as much as possible, processed, and the final result is written back to the shared file system (staging, destaging, etc.). In the first embodiment of the present invention, such IO processing is automated. This is a low-latency and high-bandwidth IO process using a large-capacity and inexpensive high-speed cache memory such as SSD, that is, the IO bandwidth to the shared file system and the IO bandwidth of the local file system Can be realized by making them as equal as possible.
(共有ファイルシステム)
本発明の第1の実施形態に係る共有ファイルシステム100について図1を参照して説明する。第1の実施形態に係る共有ファイルシステム100は、図1に示すように、複数のIO端末(情報処理端末)1,2,3と、共有ファイルシステムサーバ(以下、「共有FSサーバ」と記載)4とを備え、各IO端末1〜3および共有FSサーバ4間はネットワーク5で接続され、データ通信可能となっている。
(Shared file system)
A shared
共有FSサーバ4は、IO端末1〜3間で共有するデータファイルを管理するファイルシステム機能を備える。共有FSサーバ4は、共有ファイルを格納する記憶装置である共有ファイル部4aを備える。
The shared
IO端末1〜3は同じ構成を備える。IO端末2は、IOキャッシュ部25を備える。IO端末3は、IOキャッシュ部35を備える。尚、以下においては、便宜上、自端末はIO端末1、他端末はIO端末2,3として説明する。
The
(IO端末)
IO端末1〜3のOSは、図1に示すようにユーザ領域(アプリケーション領域)、カーネル領域、ハードウェア領域から構成される。ユーザ領域は、各IO端末1〜3のユーザが各々の仕様に応じて変更可能な領域である。カーネル領域は、全てのIO端末1〜3が共通して備えるOSの管理部であり、具体的には、IO端末1〜3のリソースを管理し、ハードウェア領域内のハードウェア資源とユーザ領域内のソフトウェアコンポーネント(アプリケーションプログラム等)との間のセッション、トランザクション等のデータのやりとりを管理する。例えば、動作中のプログラムの実行状態を管理し、ハードウェア資源を管理してアプリケーションプログラムがハードウェア機能を利用する機構を提供する。
(IO terminal)
As shown in FIG. 1, the OS of the
ユーザ領域には、アプリケーション部11、入出力ライブラリ部12、IOキャッシュ部15が存在する。カーネル領域には、アプリケーション仮想ファイルシステム部(以下、「AP仮想FS部」と記載)13、ユーザファイルシステム制御部(以下、「ユーザFS制御部」と記載)14、IO仮想ファイルシステム部(以下、「IO仮想FS部」と記載)16、ローカルファイルシステム部(以下、「ローカルFS部」と記載)161および共有ファイルシステムクライアント制御部(以下、「共有FSクライアント制御部」と記載)162が存在する。ハードウェア領域には、SDD17およびネットワーク接続部18が存在する。
An
先ず、ユーザ領域の各部について説明する。 First, each part of the user area will be described.
IOキャッシュ部15は、キャッシュ(SSD17)および共有FSサーバ4に対するIO制御を実行するための機構であり、IO処理用のキャッシュデータファイルを作成する。IOキャッシュ部15は、IOキャッシュ制御部151およびデータ流量制御部152を備える。
The
IOキャッシュ制御部151は、ペアリング部154を備える。ペアリング部154は、キャッシュデータファイルの複製を持たせるためのペアリング先IO端末を選出し、選出されたIO端末との間でペアリング処理およびペアリング解除処理等を行う。
The IO
IOキャッシュ制御部151はネットワーク接続部18にアクセス可能であり、ネットワーク5を経由して、他のIO端末2,3が備えるIOキャッシュ部25、35とデータ通信する。
The IO
IOキャッシュ制御部151は、データ流量制御部152と接続されている。
The IO
データ流量制御部152は、IO仮想FS部16を経由して、共有FSクライアント制御部162にIOリクエストを行う。
The data flow
データ流量制御部152は、定期的に自身(IO端末1)のキャッシュ統計情報を、ネットワーク接続部18を介して、他のIO端末2,3に通知する。尚、通知したキャッシュ統計情報は、キャッシュ統計情報記憶部153に格納される。
The data flow
また、データ流量制御部152は、ネットワーク接続部18を介して、他のIO端末2,3からキャッシュ統計情報を収集し、収集したキャッシュ統計情報をキャッシュ統計情報記憶部153に格納する。
In addition, the data flow
自IO端末1および他IO端末2,3が発行するキャッシュ統計情報は、図2に示すように、「IP(internet protocol)アドレス」、「キャッシュ空き容量」、「共有FSデータ流量」、「更新時刻」をデータ項目として有する。「IPアドレス」は、IO端末1〜3を識別可能なIPアドレスである。「キャッシュ空き容量」は当該IPアドレスを有するIO端末1〜3のSSD17の空き容量を示す。「共有FSデータ流量」は共有FSサーバ4に対する各IO端末1〜3からのデータ流量を、共有FSサーバ4が毎秒処理できるI/Oアクセスの数(IOPS)と、毎秒のデータ量(MByte/s)とで計測した値である。「更新時刻」は共有FSサーバ4にてデータの更新処理が行われた時刻のタイムスタンプである。
As shown in FIG. 2, the cache statistical information issued by the
キャッシュ統計情報記憶部153内には、図3に示すように、自IO端末1のキャッシュ統計情報と共に、他のIO端末2,3のキャッシュ統計情報が格納される。IO端末1〜3は、「IPアドレス」を識別子として判別される。
As shown in FIG. 3, the cache statistical
アプリケーション部11は、ユーザが実行するアプリケーションプログラムを格納する。アプリケーションプログラムは図示しないCPU(Central Processing Unit)によって適宜演算実行される。詳細は後述する。
The
尚、アプリケーションプログラムには多くの場合キャッシュデータファイル(SDD17)や共有ファイル部4aへのIO処理(ファイルのオープン処理およびクローズ処理)が含まれる。
In many cases, the application program includes an IO process (file open process and close process) to the cache data file (SDD 17) and the shared
入出力ライブラリ部12は、アプリケーションプログラムに含まれるIO処理を実行するために必要な関数を格納するデータファイルである。
The input /
次にカーネル領域の各部について説明する。 Next, each part of the kernel area will be described.
IO仮想FS部16は、IO処理を実行するための仮想ファイルシステムである。IO仮想FS部16は、ローカルFS部161および共有FSクライアント制御部162と接続され、これらを透過的に利用する。
The IO
ローカルFS部161にはSSD17が直接接続されている。これにより、高速かつ低レイテンシのストレージアクセスが可能となる。
The
共有FSクライアント制御部162は、ネットワーク接続部18を介し、ネットワーク5上の、共有FSサーバ4とデータ通信する。
The shared FS
ローカルFS部161は、キャッシュ(SSD17)内部におけるデータファイルのディレクトリを構築し、当該ディレクトリ構造を保持する。当該ディレクトリ構造の一例を図4に示す。
The
図4に示すディレクトリ構造においては、ルートディレクトリをルートとし、その下位にディレクトリa、ディレクトリb、…、ディレクトリNと、N個のサブディレクトリを有する。各サブディレクトリは、各々、キャッシュデータファイルを備える。あるデータに対するディレクトリNは、アクセス集中を避けるため、ハッシュ関数f(x)(x=ローカルFSのファイルハンドル値)を用いて1〜Nのいずれかに決定される。 In the directory structure shown in FIG. 4, the root directory is a root, and there are a directory a, a directory b,..., A directory N, and N subdirectories. Each subdirectory includes a cache data file. The directory N for certain data is determined as one of 1 to N using a hash function f (x) (x = local FS file handle value) in order to avoid access concentration.
キャッシュ(SSD17)内部のデータファイル構造を図5に示す。当該データファイル構造は、データ項目として、「ペア識別子」、「マスタバックアップフラグ」、「ブロック番号」、「キャッシュデータ」、「更新フラグ」および「更新時間」を備える。 The data file structure inside the cache (SSD 17) is shown in FIG. The data file structure includes “pair identifier”, “master backup flag”, “block number”, “cache data”, “update flag”, and “update time” as data items.
「ペア識別子」は、ペアリング先を識別可能な識別子(ペア識別子)であり、例えば、IP(Internet Protocol)アドレスである。「マスタ/バックアップフラグ」はペア識別子に紐付られたデータが、マスタ(自IO端末の保持する)データか、バックアップ(ペアリング先として保持する)データかを示すフラグである。「ブロック番号」は、キャッシュデータが格納されるブロック番号である。「キャッシュデータ」は、SSD17にキャッシュされたデータ本体である。
The “pair identifier” is an identifier (pair identifier) that can identify a pairing destination, for example, an IP (Internet Protocol) address. The “master / backup flag” is a flag indicating whether data associated with the pair identifier is master (held by the own IO terminal) data or backup (held as a pairing destination) data. “Block number” is a block number in which cache data is stored. “Cache data” is the data body cached in the
「更新フラグ」は、データの状態を示すフラグである。更新フラグには「MODIFIED(更新状態:データが最新に更新されている)」、「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」、「INVALID(無効)」、「NO FILE(データが存在しない)」の4種類がある。「更新時間」は、更新された時刻のタイムスタンプである。
The “update flag” is a flag indicating a data state. The update flags include “MODIFIED (update state: data is updated latest)”, “SHARED (shared: synchronized with the data of the shared
共有FSクライアント制御部162は、共有FSサーバ4のファイルシステムにアクセスする権利を制御するための機構である。
The shared FS
AP仮想FS部13は、アプリケーション使用時に使用する仮想ファイルシステムである。
The AP
ユーザFS制御部14は、ユーザ空間で稼働するプログラムとしてファイルシステムを実装するための機構(フレームワーク)であり、具体的にはFUSE(Filesystem in USErspace)等である。
The user
次にハードウェア領域の各部について説明する。 Next, each part of the hardware area will be described.
SSD17は、高速IO可能な半導体メモリである、IO端末1〜3側のキャッシュメモリとして使用する。
The
ネットワーク接続部18は、自IO端末1を、他IO端末2,3および共有FSサーバ4と、ネットワーク5を介して通信接続するためのインターフェースである。
The
(共有ファイルシステムの動作)
次に共有ファイルシステム100における各IO端末1〜3の動作について説明する。IO端末1〜3の主な動作としては、(1)IOリクエストの処理、(2)共有ファイルへの書き込み処理、(3)キャッシュ統計情報の送出および収集処理、(4)キャッシュのペアリング処理、(5)ペアリング先への書き込み処理、(6)キャッシュデータの無効化処理、(7)キャッシュのフラッシュ処理、(8)キャッシュのペアリング解除処理、(9)ファイルの読み込み処理、(10)ファイルのクローズ処理がある。以下、これらの処理について図面を参照し、詳細に説明する。
(Operation of shared file system)
Next, operations of the
(1.IOリクエストの処理)
IOリクエストの処理について、図6のフローチャートを参照して説明する。
(1. IO request processing)
The IO request processing will be described with reference to the flowchart of FIG.
まず、ステップA1において、アプリケーション部11が備えるアプリケーションプログラムがCPU(不図示)によって実行されると、当該プログラムの記述に含まれるIOリクエスト処理が読み出される。この結果、CPUは、当該プログラムの実行必要なデータファイルのオープン処理を行う。CPUは、入出力ライブラリ部12内のopen関数を参照し、openシステムコールを呼び出す。
First, in step A1, when an application program included in the
ステップA2において、AP仮想FS部13は、オープン処理するデータファイルのパス名を用いて、ファイルシステムの選択を行う。このとき、キャッシュファイルシステム用のアクセスパスが指定されていた場合に、ユーザFS制御部14を介して、ユーザ空間に実装されているIOキャッシュ部15を呼び出す。
In step A2, the AP
ステップA3において、IOキャッシュ部15のIOキャッシュ制御部151は、キャッシュデータファイルを作成し、その際に、IO仮想FS部16に、ローカルFS部161を選択させる。
In step A3, the IO
ステップA4において、IO仮想FS部16は、SSD17内にキャッシュデータを保存するための、キャッシュデータファイルを作成する。このとき、IO仮想FS部16は、作成したファイルを一意に識別するためのファイルハンドル識別子を、IOキャッシュ部15を介して、AP仮想FS部13に返す。
In step A <b> 4, the IO
以上で、IOリクエスト処理を終了する。 This completes the IO request processing.
(2.共有ファイルへの書き込み処理)
共有ファイルへの書き込み処理について、図7のフローチャートを参照して説明する。
(2. Write processing to shared file)
The writing process to the shared file will be described with reference to the flowchart of FIG.
ステップB1において、アプリケーション部11に格納されるアプリケーションプログラムの記述に従い、CPUは、入出力ライブラリ部12内のwrite関数を参照し、writeシステムコールを呼び出す。
In step B1, according to the description of the application program stored in the
ステップB2において、AP仮想FS部13は、上記のオープン処理で取得したファイルハンドル識別子を基に、ファイルシステムを選択する。
In step B2, the AP
ステップB3において、AP仮想FS部13は、ファイルハンドル識別子が、キャッシュファイルシステム用のファイルハンドルを示していた場合に、ユーザFS制御部14を介して、ユーザ領域に実装されているIOキャッシュ部15を呼び出す。
In step B3, the AP
ステップB3において、IOキャッシュ部15のIOキャッシュ制御部151が備えるペアリング部154は、自IO端末1に、既にペアリングしている他のIO端末2,3が存在するか確認する。既にペアリングしている他のIO端末2,3が存在する場合、処理はステップB5に進められる。既にペアリングしている他のIO端末2,3が存在しない場合、処理はステップB4に進められる。
In step B <b> 3, the
ステップB4において、ペアリング部154は、自IO端末1と他のIO端末2,3との間で、ペアリング処理を行う。ペアリング処理の詳細は後述する。
In step B <b> 4, the
ステップB5において、IO仮想FS部16は、キャッシュデータファイルをローカルのSSD17へ書き込むため、IOキャッシュ部15にキャッシュデータファイル書き込みを依頼する。IOキャッシュ部15のIOキャッシュ制御部151は、IO仮想FS部16を介して、ローカルFS部161を経由し、SSD17に対しデータを書き込む。書き込まれるデータ形式は、図5に示すデータファイル構造の形式で実行される。尚、当該書き込みが、SSD17内に既存のキャッシュデータに対する更新であれば、当該キャッシュデータファイル(図5参照)のブロックの更新フラグを「MODIFIED(更新状態:データが最新に更新されている)」に変更する。
In step B5, the IO
ステップB6において、キャッシュデータファイルの書き込み処理と同時に、IOキャッシュ部15は、当該キャッシュデータファイルのペア識別子を参照し、当該ペア識別子に対応する他のIO端末2,3(ペアリング先)に対しても同じキャッシュデータを送信し、ペアリング先のSDD17にも書き込みを依頼する。このペアリング先での書き込み処理の詳細は後述する。
In step B6, simultaneously with the writing process of the cache data file, the
ステップB7において、IOキャッシュ部15のIOキャッシュ制御部151は、自IO端末1のキャッシュ統計情報(図2参照)を更新する。
In step B7, the IO
ステップB8において、IOキャッシュ制御部151は、ペアリング先の書き込み処理完了を確認する(書き込みの同期を取る)。この書き込み処理の完了は、ペアリング先から書き込み処理完了通知を受信することで確定する。尚、更新処理が多いプログラムの場合は、所定時間の経過によって確定してもよい。
In step B8, the IO
以上により、共有ファイルへの書き込み処理を終了する。 Thus, the writing process to the shared file is finished.
(3.キャッシュ統計情報の送出および収集処理)
キャッシュ統計情報の送出処理について図8のフローチャートを参照して説明する。
(3. Sending and collecting cache statistics information)
Cache statistics information transmission processing will be described with reference to the flowchart of FIG.
ステップC1において、IOキャッシュ部15のIOキャッシュ制御部151は、自IO端末1のキャッシュ統計情報(図2参照)を作成し、ネットワーク接続部18を経由して、ネットワーク5へブロードキャスト送信する。
In step C1, the IO
ステップC2において、IOキャッシュ制御部151は、その後所定時間待機し、所定時間の経過を確認すると(ステップC3)、自IO端末1のキャッシュ統計情報を再度作成し、ネットワーク接続部18を経由して、ネットワーク5へブロードキャスト送信する。
In step C2, the IO
以上により、キャッシュ統計情報の送出処理を終了する。 Thus, the cache statistical information transmission process is completed.
次に、キャッシュ統計情報の収集処理について図9のフローチャートを参照して説明する。 Next, cache statistics information collection processing will be described with reference to the flowchart of FIG.
ステップC4において、自IO端末1のIOキャッシュ部15は、他のIO端末2,3からのキャッシュ統計情報を受信まで待機状態をとる。キャッシュ統計情報を受信したら、処理はステップC5に進められる。キャッシュ統計情報を受信しない場合、ステップC4の待機状態が継続される。
In step C4, the
ステップC5において、IOキャッシュ部15は、他のIO端末2,3からのキャッシュ統計情報を取得する。
In step C5, the
ステップC6において、IOキャッシュ部15は、取得したキャッシュ統計情報で、キャッシュ統計情報記憶部153内のキャッシュ統計情報テーブル(図3参照)を更新する。尚、キャッシュ統計情報記憶部153内のキャッシュ統計情報は、ペアリング先の決定処理において利用される。
In step C6, the
以上により、キャッシュ統計情報の収集処理を終了する。 Thus, the cache statistical information collection process is terminated.
(4.キャッシュのペアリング処理)
送信側(以下の説明においては自IO端末1)におけるキャッシュのペアリング処理について、図10のフローチャートを参照して説明する。
(4. Cache pairing process)
The cache pairing process on the transmission side (the
ステップD1において、ペアリング処理の送信側である自IO端末1のIOキャッシュ部15は、キャッシュ統計情報記憶部153内のキャッシュ統計情報の検索およびペアリング先の選択を行う。具体的には、IOキャッシュ制御部151のペアリング部154は、データ流量制御部152に最適なペアリング先の選択を依頼する。依頼を受けたデータ流量制御部152は、キャッシュ統計情報記憶部153に格納される他のIO端末2,3のキャッシュ統計情報(図3)を参照し、キャッシュ空き容量が多く、かつ、共有ファイルシステムのデータ流量値が少ないIO端末(ここではIO端末2とする)を選ぶ。
In Step D1, the
ステップD2において、ペアリング部154は、選択したIO端末2に対して、ペアリング処理リクエストを送信する。ステップD3において、選択したIO端末2からペアリング処理リクエストの結果を受信したペアリング部154は、当該結果がペアリング受け入れ許可か、又は、受け入れ不許可化を判断する(ステップD4)。当該結果がペアリング受け入れ許可であれば、処理はステップD5に進められる。当該結果がペアリング受け入れ不許可であれば、処理はステップD1に戻され、別のペアリング候補のIO端末が再選択される。
In step D <b> 2, the
ステップD5において、ペアリング部154は、ペアリングが成立したとして、ペアリング先のIO端末2の識別子(IPアドレス)を一時記憶する。図5に示すキャッシュデータファイルのペア識別子として格納してもよい。ペアリング成立後は、キャッシュデータ送受信時にデータ送信元を精査する必要がなくなる。
In step D5, the
以上により、送信側におけるキャッシュのペアリング処理を終了する。 This completes the cache pairing process on the transmission side.
次に、受信側(以下の説明においては他IO端末2)におけるキャッシュのペアリング処理について、図11のフローチャートを参照して説明する。 Next, cache pairing processing on the receiving side (in the following description, the other IO terminal 2) will be described with reference to the flowchart of FIG.
ステップD6において、ペアリング処理の受信側であるIO端末2は、ペアリング要求の受信待機状態において、ペアリング要求を受信したか否かを判断する。ペアリング要求を受信すると、処理はステップD7に進められる。ペアリング要求を受信しない場合、ステップD6において待機状態を続ける。
In step D6, the
ステップD7において、IOキャッシュ制御部151のペアリング部154は、キャッシュ統計情報記憶部153を参照し、自身(即ちIO端末2)のキャッシュ統計情報を基に、他にペアリングしているIO端末がないか、キャッシュ空き容量は十分にあるか等を調査する。
In step D7, the
ステップD8において、調査の結果を基に、ペアリング部154は、ペアリングの受け入れ許可ができるか否かを判断する。ペアリングの受け入れ許可ができる場合は、処理はステップD10に進められる。ペアリングの受け入れ許可ができない場合は、処理はステップD9に進められる。
In step D8, based on the result of the investigation, the
ステップD9において、ペアリング部154は、ペアリング要求元のIO端末1に対し、ペアリング受け入れ不許可通知を送信する。
In step D9, the
ステップD10において、ペアリング部154は、ペアリング要求元のIO端末1に対し、ペアリング受け入れ許可通知を送信する。
In step D10, the
ステップD11において、ペアリング部154は、ペアリング用のキャッシュファイルをオープン(open)にする。このオープン処理は、IOリクエスト処理(図6参照)におけるステップA3のキャッシュデータファイルの作成処理から実行される。更に、ペアリング部154はペアリング元であるIO端末1のIPアドレスと、キャッシュデータファイルをオープン(open)にした時刻(参照時刻)とを一時記憶する。図5に示すキャッシュデータファイルのペア識別子として格納してもよい。
In step D11, the
以上により、受信側におけるキャッシュのペアリング処理を終了する。 This completes the cache pairing process on the receiving side.
(5.ペアリング先への書き込み処理)
次に、ペアリング先への書き込み処理について、図12のフローチャートを参照して説明する。
(5. Write processing to pairing destination)
Next, the writing process to the pairing destination will be described with reference to the flowchart of FIG.
ステップD21において、IO端末1のペアリング先であるIO端末2は、キャッシュデータの待機状態をとる。キャッシュデータを受信すると、処理はステップD22に進められる。キャッシュデータを受信しない間は、D21の待機状態が継続される。
In step D21, the
ステップD22において、IOキャッシュ制御部151は、当該キャッシュデータの送信元がペアリングを許可したIO端末1か否かを判断する。具体的には、IOキャッシュ制御部151は、送信元IPアドレスとペアリング部154において一時記憶されるIPアドレスとを比較し、これらが一致するか否かで判断する。送信元がペアリングを許可したIO端末であると判断された場合、処理はステップD24に進められる。送信元がペアリングを許可したIO端末ではないと判断された場合、処理はD23に進められる。
In step D22, the IO
ステップD23において、IOキャッシュ制御部151は、キャッシュデータの送信元に対し、ネットワーク接続部18を経由し、書き込み不可の通知を送信する。
In step D23, the IO
ステップD24において、IOキャッシュ制御部151は、受信側ペアリング処理(図11のステップD11参照)において、ペアリングを許可したIO端末1のためにオープン処理したファイルのペア識別子(図5参照)を用いて、ペアリング用のキャッシュデータファイルを検索し、検索されたキャッシュデータファイル(SSD17)にキャッシュデータの書き込みを行う。
In step D24, the IO
ステップD25において、IOキャッシュ制御部151は、キャッシュデータの書き込みが完了すると、キャッシュデータ送信元のIO端末1に対し、ネットワーク接続部18を経由し、書き込み完了通知を送信する。
In step D <b> 25, when the writing of the cache data is completed, the IO
ステップD26において、IOキャッシュ制御部151は、更新したキャッシュブロックのメタデータを、ネットワーク接続部18を介して、ネットワーク5上にブロードキャスト送信する。
In step D <b> 26, the IO
以上により、ペアリング先への書き込み処理を終了する。 Thus, the writing process to the pairing destination is completed.
尚、メタデータのブロードキャスト送信は、ネットワーク5上の全てのIO端末に自身(IO端末2)がペアリング先(IO端末1)のキャッシュデータを保持していることを周知するために行う。メタデータには、自IO端末2の識別子、ペアリング先IO端末1の識別子、キャッシュデータを保持している範囲(ブロック番号やブロック数等)が含まれる。
Note that the metadata broadcast transmission is performed in order to inform all the IO terminals on the network 5 that the cache data of the pairing destination (IO terminal 1) is held by itself (IO terminal 2). The metadata includes an identifier of the
また、メタデータを受信した他のIO端末(例えばIO端末3)は、自身のSSD17内に同じキャッシュデータファイルを保持しているかチェックし、保持している場合は、キャッシュデータファイル内の該当ブロックの更新フラグを「INVALID(無効)」に変更する。これは、無用なキャッシュデータファイルを他のIO端末3が保持することや、他のIO端末3が誤って上位のアプリケーション等にこのデータを送信することを防止するためである。
Also, the other IO terminal (for example, IO terminal 3) that has received the metadata checks whether it holds the same cache data file in its
(6.キャッシュデータの無効化処理)
キャッシュデータは、整合性を保つため、ペアリング後は、マスタ側のIO端末1およびバックアップ側のIO端末2のみで保持しておく必要がある。キャッシュデータを、マスタ側およびバックアップ側以外の他のIO端末(IO端末3とする)で保持している場合は、そのデータをネットワーク5上の上位のアプリケーション等に返却しないよう、無効化する必要がある。
(6. Cache data invalidation processing)
In order to maintain consistency, the cache data needs to be held only by the
キャッシュデータの無効化処理について、図13のフローチャートを参照して説明する。 The cache data invalidation process will be described with reference to the flowchart of FIG.
ステップE1において、IO端末(IO端末2とする)のIOキャッシュ部15は、更新されたキャッシュブロックのメタデータを受信したか否かを判断する。メタデータを受信した場合、処理はステップE2に進められる。メタデータを受信しない間は、処理はステップE1に戻され待機状態が継続される。
In step E1, the
ステップE2において、受信したメタデータを基に、メタデータに記載されたキャッシュデータの範囲を自IO端末2に保持しているか、キャッシュ統計情報記憶部153内を調査する。調査の結果、メタデータに記載されたキャッシュデータの範囲を自IO端末2に保持している場合、処理はステップE3に進められる。自IO端末2では保持していない場合、この処理は一端終了し、再度ステップE1の待機状態に戻される。
In step E2, based on the received metadata, the cache statistics
ステップE3において、キャッシュデータの送信元(IPアドレス)がペアリング先であるマスタ側IO端末(IO端末1とする)か否かを判断する。キャッシュデータの送信元がペアリング先であれば、書き込み処理中のキャッシュデータであり、問題は発生しないと判断できるからである。この場合、処理は一旦終了され、再度ステップE1の待機状態に戻される。キャッシュデータの送信元がペアリング先でなければ、処理はステップE4に進められる。 In step E3, it is determined whether or not the transmission source (IP address) of the cache data is a master IO terminal (referred to as IO terminal 1) that is a pairing destination. This is because if the transmission source of the cache data is the pairing destination, it is the cache data being written, and it can be determined that no problem occurs. In this case, the process is once ended and the process returns to the standby state of Step E1 again. If the transmission source of the cache data is not the pairing destination, the process proceeds to Step E4.
ステップE4において、IOキャッシュ部15は、キャッシュ統計情報記憶部153に格納される、ペアリングされていないIO端末(例えばIO端末3)のキャッシュデータを無効化する。具体的には、IOキャッシュ部15は、キャッシュデータファイル(図5参照)の該当キャッシュデータの更新フラグを「INVALID(無効)」に変更する。この処理は、キャッシュデータファイル内の該当するブロック全てにおいて行われる。
In step E4, the
以上により、キャッシュデータの無効化処理を終了する。 Thus, the cache data invalidation process is completed.
(7.キャッシュのフラッシュ処理)
次に、キャッシュのフラッシュ処理について、図14のフローチャートを参照して説明する。尚、キャッシュフラッシュ処理は、IO端末1上の独立したプロセスとして適宜(例えば、所定間隔毎)に作動する。
(7. Cache flush processing)
Next, cache flush processing will be described with reference to the flowchart of FIG. Note that the cache flush process operates as appropriate (for example, at predetermined intervals) as an independent process on the
ステップF1において、IOキャッシュ部15は、更新されたブロックの検索を行う。具体的に、IOキャッシュ部15は、キャッシュファイルデータ(図5参照)の更新フラグが「MODIFIED(更新状態:データが最新に更新されている)」となっているブロックを検索し、キャッシュフラッシュ対象ブロックとして選択する。
In step F1, the
ステップF2において、IOキャッシュ部15のデータ流量制御部152は、MRU(Maximum Receive unit)アルゴリズムを用いて、キャッシュフラッシュ対象ブロックのペア識別子(図5参照)と同一のIPアドレスを有するキャッシュ統計情報(図3参照)のレコードから、共有FSデータ流量を確認し、所定の閾値を超えるIOリクエストが出ているかを確認する(ステップF3)。所定の閾値を超えるIOリクエストが出ている場合、処理はステップF4に進められる。所定の閾値を超えるIOリクエストが出ていない場合、処理はステップF6に進められる。
In step F2, the data flow
ステップF4において、データ流量制御部152は、キャッシュ空き容量が所定の閾値以下となったか否かを判断する。キャッシュ空き容量が所定の閾値以下である場合、処理はステップF6に進められる。キャッシュ空き容量が所定の閾値以下ではない場合、処理はF5に進められる。
In step F4, the data flow
ステップF6において、IOキャッシュ部15のIOキャッシュ制御部151は、ネットワーク接続部18を経由して、共有FSサーバ4へキャッシュデータを渡す。共有FSサーバ4は、当該キャッシュデータを共有ファイル部4aに書き込む。この時、IOキャッシュ制御部151は、IO仮想FS部16を介して、SSD17内のキャッシュデータファイル(図5参照)の「更新時刻」に、書き込みされた時刻を設定し、「更新フラグ」を「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」に設定する。これは、キャッシュ(SSD17)と共有ファイルサーバ4とが、同じデータを保持していることを意味する。
In step F <b> 6, the IO
ステップF5において、閾値を超えるIOリクエストもなく、キャッシュ空き容量も未だ充分にある場合、または、共有FSサーバへのフラッシュ処理が終了した場合、所定時間の待機後、処理はステップF2のデータ残量確認処理に戻される。 In step F5, if there is no IO request exceeding the threshold value and the cache free capacity is still sufficient, or if the flush process to the shared FS server is completed, after waiting for a predetermined time, the process proceeds to the remaining data amount in step F2. Returned to the confirmation process.
以上により、キャッシュのフラッシュ処理を終了する。 Thus, the cache flush process is completed.
(8.キャッシュのペアリング解除処理)
次に、キャッシュのペアリング解除を要求する送信側IO端末(以下の説明においてはIO端末2として説明する)における処理について、図15のフローチャートを参照して説明する。
(8. Cache pairing release processing)
Next, processing in the transmitting-side IO terminal that requests cache pairing cancellation (which will be described as the
まずステップG1において、自IO端末2のIOキャッシュ部15は、待機状態を一定時間取る。この待機状態は、あるアプリケーションプログラムの動作中に、ボトルネックとなっていたIO処理の混雑が、ペアリング処理により緩和された、又は、アプリケーションプログラムが終了したと判断可能な時間であり、例えば数秒〜数時間等である。一定時間の待機状態が終了すると処理はステップG2に進められる。
First, in step G1, the
ステップG2において、IOキャッシュ部15は、現在オープン(open)しているキャッシュデータファイルの参照時刻をペアリング部154から取得する(図11におけるステップD11参照)。
In step G2, the
ステップG3において、IOキャッシュ部15のIOキャッシュ制御部151は、取得した参照時刻と、システムから取得した現在時刻とを比較して、予め設定された規定時間を経過したかを判断する。規定時間を経過した場合処理はステップG4に進められる。規定時間を経過しない場合処理はG1に戻される。
In step G3, the IO
ステップG4において、IOキャッシュ制御部151のペアリング部154は、ペアリング解除要求を、ペアリング先のIO端末1に送信する。
In step G4, the
ステップG5において、ペアリング部154は、ペアリング先のIO端末1からペアリング解除完了の通知を待つ。
In step G5, the
ステップG6において、ペアリング部154は、ペアリング解除完了の通知を受信後、このキャッシュデータファイルのclose処理を行う。
In step G6, the
以上により、キャッシュのペアリング解除要求の送信側IO端末2における処理を終了する。
This completes the processing at the transmitting
次に、キャッシュのペアリング解除の受信側IO端末(以下、IO端末1として説明する)における処理について、図16のフローチャートを参照して説明する。 Next, the processing in the receiving IO terminal (hereinafter described as the IO terminal 1) for releasing the cache pairing will be described with reference to the flowchart of FIG.
ステップG7において、ペアリング解除処理の受信側IO端末1は、ペアリング解除要求の受信待ち状態となる。この状態において、ペアリング解除要求を受信すると処理はステップG8に進められる。ペアリング解除要求を受信するまではステップG7の受信待ち状態を継続させる。
In step G7, the receiving-
ステップG8において、ペアリング解除要求を受信すると、ペアリング解除処理の受信側IO端末1は、現在オープンしているキャッシュデータファイルのクローズ(close)処理を行う。
In step G8, when a pairing release request is received, the receiving
ステップG9において、クローズ処理が完了すると、ペアリング部154は、ペアリング解除完了の通知を、解除要求の送信側IO端末2に返信する。
In step G9, when the closing process is completed, the
以上により、キャッシュのペアリング解除の受信側IO端末1における処理を終了する。
Thus, the processing in the receiving
(9.ファイルの読み込み処理)
次に、ファイルの読み込み処理について、図17のフローチャートを参照して説明する。
(9. File reading process)
Next, the file reading process will be described with reference to the flowchart of FIG.
ステップH1において、アプリケーション部11(図1参照)内のアプリケーションプログラムの記載に基づき、CPUは、入出力ライブラリ部12により提供されるread関数内でreadシステムコールを呼び出す。
In step H1, the CPU calls a read system call in the read function provided by the input /
ステップH2において、AP仮想FS部13は、オープン処理で取得したファイルハンドル識別子(図6のステップA4参照)を基に、ファイルシステムの選択を行う。このとき、ファイルハンドル識別子が、キャッシュFS用のファイルハンドルを示していた場合に、AP仮想FS部13は、ユーザFS制御部14を経由して、ユーザ領域上に実装されているIOキャッシュ部15を呼び出す。
In step H2, the AP
ステップH3において、IOキャッシュ部15のIOキャッシュ制御部151は、ローカルFS部161上にあるキャッシュファイルを検索して、キャッシュファイル内の各ブロックの更新フラグをチェックする。このときに、更新フラグが「MODIFIED(更新状態:データが最新に更新されている)」または「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」となっていれば、そのままキャッシュデータを上位のアプリケーション等に返却する(ステップH7)。もし更新フラグが「NO FILE(キャッシュファイルが存在しない)」、または、「INVALID(無効)」となっている場合は、処理はステップH4に進められる。
In step H3, the IO
ステップH4において、IOキャッシュ部15は、有効なデータを得るために、他の全てのIO端末2,3に対し強制フラッシュ要求を出す。まず、IOキャッシュ部15は、更新フラグが「NO FILE」または「INVALID(無効)」となっているブロックのメタデータを、ネットワーク接続部18を経由して、ブロードキャスト送信する。このメタデータには、キャッシュファイル名、ブロック番号、ブロック数等が含まれる。他の全てのIO端末2,3は、このフラッシュ要求を受信すると、自IO端末2,3において強制フラッシュ処理を行う。この処理の詳細は後述する。
In step H4, the
ステップH5において、強制フラッシュ処理が終了し、所望のデータが共有FSサーバ4に更新されると、IOキャッシュ部15は、強制フラッシュされた所望のデータを、ネットワーク接続部18を介して、共有FSサーバ4から読み込み、取得する。
In step H5, when the forced flush process ends and the desired data is updated to the shared
ステップH6において、IO仮想FS部16は、取得したデータをキャッシュデータとしてSSD17に書き込む。
In step H6, the IO
次にステップH4の強制フラッシュ処理について、図18のフローチャートを参照して説明する。 Next, the forced flush process in step H4 will be described with reference to the flowchart of FIG.
ステップH8において、IO端末2,3のIOキャッシュ部15は、フラッシュ要求を受信する。このフラッシュ要求はメタデータ、又はメタデータを含むデータである。
In step H8, the
ステップH9において、IOキャッシュ部15のIOキャッシュ制御部151は、メタデータに含まれるキャッシュファイル名、ブロックおよびその範囲に該当するデータが、自身のキャッシュ(SSD17)に存在するか確認する。存在する場合は、処理はステップH10へ進められる。存在しない場合は、処理はステップH8へ戻される。
In step H9, the IO
ステップH10において、IOキャッシュ制御部151は、ネットワーク接続部18を経由し、フラッシュ要求されているキャッシュデータを共有FSサーバ4に送信する。共有FSサーバ4は、フラッシュ要求されているキャッシュデータを共有ファイル部4aに書き込む。この際、キャッシュデータファイル内の更新時刻が設定される。
In step H <b> 10, the IO
ステップH11において、IOキャッシュ制御部151は、キャッシュファイルデータ(図5)内の該当するブロックの更新フラグに「SHARED」を設定する。
In step H11, the IO
以上により、強制フラッシュ処理を完了する。 Thus, the forced flush process is completed.
(10.ファイルのクローズ処理)
次に、アプリケーション部11(図1参照)による、IOリクエストを終了するためのファイルのクローズ処理について、図19のフローチャートを参照して説明する。
(10. File closing process)
Next, file closing processing for ending an IO request by the application unit 11 (see FIG. 1) will be described with reference to the flowchart of FIG.
ステップI1において、アプリケーション部11に格納されるアプリケーションプログラムに従い、CPU(不図示)は、入出力ライブラリ部12により提供されるclose関数内でcloseシステムコールを呼び出す。
In step I1, according to an application program stored in the
ステップI2において、AP仮想FS部13は、クローズ処理するファイルのファイルハンドル値を受け取り、ファイルシステムの選択を行う。
In step I2, the AP
ステップI3において、キャッシュFS用のファイルハンドルを受け取った場合、AP仮想FS部13は、ユーザFS制御部14を経由して、ユーザ領域上に実装されているIOキャッシュ部15を呼び出す。IOキャッシュ部15は、キャッシュデータファイルをクローズする。
When the file handle for the cache FS is received in step I3, the AP
ステップI4において、IO仮想FS部16は、ローカルFS部161を選択し、ローカルFS部161は、SSD17上に作成されたキャッシュデータファイルを削除する。
In step I4, the IO
以上により、IOリクエストを終了するためのファイルのクローズ処理を終了する。 As described above, the file closing process for ending the IO request is ended.
(効果)
本発明の第1の実施形態によると、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い、共有ファイルシステムを使用するためのIO端末1〜3等を提供することができる。
(effect)
According to the first embodiment of the present invention, in the shared storage system, appropriate pairing processing is automatically performed, and the
これは、自身のキャッシュデータのコピーを一時格納させるためのペアリング先のIO端末を、当該IO端末のキャッシュ使用量や共有FSサーバ4へのアクセス量を考慮した上で、ファイル単位ブロック毎に選択するからである。これにより、書き込み時の信頼性を高くすることができる。更に、共有ファイルシステムの本来のIOリクエストは阻害せずにすむ。
This is because the IO terminal as a pairing destination for temporarily storing a copy of its own cache data is considered for each file unit block in consideration of the cache usage amount of the IO terminal and the access amount to the shared
<第2の実施形態>
本発明の第2の実施形態に係る共有ファイルシステムを使用する為のIO端末(情報処理端末)10を図20に示す。IO端末10は、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、当該キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する。
<Second Embodiment>
FIG. 20 shows an IO terminal (information processing terminal) 10 for using the shared file system according to the second embodiment of the present invention. The
本発明の第2の実施形態によると、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高いIO端末10を提供することができる。
According to the second embodiment of the present invention, in the shared storage system, it is possible to automatically perform an appropriate pairing process and provide the
これは、自身のキャッシュデータのコピーを一時格納させるためのペアリング先のIO端末を、当該IO端末のキャッシュ使用量や共有ファイルシステムサーバへのアクセス量を考慮した上で、ファイル単位ブロック毎に選択するからである。 This is because the IO terminal as a pairing destination for temporarily storing a copy of its own cache data is considered for each file unit block in consideration of the cache usage amount of the IO terminal and the access amount to the shared file system server. It is because it chooses.
<変更例>
上記の実施形態においてはユーザファイルシステム制御部14として、FUSEを用い、ユーザ領域による実装によるファイルシステムを構成しているが、カーネルモジュールを用いた実装や、カーネル内における実装によっても、同機能は実現可能である。
<Example of change>
In the above embodiment, FUSE is used as the user file
キャッシュの整合性を保つために、キャッシュ制御については、MSI(Modified/Shared/Invalid)プロトコルを使用することが簡素化のために望ましいが、その他のキャッシュ制御アルゴリズムを適応してもよい。 In order to maintain cache consistency, it is desirable for cache control to use the MSI (Modified / Shared / Invalid) protocol for simplicity, but other cache control algorithms may be applied.
上記の実施形態においては、キャッシュのコピーを持たせるIO端末を1つのみ選択しているが、冗長性を高めるため、2以上のIO端末を選択してもよい。 In the above embodiment, only one IO terminal that has a cache copy is selected, but two or more IO terminals may be selected to increase redundancy.
(ハードウェア構成)
本発明の各実施形態において、IO端末1〜3における各構成要素は、機能単位のブロックを示している。IO端末1〜3における各構成要素の一部又は全部は、例えば図1、20に示すような情報処理装置とプログラムとの任意の組み合わせにより実現される。これを実現する情報処理装置500の一例を図21に示す。情報処理装置500は、一例として、以下のような構成を含む。
(Hardware configuration)
In each embodiment of the present invention, each component in the
・CPU501
・ROM502
・RAM503
・RAM503にロードされるプログラム504
・プログラム504を格納する記憶装置505
・記録媒体506の読み書きを行うドライブ装置507
・通信ネットワーク509と接続する通信インターフェース508
・データの入出力を行う入出力インターフェース510
・各構成要素を接続するバス511
各実施形態におけるIO端末1〜3の各構成要素は、これらの機能を実現するプログラム504をCPU501が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム504は、例えば、予め記憶装置505やRAM503に格納されており、必要に応じてCPU501が読み出す。なお、プログラム504は、通信ネットワーク509を介してCPU501に供給されてもよいし、予め記録媒体506に格納されており、ドライブ装置507が当該プログラムを読み出してCPU501に供給してもよい。
A
A
A
An input /
-Bus 511 connecting each component
Each component of the
IO端末の実現方法には、様々な変形例がある。例えば、IO端末は、構成要素毎にそれぞれ別個の情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。また、IO端末が備える複数の構成要素が、一つの情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。
There are various modifications to the IO terminal implementation method. For example, the IO terminal may be realized by an arbitrary combination of the
また、IO端末の各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。 Also, some or all of the components of the IO terminal are realized by other general-purpose or dedicated circuits, processors, etc., or combinations thereof. These may be configured by a single chip or may be configured by a plurality of chips connected via a bus.
IO端末の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。 Some or all of the components of the IO terminal may be realized by a combination of the above-described circuit and the like and a program.
IO端末の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。 When some or all of the components of the IO terminal are realized by a plurality of information processing devices and circuits, the plurality of information processing devices and circuits may be centrally arranged or distributedly arranged. Also good. For example, the information processing apparatus, the circuit, and the like may be realized as a form in which each is connected via a communication network, such as a client and server system and a cloud computing system.
上述した各実施形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施形態のみに限定されるものではなく、趣旨を逸脱しない範囲で、種々の変更が可能であることは勿論である。 Each embodiment mentioned above is only an example about application of the technical idea obtained by this inventor. That is, the technical idea is not limited to the above-described embodiment, and various changes can be made without departing from the spirit of the invention.
1 :IO端末
2 :IO端末
3 :IO端末
10 :IO端末
4 :共有FSサーバ
4a :共有ファイル部
5 :ネットワーク
11 :アプリケーション部
12 :入出力ライブラリ部
13 :AP仮想FS部
14 :ユーザFS制御部
15 :IOキャッシュ部
16 :IO仮想FS部
17 :共有FSサーバ
18 :ネットワーク接続部
25 :IOキャッシュ部
35 :IOキャッシュ部
100 :共有ファイルシステム
151 :IOキャッシュ制御部
152 :データ流量制御部
153 :キャッシュ統計情報記憶部
154 :ペアリング部
161 :ローカルFS部
162 :共有FSクライアント制御部
500 :情報処理装置
501 :CPU
502 :ROM
503 :RAM
504 :プログラム
505 :記憶装置
506 :記録媒体
507 :ドライブ装置
508 :通信インターフェース
509 :通信ネットワーク
510 :入出力インターフェース
511 :バス
1: IO terminal 2: IO terminal 3: IO terminal 10: IO terminal 4:
502: ROM
503: RAM
504: Program 505: Storage device 506: Recording medium 507: Drive device 508: Communication interface 509: Communication network 510: Input / output interface 511: Bus
Claims (7)
外部ネットワークに対し、自端末のキャッシュメモリ領域の空き容量を示す情報をブロードキャスト送信する、
情報処理端末。 Connectable to a shared file system, detects the terminal to pair cache data for each file unit of the cache memory area, the cache data, and it instructs to write the cache memory area of the terminal of the pairing,
Broadcast information to the external network indicating the free capacity of the cache memory area of its own terminal,
Information processing terminal.
請求項1に記載の情報処理端末。 When the cache data is received for each file unit from the pairing terminal, the cache data is written in the cache memory area of the own terminal.
The information processing terminal according to claim 1.
請求項1または2に記載の情報処理端末。 The information processing terminal according to claim 1 or 2 , wherein information indicating a free capacity of a cache memory area of another terminal is received from the external network, and the terminal to be paired is determined based on the information.
請求項1乃至3のいずれかに記載の情報処理端末。 Detecting the data output amount from the information processing terminal to the shared file system server, if the data input amount exceeds a predetermined threshold, adjusting the input and output of data to the shared file system server from the information processing terminal,
The information processing terminal according to any one of claims 1 to 3.
前記情報処理端末の各々がデータファイルを共有するための共有ファイルシステムサーバと、
を備える共有ファイルシステム。 A plurality of information processing terminals according to any one of claims 1 to 4,
A shared file system server for each of the information processing terminals to share a data file;
A shared file system comprising:
前記キャッシュデータを、前記ペアリングする端末のキャッシュメモリ領域に書き込むよう指示し、
外部ネットワークに対し、自端末のキャッシュメモリ領域の空き容量を示す情報をブロードキャスト送信する、
共有ファイル方法。 Connectable to a shared file system, detects the terminal to pair cache data for each file unit of the cache memory area,
The cache data, and instructs to write the cache memory area of the terminal of the pairing,
Broadcast information to the external network indicating the free capacity of the cache memory area of its own terminal,
Shared file method.
前記キャッシュデータを、前記ペアリングする端末のキャッシュメモリ領域に書き込むよう指示し、
外部ネットワークに対し、自端末のキャッシュメモリ領域の空き容量を示す情報をブロードキャスト送信する、
機能をコンピュータに実行させる共有ファイルプログラム。 Connectable to a shared file system, detects the terminal to pair cache data for each file unit of the cache memory area,
The cache data, and instructs to write the cache memory area of the terminal of the pairing,
Broadcast information to the external network indicating the free capacity of the cache memory area of its own terminal,
A shared file program that causes a computer to execute a function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015184912A JP6589500B2 (en) | 2015-09-18 | 2015-09-18 | Information processing terminal, shared file system, shared file method, and shared file program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015184912A JP6589500B2 (en) | 2015-09-18 | 2015-09-18 | Information processing terminal, shared file system, shared file method, and shared file program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017059105A JP2017059105A (en) | 2017-03-23 |
JP6589500B2 true JP6589500B2 (en) | 2019-10-16 |
Family
ID=58391682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015184912A Active JP6589500B2 (en) | 2015-09-18 | 2015-09-18 | Information processing terminal, shared file system, shared file method, and shared file program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6589500B2 (en) |
-
2015
- 2015-09-18 JP JP2015184912A patent/JP6589500B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017059105A (en) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068395B2 (en) | Cached volumes at storage gateways | |
US10782880B2 (en) | Apparatus and method for providing storage for providing cloud services | |
US9274956B1 (en) | Intelligent cache eviction at storage gateways | |
US9268651B1 (en) | Efficient recovery of storage gateway cached volumes | |
US9146684B2 (en) | Storage architecture for server flash and storage array operation | |
US20210117441A1 (en) | Data replication system | |
US8788628B1 (en) | Pre-fetching data for a distributed filesystem | |
US9559889B1 (en) | Cache population optimization for storage gateways | |
US8170990B2 (en) | Integrated remote replication in hierarchical storage systems | |
US20160269501A1 (en) | Using a cache cluster of a cloud computing service as a victim cache | |
US10831721B2 (en) | Virtualized data storage system architecture | |
AU2013403132B2 (en) | Data storage method, data storage apparatus, and storage device | |
US10970190B2 (en) | Hybrid log viewer with thin memory usage | |
JP2007510978A (en) | Storage server bottom-up cache structure | |
TWI782487B (en) | Method for performing simple storage service seamless migration using index objects, host device, and storage server | |
US20160212198A1 (en) | System of host caches managed in a unified manner | |
JP2012133772A (en) | Data processing method and device for remote storage system | |
EP3679478A1 (en) | Scalable storage system | |
US11216204B2 (en) | Degraded redundant metadata, DRuM, technique | |
JP6589500B2 (en) | Information processing terminal, shared file system, shared file method, and shared file program | |
US10686906B2 (en) | Methods for managing multi-level flash storage and devices thereof | |
US10848555B2 (en) | Method and apparatus for logical mirroring to a multi-tier target node | |
US20190121899A1 (en) | Apparatus and method for managing integrated storage | |
US10142416B2 (en) | Methods for facilitating planned data container transitions and devices thereof | |
TWI769796B (en) | Method for performing simple storage service seamless migration using index objects, host device, and storage server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190528 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190726 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190820 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190902 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6589500 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |