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 PDF

Info

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
Application number
JP2015184912A
Other languages
Japanese (ja)
Other versions
JP2017059105A (en
Inventor
寛 青野
寛 青野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2015184912A priority Critical patent/JP6589500B2/en
Publication of JP2017059105A publication Critical patent/JP2017059105A/en
Application granted granted Critical
Publication of JP6589500B2 publication Critical patent/JP6589500B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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).

特開2007−18236号公報JP 2007-18236 A 特開2009−230742号公報JP 2009-230742 A

特許文献1および2の技術では、クライアント端末間でキャッシュを相互に利用するためにペアリング機構を設ける。しかしながらクライアント端末のペアは自動に検出されるものではなく、そのペアリングに手間を要していた。更に、ペアリングの単位はディスク単位であり、小規模なタスクを実現するには頻繁なペアリング処理が必要となっていた。   In the techniques of Patent Documents 1 and 2, a pairing mechanism is provided in order to mutually use a cache between client terminals. However, a pair of client terminals is not automatically detected, and it takes time and effort for the pairing. Further, the pairing unit is a disk unit, and frequent pairing processing is necessary to realize a small-scale task.

本発明は、上記の問題点を解決するべくなされた。本発明は、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い情報処理端末等を提供することを主たる目的とする。   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.

本発明の第1の実施形態に係る共用ファイルシステムの構成例を示す図である。It is a figure which shows the structural example of the shared file system which concerns on the 1st Embodiment of this invention. キャッシュ統計情報のデータ構成例を示す図である。It is a figure which shows the data structural example of cache statistics information. キャッシュ統計情報記憶部内のキャッシュ統計情報のデータ構成例を示す図である。It is a figure which shows the data structural example of the cache statistics information in a cache statistics information storage part. キャッシュデータファイルのディレクトリ構造を表す図である。It is a figure showing the directory structure of a cache data file. キャッシュ内におけるキャッシュデータファイルの構造を表す図である。It is a figure showing the structure of the cache data file in a cache. IOリクエスト処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of IO request processing. 共有ファイルへの書き込み処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the write-in process to a shared file. キャッシュ統計情報の送出処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the transmission process of cache statistics information. キャッシュ統計情報の収集処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the collection process of cache statistics information. 送信側のキャッシュのペアリング処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the pairing process of the cache of a transmission side. 受信側のキャッシュのペアリング処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the pairing process of the cache by the side of reception. ペアリング先への書き込み処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the write-in process to a pairing destination. キャッシュデータの無効化処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the invalidation process of cache data. キャッシュのフラッシュ処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the flush process of a cache. キャッシュのペアリング解除処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the cache pairing cancellation | release process. 受信側におけるキャッシュのペアリング解除処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the pairing cancellation | release process of the cache in the receiving side. ファイルの読み込み処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of a file reading process. 強制キャッシュフラッシュ処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of a forced cache flush process. ファイルのクローズ処理の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of a file close process. 本発明の第2の実施形態に係るIO端末の構成例を示す図である。It is a figure which shows the structural example of the IO terminal which concerns on the 2nd Embodiment of this invention. 情報処理装置の内部構成例を示す図である。It is a figure which shows the internal structural example of information processing apparatus.

次に図面を参照して、本発明の実施形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は本発明の実施形態における構成を模式的に表している。更に以下に記載される本発明の実施形態は一例であり、その本質を同一とする範囲において適宜変更可能である。   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 file system 100 according to a first embodiment of the present invention will be described with reference to FIG. As shown in FIG. 1, the shared file system 100 according to the first embodiment includes a plurality of IO terminals (information processing terminals) 1, 2, 3 and a shared file system server (hereinafter “shared FS server”). 4), and the IO terminals 1 to 3 and the shared FS server 4 are connected by a network 5 so that data communication is possible.

共有FSサーバ4は、IO端末1〜3間で共有するデータファイルを管理するファイルシステム機能を備える。共有FSサーバ4は、共有ファイルを格納する記憶装置である共有ファイル部4aを備える。   The shared FS server 4 has a file system function for managing data files shared between the IO terminals 1 to 3. The shared FS server 4 includes a shared file unit 4a that is a storage device that stores a shared file.

IO端末1〜3は同じ構成を備える。IO端末2は、IOキャッシュ部25を備える。IO端末3は、IOキャッシュ部35を備える。尚、以下においては、便宜上、自端末はIO端末1、他端末はIO端末2,3として説明する。   The IO terminals 1 to 3 have the same configuration. The IO terminal 2 includes an IO cache unit 25. The IO terminal 3 includes an IO cache unit 35. In the following, for convenience, the own terminal will be described as the IO terminal 1 and the other terminals will be described as the IO terminals 2 and 3.

(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 IO terminals 1 to 3 includes a user area (application area), a kernel area, and a hardware area. The user area is an area that can be changed by the users of the IO terminals 1 to 3 according to their specifications. The kernel area is an OS management unit provided in common to all the IO terminals 1 to 3. Specifically, the kernel area manages resources of the IO terminals 1 to 3, and includes hardware resources and user areas in the hardware area. It manages the exchange of data such as sessions and transactions with internal software components (application programs, etc.). For example, it provides a mechanism for managing the execution state of a running program, managing hardware resources, and allowing an application program to use hardware functions.

ユーザ領域には、アプリケーション部11、入出力ライブラリ部12、IOキャッシュ部15が存在する。カーネル領域には、アプリケーション仮想ファイルシステム部(以下、「AP仮想FS部」と記載)13、ユーザファイルシステム制御部(以下、「ユーザFS制御部」と記載)14、IO仮想ファイルシステム部(以下、「IO仮想FS部」と記載)16、ローカルファイルシステム部(以下、「ローカルFS部」と記載)161および共有ファイルシステムクライアント制御部(以下、「共有FSクライアント制御部」と記載)162が存在する。ハードウェア領域には、SDD17およびネットワーク接続部18が存在する。   An application unit 11, an input / output library unit 12, and an IO cache unit 15 exist in the user area. The kernel area includes an application virtual file system unit (hereinafter referred to as “AP virtual FS unit”) 13, a user file system control unit (hereinafter referred to as “user FS control unit”) 14, and an IO virtual file system unit (hereinafter referred to as “AP virtual FS unit”). , “IO virtual FS unit”) 16, local file system unit (hereinafter referred to as “local FS unit”) 161, and shared file system client control unit (hereinafter referred to as “shared FS client control unit”) 162. Exists. The SDD 17 and the network connection unit 18 exist in the hardware area.

