JP6958928B2 - ストレージ装置、ストレージ管理方法、及びプログラム - Google Patents

ストレージ装置、ストレージ管理方法、及びプログラム Download PDF

Info

Publication number
JP6958928B2
JP6958928B2 JP2019069138A JP2019069138A JP6958928B2 JP 6958928 B2 JP6958928 B2 JP 6958928B2 JP 2019069138 A JP2019069138 A JP 2019069138A JP 2019069138 A JP2019069138 A JP 2019069138A JP 6958928 B2 JP6958928 B2 JP 6958928B2
Authority
JP
Japan
Prior art keywords
information
virtual
storage unit
controller
cache
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
JP2019069138A
Other languages
English (en)
Other versions
JP2020166776A (ja
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 Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2019069138A priority Critical patent/JP6958928B2/ja
Publication of JP2020166776A publication Critical patent/JP2020166776A/ja
Application granted granted Critical
Publication of JP6958928B2 publication Critical patent/JP6958928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)

Description

本開示は、ストレージ装置、ストレージ管理方法、及びプログラムに関する。
特許文献1には、2つのコントローラで処理機能を分散させて負荷の低減を図る技術がある。特許文献2には、ハッシュ技術を用いた重複排除技術がある。特許文献3には、重複排除された重複排除ボリュームからデータを読み出す技術がある。特許文献4には、同一データが一次記憶装置上の複数位置に重複してキャッシュされることを防ぐ技術がある。特許文献5には、ハッシュ関数を用いてデータを検索する技術がある。
特開平07−110788号公報 特許第5691234号公報 国際公開第2014/136183号 特許第6010706号公報 特許第5026213号公報
複数の仮想PCのOSデータ等の重複するデータを記録するための共有記憶部及び各仮想PCのための個別記憶部を有するストレージ装置と、当該複数の仮想PCと、当該複数の仮想PCに対応する端末とを備えるシンクライアントシステムがある。このシステムでは、緊急セキュリティパッチ適用後や、メモリリークのリスク排除等を目的として、仮想PCの一斉リブートが行われることがある。このとき、複数の仮想PCが同一データを一斉に読み出すため、共有記憶部を有するコントローラに負荷が集中し、一斉リブートの時間が長くなり、ストレージ装置の性能が低下するという問題があった。
そこで、この発明は、上述の課題を解決するストレージ装置、ストレージ管理方法、及びプログラムを提供することを目的としている。
本発明の第1の態様によれば、ストレージ装置は、通信接続する複数の端末にそれぞれ一対一で対応して立ち上げられた複数の仮想PCが共通して利用する情報を記憶する共有記憶部と、少なくとも1つの仮想PCに対応する第1のコントローラであって、前記少なくとも1つの仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する主キャッシュ手段と、を備え、前記個別記憶部と、前記主キャッシュ手段と、前記共有記憶部と、第2のコントローラの副キャッシュ手段と、前記第1のコントローラに対応する前記少なくとも1つの仮想PCとの間で情報の入出力処理を行う第1のコントローラと、前記第1のコントローラに対応する前少なくとも1つの仮想PC以外の複数の仮想PCに対応する前記第2のコントローラであって、前記第2のコントローラに対応する複数の前記仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する前記副キャッシュ手段と、を備え、前記第2のコントローラの前記個別記憶部と、前記副キャッシュ手段と、前記主キャッシュ手段と、前記第2のコントローラに対応する複数の前記仮想PCとの間で情報の入出力処理を行う、前記第2のコントローラと、を備え、前記第1のコントローラは、前記第2のコントローラに対応する複数の前記仮想PCから前記共有記憶部の記憶する同一情報に対するリード要求が一斉にあった場合、前記同一情報を前記第2のコントローラに対して返信し、前記第2のコントローラは、前記同一情報を前記副キャッシュ手段に記録し、前記副キャッシュ手段に記録した前記同一情報を前記第2のコントローラに対応する複数の前記仮想PCそれぞれに返信する
本発明の第2の態様によれば、ストレージ管理方法は、ストレージ装置の共有記憶部が、通信接続する複数の端末にそれぞれ一対一で対応して立ち上げられた複数の仮想PCが共通して利用する情報を記憶し、少なくとも1つの仮想PCに対応する、前記ストレージ装置の第1のコントローラが、前記少なくとも1つの仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する主キャッシュ手段と、を備え、前記個別記憶部と、前記主キャッシュ手段と、前記共有記憶部と、第2のコントローラの副キャッシュ手段と、前記第1のコントローラに対応する前記少なくとも1つの仮想PCとの間で情報の入出力処理を行い、前記第1のコントローラに対応する複数の前記少なくとも1つの仮想PC以外の複数の仮想PCに対応する、前記ストレージ装置の前記第2のコントローラが、前記第2のコントローラに対応する複数の前記仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する前記副キャッシュ手段と、を備え、前記第2のコントローラの前記個別記憶部と、前記副キャッシュ手段と、前記主キャッシュ手段と、前記第2のコントローラに対応する複数の前記仮想PCとの間で情報の入出力処理を行い、前記第2のコントローラに対応する複数の前記仮想PCから前記共有記憶部の記憶する同一情報に対するリード要求が一斉にあった場合、前記第1のコントローラが、前記同一情報を前記第2のコントローラに対して返信し、前記第2のコントローラが、前記同一情報を前記副キャッシュ手段に記録し、前記副キャッシュ手段に記録した前記同一情報を前記第2のコントローラに対応する複数の前記仮想PCそれぞれに返信する
本発明の第3の態様によれば、プログラムは、ストレージ装置が備えるコンピュータを、共有記憶部に通信接続する複数の端末にそれぞれ一対一で対応して立ち上げられた複数の仮想PCが共通して利用する情報を前記共有記憶部に記録する共有情報記録手段と、少なくとも1つの仮想PCに対応する第1のコントロール手段であって、前記少なくとも1つの仮想PCそれぞれが個別に利用する情報を個別記憶部に記録し、前記共有記憶部の記憶する情報を所定のタイミングで読み出して主キャッシュ手段に記録し、前記個別記憶部と、前記主キャッシュ手段と、前記共有記憶部と、第2のコントロール手段の副キャッシュ手段と、前記第1のコントロール手段に対応する前記少なくとも1つの仮想PCとの間で情報の入出力処理を行う第1のコントロール手段と、前記第1のコントロール手段に対応する少なくとも1つの前記仮想PC以外の複数の仮想PCに対応する前記第2のコントロール手段であって、前記第2のコントロール手段に対応する複数の前記仮想PCそれぞれが個別に利用する情報を個別記憶部に記録し、前記共有記憶部の記憶する情報を所定のタイミングで読み出して前記副キャッシュ手段に記録し、前記第2のコントロール手段に対応する前記個別記憶部と、前記副キャッシュ手段と、前記主キャッシュ手段と、前記第2のコントロール手段に対応する複数の前記仮想PCとの間で情報の入出力処理を行う、前記第2のコントロール手段と、として機能させ、前記第2のコントロール手段に対応する複数の前記仮想PCから前記共有記憶部の記憶する同一情報に対するリード要求が一斉にあった場合、前記第1のコントロール手段が、前記同一情報を前記第2のコントロール手段に対して返信し、前記第2のコントロール手段が、前記同一情報を前記副キャッシュ手段に記録し、前記副キャッシュ手段に記録した前記同一情報を前記第2のコントロール手段に対応する複数の前記仮想PCそれぞれに返信する処理を行わせるためのプログラムである
上記態様のうち少なくともいずれかの態様によれば、複数の仮想PCが同一情報を一斉に読み出す場合に、ストレージ装置の処理能力を向上させることが可能となる。
第1の実施形態に係るシンクライアントシステムの全体構成を示す図である。 第1の実施形態に係るストレージ装置の機能構成を示す図である。 第1の実施形態に係る個別キャッシュ手段の構成を示す図である。 第1の実施形態に係る主及び副キャッシュ手段の構成を示す図である。 第1の実施形態に係るストレージ装置のリード要求に対する動作を示すフロー図である。 第2の実施形態に係るストレージ装置のリード要求に対する動作を示すフロー図である。 第3の実施形態に係るストレージ装置のリード要求に対する動作を示すフロー図である。 第4の実施形態に係るストレージ装置のライト要求に対する動作を示すフロー図である。 少なくとも1つの実施形態に係るストレージ装置の最小構成を示す図である。
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1の実施形態>
以下、第1の実施形態に係るシンクライアントシステムについて、図1から図5を参照しながら説明する。
(全体構成)
図1は、第1の実施形態に係るシンクライアントシステムの全体構成を示す図である。
シンクライアントシステムは、ストレージ装置1と、物理サーバ2Aから2Nと、ネットワークと、端末5aから5kとを含む。
(ストレージ装置1の機能構成)
図2は、第1の実施形態に係るストレージ装置1の機能構成を示す図である。
ストレージ装置1は、第1のコントローラ3と、第2のコントローラ4とを備える。
第1のコントローラ3は、個別キャッシュ手段31と、個別記憶部32と、個別キャッシュ手段33と、個別記憶部34と、主キャッシュ手段35と、共有記憶部36とを備える。
第2のコントローラ4は、個別キャッシュ手段41と、個別記憶部42と、個別キャッシュ手段43と、個別記憶部44と、副キャッシュ手段45とを備える。図2と図3に示す個別キャッシュ手段31は、個別処理手段311と、個別キャッシュ312とを備える。同様に、個別キャッシュ手段33は、個別処理手段331と、個別キャッシュ332とを備える。個別キャッシュ手段41は、個別処理手段411と、個別キャッシュ412とを備える。個別キャッシュ手段43は、個別処理手段431と、個別キャッシュ432とを備える。図2と図4に示す主キャッシュ手段35は、主処理手段351と、主キャッシュ352とを備える。副キャッシュ手段45は、副処理手段451と、副キャッシュ452とを備える。
第1の物理サーバ2Aは、仮想PC2A及び仮想PC2Aを備える。第2の物理サーバ2Bは、仮想PC2B及び仮想PC2Bを備える。第1の物理サーバ2A及び第2の物理サーバ2Bは、ストレージ装置1に接続されている。第1の物理サーバ2Aは、第1のコントローラ3に対応する。第2の物理サーバ2Bは、第2のコントローラ4に対応する。
端末5aから5dは、ネットワークを介して、仮想PC2A1、仮想PC2A及び仮想PC2B1、仮想PC2Bにそれぞれ接続されている。端末5aから5dは、仮想PC2A1、仮想PC2A及び仮想PC2B1、仮想PC2Bにそれぞれ一対一で対応する。端末5aから5dは、仮想PC2A1、仮想PC2A及び仮想PC2B1、仮想PC2Bのうち対向して接続される仮想PCに対してライト情報を含むライト要求を送信する。
仮想PC2Aは、対応する端末5aとの間で情報を送受信する。同様に、仮想PC2Aは、対応する端末5bとの間で情報を送受信する。同様に、仮想PC2Bは、対応する端末5cとの間で情報を送受信する。同様に、仮想PC2Bは、対応する端末5dとの間で情報を送受信する。仮想PC2A1、2及び2B1、2は、個別キャッシュ手段31と、個別キャッシュ手段33と、個別キャッシュ手段41と、個別キャッシュ手段43とに一対一でそれぞれ対応する。仮想PC2Aは、個別キャッシュ手段31との間で情報を送受信する。仮想PC2Aは、個別キャッシュ手段33との間で情報を送受信する。仮想PC2Bは、個別キャッシュ手段41との間で情報を送受信する。仮想PC2Bは、個別キャッシュ手段43との間で情報を送受信する。
仮想PC2A1、2及び2B1、2は、仮想サーバ型シンクライアント(VDI:Virtual Desktop Infrastructure)システムにおいて設定されている仮想PCであってもよい。仮想PC2A1、2及び2B1、2を備える第1の物理サーバ2A及び第2の物理サーバ2Bは、公知技術を使用して、ストレージ装置1上に設定されていてもよい。端末5aから5dは、画面転送プロトコル等を使用して、仮想PC2A1、2及び2B1、2に接続してもよい。
図2の第1の物理サーバ2Aは、2つの仮想PC2A1、2を備えているが、1つ以上の任意の数の仮想PCを備えてもよい。第2の物理サーバ2Bも、同様に1つ以上の任意の数の仮想PCを備えてもよい。また、個別キャッシュ手段と個別記憶部の組み合わせも仮想PCの数に応じて2つ以上が各コントローラに配置されてもよく、また一つのコントローラのみに個別キャッシュ手段と個別記憶部の組み合わせが配置されてもよい。更に、主キャッシュ手段、副キャッシュ手段、共有記憶部の3つをセットとして、複数のセットがストレージ装置1内に存在しても良い。
仮想PCと端末は、接続時は、論理的に一対一に対応するように接続する。
個別処理手段311は、個別記憶部32及び主キャッシュ手段35との間で情報を送受信する。個別処理手段311は、個別キャッシュ312に対して情報の書き込み又は読み取りをする。個別キャッシュ312は、個別記憶部32のデータの一部をキャッシュしている。個別記憶部32は、仮想PC2Aによってのみ使用される情報を記録している。
個別処理手段331は、個別記憶部34及び主キャッシュ手段35との間で情報を送受信する。個別処理手段331は、個別キャッシュ332に対して情報の書き込み又は読み取りをする。個別キャッシュ332は、個別記憶部34のデータの一部をキャッシュしている。個別記憶部34は、仮想PC2Aによってのみ使用される情報を記録している。
個別処理手段411は、個別記憶部42及び副キャッシュ手段45との間で情報を送受信する。個別処理手段411は、個別キャッシュ412に対して情報の書き込み又は読み取りをする。個別キャッシュ412は、個別記憶部42のデータの一部をキャッシュしている。個別記憶部42は、仮想PC2Bによってのみ使用される情報を記録している。
個別処理手段431は、個別記憶部44及び副キャッシュ手段45との間で情報を送受信する。個別処理手段431は、個別キャッシュ432に対して情報の書き込み又は読み取りをする。個別キャッシュ432は、個別記憶部44のデータの一部をキャッシュしている。個別記憶部44は、仮想PC2Bによってのみ使用される情報を記録している。
主キャッシュ手段35の主処理手段351は、主キャッシュ352に対して情報の書き込み又は読み取りをする。主処理手段351は、共有記憶部36との間で情報を送受信する。主キャッシュ352は、共有記憶部36のデータの一部をキャッシュしている。
副キャッシュ手段45の副処理手段451は、副キャッシュ452に対して情報の書き込み又は読み取りをする。副処理手段451は、主キャッシュ手段35との間で情報を送受信する。副キャッシュ452、共有記憶部36のデータの一部をキャッシュしている。
共有記憶部36は、仮想PC2A1、2及び2B1、2の中で少なくとも2つの仮想PCによって使用される情報を記録している。共有記憶部36は、ストレージ装置1内部に設けられているが、ストレージ装置1外部に設けられてもよい。
個別記憶部32、個別記憶部34、個別記憶部42、個別記憶部44及び共有記憶部36は、ストレージ装置1に内蔵される大容量記憶装置(不揮発性記憶デバイス)である。例えば、これらの大容量記憶装置は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVMe(Non−Volatile Memory Express)等である。
(ストレージ装置の処理フロー)
図5は、第1の実施形態に係るストレージ装置1のリード要求に対する動作を示すフロー図である。
まず、シンクライアントシステムにおいて第1の物理サーバ2A、第2の物理サーバ2Bは、すべての仮想PC2A1、2及び2B1、2の一斉リブートを行う(ステップS501)。例えば、緊急セキュリティパッチ適用後又はメモリリークのリスク検知時に、ユーザやスクリプトなど外部指示に応答して、仮想PCの一斉リブート指示が、第1の物理サーバ2A、第2の物理サーバ2Bのすべての仮想PC2A1、2及び2B1、2に送信される。
第1の実施形態に係るストレージ装置1の動作として、第2のコントローラ4に対応する仮想PC2B1、2に着目して説明する。第2の物理サーバ2Bの仮想PC2B1、2は、ストレージ装置1から一斉リブートによるリブート指示を同一時間帯に受信する。起動に必要な情報であるリード情報を取得するために、仮想PC2Bは、個別キャッシュ手段41の個別処理手段411にリード要求を送信する。同一時間帯に、仮想PC2Bが取得するリード情報と同一のリード情報を取得するため、仮想PC2Bは、個別キャッシュ手段43の個別処理手段431にリード要求を送信する。
個別処理手段411は、リード要求が指定するリード情報が個別記憶部42に存在するか、共有記憶部36に存在するか判定する(ステップS502)。同様に、個別処理手段431は、リード要求が指定するリード情報が個別記憶部44に存在するか、共有記憶部36に存在するか判定する(ステップS502)。
個別記憶部42にリード要求が指定するリード情報が存在すると判定された場合(ステップS502:Yes)、個別処理手段411は、個別キャッシュ412にリード要求が指定するリード情報が存在するか否かを判定する。具体的には、リード要求が指定するリード情報にハッシュ関数を適用し、ハッシュ値を取得する。取得されたハッシュ値に対応する値が個別キャッシュ412に記録されている場合、個別処理手段411は、個別キャッシュ412にリード要求が指定するリード情報が存在すると判定する。このとき、個別処理手段411は、個別キャッシュ412に記録されたリード情報を仮想PC2Bに送信する(ステップS503)。取得されたハッシュ値に対応する値が個別キャッシュ412に記録されていない場合、個別処理手段411は、個別記憶部42に記録されたリード情報を仮想PC2Bに送信する(ステップS503)。同様に、個別記憶部44にリード要求が指定するリード情報が存在すると判定された場合(ステップS502:Yes)、個別処理手段431は、個別キャッシュ432にリード要求が指定するリード情報が存在するか否かを判定する。具体的には、当該判定処理は、ハッシュ関数を用いた上記処理と同様の処理であってよい。個別処理手段431は、個別キャッシュ432にリード要求が指定するリード情報が存在すると判定したとき、個別処理手段431は、個別キャッシュ432に記録されたリード情報を仮想PC2Bに送信する(ステップS503)。取得されたハッシュ値に対応する値が個別キャッシュ432に記録されていない場合、個別処理手段431は、個別記憶部44に記録されたリード情報を仮想PC2Bに送信する(ステップS503)。
リード要求が指定するリード情報が共有記憶部36に存在する場合(ステップS502:No)、個別処理手段411は、副キャッシュ手段45の副処理手段451にリード要求を送信する。同様に、リード要求が指定するリード情報が共有記憶部36に存在する場合(ステップS502:No)、個別処理手段431は、副キャッシュ手段45の副処理手段451にリード要求を送信する。
副処理手段451は、個別処理手段411から受信したリード要求に対応するリード情報が副キャッシュ452上に存在するか確認する(ステップS504)。具体的には、リード要求が指定するリード情報にハッシュ関数を適用し、ハッシュ値を取得する。取得されたハッシュ値に対応する値が副キャッシュ452に記録されている場合、副処理手段451は、副キャッシュ452にリード要求が指定するリード情報が存在すると判定する(ステップS504:Yes)。このとき、副処理手段451は、リード情報が記録された副キャッシュ452上のアドレスを個別キャッシュ手段41の個別処理手段411に返送する(ステップS508)。個別処理手段411は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)。ここでは、個別処理手段411が、リード情報を格納しているメモリアドレスを参照して、そのアドレスに記録されるリード情報を仮想PC2Bへ送信しているが、副キャッシュ452から個別キャッシュ手段41へリード情報を送信し、一旦、個別キャッシュ412上にバッファリングしたリード情報を仮想PC2Bへ送信し、送信後個別キャッシュ412にバッファリングしたリード情報を削除して、同じリード情報により個別キャッシュ412の記憶容量を圧迫しないようにしても良い。
取得されたハッシュ値に対応する値が副キャッシュ452に記録されていない場合、(ステップS504:No)、副処理手段451は、主キャッシュ手段35の主処理手段351にリード要求を送信する。
同様に、副処理手段451は、個別処理手段431から受信したリード要求に対応するリード情報が副キャッシュ452上に存在するか確認する(ステップS504)。具体的には、リード要求が指定するリード情報にハッシュ関数を適用し、ハッシュ値を取得する。取得されたハッシュ値に対応する値が副キャッシュ452に記録されている場合、副処理手段451は、副キャッシュ452にリード要求が指定するリード情報が存在すると判定する(ステップS504:Yes)。このとき、副処理手段451は、リード情報が記録された副キャッシュ452上のアドレスを個別キャッシュ手段43の個別処理手段431に返送する(ステップS508)。個別処理手段431は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)。ここでは、個別処理手段431が、リード情報を格納しているメモリアドレスを参照して、そのアドレスに記録されるリード情報を仮想PC2Bへ送信しているが、副キャッシュ452から個別キャッシュ手段43へリード情報を送信し、一旦、個別キャッシュ432上にバッファリングしたリード情報を仮想PC2Bへ送信し、送信後個別キャッシュ432にバッファリングしたリード情報を削除して、同じリード情報により個別キャッシュ432の記憶容量を圧迫しないようにしても良い。
個別処理手段431から受信したリード要求についても同様に、ハッシュ値に対応する値が副キャッシュ452に記録されていないとする(ステップS504:No)。このとき、副処理手段451は、主キャッシュ手段35の主処理手段351にリード要求を送信する。
主処理手段351は、個別処理手段411を経由したリード要求を受信する。同一時間帯に、主処理手段351は、個別処理手段431を経由したリード要求を受信する。
主処理手段351は、主キャッシュ352上にリード要求に対応するリード情報が存在するか確認する(ステップS505)。具体的には、リード要求が指定するリード情報にハッシュ関数を適用し、ハッシュ値を取得する。取得されたハッシュ値に対応する値が主キャッシュ352に記録されている場合、主処理手段351は、主キャッシュ352にリード要求が指定するリード情報が存在すると判定する(ステップS505:Yes)。
主キャッシュ352上にリード情報が存在する場合(ステップS505:Yes)、主処理手段351は、主キャッシュ352上のリード情報を副キャッシュ手段45にリード情報を送信する(ステップS507)。副処理手段451は、送信されたリード情報を副キャッシュ452に記録する。その後、副処理手段451は、リード情報が記録された副キャッシュ452上のアドレスを個別キャッシュ手段41の個別処理手段411と、個別キャッシュ手段43の個別処理手段431とにそれぞれ返送する(ステップS508)。個別処理手段411は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)。同様に、個別処理手段431は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)。ここでは、個別処理手段411が、リード情報を格納しているメモリアドレスを参照して、そのアドレスに記録されるリード情報を仮想PC2Bへ送信しているが、副キャッシュ452から個別キャッシュ手段41へリード情報を送信し、一旦、個別キャッシュ412上にバッファリングしたリード情報を仮想PC2Bへ送信し、送信後個別キャッシュ412にバッファリングしたリード情報を削除して、同じリード情報により個別キャッシュ412の記憶容量を圧迫しないようにしても良い。同様に、個別処理手段431が、リード情報を格納しているメモリアドレスを参照して、そのアドレスに記録されるリード情報を仮想PC2B2へ送信しているが、副キャッシュ452から個別キャッシュ手段43へリード情報を送信し、一旦、個別キャッシュ432上にバッファリングしたリード情報を仮想PC2B2へ送信し、送信後個別キャッシュ432にバッファリングしたリード情報を削除して、同じリード情報により個別キャッシュ432の記憶容量を圧迫しないようにしても良い。
主キャッシュ352上にリード情報が存在しない場合(ステップS505:No)、主処理手段351は、共有記憶部36からリード情報を読み出す(ステップS506)。主処理手段351は、読み出したリード情報を副キャッシュ手段45に送信する(ステップS507)。副処理手段451は、送信されたリード情報を副キャッシュ452に記録する。その後、副処理手段451は、リード情報が記録された副キャッシュ452上のアドレスを個別キャッシュ手段41の個別処理手段411と、個別キャッシュ手段43の個別処理手段431とにそれぞれ返送する(ステップS508)。個別処理手段411は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)。同様に、個別処理手段431は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)。ここでは、個別処理手段411が、リード情報を格納しているメモリアドレスを参照して、そのアドレスに記録されるリード情報を仮想PC2Bへ送信しているが、副キャッシュ452から個別キャッシュ手段41へリード情報を送信し、一旦、個別キャッシュ412上にバッファリングしたリード情報を仮想PC2Bへ送信し、送信後個別キャッシュ412にバッファリングしたリード情報を削除して、同じリード情報により個別キャッシュ412の記憶容量を圧迫しないようにしても良い。同様に、個別処理手段431が、リード情報を格納しているメモリアドレスを参照して、そのアドレスに記録されるリード情報を仮想PC2B2へ送信しているが、副キャッシュ452から個別キャッシュ手段43へリード情報を送信し、一旦、個別キャッシュ432上にバッファリングしたリード情報を仮想PC2B2へ送信し、送信後個別キャッシュ432にバッファリングしたリード情報を削除して、同じリード情報により個別キャッシュ432の記憶容量を圧迫しないようにしても良い。
以上のとおり、シンクライアントシステムの物理サーバが仮想PCの一斉リブート処理を開始してから、仮想PCがリード情報を受信するまでの処理内容を説明した。
一斉リブートされる仮想PCが、2つの仮想PC2B1、2である場合について説明した。しかしながら、第2のコントローラ4について3つ以上の仮想PCが設定されている場合、第2のコントローラ4に対応する当該3つ以上の仮想PCのみが一斉リブートされてもよい。
リード要求が、一斉リブート動作に基づくリード要求である場合について説明した。しかしながら、リード要求は、他の動作に基づくリード要求であってもよい。
リード要求に対するリード情報が個別キャッシュ412、個別キャッシュ432、副キャッシュ452、又は主キャッシュ352に存在するか否かの判定が、それぞれのキャッシュ手段で個別に行われる場合について説明した。しかしながら、個別処理手段411又は個別処理手段431で計算されたハッシュ値は、副キャッシュ手段45及び主キャッシュ手段35に送信されて、副キャッシュ手段45及び主キャッシュ手段35におけるキャッシュ判定に使用されてもよい。
主処理手段351は、副処理手段451から同一時間帯に2つのリード要求を受信する場合について説明した。しかしながら、第2のコントローラ4について3つ以上の仮想PCが設定されている場合、当該3つ以上の仮想PCからリード要求を受信した場合にのみ同様の動作が行われてもよい。
副処理手段451からの2つのリード要求が、同一時間帯に主処理手段351によって受信される場合について説明した。ここで、同一時間帯の長さは、シンクライアントシステム設計時に予め設定されてもよく、または、適宜変更されてもよい。
主処理手段351によって受信される2つのリード要求が同一時間帯でない場合、副キャッシュ手段45は副キャッシュ452にリード情報を記録しなくてもよい。すなわち、主処理手段351は、リード情報が記録された主キャッシュ352上のアドレスを個別処理手段411又は個別処理手段431に返送してもよい。
副キャッシュ手段は、共有記憶部36の情報を、主キャッシュ手段35を介して取得すると説明した。しかしながら、副キャッシュ手段45は、共有記憶部36の情報を、主キャッシュ手段35を介さず共有記憶部36から直接取得してもよい。
上記の説明では、個別処理手段411は、ステップS508の後、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する(ステップS509)と説明した。すなわち、個別処理手段411は、個別キャッシュ412にリード情報を記録していない。しかしながら、個別処理手段411は、リード情報が記録された副キャッシュ452上のアドレスを参照して、個別キャッシュ412にリード情報を記録してもよい。記録後、個別処理手段411は、個別キャッシュ412上のリード情報を仮想PC2Bに送信してもよい。
(作用、効果)
上述したように、すなわち、第1の実施形態に係るストレージ装置1は、共有記憶部36と、第1のコントローラ3と、第2のコントローラ4とを備える。共有記憶部36は、通信接続する複数の端末5aから5dに対向して物理サーバにおいて立ち上げられた複数の仮想PC2A1、2及び2B1、2が共通して利用する情報を記憶する。第1のコントローラ3は、仮想PC2A1、2それぞれが個別に利用する情報を記憶する個別記憶部32及び34と、共有記憶部36の記憶する情報を所定のタイミングで読み出して記録する主キャッシュ手段35と、を備える。また、第1のコントローラ3は、個別記憶部32及び34と、主キャッシュ手段35と、共有記憶部36と、第2のコントローラ4の副キャッシュ手段45と、対応する仮想PC2A1、2との間で情報の入出力処理を行う。第2のコントローラ4は、第1のコントローラ3に対応して接続される仮想PC2A1、2以外の複数の仮想PC2B1、2それぞれが個別に利用する情報を記憶する個別記憶部42及び44を備える。また、第2のコントローラ4は、共有記憶部36の記憶する情報を所定のタイミングで読み出して記録する副キャッシュ手段45を備える。また、第2のコントローラ4は、個別記憶部42及び44と、副キャッシュ手段45と、主キャッシュ手段35と、対応する複数の仮想PC2B1、2との間で情報の入出力処理を行う。
また、例えば、第1のコントローラ3は、第2のコントローラ4に対応する複数の仮想PC2B1、2から共有記憶部36の記憶する情報に対するリード要求があった場合、当該情報を第2のコントローラ4に対して返信する。また、第2のコントローラ4は、当該情報を副キャッシュ手段45に記録し、記録した情報を第2のコントローラ4に対応する複数の仮想PC2B1、2に返信する。
これにより、第1の実施形態では、個別キャッシュ手段41、副キャッシュ手段45、主キャッシュ手段35が連携して、キャッシュ上の情報を管理する。そして、仮想PCの一斉リブートの時の同一情報の読出しによる主キャッシュ手段35に対する負荷が、副キャッシュ手段45に分散される。それによって、ストレージ装置1全体の処理能力を向上させることが可能となる。
(第1の実施形態の変形例)
以上、第1の実施形態に係るストレージ装置1について詳細に説明したが、ストレージ装置1の具体的な態様は、上述のものに限定されることはなく、要旨を逸脱しない範囲内において種々の設計変更等を加えることは可能である。
(第1の実施形態の第1の変形例)
例えば、第1の実施形態の第1の変形例として、副キャッシュ手段45が、共有記憶部36のリード情報を副キャッシュ452に記録する。この後、第2のコントローラ4内の仮想PC2B1、2以外の仮想PC2Bは、対応する個別キャッシュ手段に対して、記録されたリード情報についての新たなリード要求を送信する。このとき、仮想PC2Bに対応する個別キャッシュ手段の個別処理手段は、副キャッシュ手段45の副処理手段451にリード要求を送信する。そして、副処理手段451は、副キャッシュ452に記録されたリード情報に対応するアドレスを、仮想PC2Bに対応する個別キャッシュ手段に送信する。仮想PC2Bに対応する個別キャッシュ手段の個別処理手段は、副キャッシュ452上のアドレスを参照して、リード情報を仮想PC2Bに送信する。
上述したように、すなわち、第2のコントローラ4は、対応する仮想PC2Bから共有記憶部36の記憶する情報の新たなリード要求を取得した場合には、副キャッシュ手段45に記憶する共有記憶部36の記憶する情報を、リード要求に対して返信する。
これによって、仮想PC2Bに対応する個別キャッシュ手段がリード要求を副キャッシュ手段45に送信したとき、既にリード要求に対応するリード情報は副キャッシュ452に記録されている。従って、リード要求に対するキャッシュヒット率を向上させることができる。
<第2の実施形態>
以下、第2の実施形態に係るストレージ装置1ついて、図2及び図6を参照しながら説明する。
(ストレージ装置1の処理フロー)
図6は、第2の実施形態に係るストレージ装置1のリード要求に対する動作を示すフロー図である。
図6に示す第2の実施形態に係るストレージ装置1の処理フローは、仮想PC2B1、2から予め規定された連続する情報についてリード要求があったときの処理フローである。この処理フローは、ステップS601からステップS602が更に追加されている点で、図5に示す第1の実施形態に係るストレージ装置1の処理フローと相違する。第2の実施形態に係るストレージ装置1のステップS601からステップS602以外の処理は、第1の実施形態に係るストレージ装置1の処理と同様であるので、以下では、相違する処理について説明する。
図6に示すように、まず、第1の実施形態と同様にステップS501及びステップS502の処理が行われる。
続いて、個別記憶部42にリード要求が指定するリード情報が存在すると判定された場合(ステップS502:Yes)、第1の実施形態と同様にステップ503の処理が行われる。個別記憶部44にリード要求が指定するリード情報が存在すると判定された場合(ステップS502:Yes)も同様に、第1の実施形態のステップ503の処理が行われる。
リード要求が指定するリード情報が共有記憶部36に存在する場合(ステップS502:No)、個別処理手段411及び個別処理手段431は、リード要求が予め規定された連続する情報に対するリード要求か判定する(ステップS601)。例えば、過去に受信したリード要求が、情報A、B、C、Dの順番で要求するためのリード要求であったとする。このとき、この順番でリード要求されたことが個別キャッシュ412及び個別キャッシュ432に記録されている。この場合、個別処理手段411及び431は、後のリード要求において、情報A、Bについてのリード要求を受信した場合、その後に情報C、Dのリード要求を受信する可能性があることを判定する。つまり、個別処理手段411及び431は、情報A、Bについてのリード要求を受信した場合、個別キャッシュ412及び432をそれぞれ参照して、当該リード要求が、予め規定された連続する情報A、B、C、Dに対するリード要求であると判定する。
予め規定された連続する情報に対するリード要求であると判定された場合(ステップS601:Yes)、個別処理手段411及び個別処理手段431は、それぞれ先読み要求を副キャッシュ手段45に送信する(ステップS602)。例えば、リード要求は、予め規定された連続する情報A、B、C、Dに対するリード要求である。このとき、個別処理手段411及び個別処理手段431は、リード要求が、情報A、Bについての読み出し要求であると認識した時点で、情報Cの一つ後のリード要求として指定される可能性のある情報Dについてのリード要求、すなわち、情報Dについての先読み要求を副キャッシュ手段45に送信する。なお、個別処理手段411及び個別処理手段431は、情報Dのリード要求の前に、情報Cについてのリード要求、すなわち、情報Cについての先読み要求を副キャッシュ手段45に送信してもよい。
図6に示すように、予め規定された連続する情報に対するリード要求でないと判定された場合(ステップS601:No)又はステップ602の次に、第1の実施形態と同様にステップS504からS509の処理が行われ、図6に示す処理フローが完了する。
以上のとおり、仮想PC2B1、2から予め規定された連続する情報についてリード要求があったときの処理フローについて説明した。
予め規定された連続する情報か否かの判定は、個別キャッシュ412に記録された過去に受信したリード要求の情報を用いる場合について説明した。しかしながら、当該判定は、別の判定方法を用いて行われてもよい。
(作用、効果)
上述したように、すなわち、第2の実施形態に係るストレージ装置1の第2のコントローラ4は、対応する仮想PCから共有記憶部36の記憶する情報の新たなリード要求であって予め規定された連続するリード要求を取得する。この場合には、第2のコントローラ4は、当該連続するリード要求のうち未だ取得していないリード要求に対応する情報を共有記憶部から先読みして副キャッシュ手段に記録する。
これにより、予め規定された連続する情報についてのリード要求である場合に、先読みすべき情報が副キャッシュに迅速に記録される。他の個別キャッシュ手段が、当該先読みすべき情報について副キャッシュ手段にリード要求を送信したときには既にリード要求に対応するリード情報は記録されている。従って、予め規定された連続する情報について先読みが行われることによって、他の仮想PCからのリード要求に対するキャッシュヒット率を向上させることができる。
<第3の実施形態>
以下、第3の実施形態に係るストレージ装置1ついて、図2及び図7を参照しながら説明する。
(ストレージ装置1の処理フロー)
図7は、第3の実施形態に係るストレージ装置1のリード要求に対する動作を示すフロー図である。
図7に示す第3の実施形態に係るストレージ装置1の処理フローは、仮想PC2A1、2がリード要求を送信するときの処理フローである。この処理フローのステップS501は、第1の実施形態に係るストレージ装置1の処理フローのステップS501と同様である。
まず、各物理サーバはストレージ装置1の要求に基づいてすべての仮想PC2A1、2及び2B1、2の一斉リブートを行う(ステップS501)。この時、仮想PC2A1、2は、一斉リブートによるリブート指示を同一時間帯に受信する。起動に必要な情報であるリード情報を取得するために、仮想PC2Aは、個別キャッシュ手段31の個別処理手段311にリード要求を送信する。同一時間帯に、仮想PC2Aが取得するリード情報と同一のリード情報を取得するため、仮想PC2Aは、個別キャッシュ手段33の個別処理手段331にリード要求を送信する。
個別処理手段311は、リード要求が指定するリード情報が個別記憶部32に存在するか、共有記憶部36に存在するか判定する(ステップS701)。
同様に、個別処理手段331は、リード要求が指定するリード情報が個別記憶部34に存在するか、共有記憶部36に存在するか判定する(ステップS701)。
個別記憶部32にリード要求が指定するリード情報が存在すると判定された場合(ステップS701:Yes)、個別処理手段311は、個別キャッシュ312にリード要求が指定するリード情報が存在するか否かを判定する。具体的には、リード要求が指定するリード情報にハッシュ関数を適用し、ハッシュ値を取得する。取得されたハッシュ値に対応する値が個別キャッシュ312に記録されている場合、個別処理手段311は、個別キャッシュ312にリード要求が指定するリード情報が存在すると判定する。このとき、個別処理手段311は、個別キャッシュ312に記録されたリード情報を仮想PC2Aに送信する(ステップS702)。取得されたハッシュ値に対応する値が個別キャッシュ312に記録されていない場合、個別処理手段311は、個別記憶部32に記録されたリード情報を仮想PC2Aに送信する(ステップS702)。同様に、個別記憶部34にリード要求が指定するリード情報が存在すると判定された場合(ステップS701:Yes)、個別処理手段331は、個別キャッシュ332にリード要求が指定するリード情報が存在するか否かを判定する。具体的には、当該判定処理は、ハッシュ関数を用いた上記処理と同様の処理であってよい。個別処理手段331は、個別キャッシュ332にリード要求が指定するリード情報が存在すると判定したとき、個別処理手段331は、個別キャッシュ332に記録されたリード情報を仮想PC2Aに送信する(ステップS702)。取得されたハッシュ値に対応する値が個別キャッシュ332に記録されていない場合、個別処理手段331は、個別記憶部34に記録されたリード情報を仮想PC2Aに送信する(ステップS702)。
リード要求が指定するリード情報が共有記憶部36に存在する場合(ステップS701:No)、個別処理手段311は、主キャッシュ手段35の主処理手段351にリード要求を送信する。同様に、リード要求が指定するリード情報が共有記憶部36に存在する場合(ステップS701:No)、個別処理手段331は、主キャッシュ手段35の主処理手段351にリード要求を送信する。
主処理手段351は、個別処理手段311を経由したリード要求を受信する。同一時間帯に、主処理手段351は、個別処理手段331を経由したリード要求を受信する。ここで、同一時間帯の長さは、シンクライアントシステム設計時に予め設定されてもよく、または、適宜変更されてもよい。
主処理手段351は、主キャッシュ352上にリード要求に対応するリード情報が存在するか確認する(ステップS703)。具体的には、リード要求が指定するリード情報にハッシュ関数を適用し、ハッシュ値を取得する。取得されたハッシュ値に対応する値が主キャッシュ352に記録されている場合、主処理手段351は、主キャッシュ352にリード要求が指定するリード情報が存在すると判定する(ステップS703:Yes)。このとき、主処理手段351は、副キャッシュ手段45にリード情報を送信する(ステップS705)。副処理手段451は、送信されたリード情報を副キャッシュ452に記録する。
取得されたハッシュ値に対応する値が主キャッシュ352に記録されていない場合、(ステップS703:No)、主処理手段351は、共有記憶部36からリード情報を読み出す(ステップS704)。主処理手段351は、読み出したリード情報を主キャッシュ352に記録するとともに、副キャッシュ手段45に送信する(ステップS705)。副処理手段451は、送信されたリード情報を副キャッシュ452に記録する。
主処理手段351は、リード情報が記録された主キャッシュ352上のアドレスを個別キャッシュ手段31の個別処理手段311及び個別キャッシュ手段33の個別処理手段331に返送する(ステップS706)。個別処理手段311は、主キャッシュ352上のアドレスを参照して、リード情報を仮想PC2Aに送信する(ステップS707)。同様に、個別処理手段331は、主キャッシュ352上のアドレスを参照して、リード情報を仮想PC2Aに送信する(ステップS707)。
以上のとおり、シンクライアントシステムの物理サーバが仮想PCの一斉リブート処理を開始してから、仮想PC2A1、2がリード情報を受信するまでの処理内容を説明した。
(作用、効果)
上述したように、すなわち、第3の実施形態に係るストレージ装置1の第1のコントローラ3は、対応する仮想PCから共有記憶部36の記憶する情報の新たなリード要求を取得する。この場合に、第1のコントローラ3は、第2のコントローラ4に当該リード要求に対応する情報を送信する。そして、第2のコントローラ4は、受信したリード情報を副キャッシュ452に記録する。
これにより、副キャッシュ手段45から要求される情報は、予め第2のコントローラ4の副キャッシュ452に記録される。従って、キャッシュヒット率を向上させることができ、ストレージ装置の性能を更に向上させることができる。
<第4の実施形態>
以下、第4の実施形態に係るストレージ装置1ついて、図2及び図8を参照しながら説明する。
(ストレージ装置1の処理フロー)
図8は、第4の実施形態に係るストレージ装置のライト要求に対する動作を示すフロー図である。以下では、仮想PC2Aがライト要求を送信した場合に着目して説明する。
まず、端末5aのユーザの操作によって、端末5aは、仮想PC2Aに、書き込むべき情報であるライト情報を含むライト要求を送信する(ステップS801)。仮想PC2Aは、個別キャッシュ手段31にライト要求を送信する。個別キャッシュ手段31の個別処理手段311は、ライト要求を受信する。個別処理手段311は、受信されたライト要求に含まれるライト情報が、共有記憶部36に記録された情報と重複していないか確認する。
具体的には、個別処理手段311は、ライト情報の一部又はすべてにハッシュ関数を適用しハッシュ値を計算する。個別処理手段311は、計算されたハッシュ値を用いて、ライト情報の一部又はすべてが、共有記憶部36に記録された情報と重複していないか判定する(ステップS802)。
重複すると判定された場合(ステップS802:Yes)、個別処理手段311は、共有記憶部36の重複したデータへのリンク情報を個別記憶部32に記録する(ステップS804)。また、個別処理手段311は、当該リンク情報を主処理手段351に送信する。主処理手段351は、受信したリンク情報を主キャッシュ352に記録する。また、主処理手段351は、当該リンク情報を共有記憶部36に記録する。
重複しないと判定されたとき(ステップS802:No)、個別処理手段311は、ライト情報を個別記憶部32に記録する(ステップS803)。
以上のとおり、ストレージ装置1が端末5Aからライト要求を受信してから、ライト要求に応答する処理が終了するまでの処理内容を説明した。
上記の説明では、端末5aがライト要求を送信するときの処理について説明した。しかしながら、端末5a以外の端末5bから5dがライト要求を送信した場合についても同様の処理が行われてもよい。
上記の説明におけるハッシュ関数を用いたデータ重複検索方法については、特許文献5に示されるハッシュ関数が用いられてもよい。
また、端末5Aが、既に共有記憶部36に記録されている情報を変更又は上書きするためのライト要求を送信したときの処理について説明する。
端末5aが、既に共有記憶部36に記録されている情報を変更又は上書きするためのライト情報を含むライト要求を仮想PC2Aに送信する。仮想PC2Aは、ライト要求を個別キャッシュ手段31に送信する。個別キャッシュ手段31の個別処理手段311は、個別記憶部32にライト情報を記録する。個別処理手段311は、主キャッシュ手段35に、重複した情報へのリンク情報の削除要求を送信する。主キャッシュ手段35の主処理手段351は、指定された個別記録部のリンク情報を削除する。もし、リンクされた個別記録部が1つも存在しなければ、ライト要求に対応する重複データを、共有記憶部36から削除する。これによって、共有記憶部の不要となったデータ削除でき、不要データの増加を防ぐことができる。
なお、主キャッシュ手段35が、共有記憶部36に記録されている情報を変更又は上書きするためのライト要求を受信したときに、共有記憶部36上に記録された変更又は上書きの対象となった情報を削除すると説明した。しかしながら、変更又は上書きの対象となった情報を削除する代わりに、リンク先が1つである場合に、主キャッシュ手段35は、当該情報を、当該リンク先の個別記録部に移動させてもよい。これによって、当該情報はいずれかの個別記憶部において管理される。従って、データの一貫性が保たれる。
図9は、少なくとも1つの実施形態に係るストレージ装置1の最小構成を示す図である。以下に、それぞれの構成要素について説明する。
ストレージ装置1は、共有記憶部36と、第1のコントローラ3と、第2のコントローラ4とを備える。共有記憶部36は、通信接続する複数の端末5a、5c、及び5dに対向して物理サーバにおいて立ち上げられた複数の仮想PC2A及び2B1、2が共通して利用する情報を記憶する。第1のコントローラ3は、仮想PC2Aが個別に利用する情報を記憶する個別記憶部32と、共有記憶部36の記憶する情報を所定のタイミングで読み出して記録する主キャッシュ手段35と、を備える。また、第1のコントローラ3は、個別記憶部32と、主キャッシュ手段35と、共有記憶部36と、第2のコントローラの副キャッシュ手段45と、対応する仮想PC2Aとの間で情報の入出力処理を行う。第2のコントローラ4は、第1のコントローラ3に対応して接続される仮想PC2A以外の複数の仮想PC2B1、2それぞれが個別に利用する情報を記憶する個別記憶部42及び44を備える。また、第2のコントローラ4は、共有記憶部36の記憶する情報を所定のタイミングで読み出して記録する副キャッシュ手段45を備える。また、第2のコントローラ4は、個別記憶部42及び44と、副キャッシュ手段45と、主キャッシュ手段35と、対応する複数の仮想PC2B1、2との間で情報の入出力処理を行う。
これにより、個別キャッシュ手段41、副キャッシュ手段45、主キャッシュ手段35が連携して、キャッシュ上の情報を管理する。そして、仮想PCの一斉リブートの時の同一情報の読出しによる主キャッシュ手段35に対する負荷が副キャッシュ手段45に分散される。それによって、ストレージ装置1全体の処理能力を向上させることが可能となる。
上述したストレージ装置1は内部に、コンピュータシステムを有している。そして、上述したストレージ装置1の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
具体的には、上記プログラムは、ストレージ装置に、共有記憶部に通信接続する複数の端末に対向して立ち上げた複数の仮想PCが共通して利用する情報を記録する共有情報記録手段と、個別記憶部に仮想PCそれぞれが個別に利用する情報を記録し、主キャッシュ手段に共有記憶部の記憶する情報を所定のタイミングで読み出して記録し、個別記憶部と主キャッシュ手段と、共有記憶部と、第2のコントロール手段の副キャッシュ手段と、対応する仮想PCとの間で情報の入出力処理を行う第1のコントロール手段と、個別記憶部に第1のコントロール手段に対応する仮想PC以外の複数の仮想PCそれぞれが個別に利用する情報を記録し、副キャッシュ手段に共有記憶部の記憶する情報を所定のタイミングで読み出して記録し、対応する個別記憶部と、副キャッシュ手段と、主キャッシュ手段と、対応する複数の仮想PCとの間で情報の入出力処理を行う第2のコントロール手段と、を実行させるプログラムであってもよい。
1 ストレージ装置
2A 第1の物理サーバ
2A1、2 仮想PC
2B 第2の物理サーバ
2B1、2 仮想PC
3 第1のコントローラ
31 個別キャッシュ手段
311 個別処理手段
312 個別キャッシュ
32 個別記憶部
33 個別キャッシュ手段
331 個別処理手段
332 個別キャッシュ
34 個別記憶部
35 主キャッシュ手段
351 主処理手段
352 主キャッシュ
36 共有記憶部
4 第2のコントローラ
41 個別キャッシュ手段
411 個別処理手段
412 個別キャッシュ
42 個別記憶部
43 個別キャッシュ手段
431 個別処理手段
432 個別キャッシュ
44 個別記憶部
45 副キャッシュ手段
451 副処理手段
452 副キャッシュ
5a〜d 端末

