特許第6589500号(P6589500)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6589500情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム
<>
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000002
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000003
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000004
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000005
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000006
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000007
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000008
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000009
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000010
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000011
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000012
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000013
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000014
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000015
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000016
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000017
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000018
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000019
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000020
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000021
  • 特許6589500-情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム 図000022
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6589500
(24)【登録日】2019年9月27日
(45)【発行日】2019年10月16日
(54)【発明の名称】情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム
(51)【国際特許分類】
   G06F 16/172 20190101AFI20191007BHJP
   G06F 16/11 20190101ALI20191007BHJP
   G06F 16/182 20190101ALI20191007BHJP
   G06F 3/06 20060101ALI20191007BHJP
【FI】
   G06F16/172
   G06F16/11
   G06F16/182
   G06F3/06 301Z
【請求項の数】7
【全頁数】24
(21)【出願番号】特願2015-184912(P2015-184912)
(22)【出願日】2015年9月18日
(65)【公開番号】特開2017-59105(P2017-59105A)
(43)【公開日】2017年3月23日
【審査請求日】2018年8月9日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】青野 寛
【審査官】 早川 学
(56)【参考文献】
【文献】 特開2006−293593(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
共有ァイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、前記キャッシュデータを、前記ペアリングする端末のキャッシュメモリ領域に書き込むよう指示
外部ネットワークに対し、自端末のキャッシュメモリ領域の空き容量を示す情報をブロードキャスト送信する、
情報処理端末。
【請求項2】
前記ペアリングする端末から、前記ファイル単位毎にキャッシュデータを受信すると、当該キャッシュデータを、自端末の前記キャッシュメモリ領域内に書き込む、
請求項1に記載の情報処理端末。
【請求項3】
前記外部ネットワークから、他端末のキャッシュメモリ領域の空き容量を示す情報を受信し、当該情報を基に、前記ペアリングする端末を決定する
請求項1または2に記載の情報処理端末。
【請求項4】
情報処理端末から共有ファイルシステムサーバへのデータ入出力量を検知し、前記データ入出力量が所定の閾値を越える場合、前記情報処理端末から前記共有ファイルシステムサーバへのデータの入出力を調整する、
請求項1乃至のいずれかに記載の情報処理端末。
【請求項5】
請求項1乃至4のいずれかに記載の情報処理端末を複数と、
前記情報処理端末の各々がデータファイルを共有するための共有ファイルシステムサーバと、
を備える共有ファイルシステム。
【請求項6】
共有ァイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、
前記キャッシュデータを、前記ペアリングする端末のキャッシュメモリ領域に書き込むよう指示
外部ネットワークに対し、自端末のキャッシュメモリ領域の空き容量を示す情報をブロードキャスト送信する、
共有ファイル方法。
【請求項7】
共有ァイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、
前記キャッシュデータを、前記ペアリングする端末のキャッシュメモリ領域に書き込むよう指示
外部ネットワークに対し、自端末のキャッシュメモリ領域の空き容量を示す情報をブロードキャスト送信する、
機能をコンピュータに実行させる共有ファイルプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアント端末側から共有ファイル(ストレージ)に対するデータの読み出しおよび書き込みを管理することができる情報処理端末等に関する。
【背景技術】
【0002】
近年、ストレージサーバ等において、記憶装置としてHDD(Hard Disc Drive)の代わりにSSD(Solid State Drive)を搭載しているもの、又はその両方を搭載しているものがある。この場合、多くはOS(operation system)格納用には高速で小容量のSSDを使い、データ格納用には低速だが低価格かつ大容量のHDDを用いる。可能な限り最速のシステムを構築しようとすると、データ格納用に最速のSSDを使用すればよいが、大容量SSDは高価である。
【0003】
このため、低速で大容量のHDDデータドライブのキャッシュとして、高速で小容量のSSDを利用する手法が用いられている。例えば、ストレージのデータ最適配置機能や、Linux(リナックス;登録商標)のbcasheなどがこれにあたる。
【0004】
しかしながら、この手法では、キャッシュ(SSD等)から安定したストレージ(HDD等)までの距離が遠い場合、突発的に大量に発生するIO(Input/Output)キャッシュとしては適切に動作しないことがある。また、クライアント端末が非常に多い場合、キャッシュ内の記憶領域がすぐに飽和して性能低下を招きやすい。
【0005】
さらに、データ更新が多いシステムで使用する場合には、共有ファイルシステム間のキャッシュコヒーレンシを保つため頻繁にキャッシュフラッシュを行う必要があり、これはIO性能の低下を招く要因となっていた。具体的例としては、この手法を用いて高性能コンピューティング(単位時間当たりの計算量が非常に多い計算処理)を実行する場合、低いIO性能が起因し、途中の計算結果を一時格納する記憶領域(チェックポイントファイル)としては、高い性能を発揮しない。
【0006】
この問題を解消するため、複数のクライアント端末に処理を分散させるストレージシステムが開発されている。当該クライアント端末の各々は高速IO可能なキャッシュ(SDD)を備えている。
【0007】
このようなストレージシステムにおいて、リモートコピー時にバッファのデータ洩れを防ぐためにIO制限を実行する技術が開示されている(特許文献1)。
【0008】
また、このようなストレージシステムにおいて、シン・プロビジョニング機能と高可用性を両立させるための技術が開示されている(特許文献2)。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−18236号公報
【特許文献2】特開2009−230742号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1および2の技術では、クライアント端末間でキャッシュを相互に利用するためにペアリング機構を設ける。しかしながらクライアント端末のペアは自動に検出されるものではなく、そのペアリングに手間を要していた。更に、ペアリングの単位はディスク単位であり、小規模なタスクを実現するには頻繁なペアリング処理が必要となっていた。
【0011】
本発明は、上記の問題点を解決するべくなされた。本発明は、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い情報処理端末等を提供することを主たる目的とする。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、本発明の第1の特徴は、共有するファイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する、
情報処理端末である。
【0013】
本発明の第2の特徴は、上記の情報処理端末を複数と、
情報処理端末の各々がデータファイルを共有するための共有ファイルシステムサーバと、を備える共有ファイルシステムである。
【0014】
本発明の第3の特徴は、共有するファイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、
キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する、
共有ファイル方法である。
【0015】
本発明の第4の特徴は、共有するファイルシステムに接続可能な、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、
キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する
機能をコンピュータに実行させる共有ファイルプログラムである。
【発明の効果】
【0016】
本発明によれば、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い情報処理端末等を提供することができる。
【図面の簡単な説明】
【0017】
図1】本発明の第1の実施形態に係る共用ファイルシステムの構成例を示す図である。
図2】キャッシュ統計情報のデータ構成例を示す図である。
図3】キャッシュ統計情報記憶部内のキャッシュ統計情報のデータ構成例を示す図である。
図4】キャッシュデータファイルのディレクトリ構造を表す図である。
図5】キャッシュ内におけるキャッシュデータファイルの構造を表す図である。
図6】IOリクエスト処理の動作を示すフローチャートである。
図7】共有ファイルへの書き込み処理の動作を示すフローチャートである。
図8】キャッシュ統計情報の送出処理の動作を示すフローチャートである。
図9】キャッシュ統計情報の収集処理の動作を示すフローチャートである。
図10】送信側のキャッシュのペアリング処理の動作を示すフローチャートである。
図11】受信側のキャッシュのペアリング処理の動作を示すフローチャートである。
図12】ペアリング先への書き込み処理の動作を示すフローチャートである。
図13】キャッシュデータの無効化処理の動作を示すフローチャートである。
図14】キャッシュのフラッシュ処理の動作を示すフローチャートである。
図15】キャッシュのペアリング解除処理の動作を示すフローチャートである。
図16】受信側におけるキャッシュのペアリング解除処理の動作を示すフローチャートである。
図17】ファイルの読み込み処理の動作を示すフローチャートである。
図18】強制キャッシュフラッシュ処理の動作を示すフローチャートである。
図19】ファイルのクローズ処理の動作を示すフローチャートである。
図20】本発明の第2の実施形態に係るIO端末の構成例を示す図である。
図21】情報処理装置の内部構成例を示す図である。
【発明を実施するための形態】
【0018】
次に図面を参照して、本発明の実施形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は本発明の実施形態における構成を模式的に表している。更に以下に記載される本発明の実施形態は一例であり、その本質を同一とする範囲において適宜変更可能である。
【0019】
<本発明の第1の実施形態>
バースト性の高いIO処理には、共有ファイルシステムであっても、個々のIO端末は、データを共有する必要がないものも多い(特に中間ファイル等)。このため、このようなファイルについては、可能な限りIO端末内で閉じて処理をし、最終的な結果を共有ファイルシステムに書き戻す手法が用いられる(ステージング、デステージング等)。本発明の第1の実施形態においては、このようなIO処理を自動化する。これは、大容量で安価なSSD等の高速キャッシュメモリを用いた、低レイテンシで且つ広帯域における、ローカルファイルシステム内でのIO処理、即ち、共有ファイルシステムへのIO帯域とローカルファイルシステムのIO帯域とを可能な限り等しくすることにより、実現できる。
【0020】
(共有ファイルシステム)
本発明の第1の実施形態に係る共有ファイルシステム100について図1を参照して説明する。第1の実施形態に係る共有ファイルシステム100は、図1に示すように、複数のIO端末(情報処理端末)1,2,3と、共有ファイルシステムサーバ(以下、「共有FSサーバ」と記載)4とを備え、各IO端末1〜3および共有FSサーバ4間はネットワーク5で接続され、データ通信可能となっている。
【0021】
共有FSサーバ4は、IO端末1〜3間で共有するデータファイルを管理するファイルシステム機能を備える。共有FSサーバ4は、共有ファイルを格納する記憶装置である共有ファイル部4aを備える。
【0022】
IO端末1〜3は同じ構成を備える。IO端末2は、IOキャッシュ部25を備える。IO端末3は、IOキャッシュ部35を備える。尚、以下においては、便宜上、自端末はIO端末1、他端末はIO端末2,3として説明する。
【0023】
(IO端末)
IO端末1〜3のOSは、図1に示すようにユーザ領域(アプリケーション領域)、カーネル領域、ハードウェア領域から構成される。ユーザ領域は、各IO端末1〜3のユーザが各々の仕様に応じて変更可能な領域である。カーネル領域は、全てのIO端末1〜3が共通して備えるOSの管理部であり、具体的には、IO端末1〜3のリソースを管理し、ハードウェア領域内のハードウェア資源とユーザ領域内のソフトウェアコンポーネント(アプリケーションプログラム等)との間のセッション、トランザクション等のデータのやりとりを管理する。例えば、動作中のプログラムの実行状態を管理し、ハードウェア資源を管理してアプリケーションプログラムがハードウェア機能を利用する機構を提供する。
【0024】
ユーザ領域には、アプリケーション部11、入出力ライブラリ部12、IOキャッシュ部15が存在する。カーネル領域には、アプリケーション仮想ファイルシステム部(以下、「AP仮想FS部」と記載)13、ユーザファイルシステム制御部(以下、「ユーザFS制御部」と記載)14、IO仮想ファイルシステム部(以下、「IO仮想FS部」と記載)16、ローカルファイルシステム部(以下、「ローカルFS部」と記載)161および共有ファイルシステムクライアント制御部(以下、「共有FSクライアント制御部」と記載)162が存在する。ハードウェア領域には、SDD17およびネットワーク接続部18が存在する。
【0025】
先ず、ユーザ領域の各部について説明する。
【0026】
IOキャッシュ部15は、キャッシュ(SSD17)および共有FSサーバ4に対するIO制御を実行するための機構であり、IO処理用のキャッシュデータファイルを作成する。IOキャッシュ部15は、IOキャッシュ制御部151およびデータ流量制御部152を備える。
【0027】
IOキャッシュ制御部151は、ペアリング部154を備える。ペアリング部154は、キャッシュデータファイルの複製を持たせるためのペアリング先IO端末を選出し、選出されたIO端末との間でペアリング処理およびペアリング解除処理等を行う。
【0028】
IOキャッシュ制御部151はネットワーク接続部18にアクセス可能であり、ネットワーク5を経由して、他のIO端末2,3が備えるIOキャッシュ部25、35とデータ通信する。
【0029】
IOキャッシュ制御部151は、データ流量制御部152と接続されている。
【0030】
データ流量制御部152は、IO仮想FS部16を経由して、共有FSクライアント制御部162にIOリクエストを行う。
【0031】
データ流量制御部152は、定期的に自身(IO端末1)のキャッシュ統計情報を、ネットワーク接続部18を介して、他のIO端末2,3に通知する。尚、通知したキャッシュ統計情報は、キャッシュ統計情報記憶部153に格納される。
【0032】
また、データ流量制御部152は、ネットワーク接続部18を介して、他のIO端末2,3からキャッシュ統計情報を収集し、収集したキャッシュ統計情報をキャッシュ統計情報記憶部153に格納する。
【0033】
自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にてデータの更新処理が行われた時刻のタイムスタンプである。
【0034】
キャッシュ統計情報記憶部153内には、図3に示すように、自IO端末1のキャッシュ統計情報と共に、他のIO端末2,3のキャッシュ統計情報が格納される。IO端末1〜3は、「IPアドレス」を識別子として判別される。
【0035】
アプリケーション部11は、ユーザが実行するアプリケーションプログラムを格納する。アプリケーションプログラムは図示しないCPU(Central Processing Unit)によって適宜演算実行される。詳細は後述する。
【0036】
尚、アプリケーションプログラムには多くの場合キャッシュデータファイル(SDD17)や共有ファイル部4aへのIO処理(ファイルのオープン処理およびクローズ処理)が含まれる。
【0037】
入出力ライブラリ部12は、アプリケーションプログラムに含まれるIO処理を実行するために必要な関数を格納するデータファイルである。
【0038】
次にカーネル領域の各部について説明する。
【0039】
IO仮想FS部16は、IO処理を実行するための仮想ファイルシステムである。IO仮想FS部16は、ローカルFS部161および共有FSクライアント制御部162と接続され、これらを透過的に利用する。
【0040】
ローカルFS部161にはSSD17が直接接続されている。これにより、高速かつ低レイテンシのストレージアクセスが可能となる。
【0041】
共有FSクライアント制御部162は、ネットワーク接続部18を介し、ネットワーク5上の、共有FSサーバ4とデータ通信する。
【0042】
ローカルFS部161は、キャッシュ(SSD17)内部におけるデータファイルのディレクトリを構築し、当該ディレクトリ構造を保持する。当該ディレクトリ構造の一例を図4に示す。
【0043】
図4に示すディレクトリ構造においては、ルートディレクトリをルートとし、その下位にディレクトリa、ディレクトリb、…、ディレクトリNと、N個のサブディレクトリを有する。各サブディレクトリは、各々、キャッシュデータファイルを備える。あるデータに対するディレクトリNは、アクセス集中を避けるため、ハッシュ関数f(x)(x=ローカルFSのファイルハンドル値)を用いて1〜Nのいずれかに決定される。
【0044】
キャッシュ(SSD17)内部のデータファイル構造を図5に示す。当該データファイル構造は、データ項目として、「ペア識別子」、「マスタバックアップフラグ」、「ブロック番号」、「キャッシュデータ」、「更新フラグ」および「更新時間」を備える。
【0045】
「ペア識別子」は、ペアリング先を識別可能な識別子(ペア識別子)であり、例えば、IP(Internet Protocol)アドレスである。「マスタ/バックアップフラグ」はペア識別子に紐付られたデータが、マスタ(自IO端末の保持する)データか、バックアップ(ペアリング先として保持する)データかを示すフラグである。「ブロック番号」は、キャッシュデータが格納されるブロック番号である。「キャッシュデータ」は、SSD17にキャッシュされたデータ本体である。
【0046】
「更新フラグ」は、データの状態を示すフラグである。更新フラグには「MODIFIED(更新状態:データが最新に更新されている)」、「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」、「INVALID(無効)」、「NO FILE(データが存在しない)」の4種類がある。「更新時間」は、更新された時刻のタイムスタンプである。
【0047】
共有FSクライアント制御部162は、共有FSサーバ4のファイルシステムにアクセスする権利を制御するための機構である。
【0048】
AP仮想FS部13は、アプリケーション使用時に使用する仮想ファイルシステムである。
【0049】
ユーザFS制御部14は、ユーザ空間で稼働するプログラムとしてファイルシステムを実装するための機構(フレームワーク)であり、具体的にはFUSE(Filesystem in USErspace)等である。
【0050】
次にハードウェア領域の各部について説明する。
【0051】
SSD17は、高速IO可能な半導体メモリである、IO端末1〜3側のキャッシュメモリとして使用する。
【0052】
ネットワーク接続部18は、自IO端末1を、他IO端末2,3および共有FSサーバ4と、ネットワーク5を介して通信接続するためのインターフェースである。
【0053】
(共有ファイルシステムの動作)
次に共有ファイルシステム100における各IO端末1〜3の動作について説明する。IO端末1〜3の主な動作としては、(1)IOリクエストの処理、(2)共有ファイルへの書き込み処理、(3)キャッシュ統計情報の送出および収集処理、(4)キャッシュのペアリング処理、(5)ペアリング先への書き込み処理、(6)キャッシュデータの無効化処理、(7)キャッシュのフラッシュ処理、(8)キャッシュのペアリング解除処理、(9)ファイルの読み込み処理、(10)ファイルのクローズ処理がある。以下、これらの処理について図面を参照し、詳細に説明する。
【0054】
(1.IOリクエストの処理)
IOリクエストの処理について、図6のフローチャートを参照して説明する。
【0055】
まず、ステップA1において、アプリケーション部11が備えるアプリケーションプログラムがCPU(不図示)によって実行されると、当該プログラムの記述に含まれるIOリクエスト処理が読み出される。この結果、CPUは、当該プログラムの実行必要なデータファイルのオープン処理を行う。CPUは、入出力ライブラリ部12内のopen関数を参照し、openシステムコールを呼び出す。
【0056】
ステップA2において、AP仮想FS部13は、オープン処理するデータファイルのパス名を用いて、ファイルシステムの選択を行う。このとき、キャッシュファイルシステム用のアクセスパスが指定されていた場合に、ユーザFS制御部14を介して、ユーザ空間に実装されているIOキャッシュ部15を呼び出す。
【0057】
ステップA3において、IOキャッシュ部15のIOキャッシュ制御部151は、キャッシュデータファイルを作成し、その際に、IO仮想FS部16に、ローカルFS部161を選択させる。
【0058】
ステップA4において、IO仮想FS部16は、SSD17内にキャッシュデータを保存するための、キャッシュデータファイルを作成する。このとき、IO仮想FS部16は、作成したファイルを一意に識別するためのファイルハンドル識別子を、IOキャッシュ部15を介して、AP仮想FS部13に返す。
【0059】
以上で、IOリクエスト処理を終了する。
【0060】
(2.共有ファイルへの書き込み処理)
共有ファイルへの書き込み処理について、図7のフローチャートを参照して説明する。
【0061】
ステップB1において、アプリケーション部11に格納されるアプリケーションプログラムの記述に従い、CPUは、入出力ライブラリ部12内のwrite関数を参照し、writeシステムコールを呼び出す。
【0062】
ステップB2において、AP仮想FS部13は、上記のオープン処理で取得したファイルハンドル識別子を基に、ファイルシステムを選択する。
【0063】
ステップB3において、AP仮想FS部13は、ファイルハンドル識別子が、キャッシュファイルシステム用のファイルハンドルを示していた場合に、ユーザFS制御部14を介して、ユーザ領域に実装されているIOキャッシュ部15を呼び出す。
【0064】
ステップB3において、IOキャッシュ部15のIOキャッシュ制御部151が備えるペアリング部154は、自IO端末1に、既にペアリングしている他のIO端末2,3が存在するか確認する。既にペアリングしている他のIO端末2,3が存在する場合、処理はステップB5に進められる。既にペアリングしている他のIO端末2,3が存在しない場合、処理はステップB4に進められる。
【0065】
ステップB4において、ペアリング部154は、自IO端末1と他のIO端末2,3との間で、ペアリング処理を行う。ペアリング処理の詳細は後述する。
【0066】
ステップB5において、IO仮想FS部16は、キャッシュデータファイルをローカルのSSD17へ書き込むため、IOキャッシュ部15にキャッシュデータファイル書き込みを依頼する。IOキャッシュ部15のIOキャッシュ制御部151は、IO仮想FS部16を介して、ローカルFS部161を経由し、SSD17に対しデータを書き込む。書き込まれるデータ形式は、図5に示すデータファイル構造の形式で実行される。尚、当該書き込みが、SSD17内に既存のキャッシュデータに対する更新であれば、当該キャッシュデータファイル(図5参照)のブロックの更新フラグを「MODIFIED(更新状態:データが最新に更新されている)」に変更する。
【0067】
ステップB6において、キャッシュデータファイルの書き込み処理と同時に、IOキャッシュ部15は、当該キャッシュデータファイルのペア識別子を参照し、当該ペア識別子に対応する他のIO端末2,3(ペアリング先)に対しても同じキャッシュデータを送信し、ペアリング先のSDD17にも書き込みを依頼する。このペアリング先での書き込み処理の詳細は後述する。
【0068】
ステップB7において、IOキャッシュ部15のIOキャッシュ制御部151は、自IO端末1のキャッシュ統計情報(図2参照)を更新する。
【0069】
ステップB8において、IOキャッシュ制御部151は、ペアリング先の書き込み処理完了を確認する(書き込みの同期を取る)。この書き込み処理の完了は、ペアリング先から書き込み処理完了通知を受信することで確定する。尚、更新処理が多いプログラムの場合は、所定時間の経過によって確定してもよい。
【0070】
以上により、共有ファイルへの書き込み処理を終了する。
【0071】
(3.キャッシュ統計情報の送出および収集処理)
キャッシュ統計情報の送出処理について図8のフローチャートを参照して説明する。
【0072】
ステップC1において、IOキャッシュ部15のIOキャッシュ制御部151は、自IO端末1のキャッシュ統計情報(図2参照)を作成し、ネットワーク接続部18を経由して、ネットワーク5へブロードキャスト送信する。
【0073】
ステップC2において、IOキャッシュ制御部151は、その後所定時間待機し、所定時間の経過を確認すると(ステップC3)、自IO端末1のキャッシュ統計情報を再度作成し、ネットワーク接続部18を経由して、ネットワーク5へブロードキャスト送信する。
【0074】
以上により、キャッシュ統計情報の送出処理を終了する。
【0075】
次に、キャッシュ統計情報の収集処理について図9のフローチャートを参照して説明する。
【0076】
ステップC4において、自IO端末1のIOキャッシュ部15は、他のIO端末2,3からのキャッシュ統計情報を受信まで待機状態をとる。キャッシュ統計情報を受信したら、処理はステップC5に進められる。キャッシュ統計情報を受信しない場合、ステップC4の待機状態が継続される。
【0077】
ステップC5において、IOキャッシュ部15は、他のIO端末2,3からのキャッシュ統計情報を取得する。
【0078】
ステップC6において、IOキャッシュ部15は、取得したキャッシュ統計情報で、キャッシュ統計情報記憶部153内のキャッシュ統計情報テーブル(図3参照)を更新する。尚、キャッシュ統計情報記憶部153内のキャッシュ統計情報は、ペアリング先の決定処理において利用される。
【0079】
以上により、キャッシュ統計情報の収集処理を終了する。
【0080】
(4.キャッシュのペアリング処理)
送信側(以下の説明においては自IO端末1)におけるキャッシュのペアリング処理について、図10のフローチャートを参照して説明する。
【0081】
ステップD1において、ペアリング処理の送信側である自IO端末1のIOキャッシュ部15は、キャッシュ統計情報記憶部153内のキャッシュ統計情報の検索およびペアリング先の選択を行う。具体的には、IOキャッシュ制御部151のペアリング部154は、データ流量制御部152に最適なペアリング先の選択を依頼する。依頼を受けたデータ流量制御部152は、キャッシュ統計情報記憶部153に格納される他のIO端末2,3のキャッシュ統計情報(図3)を参照し、キャッシュ空き容量が多く、かつ、共有ファイルシステムのデータ流量値が少ないIO端末(ここではIO端末2とする)を選ぶ。
【0082】
ステップD2において、ペアリング部154は、選択したIO端末2に対して、ペアリング処理リクエストを送信する。ステップD3において、選択したIO端末2からペアリング処理リクエストの結果を受信したペアリング部154は、当該結果がペアリング受け入れ許可か、又は、受け入れ不許可化を判断する(ステップD4)。当該結果がペアリング受け入れ許可であれば、処理はステップD5に進められる。当該結果がペアリング受け入れ不許可であれば、処理はステップD1に戻され、別のペアリング候補のIO端末が再選択される。
【0083】
ステップD5において、ペアリング部154は、ペアリングが成立したとして、ペアリング先のIO端末2の識別子(IPアドレス)を一時記憶する。図5に示すキャッシュデータファイルのペア識別子として格納してもよい。ペアリング成立後は、キャッシュデータ送受信時にデータ送信元を精査する必要がなくなる。
【0084】
以上により、送信側におけるキャッシュのペアリング処理を終了する。
【0085】
次に、受信側(以下の説明においては他IO端末2)におけるキャッシュのペアリング処理について、図11のフローチャートを参照して説明する。
【0086】
ステップD6において、ペアリング処理の受信側であるIO端末2は、ペアリング要求の受信待機状態において、ペアリング要求を受信したか否かを判断する。ペアリング要求を受信すると、処理はステップD7に進められる。ペアリング要求を受信しない場合、ステップD6において待機状態を続ける。
【0087】
ステップD7において、IOキャッシュ制御部151のペアリング部154は、キャッシュ統計情報記憶部153を参照し、自身(即ちIO端末2)のキャッシュ統計情報を基に、他にペアリングしているIO端末がないか、キャッシュ空き容量は十分にあるか等を調査する。
【0088】
ステップD8において、調査の結果を基に、ペアリング部154は、ペアリングの受け入れ許可ができるか否かを判断する。ペアリングの受け入れ許可ができる場合は、処理はステップD10に進められる。ペアリングの受け入れ許可ができない場合は、処理はステップD9に進められる。
【0089】
ステップD9において、ペアリング部154は、ペアリング要求元のIO端末1に対し、ペアリング受け入れ不許可通知を送信する。
【0090】
ステップD10において、ペアリング部154は、ペアリング要求元のIO端末1に対し、ペアリング受け入れ許可通知を送信する。
【0091】
ステップD11において、ペアリング部154は、ペアリング用のキャッシュファイルをオープン(open)にする。このオープン処理は、IOリクエスト処理(図6参照)におけるステップA3のキャッシュデータファイルの作成処理から実行される。更に、ペアリング部154はペアリング元であるIO端末1のIPアドレスと、キャッシュデータファイルをオープン(open)にした時刻(参照時刻)とを一時記憶する。図5に示すキャッシュデータファイルのペア識別子として格納してもよい。
【0092】
以上により、受信側におけるキャッシュのペアリング処理を終了する。
【0093】
(5.ペアリング先への書き込み処理)
次に、ペアリング先への書き込み処理について、図12のフローチャートを参照して説明する。
【0094】
ステップD21において、IO端末1のペアリング先であるIO端末2は、キャッシュデータの待機状態をとる。キャッシュデータを受信すると、処理はステップD22に進められる。キャッシュデータを受信しない間は、D21の待機状態が継続される。
【0095】
ステップD22において、IOキャッシュ制御部151は、当該キャッシュデータの送信元がペアリングを許可したIO端末1か否かを判断する。具体的には、IOキャッシュ制御部151は、送信元IPアドレスとペアリング部154において一時記憶されるIPアドレスとを比較し、これらが一致するか否かで判断する。送信元がペアリングを許可したIO端末であると判断された場合、処理はステップD24に進められる。送信元がペアリングを許可したIO端末ではないと判断された場合、処理はD23に進められる。
【0096】
ステップD23において、IOキャッシュ制御部151は、キャッシュデータの送信元に対し、ネットワーク接続部18を経由し、書き込み不可の通知を送信する。
【0097】
ステップD24において、IOキャッシュ制御部151は、受信側ペアリング処理(図11のステップD11参照)において、ペアリングを許可したIO端末1のためにオープン処理したファイルのペア識別子(図5参照)を用いて、ペアリング用のキャッシュデータファイルを検索し、検索されたキャッシュデータファイル(SSD17)にキャッシュデータの書き込みを行う。
【0098】
ステップD25において、IOキャッシュ制御部151は、キャッシュデータの書き込みが完了すると、キャッシュデータ送信元のIO端末1に対し、ネットワーク接続部18を経由し、書き込み完了通知を送信する。
【0099】
ステップD26において、IOキャッシュ制御部151は、更新したキャッシュブロックのメタデータを、ネットワーク接続部18を介して、ネットワーク5上にブロードキャスト送信する。
【0100】
以上により、ペアリング先への書き込み処理を終了する。
【0101】
尚、メタデータのブロードキャスト送信は、ネットワーク5上の全てのIO端末に自身(IO端末2)がペアリング先(IO端末1)のキャッシュデータを保持していることを周知するために行う。メタデータには、自IO端末2の識別子、ペアリング先IO端末1の識別子、キャッシュデータを保持している範囲(ブロック番号やブロック数等)が含まれる。
【0102】
また、メタデータを受信した他のIO端末(例えばIO端末3)は、自身のSSD17内に同じキャッシュデータファイルを保持しているかチェックし、保持している場合は、キャッシュデータファイル内の該当ブロックの更新フラグを「INVALID(無効)」に変更する。これは、無用なキャッシュデータファイルを他のIO端末3が保持することや、他のIO端末3が誤って上位のアプリケーション等にこのデータを送信することを防止するためである。
【0103】
(6.キャッシュデータの無効化処理)
キャッシュデータは、整合性を保つため、ペアリング後は、マスタ側のIO端末1およびバックアップ側のIO端末2のみで保持しておく必要がある。キャッシュデータを、マスタ側およびバックアップ側以外の他のIO端末(IO端末3とする)で保持している場合は、そのデータをネットワーク5上の上位のアプリケーション等に返却しないよう、無効化する必要がある。
【0104】
キャッシュデータの無効化処理について、図13のフローチャートを参照して説明する。
【0105】
ステップE1において、IO端末(IO端末2とする)のIOキャッシュ部15は、更新されたキャッシュブロックのメタデータを受信したか否かを判断する。メタデータを受信した場合、処理はステップE2に進められる。メタデータを受信しない間は、処理はステップE1に戻され待機状態が継続される。
【0106】
ステップE2において、受信したメタデータを基に、メタデータに記載されたキャッシュデータの範囲を自IO端末2に保持しているか、キャッシュ統計情報記憶部153内を調査する。調査の結果、メタデータに記載されたキャッシュデータの範囲を自IO端末2に保持している場合、処理はステップE3に進められる。自IO端末2では保持していない場合、この処理は一端終了し、再度ステップE1の待機状態に戻される。
【0107】
ステップE3において、キャッシュデータの送信元(IPアドレス)がペアリング先であるマスタ側IO端末(IO端末1とする)か否かを判断する。キャッシュデータの送信元がペアリング先であれば、書き込み処理中のキャッシュデータであり、問題は発生しないと判断できるからである。この場合、処理は一旦終了され、再度ステップE1の待機状態に戻される。キャッシュデータの送信元がペアリング先でなければ、処理はステップE4に進められる。
【0108】
ステップE4において、IOキャッシュ部15は、キャッシュ統計情報記憶部153に格納される、ペアリングされていないIO端末(例えばIO端末3)のキャッシュデータを無効化する。具体的には、IOキャッシュ部15は、キャッシュデータファイル(図5参照)の該当キャッシュデータの更新フラグを「INVALID(無効)」に変更する。この処理は、キャッシュデータファイル内の該当するブロック全てにおいて行われる。
【0109】
以上により、キャッシュデータの無効化処理を終了する。
【0110】
(7.キャッシュのフラッシュ処理)
次に、キャッシュのフラッシュ処理について、図14のフローチャートを参照して説明する。尚、キャッシュフラッシュ処理は、IO端末1上の独立したプロセスとして適宜(例えば、所定間隔毎)に作動する。
【0111】
ステップF1において、IOキャッシュ部15は、更新されたブロックの検索を行う。具体的に、IOキャッシュ部15は、キャッシュファイルデータ(図5参照)の更新フラグが「MODIFIED(更新状態:データが最新に更新されている)」となっているブロックを検索し、キャッシュフラッシュ対象ブロックとして選択する。
【0112】
ステップF2において、IOキャッシュ部15のデータ流量制御部152は、MRU(Maximum Receive unit)アルゴリズムを用いて、キャッシュフラッシュ対象ブロックのペア識別子(図5参照)と同一のIPアドレスを有するキャッシュ統計情報(図3参照)のレコードから、共有FSデータ流量を確認し、所定の閾値を超えるIOリクエストが出ているかを確認する(ステップF3)。所定の閾値を超えるIOリクエストが出ている場合、処理はステップFに進められる。所定の閾値を超えるIOリクエストが出ていない場合、処理はステップFに進められる。
【0113】
ステップF4において、データ流量制御部152は、キャッシュ空き容量が所定の閾値以下となったか否かを判断する。キャッシュ空き容量が所定の閾値以下である場合、処理はステップF6に進められる。キャッシュ空き容量が所定の閾値以下ではない場合、処理はF5に進められる。
【0114】
ステップF6において、IOキャッシュ部15のIOキャッシュ制御部151は、ネットワーク接続部18を経由して、共有FSサーバ4へキャッシュデータを渡す。共有FSサーバ4は、当該キャッシュデータを共有ファイル部4aに書き込む。この時、IOキャッシュ制御部151は、IO仮想FS部16を介して、SSD17内のキャッシュデータファイル(図5参照)の「更新時刻」に、書き込みされた時刻を設定し、「更新フラグ」を「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」に設定する。これは、キャッシュ(SSD17)と共有ファイルサーバ4とが、同じデータを保持していることを意味する。
【0115】
ステップF5において、閾値を超えるIOリクエストもなく、キャッシュ空き容量も未だ充分にある場合、または、共有FSサーバへのフラッシュ処理が終了した場合、所定時間の待機後、処理はステップF2のデータ残量確認処理に戻される。
【0116】
以上により、キャッシュのフラッシュ処理を終了する。
【0117】
(8.キャッシュのペアリング解除処理)
次に、キャッシュのペアリング解除を要求する送信側IO端末(以下の説明においてはIO端末2として説明する)における処理について、図15のフローチャートを参照して説明する。
【0118】
まずステップG1において、自IO端末2のIOキャッシュ部15は、待機状態を一定時間取る。この待機状態は、あるアプリケーションプログラムの動作中に、ボトルネックとなっていたIO処理の混雑が、ペアリング処理により緩和された、又は、アプリケーションプログラムが終了したと判断可能な時間であり、例えば数秒〜数時間等である。一定時間の待機状態が終了すると処理はステップG2に進められる。
【0119】
ステップG2において、IOキャッシュ部15は、現在オープン(open)しているキャッシュデータファイルの参照時刻をペアリング部154から取得する(図11におけるステップD11参照)。
【0120】
ステップG3において、IOキャッシュ部15のIOキャッシュ制御部151は、取得した参照時刻と、システムから取得した現在時刻とを比較して、予め設定された規定時間を経過したかを判断する。規定時間を経過した場合処理はステップG4に進められる。規定時間を経過しない場合処理はG1に戻される。
【0121】
ステップG4において、IOキャッシュ制御部151のペアリング部154は、ペアリング解除要求を、ペアリング先のIO端末1に送信する。
【0122】
ステップG5において、ペアリング部154は、ペアリング先のIO端末1からペアリング解除完了の通知を待つ。
【0123】
ステップG6において、ペアリング部154は、ペアリング解除完了の通知を受信後、このキャッシュデータファイルのclose処理を行う。
【0124】
以上により、キャッシュのペアリング解除要求の送信側IO端末2における処理を終了する。
【0125】
次に、キャッシュのペアリング解除の受信側IO端末(以下、IO端末1として説明する)における処理について、図16のフローチャートを参照して説明する。
【0126】
ステップG7において、ペアリング解除処理の受信側IO端末1は、ペアリング解除要求の受信待ち状態となる。この状態において、ペアリング解除要求を受信すると処理はステップG8に進められる。ペアリング解除要求を受信するまではステップG7の受信待ち状態を継続させる。
【0127】
ステップG8において、ペアリング解除要求を受信すると、ペアリング解除処理の受信側IO端末1は、現在オープンしているキャッシュデータファイルのクローズ(close)処理を行う。
【0128】
ステップG9において、クローズ処理が完了すると、ペアリング部154は、ペアリング解除完了の通知を、解除要求の送信側IO端末2に返信する。
【0129】
以上により、キャッシュのペアリング解除の受信側IO端末1における処理を終了する。
【0130】
(9.ファイルの読み込み処理)
次に、ファイルの読み込み処理について、図17のフローチャートを参照して説明する。
【0131】
ステップH1において、アプリケーション部11(図1参照)内のアプリケーションプログラムの記載に基づき、CPUは、入出力ライブラリ部12により提供されるread関数内でreadシステムコールを呼び出す。
【0132】
ステップH2において、AP仮想FS部13は、オープン処理で取得したファイルハンドル識別子(図6のステップA4参照)を基に、ファイルシステムの選択を行う。このとき、ファイルハンドル識別子が、キャッシュFS用のファイルハンドルを示していた場合に、AP仮想FS部13は、ユーザFS制御部14を経由して、ユーザ領域上に実装されているIOキャッシュ部15を呼び出す。
【0133】
ステップH3において、IOキャッシュ部15のIOキャッシュ制御部151は、ローカルFS部161上にあるキャッシュファイルを検索して、キャッシュファイル内の各ブロックの更新フラグをチェックする。このときに、更新フラグが「MODIFIED(更新状態:データが最新に更新されている)」または「SHARED(共有:共有FSサーバ17内の共有ファイル部4aのデータと同期している)」となっていれば、そのままキャッシュデータを上位のアプリケーション等に返却する(ステップH7)。もし更新フラグが「NO FILE(キャッシュファイルが存在しない)」、または、「INVALID(無効)」となっている場合は、処理はステップH4に進められる。
【0134】
ステップH4において、IOキャッシュ部15は、有効なデータを得るために、他の全てのIO端末2,3に対し強制フラッシュ要求を出す。まず、IOキャッシュ部15は、更新フラグが「NO FILE」または「INVALID(無効)」となっているブロックのメタデータを、ネットワーク接続部18を経由して、ブロードキャスト送信する。このメタデータには、キャッシュファイル名、ブロック番号、ブロック数等が含まれる。他の全てのIO端末2,3は、このフラッシュ要求を受信すると、自IO端末2,3において強制フラッシュ処理を行う。この処理の詳細は後述する。
【0135】
ステップH5において、強制フラッシュ処理が終了し、所望のデータが共有FSサーバ4に更新されると、IOキャッシュ部15は、強制フラッシュされた所望のデータを、ネットワーク接続部18を介して、共有FSサーバ4から読み込み、取得する。
【0136】
ステップH6において、IO仮想FS部16は、取得したデータをキャッシュデータとしてSSD17に書き込む。
【0137】
次にステップH4の強制フラッシュ処理について、図18のフローチャートを参照して説明する。
【0138】
ステップH8において、IO端末2,3のIOキャッシュ部15は、フラッシュ要求を受信する。このフラッシュ要求はメタデータ、又はメタデータを含むデータである。
【0139】
ステップH9において、IOキャッシュ部15のIOキャッシュ制御部151は、メタデータに含まれるキャッシュファイル名、ブロックおよびその範囲に該当するデータが、自身のキャッシュ(SSD17)に存在するか確認する。存在する場合は、処理はステップH10へ進められる。存在しない場合は、処理はステップH8へ戻される。
【0140】
ステップH10において、IOキャッシュ制御部151は、ネットワーク接続部18を経由し、フラッシュ要求されているキャッシュデータを共有FSサーバ4に送信する。共有FSサーバ4は、フラッシュ要求されているキャッシュデータを共有ファイル部4aに書き込む。この際、キャッシュデータファイル内の更新時刻が設定される。
【0141】
ステップH11において、IOキャッシュ制御部151は、キャッシュファイルデータ(図5)内の該当するブロックの更新フラグに「SHARED」を設定する。
【0142】
以上により、強制フラッシュ処理を完了する。
【0143】
(10.ファイルのクローズ処理)
次に、アプリケーション部11(図1参照)による、IOリクエストを終了するためのファイルのクローズ処理について、図19のフローチャートを参照して説明する。
【0144】
ステップI1において、アプリケーション部11に格納されるアプリケーションプログラムに従い、CPU(不図示)は、入出力ライブラリ部12により提供されるclose関数内でcloseシステムコールを呼び出す。
【0145】
ステップI2において、AP仮想FS部13は、クローズ処理するファイルのファイルハンドル値を受け取り、ファイルシステムの選択を行う。
【0146】
ステップI3において、キャッシュFS用のファイルハンドルを受け取った場合、AP仮想FS部13は、ユーザFS制御部14を経由して、ユーザ領域上に実装されているIOキャッシュ部15を呼び出す。IOキャッシュ部15は、キャッシュデータファイルをクローズする。
【0147】
ステップI4において、IO仮想FS部16は、ローカルFS部161を選択し、ローカルFS部161は、SSD17上に作成されたキャッシュデータファイルを削除する。
【0148】
以上により、IOリクエストを終了するためのファイルのクローズ処理を終了する。
【0149】
(効果)
本発明の第1の実施形態によると、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高い、共有ファイルシステムを使用するためのIO端末1〜3等を提供することができる。
【0150】
これは、自身のキャッシュデータのコピーを一時格納させるためのペアリング先のIO端末を、当該IO端末のキャッシュ使用量や共有FSサーバ4へのアクセス量を考慮した上で、ファイル単位ブロック毎に選択するからである。これにより、書き込み時の信頼性を高くすることができる。更に、共有ファイルシステムの本来のIOリクエストは阻害せずにすむ。
【0151】
<第2の実施形態>
本発明の第2の実施形態に係る共有ファイルシステムを使用する為のIO端末(情報処理端末)10を図20に示す。IO端末10は、キャッシュメモリ領域のファイル単位毎にキャッシュデータをペアリングする端末を検出し、当該キャッシュデータを、ペアリングする端末のキャッシュメモリ領域に書き込むよう指示する。
【0152】
本発明の第2の実施形態によると、共有ストレージシステムにおいて、適切なペアリング処理を自動で行い、キャッシュ書き込み時の信頼性が高いIO端末10を提供することができる。
【0153】
これは、自身のキャッシュデータのコピーを一時格納させるためのペアリング先のIO端末を、当該IO端末のキャッシュ使用量や共有ファイルシステムサーバへのアクセス量を考慮した上で、ファイル単位ブロック毎に選択するからである。
【0154】
<変更例>
上記の実施形態においてはユーザファイルシステム制御部14として、FUSEを用い、ユーザ領域による実装によるファイルシステムを構成しているが、カーネルモジュールを用いた実装や、カーネル内における実装によっても、同機能は実現可能である。
【0155】
キャッシュの整合性を保つために、キャッシュ制御については、MSI(Modified/Shared/Invalid)プロトコルを使用することが簡素化のために望ましいが、その他のキャッシュ制御アルゴリズムを適応してもよい。
【0156】
上記の実施形態においては、キャッシュのコピーを持たせるIO端末を1つのみ選択しているが、冗長性を高めるため、2以上のIO端末を選択してもよい。
【0157】
(ハードウェア構成)
本発明の各実施形態において、IO端末1〜3における各構成要素は、機能単位のブロックを示している。IO端末1〜3における各構成要素の一部又は全部は、例えば図1、20に示すような情報処理装置とプログラムとの任意の組み合わせにより実現される。これを実現する情報処理装置500の一例を図21に示す。情報処理装置500は、一例として、以下のような構成を含む。
【0158】
・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に供給してもよい。
【0159】
IO端末の実現方法には、様々な変形例がある。例えば、IO端末は、構成要素毎にそれぞれ別個の情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。また、IO端末が備える複数の構成要素が、一つの情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。
【0160】
また、IO端末の各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【0161】
IO端末の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0162】
IO端末の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0163】
上述した各実施形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施形態のみに限定されるものではなく、趣旨を逸脱しない範囲で、種々の変更が可能であることは勿論である。
【符号の説明】
【0164】
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
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21