先ず、ユーザ領域の各部について説明する。   First, each part of the user area will be described.

IOキャッシュ部15は、キャッシュ(SSD17)および共有FSサーバ4に対するIO制御を実行するための機構であり、IO処理用のキャッシュデータファイルを作成する。IOキャッシュ部15は、IOキャッシュ制御部151およびデータ流量制御部152を備える。   The IO cache unit 15 is a mechanism for executing IO control on the cache (SSD 17) and the shared FS server 4, and creates a cache data file for IO processing. The IO cache unit 15 includes an IO cache control unit 151 and a data flow rate control unit 152.

IOキャッシュ制御部151は、ペアリング部154を備える。ペアリング部154は、キャッシュデータファイルの複製を持たせるためのペアリング先IO端末を選出し、選出されたIO端末との間でペアリング処理およびペアリング解除処理等を行う。   The IO cache control unit 151 includes a pairing unit 154. The pairing unit 154 selects a pairing destination IO terminal for providing a copy of the cache data file, and performs pairing processing, pairing cancellation processing, and the like with the selected IO terminal.

IOキャッシュ制御部151はネットワーク接続部18にアクセス可能であり、ネットワーク5を経由して、他のIO端末2,3が備えるIOキャッシュ部25、35とデータ通信する。   The IO cache control unit 151 can access the network connection unit 18 and performs data communication with the IO cache units 25 and 35 included in the other IO terminals 2 and 3 via the network 5.

IOキャッシュ制御部151は、データ流量制御部152と接続されている。   The IO cache control unit 151 is connected to the data flow rate control unit 152.

データ流量制御部152は、IO仮想FS部16を経由して、共有FSクライアント制御部162にIOリクエストを行う。   The data flow rate control unit 152 makes an IO request to the shared FS client control unit 162 via the IO virtual FS unit 16.

データ流量制御部152は、定期的に自身(IO端末1)のキャッシュ統計情報を、ネットワーク接続部18を介して、他のIO端末2,3に通知する。尚、通知したキャッシュ統計情報は、キャッシュ統計情報記憶部153に格納される。   The data flow rate control unit 152 periodically notifies the other IO terminals 2 and 3 of the cache statistics information of itself (IO terminal 1) via the network connection unit 18. The notified cache statistical information is stored in the cache statistical information storage unit 153.

また、データ流量制御部152は、ネットワーク接続部18を介して、他のIO端末2,3からキャッシュ統計情報を収集し、収集したキャッシュ統計情報をキャッシュ統計情報記憶部153に格納する。   In addition, the data flow rate control unit 152 collects cache statistical information from the other IO terminals 2 and 3 via the network connection unit 18, and stores the collected cache statistical information in the cache statistical information storage unit 153.

自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 own IO terminal 1 and the other IO terminals 2 and 3 includes “IP (internet protocol) address”, “cache free capacity”, “shared FS data flow rate”, “update”. "Time" is included as a data item. The “IP address” is an IP address that can identify the IO terminals 1 to 3. “Cache free capacity” indicates the free capacity of the SSD 17 of the IO terminals 1 to 3 having the IP address. “Shared FS data flow rate” is the number of I / O accesses (IOPS) that can be processed by the shared FS server 4 per second, and the data amount per second (MByte / s) and measured values. The “update time” is a time stamp of the time when the data update process is performed in the shared FS server 4.

キャッシュ統計情報記憶部153内には、図3に示すように、自IO端末1のキャッシュ統計情報と共に、他のIO端末2,3のキャッシュ統計情報が格納される。IO端末1〜3は、「IPアドレス」を識別子として判別される。   As shown in FIG. 3, the cache statistical information storage unit 153 stores cache statistical information of the other IO terminals 2 and 3 together with cache statistical information of the own IO terminal 1. The IO terminals 1 to 3 are determined using “IP address” as an identifier.

アプリケーション部11は、ユーザが実行するアプリケーションプログラムを格納する。アプリケーションプログラムは図示しないCPU(Central Processing Unit)によって適宜演算実行される。詳細は後述する。   The application unit 11 stores an application program executed by the user. The application program is appropriately calculated and executed by a CPU (Central Processing Unit) (not shown). Details will be described later.

尚、アプリケーションプログラムには多くの場合キャッシュデータファイル(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 file unit 4a.

入出力ライブラリ部12は、アプリケーションプログラムに含まれるIO処理を実行するために必要な関数を格納するデータファイルである。   The input / output library unit 12 is a data file that stores functions necessary for executing the IO processing included in the application program.

次にカーネル領域の各部について説明する。   Next, each part of the kernel area will be described.

IO仮想FS部16は、IO処理を実行するための仮想ファイルシステムである。IO仮想FS部16は、ローカルFS部161および共有FSクライアント制御部162と接続され、これらを透過的に利用する。   The IO virtual FS unit 16 is a virtual file system for executing IO processing. The IO virtual FS unit 16 is connected to the local FS unit 161 and the shared FS client control unit 162, and uses these transparently.

ローカルFS部161にはSSD17が直接接続されている。これにより、高速かつ低レイテンシのストレージアクセスが可能となる。   The SSD 17 is directly connected to the local FS unit 161. This enables high-speed and low-latency storage access.

共有FSクライアント制御部162は、ネットワーク接続部18を介し、ネットワーク5上の、共有FSサーバ4とデータ通信する。   The shared FS client control unit 162 performs data communication with the shared FS server 4 on the network 5 via the network connection unit 18.

ローカルFS部161は、キャッシュ(SSD17)内部におけるデータファイルのディレクトリを構築し、当該ディレクトリ構造を保持する。当該ディレクトリ構造の一例を図4に示す。   The local FS unit 161 constructs a data file directory inside the cache (SSD 17) and holds the directory structure. An example of the directory structure is shown in FIG.

図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 SSD 17.

「更新フラグ」は、データの状態を示すフラグである。更新フラグには「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 file part 4a in the shared FS server 17)”, “INVALID (invalid ) ”And“ NO FILE (no data exists) ”. “Update time” is a time stamp of the updated time.