Claims (7)

  1. 通信接続する複数の端末にそれぞれ一対一で対応して立ち上げられた複数の仮想PCが共通して利用する情報を記憶する共有記憶部と、
    少なくとも1つの仮想PCに対応する第1のコントローラであって、前記少なくとも1つの仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する主キャッシュ手段と、を備え、前記個別記憶部と、前記主キャッシュ手段と、前記共有記憶部と、第2のコントローラの副キャッシュ手段と、前記第1のコントローラに対応する前記少なくとも1つの仮想PCとの間で情報の入出力処理を行う第1のコントローラと、
    前記第1のコントローラに対応する前記少なくとも1つの仮想PC以外の複数の仮想PCに対応する前記第2のコントローラであって、前記第2のコントローラに対応する複数の前記仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する前記副キャッシュ手段と、を備え、前記第2のコントローラの前記個別記憶部と、前記副キャッシュ手段と、前記主キャッシュ手段と、前記第2のコントローラに対応する複数の前記仮想PCとの間で情報の入出力処理を行う、前記第2のコントローラと、
    を備え
    前記第1のコントローラは、
    前記第2のコントローラに対応する複数の前記仮想PCから前記共有記憶部の記憶する同一情報に対するリード要求が一斉にあった場合、前記同一情報を前記第2のコントローラに対して返信し、
    前記第2のコントローラは、
    前記同一情報を前記副キャッシュ手段に記録し、前記副キャッシュ手段に記録した前記同一情報を前記第2のコントローラに対応する複数の前記仮想PCそれぞれに返信する
    ストレージ装置。
  2. 前記第2のコントローラは、
    対応する前記仮想PCから前記共有記憶部の記憶する情報の新たなリード要求を取得した場合には、前記副キャッシュ手段に記憶する前記共有記憶部の記憶する情報を、前記リード要求に対して返信することを特徴とする
    請求項1に記載のストレージ装置。
  3. 前記第2のコントローラは、
    対応する前記仮想PCから前記共有記憶部の記憶する情報の新たなリード要求であって予め規定された連続する前記リード要求を取得した場合には、当該連続するリード要求のうち未だ取得していないリード要求に対応する情報を前記共有記憶部から先読みして前記副キャッシュ手段に記録することを特徴とする
    請求項1または請求項2に記載のストレージ装置。
  4. 前記第1のコントローラは、
    対応する前記仮想PCから前記共有記憶部の記憶する情報の新たなリード要求を取得し、当該第2のコントローラに先読みを含む当該リード要求に対応する情報を送信することを特徴とする
    請求項1から請求項の何れか一項に記載のストレージ装置。
  5. 前記第1のコントローラ及び第2のコントローラの各々は、
    対応する前記仮想PCから前記共有記憶部の記憶する情報の新たなリード要求を取得した場合に、前記主キャッシュ手段もしくは前記副キャッシュ手段に記憶する前記共有記憶部の情報を、前記主キャッシュ手段もしくは副キャッシュ手段から個別キャッシュ手段にコピーし、その情報を前記リード要求に対応して返信し、当該返信後に、当該情報を個別キャッシュ手段から削除することを特徴とする
    請求項1から請求項の何れか一項に記載のストレージ装置。
  6. ストレージ装置の共有記憶部が、通信接続する複数の端末にそれぞれ一対一で対応して立ち上げられた複数の仮想PCが共通して利用する情報を記憶し、
    少なくとも1つの仮想PCに対応する、前記ストレージ装置の第1のコントローラが、前記少なくとも1つの仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する主キャッシュ手段と、を備え、前記個別記憶部と、前記主キャッシュ手段と、前記共有記憶部と、第2のコントローラの副キャッシュ手段と、前記第1のコントローラに対応する前記少なくとも1つの仮想PCとの間で情報の入出力処理を行い、
    記第1のコントローラに対応する前記少なくとも1つの仮想PC以外の複数の仮想PCに対応する、前記ストレージ装置の前記第2のコントローラが、前記第2のコントローラに対応する複数の前記仮想PCそれぞれが個別に利用する情報を記憶する個別記憶部と、前記共有記憶部の記憶する情報を所定のタイミングで読み出して記録する前記副キャッシュ手段と、を備え、前記第2のコントローラの前記個別記憶部と、前記副キャッシュ手段と、前記主キャッシュ手段と、前記第2のコントローラに対応する複数の前記仮想PCとの間で情報の入出力処理を行い、
    前記第2のコントローラに対応する複数の前記仮想PCから前記共有記憶部の記憶する同一情報に対するリード要求が一斉にあった場合、前記第1のコントローラが、前記同一情報を前記第2のコントローラに対して返信し、前記第2のコントローラが、前記同一情報を前記副キャッシュ手段に記録し、前記副キャッシュ手段に記録した前記同一情報を前記第2のコントローラに対応する複数の前記仮想PCそれぞれに返信する
    ストレージ管理方法。
  7. ストレージ装置が備えるコンピュータを
    共有記憶部に通信接続する複数の端末にそれぞれ一対一で対応して立ち上げられた複数の仮想PCが共通して利用する情報を前記共有記憶部に記録する共有情報記録手段と、
    少なくとも1つの仮想PCに対応する第1のコントロール手段であって、前記少なくとも1つの仮想PCそれぞれが個別に利用する情報を個別記憶部に記録し、前記共有記憶部の記憶する情報を所定のタイミングで読み出して主キャッシュ手段に記録し、前記個別記憶部と、前記主キャッシュ手段と、前記共有記憶部と、第2のコントロール手段の副キャッシュ手段と、前記第1のコントロール手段に対応する前記少なくとも1つの仮想PCとの間で情報の入出力処理を行う第1のコントロール手段と、
    記第1のコントロール手段に対応する前記少なくとも1つの仮想PC以外の複数の仮想PCに対応する前記第2のコントロール手段であって、前記第2のコントロール手段に対応する複数の前記仮想PCそれぞれが個別に利用する情報を個別記憶部に記録し、前記共有記憶部の記憶する情報を所定のタイミングで読み出して前記副キャッシュ手段に記録し、前記第2のコントロール手段に対応する前記個別記憶部と、前記副キャッシュ手段と、前記主キャッシュ手段と、前記第2のコントロール手段に対応する複数の前記仮想PCとの間で情報の入出力処理を行う、前記第2のコントロール手段と、
    として機能させ、
    前記第2のコントロール手段に対応する複数の前記仮想PCから前記共有記憶部の記憶する同一情報に対するリード要求が一斉にあった場合、前記第1のコントロール手段が、前記同一情報を前記第2のコントロール手段に対して返信し、前記第2のコントロール手段が、前記同一情報を前記副キャッシュ手段に記録し、前記副キャッシュ手段に記録した前記同一情報を前記第2のコントロール手段に対応する複数の前記仮想PCそれぞれに返信する
    処理を行わせるためのプログラム。
