JP2020170458A - Information processor, control program, and control method - Google Patents
Information processor, control program, and control method Download PDFInfo
- Publication number
- JP2020170458A JP2020170458A JP2019072926A JP2019072926A JP2020170458A JP 2020170458 A JP2020170458 A JP 2020170458A JP 2019072926 A JP2019072926 A JP 2019072926A JP 2019072926 A JP2019072926 A JP 2019072926A JP 2020170458 A JP2020170458 A JP 2020170458A
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- time
- synchronous
- processing
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、情報処理装置、制御プログラム、及び制御方法に関する。 The present invention relates to an information processing device, a control program, and a control method.
高性能計算(HPC;high-performance computing)向けの分散並列ストレージシステムでは、クライアントコンピュータ(ノード)のデータを保存するためのストレージを階層化させることでデータへのアクセス性能を向上させる手法の開発が広く行なわれている。 In a distributed parallel storage system for high-performance computing (HPC), the development of a method to improve the access performance to data by layering the storage for storing the data of the client computer (node) has been developed. It is widely practiced.
この階層化の手法として、クライアントコンピュータと最終的なデータの保存先であるHDD(Hard Disk Drive)等の第2階層ストレージとの間に、SSD(Solid State Drive)等の高速な第1階層ストレージを備える場合がある。 As a method of this tiering, high-speed first tier storage such as SSD (Solid State Drive) is used between the client computer and the second tier storage such as HDD (Hard Disk Drive) which is the final storage destination of data. May be provided.
ジョブが階層化ストレージシステムに書き込みを行なうと、まず第1階層ストレージに書き込みを行なう。第1階層ストレージに書き込まれた情報はジョブの実行終了までに第2階層ストレージに反映される。 When a job writes to a tiered storage system, it first writes to the first tier storage. The information written in the first tier storage is reflected in the second tier storage by the end of job execution.
しかしながら、ジョブから第1階層ストレージへのアクセス中に第1階層ストレージから第2階層ストレージへの書き出し(非同期書き出し)を行なうと、第1階層ストレージの書き込み速度が低下し、ジョブの処理速度が低下する。 However, if writing from the first tier storage to the second tier storage (asynchronous writing) is performed while the job is accessing the first tier storage, the writing speed of the first tier storage slows down and the job processing speed slows down. To do.
1つの側面では、第1の記憶装置に書き込んだデータの第2の記憶装置への書き出し処理を最適化することを目的とする。 One aspect is aimed at optimizing the writing process of the data written in the first storage device to the second storage device.
第1の記憶装置と第2の記憶装置とに対して、アクセスコマンドを処理する情報処理装置において、前回のアクセスコマンド処理の終了時刻と現在時刻との差分時間を間欠時間として算出し、所定時間以内の前記間欠時間の複数回分の平均を平均間欠時間として算出する算出部と、前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれなかった場合、前記第1の記憶装置から前記第2の記憶装置に対する書き出し処理を実行する非同期書き出し処理部と、を備える。 In the information processing device that processes access commands to the first storage device and the second storage device, the difference time between the end time of the previous access command processing and the current time is calculated as an intermittent time, and a predetermined time is calculated. When the calculation unit that calculates the average of a plurality of times of the intermittent time within the range as the average intermittent time and the information processing device are not accessed beyond the average intermittent time after the access command processing is completed. , An asynchronous write-out processing unit that executes write-out processing from the first storage device to the second storage device.
一実施形態によれば、第1の記憶装置に書き込んだデータの第2の記憶装置への書き出し処理を最適化することができる。 According to one embodiment, it is possible to optimize the writing process of the data written in the first storage device to the second storage device.
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図等はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the embodiments described below are merely examples, and there is no intention of excluding various modifications and applications of techniques not specified below. For example, the present embodiment can be variously modified and implemented without departing from the spirit of the present embodiment. In the drawings used in the following embodiments, the parts having the same reference numerals represent the same or similar parts unless otherwise specified.
〔1〕一実施形態
〔1−1〕一実施形態に係るストレージシステムのハードウェア構成例
図1は、実施形態の一例としてのストレージシステム1のハードウェア構成を例示する図である。
[1] Embodiment [1-1] Hardware configuration example of the storage system according to the embodiment FIG. 1 is a diagram illustrating a hardware configuration of the
この図1に例示するように、ストレージシステム1は、1つ以上の第1階層ストレージサーバ10(第1階層ストレージサーバ10−0,・・・,第1階層ストレージサーバ10−n;nは0以上の整数)を備える。
As illustrated in FIG. 1, the
これらの第1階層ストレージサーバ10−0,・・・,第1階層ストレージサーバ10−nは、それぞれ、第1階層ストレージサーバ#0,・・・,第1階層ストレージサーバ#nとも表される。以下、1つ以上の第1階層ストレージサーバ10−0〜10−nを特に区別しない場合には、第1階層ストレージサーバ10と表記する。なお、“#”に続く数字(0,・・・,n)は、識別子(ID)ともいい、第1階層ストレージサーバ10の特定に用いる。
These first-tier storage servers 10-0, ..., And first-tier storage servers 10-n are also represented as first-tier
この第1階層ストレージサーバ10はストレージ制御装置であり、後述する各SSD30に対するデータの入出力(読み出しや書き込み)を制御する。また、第1階層ストレージサーバ10は後述するクライアントコンピュータ50に対して後述するSSD30の記憶領域を提供する。
The first-
また、各第1階層ストレージサーバ10は、高速記憶装置として、1つ以上のSSD30(SSD30−0,・・・,SSD30−n;nは0以上の整数)を備える。これらのSSD30−0,・・・,SSD30−nは、それぞれ、SSD#0,・・・,SSD#nとも表される。以下、1つ以上のSSD30−0〜30−nを特に区別しない場合には、SSD30と表記する。なお、“#”に続く数字(0,・・・,n)は、識別子ともいい、SSD30の特定に用いる。
Further, each first-
このSSD30は、不揮発性の半導体メモリを記憶素子として備える記憶装置である。なお、図1では、第1階層ストレージサーバ10にはSSD30が備えられる例を示したが、第1階層ストレージサーバ10に備えられる記憶装置はSSD30に限定されない。また、第1階層ストレージサーバ10に備えられる記憶装置は、後述するHDD40に比べて、読み書き速度が速いが書き込み容量が小さい特性を備える他の記憶装置であってもよい。
The SSD 30 is a storage device including a non-volatile semiconductor memory as a storage element. Although FIG. 1 shows an example in which the first-
また、この図1に示すように、ストレージシステム1は、1つ以上の第2階層ストレージサーバ20(第2階層ストレージサーバ20−0,・・・,第2階層ストレージサーバ20−n;nは0以上の整数)を備える。
Further, as shown in FIG. 1, the
これらの第2階層ストレージサーバ20−0,・・・,第2階層ストレージサーバ20−nは、それぞれ、第2階層ストレージサーバ#0,・・・,第2階層ストレージサーバ#nとも表される。以下、1つ以上の第2階層ストレージサーバ20−0〜20−nを特に区別しない場合には、第2階層ストレージサーバ20と表記する。なお、“#”に続く数字(0,・・・,n)は、識別子ともいい、第2階層ストレージサーバ20の特定に用いる。
These second-tier storage servers 20-0, ..., And second-tier storage servers 20-n are also represented as second-tier
この第2階層ストレージサーバ20はストレージ制御装置であり、後述する各HDD40に対するデータの入出力を制御する。また、第2階層ストレージサーバ20は、後述するクライアントコンピュータ50の最終的なデータの保存先として、後述するHDD40の記憶領域を提供する。
The second-
また、各第2階層ストレージサーバ20は、低速記憶装置として、1つ以上のHDD40(HDD40−0,・・・,HDD40−n;nは0以上の整数)を備える。これらのHDD40−0,・・・,HDD40−nは、それぞれ、HDD#0,・・・,HDD#nとも表される。以下、1つ以上のHDD40−0〜40−nを特に区別しない場合には、HDD40と表記する。なお、“#”に続く数字(0,・・・,n)は、識別子ともいい、HDD40の特定に用いる。
Further, each second-
このHDD40は、磁気ディスク装置である。なお、図1では、第2階層ストレージサーバ20にはHDD40が備えられる例を示したが、第2階層ストレージサーバ20に備えられる記憶装置はHDD40に限定されない。また、第2階層ストレージサーバ20に備えられる記憶装置は、SSD30に比べて、読み書き速度が遅いが書き込み容量が大きい特性を備える他の記憶装置であってもよい。
The
また、この図1に示すように、ストレージシステム1は、1つ以上のクライアントコンピュータ50(クライアントコンピュータ50−0,・・・,クライアントコンピュータ50−m;mは0以上の整数)を備える。
Further, as shown in FIG. 1, the
これらのクライアントコンピュータ50−0,・・・,クライアントコンピュータ50−mは、それぞれ、クライアントコンピュータ#0,・・・,クライアントコンピュータ#mとも表される。以下、1つ以上のクライアントコンピュータ50−0〜50−mを特に区別しない場合には、クライアントコンピュータ50と表記する。なお、“#”に続く数字(0,・・・,m)は、識別子ともいい、クライアントコンピュータ50の特定に用いる。
These client computers 50-0, ..., And client computer 50-m are also represented as
クライアントコンピュータ50は、サーバ機能を有するコンピュータであってもよく、第1階層ストレージサーバ10に対してデータアクセスを要求する。このデータアクセス要求(アクセスコマンド)は、I/O要求やファイルアクセス要求ともいい、書き込み(ライト;write)要求や読み出し(リード,読み込み;read)要求を含んでもよい。なお、本システムでは、クライアントコンピュータ50は、複数の第1階層ストレージサーバ#0〜#nのうちいずれの第1階層ストレージサーバ10にアクセスしてもよいものとするが、これに限られない。
The
なお、本システムにおいて、第1階層ストレージサーバ10が備えるSSD30へのライトを書き込みという。また、第1階層ストレージサーバ10のSSD30へライトしたデータを、第2階層ストレージサーバ20が備えるHDD40にライトすることを書き出し、または、ライトバックといってもよい。
In this system, writing to the
なお、この図1では、各第1階層ストレージサーバ10が、高速記憶装置として1つのSSD30を備える例を示したが、これに限定されない。各第1階層ストレージサーバ10は2つ以上のSSD30を備えてもよく、第1階層ストレージサーバ10毎に備えられるSSD30の数が異なってもよい。
Note that FIG. 1 shows an example in which each first-
なお、図1では、各第2階層ストレージサーバ20が、低速記憶装置として、1つのHDD40を備える例を示したが、これに限定されない。各第2階層ストレージサーバ20は2つ以上のHDD40を備えてもよく、第2階層ストレージサーバ20毎に備えられるHDD40の数が異なってもよい。また、本ストレージシステム1に備えられる第1階層ストレージサーバ10と第2階層ストレージサーバ20との数は同一でなくてもよい。
Note that FIG. 1 shows an example in which each second-
また、第1階層ストレージサーバ10、第2階層ストレージサーバ20、及び、クライアントコンピュータ50は図示しないネットワークを介して、例えば、システム管理者が用いる図示しない管理端末と接続されてもよい。
Further, the first-
〔1−2〕一実施形態に係るストレージシステムにおける各装置のハードウェア構成例
上述したストレージシステム1における各装置(第1階層ストレージサーバ10,第2階層ストレージサーバ20,クライアントコンピュータ50)のハードウェア構成について説明する。
[1-2] Hardware configuration example of each device in the storage system according to one embodiment Hardware of each device (first
図2は、実施形態の一例としてのストレージシステム1における第1階層ストレージサーバ10のハードウェア構成を例示する図である。
FIG. 2 is a diagram illustrating a hardware configuration of the first-
この図2を用いて、図1に示す第1階層ストレージサーバ10のハードウェア構成について説明する。本システムでは、図1に例示する複数の第1階層ストレージサーバ10のそれぞれが、図2に例示するハードウェア構成を備えるものとする。
The hardware configuration of the first-
第1階層ストレージサーバ10は、例示的に、CPU(Central Processing Unit)11、記憶部12、メモリ13、IF(Interface)部14、及び、入力部15を備えてよい。
The first-
CPU11は、後述する記憶部12に格納されるOS(Operating System)や第1制御プログラム90(後述)を実行し、例えば、クライアントコンピュータ50からの指示に応じ、例えば、SSD30を制御する演算処理装置(プロセッサ)である。
The
記憶部12は、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部12は、第1階層ストレージサーバ10の二次記憶装置として使用されてよい。また、この記憶部12は、OSやファームウェア、アプリケーション等のプログラム、及び、各種データが格納されてよい。記憶部12としては、例えば、HDDの他、SSDやSCM(Storage Class Memory)等の他の記憶装置であってもよい。記憶部12は、第1階層ストレージサーバ10の各種機能の全部若しくは一部を実現するプログラム(第1制御プログラム90)を格納してもよい。
The
メモリ13は、種々のデータやプログラム等を格納するハードウェアの一例である。メモリ13としては、RAM(Random Access Memory)等の揮発性メモリや、フラッシュメモリ、SCM、及び、ROM(Read Only Memory)等の不揮発性メモリが挙げられる。また、メモリ13は、第1制御プログラム90を格納してもよく、メモリ13のRAMは一次記憶メモリあるいはワーキングメモリとして利用してもよい。
The
IF部14は、第2階層ストレージサーバ20、クライアントコンピュータ50、及び、図示しない管理装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。また、IF部14は、他の第1階層ストレージサーバ10との間の接続及び通信の制御等を行なう通信インタフェースとして機能してもよい。
The
このIF部14は、例えば、図示しない管理装置を接続するためのアダプタ(ポート)を備えてもよい。IF部14は、例えば、PCIe(Peripheral Component Interconnect Express)インタフェースや光通信インタフェースを備えてもよい。なお、第1制御プログラム90は、図示しないネットワークから当該IF部14を介してダウンロードされてもよい。
The
入力部15は、例えば、マウス、キーボード、タッチパネル、及び、操作ボタン等の入力装置のうちの少なくともいずれか一つを含んでよい。
The
上述した第1階層ストレージサーバ10のハードウェア構成は例示である。したがって、第1階層ストレージサーバ10内でのハードウェアの増減(例えば、任意のブロックの追加や省略)、分割、及び、任意の組み合わせでの統合等は適宜行なわれてもよい。また、第1階層ストレージサーバ10は、ディスプレイや、プロジェクタ、スピーカ、及び、プリンタ等の出力装置を備える表示部を備えてもよい。
The hardware configuration of the first-
次に、図3を用いて、図1に示す第2階層ストレージサーバ20のハードウェア構成を説明する。
Next, the hardware configuration of the second-
図3は、実施形態の一例としてのストレージシステム1における第2階層ストレージサーバ20のハードウェア構成を例示する図である。
FIG. 3 is a diagram illustrating a hardware configuration of the second-
第2階層ストレージサーバ20は、例えば、サーバ機能を備えるコンピュータ(情報処理装置)であり、例示的に、CPU21、記憶部22、メモリ23、IF部24、及び、入力部25を備えてよい。なお、記憶部22、メモリ23、及び、入力部25は、それぞれ、図2を用いて説明した第1階層ストレージサーバ10の記憶部12、メモリ13、及び、入力部15と概ね同様であるので説明を省略する。
The second-
CPU21は、記憶部22に格納されるOSや第2制御プログラム91を実行し、例えば、第1階層ストレージサーバ10からの要求に応じ、HDD40へのアクセスを実行すべくHDD40を制御する。本システムでは、CPU21は、記憶部22に格納される第2制御プログラム91を実行する。
The
IF部24は、第1階層ストレージサーバ10、及び、図示しない管理装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。また、IF部24は、他の第2階層ストレージサーバ20との間の接続及び通信の制御等を行なう通信インタフェースとして機能してもよい。
The
このIF部24は、例えば、図示しない管理装置を接続するためのアダプタ(ポート)を備えてもよい。IF部24は、例えば、PCIeインタフェースや光通信インタフェースを備えてもよい。なお、記憶部22に格納される第2制御プログラム91は、図示しないネットワークから当該IF部24を介してダウンロードされてもよい。
The
次に、図4を用いて、図1に示すクライアントコンピュータ50のハードウェア構成を説明する。
Next, the hardware configuration of the
図4は、実施形態の一例としてのストレージシステム1におけるクライアントコンピュータ50のハードウェア構成を例示する図である。
FIG. 4 is a diagram illustrating a hardware configuration of the
クライアントコンピュータ50は、例えば、サーバ機能を備えるコンピュータ(情報処理装置)であり、例示的に、CPU51、記憶部52、メモリ53、IF部54、及び、入力部55を備えてよい。なお、記憶部52、メモリ53、及び、入力部55は、それぞれ、図2を用いて説明した第1階層ストレージサーバ10の記憶部12、メモリ13、及び、入力部15と概ね同様であるので説明を省略する。
The
CPU51は、記憶部52に格納されるOSやクライアントプログラム92を実行し、第1階層ストレージサーバ10に対する要求の送信や、データの授受を行なう。本システムでは、CPU51は、記憶部52に格納されるクライアントプログラム92を実行する。
The
IF部54は、第1階層ストレージサーバ10との間の接続及び通信の制御等を行なう通信インタフェースの一例である。また、IF部54は、他のクライアントコンピュータ50との間の接続及び通信の制御等を行なう通信インタフェースとして機能してもよい。
The
このIF部54は、例えば、図示しない管理装置を接続するためのアダプタ(ポート)を備えてもよい。IF部54は、例えば、PCIeインタフェースや光通信インタフェースを備えてもよい。なお、記憶部52に格納されるクライアントプログラム92は、図示しないネットワークから当該IF部54を介してダウンロードされてもよい。
The
〔1−3〕一実施形態に係るストレージシステムにおける各装置の機能構成例
上述したストレージシステム1における各装置(クライアントコンピュータ50,第1階層ストレージサーバ10,第2階層ストレージサーバ20)の機能構成について説明する。
[1-3] Functional configuration example of each device in the storage system according to the first embodiment Functional configuration of each device (
図5は、実施形態の一例としてのストレージシステム1におけるクライアントコンピュータ50の機能構成を例示する図である。
FIG. 5 is a diagram illustrating a functional configuration of the
この図5を用いて、図1に示すクライアントコンピュータ50の機能構成を説明する。本システムでは、図1に例示する複数のクライアントコンピュータ50のそれぞれが、図5に示す機能構成を備えるものとする。
The functional configuration of the
図5に例示するように、クライアントコンピュータ50は、例示的に、要求発行部56、及び、通信制御部57を備えてもよい。
As illustrated in FIG. 5, the
要求発行部56は、第1階層ストレージサーバ10が備えるSSD30に格納されるデータにアクセスするために、当該第1階層ストレージサーバ10に対して、データアクセスの要求を発行する。本システムにおいて、このデータアクセス要求は、公知の書き込み(write)のシステムコールや、公知の読み出し(read)のシステムコールを用いて実行される。なお、この要求発行部56は、OS空間で実行されるクライアントプログラム92として実現されてよい。
The
通信制御部57は、第1階層ストレージサーバ10と通信を行ない、上述の要求発行部56によって要求されたデータアクセス要求を第1階層ストレージサーバ10に対して送信する。この通信制御部57は、例えば、ネットワークアダプタ等のドライバとして実現されてよい。
The
この通信制御部57は、要求発行部56による複数のシステムコールを、書き込みと読み出しとでそれぞれ1つに纏めてもよい。また、通信制御部57は、システムコールによって指定されたデータの長さが所定のパケット長を超える場合には、データアクセス要求を所定のパケット長に分割してから、第1階層ストレージサーバ10に送信してもよい。
The
次に、図7を参照しながら、図6を用いて、図1に示す第1階層ストレージサーバ10の機能構成を説明する。
Next, with reference to FIG. 7, the functional configuration of the first-
図6は、実施形態の一例としてのストレージシステム1における第1階層ストレージサーバ10の機能構成を例示する図である。本システムでは、図1に例示する複数の第1階層ストレージサーバ10のそれぞれが、図6に示す機能構成を備えるものとする。
FIG. 6 is a diagram illustrating a functional configuration of the first-
図7は、本ストレージシステム1における各装置間の通信の概要を例示する図である。
FIG. 7 is a diagram illustrating an outline of communication between each device in the
図6に例示するように、第1階層ストレージサーバ10は、例示的に、通信制御部16、同期I/O処理部17、デバイス制御部18、及び、非同期書き出し処理部19を備えてもよい。
As illustrated in FIG. 6, the first-
通信制御部16は、クライアントコンピュータ50との通信を行ない、クライアントコンピュータ50からのデータアクセス要求を受信する(図7の矢印P1参照)。
The
通信制御部16は、クライアントコンピュータ50から受信したデータアクセス要求を後述の同期I/O処理部17に対して送信する(図7の矢印P1参照)。そして、通信制御部16は、後述の同期I/O処理部17から読み出し要求を受信すると、当該読み出し要求を第2階層ストレージサーバ20に送信する(図7の矢印P2参照)。さらに、通信制御部16は、アクセス対象(読み出し対象)のデータを第2階層ストレージサーバ20から受信し(図7の矢印P2参照)、クライアントコンピュータ50に送信する(図7の矢印P1参照)。
The
また、通信制御部16は後述の非同期書き出し処理部19から非同期書き出し指示を受信すると、第2階層ストレージサーバ20と通信し、書き出し対象データを第2階層ストレージサーバ20に送信する(図7の矢印P3参照)。
When the
また、通信制御部16は、読み出しや書き込み等のI/O要求に対する処理を完了した通知(I/O要求完了通知)をクライアントコンピュータ50に対して送信してもよい。
Further, the
同期I/O処理部17は、クライアントコンピュータ50からのデータアクセス要求を受信した後、遅滞することなく当該要求の処理を実行する。
After receiving the data access request from the
本システムにおいて、このように、クライアントコンピュータ50からのデータアクセス要求を受信した後、遅滞することなく当該要求を処理すること、すなわち、データアクセス要求に同期して当該要求を処理することを同期I/O処理という。この同期I/O処理は、同期I/O処理部17によって実行される。
In this system, after receiving the data access request from the
例えば、第1階層ストレージサーバ10において、同期I/O処理部17がクライアントコンピュータ50からのデータ書き込み要求を受信すると、遅滞することなくSSD30に対してデータを書き込む(図7の矢印P1参照)。
For example, in the first-
一方、第1階層ストレージサーバ10のSSD30から、第2階層ストレージサーバ20のHDD40へのデータの書き出しは、クライアントコンピュータ50からの要求とは非同期に行なわれる。したがって、本システムにおいて、このHDD40へのデータの書き出しを非同期書き出し処理、または、非同期I/O処理という。この非同期書き出し処理は、同期I/O処理部17が後述する非同期書き出し処理部19を起動することを契機として開始され、非同期書き出し処理部19によって実行される。
On the other hand, the writing of data from the
同期I/O処理部17は、クライアントコンピュータ50からのデータアクセス要求が読み出し要求である場合、読み出し対象データが第1階層ストレージサーバ10のSSD30に格納されているか否かを判断する。なお、読み出し対象データが第1階層ストレージサーバ10のSSD30に格納されているか否かの判断は公知の手法を用いて実現できるので、ここではその具体的な説明を省略する。
When the data access request from the
読み出し対象データが第1階層ストレージサーバ10のSSD30に格納されている場合、同期I/O処理部17はクライアントコンピュータ50からの読み出し要求を処理すべく、後述するデバイス制御部18を介しSSD30から読み出し対象データを取得する。そして、同期I/O処理部17は、取得した読み出し対象データを、通信制御部16を介してクライアントコンピュータ50に送信する(図7の矢印P1参照)。
When the data to be read is stored in the
一方、読み出し対象データが第1階層ストレージサーバ10のSSD30に格納されていない場合、同期I/O処理部17は、通信制御部16を介して、当該読み出し要求を第2階層ストレージサーバ20に送信する(図7の矢印P2参照)。
On the other hand, when the read target data is not stored in the
なお、同期I/O処理部17は、SSD30や第2階層ストレージサーバ20からの対象データの読み出しが完了すると、通信制御部16を介して、読み出し完了通知(I/O要求完了通知)をクライアントコンピュータ50に対して送信してもよい。
When the synchronous I /
クライアントコンピュータ50からのデータアクセス要求が書き込み要求である場合、同期I/O処理部17は、書き込み対象データを第1階層ストレージサーバ10のSSD30へ格納する指示と共に、書き込み対象データをデバイス制御部18に対して送信する。そして、同期I/O処理部17は、SSD30への書き込み処理が完了すると、書き込み完了通知(I/O要求完了通知)を通信制御部16を介してクライアントコンピュータ50に対して送信してもよい。
When the data access request from the
また、本システムでは、同期I/O処理部17によってSSD30へのデータアクセス(同期I/O処理)が実行されているか否か(実行中か否か)を示す同期I/O中フラグを設ける。同期I/O処理部17が同期I/O処理(データアクセス)を実行中である場合には、同期I/O処理部17は、同期I/O中フラグに、例えば“1”を設定する。一方、同期I/O処理部17が同期I/O処理(データアクセス)を実行中でない場合には、同期I/O処理部17は、同期I/O中フラグに、例えば“0”を設定する。
Further, in this system, a synchronous I / O in-progress flag indicating whether or not data access (synchronous I / O processing) to the
なお、この同期I/O中フラグに設定する値は“0”や“1”に限らず、同期I/O処理部17による同期I/O処理(データアクセス)が実行中か否かを判断できるものであればよい。また、本システムの起動時には、同期I/O中フラグには“0”(初期値)が設定されるものとする。また、この同期I/O中フラグに設定する値は、第1階層ストレージサーバ10のメモリ13に格納されてもよいが、これに限られない。
The value set in the synchronous I / O flag is not limited to "0" or "1", and it is determined whether or not the synchronous I / O processing (data access) by the synchronous I /
また、同期I/O処理部17は、SSD30への同期I/O処理(データアクセス)の実行を開始する前に、同期I/O中フラグに“1”を設定する。また、同期I/O処理部17は、SSD30への同期I/O処理(データアクセス)を完了した後、同期I/O中フラグに“0”を設定する。
Further, the synchronous I /
本システムでは、SSD30へデータが書き込まれた後、非同期的に、第2階層ストレージサーバ20が備えるHDD40へデータを書き出すが、HDD40への書き出し処理を最適化するために、同期I/O処理部17ではこのタイミングを制御する。上述したとおり、本システムにおいて、第2階層ストレージサーバ20が備えるHDD40へのデータの書き込み指示は、非同期書き出し処理部19によって行なわれる。そのため、同期I/O処理部17では、非同期書き出し処理を実行するタイミング、すなわち、非同期書き出し処理部19を起動するタイミング(非同期書き出し処理部19に対して当該指示を出すタイミング)を制御する。
In this system, after the data is written to the
同期I/O処理部17による、この非同期書き出し処理の起動制御について図8を参照しながら説明する。
The activation control of this asynchronous writing process by the synchronous I /
図8は、実施形態の一例としてのストレージシステム1におけるクライアントコンピュータ50からのデータアクセス要求と、同期I/O処理部17による非同期書き出し処理の起動制御との関係を説明するための図である。
FIG. 8 is a diagram for explaining the relationship between the data access request from the
この図8は、クライアントコンピュータ50におけるジョブが、データアクセス要求,演算,データアクセス要求,演算,・・・の繰り返し(ループ)により構成されていることを例示している。図8に例示するように、この各データアクセス要求は、データの書き込み要求または読み出し要求である。
FIG. 8 illustrates that a job on the
また、図8に例示するように、第1階層ストレージサーバ10は、クライアントコンピュータ50から連続してデータアクセス要求を受信する場合がある。2つのデータアクセス要求の間には、所定時間に一定のデータアクセス要求がない時間帯、すなわち、間欠時間がある。複数のデータアクセス要求間での間欠時間がしきい値よりも小さい状態が継続する場合には、これらの連続するデータアクセス要求をバーストI/Oという。なお、このバーストI/Oは、1つ以上の書き込み要求または1つ以上の読み出し要求のジョブであってもよいし、1つ以上の書き込み要求と1つ以上の読み出し要求とが混在したジョブであってもよい。
Further, as illustrated in FIG. 8, the first-
クライアントコンピュータ50がバーストI/Oに係るジョブを実行している間は、第1階層ストレージサーバ10において、当該ジョブに係るデータの書き込みや読み出しを行なう。そのため、この期間においては、これらのジョブが第1階層ストレージサーバ10のCPU11やメモリ13,SSD30等を概ね占有する。
While the
そこで、本システムでは、第1階層ストレージサーバ10におけるSSD30に対するデータの書き込みや読み出し処理と、第2階層ストレージサーバ20のHDD40への書き出し処理が重複することを回避する。そこで、同期I/O処理部17は、随時間欠時間を算出し、算出した間欠時間がしきい値以下の場合、バーストI/Oが発生していると判断する。この場合、同期I/O処理部17は、バーストI/Oに係るジョブ以外のジョブを実行しない、つまり、第2階層ストレージサーバ20へのデータの書き出しを抑止する。これにより、SSD30に対する書き込みや読み出しの速度を維持することができ、ジョブの処理速度が低下することを回避できる。
Therefore, in this system, it is possible to avoid duplication of the data writing / reading process for the
一方、同期I/O処理部17は、算出した間欠時間がしきい値よりも大きい場合、バーストI/Oが発生していないと判断する。この場合、同期I/O処理部17は、バーストI/Oに係るジョブ以外のジョブを実行する。つまり、同期I/O処理部17は、バーストI/Oが発生していない期間は、SSD30に対するジョブが発生していないことから、その間に、第2階層ストレージサーバ20へのデータの書き出し(非同期書き出し)を行なうよう制御する。これにより、SSD30に対する書き込みや読み出しの速度やジョブの処理速度に影響を与えずに、第2階層ストレージサーバ20へのデータの書き出すことが可能となる。
On the other hand, when the calculated intermittent time is larger than the threshold value, the synchronous I /
なお、この同期I/O処理部17は、カーネルスレッドとして実現されてよい。
The synchronous I /
デバイス制御部18は、同期I/O処理部17からの指示を受け、SSD30へのアクセス(書き込みや読み出し)を制御する。なお、このデバイス制御部18は、SSD30の(デバイス)ドライバとして実現されてよい。
The
非同期書き出し処理部19は、同期I/O処理部17によって起動され、非同期書き出し処理(非同期I/O処理)を実行する。なお、非同期書き出し処理部19は、第2階層ストレージサーバ20へ書き出す対象となるデータが第1階層ストレージサーバ10に存在していない間はスリープする。
The asynchronous
また、非同期書き出し処理部19は、同期I/O処理部17から第2階層ストレージサーバ20のHDD40に対する書き出しを依頼されると、書き出し対象データが第2階層ストレージサーバ20のHDD40に書き出されているか否かを判断する。言い換えると、非同期書き出し処理部19は、当該書き出し対象データが、HDD40に書き出されていない(格納されていない)データ、すなわち、未書き出しデータ(ブロック)であるか否かを判断する。なお、非同期書き出し処理部19は、書き出し対象データが第2階層ストレージサーバ20のHDD40に格納されているか否かをデータブロック毎に管理している。この未書き出しデータの判断は公知の手法を用いて実現できるので、ここではその具体的な説明を省略する。
Further, when the asynchronous
非同期書き出し処理部19は、書き出し対象データが未書き出しデータであると判断した場合、当該書き出し対象データを第2階層ストレージサーバ20のHDD40に書き出す処理を行なう。具体的に、非同期書き出し処理部19は、通信制御部16を介して第2階層ストレージサーバ20に対し、例えば、書き出しの指示(非同期書き出し指示)を送信する(図7の矢印P3参照)。そして、第2階層ストレージサーバ20のI/O処理部27(後述)は、デバイス制御部28を介してHDD40に対して書き出し対象データの書き出しを行なう。
When the asynchronous
なお、この非同期書き出し処理部19は、カーネルスレッドとして実現されてよく、同期I/O処理部17とのメモリ共有が可能である。
The asynchronous
また、本システムでは、非同期書き出し処理部19が同期I/O処理部17によって起動されているか、すなわち、非同期書き出し処理部19が実行中(稼働中)であるか否かを示す非同期書き出し稼働中フラグを設ける。非同期書き出し処理部19が同期I/O処理部17によって起動されると、同期I/O処理部17は、非同期書き出し稼働中フラグに、例えば“1”を設定する。一方、非同期書き出し処理部19が同期I/O処理部17によって起動されていない場合には、同期I/O処理部17は、非同期書き出し稼働中フラグに、例えば“0”を設定する。なお、この非同期書き出し稼働中フラグに設定する値は、第1階層ストレージサーバ10のメモリ13に格納されてもよいが、これに限られない。
Further, in this system, the asynchronous
この非同期書き出し稼働中フラグに設定する値は“0”や“1”に限らず、非同期書き出し処理部19が実行中か否かを判断できるものであればよい。なお、非同期書き出し稼働中フラグは、本システムの起動時や、非同期書き出し処理部19による処理(稼働)が終了してスリープする際には“0”が設定される(解除される)ものとする。
The value set in the asynchronous writing operation flag is not limited to "0" and "1", and may be any value as long as it can determine whether or not the asynchronous
次に、本ストレージシステムに係る第2階層ストレージサーバ20の機能構成について、図9を用いて説明する。
Next, the functional configuration of the second-
図9は、図1に示す実施形態の一例としての第2階層ストレージサーバ20の機能構成を例示する図である。本システムでは、図1に例示する複数の第2階層ストレージサーバ20のそれぞれが、図9に示す機能構成を備えるものとする。
FIG. 9 is a diagram illustrating a functional configuration of the second-
図9に例示するように、第2階層ストレージサーバ20は、例示的に、通信制御部26、I/O処理部27、及び、デバイス制御部28を備えてもよい。
As illustrated in FIG. 9, the second-
通信制御部26は、第1階層ストレージサーバ10との通信を行ない、クライアントコンピュータ50からの読み出し要求や、HDD40への書き出しの指示(非同期書き出し指示)を受信する。
The
また、通信制御部26が第1階層ストレージサーバ10から、クライアントコンピュータ50からの読み出し要求を受信すると、HDD40から読み出されたデータ(読み出し対象データ)を第1階層ストレージサーバ10に対し送信する(図7の矢印P2参照)。
Further, when the
また、通信制御部26が、HDD40への書き出しの指示(非同期書き出し指示)を受信した場合、この非同期書き出し指示をI/O処理部27に対して送信する(図7の矢印P3参照)。
When the
また、通信制御部26は、読み出しや書き込み等のI/Oを完了した通知(I/O要求完了通知)を第2階層ストレージサーバ20に対して送信してもよい。
Further, the
I/O処理部27は、クライアントコンピュータ50からの読み出し要求や、HDD40への書き出しの指示(非同期書き出し指示)を処理する。
The I /
I/O処理部27は、クライアントコンピュータ50からの読み出し要求を受信した場合、当該読み出し要求を処理すべく、後述するデバイス制御部28を介してHDD40から読み出し対象データを取得する。そして、I/O処理部27は、取得した読み出し対象データを、通信制御部26を介して第1階層ストレージサーバ10に送信する(図7の矢印P2参照)。
When the I /
なお、I/O処理部27は、読み出し対象データの送信が完了すると、通信制御部16を介して、読み出し完了通知(I/O要求完了通知)を第1階層ストレージサーバ10に対して送信してもよい。
When the transmission of the read target data is completed, the I /
I/O処理部27は、HDD40への書き出しの指示(非同期書き出し指示)を受信した場合、書き出し対象データをHDD40へ格納する指示と共に、書き出し対象データをデバイス制御部28に対して送信する(図7の矢印P3参照)。そして、I/O処理部27は、書き出し処理が完了すると、通信制御部26を介して、書き出し完了通知を第1階層ストレージサーバ10に対して送信してもよい。
When the I /
デバイス制御部28は、I/O処理部27からの指示を受け、HDD40へのアクセス(書き込みや読み出し)を制御する。なお、このデバイス制御部28は、HDD40の(デバイス)ドライバとして実現されてよい。
The
〔1−4〕一実施形態に係るストレージシステムにおける同期I/O処理
上述の如く構成された実施形態の一例としてのストレージシステム1における同期I/O処理を、図12を参照しながら、図10及び図11に示すフローチャート(ステップS1〜S17)に従って説明する。
[1-4] Synchronous I / O processing in the storage system according to one embodiment The synchronous I / O processing in the
なお、図10は、ステップS1〜S10の処理を例示し、図11は、ステップS11〜S17の処理を例示する。同期I/O処理は、第1階層ストレージサーバ10の同期I/O処理部17により実行される。したがって、図10、及び、図11に示すフローチャートは、第1階層ストレージサーバ10の同期I/O処理部17による処理を例示するものである。
Note that FIG. 10 illustrates the processing of steps S1 to S10, and FIG. 11 illustrates the processing of steps S11 to S17. The synchronous I / O processing is executed by the synchronous I /
図12は、一実施形態に係るストレージシステム1における間欠時間の算出を説明するための図である。
FIG. 12 is a diagram for explaining the calculation of the intermittent time in the
図10の結合子“D1”は、図11の結合子“D1”への入口を示しており、図10に例示するステップS10の処理に続けて、図11(S11〜S17)に例示する処理を経ることにより、データの書き込み処理を実行するものとする。 The connector “D1” in FIG. 10 indicates an entrance to the connector “D1” in FIG. 11, and the process illustrated in FIGS. 11 (S11 to S17) is performed following the process in step S10 illustrated in FIG. It is assumed that the data writing process is executed by passing through.
また、図10に例示する処理は、クライアントコンピュータ50が第1階層ストレージサーバ10に対してデータアクセス(データの書き込み)を要求したことを契機として開始される。したがって、同期I/O処理部17は、クライアントコンピュータ50からの要求を受信するまではスリープしているものとする。
Further, the process illustrated in FIG. 10 is started when the
図10のステップS1において、同期I/O処理部17は、第1階層ストレージサーバ10の通信制御部16を介してクライアントコンピュータ50からのデータアクセス(データの書き込み)要求を受信する。
In step S1 of FIG. 10, the synchronous I /
続く図10のステップS2において、同期I/O処理部17は、同期I/O中フラグに“1”を設定する。これにより、同期I/O処理部17が同期I/O処理を実行中であることが明示される。
In the following step S2 of FIG. 10, the synchronous I /
続く図10のステップS3において、同期I/O処理部17は、現在時刻を示す変数であるT_begin(n)に、現在のタイムスタンプの値(現在時刻)を代入する。上記T_begin(n)中の変数nは間欠時間の測定回数を示すカウンタとして機能し、nには0以上の整数が入力される。なお、nには初期値として“0”が代入される。なお、この現在のタイムスタンプの取得は既知の手法で実現することでき、その説明は省略する。なお、本実施形態において、間欠時間の測定回数はC(回)とし(Cは2以上の整数)、図10,図11では、C=10(回)の例を示すが、これに限られない。
In the following step S3 of FIG. 10, the synchronous I /
続く図10のステップS4で、同期I/O処理部17は、1つ前(前回)の要求に対する処理が終了した時刻を示す変数であるT_end(n−1)をT_begin(n)から差し引くことにより、当該要求と前回の要求との差分時間を間欠時間として算出する。なお、1回目の要求よりも前の要求は存在しないため、T_end(−1)には初期値として“0”が代入される。
In the following step S4 of FIG. 10, the synchronous I /
ここで図12を参照すると、2回目の書き込みが要求された場合、この要求の処理を開始する時刻はxであり、当該要求より1つ前の要求(1回目の書き込み要求)の処理を完了した時刻はyである。このことから、同期I/O処理部17は、このステップS3では、xからyを差し引くことにより、1回目と2回目との要求間の間欠時間を求めることになる(図12の矢印P4参照)。
Here, referring to FIG. 12, when the second write is requested, the time to start the processing of this request is x, and the process of the request immediately before the request (the first write request) is completed. The time is y. From this, in this step S3, the synchronous I /
そして、同期I/O処理部17は、算出した間欠時間がしきい値Tmax以下であるか否かを判断する。算出した間欠時間がしきい値Tmax以下である場合(ステップS4におけるYesルート参照)、処理が図10のステップS5に移行する。なお、しきい値Tmaxは、当該システムの稼働状況に応じた間欠時間(例えば、5秒)が設定されるものとし、この値は適宜設定または変更されてもよい。
Then, the synchronous I /
続く図10のステップS5において、同期I/O処理部17は、上述したステップS4で算出した間欠時間を配列Array[n]に格納する。上述したように、間欠時間の測定回数が10回である場合には、配列Array[0]〜Array[9]に計測した各間欠時間が格納される。そして、処理が図10のステップS7に移行する。
In the following step S5 of FIG. 10, the synchronous I /
一方、上述したステップS4において、算出した間欠時間がしきい値Tmaxよりも大きい場合(ステップS4におけるNoルート参照)、処理が図10のステップS6に移行する。図12を参照すると、1回目の書き込み要求時には、xから“0”を差し引いた値を求めることになり、その値はしきい値Tmaxより大きくなるから、処理が図10のステップS6に移行する。 On the other hand, when the calculated intermittent time is larger than the threshold value T max in step S4 described above (see No route in step S4), the process shifts to step S6 in FIG. Referring to FIG. 12, at the time of the first write request, a value obtained by subtracting “0” from x is obtained, and the value becomes larger than the threshold value T max. Therefore, the process proceeds to step S6 of FIG. To do.
続く図10のステップS6において、同期I/O処理部17は、nに「−1」を代入する。
In the following step S6 of FIG. 10, the synchronous I /
続く図10のステップS7において、同期I/O処理部17は、SSD30に対するI/O処理(書き込みや読み出し)を実行する。
In the following step S7 of FIG. 10, the synchronous I /
続く図10のステップS8において、同期I/O処理部17は、T_end(n)に現在のタイムスタンプの値(現在時刻)を代入する。すなわち、今回のI/O処理の完了時刻(終了時刻)がT_end(n)に代入される。
In the following step S8 of FIG. 10, the synchronous I /
続く図10のステップS9において、同期I/O処理部17は、nの値をインクリメントする。
In the following step S9 of FIG. 10, the synchronous I /
続く図10のステップS10において、同期I/O処理部17は、同期I/O中フラグに“0”を設定する。これにより、同期I/O処理部17によるSSD30に対するI/O処理が完了し、同期I/O処理部17が現時点で同期I/O処理を実行していないことが明示される。そして、結合子“D1”を経て、図11のステップS11に処理が移行する。
In the following step S10 of FIG. 10, the synchronous I /
図11のステップS11において、同期I/O処理部17は、間欠時間の測定回数を示すカウンタnの値が、間欠時間の測定回数がC回であるか否か、すなわち、上述したステップS4での間欠時間の算出が、C回目であるか否かを判断する。カウンタnの値がCである場合、処理が図11のステップS12に移行する。
In step S11 of FIG. 11, the synchronous I /
続く図11のステップS12において、同期I/O処理部17は、C回分の間欠時間の平均を算出する。そこで、同期I/O処理部17は、上述したステップS5において間欠時間を代入した、配列Array[0]〜Array[C−1]の平均を算出する。
In the following step S12 of FIG. 11, the synchronous I /
そして、同期I/O処理部17は、算出したC回分の間欠時間の平均に、所定のマージン時間Tmarginを加算することにより、非同期書き出し処理部19を起動するまでの時間T2ndを算出する。このT2ndは、非同期書き出し処理部19が第2階層ストレージデバイス20への書き出し処理を実行するまでの時間でもある。このT2ndを求めるうえでマージン時間Tmarginを加算したのは、本システムにおいて、同期I/O処理部17による処理が完了した後、所定の時間をおいて第2階層ストレージサーバ20への書き出が行なわれるものとしたためであり、これに限られない。なお、このT2ndは、平均間欠時間ともいい、当該システムの稼働状況に応じて適宜設定または変更されてもよい。処理が図11のステップS13に移行する。
Then, the synchronous I /
続く図11のステップS13において、同期I/O処理部17は、T_end(−1)に、今回の要求に対する処理が終了した時刻T_end(C−1)を代入する。これは、今回の要求に対する処理が終了した時刻T_end(C−1)を、次回のループにおけるステップS4で間欠時間を算出する際に用いるためである。
In the following step S13 of FIG. 11, the synchronous I /
そして、同期I/O処理部17は、間欠時間の測定回数を0(回)に設定(リセット)する。これにより、バーストI/O毎に間欠時間の平均値やT2ndを算出することになり、新たなバーストI/Oが発生した場合に、これらの値を更新することになる。
Then, the synchronous I /
上述のステップS4において、バーストI/Oが終了した場合には、算出された間欠時間がしきい値Tmaxを超えたと判断される。このような場合にも、このステップS13において、間欠時間の測定回数が0(回)に設定(リセット)される。そして、処理が図11のステップS14に移行する。 When the burst I / O ends in step S4 described above, it is determined that the calculated intermittent time exceeds the threshold value T max . Even in such a case, the number of measurements of the intermittent time is set (reset) to 0 (times) in this step S13. Then, the process proceeds to step S14 of FIG.
続く図11のステップS14において、同期I/O処理部17は、SSD30に対するI/O処理(書き込みや読み出し)が完了した旨の通知(I/O要求完了通知)を通信制御部16を介してクライアントコンピュータ50に対して送信する。そして、処理が図11のステップS15に移行する。
In the subsequent step S14 of FIG. 11, the synchronous I /
続く図11のステップS15において、同期I/O処理部17は、現在の時刻に、上述したステップS12で算出したT2ndを加算する。これにより、同期I/O処理部17が非同期書き出し処理部19を起動する時刻(起動時刻)Tstartが求まる。そして、処理が図11のステップS16に移行する。
In the following step S15 of FIG. 11, the synchronous I /
一方、上述したステップS11において、カウンタnの値がCではなかった場合(ステップS11におけるNoルート参照)、処理が上述したステップS15に移行する。 On the other hand, if the value of the counter n is not C in step S11 described above (see No route in step S11), the process proceeds to step S15 described above.
続くステップS16において、同期I/O処理部17は、非同期書き出し稼働中フラグに“1”が設定されているかを判断する。“1”が設定されていないと判断した場合(非同期書き出し処理部19が起動されていない場合;ステップS16におけるNoルート参照)、処理が図11のステップS17に移行する。
In the following step S16, the synchronous I /
続く図11のステップS17において、同期I/O処理部17は、非同期書き出し処理部19を起動する。そして、同期I/O処理部17による処理が終了する。なお、このステップS17における処理が終了すると、後述する図13のステップQ1(非同期書き出し処理部19による処理)に処理が移行する。
In the following step S17 of FIG. 11, the synchronous I /
一方、上述したステップS16にて、“1”が設定されていると判断した場合(非同期書き出し処理部19が起動されている場合;ステップS16におけるYesルート参照)、同期I/O処理部17による処理が終了する。これは、既に非同期書き出し処理部19が起動しているため、同期I/O処理部17によって再度非同期書き出し処理部19を起動することを回避するためである。なお、この場合も、後述する図13に例示するステップQ1(非同期書き出し処理部19による処理)に処理が移行する。
On the other hand, when it is determined in step S16 described above that "1" is set (when the asynchronous
なお、ステップS17において、同期I/O処理部17が非同期書き出し処理部19を起動した後においても、クライアントコンピュータ50からデータアクセス要求を受信すると、図10のステップS1に示す処理を開始することになる。この場合、図10,図11のステップS1〜S16に示す処理を経て、非同期書き出し処理部19が起動される時刻Tstartが更新される。
In step S17, even after the synchronous I /
〔1−5〕一実施形態に係るストレージシステムにおける非同期I/O処理
上述の如く構成された実施形態の一例として、ストレージシステム1における非同期I/O処理を、図13に示すフローチャート(ステップQ1〜Q9)に従って説明する。この図13においては、非同期書き出し処理部19によるHDD40へのデータの書き出し処理を例示する。
[1-5] Asynchronous I / O processing in the storage system according to one embodiment As an example of the embodiment configured as described above, the asynchronous I / O processing in the
この非同期I/O処理は、第2階層ストレージサーバ20の非同期書き出し処理部19により実行されるから、図13は、第2階層ストレージサーバ20の非同期書き出し処理部19による処理を例示するものでもある。
Since this asynchronous I / O processing is executed by the asynchronous
なお、この図13に例示する処理は、図11のステップS17に示す処理を経ることを契機として実行されるものとする。したがって、非同期書き出し処理部19は、同期I/O処理部17によって起動されるまではスリープしているものとする。
It is assumed that the process illustrated in FIG. 13 is executed when the process shown in step S17 of FIG. 11 is performed. Therefore, it is assumed that the asynchronous
ステップQ1において、非同期書き出し処理部19は、非同期書き出し稼働中フラグに“1”を設定する。これは、非同期書き出し処理部19が同期I/O処理部17によって起動され、実行中となったためである。
In step Q1, the asynchronous
続くステップQ2で、非同期書き出し処理部19は、非同期書き出し処理部19が起動される時刻Tstartが現在時刻よりも大きいか(進んでいるか)否か、すなわち、非同期書き出し処理部19が起動される時刻Tstartに到達したか否かを判断する。すなわち、Tstartが現在時刻よりも大きい(進んでいる)と判断された場合、すなわち、非同期書き出し処理部19が起動される時刻Tstartに到達していない場合(ステップQ2におけるYesルート参照)、処理がステップQ3に移行する。
In the following step Q2, the asynchronous
続くステップQ3において、非同期書き出し処理部19は、Tstartから現在時刻を差し引いた時間分だけスリープし、Tstartが現在時刻になるまで待つ。そして、非同期書き出し処理部19は、Tstartが現在時刻になるまでスリープした後、処理がステップQ2に戻り、Tstartが現在時刻よりも大きいか(進んでいるか)否かを再度判断する。これは、非同期書き出し処理部19がスリープしている間に、間欠時間がしきい値Tmaxを超えるデータアクセス要求をクライアントコンピュータ50から受けたか否かを判断するためである。非同期書き出し処理部19がスリープしている間に、間欠時間がしきい値Tmaxを超えるデータアクセス要求を再度受けた場合、上述の図11のステップS15に示す処理を経るため、Tstartが更新され、Tstartはスリープ完了後の現在時刻よりも進むからである。一方、非同期書き出し処理部19がスリープしている間に、間欠時間がしきい値Tmaxを超えるデータアクセス要求を受けなかった場合には、Tstartは更新されず、処理がステップQ4に移行する。
In the following step Q3, the asynchronous write processing unit 19, sleep for the time obtained by subtracting the current time from T start, wait until T start is the current time. Then, the asynchronous
また、このステップQ3におけるスリープの間、非同期書き出し稼働中フラグは“1”を設定したままとするが、これは、非同期書き出し処理部19がスリープしている間に、再度同期I/O処理部17によって起動されるのを回避するためである。
Further, during the sleep in step Q3, the asynchronous writing operation flag is left set to "1", which is the synchronous I / O processing unit again while the asynchronous
一方、上記ステップQ2でTstartが現在時刻以下である(現在時刻がTstartより進んでいる)と判断されると、すなわち、非同期書き出し処理部19が起動される時刻Tstartに到達した場合(ステップQ2のNoルート参照)、処理がステップQ4に移行する。
On the other hand, when it is determined in step Q2 that the T start is equal to or less than the current time (the current time is ahead of the T start ), that is, when the time T start at which the asynchronous
続くステップQ4において、非同期書き出し処理部19は、同期I/O中フラグに“1”が設定されているか否かを判断する。同期I/O中フラグに“1”が設定されている場合(ステップQ4におけるYesルート参照)、すなわち、同期I/O処理部17が実行中である場合、処理がステップQ5に移行する。
In the following step Q4, the asynchronous write-
続くステップQ5において、非同期書き出し処理部19は、非同期書き出し稼働中フラグに“0”を設定し、ステップQ6において、非同期書き出し処理部19はスリープする。これは、第1階層ストレージサーバ10の同期I/O処理部17が実行中であることから、この処理を妨げずに処理速度を維持するためである。その後、処理を終了する。
In the following step Q5, the asynchronous
一方、上述のステップQ4で、同期I/O中フラグに“1”が設定されていない場合(ステップQ4のNoルート参照)、すなわち、同期I/O中フラグに“0”が設定されている(同期I/O処理部17が実行中ではない)場合、処理がステップQ7に移行する。
On the other hand, in step Q4 described above, when the synchronous I / O flag is not set to "1" (see No route in step Q4), that is, the synchronous I / O flag is set to "0". If (the synchronous I /
続くステップQ7において、非同期書き出し処理部19は、書き出し対象データの中に未書き出しデータがあるか否かを判断する。未書き出しデータがないと判断した場合には(ステップQ7におけるNoルート参照)、処理がステップQ5に移行する。
In the following step Q7, the asynchronous
一方、上述したステップQ7において、未書き出しデータがあると判断した場合には(ステップQ7におけるYesルート参照)、処理がステップQ8に移行する。 On the other hand, if it is determined in step Q7 described above that there is unwritten data (see Yes route in step Q7), the process shifts to step Q8.
続くステップQ8において、非同期書き出し処理部19は、第2階層ストレージサーバ20に対し、未書き出しデータの書き出し処理を実行する。具体的に、非同期書き出し処理部19は、通信制御部16を介して第2階層ストレージサーバ20に対し、例えば、書き出しの指示(非同期書き出し指示)を送信する。そして、第2階層ストレージサーバ20のI/O処理部27は、デバイス制御部28を介してHDD40に対して書き出し対象データの書き出しを行なう。なお、このHDD40への書き出し対象データは、SSD30に格納されているものとする。そして、処理がステップQ9に移行する。
In the following step Q8, the asynchronous
続くステップQ9において、非同期書き出し処理部19は、第2階層ストレージサーバ20から書き出し完了通知を受信する。そして、処理がステップQ4に戻り、ステップQ4〜Q9に示す処理を繰り返す。本システムでは、これらのステップQ4〜Q9に示す処理を、書き出し対象データの1ブロック毎に行なうものとした。これは、第1階層ストレージサーバ10における同期I/O処理の実行中に、第2階層ストレージサーバ20への書き出し処理を実行することを可能な限り回避するためである。そのため、非同期書き出し処理部19は、同期I/O中フラグに基づき、第1階層ストレージサーバ10における同期I/O処理が実行中であるか否かを、書き出し対象データの1ブロック毎に判断するものとした。
In the following step Q9, the asynchronous
〔2〕効果
上述のように、一実施形態に係るストレージシステム1では、第1階層ストレージサーバ10にて、前回のデータアクセス要求に係るI/O処理の完了時刻と現在時刻との差分時間を間欠時間として算出し、この間欠時間としきい値とを比較する。そして、クライアントコンピュータ50からデータアクセス要求を受信しなかったことを確認した後に、SSD30からHDD40への書き出し処理を実行する。これにより、第1階層ストレージサーバ10内のジョブの実行と、HDD40へのデータの書き出し処理との重複を回避することができる。
[2] Effect As described above, in the
したがって、HDD40へのデータの書き出し処理を最適化することができる。
Therefore, the data writing process to the
また、一実施形態に係るストレージシステム1において、同期I/O処理部17は、非同期書き出し処理部19を起動するまでの時間T2ndを算出する際、C回分の間欠時間の平均を用いる。これにより、当該システムの稼働状況に応じた平均的な間欠時間を考慮して、非同期書き出し処理部19を起動するまでの時間T2ndを算出することができる。
Further, in the
また、一実施形態に係るストレージシステム1において、同期I/O中フラグに基づき同期I/O処理部17が実行中ではないことを確認したうえで、非同期書き出し処理部19によるHDD40への書き出し処理を実行する。これにより、第1階層ストレージサーバ10での同期I/O処理部17による処理を妨げずに処理速度を維持することができる。
Further, in the
〔3〕その他
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
[3] Others The techniques related to the above-described embodiment and modified examples can be modified or modified as follows.
上述した一実施形態では、同期I/O処理部17と非同期書き出し処理部19とをそれぞれ備えたが、同期I/O処理部17が非同期書き出し処理部19の機能も併せもつものとしてもよい。その場合、同期I/O処理部17において同期I/O処理と非同期I/O処理とを実行し、同期I/O処理部17が、HDD30への非同期の書き出し処理を実行してもよい。
In the above-described embodiment, the synchronous I /
上述した一実施形態では、同期I/O中フラグと非同期書き出し稼働中フラグとを備えたが、これらのフラグに替えて、例えばテーブル形式の情報として同期I/O処理部17と非同期書き出し処理部19との実行状況を管理するものとしてもよい。 In the above-described embodiment, the synchronous I / O in-progress flag and the asynchronous write-out in-execution flag are provided. It may be used to manage the execution status with 19.
上述した一実施形態では、クライアントコンピュータ50は、複数の第1階層ストレージサーバ#0〜#nのうちいずれの第1階層ストレージサーバ10にアクセスしてもよいものとしたが、これに限られない。例えば、クライアントコンピュータ#0は、第1階層ストレージサーバ#0に対してアクセスする構成(1対1で通信を行なう構成)としてもよい。
In one embodiment described above, the
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。 The present invention is not limited to the above-described embodiment, and can be modified in various ways without departing from the spirit of the present invention.
〔4〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
[4] Additional notes The following additional notes will be further disclosed with respect to the above embodiments.
(付記1)
第1の記憶装置と第2の記憶装置とに対して、アクセスコマンドに基づく処理を行なう情報処理装置において、
前回のアクセスコマンド処理の終了時刻と現在時刻との差分時間を間欠時間として算出し、所定時間以内の前記間欠時間の複数回分の平均を平均間欠時間として算出する算出部と、
前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれなかった場合、前記第1の記憶装置から前記第2の記憶装置に対する書き出し処理を実行する非同期書き出し処理部と、
を備えることを特徴とする、情報処理装置。
(Appendix 1)
In an information processing device that performs processing based on an access command for the first storage device and the second storage device,
A calculation unit that calculates the difference time between the end time of the previous access command processing and the current time as the intermittent time, and calculates the average of multiple times of the intermittent time within the predetermined time as the average intermittent time.
When the information processing device is not accessed beyond the average intermittent time after the access command processing is completed, the writing process from the first storage device to the second storage device is executed asynchronously. Export processing unit and
An information processing device characterized by being equipped with.
(付記2)
前記非同期書き出し処理部は、前記平均間欠時間に基づき算出された起動時刻と現在時刻とを比較して、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれたか否かを判断する、
ことを特徴とする付記1記載の情報処理装置。
(Appendix 2)
The asynchronous writing processing unit compares the start time calculated based on the average intermittent time with the current time, and determines whether or not the information processing apparatus has been accessed beyond the average intermittent time. ,
The information processing device according to
(付記3)
前記情報処理装置は、前記第1の記憶装置に対して書き込みを行なう同期書き込み処理部をさらに備え、
前記非同期書き出し処理部は、起動時に、前記同期書き込み処理部が実行中でないことを確認した後に前記第2の記憶装置に対して書き出し処理を実行する、
ことを特徴とする付記1又は2記載の情報処理装置。
(Appendix 3)
The information processing device further includes a synchronous writing processing unit that writes to the first storage device.
At startup, the asynchronous write processing unit executes write processing to the second storage device after confirming that the synchronous write processing unit is not being executed.
The information processing device according to
(付記4)
第1の記憶装置と第2の記憶装置とに対して、アクセスコマンドに基づく処理を行なう情報処理装置のプロセッサに、
前回のアクセスコマンド処理の終了時刻と現在時刻との差分時間を間欠時間として算出し、所定時間以内の前記間欠時間の複数回分の平均を平均間欠時間として算出し、
前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれなかった場合、前記第1の記憶装置から前記第2の記憶装置へ書き出す、
処理を実行させる、
ことを特徴とする、制御プログラム。
(Appendix 4)
To the processor of the information processing device that performs processing based on the access command for the first storage device and the second storage device.
The difference time between the end time of the previous access command processing and the current time is calculated as the intermittent time, and the average of multiple times of the intermittent time within the predetermined time is calculated as the average intermittent time.
When the information processing device is not accessed beyond the average intermittent time after the access command processing is completed, the information processing device is written from the first storage device to the second storage device.
To execute the process,
A control program characterized by that.
(付記5)
前記平均間欠時間に基づき算出された起動時刻と現在時刻とを比較して、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれたか否かを判断する、
処理を、前記プロセッサに実行させる、
ことを特徴とする、付記4記載の制御プログラム。
(Appendix 5)
By comparing the start-up time calculated based on the average intermittent time with the current time, it is determined whether or not the information processing apparatus has been accessed beyond the average intermittent time.
Let the processor execute the process,
The control program according to
(付記6)
前記第1の記憶装置に対して書き込みを行なう処理と、
起動時に、前記第1の記憶装置に対して書き込みを行なう処理が実行中でないことを確認した後に前記第2の記憶装置に対して書き出し処理を実行する処理とを、
前記プロセッサに実行させる、
ことを特徴とする、付記4又は5記載の制御プログラム。
(Appendix 6)
The process of writing to the first storage device and
At startup, the process of executing the write process to the second storage device after confirming that the process of writing to the first storage device is not being executed.
Let the processor execute
The control program according to
(付記7)
前回のアクセスコマンド処理の終了時刻と現在時刻との差分時間を間欠時間として算出し、所定時間以内の前記間欠時間の複数回分の平均を平均間欠時間として算出する処理と、
前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて情報処理装置へのアクセスが行なわれなかった場合、第1の記憶装置から第2の記憶装置への書き出す処理を実行する処理と、
を備えることを特徴とする、制御方法。
(Appendix 7)
The process of calculating the difference time between the end time of the previous access command processing and the current time as the intermittent time, and calculating the average of multiple times of the intermittent time within the predetermined time as the average intermittent time.
After completing the access command process, if the information processing device is not accessed beyond the average intermittent time, the process of executing the process of writing from the first storage device to the second storage device, and the process of executing the process of writing to the second storage device.
A control method, characterized in that.
(付記8)
前記平均間欠時間に基づき算出された起動時刻と現在時刻とを比較して、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれたか否かを判断する処理、
を備えることを特徴とする、付記7記載の制御方法。
(Appendix 8)
A process of comparing the startup time calculated based on the average intermittent time with the current time to determine whether or not the information processing apparatus has been accessed beyond the average intermittent time.
7. The control method according to Appendix 7, wherein the control method is provided with.
(付記9)
前記第1の記憶装置に対して書き込みを行なう処理と、
前記第1の記憶装置に対して書き込みを行なう処理が実行中でないことを確認した後に前記第2の記憶装置に対して書き出し処理を実行する処理と、
を備えることを特徴とする、付記7又は8記載の制御方法。
(Appendix 9)
The process of writing to the first storage device and
A process of executing the write process to the second storage device after confirming that the process of writing to the first storage device is not being executed, and a process of executing the write process to the second storage device.
The control method according to Appendix 7 or 8, wherein the control method is provided with.
1 ストレージシステム
10 第1階層ストレージサーバ(情報処理装置)
11 CPU
12 記憶部
13 メモリ
14 IF部
15 入力部
16 通信制御部
17 同期I/O処理部(算出部,同期書き込み処理部)
18 デバイス制御部
19 非同期書き出し処理部
20 第2階層ストレージサーバ
21 CPU
22 記憶部
23 メモリ
24 IF部
25 入力部
26 通信制御部
27 I/O処理部
28 デバイス制御部
30 SSD(第1の記憶装置)
40 HDD(第2の記憶装置)
50 クライアントコンピュータ
51 CPU
52 記憶部
53 メモリ
54 IF部
55 入力部
56 要求発行部
57 通信制御部
90 第1制御プログラム
91 第2制御プログラム
92 クライアントプログラム
1
11 CPU
12
18
22
40 HDD (second storage device)
50
52
Claims (5)
前回のアクセスコマンド処理の終了時刻と現在時刻との差分時間を間欠時間として算出し、所定時間以内の前記間欠時間の複数回分の平均を平均間欠時間として算出する算出部と、
前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれなかった場合、前記第1の記憶装置から前記第2の記憶装置に対する書き出し処理を実行する非同期書き出し処理部と、
を備えることを特徴とする、情報処理装置。 In an information processing device that performs processing based on an access command for the first storage device and the second storage device,
A calculation unit that calculates the difference time between the end time of the previous access command processing and the current time as the intermittent time, and calculates the average of multiple times of the intermittent time within the predetermined time as the average intermittent time.
When the information processing device is not accessed beyond the average intermittent time after the access command processing is completed, the writing process from the first storage device to the second storage device is executed asynchronously. Export processing unit and
An information processing device characterized by being equipped with.
ことを特徴とする請求項1記載の情報処理装置。 The asynchronous writing processing unit compares the start time calculated based on the average intermittent time with the current time, and determines whether or not the information processing apparatus has been accessed beyond the average intermittent time. ,
The information processing apparatus according to claim 1.
前記非同期書き出し処理部は、起動時に、前記同期書き込み処理部が実行中でないことを確認した後に前記第2の記憶装置に対して書き出し処理を実行する、
ことを特徴とする請求項1又は2記載の情報処理装置。 The information processing device further includes a synchronous writing processing unit that writes to the first storage device.
At startup, the asynchronous write processing unit executes write processing to the second storage device after confirming that the synchronous write processing unit is not being executed.
The information processing apparatus according to claim 1 or 2.
前回のアクセスコマンド処理の終了時刻と現在時刻との差分時間を間欠時間として算出し、所定時間以内の前記間欠時間の複数回分の平均を平均間欠時間として算出し、
前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて前記情報処理装置へのアクセスが行なわれなかった場合、前記第1の記憶装置から前記第2の記憶装置へ書き出す、
処理を実行させる、
ことを特徴とする、制御プログラム。 To the processor of the information processing device that performs processing based on the access command for the first storage device and the second storage device.
The difference time between the end time of the previous access command processing and the current time is calculated as the intermittent time, and the average of multiple times of the intermittent time within the predetermined time is calculated as the average intermittent time.
When the information processing device is not accessed beyond the average intermittent time after the access command processing is completed, the information processing device is written from the first storage device to the second storage device.
To execute the process,
A control program characterized by that.
前記アクセスコマンド処理を完了した後、前記平均間欠時間を超えて情報処理装置へのアクセスが行なわれなかった場合、第1の記憶装置から第2の記憶装置への書き出す処理を実行する処理と、
を備えることを特徴とする、制御方法。 The process of calculating the difference time between the end time of the previous access command processing and the current time as the intermittent time, and calculating the average of multiple times of the intermittent time within the predetermined time as the average intermittent time.
After completing the access command process, if the information processing device is not accessed beyond the average intermittent time, the process of executing the process of writing from the first storage device to the second storage device, and the process of executing the process of writing to the second storage device.
A control method, characterized in that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019072926A JP2020170458A (en) | 2019-04-05 | 2019-04-05 | Information processor, control program, and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019072926A JP2020170458A (en) | 2019-04-05 | 2019-04-05 | Information processor, control program, and control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020170458A true JP2020170458A (en) | 2020-10-15 |
Family
ID=72746833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019072926A Pending JP2020170458A (en) | 2019-04-05 | 2019-04-05 | Information processor, control program, and control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020170458A (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008149657A1 (en) * | 2007-06-05 | 2008-12-11 | Nec Corporation | I/o control system, i/o control method, and i/o control program |
JP2012194882A (en) * | 2011-03-17 | 2012-10-11 | Sony Corp | Memory control device, memory device, memory control method and program |
JP2017049872A (en) * | 2015-09-03 | 2017-03-09 | 富士通株式会社 | Storage control device, storage control program and storage control method |
-
2019
- 2019-04-05 JP JP2019072926A patent/JP2020170458A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008149657A1 (en) * | 2007-06-05 | 2008-12-11 | Nec Corporation | I/o control system, i/o control method, and i/o control program |
JP2012194882A (en) * | 2011-03-17 | 2012-10-11 | Sony Corp | Memory control device, memory device, memory control method and program |
JP2017049872A (en) * | 2015-09-03 | 2017-03-09 | 富士通株式会社 | Storage control device, storage control program and storage control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10496613B2 (en) | Method for processing input/output request, host, server, and virtual machine | |
US11960749B2 (en) | Data migration method, host, and solid state disk | |
US9411620B2 (en) | Virtual storage migration method, virtual storage migration system and virtual machine monitor | |
JP4464378B2 (en) | Computer system, storage system and control method for saving storage area by collecting the same data | |
EP2254036A2 (en) | Storage apparatus and data copy method | |
JP2013531283A (en) | Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function | |
JP2006268139A (en) | Data reproduction device, method and program and storing system | |
WO2017177953A1 (en) | Method and apparatus for setting data processing path for application in storage server | |
JP2020173727A (en) | Storage management device, information system, and storage management method | |
JP6028415B2 (en) | Data migration control device, method and system for virtual server environment | |
US8566541B2 (en) | Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same | |
JP5849794B2 (en) | Storage control device, storage control method, and storage control program | |
US10719906B2 (en) | Processing system for graphs and operating method thereof | |
US20170300255A1 (en) | Method and Apparatus for Detecting Transaction Conflict and Computer System | |
JP5167410B2 (en) | Storage system having a plurality of microprocessors, and processing sharing method in the storage system | |
JP2015158910A (en) | Memory subsystem with wrapped-to-continuous read | |
US10838949B2 (en) | Shared resource update apparatus and shared resource update method | |
US20210132862A1 (en) | Method for storage management, electronic device, and computer program product | |
CN107329798B (en) | Data replication method and device and virtualization system | |
JP4915365B2 (en) | Data storage method and apparatus, duplicate data storage method and apparatus, and control program thereof | |
JP2020170458A (en) | Information processor, control program, and control method | |
US11720164B1 (en) | Achieving power savings and low latency for storage | |
KR102245309B1 (en) | Method of data storage and operating methode of datacenter cluster caching system | |
CN111694635A (en) | Service quality control method and device | |
US11722564B1 (en) | Dynamic command feedback to limit impact of host-copy migration background copy load |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20190607 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220802 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230214 |