共有FSクライアント制御部162は、共有FSサーバ4のファイルシステムにアクセスする権利を制御するための機構である。   The shared FS client control unit 162 is a mechanism for controlling the right to access the file system of the shared FS server 4.

AP仮想FS部13は、アプリケーション使用時に使用する仮想ファイルシステムである。   The AP virtual FS unit 13 is a virtual file system used when an application is used.

ユーザFS制御部14は、ユーザ空間で稼働するプログラムとしてファイルシステムを実装するための機構(フレームワーク)であり、具体的にはFUSE(Filesystem in USErspace)等である。   The user FS control unit 14 is a mechanism (framework) for mounting a file system as a program that operates in the user space, and specifically, FUSE (Filesystem in USErspace) or the like.

次にハードウェア領域の各部について説明する。   Next, each part of the hardware area will be described.

SSD17は、高速IO可能な半導体メモリである、IO端末1〜3側のキャッシュメモリとして使用する。   The SSD 17 is used as a cache memory on the IO terminals 1 to 3 side, which is a semiconductor memory capable of high-speed IO.

ネットワーク接続部18は、自IO端末1を、他IO端末2,3および共有FSサーバ4と、ネットワーク5を介して通信接続するためのインターフェースである。   The network connection unit 18 is an interface for communication-connecting the own IO terminal 1 to the other IO terminals 2 and 3 and the shared FS server 4 via the network 5.

(共有ファイルシステムの動作)
次に共有ファイルシステム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 IO terminals 1 to 3 in the shared file system 100 will be described. The main operations of the IO terminals 1 to 3 are: (1) IO request processing, (2) write processing to a shared file, (3) transmission and collection processing of cache statistical information, and (4) cache pairing processing. , (5) Pairing destination write processing, (6) Cache data invalidation processing, (7) Cache flush processing, (8) Cache pairing release processing, (9) File read processing, (10 ) There is a file close process. Hereinafter, these processes will be described in detail with reference to the drawings.