JP2019069138A 2019-03-29 2019-03-29 ストレージ装置、ストレージ管理方法、及びプログラム Active JP6958928B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019069138A JP6958928B2 (ja) 2019-03-29 2019-03-29 ストレージ装置、ストレージ管理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019069138A JP6958928B2 (ja) 2019-03-29 2019-03-29 ストレージ装置、ストレージ管理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020166776A JP2020166776A (ja) 2020-10-08
JP6958928B2 true JP6958928B2 (ja) 2021-11-02

Family

ID=72714938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019069138A Active JP6958928B2 (ja) 2019-03-29 2019-03-29 ストレージ装置、ストレージ管理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6958928B2 (ja)

Also Published As

Publication number Publication date
JP2020166776A (ja) 2020-10-08

Similar Documents

Publication Publication Date Title
US10540323B2 (en) Managing I/O operations in a storage network
JP4405533B2 (ja) キャッシュ方法及びキャッシュ装置
US20200019516A1 (en) Primary Data Storage System with Staged Deduplication
US9804778B2 (en) Preallocating storage space for an application operation in a space efficient volume
CN108064374B (zh) 一种数据访问方法、装置和系统
CN108319430B (zh) 处理io请求的方法及装置
JP2013539119A (ja) オフロード・リードおよびライト
JP6254293B2 (ja) データ重複排除方法及びストレージアレイ
EP2979187B1 (en) Data flush of group table
US11188270B2 (en) Targeted secure data overwrite
WO2016121026A1 (ja) ストレージ装置、計算機システム、及び、方法
US10884849B2 (en) Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data
US10831597B2 (en) Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data
KR20220077208A (ko) 데이터 중복 제거 기능을 갖는 스토리지 장치, 스토리지 장치의 동작 방법, 및 스토리지 서버의 동작 방법
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
US9111598B2 (en) Increased I/O rate for solid state storage
JP2015158910A (ja) ラップ読出しから連続読出しを行うメモリサブシステム
KR101601877B1 (ko) 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법
US10191690B2 (en) Storage system, control device, memory device, data access method, and program recording medium
WO2019086016A1 (zh) 一种数据存储方法及设备
JP6958928B2 (ja) ストレージ装置、ストレージ管理方法、及びプログラム
US11175827B2 (en) Determining tracks to release in a target volume mirrored from a source volume
WO2022073399A1 (zh) 存储节点、存储设备及网络芯片
JP7067256B2 (ja) データ転送装置およびデータ転送方法
JPWO2016088372A1 (ja) アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210806

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: 20210907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210930

R150 Certificate of patent or registration of utility model

Ref document number: 6958928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150