(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 application unit 11 is executed by a CPU (not shown), an IO request process included in the description of the program is read. As a result, the CPU performs an open process of a data file that requires execution of the program. The CPU refers to the open function in the input / output library unit 12 and calls the open system call.

ステップA2において、AP仮想FS部13は、オープン処理するデータファイルのパス名を用いて、ファイルシステムの選択を行う。このとき、キャッシュファイルシステム用のアクセスパスが指定されていた場合に、ユーザFS制御部14を介して、ユーザ空間に実装されているIOキャッシュ部15を呼び出す。   In step A2, the AP virtual FS unit 13 selects a file system using the path name of the data file to be opened. At this time, when an access path for the cache file system is designated, the IO cache unit 15 mounted in the user space is called through the user FS control unit 14.

ステップA3において、IOキャッシュ部15のIOキャッシュ制御部151は、キャッシュデータファイルを作成し、その際に、IO仮想FS部16に、ローカルFS部161を選択させる。   In step A3, the IO cache control unit 151 of the IO cache unit 15 creates a cache data file, and causes the IO virtual FS unit 16 to select the local FS unit 161 at that time.

ステップA4において、IO仮想FS部16は、SSD17内にキャッシュデータを保存するための、キャッシュデータファイルを作成する。このとき、IO仮想FS部16は、作成したファイルを一意に識別するためのファイルハンドル識別子を、IOキャッシュ部15を介して、AP仮想FS部13に返す。   In step A <b> 4, the IO virtual FS unit 16 creates a cache data file for storing cache data in the SSD 17. At this time, the IO virtual FS unit 16 returns a file handle identifier for uniquely identifying the created file to the AP virtual FS unit 13 via the IO cache unit 15.

以上で、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 application unit 11, the CPU refers to the write function in the input / output library unit 12 and calls the write system call.

ステップB2において、AP仮想FS部13は、上記のオープン処理で取得したファイルハンドル識別子を基に、ファイルシステムを選択する。   In step B2, the AP virtual FS unit 13 selects a file system based on the file handle identifier acquired by the above open process.

ステップB3において、AP仮想FS部13は、ファイルハンドル識別子が、キャッシュファイルシステム用のファイルハンドルを示していた場合に、ユーザFS制御部14を介して、ユーザ領域に実装されているIOキャッシュ部15を呼び出す。   In step B3, the AP virtual FS unit 13 determines that the IO cache unit 15 installed in the user area via the user FS control unit 14 when the file handle identifier indicates a file handle for the cache file system. Call.

ステップ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 pairing unit 154 included in the IO cache control unit 151 of the IO cache unit 15 checks whether there are other IO terminals 2 and 3 already paired in the own IO terminal 1. If there are other IO terminals 2 and 3 that have already been paired, the process proceeds to step B5. If there is no other IO terminal 2 or 3 that has already been paired, the process proceeds to step B4.

ステップB4において、ペアリング部154は、自IO端末1と他のIO端末2,3との間で、ペアリング処理を行う。ペアリング処理の詳細は後述する。   In step B <b> 4, the pairing unit 154 performs pairing processing between the own IO terminal 1 and the other IO terminals 2 and 3. Details of the pairing process will be described later.

ステップ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 virtual FS unit 16 requests the IO cache unit 15 to write the cache data file in order to write the cache data file to the local SSD 17. The IO cache control unit 151 of the IO cache unit 15 writes data to the SSD 17 via the IO virtual FS unit 16 and the local FS unit 161. The data format to be written is executed in the format of the data file structure shown in FIG. If the write is an update to the existing cache data in the SSD 17, the block update flag of the cache data file (see FIG. 5) is set to “MODIFIED (update state: data is updated to the latest)”. Change to

ステップB6において、キャッシュデータファイルの書き込み処理と同時に、IOキャッシュ部15は、当該キャッシュデータファイルのペア識別子を参照し、当該ペア識別子に対応する他のIO端末2,3(ペアリング先)に対しても同じキャッシュデータを送信し、ペアリング先のSDD17にも書き込みを依頼する。このペアリング先での書き込み処理の詳細は後述する。   In step B6, simultaneously with the writing process of the cache data file, the IO cache unit 15 refers to the pair identifier of the cache data file and refers to the other IO terminals 2 and 3 (pairing destination) corresponding to the pair identifier. However, the same cache data is transmitted, and the writing is requested to the paired destination SDD 17 as well. Details of the writing process at the pairing destination will be described later.

ステップB7において、IOキャッシュ部15のIOキャッシュ制御部151は、自IO端末1のキャッシュ統計情報(図2参照)を更新する。   In step B7, the IO cache control unit 151 of the IO cache unit 15 updates the cache statistical information (see FIG. 2) of the own IO terminal 1.

ステップB8において、IOキャッシュ制御部151は、ペアリング先の書き込み処理完了を確認する(書き込みの同期を取る)。この書き込み処理の完了は、ペアリング先から書き込み処理完了通知を受信することで確定する。尚、更新処理が多いプログラムの場合は、所定時間の経過によって確定してもよい。   In step B8, the IO cache control unit 151 confirms the completion of the pairing destination write process (synchronization of write). Completion of the write process is confirmed by receiving a write process completion notification from the pairing destination. In the case of a program with many update processes, the program may be determined after a predetermined time.

以上により、共有ファイルへの書き込み処理を終了する。   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 cache control unit 151 of the IO cache unit 15 creates cache statistical information (see FIG. 2) of the own IO terminal 1, and broadcasts it to the network 5 via the network connection unit 18.

ステップC2において、IOキャッシュ制御部151は、その後所定時間待機し、所定時間の経過を確認すると(ステップC3)、自IO端末1のキャッシュ統計情報を再度作成し、ネットワーク接続部18を経由して、ネットワーク5へブロードキャスト送信する。   In step C2, the IO cache control unit 151 then waits for a predetermined time and confirms the elapse of the predetermined time (step C3). Then, the cache statistics information of the own IO terminal 1 is created again, via the network connection unit 18 And broadcast transmission to the network 5.

以上により、キャッシュ統計情報の送出処理を終了する。   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 IO cache unit 15 of the own IO terminal 1 is in a standby state until it receives the cache statistical information from the other IO terminals 2 and 3. When the cache statistical information is received, the process proceeds to Step C5. If the cache statistical information is not received, the standby state in step C4 is continued.

ステップC5において、IOキャッシュ部15は、他のIO端末2,3からのキャッシュ統計情報を取得する。   In step C5, the IO cache unit 15 acquires cache statistical information from the other IO terminals 2 and 3.

ステップC6において、IOキャッシュ部15は、取得したキャッシュ統計情報で、キャッシュ統計情報記憶部153内のキャッシュ統計情報テーブル(図3参照)を更新する。尚、キャッシュ統計情報記憶部153内のキャッシュ統計情報は、ペアリング先の決定処理において利用される。   In step C6, the IO cache unit 15 updates the cache statistical information table (see FIG. 3) in the cache statistical information storage unit 153 with the acquired cache statistical information. The cache statistical information in the cache statistical information storage unit 153 is used in the pairing destination determination process.

以上により、キャッシュ統計情報の収集処理を終了する。   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 own IO terminal 1 in the following description) will be described with reference to the flowchart of FIG.

ステップD1において、ペアリング処理の送信側である自IO端末1のIOキャッシュ部15は、キャッシュ統計情報記憶部153内のキャッシュ統計情報の検索およびペアリング先の選択を行う。具体的には、IOキャッシュ制御部151のペアリング部154は、データ流量制御部152に最適なペアリング先の選択を依頼する。依頼を受けたデータ流量制御部152は、キャッシュ統計情報記憶部153に格納される他のIO端末2,3のキャッシュ統計情報(図3)を参照し、キャッシュ空き容量が多く、かつ、共有ファイルシステムのデータ流量値が少ないIO端末(ここではIO端末2とする)を選ぶ。   In Step D1, the IO cache unit 15 of the own IO terminal 1 that is the transmission side of the pairing process searches the cache statistical information in the cache statistical information storage unit 153 and selects a pairing destination. Specifically, the pairing unit 154 of the IO cache control unit 151 requests the data flow rate control unit 152 to select an optimal pairing destination. Upon receiving the request, the data flow rate control unit 152 refers to the cache statistical information (FIG. 3) of the other IO terminals 2 and 3 stored in the cache statistical information storage unit 153, and has a large cache free capacity and a shared file. An IO terminal with a small system data flow rate value (here, IO terminal 2) is selected.

ステップD2において、ペアリング部154は、選択したIO端末2に対して、ペアリング処理リクエストを送信する。ステップD3において、選択したIO端末2からペアリング処理リクエストの結果を受信したペアリング部154は、当該結果がペアリング受け入れ許可か、又は、受け入れ不許可化を判断する(ステップD4)。当該結果がペアリング受け入れ許可であれば、処理はステップD5に進められる。当該結果がペアリング受け入れ不許可であれば、処理はステップD1に戻され、別のペアリング候補のIO端末が再選択される。   In step D <b> 2, the pairing unit 154 transmits a pairing processing request to the selected IO terminal 2. In step D3, the pairing unit 154 that has received the result of the pairing processing request from the selected IO terminal 2 determines whether the result is permission for pairing acceptance or disapproval for acceptance (step D4). If the result is permission to accept pairing, the process proceeds to step D5. If the result is that pairing acceptance is not permitted, the process returns to step D1, and another pairing candidate IO terminal is reselected.

ステップD5において、ペアリング部154は、ペアリングが成立したとして、ペアリング先のIO端末2の識別子(IPアドレス)を一時記憶する。図5に示すキャッシュデータファイルのペア識別子として格納してもよい。ペアリング成立後は、キャッシュデータ送受信時にデータ送信元を精査する必要がなくなる。   In step D5, the pairing unit 154 temporarily stores the identifier (IP address) of the IO terminal 2 that is the pairing destination, assuming that pairing has been established. You may store as a pair identifier of the cache data file shown in FIG. After pairing is established, there is no need to examine the data transmission source when transmitting and receiving cache data.

以上により、送信側におけるキャッシュのペアリング処理を終了する。   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 IO terminal 2 on the receiving side of the pairing process determines whether or not a pairing request has been received in the standby state for receiving a pairing request. When the pairing request is received, the process proceeds to Step D7. If no pairing request is received, the standby state is continued in step D6.

ステップD7において、IOキャッシュ制御部151のペアリング部154は、キャッシュ統計情報記憶部153を参照し、自身(即ちIO端末2)のキャッシュ統計情報を基に、他にペアリングしているIO端末がないか、キャッシュ空き容量は十分にあるか等を調査する。   In step D7, the pairing unit 154 of the IO cache control unit 151 refers to the cache statistical information storage unit 153, and based on the cache statistical information of itself (that is, the IO terminal 2), other IO terminals that are paired Investigate whether or not there is sufficient cache capacity.

ステップD8において、調査の結果を基に、ペアリング部154は、ペアリングの受け入れ許可ができるか否かを判断する。ペアリングの受け入れ許可ができる場合は、処理はステップD10に進められる。ペアリングの受け入れ許可ができない場合は、処理はステップD9に進められる。   In step D8, based on the result of the investigation, the pairing unit 154 determines whether or not pairing acceptance can be permitted. If the acceptance of pairing is permitted, the process proceeds to step D10. If the pairing acceptance is not permitted, the process proceeds to Step D9.

ステップD9において、ペアリング部154は、ペアリング要求元のIO端末1に対し、ペアリング受け入れ不許可通知を送信する。   In step D9, the pairing unit 154 transmits a pairing acceptance non-permission notification to the IO terminal 1 that is the pairing request source.

ステップD10において、ペアリング部154は、ペアリング要求元のIO端末1に対し、ペアリング受け入れ許可通知を送信する。   In step D10, the pairing unit 154 transmits a pairing acceptance permission notification to the IO terminal 1 that is the pairing request source.

ステップD11において、ペアリング部154は、ペアリング用のキャッシュファイルをオープン(open)にする。このオープン処理は、IOリクエスト処理(図6参照)におけるステップA3のキャッシュデータファイルの作成処理から実行される。更に、ペアリング部154はペアリング元であるIO端末1のIPアドレスと、キャッシュデータファイルをオープン(open)にした時刻(参照時刻)とを一時記憶する。図5に示すキャッシュデータファイルのペア識別子として格納してもよい。   In step D11, the pairing unit 154 opens the pairing cache file. This open process is executed from the cache data file creation process in step A3 in the IO request process (see FIG. 6). Further, the pairing unit 154 temporarily stores the IP address of the IO terminal 1 that is the pairing source and the time (reference time) when the cache data file was opened. You may store as a pair identifier of the cache data file shown in FIG.

以上により、受信側におけるキャッシュのペアリング処理を終了する。   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 IO terminal 2 that is the pairing destination of the IO terminal 1 takes a standby state for cache data. When the cache data is received, the process proceeds to Step D22. While the cache data is not received, the standby state of D21 is continued.

ステップD22において、IOキャッシュ制御部151は、当該キャッシュデータの送信元がペアリングを許可したIO端末1か否かを判断する。具体的には、IOキャッシュ制御部151は、送信元IPアドレスとペアリング部154において一時記憶されるIPアドレスとを比較し、これらが一致するか否かで判断する。送信元がペアリングを許可したIO端末であると判断された場合、処理はステップD24に進められる。送信元がペアリングを許可したIO端末ではないと判断された場合、処理はD23に進められる。   In step D22, the IO cache control unit 151 determines whether or not the transmission source of the cache data is the IO terminal 1 that has permitted pairing. Specifically, the IO cache control unit 151 compares the transmission source IP address with the IP address temporarily stored in the pairing unit 154, and determines whether or not they match. If it is determined that the transmission source is an IO terminal that permits pairing, the process proceeds to step D24. If it is determined that the transmission source is not an IO terminal that permits pairing, the process proceeds to D23.

ステップD23において、IOキャッシュ制御部151は、キャッシュデータの送信元に対し、ネットワーク接続部18を経由し、書き込み不可の通知を送信する。   In step D23, the IO cache control unit 151 transmits a write disable notification to the cache data transmission source via the network connection unit 18.

ステップD24において、IOキャッシュ制御部151は、受信側ペアリング処理(図11のステップD11参照)において、ペアリングを許可したIO端末1のためにオープン処理したファイルのペア識別子(図5参照)を用いて、ペアリング用のキャッシュデータファイルを検索し、検索されたキャッシュデータファイル(SSD17)にキャッシュデータの書き込みを行う。   In step D24, the IO cache control unit 151 uses the pair identifier (see FIG. 5) of the file that has been opened for the IO terminal 1 that has permitted pairing in the receiving-side pairing process (see step D11 in FIG. 11). The cache data file for pairing is searched for, and the cache data is written into the searched cache data file (SSD 17).

ステップD25において、IOキャッシュ制御部151は、キャッシュデータの書き込みが完了すると、キャッシュデータ送信元のIO端末1に対し、ネットワーク接続部18を経由し、書き込み完了通知を送信する。   In step D <b> 25, when the writing of the cache data is completed, the IO cache control unit 151 transmits a write completion notification to the cache data transmission source IO terminal 1 via the network connection unit 18.

ステップD26において、IOキャッシュ制御部151は、更新したキャッシュブロックのメタデータを、ネットワーク接続部18を介して、ネットワーク5上にブロードキャスト送信する。   In step D <b> 26, the IO cache control unit 151 broadcasts the updated cache block metadata to the network 5 via the network connection unit 18.

以上により、ペアリング先への書き込み処理を終了する。   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 own IO terminal 2, an identifier of the pairing destination IO terminal 1, and a range (block number, number of blocks, etc.) holding cache data.

また、メタデータを受信した他の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 SSD 17, and if so, the corresponding block in the cache data file Change the update flag to “INVALID”. This is to prevent the other IO terminal 3 from holding an unnecessary cache data file and preventing the other IO terminal 3 from erroneously transmitting this data to an upper application or the like.

(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 master IO terminal 1 and the backup IO terminal 2 after pairing. When the cache data is held by an IO terminal other than the master side and the backup side (referred to as IO terminal 3), it is necessary to invalidate the data so that it is not returned to an upper application on the network 5. There is.

キャッシュデータの無効化処理について、図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 IO cache unit 15 of the IO terminal (referred to as the IO terminal 2) determines whether or not the updated cache block metadata has been received. If metadata is received, the process proceeds to step E2. While the metadata is not received, the process returns to step E1 and the standby state is continued.

ステップE2において、受信したメタデータを基に、メタデータに記載されたキャッシュデータの範囲を自IO端末2に保持しているか、キャッシュ統計情報記憶部153内を調査する。調査の結果、メタデータに記載されたキャッシュデータの範囲を自IO端末2に保持している場合、処理はステップE3に進められる。自IO端末2では保持していない場合、この処理は一端終了し、再度ステップE1の待機状態に戻される。   In step E2, based on the received metadata, the cache statistics information storage unit 153 is examined to determine whether the range of the cache data described in the metadata is held in the own IO terminal 2. As a result of the investigation, when the range of the cache data described in the metadata is held in the own IO terminal 2, the process proceeds to step E3. If the own IO terminal 2 does not hold it, this process is terminated once and the process returns to the standby state of step E1 again.

ステップ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 IO cache unit 15 invalidates the cache data of the unpaired IO terminal (for example, the IO terminal 3) stored in the cache statistics information storage unit 153. Specifically, the IO cache unit 15 changes the update flag of the corresponding cache data in the cache data file (see FIG. 5) to “INVALID (invalid)”. This process is performed in all corresponding blocks in the cache data file.

以上により、キャッシュデータの無効化処理を終了する。   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 IO terminal 1.

ステップF1において、IOキャッシュ部15は、更新されたブロックの検索を行う。具体的に、IOキャッシュ部15は、キャッシュファイルデータ(図5参照)の更新フラグが「MODIFIED(更新状態:データが最新に更新されている)」となっているブロックを検索し、キャッシュフラッシュ対象ブロックとして選択する。   In step F1, the IO cache unit 15 searches for an updated block. Specifically, the IO cache unit 15 searches for a block in which the update flag of the cache file data (see FIG. 5) is “MODIFIED (update state: data is updated to the latest)”, and cache flush target Select as a block.

ステップF2において、IOキャッシュ部15のデータ流量制御部152は、MRU(Maximum Receive unit)アルゴリズムを用いて、キャッシュフラッシュ対象ブロックのペア識別子(図5参照)と同一のIPアドレスを有するキャッシュ統計情報(図3参照)のレコードから、共有FSデータ流量を確認し、所定の閾値を超えるIOリクエストが出ているかを確認する(ステップF3)。所定の閾値を超えるIOリクエストが出ている場合、処理はステップFに進められる。所定の閾値を超えるIOリクエストが出ていない場合、処理はステップFに進められる。 In step F2, the data flow rate control unit 152 of the IO cache unit 15 uses the MRU (Maximum Receive unit) algorithm to generate cache statistical information having the same IP address as the pair identifier (see FIG. 5) of the cache flush target block. The shared FS data flow rate is confirmed from the record of FIG. 3), and it is confirmed whether an IO request exceeding a predetermined threshold value is issued (step F3). If IO requests exceeds a predetermined threshold value is out, the process proceeds to step F 4. If IO requests exceeds a predetermined threshold value is not out, the process proceeds to step F 6.

ステップF4において、データ流量制御部152は、キャッシュ空き容量が所定の閾値以下となったか否かを判断する。キャッシュ空き容量が所定の閾値以下である場合、処理はステップF6に進められる。キャッシュ空き容量が所定の閾値以下ではない場合、処理はF5に進められる。   In step F4, the data flow rate control unit 152 determines whether or not the cache free capacity is equal to or less than a predetermined threshold value. If the cache free space is equal to or smaller than the predetermined threshold, the process proceeds to Step F6. If the cache free capacity is not less than the predetermined threshold value, the process proceeds to F5.

ステップ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 cache control unit 151 of the IO cache unit 15 passes the cache data to the shared FS server 4 via the network connection unit 18. The shared FS server 4 writes the cache data in the shared file unit 4a. At this time, the IO cache control unit 151 sets the write time to the “update time” of the cache data file (see FIG. 5) in the SSD 17 via the IO virtual FS unit 16, and sets the “update flag”. Set to “SHARED (shared: synchronized with data of shared file unit 4a in shared FS server 17)”. This means that the cache (SSD 17) and the shared file server 4 hold the same data.

ステップ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 IO terminal 2 in the following description) will be described with reference to the flowchart of FIG.

まずステップG1において、自IO端末2のIOキャッシュ部15は、待機状態を一定時間取る。この待機状態は、あるアプリケーションプログラムの動作中に、ボトルネックとなっていたIO処理の混雑が、ペアリング処理により緩和された、又は、アプリケーションプログラムが終了したと判断可能な時間であり、例えば数秒〜数時間等である。一定時間の待機状態が終了すると処理はステップG2に進められる。   First, in step G1, the IO cache unit 15 of the own IO terminal 2 takes a standby state for a predetermined time. This standby state is a time during which it is possible to determine that the IO processing congestion that has become a bottleneck during the operation of a certain application program has been alleviated by the pairing process, or that the application program has ended. ~ Several hours etc. When the standby state for a certain period of time ends, the process proceeds to Step G2.

ステップG2において、IOキャッシュ部15は、現在オープン(open)しているキャッシュデータファイルの参照時刻をペアリング部154から取得する(図11におけるステップD11参照)。   In step G2, the IO cache unit 15 acquires the reference time of the currently opened cache data file from the pairing unit 154 (see step D11 in FIG. 11).

ステップG3において、IOキャッシュ部15のIOキャッシュ制御部151は、取得した参照時刻と、システムから取得した現在時刻とを比較して、予め設定された規定時間を経過したかを判断する。規定時間を経過した場合処理はステップG4に進められる。規定時間を経過しない場合処理はG1に戻される。   In step G3, the IO cache control unit 151 of the IO cache unit 15 compares the acquired reference time with the current time acquired from the system, and determines whether a preset specified time has elapsed. If the specified time has elapsed, the process proceeds to step G4. If the specified time has not elapsed, the process returns to G1.

ステップG4において、IOキャッシュ制御部151のペアリング部154は、ペアリング解除要求を、ペアリング先のIO端末1に送信する。   In step G4, the pairing unit 154 of the IO cache control unit 151 transmits a pairing release request to the IO terminal 1 that is the pairing destination.

ステップG5において、ペアリング部154は、ペアリング先のIO端末1からペアリング解除完了の通知を待つ。   In step G5, the pairing unit 154 waits for a pairing release completion notification from the paired IO terminal 1.

ステップG6において、ペアリング部154は、ペアリング解除完了の通知を受信後、このキャッシュデータファイルのclose処理を行う。   In step G6, the pairing unit 154 performs a close process for the cache data file after receiving the notification of the completion of the pairing release.

以上により、キャッシュのペアリング解除要求の送信側IO端末2における処理を終了する。   This completes the processing at the transmitting IO terminal 2 of the cache pairing release request.

次に、キャッシュのペアリング解除の受信側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-side IO terminal 1 of the pairing cancellation process is in a waiting state for receiving a pairing cancellation request. In this state, when a pairing release request is received, the process proceeds to step G8. The reception waiting state in step G7 is continued until a pairing release request is received.

ステップG8において、ペアリング解除要求を受信すると、ペアリング解除処理の受信側IO端末1は、現在オープンしているキャッシュデータファイルのクローズ(close)処理を行う。   In step G8, when a pairing release request is received, the receiving side IO terminal 1 of the pairing release process performs a process of closing the cache data file that is currently open.

ステップG9において、クローズ処理が完了すると、ペアリング部154は、ペアリング解除完了の通知を、解除要求の送信側IO端末2に返信する。   In step G9, when the closing process is completed, the pairing unit 154 returns a pairing cancellation completion notification to the transmission-side IO terminal 2 of the cancellation request.

以上により、キャッシュのペアリング解除の受信側IO端末1における処理を終了する。   Thus, the processing in the receiving IO terminal 1 for canceling the cache pairing is completed.

(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 / output library unit 12 based on the description of the application program in the application unit 11 (see FIG. 1).

ステップH2において、AP仮想FS部13は、オープン処理で取得したファイルハンドル識別子(図6のステップA4参照)を基に、ファイルシステムの選択を行う。このとき、ファイルハンドル識別子が、キャッシュFS用のファイルハンドルを示していた場合に、AP仮想FS部13は、ユーザFS制御部14を経由して、ユーザ領域上に実装されているIOキャッシュ部15を呼び出す。   In step H2, the AP virtual FS unit 13 selects a file system based on the file handle identifier (see step A4 in FIG. 6) acquired by the open process. At this time, when the file handle identifier indicates the file handle for the cache FS, the AP virtual FS unit 13 passes through the user FS control unit 14 and the IO cache unit 15 mounted on the user area. Call.

ステップH3において、IOキャッシュ部15のIOキャッシュ制御部151は、ローカルFS部161上にあるキャッシュファイルを検索して、キャッシュファイル内の各ブロックの更新フラグをチェックする。このときに、更新フラグが「MODIFIED(更新状態:データが最新に更新されている)」または「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」となっていれば、そのままキャッシュデータを上位のアプリケーション等に返却する(ステップH7)。もし更新フラグが「NO FILE(キャッシュファイルが存在しない)」、または、「INVALID(無効)」となっている場合は、処理はステップH4に進められる。   In step H3, the IO cache control unit 151 of the IO cache unit 15 searches the cache file on the local FS unit 161 and checks the update flag of each block in the cache file. At this time, the update flag becomes “MODIFIED (update state: data is updated latest)” or “SHARED (shared: synchronized with the data of the shared file unit 4a in the shared FS server 17)”. If so, the cache data is returned to the upper application as it is (step H7). If the update flag is “NO FILE (no cache file exists)” or “INVALID (invalid)”, the process proceeds to step H4.

ステップH4において、IOキャッシュ部15は、有効なデータを得るために、他の全てのIO端末2,3に対し強制フラッシュ要求を出す。まず、IOキャッシュ部15は、更新フラグが「NO FILE」または「INVALID(無効)」となっているブロックのメタデータを、ネットワーク接続部18を経由して、ブロードキャスト送信する。このメタデータには、キャッシュファイル名、ブロック番号、ブロック数等が含まれる。他の全てのIO端末2,3は、このフラッシュ要求を受信すると、自IO端末2,3において強制フラッシュ処理を行う。この処理の詳細は後述する。   In step H4, the IO cache unit 15 issues a forced flush request to all other IO terminals 2 and 3 in order to obtain valid data. First, the IO cache unit 15 broadcasts the metadata of the block whose update flag is “NO FILE” or “INVALID (invalid)” via the network connection unit 18. This metadata includes a cache file name, a block number, the number of blocks, and the like. When all the other IO terminals 2 and 3 receive this flush request, the local IO terminals 2 and 3 perform forced flush processing. Details of this processing will be described later.

ステップ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 FS server 4, the IO cache unit 15 sends the forced flushed desired data to the shared FS via the network connection unit 18. Read from server 4 and get.

ステップH6において、IO仮想FS部16は、取得したデータをキャッシュデータとしてSSD17に書き込む。   In step H6, the IO virtual FS unit 16 writes the acquired data to the SSD 17 as cache data.

次にステップ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 IO cache unit 15 of the IO terminals 2 and 3 receives the flush request. This flush request is metadata or data including metadata.

ステップH9において、IOキャッシュ部15のIOキャッシュ制御部151は、メタデータに含まれるキャッシュファイル名、ブロックおよびその範囲に該当するデータが、自身のキャッシュ(SSD17)に存在するか確認する。存在する場合は、処理はステップH10へ進められる。存在しない場合は、処理はステップH8へ戻される。   In step H9, the IO cache control unit 151 of the IO cache unit 15 checks whether the cache file name, block, and data corresponding to the range included in the metadata exist in its own cache (SSD 17). If it exists, the process proceeds to Step H10. If not, the process returns to step H8.

ステップH10において、IOキャッシュ制御部151は、ネットワーク接続部18を経由し、フラッシュ要求されているキャッシュデータを共有FSサーバ4に送信する。共有FSサーバ4は、フラッシュ要求されているキャッシュデータを共有ファイル部4aに書き込む。この際、キャッシュデータファイル内の更新時刻が設定される。   In step H <b> 10, the IO cache control unit 151 transmits the cache data requested to be flushed to the shared FS server 4 via the network connection unit 18. The shared FS server 4 writes the cache data requested for flushing to the shared file unit 4a. At this time, the update time in the cache data file is set.

ステップH11において、IOキャッシュ制御部151は、キャッシュファイルデータ(図5)内の該当するブロックの更新フラグに「SHARED」を設定する。   In step H11, the IO cache control unit 151 sets “SHARED” to the update flag of the corresponding block in the cache file data (FIG. 5).

以上により、強制フラッシュ処理を完了する。   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 application unit 11, a CPU (not shown) calls a close system call in a close function provided by the input / output library unit 12.

ステップI2において、AP仮想FS部13は、クローズ処理するファイルのファイルハンドル値を受け取り、ファイルシステムの選択を行う。   In step I2, the AP virtual FS unit 13 receives a file handle value of a file to be closed and selects a file system.

ステップ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 virtual FS unit 13 calls the IO cache unit 15 mounted on the user area via the user FS control unit 14. The IO cache unit 15 closes the cache data file.

ステップI4において、IO仮想FS部16は、ローカルFS部161を選択し、ローカルFS部161は、SSD17上に作成されたキャッシュデータファイルを削除する。   In step I4, the IO virtual FS unit 16 selects the local FS unit 161, and the local FS unit 161 deletes the cache data file created on the SSD 17.

以上により、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 terminals 1 to 3 for using the shared file system with high reliability at the time of cache writing are used. Can be provided.

これは、自身のキャッシュデータのコピーを一時格納させるためのペアリング先の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 FS server 4. It is because it chooses. Thereby, the reliability at the time of writing can be made high. Furthermore, the original IO request of the shared file system can be prevented from being hindered.

<第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 IO terminal 10 detects a terminal for which cache data is paired for each file unit in the cache memory area, and instructs to write the cache data in the cache memory area of the paired terminal.

本発明の第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 terminal 10 with high reliability at the time of cache writing.

これは、自身のキャッシュデータのコピーを一時格納させるためのペアリング先の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 system control unit 14 and the file system is configured by implementation in the user area. However, the same function can be achieved by implementation using a kernel module or implementation in the kernel. It is feasible.

キャッシュの整合性を保つために、キャッシュ制御については、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 IO terminals 1 to 3 represents a functional unit block. Some or all of the components in the IO terminals 1 to 3 are realized by any combination of an information processing apparatus and a program as shown in FIGS. An example of the information processing apparatus 500 that realizes this is shown in FIG. The information processing apparatus 500 includes the following configuration as an example.

・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に供給してもよい。
CPU 501
ROM 502
RAM 503
A program 504 loaded into the RAM 503
A storage device 505 for storing the program 504
A drive device 507 for reading / writing the recording medium 506
Communication interface 508 connected to the communication network 509
An input / output interface 510 for inputting / outputting data
-Bus 511 connecting each component
Each component of the IO terminals 1 to 3 in each embodiment is realized by the CPU 501 acquiring and executing a program 504 that realizes these functions. The program 504 that realizes the function of each component of each device is stored in advance in the storage device 505 or the RAM 503, for example, and is read by the CPU 501 as necessary. The program 504 may be supplied to the CPU 501 via the communication network 509 or may be stored in the recording medium 506 in advance, and the drive device 507 may read the program and supply it to the CPU 501.

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 information processing apparatus 500 and a program that are separately provided for each component. In addition, a plurality of components included in the IO terminal may be realized by any combination of one information processing apparatus 500 and a program.

また、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: Shared FS server 4a: Shared file unit 5: Network 11: Application unit 12: Input / output library unit 13: AP virtual FS unit 14: User FS control Unit 15: IO cache unit 16: IO virtual FS unit 17: shared FS server 18: network connection unit 25: IO cache unit 35: IO cache unit 100: shared file system 151: IO cache control unit 152: data flow rate control unit 153 : Cache statistical information storage unit 154: Pairing unit 161: Local FS unit 162: Shared FS client control unit 500: Information processing device 501: CPU
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乃至のいずれかに記載の情報処理端末。
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.
請求項1乃至4のいずれかに記載の情報処理端末を複数と、
前記情報処理端末の各々がデータファイルを共有するための共有ファイルシステムサーバと、
を備える共有ファイルシステム。
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.
JP2015184912A 2015-09-18 2015-09-18 Information processing terminal, shared file system, shared file method, and shared file program Active JP6589500B2 (en)

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)

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