JP2024037487A - 情報記憶装置、制御システムおよび制御方法 - Google Patents
情報記憶装置、制御システムおよび制御方法 Download PDFInfo
- Publication number
- JP2024037487A JP2024037487A JP2022142385A JP2022142385A JP2024037487A JP 2024037487 A JP2024037487 A JP 2024037487A JP 2022142385 A JP2022142385 A JP 2022142385A JP 2022142385 A JP2022142385 A JP 2022142385A JP 2024037487 A JP2024037487 A JP 2024037487A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- storage
- information
- monitoring
- allocation
- 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
- 238000000034 method Methods 0.000 title claims description 79
- 238000012544 monitoring process Methods 0.000 claims abstract description 206
- 238000004891 communication Methods 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000001514 detection method Methods 0.000 claims description 75
- 238000012552 review Methods 0.000 claims description 63
- 238000006243 chemical reaction Methods 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 48
- 238000009795 derivation Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 36
- 230000000875 corresponding effect Effects 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 17
- 239000012634 fragment Substances 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 10
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000002596 correlated effect Effects 0.000 claims description 2
- 230000001276 controlling effect Effects 0.000 claims 2
- 230000006870 function Effects 0.000 abstract description 215
- 238000010586 diagram Methods 0.000 description 56
- 230000005055 memory storage Effects 0.000 description 28
- 238000013519 translation Methods 0.000 description 19
- 230000014616 translation Effects 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 4
- 238000004904 shortening Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000003908 quality control method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】適切なQoS制御を実現する情報記憶装置を提供する。【解決手段】実施形態によれば、情報記憶装置は、記憶部と、制御部と、割当情報保存部と、QoSパラメタ保存部と、監視結果保存部と、を具備する。制御部は、記憶領域の割当要求が受信された場合、記憶部の記憶領域を用いて論理記憶領域を作成して管理する割当管理機能部を備える。割当情報保存部は、論理記憶領域に関する割当情報を保存する。QoSパラメタ保存部は、論理記憶領域を利用するための通信に対して満たすことが期待される品質要求を保存する。制御部は、監視機能部と、QoS制御機能部と、を備える。監視機能部は、記憶部の動作状態および特性と通信状況とを監視し、その結果を監視結果保存部に保存する。QoS制御機能部は、割当情報保存部、QoSパラメタ保存部および監視結果保存部に保存されている情報から情報記憶装置に設定する内部QoSパラメタを導出する。【選択図】図1
Description
本発明の実施形態は、情報記憶装置、制御システムおよび制御方法に関する。
CPU(Central Processing Unit)などのコンピュートリソース群に対してメインメモリ用途などに使えるメモリリソースを提供するメモリ・ストレージプール装置において、各仮想計算機に対するSLA(Service Level Agreement)を受信して当該SLAを満たすようにメモリリソースへのアクセスを制御するメモリ・ストレージプール装置が知られている。
しかし、この技術では、外部ネットワークの品質制御と内部ネットワークの品質制御とが連携しておらず、メモリ・ストレージプール装置を構成するメモリリソースの状態が変化した場合に、想定した品質を満たせない可能性がある。
また、CXLTM(Compute Express LinkTM) 2.0では、メモリ・ストレージプール装置が装置内のメモリモジュールの正常性やヘルスチェックを行い、その結果に基づいて外部に警告を出して理由を通知する仕組みが規定されている。
しかし、この技術では、外部CPU上で動作し障害の影響を受ける可能性があるプログラムを特定して通知することはできず、通知を受けた外部CPU側が詳細なチェックを行う必要がある。
これらの問題により、従来の技術では、メモリ・ストレージプール装置に対するQoS(Quality of Service)制御が十分に行えない可能性がある。
Compute Express LinkTM(CXLTM) Specification Revision 2.0
本発明の実施形態は、適切なQoS制御を実現する情報記憶装置、制御システムおよび制御方法を提供する。
実施形態によれば、情報記憶装置は、1つ以上の演算装置と通信路を介して接続可能である。情報記憶装置は、記憶部と、制御部と、割当情報保存部と、QoSパラメタ保存部と、監視結果保存部と、を具備する。記憶部は、1つ以上の記憶装置を含む。制御部は、記憶部の制御を司り、演算装置から記憶領域の割当要求が受信された場合、1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成し、割当要求の送信元である演算装置と対応づけて管理する割当管理機能部を備える。割当情報保存部は、割当管理機能部によって管理される論理記憶領域に関する1つ以上の記憶装置の記憶領域の割当情報を保存する。QoSパラメタ保存部は、論理記憶領域を利用するための通信に対して通信路で満たすことが期待される品質要求の全部または一部を保存する。監視結果保存部は、記憶部および通信路に対する監視の結果を保持する。制御部は、監視機能部と、QoS制御機能部と、をさらに備える。監視機能部は、記憶部の動作状態、記憶部に含まれる、使用に伴って変化する1つ以上の記憶装置の特性、および通信路の通信状況とを監視し、その結果を監視結果保存部に保存する。QoS制御機能部は、割当情報保存部、QoSパラメタ保存部および監視結果保存部に保存されている情報から情報記憶装置に設定する内部QoSパラメタを導出し、通信路に対する品質要求と関連づけてQoSパラメタ保存部に保存する。
以下、実施の形態について、図面を参照して説明する。
(第1実施形態)
まず、第1実施形態について説明する。第1実施形態は、外部ネットワークに対するQoS制御と、内部ネットワークに対するQoS制御とを連携させる仕組みを具備し、適切なQoS制御を実現するメモリ・ストレージプール装置に関する。
まず、第1実施形態について説明する。第1実施形態は、外部ネットワークに対するQoS制御と、内部ネットワークに対するQoS制御とを連携させる仕組みを具備し、適切なQoS制御を実現するメモリ・ストレージプール装置に関する。
図1は、第1実施形態のメモリ・ストレージプール装置100の一構成例を示す図である。図1では、メモリ・ストレージプール装置100のみを記載しているが、メモリ・ストレージプール装置100は、CPUなどを搭載する外部コンピュート装置と接続し、外部コンピュート装置からメモリの読み書きに関する制御コマンドやストレージI/Oに関する制御コマンドを受け取り、それらに応じた動作を行う。また、図1では、メモリ・ストレージプール装置100の記録デバイスを、「メモリ」で構成する場合と、「ストレージ」で構成する場合とを区別せずに記載しているが、第1実施形態では、どちらか一方で構成されているものとする。外部コンピュート装置は、演算装置と称することもできる。メモリ・ストレージプール装置は、情報記憶装置と称することもできる。外部コンピュート装置と情報記憶装置とがネットワークを介して接続されるシステムは、制御システムと称することもできる。
I/F部101は、メモリ・ストレージプール装置100を外部コンピュート装置に接続するネットワークインタフェースである。例えば、CXL(Compute Express Link)やIEEE 802.3に基づくネットワークなどを利用できる。
制御部102は、メモリ・ストレージプール装置100の動作を司る要素である。制御部102は、割当管理機能部103、監視機能部106、QoS制御機能部107を有する。また、QoS制御機能部107は、導出部108、設定部109を有する。これら各部分は、図1ではハードウェアとして構成された内部的な機能ブロックとして記載しているが、制御部102をプロセッサで実現して、その上で動作するソフトウェアとして実現してよい。また、一部の要素をハードウェア機能ブロックとし、他の一部の要素をソフトウェア機能ブロックとして実現してもよい。
QoS制御機能部107は、メモリ・ストレージプール装置100の外部ネットワークと内部ネットワークとのQoSに係る設定を制御する機能ブロックである。導出部108は、監視機能部106が監視した値やメモリ・ストレージプール装置100の外部から通知された外部QoS情報に基づいて、内部ネットワークのQoS設定を導出する。設定部109は、導出部108が導出した内部QoS設定を反映する機能ブロックである。QoS制御機能部107は、導出部108が導出した内部QoSパラメタを、QoSパラメタ保存部110に保存する。このとき、QoS制御機能部107は、当該内部QoSパラメタを、外部コンピュート装置から通知された、当該内部QoSパラメタの導出に用いた外部QoSパラメタと対応づけて保存する。
監視機能部106は、メモリ・ストレージプール装置100の動作を監視して監視結果保存部111に保存する機能ブロックである。監視対象は、例えば、各メモリ・ストレージモジュール116~119の動作状態や入出力量および応答遅延、スイッチ115の転送量や伝送遅延、I/F101を介した外部コンピュート装置との通信に係る送受信量や送受信スループット、伝送遅延、アドレス変換部113が実行したアドレス変換の回数などである。具体的な監視方法や監視結果の保存については後述する。
割当管理機能部103は、メモリ・ストレージプール装置100の各メモリ・ストレージモジュール116~119の割当容量と外部コンピュート装置で動作するタスク(プログラム)との対応関係を管理する機能ブロックである。割り当て要求は、I/F部101を介して外部コンピュート装置から通知され、割当管理機能部103は、各メモリ・ストレージモジュール116~119の使用状況を踏まえて、要求容量に対応可能なメモリ・ストレージモジュールを決定する。この結果として生成される割当情報を保存する部分が割当情報保存部112である。
アドレス変換部113は、メモリ・ストレージプール装置100に接続する外部コンピュート装置がメモリ・ストレージプール装置100を制御する際の命令に含まれるアドレスを、メモリ・ストレージプール装置100内部の各メモリ・ストレージモジュール116~119のアドレスへ変換する機能を備える。変換の際に用いる情報は、変換情報保存部114に保存されており、アドレス変換部113は、その情報を適宜参照して変換処理を行う。変換情報保存部114の情報は、割当管理機能部103が各メモリ・ストレージモジュール116~119に対する割り当てを変更した際などに適切に更新される。
スイッチ115は、I/F部101とメモリ・ストレージプール装置100の内部にあるメモリ・ストレージモジュール116~119との間を仲介する機能を備える。例えばPCIeスイッチやCXLスイッチなどが利用できる。
メモリ・ストレージモジュール116~119は、DRAM(Dynamic RAM[Random Access Memory])やSCM(Storage Class Memory)のようなLOAD/STORE命令によって小さな単位で読み出しや書き込みが可能なメモリデバイスで構成されたメモリモジュール、もしくはSSD(Solid State Drive)やHDD(Hard Disk Drive)のようなブロックを単位としたREAD/WRITE命令によって読み出しや書き込みが可能なストレージデバイスで構成されたストレージモジュールである。なお、メモリ・ストレージプール装置100がメモリデバイスとストレージデバイスとの両方を備え、I/F部101を介して受信する命令によって、対象となるメモリ・ストレージモジュールを使い分けるようにしても良い。ただし、第1実施形態では簡単のため一方だけを備えるものとして説明する。
図2は、メモリ・ストレージプール装置100に対して領域の確保を要求する動作の流れを示すシーケンス図である。本動作は、I/F部101にて領域確保要求を受信することで開始される(S201)。受信した要求はI/F部101から制御部102の割当管理機能部103に伝えられる(S202)。割当管理機能部103は、その内容を確認して、正当な割当要求であるかどうかを確認する(S203)。ここで、正当な割当要求とは、要求サイズと割当先となる外部コンピュート装置の識別子とを含む要求である。このほかに外部コンピュート装置上で動作するタスクの識別子を含んでいてもよいが、それらは第1実施形態では必須ではない。また、要求する領域に適用すべきQoSに関する情報を含んでいても良い。
正当な要求ではなかった場合、割当管理機能部103は、エラー応答を生成し(S204)、要求元に送信して(S205)、処理を終了する。正当な要求だった場合、割当管理機能部103は、要求内容を割当情報保存部112に保存する。
図3は、割当情報保存部112に保存される情報の一例を示す図である。図3は、7つの要素を含むエントリで構成される割当要求情報の例である。割当要求情報は、各エントリを識別する識別子(No.)を持つ。また、割当要求情報は、領域の確保を要求した装置を特定する「要求元装置」、要求元装置で特定される外部コンピュート装置上で割り当てられた領域を利用することになるタスクを特定する「要求元タスク」、外部コンピュート装置からアクセスを受信した際に割当要求とアクセスとの対応関係を保持するために使用する「タグ」、発生した際に割当を要求した領域の「サイズ」、割り当てた領域に関する情報へのポインタとなる「割当情報エントリ番号」、要求に付随していた外部QoS要求へのポインタとなる「外部QoS要求エントリ番号」、外部QoS要求に基づいてメモリ・ストレージプール装置100内で導出した内部QoSパラメタへのポインタとなる「内部QoSパラメタ番号」を保持している。このうち、識別子であるNo.フィールド以外で必須のフィールドは、「要求元装置」、「サイズ」、「割当情報エントリ番号」の3つのフィールドであり、それ以外のフィールドは必須ではない。
図3のNo.1で示すエントリは、必須情報だけを持つエントリであり、No.2はQoS要求を伴うエントリである。このように、要求元装置が同じであっても、外部QoS要求が含まれていたり、含まれていなかったりする場合があり、割当要求情報は、その各々に対応する。No.3~No.5は要求元タスクの情報を伴う例であり、この場合も、No.5のように外部QoS要求が含まれていなくても、割当管理機能部103は、適切に対応づけを行って割当要求情報を管理する。
図2のシーケンス図に戻る。領域割当に伴ってQoSが要求されていれば、割当管理機能部103は、その要求を外部QoS要求としてQoS制御機能部107経由でQoSパラメタ保存部110に保存する(S204)とともに、内部QoSパラメタの導出をQoS制御機能部107に指示する(S205)。導出が完了すると(S206)、割当管理機能部103は、割当要求情報の対象エントリを更新するとともに、対応する割当情報を更新する(S207)。
図4は、このときに更新される割当情報の一例を示す図である。図4に示される割当情報は、各エントリの識別子(No.)と、4種類の情報を持つフィールドとで構成されている。「要求番号」フィールドは、図3に示した割当要求情報を特定するための情報である。例えば、図3のNo.1のエントリは、割当情報エントリ番号として1を保持しており、図4のNo.1のエントリは、要求番号として1を保持している。「付加機能」フィールドは、割り当てた領域に対して情報を保存するときに、単なる保存ではなく何らかの処理を適用して保存するか否か、保存する場合はどのような処理を行うかが記載されている。例えばNo.3のエントリは、確保した領域に同じ情報を保存するミラーリングを行うこと、No.4のエントリは、消失訂正符号(Erasure Coding)を適用することを示している。
再び、図2のシーケンス図に戻る。割当管理機能部103は、該当する領域を割り当てたメモリ・ストレージモジュール116~119に対して、領域確保を指示する(S208)。さらに、割当管理機能部103は、導出したQoSパラメタを設定するようにQoS制御機能部107に指示する(S209)。QoS制御機能部107は、導出した内部QoSパラメタを、領域を割り当てたメモリ・ストレージモジュール116~119やスイッチ115(図2のシーケンス図では図示せず)に設定し(S210)、割当管理機能部103に設定完了を通知する(S211)。割当管理機能部103は、割り当て完了を示す応答を生成して送信する(S212、S213)。
なお、領域割当に伴ってQoSが要求されていない場合、割当管理機能部103は、最も優先度が低い(ベストエフォートの)QoS要求を含むものとして、前述の動作を行ってもよいし、QoS機能に係る処理をスキップして実行するようにしてもよい。
図5A、5Bは、前述の領域確保処理において、当該領域を使った読み書きに対するQoSを要求する動作の流れを詳細に示したものである。なお、図2で説明した一部の動作は省略している。本動作は、I/F部101にて領域確保要求を受信することで開始される(S501)。受信した要求はI/F部101から制御部102の割当管理機能部103に伝えられる。割当管理機能部103は、その内容を確認して、領域割当に伴ってQoSが要求されていれば、その要求を外部QoS要求としてQoSパラメタ保存部110に保存する(S503)。以降、外部QoSが要求されているものとして説明する。外部QoSが要求されていない場合には、割当管理機能部103は、領域確保指示(S510)だけを実行する。
外部QoSが要求されている場合、割当管理機能部103は、内部QoSパラメタの導出をQoS制御機能部107の導出部108に対して指示する(S504)。導出部108は、内部QoSパラメタ導出指示を受信すると、S503でQoSパラメタ保存部110に保存された外部QoS要求を読み出す(S505)。また、導出部108は、監視結果保存部111に保存されている特性情報を読み出す(S506)。この特性情報には、メモリ・ストレージモジュール116~119およびスイッチ115の使用状況(総入出力量・要求数、単位時間あたりの入出力量・要求数、メモリ・ストレージモジュールについては消去回数やエラー訂正の実行回数など、記録メディアに固有のパラメタを含んでも良い)が含まれる。
続いて、導出部108は、読み出した外部QoS要求と特性情報とに基づいて、内部QoSパラメタを導出する(S507)。内部QoSパラメタの詳細な導出過程については後述する。導出できたら、導出部108は、その内部QoSパラメタをQoSパラメタ保存部110に保存する(S508)。そして、導出部108は、一連の導出過程が完了したことを割当管理機能部103に通知する(S509)。なお、外部QoS要求を満たす内部QoSパラメタが導出できなかった場合(例えば、要求された帯域が内部的に確保できない、など)は、導出部108は、ステップS508の保存処理は実行せず、導出完了通知(S509)でパラメタ導出エラーを通知する。
内部QoSパラメタが正常に導出できた場合、割当管理機能部103は、内部QoSパラメタに対応するメモリ・ストレージモジュール116~119に対して、対応する領域を確保するよう指示を出す(S510)。ここでは、メモリ・ストレージモジュール116~119に対して領域を確保する指示を出しているが、確保できることを確認して実際の領域割当は後程実行するように実装されていてもよい。領域が確保できた場合、割当管理機能部103は、内部QoSパラメタを設定・適用するように設定部109に指示を出す(S511)。なお、領域が確保できなかった場合は、割当管理機能部103は、内部QoSパラメタの設定は指示せずに、エラーを、I/F部101を通じて要求元に応答する。
内部QoSパラメタを設定するように指示を受けた設定部109は、QoSパラメタ保存部110から内部QoSパラメタを読み出す(S512)。この処理で読み出すパラメタは、前ステップ(S511)の指示で適切な識別子として通知される。設定部109は、読み出した内部QoSパラメタをメモリ・ストレージモジュール116~119およびスイッチ115に設定できる形に変換したうえで、各々に対して通知する(S513)。
内部QoSパラメタの通知を受けたメモリ・ストレージモジュール116~119およびスイッチ115は、各々、パラメタに基づき、対応する領域に対して適切なQoSが適用されるように処理を実行する(S514)。その後、各々が適用完了を通知する(S515)。設定部109は、対象となった各々から完了通知を受信したら、割当管理機能部103に対して設定完了を通知する(S516)。もし、内部QoSパラメタの適用を通知したメモリ・ストレージモジュール116~119またはスイッチ115のうち1つでも適用できない旨のエラーを返した場合、設定部109は、完了を通知してきた各部分に対して内部QoSパラメタの適用を取り消す処理を行い、エラーを割当管理機能部103に返す(エラー処理の流れについては図示していない)。
割当管理機能部103は、設定完了を受領したら(S516) 、アドレス変換部113に対して変換ルールの設定を通知する(S518)。この通知には、外部コンピュート装置がアクセスする際に使用するアドレスと、確保したメモリ・ストレージモジュールの識別子と、それに対応するアドレスとを含む。通知を受けたアドレス変換部113は、変換ルールを生成する(S519)。この変換ルールは、前述の通知された外部のアドレスとメモリ・ストレージプール装置100内部のアドレスとを対応づけるルールである。アドレス変換部113は、生成したルールを変換情報保存部114に保存する(S520)。
変換ルールが保存された状態でメモリ・ストレージモジュールへのアクセスが発生したとする(S521)。アドレス変換部113は、アクセスを受け付けると(S522)、対応する変換ルールを保持しているかどうかを確認する(S523)。必要な変換ルールが無い場合、アドレス変換部113は、変換情報保存部114から対応するルールを読み出す(S524、S525)。その後、アドレス変換部113は、アドレス変換を行い(S526)、対象のメモリ・ストレージモジュールにアクセスを転送する。なお、ここには記載していないが、アドレス変換部113は、アドレス変換の回数など監視機能部106に対して提供するための動作情報を適切に計測する機能を具備してよい。
以上がメモリ・ストレージプール装置100における領域確保および内部QoSパラメタの設定に関するフローおよびその後のメモリ・ストレージモジュールに対するアクセスのフローである。このように、メモリ・ストレージプール装置100は、外部から要求されたQoSを実現するために、メモリ・ストレージプール装置100から外部への応答データの送信に係る部分のみならず、内部のQoSパラメタを適切に導出して、領域とともに管理する。これにより、メモリ・ストレージプール装置100は、応答データの送信部分だけでは実現できない厳密なQoSへの対応が可能である。
なお、図6は、アドレス変換部113が使用し、変換情報保存部114に保存されているアドレス変換に関する情報の例である。各エントリは、識別子(No.)、図3に示した「タグ」、アクセス主体である外部コンピュート装置がアクセスに含めるアドレス、当該アクセスを適切に処理するメモリ・ストレージプール装置100内の宛先デバイス、宛先デバイスに対するアドレス、エントリに関連する統計情報、で構成される。No.2のエントリは、図4のNo.2のエントリが複数のメモリ・ストレージモジュールが割り当てられているため、変換表もそれに沿った形で構成される。図4のNo.3はミラーリング機能が適用されるエントリであり、図6のNo.3のM(…)の表記は、各メモリ・ストレージモジュールに同じように使用し、1つの要求側のアドレスが複数の宛先側のアドレスに変換されることを示している。同様に、図4のNo.4のエントリのEC(…)の表記は、消失訂正符号を適用して対象デバイスに分散書き込みをすることを示している。メモリ・ストレージモジュールとアドレスとは、決められた範囲内で適切に算出されて変換される。
続いて、制御部102の監視機能部106で行うメモリ・ストレージモジュール116~119およびスイッチ115の特性情報や障害情報の監視について説明する。監視機能部106は、メモリ・ストレージモジュール116~119およびスイッチ115が持つ動作状態を記録して出力するためのインタフェースを介して定期的に記録された値を取得したり、当該インタフェースを介した通知をメモリ・ストレージモジュール116~119およびスイッチ115から受信したりすることにより、特性情報や障害の監視を行う。ここで、監視機能部106が情報を能動的に取得しに行くか情報が受動的に通知されるかは、情報の生成側に依存する。例えば、総入力データ量の特性情報は、装置内部で加算し続けるため一般に内部に保持しておく情報であり、更新の度に外部に通知する情報ではない。そのため、監視機能部106は、能動的に総入力データ量を取得しに行く。一方、スイッチ115に接続するメモリ・ストレージモジュール116~119が応答しなくなったことを検出した場合、この情報は、スイッチ115が即座に外部に通知するほうが速やかに検出できる。よって、監視機能部106は、スイッチ115から受動的に障害の通知を受け取る。
監視機能部106が監視する特性情報は、前述のように、メモリ・ストレージモジュール116~119に対する総入力データ量(書き込みデータ量)、総出力データ量(読み出しデータ量)、総入力要求数(書き込み回数)、総出力要求数(読み出し回数)、単位時間あたりの入力データ量(書き込みデータ量、書き込みスループット)、単位時間あたりの出力データ量(読み出しデータ量、読み出しスループット)、単位時間あたりの入力要求数(書き込みIOPS)、単位時間あたりの出力要求数(読み出しIOPS)、動作温度のような入出力に関する基本的なパラメタ群である。また、メモリ・ストレージモジュール116~119を構成する記録メディアによっては、消去回数や頻度、エラー訂正の実行回数や頻度、ウェアレベリングの実行回数や頻度、ガベージコレクション(コンパクション)の実行回数や頻度などのパラメタ群もある。スイッチ115については、要求送信時のエラー回数・要求受信時のエラー回数、要求送信時のロス回数・要求受信時のロス回数などのパラメタ群も考えられうる。
監視機能部106が監視して収集した情報は、適切な形に変換されて監視結果保存部111に保存される。保存する情報の量は、利用可能な監視結果保存部111の容量に依存するが、一例として、後述する第4実施形態における障害予見・検出機能部1905(図19参照)が障害の予見に必要なデータ量は保持できるものとする。例えば、監視機能部106が定期的にパラメタを監視結果保存部111に保存する状況において、障害予見・検出機能部1905が過去10回の結果を用いて障害の発生確率を予測するアルゴリズムを実行している場合、当該パラメタに対しては10回分以上の値を保持しているものとする。
図7は、監視結果保存部111に保存されている特性情報の例を示す図である。図7(a)は、あるデバイスのあるボリュームに対して取得した情報を、取得時刻でまとめて保存する場合の例である。なお、複数の特性情報が一度の情報取得要求で得られない場合であっても、おおむね同じ時刻であれば、取得操作を複数行って、その結果をまとめて1つのエントリにまとめて良い。1つのエントリに保存する情報は1つであっても複数であってもよい。ここでは1つのデバイスと1つのボリュームに対してのみ示しているが、他のデバイスおよびボリュームに対しても同じ形で保存すればよい。図7(b)は、あるデバイスのあるボリュームに対して、監視項目名(識別子)と値とを、監視した時刻とともに記録する場合である。図7(c)は、あるデバイス、あるボリューム、ある項目に対して監視時刻と値を保存していく形である。第1実施形態の実施に当たっては、いずれの形式であっても問題は無い。
内部QoSパラメタの導出は、複数の方法が考えられる。はじめにもっとも単純な方法について、図8のフローチャートを用いて説明する。図8のフローは、導出部108が、QoSパラメタ保存部110に保存されている外部QoS要求と、監視結果保存部111に保存されている特性情報とを読み出した後に実行される。図8のアルゴリズム実行に必要となる要求された記録部の容量については、外部QoS要求の1つとして保持されているものと仮定する。
導出部108は、はじめにステップS802にて、要求された記録容量とQoSパラメタを満たす組み合わせをすべて算出する。例えば、図1の構成であれば、導出部108は、メモリ・ストレージモジュール116~119について未割当の容量を確認し、総量を満たす組み合わせの集合を求める。このとき、容量を満たす組み合わせが無い場合(S803:NO)、導出部108は、要求を満たせないため、エラー応答を返す(S809、810)。
容量を満たす組み合わせがあれば(S803:YES)、導出部108は、次のステップに進む。導出部108は、その集合に含まれる組み合わせのうち、読み出しスループット(LOADスループット、READスループット)に対する要求を満たさない組み合わせを除外する(S804)。導出部108は、さらに特性情報を参照し、読み出しスループットに影響を与える懸念がある特性を持つメモリ・ストレージモジュールが含まれる組み合わせを除外する(S805)。一連の処理により残っている組み合わせは、読み出しスループットの要求を満たす。続いて、導出部108は、同様に、読み出しスループットの要求を満たすように絞り込んだ集合を対象に、書き込みスループットの要求を満たすように絞り込む(S806、S807)。
この時点で当該集合に要素が残っていなければ(S808:NO)、導出部108は、割当可能な領域が無いと判断してエラー応答を返し(S809)、処理を終了する(S810)。
当該集合に要素が残っている場合(S808:YES)、導出部108は、読み出し遅延要求を満たす読み出し優先度を求める(S811)。ここで、優先度の具体的な設定方法は実装に依存する。例えば、HとLの2段階の優先度を設定してもよいし、0~7の整数で8段階の優先度を設定してもよい。その際、外部QoS要求と内部の優先度との対応づけは、事前に定義した関係に基づいて機械的に行う。もし、外部QoS要求の分類数・順位付けと内部のQoS制御における分類数・順位付けとが同じであれば、外部QoS要求として与えられた優先度をそのまま使ってもよい。違いがあれば、なるべく差異が小さくなるように対応関係を事前に定義しておけばよい。
また、前述の対応関係に加え、メモリ・ストレージプール装置100にて提供する(割り当てている)領域に割り当てられている優先度を踏まえて、優劣関係が適切になるように調整を加えてもよい。例えば、外部の優先度が0(高)~8(低)の9段階、内部の優先度がHigh/Middle/Lowの3段階で制御されており、High(外部優先度2)とMiddle(外部優先度5)を使う領域が既に割り当てられているとする。このとき、新たに優先度3の要求を受け取ったとする。優先度3に対する内部優先度の機械的な変換結果はMiddleである。その結果、メモリ・ストレージプール装置100内部では2つのMiddleが共存してしまい、外部QoS要求の優劣関係が無くなってしまう。要求を受信したときには、メモリ・ストレージプール装置100内部では2つの領域しか割り当てていないため、適切に調整すれば優劣関係を維持したまま3つの領域を割り当てることができる。すなわち、Middle(外部優先度5)を割り当てた領域の優先度をLow(外部優先度5)に変更し、新たに受信した要求に対してMiddle(外部優先度3)を設定する。このように、メモリ・ストレージプール装置100に割り当て済みの領域に対する優先度を考慮して、内部優先度は外部優先度の優劣関係を維持するように相対的に設定しても良い。
続いて、導出部108は、決めた読み出し優先度を満たさない組み合わせを除外する(S812)。例えば、確認対象のメモリ・ストレージモジュールに対して既に優先度が高い領域が複数割り当てられている場合には、その領域を除外する。ここで、除外するために必要な優先度が高い領域の具体的な数は、優先度の分類数や使用するメモリ・ストレージモジュールの記録メディアに合わせて調整する。いずれにせよ、優先度が高い要求が特定のメモリ・ストレージモジュールに集中しないようにする。続いて、導出部108は、同様に、書き込み優先度についても処理を行う(S813、S814)。
なお、優先度を決めるにあたってメモリ・ストレージプール装置100が計算に用いる遅延は、外部QoS要求で指定された値をそのまま使っても良いが、内部の伝送遅延やメモリ・ストレージモジュールの読み書きに伴う遅延を減じた値を用いても良い。
この時点で当該集合に要素が残っていれば(S815:YES)、導出部108は、割り当て可能な領域が存在すると判断できる。組み合わせが複数残っている場合には、事前に定めた条件にしたがって1つの組み合わせを選定して、当該組み合わせとそれに付随する内部QoSパラメタをQoSパラメタ保存部110に保存し(S816、図5AのS508に対応)、内部QoSパラメタ導出処理を終了する(S817)。当該集合に可能な組み合わせが残っていない場合(S815:NO)、導出部108は、エラー応答を返し(S818)、処理を終了する(S819)。
以上が、メモリ・ストレージプール装置100のもっとも単純な内部QoSパラメタ導出方法である。このほかにも、外部QoS要求と特性情報の可能なパラメタの組み合わせに対して、対応する内部QoSパラメタを事前に算出しておき、その中から好適な1つを選択して適用する、機械学習を使って好適なメモリ・ストレージモジュールの組み合わせと内部QoSパラメタを導出する、などの方法が考えられる。
図9は、図8のS802に記載した要求容量を満たす記録部の組を求める例である。図9(a)~(d)は、要求容量を等分して割り当てる例である。割り当てるメモリ・ストレージモジュールの数を4個~1個の間で変化させているが、これらは各メモリ・ストレージモジュールの使用できる容量に応じて選択する。図8のS802を実行する時点で明確に容量が不足している場合には、その組み合わせは除外する。
例えば、図9(a)の例では、メモリ・ストレージモジュール116は10の容量のうち4が使用済みであり、同様にメモリ・ストレージモジュール119は10の容量のうち7が使用済みである。これらに対して容量3を追加で割り当てることができる。一方、図9(b)の例では、メモリ・ストレージモジュール119は残容量が3であるため容量4を割り当てることができないが、その他のメモリ・ストレージモジュールには割り当てることができる。
図9(c)の例では、メモリ・ストレージモジュール118、119に十分な容量が無いためメモリ・ストレージモジュール116、117に容量6を割り当てている。もし、メモリ・ストレージモジュール118やメモリ・ストレージモジュール119に空き容量があれば、図8のS802では、(116、118)、(116、119)、(117、118)、(117、119)、(118,119)といった組み合わせも生成する。同様の方針に基づいて、1つのメモリ・ストレージモジュールだけを使用する場合についても、生成可能であれば生成する。
図9(e)は、要求容量を等分しない例である。通常、要求される容量とそのワークロードに対して一切の情報が無い場合、メモリ・ストレージプール装置100の外部から要求された容量を等分すれば、各メモリ・ストレージモジュールに対して均等にアクセスが発生すると予想できる。そのため、一般的には、図9(e)のような偏りがある容量割当の組み合わせを生成する必要は無い。しかし、何らかのヒントが容量確保要求とともに与えられる場合、図9(e)のように偏った容量を割り当てることが効果的になる場合がある。図9(e)のヒント情報は、空間Aがサイズ2を持ち、全アクセス数の50%程度が発生することを示している。空間B~Dについても同様である。このヒントを用いて4つのメモリ・ストレージモジュールに対して均等にアクセスが生じるような組み合わせを生成するならば、図9(e)に示すように、空間Aを2つのメモリ・ストレージモジュールに割り当て、空間Cを1つのメモリ・ストレージモジュールに割り当てる。また、空間Bと空間Dはひとまとめにして1つのメモリ・ストレージモジュールに割り当てる。
このように要求された容量を等分しない場合、容量の分割粒度が候補数に大きく影響する。例えば、全体で1GBの割り当てを要求された時に1MB単位で割り当ての候補を生成すると候補の数が多すぎる。そのため、例えば要求された容量の10%を単位として割り当て量を変動させて候補を生成するなどの実装上の制限を課しても良い。一例として図9(e)のヒント情報を伴う1GBの割当容量に対しては、割当容量の10%である100MBを単位として、図9(f)のような割り当て候補が生成できる。
以上のように、割当管理機能部103が容量確保要求を受信した際に(図5AのS502)、その要求内に割当領域に対するヒント情報が含まれていなければ、S802では図9(a)~(d)のように等分する組み合わせを生成し、ヒント情報が含まれていれば、そのヒントを活用して図9(e)のような等分ではない容量割当案を生成しても良い。
図10は、外部QoS要求として読み出し・書き込みスループットが指定された時に、メモリ・ストレージプール装置100の外部のスループットをメモリ・ストレージプール装置100のメモリ・ストレージモジュール116~119に割り当てる方法の例を示す図である。
図10(a)は、内部のメモリ・ストレージモジュールにスループットを均等に割り当てる場合である。メモリ・ストレージモジュール116では、割り当て済み読み出しスループットが6(最大量は10)、割り当て済み書き込みスループットが4(最大量は10)という状態で、新たに読み出しスループット3、書き込みスループット1を割り当てている。図10(a)は、外部の要求スループットが内部のメモリ・ストレージモジュールの数で割り切れた場合であるが、割り切れない場合には、端数をいずれかのメモリ・ストレージモジュールに追加するか、割り切れる数のメモリ・ストレージモジュールに割り当てる。例えば、外部QoS要求の書き込みが3で読み出しが12だった場合、4台では割り切れないため3台に割り当てる(図10(b))。
図10(c)は、4台のうち2台に等分している例であり、図10(d)は、偏らせて割り当てる例である。この例のように、外部QoS要求のスループットが内部のメモリ・ストレージモジュールの数で割り切れる場合であっても、すべてのメモリ・ストレージモジュールに同じように割り当てるのではなく、何らかの条件に基づいて割り当てるメモリ・ストレージモジュールを選択しなければならないことがある。例えば、既に割り当て済みのスループット要求により追加で割り当てる余裕がない場合(図10(b)に相当。要求読み出しスループット12を台数で等分した値は3であるが、メモリ・ストレージモジュール119の残りスループットは2であるため割り当てられない。そこで3等分してそれらをメモリ・ストレージモジュール116~118に割り当てている)、メモリ・ストレージモジュールの性能に偏りがあって割り当てられるスループットの上限が違う場合(図10(c)に相当。メモリ・ストレージモジュール117と119の性能が低下しており、4等分や3等分に対応する読み込みスループットを追加で割り当てることができない)、などが考えられる。性能の偏りについては、先天的に決まる場合(仕様が異なるメモリ・ストレージモジュールを組み合わせている場合)だけでなく、後天的に決まる場合(記録セルの疲弊などにより性能が低下した場合)もある。これらは監視機能部106の動作によって適切に検出され、QoSパラメタの導出のために管理されている。
図10(d)は、2つのメモリ・ストレージモジュールの性能が低下した状態で、残る2つのうち一方は十分なスループットの余裕が有り、他方には余裕が無い場合の例に相当する。この場合、2等分のスループットを割り当てることはできないが、偏りを持たせることで要求を満たすことができる。
以上のようなスループットの割り当て検討は、図8のS802で生成する候補に対して行う。例えば、図9(a)のようにすべてのメモリ・ストレージモジュールに対して要求容量を等分する候補に対しては、図10(a)のようなスループットの割り当て方法が候補となり、図10(b)~(d)のような割り当て方法は候補にならない。同様に、図9(c)のような割り当てに対しては、図10(c)のような割り当て方法が候補となる。
図8のS805およびS807では、監視結果保存部111に保存されている特性情報を参照し、読み出しおよび書き込みスループットに影響を与える可能性がある候補を除外するが、特性情報のスループットへの影響について補足する。
特性情報のうちスループットの割り当て判断時に考慮すべき情報の一例は、ガベージコレクションやウェアレベリングの実行頻度である。これらが上昇するとメモリ・ストレージモジュールの内部動作の割合が高くなり、外部からの読み書き処理を実行する時間が減少する。未割当の帯域が残されていたとしても、これらの値が上昇傾向にある場合には、対象となるメモリ・ストレージモジュールが含まれる組み合わせを除外してよい。また、動作温度の上昇もスループットに影響を与える場合がある。一般に、メモリ・ストレージモジュールが動作可能な温度の上限に近づくと、サーマルスロットリングが有効になって動作が制限されてしまう。そのため、定常的に高い温度で動作しているメモリ・ストレージモジュール、動作温度が上昇傾向にあるメモリ・ストレージモジュールは、サーマルスロットリングによる制約を受ける可能性が高いため、そのようなメモリ・ストレージモジュールが含まれる組み合わせを除外しても良い。
続いて、図8のS811~S814に記載の遅延(優先度)に対する割り当てについて補足する。メモリ・ストレージプール装置100では、可能な限り同じ優先度を持つ領域が重複しないようにメモリ・ストレージモジュールを利用する。前述のように、優先度は高(1)・低(0)の2値や0~7の8段階など数値の形で表現されるが、その情報を割当管理機能部103が割り当て情報の一部として割当情報保存部112に保存して管理する。新たな領域を割り当てる際には、保存されている情報を参照して、不適切な組み合わせを除外していく。
また、優先度に応じて領域を割り当てるメモリ・ストレージモジュールの数を調整してもよい。例えば、優先度が高い領域をすべてのメモリ・ストレージモジュールにまたがるように確保すると、当該領域に対するアクセスが他の高優先度のアクセスによって妨げられる可能性が高くなる。よって、スループットに対する要求を満たす組み合わせの中で他領域と重複するメモリ・ストレージモジュールの数が少ないものを優先し、重複が多いものを積極的に除外していくようにしてもよい。同様に、優先度が低い領域は特定のメモリ・ストレージモジュールを長時間占有する可能性を減らすため、複数のメモリ・ストレージモジュールにまたがる組み合わせを優先し、数が少ないものを積極的に除外するようにしても良い。
図11(a)は、優先度が異なる2つの領域(701、702で構成される領域Aと、703~706で構成される領域B)が既に割り当てられた状態を示している。領域Aは読み出し・書き込みとも優先度7をもち、領域Bは読み出し・書き込みとも優先度1を持つ。前述の方針に基づき優先度が高い領域Aは少ない2個のメモリ・ストレージモジュールに割り当てられており、優先度が低い領域Bは4個のメモリ・ストレージモジュールに割り当てられている。この状態で読み出し優先度6、書き込み優先度3をもつ小さな新たな領域Cを割り当てる。この領域Cは小さいため、図11(a)のいずれの空き領域にも格納できるものとする。この仮定の下、図8のS812やS814では領域Cよりも高い優先度を持つ図11(a)のメモリ・ストレージモジュール116またはメモリ・ストレージモジュール118に割り当てる組み合わせは除外する。図11(a)のメモリ・ストレージモジュール117またはメモリ・ストレージモジュール119については、既に領域Bが割り当てられているが、優先度が低いため、遅延に対する影響は小さいと考えられる。図11(b)は、メモリ・ストレージモジュール117が選択された場合の結果である。領域Cに対応する部分が領域707としてメモリ・ストレージモジュール117に確保されている。
図11(c)の状態の時に、読み出し優先度2、書き込み優先度5の比較的大きな領域D(メモリ・ストレージモジュールを3台程度が必要な容量)を確保する場合を考える。図8のアルゴリズムに従うと、図8のS811の実行前にはメモリ・ストレージモジュールを3台以上使用する組み合わせが候補として残っているはずである。すなわち、(116、117、118)、(116、117、119)、(116、118、119)、(117、118、119)、(116、117、118、119)の組み合わせが残っている可能性がある。ここで、監視機能部106が監視した情報を参照した結果、メモリ・ストレージモジュール119で書き込み遅延に影響がある事象(例えば、何らかの理由により定常的に書き込み遅延が増加している)が確認できたとする。これにより、図8のS814にてメモリ・ストレージモジュール119を含む組み合わせが除外され、(116、117、118)の組み合わせだけが残る。その結果、図8のフローを実行すると、図11(d)のように領域Dが確保されることになる。
図12は、QoS制御機能部107がQoSパラメタ保存部110に保存し、参照する情報の例である。図12(a)は、メモリ・ストレージプール装置100の外部から受信するQoS要求の例であり、QoS制御機能部107は、外部から受信した情報を変更することなく、そのまま保存する。ここでは、7つの項目を持つ4つのエントリを記載している。各項目は、エントリを識別するための識別子(No.)、受信トラフィックに対する優先度(IN優先度)、受信トラフィックに対する遅延(IN遅延)、受信トラフィックに対する帯域(IN帯域)、送信トラフィックに対する優先度(OUT優先度)、送信トラフィックに対する遅延(OUT遅延)、送信トラフィックに対する帯域(OUT帯域)である。なお、QoS制御機能部107は、その他の項目を管理しても良く、その場合には、右側に項目を追加すればよい。例えば、ロス率やエラー率などが含まれていても良い(これらが与えられた場合、内部のロス率やエラー率は要求された外部のロス率と分割数を考慮して設定すればよい)。
さらに、メモリ・ストレージプール装置100の内部構成を理解したうえで内部の分割数(メモリ・ストレージモジュールを割り当てる数)を要求するような外部コンピュート装置があれば、分割数を保存しても良い。
図12の行1201は、1つ目の要求に対応するエントリであり、各項目の情報をすべて含む要求である。図12の行1202は、2つ目の要求に対応するエントリであり、受信・送信ともに遅延に対する要求が省略されている。このように、QoSはすべてのパラメタを含む必要は無く、この場合は共存する他のトラフィックとの優先度を保ちつつ、要求されたスループットを達成することが期待されている。図12の行1203は、3つ目の要求に対応するエントリであり、帯域以外の要求が省略されている。このような場合、優先度は標準的な優先度(0~7の8段階であれば4)が設定されていると仮定して制御してもよい。具体的に割り当てる優先度の初期値は設計・実装事項である。図12の行1204は、4つ目の要求に対応するエントリであり、優先度以外のパラメタが省略されている。この場合、達成できる遅延やスループットは成り行きに任せて、通信路などのリソースが競合した際の優先制御だけを行うことが期待されている。
図12(b)は、メモリ・ストレージプール装置100のQoS制御機能部107が生成した内部QoSパラメタの例である。基本的には外部QoS要求に類似する項目があるが遅延の項目が無い。メモリ・ストレージプール装置100の内部で、遅延値を細かく制御することが困難であると判断して遅延の項目を実装しなかった例である。もし、遅延の上限値を設定しておき、その値を超えるケースでは内部の通信データを破棄する等の形で制御する場合には、図12(a)と同様に遅延のパラメタを保持しても良い。その他の項目については図12(a)と同じであるが、「IN」を伴う項目は、メモリ・ストレージプール装置100を構成するメモリ・ストレージモジュール116~119が受信するコマンドやデータに対する項目であり、I/F部101にて受信してアドレス変換などの操作を受けたコマンドやデータをスイッチ115経由で各メモリ・ストレージモジュール116~119に送信する際に適用される。そのため、これらのパラメタは設定部109を通じてスイッチ115に通知される。
一方、「OUT」は、メモリ・ストレージモジュール116~119が送信するコマンドやデータに対する項目である。そのため、「OUT」の各項目に保存されているパラメタは、設定部109を通じて各メモリ・ストレージモジュール116~119へ伝え、各メモリ・ストレージモジュールにて適切に適用されることが必要である。
なお、帯域の項目については、図12(a)ではbpsで保持し、図12(b)では%で保持している。どちらで管理しても良く、その選択は設計事項である。
以上が、第1実施形態のメモリ・ストレージプール装置100の具体的な説明である。内部の動作状態を監視する監視機能部106と、その監視結果を保持する監視結果保存部111と、外部QoS要求と監視結果とに基づいて内部QoSパラメタを導出するQoS制御機能部107とを備えたことで、第1実施形態のメモリ・ストレージプール装置100は、外部からの要求と内部の状態とを整合させて、より精度が高いQoS制御を実現することができる。
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態は、第1実施形態の拡張である。第1実施形態では、一度設定した内部QoSパラメタは、無効にするまで変更せずに適用し続ける。一方、第2実施形態では、外部QoS要求を新たに受信した場合に、一度設定した内部QoSパラメタを再調整することで、新たな要求に対応しやすくする。なお、第2実施形態のメモリ・ストレージプール装置100機能ブロック図は、第1実施形態と同じである(図1参照)。
次に、第2実施形態について説明する。第2実施形態は、第1実施形態の拡張である。第1実施形態では、一度設定した内部QoSパラメタは、無効にするまで変更せずに適用し続ける。一方、第2実施形態では、外部QoS要求を新たに受信した場合に、一度設定した内部QoSパラメタを再調整することで、新たな要求に対応しやすくする。なお、第2実施形態のメモリ・ストレージプール装置100機能ブロック図は、第1実施形態と同じである(図1参照)。
第2実施形態の説明にあたり、図13(a)に示す状況をメモリ・ストレージプール装置100の初期状態として仮定する。この状態では、各メモリ・ストレージモジュール116~119に1つまたは2つの領域が割り当てられている。領域1301(縦縞模様)は、時刻t1に要求を受け付けて2つのメモリ・ストレージモジュールに割り当てた領域であり、領域1302(横縞模様)は、時刻t2に要求を受け付けて2つのメモリ・ストレージモジュールに割り当てた領域である。各々の外部要求は、(容量6、R帯域6、W帯域12、R優先度7、W優先度7)と、(容量4、R帯域4、W帯域4、R優先度1、W優先度1)とである。領域の最小割当単位が2単位であるため、領域1301については、実容量3に対して4単位を割り当てている。
ある時刻t3で新たな外部要求を受けたとする。この外部要求Qは、(容量10、R帯域15、W帯域15、R優先度5、W優先度5)というパラメタを持つ。図8のアルゴリズムに従い、最初に可能な領域割り当ての組み合わせを生成することになるが、初期状態での総残容量が8であることから、この要求を受け付けるのに十分な残容量が無い。しかし、初期状態における外部要求の総容量は14であることに注目すると、実際に必要な容量14に対して16を割り当ててしまっている。もし、容量の割当単位を1単位に変更できれば、これらの余剰領域を新たな要求に対して割り当てることができ、新たな要求を受け付けられると考えられる。第2実施形態では、割当アルゴリズムの実行中にこのような状況が検出できた場合に、割当単位を変更したり、割り当て済みの容量や帯域を調整したりすることによって新たな要求を受け付けられるようにする。
図13(b)は、容量の割当単位を1単位に変更し、外部要求Qを受け付けた時の動作例である。割当単位を1単位に変更することで、領域1301に対して過剰に割り当てていた2容量を抽出している。ここで抽出された領域は、メモリ・ストレージプール装置100の都合による過剰割り当て領域なので、割当先の外部コンピュートでは使用していない(外部コンピュートに対して割り当てたことを通知していない)。そのため、単純に縮小することができる。
容量10を各メモリ・ストレージモジュールに割り当てるためには残容量がすべて必要となるため、図8のアルゴリズムに従って生成される容量の組み合わせは、(1、4、1、4)の1つである。次いで、スループット(帯域)の要求に基づいて不適切な組み合わせを除外するが、ここではスループットに影響する要因が無いため次のステップに進む。同様に、優先度(遅延)についても判断して影響する要因が無いことを確認する。最終的に、領域の割当が(1、4、1、4)で、R帯域・W帯域が(3、9、3、9)と割り当てることができる。
ここでは、容量に対する割り当て単位を変更したが、帯域割り当てに過剰な割り当てがあってメモリ・ストレージモジュール116~119およびスイッチ115がより細かな単位での帯域制御に対応できるのであれば、帯域の割り当て単位を変更しても良い。
図14は、第2実施形態のメモリ・ストレージプール装置100における内部QoSパラメタの導出の手順を示すフローチャートである。図8に示した第1実施形態におけるフローチャートに対して、割当単位を変更するステップ(S1401~S1402、S1404~S1405、S1407~S1008)が追加されている。なお、大きな単位で管理する方が小さな単位で管理するよりもオーバヘッドが小さいと考えられるので、このフローチャートの記載の「変更」は、管理単位の縮小が一般的である。ただし、何らかの理由で管理単位を拡大してもよい。なお、このフローチャートでは、容量およびスループットの割り当て単位を変更した場合には最初のステップ(S802)に戻り、優先度(遅延)の場合には優先度決定のステップ(S811)に戻っている。これは、帯域とスループットに相関がありえるパラメタであり、優先度(遅延)はやや独立して制御されうるパラメタであるためである。優先度(遅延)の管理単位を変更した場合にも最初にステップに戻るように実装しても良い。
以上が、第2実施形態のメモリ・ストレージプール装置100の説明である。既に割り当て済みの領域において、過剰に割り当てているリソース(容量、帯域、優先度)について、その管理単位を見直し、過剰分を見直すことで、さらに適切な内部QoSパラメタを導出する。
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態は、第2実施形態に類するが着眼点が異なる。第2実施形態では、メモリ・ストレージプール装置100内部の割当単位に起因する内部QoSパラメタの変更だったが、第3実施形態では、割り当て済み領域に対して監視機能部106が監視した結果と外部QoS要求との差異を検出し、それに基づいて内部QoSパラメタの変更を試みる。
次に、第3実施形態について説明する。第3実施形態は、第2実施形態に類するが着眼点が異なる。第2実施形態では、メモリ・ストレージプール装置100内部の割当単位に起因する内部QoSパラメタの変更だったが、第3実施形態では、割り当て済み領域に対して監視機能部106が監視した結果と外部QoS要求との差異を検出し、それに基づいて内部QoSパラメタの変更を試みる。
図15は、第3実施形態のメモリ・ストレージプール装置1500の機能ブロック図である。このメモリ・ストレージプール装置1500の機能ブロック図は、第1実施形態のメモリ・ストレージプール装置100の機能ブロック図(図1参照)を改変したものである。監視ルール保存部1503が追加されている他、監視ルール保存部1503に保存された見直し条件に従って既存の内部QoSパラメタを見直す機能を具備する見直し部1502がQoS制御機能部1501に追加されている。内部が変更されたため、メモリ・ストレージプール装置およびQoS制御機能部に異なる番号を付与している。
図16A、16Bは、第3実施形態のメモリ・ストレージプール装置1500において監視機能部106が行う監視動作に関するフローチャートであり、図16Cは、監視機能部106の監視結果を受けてQoS制御機能部1501の見直し部1502が行う内部QoSパラメタの見直し動作に関するフローチャートである。
前述の通り、監視機能部106は、監視対象を定期的にチェックして値を取得するポーリング型監視と、監視対象の事象が発生した場合にその値を取得するプッシュ型監視の2通りの方法で監視する。図16Aがポーリング型で、図16Bがプッシュ型である。ポーリング型の場合は、監視対象は事前に監視ルール保存部1503に保存されているため、それらを順番に取得するように繰り返しを含むフローとなり、プッシュ型の場合は、事象の対象となる値だけを取得するため、原則として繰り返しは生じない。それ以外の部分で差異はなく、S1605やS1615で行う加工内容は監視ごとに定められているものとする。この加工内容は、監視機能部106が固定的に保持しても良いし、監視ルール保存部1503に監視対象リストとともに加工ルールとして保持しておいても良い。どちらの場合でも、監視結果は監視時刻とともに監視結果保存部111に保存されていく。
図16Cの見直し処理は、監視機能部106の監視処理を契機に実行される。監視処理が定期的に実行されるため、見直し処理も定期的に実行される。見直し処理では、監視ルール保存部1503に保存されている見直し条件を参照し(S1622)、その条件の判断に必要な監視結果を監視結果保存部111から読み出す(S1623)。読み出した値がそのままでは見直し条件と比較できず、何らかの演算が必要な場合がある。演算の要否は見直し条件とともに保存されており、見直し部1502は、値を読み出したタイミングで逐次判断する(S1624)。演算が必要な場合(S1624:YES)、見直し部1502は、見直し条件で指定された演算を行う(S1625)。なお、演算に必要な監視結果が不足している場合、見直し部1502は、(図16Cのフローチャートには図示していないが)それが揃ったタイミングで実行すればよい。一連の準備が完了したら、見直し部1502は、読み出した値に基づいて見直し条件が成立するかどうかを確認する(S1626)。条件を満たす場合(S1627:YES)、見直し部1502は、すべての条件を検証したか確認する(S1629)。未検証の条件が有る場合は(S1629:NO)、見直し部1502は、S1622に戻る。
未検証の条件が無い場合(S1629:YES)、見直し部1502は、満たした条件の有無を確認する(S1630)。ある場合(S1630:YES)、見直し部1502は、見直し処理を実行する(S1631)。ない場合(S1630:NO)、見直し処理は、見直し処理を実行せずに終了する(S1632)。
以上が見直し処理の大まかなフローである。このように、メモリ・ストレージプール装置1500を構成するメモリ・ストレージモジュールやスイッチ、ネットワークI/Fに関する種々の情報を監視し、事前に設定した見直し条件に従って内部QoSパラメタの見直し要否を判断することができる。これにより、内部QoSパラメタの設定時とメモリ・ストレージプール装置1500内部の動作特性が変化してしまっても、その変化を捉えて可能な限り適切なパラメタに再設定することができる。
図17は、監視ルール保存部1503に保存されている監視対象のリストの一例を示す図である。1行で1つのルールを保持しており、図17では、6つのルール例を示している。No.フィールドは、便宜上付した番号であり、監視ルール保存部1503で保存する際には不要である。対象要素フィールドは、監視対象となるメモリ・ストレージプール装置1500の構成要素である。「M1」は、メモリ・ストレージモジュールの116~119の1つ目を表している。メトリクスフィールドは、対象要素フィールドで指定した構成要素から取得できる監視対象のメトリクスを指定する。監視方法フィールドは、監視対象の対象メトリクスの値を取得する方法を指定する。監視間隔フィールドは、ポーリングを実行する間隔を指定する。加工ルールフィールドは、取得した監視値を監視結果保存部111に保存する際に行う加工のルールを記載している。
行1701は、1つ目のメモリ・ストレージモジュールにおける総書き込み回数を60秒間隔のポーリングで取得することを示している。加工ルール「‐」が記載されているが、これは加工しないことを意味している。行1702は、1つ目のメモリ・ストレージモジュールにおける書き込み障害イベントを、プッシュ通知により検出することを示している。プッシュ通知による監視のため、監視間隔には「‐」を記載している。また、発生したイベントの記録を特に加工する必要は無いため、加工ルールにも「‐」が記載されている。
行1703は、スイッチの1番目のポートを監視対象とし、総送信バイト数を15秒間隔のポーリングで取得することを示している。行1701とは監視間隔が異なるが、監視間隔は対象要素・メトリクスごとに異なる値を設定してよい。行1704は、行1703と同じスイッチの1番目のポートを監視対象とするが、監視方法に「3」が設定されて監視間隔に「‐」が設定されている。これは、3番目のルールで監視される同じ値を利用することを意味している。また、加工ルールとして「delta(prev)」が指定されている。これは、前回の監視値との差分を計算して記録することを示している。行1705、行1706は、スイッチの2番目のポートに対する同様のルールが記載されている。
ここでは、加工ルールとして、直前の値との差分を計算する例を記載したが、複数の値を用いて計算するルールを記載しても良い。例えば、2回前の観測値と直前の観測値とを含む3つの値を用いて平均値を計算しても良い。
また、複数の監視結果に対して何らかの演算を行い、値を新たに生成するようなルールを生成しても良い。例えば、行1706は、スイッチの総送信バイト数を各ポートの総送信バイト数の和で求める演算を行うルールが記載されている(図17では1番目のポートを参照するルールしか記載していないが、他のポートについても同様に記載されているものとする)。
図18は、監視ルール保存部1503に保存されている見直し条件の一例を示す図である。監視対象リストの例と同様に、1行で1つのルールを構成している。No.フィールドは、便宜上付した番号である。対象要素フィールドは、条件判断に必要となるメトリクスが関連する構成要素である。必要メトリクスフィールドは、見直し条件の判断に必要となる監視メトリクスである。このフィールドに記載されるメトリクスは、図17に記載した監視対象リストに含まれている必要がある。また、このフィールドには、判断に必要な複数のメトリクスを記載してよい。見直し条件フィールドは、必要メトリクスに記載したいフィールドを使って見直し要否を判断する条件である。図18では自然言語で記載しているが、実際には計算機で扱える形式で保持されている。閾値フィールドは、見直し条件が成立するかどうかを判断する際に比較する値である。図18ではTWE_countのような形で記載しているが、実際には適切な数値が格納される。演算ルールフィールドは、必要メトリクスフィールドに記載したメトリクスを使って見直し条件を判断する時に前処理として必要になる演算が記載される。見直し条件フィールドと同様に自然言語で記載しているが、実施には見直し部1502で実行可能な数式を実装したプログラム片またはそのプログラム片が格納された場所のアドレスが保存される。
行1801は、演算を伴わない例である。書き込み時にエラーが生じた回数が所定の閾値を上回った場合、対象となるメモリ・ストレージモジュールの特性が劣化していると捉え、見直しを行う。この場合は監視した値をそのまま比較する。なお、この行にある対象要素「M*」は、任意のメモリ・ストレージモジュールを表す。
行1802~行1807は、演算を伴う例である。行1802は、行1801と同じくWrite Errorを扱うが発生間隔を条件としているため、記録されているエラー発生時刻から発生間隔を求める演算を行う。行1803~行1807も同様に、監視した単純なメトリクスに対して演算を行い、条件判断に必要な形に変更するルールを定めている。なお、行1807の対象要素にある「SW.p*」は、スイッチの任意の接続ポートを表している。
前述の見直し条件を満たした場合、見直し部1502は、適用済みの内部QoSパラメタに対する見直し処理を行う。見直し処理は、はじめにメモリ・ストレージモジュールの割り当てを維持する形で可能な優先度の変更から行う。同じ優先度に割り当てた複数の領域に対する要求が競合して優先制御がうまく機能しない場合や、内部QoSパラメタ導出時から割当状況が変化して優先度を見直す必要が生じた場合などに対応できる。また、エラー訂正符号やミラーリングを施している状況においては、データそのものではなく冗長データを保存しているメモリ・ストレージモジュールに対する優先度だけを調整してもよい。さらに、エラー訂正符号を適用している領域の場合は、期待できる訂正能力の範囲内で正常に読み出せる最も少ない数の高い優先度を持つメモリ・ストレージモジュールと、それよりも高い優先度を持つメモリ・ストレージモジュールとなるように優先度を調整しても良い。
次いで、見直し部1502は、優先度の見直しだけでは対応できないが、保存済みのデータを移動せずに対応できる見直しを行う。具体的には、新たな書込み要求が発生した場合の書き込み先の変更、冗長度の変更を伴うエラー訂正符号の変更、ミラーリング先の変更などである。エラー訂正符号の変更は冗長データの量が増減する可能性があり、それに伴って必要な割当量に変更が生じ、書き込み先も変わりうる。ミラーリング先の変更は、冗長データの量は変わらないが、新たに保存するデータを保存する場所が変わる。このような変更に対しては、見直しの前後の領域に対して異なるアドレス変換規則を適用することで対応する。
すなわち、見直し部1502で前述の判断がなされた場合、対応する領域を割当管理機能部103によって割り当て、それに対する新たな変換規則を生成するようにアドレス変換部113に通知する。アドレス変換部113は、新しい変換規則を生成し、既存の変換規則に追加する形で変換情報保存部114に保存する。
この見直しにおいて、古い領域に保存されたデータが移動される前に削除された場合には、削除されたデータが使用していた領域に対する移動処理は行わず、見直し後の割り当てと変換規則に従う新しい領域を直接使用するように実装してよい。そのため、アドレス変換部113は、古い領域を無効にする処理が実行されたかどうかを管理し、無効化後に新しい領域に対応するよう規則を入れ替える機能を具備しても良い。
最後に、見直し部1502は、見直しの前後でメモリ・ストレージモジュールに保存済みのデータに対する移動が必要な見直しを行う。この見直しは、データの移動が他の領域に対する処理に大きな影響を与えることから、頻繁に実行するべきではないが、特定のメモリ・ストレージモジュールに優先度が高いREAD/LOAD要求が集中して外部QoS要求を満たせなくなってしまった時などに実行することができる。
この見直しによる保存済みデータの移動方法は、大きく3つのパターンがある。1つ目は、移動元に対するREAD/LOAD要求が発生した時に行うものである。READ/LOADコマンドで読み出した保存済みデータを応答として返すとともに、新しい領域に保存するように制御部102で制御する。保存が完了したら、割当管理機能部103やアドレス変換部113の機能により、新しい領域を参照するように変換テーブルを書き換える。2つ目は、移動元に対するWRITE/STORE要求が発生した時に行うものである。WRITE/STOREコマンドの保存先アドレスと長さとで特定される古い領域の対応部分を無効化するとともに、新しい領域に保存するように制御部102で制御する。保存が完了したら、割当管理機能部103やアドレス変換部113により、新しい領域を参照するように変換テーブルを書き換える。3つ目は、移動する領域を含むメモリ・ストレージモジュールに対する処理が発生していない時に行うものである。見直しに伴う移動を実現することを目的として、READ/LOADコマンドを古い領域のデータに対して発行し、また、その結果を新しい領域に保存するようにWRITE/STOREコマンドを発行するように制御部102で制御する。保存が完了したら、割当管理機能部103やアドレス変換部113により、新しい領域を参照するように変換テーブルを書き換える。
以上が、第3実施形態のメモリ・ストレージプール装置1500の説明である。割り当て済みの領域について、監視機能部106が監視した結果と外部QoS要求との差異を検出し、それに基づいて内部QoSパラメタの変更を試みることで、さらに適切な内部QoSパラメタを導出する。
(第4実施形態)
次に、第4実施形態について説明する。第1実施形態から第3実施形態は、監視機能部106が監視した結果を内部QoSパラメタの導出や見直しに用いていた。この際、メモリ・ストレージモジュールについて障害が発生する可能性は考慮していなかった。第4実施形態では、障害の発生を考慮して、監視した情報から障害を予見したり、障害の通知を受けて対応したりする方法について説明する。
次に、第4実施形態について説明する。第1実施形態から第3実施形態は、監視機能部106が監視した結果を内部QoSパラメタの導出や見直しに用いていた。この際、メモリ・ストレージモジュールについて障害が発生する可能性は考慮していなかった。第4実施形態では、障害の発生を考慮して、監視した情報から障害を予見したり、障害の通知を受けて対応したりする方法について説明する。
図19は、第4実施形態のメモリ・ストレージプール装置の機能ブロック図である。この図では、第1実施形態から第3実施形態までと同じ機能を具備する機能要素に対しても新しい番号を付与しているほか、障害予見・検出機能部1905と、拡張通知機能部1904とが追加されている。
障害予見・検出機能部1905は、監視機能部1906が監視して監視結果保存部1911に保存した監視結果や障害通知に基づいてメモリ・ストレージモジュールに障害が発生する可能性があるかどうかを判断したり、障害を検出したりする機能を具備する。ここで、予見とは、監視結果に対して何らかの統計的な処理を施して将来のメトリクスの変化を推測し、障害が発生する可能性が高いと判断することである。可能性が高いと判断する条件は、1つ以上の監視値の時系列変化に対して外挿した際に所定の閾値を超える、1つ以上の監視値に対して事前に学習した障害発生予測モデルを適用し、出力された障害発生確率が所定の閾値を超える、などである。閾値や障害発生予測モデルは、メモリ・ストレージプール装置1900に対して事前に設定され適切に保存されているものとする。
拡張通知機能部1904は、障害発生の可能性または検知した障害を、メモリ・ストレージプール装置1900を使用する外部コンピュート装置に通知する機能である。ただし、この通知機能は、単純に障害の可能性や障害発生を通知するのではなく、障害が発生する可能性が高いメモリ・ストレージモジュールまたは障害が発生したメモリ・ストレージモジュールに割り当てられている領域を使用する外部コンピュート上のタスク(プログラム)を、割当情報保存部1912に保存されている割当情報を参照することで特定し、当該タスクの識別子を含む通知を外部コンピュート装置に通知する機能を具備する。
図20は、第4実施形態で追加された機能に対応するシーケンス図である。監視機能部1906がメモリ・ストレージモジュール1916~1919を監視して監視対象メトリクスの値を取得し(S2001、S2002)、監視結果保存部1911に保存する(S2003)までは、第1実施形態から第3実施形態までと同じである。定期的なポーリング型監視を終えたら、または、プッシュ型監視により通知を受けたら、監視機能部1906は、監視結果保存部1911の監視結果が更新されたことを障害予見・検出機能部1905に通知する。
通知を受けた障害予見・検出機能部1905は、事前に定められた閾値と比較するために必要な監視結果もしくは事前に設定された障害発生予測モデルに適用する監視結果を監視結果保存部1911から読み出す(S2005)。その後、前述の方法に従って障害の推定もしくは検出を行う(S2006)。
推定または検出の結果、障害の可能性があると判断された場合、障害予見・検出機能部1905は、推定結果を通知する処理を行う。はじめに、障害予見・検出機能部1905は、推定結果を拡張通知機能部1904に通知する(S2007)。この通知には、障害の可能性があると判断したメモリ・ストレージモジュールの識別子や、アドレスおよび範囲、障害の種類、障害の深刻度などを含む。通知を受けた拡張通知機能部1904は、障害の可能性があるメモリ・ストレージモジュールの識別子に基づき、割当情報保存部1912に保持されている割当情報を取得し(S2008、S2009)、当該メモリ・ストレージモジュールの影響範囲を使用しているタスクを特定する(S2010)。
タスクの特定が完了したら、拡張通知機能部1904は、タスクの識別子を含む障害通知を、タスクの実行場所である外部コンピュート装置(外部コンピュート装置で動作するタスクがオーケストレータと呼ばれる計算機群を制御する装置によって統合制御されている場合には、オーケストレータ)に向けて送信する(S2010、S2011)。
メモリ・ストレージプール装置1900の動作範囲外であるが、前述の通知を受け取った外部コンピュート装置は、通知の内容を確認して、影響を受けるタスクを一時的に停止する、別のコンピュート装置に移動する、などの対応策を取ってもよい。特に、外部コンピュート装置で動作するタスクがオーケストレータによって統合制御されている場合には、通知を受信したオーケストレータが、同じタスクで利用するための新しいメモリ・ストレージ領域の確保をメモリ・ストレージプール装置1900に要求したうえで、別のタスクとして実行するように制御することができる。
前述のとおり、障害予見・検出機能部1905の稼働は、監視機能部1906からの通知を受けたタイミング(S2004)であり、監視機能部1906は、定期的なポーリング型監視またはメモリ・ストレージモジュールやスイッチなどの内部構成要素からのプッシュ型監視の結果として通知を行う。
このうち、定期的なポーリング型監視については、その監視間隔を固定する必要は無い。例えば、メモリ・ストレージプール装置1900や各メモリ・ストレージモジュールの負荷状況に応じて監視間隔を調整してもよい(負荷が高ければ、処理の妨げにならないように監視間隔を長くし、負荷が低ければ、監視間隔を短くする、など)。また、監視値や障害予見・検出機能部1905により算出された障害が発生する可能性に応じて、監視間隔を調整してもよい。例えば、障害につながる監視値に上昇傾向が見られたときに監視間隔を短くする、障害発生の可能性が高いと判断した際に監視間隔を短くする、などの調整が可能である。
一方、プッシュ型監視を実施する契機となるイベントをメモリ・ストレージモジュール側やスイッチ側に設定できる場合がある。この設定を利用し、より効率的に障害の発生を予見するようにしても良い。
例えば、障害予見・検出機能部1905により障害の発生可能性を算出した時に、通知する閾値は越えなかったが、障害の発生につながるような微小な変化が見えたとする。この時に、次のイベント発生に関するパラメタを調整し、イベントが発生しやすくしても良い。また、ある監視値の変化に応じて別の監視対象に対するイベント発生間隔を調整しても良い。例えば、メモリ・ストレージモジュールの疲弊具合が高まるにつれて、イベントを生成するエラー発生回数の閾値を小さくするようにしても良い。さらに、あるイベントが発生した際にそれに伴って通知する監視値を制御できる場合には、監視機能部1906や障害予見・検出機能部1905の処理によって相関関係が見えた複数の監視値を同時に通知するように設定してもよい。例えば、メモリ・ストレージモジュールの疲弊具合と読み書きに伴う訂正可能なエラーの数、などである。
これらの機能は、障害予見・検出機能部1905と制御部1902のメモリ・ストレージモジュール制御機能部(図示せず)が連携することで実現できる。
以上が、第4実施形態のメモリ・ストレージプール装置1900の説明である。第4実施形態のメモリ・ストレージプール装置1900は、監視機能部1906によりメモリ・ストレージモジュールやスイッチの動作状態、特性を監視し、その結果から障害発生を予見したり障害を検出したりする機能と、障害が発生したメモリ・ストレージモジュールおよびその領域を使用するタスクを特定したうえで外部コンピュート装置に通知する機能とを備える。これにより、外部コンピュート装置やオーケストレータは、影響を受けるタスクに対して能動的な対策を取ることができ、システム全体の動作を安定化し、適切なQoSが実現できるようになる。
(第5実施形態)
次に、第5実施形態について説明する。第4実施形態では、容量を確保して割り当てた領域(使用中の領域)に対して、監視機能部1906が監視した結果を使って障害の予見や検出を行って通知するものであった。これに対して、第5実施形態では、領域の割当要求を処理して領域を割り当てたが、実際に情報を保存する前の状態(実容量を確保していない状態)において、実容量を確保する際に監視済みの結果を用いて障害の予見や検出を行うことで、将来的に障害が発生する可能性が高い領域を避けるものである。
次に、第5実施形態について説明する。第4実施形態では、容量を確保して割り当てた領域(使用中の領域)に対して、監視機能部1906が監視した結果を使って障害の予見や検出を行って通知するものであった。これに対して、第5実施形態では、領域の割当要求を処理して領域を割り当てたが、実際に情報を保存する前の状態(実容量を確保していない状態)において、実容量を確保する際に監視済みの結果を用いて障害の予見や検出を行うことで、将来的に障害が発生する可能性が高い領域を避けるものである。
第5実施形態のメモリ・ストレージプール装置の機能ブロック図は、図19に示した第4実施形態に対する機能ブロック図とほぼ同じであるため省略する。ただし、図19ではQoS制御機能部1907および割当管理機能部1903と障害予見・検出機能部1905とは直接接続されていないが、第5実施形態では、これらの機能が協調して動作するため、厳密には3つの機能が接続されているように構成される。
第5実施形態では、QoS制御機能部1907に、内部QoSパラメタを導出しながら領域を割当可能なメモリ・ストレージモジュールの組み合わせを検討する過程で、障害予見・検出機能部1905に対して当該領域に対して障害が発生する可能性を導出させる機能と、得られた可能性に基づいて候補となる組み合わせを絞り込む機能とが追加される。
図21は、第1実施形態の動作フロー(図8参照)に基づいた、第5実施形態のフローチャートである。他の実施形態の動作フローでも同様に拡張可能だが、ここでは第1実施形態を用いる。なお、第1実施形態から処理内容が変わらないステップは同じ番号を付している。
ステップS2101およびステップS2102は、図8のフローチャートに記載したステップS804~S807、ステップS811~S814を、スペースの都合で各々まとめたステップである。追加された機能に対する処理は、ステップS2103~S2105の部分である。ステップS2103は、障害予見・検出機能部1905が、図8に記載のアルゴリズムで候補として残っている1つ以上の組み合わせに対して、それぞれ障害の発生可能性を算出するステップである。発生可能性の具体的な計算方法については、第4実施形態で説明したアルゴリズムと同様である。その後、導出部1908は、ステップS2104にて障害が発生する可能性が高いと判断できる組み合わせを候補から除外する。最終的に候補が残っていれば(S2105:YES)、第1実施形態と同様とする。複数の候補が残っている場合には、障害の発生確率が低いものから順番に選ぶなどしても良い。もし残っていなければ(S2105:NO)、導出部1908は、エラー応答を返す。
この図21のフローチャートでは、アルゴリズム開始時に候補として与えられた領域のうち、障害発生の可能性が高いものを単純に除外するだけで、それ以外の措置は行わなかった。これに対して、障害発生の可能性が高いと判断されて除外された候補について、影響範囲を特定したうえで既存の割り当て済み領域が影響を受けるかどうかを確認し、影響を受ける場合には対象となる要求元に対して障害通知を通知するように変更しても良い(この過程は図示していない)。
なお、ステップS2103の候補となる組み合わせに対して障害発生確率を算出するステップでは、組み合わせを構成するメモリ・ストレージモジュールごとに障害の発生可能性を算出したうえで、組み合わせ全体に対する障害発生の可能性を求める。また、一度算出したメモリ・ストレージモジュールに対しては、組み合わせが異なる場合であっても、再度算出する必要は無い。
図22は、図21のフローのステップS2103において拡張通知機能部1904が実行する処理のフローチャートである。図20に示したシーケンス図のステップS2007~ステップS2010に相当し、その内容を詳細に描き下している。拡張通知機能部1904は、障害予見・検出機能部1905から推定結果を受け取ると(S2202)、割当情報保存部1912から現在の割当情報を取得する(S2203:図20のS2008~S2009)。その後、拡張通知機能部1904は、推定結果に含まれる情報(障害が予見された箇所の物理アドレスやアクセスに用いられたタグなどの情報が含まれる)と前ステップ(S2203)で取得した割当情報とを参照し、通知された箇所ごとに影響を受ける範囲を特定する(S2204)。ここで、影響を受ける範囲とは、障害が発生したときにメモリ・ストレージモジュールの構造に起因して通知されたアドレスの周辺で同時に影響を受ける範囲を指す。この範囲は、通知されたアドレスを含む割り当て済み領域に限定されない。
影響を受ける範囲が特定できたら、拡張通知機能部1904は、当該範囲を含む割り当て済み領域の特定と、それに対応するタスクの識別子を取得する(S2205:図20のS2010)。拡張通知機能部1904は、取得した情報を通知先リストとして保持しておく(S2206)。その後、拡張通知機能部1904は、障害予見・検出機能部1905から通知された推定結果をすべてチェックしたかどうかを確認する(S2207)。
すべての推定結果を確認した場合(S2207:YES)、拡張通知機能部1904は、通知リストとして保持しておいた情報を基に、要求確保元に対して障害通知を送信する(S2208:図20のS2010)。まだ確認すべき推定結果が残っている場合(S2207:NO)、拡張通知機能部1904は、次の通知された要素に注目し(S2209)、S2204に戻る。
図23は、第5実施形態のメモリ・ストレージプール装置における障害予見・検出の流れを示すシーケンス図である。図23は、QoS制御機能部1907が内部QoSパラメタの導出を終え、QoSパラメタ保存部1910に保存するまでの間に追加する新しい動作として記載している。本シーケンスは、QoS制御機能部1907が、内部QoSパラメタの導出完了タイミングで、候補となるメモリ・ストレージモジュールの領域を障害予見・検出機能部1905に通知することで開始する(S2301)。通知を受けた障害予見・検出機能部1905は、監視結果保存部1911を参照して監視結果を読み出し、障害推定・検出動作を行う(このステップは、図20のS2005、S2006と同じであるため、同じ番号を付している)。次いで、障害予見・検出機能部1905は、割当候補から障害が発生する可能性が高い候補を除外する(S2302)(これは、図21のフローチャートで説明したS2104に相当する)。そして、障害予見・検出機能部1905は、障害発生の可能性が低い候補だけをQoS制御機能部1907へ応答として返す(S2303)。その後の障害予見・検出機能部1905の動作は、図20で示した第4実施形態と同じである(S2007~S2011)。
以上が、第5実施形態のメモリ・ストレージプール装置1900の説明である。第5実施形態のメモリ・ストレージプール装置1900においては、割り当て要求を処理する際に障害が発生する可能性が高い領域をあらかじめ除外することで、システムとしての動作を安定させることができ、外部QoS要求を安定的に満たすことができるようになる。また、候補を除外する時に障害が発生する可能性が高い割り当て済み領域に対しても、割当領域を使用するタスクの情報を含む通知を送信することで、障害の発生前に対処することができてシステム全体のQoSを適切に維持できるようになる。
(第6実施形態)
次に、第6実施形態について説明する。第6実施形態は、第5実施形態の変化形である。第5実施形態では、領域を確保するステップの中で障害発生の可能性を算出していた(図21のS2103)。この場合、領域確保時に障害発生の可能性を算出する時間が必要となり、多くの時間がかかる恐れがある。そこで、第6実施形態では、障害発生の可能性を事前に計算しておき、その結果を参照することで、領域確保時に必要となる時間を短縮する。
次に、第6実施形態について説明する。第6実施形態は、第5実施形態の変化形である。第5実施形態では、領域を確保するステップの中で障害発生の可能性を算出していた(図21のS2103)。この場合、領域確保時に障害発生の可能性を算出する時間が必要となり、多くの時間がかかる恐れがある。そこで、第6実施形態では、障害発生の可能性を事前に計算しておき、その結果を参照することで、領域確保時に必要となる時間を短縮する。
図24は、第6実施形態のメモリ・ストレージプール装置2401の機能ブロック図である。メモリ・ストレージプール装置2401の中に、障害予見・検出機能部2402が定期的に実行する障害発生の可能性を算出した結果を保持する評価結果保存部2403が追加されている。
図25は、評価結果保存部2403に保存される情報の例を示す図である。各エントリは、障害の予見・検出処理を行って記録した時刻(記録時刻フィールド)、予見・検出処理の対象としたメモリ・ストレージモジュール(評価対象フィールド)、障害が発生する可能性(障害可能性フィールド)、予見または検出された障害の内容(障害内容フィールド)で構成される。なお、障害の範囲が明確に管理できる場合には、その範囲を含むフィールドを合わせて管理しても良い。
図25のエントリは、障害予見・検出機能部2402が障害の可能性を算出する度に適切に追加されていく。記録後に所定の時間が経過したり、同じ評価対象に対するエントリ数が閾値を超えたりした場合には、古いエントリを削除してよい。
第6実施形態では、現在時刻T5(T5>T4、|T5-T4|≦T:Tは記録の鮮度に関する閾値)の時に障害予見・検出処理を実行する必要が生じると、最も新しい記録時刻T4を参照することにより、メモリ・ストレージモジュールM1にスループット低下の障害が発生する可能性がV41である、と結論づける。また、記録時刻T3が|T5-T3|>Tであるならば(=記録の鮮度が低い)、障害予見・検出機能部2402は、この情報は参照せず、メモリ・ストレージモジュールM2に対しては、新たに障害予見・検出処理を実行してよい。
第6実施形態のフローチャートは、図21に示した第5実施形態のフローチャートにおいて、ステップS2103で可能性を計算せずに過去の計算結果を参照するように置き換えたものである。よって、図21に相当するフローチャートは省略する。
図26は、第6実施形態のメモリ・ストレージプール装置における障害予見・検出の流れを示すシーケンス図である。前述のように、第6実施形態では、障害予見・検出機能部2402は、定期的に実行している監視動作および障害予見・検証動作の結果を保存しておく。そのための動作が図26の上半分であり、障害予見・検出機能部2402は、S2601で、障害推定・検出の結果を、実行した時刻とともに評価結果保存部2403に保存している。
第5実施形態と同様に、QoS制御機能部1907から障害予見・検出機能部2402へ内部QoSパラメタの導出が完了したことが通知される(S2301)。その後、障害予見・検出機能部2402は、通知された候補となる領域に対応するメモリ・ストレージモジュールに対する推定結果の有無を確認する(S2602)。障害予見・検出機能部2402は、適切な結果があれば読み出し(S6503)、無ければ第4実施形態で説明した方法で監視結果を読み出したうえで、障害の予見・検出処理を行う。その後、障害予見・検出機能部2402は、結果を確認し、必要に応じて割り当て候補からの除外処理を行う(S2604)。そして、障害予見・検出機能部2402は、その結果をQoS制御機能部1907に返す(S2605)。以降の処理は、第5実施形態と同じである(S2007~S2011)。
以上が、第6実施形態のメモリ・ストレージプール装置1900の説明である。第6実施形態のメモリ・ストレージプール装置1900においては、第5実施形態の効果に加えて、事前に評価した障害の予見・検出処理の結果を使って領域割当時に候補の絞り込みを行うことで、より短い時間で外部QoSを安定的に確保しやすい領域の割り当てを実現できる。
(第7実施形態)
次に、第7実施形態について説明する。第7実施形態は、第6実施形態の変化形である。第6実施形態では、領域を確保するステップの中で事前に実行した障害予見・検出結果を参照し、障害が発生する可能性が高い候補を除外していた。一方、実際に情報を保存するまで利用する領域が確定しない割り当て方法も存在する(Thin Provisioningなど)。この際、情報を保存するタイミングで、候補となる領域に対して障害の発生可能性を確認し、その可能性が低い領域に保存するようにすれば、より外部QoSを確保しやすくなると考えられる。ただし、ごく僅かな時間で障害が発生する可能性が低い領域を特定する必要があり、第5実施形態または第6実施形態で説明した方法は適用できない。
次に、第7実施形態について説明する。第7実施形態は、第6実施形態の変化形である。第6実施形態では、領域を確保するステップの中で事前に実行した障害予見・検出結果を参照し、障害が発生する可能性が高い候補を除外していた。一方、実際に情報を保存するまで利用する領域が確定しない割り当て方法も存在する(Thin Provisioningなど)。この際、情報を保存するタイミングで、候補となる領域に対して障害の発生可能性を確認し、その可能性が低い領域に保存するようにすれば、より外部QoSを確保しやすくなると考えられる。ただし、ごく僅かな時間で障害が発生する可能性が低い領域を特定する必要があり、第5実施形態または第6実施形態で説明した方法は適用できない。
そこで、第7実施形態では、領域割り当て要求の際に割り当てた領域ごとに、障害の発生可能性が低い小さな固定長の断片を単位とするリスト「割当可能リスト」を用意しておき、情報の保存要求が発生した際には、そのリストから必要なサイズを取り出して利用するようにする。
図27は、第7実施形態のメモリ・ストレージプール装置2701の機能ブロック図である。第6実施形態の機能ブロックに対して、前述の「割当可能リスト」を保存する割当可能リスト保存部2702が追加されている。また、これに関連する部分についても適宜変更されるため、新しい番号を付している。
図28は、割当可能リスト保存部2702で保存する割当可能リストの例を示す図である。図28(a)の割当可能リストは、領域ごとに1つのエントリをもち、各エントリは、更新時刻と複数の断片に対応する情報が格納されたリストで構成されている。エントリは、メモリ・ストレージプール装置2701が領域確保要求を受信して内部QoSパラメタの導出などを実行した結果として生成される。例えば、図2のステップS207に連続するタイミングで割当可能リスト保存部2702に追加される。1つのエントリは、図4で示す割当情報の1つのエントリに対応する。
図28(b)は、割当可能リストの別の例である。図4で示す割当情報において1つの領域を複数のメモリ・ストレージモジュールで構成する場合、メモリ・ストレージモジュールごとに障害が発生する可能性がある場所が異なるため、リストを分けて構成するようにしてもよい。図28(b)では、装置フィールドが追加されており、同じ領域に対して装置ごとに分けて断片情報のリストを構築している。なお、断片情報を保存する際に、複数の連続する断片を、「先頭断片のアドレス」と「個数」のような形にまとめて管理するようにしても良い。
第7実施形態における障害予見・検出機能部2704は、第5実施形態で説明した評価結果保存部2403への結果保存処理に加えて、各割り当て済み領域を構成する小断片のリストを作成し、割当可能リスト保存部2702を更新する処理を実行する。第5実施形態では、障害が発生する可能性がある範囲が明確な場合に、その部分を特定する形で情報を保存したが、第7実施形態では、障害が発生する可能性が無い部分を割当可能リスト保存部2702に追加していく。例えば、アドレスA1~A2の範囲が障害の発生可能性が高いと予見している場合、図28の要素1には、先頭からアドレスA1の直前までの断片に関する情報が格納され、要素2には、アドレスA2から割り当てられた領域の最後までの断片に関する情報が格納されることになる。なお、すべての断片を割当可能リスト保存部2702に追加するのではなく、何らかの上限を設けて、その数まで登録するようにしてもよい。
割当管理機能部2705には、実際に情報を保存するための断片が要求された時に、前述の割当可能リスト保存部2702に保存されているリストを参照して保存場所を決める処理が追加される。
以上が、第7実施形態のメモリ・ストレージプール装置2701の機能ブロック図における、第6実施形態のメモリ・ストレージプール装置2401の機能ブロック図からの変更点である。なお、第7実施形態の動作フローおよび動作シーケンスは、第6実施形態の機能ブロック図に対する説明からおよそ自明であるため省略する。
以上が、第7実施形態の説明である。第6の実施形態の効果に加えて、実際に情報を保存する直前に使用するメモリ・ストレージモジュールの容量を割り当てる方式に対応できるようにしたことで、第7実施形態のメモリ・ストレージプール装置2701は、メモリ・ストレージモジュールの利用効率を高めつつ、事前に評価した障害の予見・検出処理の結果を使って保存場所を限定し、より短い時間で外部QoSを安定的に確保しやすい状況にすることができる。
(第8実施形態)
これまでに説明した第1実施形態から第7実施形態までの各実施形態では、監視機能や割当管理機能、障害予見・検出機能などをメモリ・ストレージプール装置側で実行していた。これに対して、第8実施形態では、外部コンピュート装置上のソフトウェアとしてそれらの機能を実行する。ここでは、第4実施形態を例に示すが、他の実施形態でも同様に実現できる。
これまでに説明した第1実施形態から第7実施形態までの各実施形態では、監視機能や割当管理機能、障害予見・検出機能などをメモリ・ストレージプール装置側で実行していた。これに対して、第8実施形態では、外部コンピュート装置上のソフトウェアとしてそれらの機能を実行する。ここでは、第4実施形態を例に示すが、他の実施形態でも同様に実現できる。
図29は、第8実施形態を実現するシステムの模式図である。外部コンピュート装置2901と、メモリ・ストレージプール装置2920A、2920Bとが、何らかの通信路を介して接続している様子を示している。図29では、メモリ・ストレージプール装置は2台で記載しているが、その数は2台に限定されない。通信路は、IEEE802.3を使用するネットワークであってもよいし、ローカルバスのプロトコルを光ファイバで直接送受信するようなネットワークでもよい。
外部コンピュート装置2901は、1つ以上のプロセッサで構成されるプロセッサ群2904と、ローカルメモリ2905と、外部と通信するI/F部2906とを含む。一般的に計算機を構成する他の構成要素は図29には記載していない。外部コンピュート装置2901上では、ハードウェアを抽象化して複数のアプリケーションを実行可能にするOS・仮想化機構2915が動作する。そのうえで、仮想マシン(VM)群2902A、2902B、…や、コンテナ群2902C、2902Dが動作する。さらに、VMやコンテナと同様に、メモリ・ストレージプール管理機能部2903が動作する。
メモリ・ストレージプール管理機能部2903は、第4実施形態で説明した制御部1902相当の機能が動作する。割当管理機能部2907、拡張通知機能部2908、障害予見・検出機能部2912、監視機能部2910、アドレス変換機能部2913は、各々ソフトウェアとして実装されている。各機能が実行時に使用するデータは、ローカルメモリ2905に格納されるが、そのうち、第8実施形態に特徴的な情報として、監視結果保存部2911、割当情報保存部2909、変換情報保存部2914に保存される情報がある。ここでは専用の名前を付しているが、ローカルメモリ2905上に確保した領域に適切な構造で保存するデータである。
プロセッサ群2904上で動作するVMやコンテナは、メモリ・ストレージプール装置上のメモリ・ストレージリソースが必要な際に、メモリ・ストレージプール管理機能部2903に対して要求を送信し、領域の割り当てを受ける。VMやコンテナによる、割り当てられた領域へのアクセスは、OS・仮想化機構2915のサポートによりメモリ・ストレージプール管理機能部2903のアドレス変換機能部2913に送られる。そして、アクセス先の論理アドレスが、割り当て済みのメモリ・ストレージプール装置とその内部のメモリ・ストレージモジュールに対応する物理アドレスに書き換えられる。書き換えられたメモリ・ストレージプール装置へのアクセス要求は、I/F部2906を通じて適切なメモリ・ストレージプール装置へと送信される。
アドレス変換機能部2913によって変換されたアドレスを含むアクセス要求を受信したメモリ・ストレージプール装置2920Aまたは2920Bは、当該アクセス要求を制御部2922Aまたは2922Bによって解釈し、適切なメモリ・ストレージモジュール2923A~2926Aまたは2923B~2926Bに対する処理として実行する。
図29に示したシステム概要図における各機能の動作は、第1実施形態から第7実施形態までで説明した通りである。ただし、制御部の各機能がネットワークを介して接続される外部コンピュート装置上で実行されているため、監視機能部が実行する監視処理は装置内に閉じた監視方法ではなく、何らかのネットワークを介して監視する方法に限られる。それ以外の動作は、第1実施形態から第7実施形態までで説明した各実施形態と同じである。
図29では、メモリ・ストレージプール管理機能を、VMやコンテナが動作する外部コンピュート装置上で実行するように記載した。しかし、専用の外部コンピュート装置で実行するようにしてもよいし、外部コンピュート装置のリソースを管理するオーケストレータ機能を実行する装置の上で実行するようにしても良い。
図29では、アドレス変換機能部も、メモリ・ストレージプール管理機能部の中でソフトウェアにより実現するとした。これに対して、アドレスの変換を高速で行うことを目的に、ネットワークインタフェースや専用のハードウェアを用意し、その部分にオフロードしても良い。その場合、アドレス変換機能部2913と変換情報保存部2914とをオフロードし、さらに、変換情報保存部2914の内容を外部から操作するためのアプリケーションインタフェースを定義することで、ソフトウェアとして実行されているメモリ・ストレージプール管理機能部から適切に制御できる。
以上が、第8実施形態の説明である。冒頭で説明したように、第4実施形態だけではなく他の実施形態にも同じように適用できる。メモリ・ストレージプールから複雑な処理が必要な管理機能を分離することで、メモリ・ストレージプール装置を簡素化してシステムとしての安定性を高めることができる。それにより、システムとしてのQoSを高めることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…メモリ・ストレージプール装置、101…I/F部、102…制御部、
103…割当管理機能部、106…監視機能部、107…QoS制御機能部、108…導出部、109…設定部、110…QoSパラメタ保存部、111…監視結果保存部、112…割当情報保存部、113…アドレス変換部、114…変換情報保存部、115…スイッチ、116~119…メモリ・ストレージモジュール、1500…メモリ・ストレージプール装置、1501…QoS制御機能部、1502…見直し部、1503…監視ルール保存部、1900…メモリ・ストレージプール装置、1902…制御部、1903…割当管理機能部、1904…拡張通知機能部、1905…障害予見・検出機能部、1906…監視機能部、1907…QoS制御機能部、1908…導出部、1909…設定部、1910…QoSパラメタ保存部、1911…監視結果保存部、1912…割当情報保存部、1916~1919…メモリ・ストレージモジュール、2401…メモリ・ストレージプール装置、2402…障害予見・検出機能部、2403…評価結果保存部、2701…メモリ・ストレージプール装置、2702…割当可能リスト保存部、2703…割当可能リスト保存部、2704…障害予見・検出機能部、2901…外部コンピュート装置、
2902A、2902B…仮想マシン(VM)群、2902C、2902C、2902D…コンテナ群、2903…メモリ・ストレージプール管理機能部、2904…プロセッサ群、2905…ローカルメモリ、2906…I/F部、2907…割当管理機能部、2908…拡張通知機能部、2909…割当情報保存部、2910…監視機能部、2911…監視結果保存部、2912…障害予見・検出機能部、2913…アドレス変換機能部、2914…変換情報保存部、2920A、2920B…メモリ・ストレージプール装置、2922A、2922B…制御部、2923A~2926A、2923B~2926B…メモリ・ストレージモジュール。
103…割当管理機能部、106…監視機能部、107…QoS制御機能部、108…導出部、109…設定部、110…QoSパラメタ保存部、111…監視結果保存部、112…割当情報保存部、113…アドレス変換部、114…変換情報保存部、115…スイッチ、116~119…メモリ・ストレージモジュール、1500…メモリ・ストレージプール装置、1501…QoS制御機能部、1502…見直し部、1503…監視ルール保存部、1900…メモリ・ストレージプール装置、1902…制御部、1903…割当管理機能部、1904…拡張通知機能部、1905…障害予見・検出機能部、1906…監視機能部、1907…QoS制御機能部、1908…導出部、1909…設定部、1910…QoSパラメタ保存部、1911…監視結果保存部、1912…割当情報保存部、1916~1919…メモリ・ストレージモジュール、2401…メモリ・ストレージプール装置、2402…障害予見・検出機能部、2403…評価結果保存部、2701…メモリ・ストレージプール装置、2702…割当可能リスト保存部、2703…割当可能リスト保存部、2704…障害予見・検出機能部、2901…外部コンピュート装置、
2902A、2902B…仮想マシン(VM)群、2902C、2902C、2902D…コンテナ群、2903…メモリ・ストレージプール管理機能部、2904…プロセッサ群、2905…ローカルメモリ、2906…I/F部、2907…割当管理機能部、2908…拡張通知機能部、2909…割当情報保存部、2910…監視機能部、2911…監視結果保存部、2912…障害予見・検出機能部、2913…アドレス変換機能部、2914…変換情報保存部、2920A、2920B…メモリ・ストレージプール装置、2922A、2922B…制御部、2923A~2926A、2923B~2926B…メモリ・ストレージモジュール。
Claims (23)
- 1つ以上の演算装置と通信路を介して接続可能な情報記憶装置であって、
1つ以上の記憶装置を含む記憶部と、
前記記憶部の制御を司り、前記演算装置から記憶領域の割当要求が受信された場合、前記1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成し、前記割当要求の送信元である前記演算装置と対応づけて管理する割当管理機能部を備える制御部と、
前記割当管理機能部によって管理される前記論理記憶領域に関する前記1つ以上の記憶装置の記憶領域の割当情報を保存する割当情報保存部と、
前記論理記憶領域を利用するための通信に対して前記通信路で満たすことが期待される品質要求の全部または一部を保存するQoS(Quality of Service)パラメタ保存部と、
前記記憶部および前記通信路に対する監視の結果を保持する監視結果保存部と、
を具備し、
前記制御部は、
前記記憶部の動作状態、前記記憶部に含まれる、使用に伴って変化する前記1つ以上の記憶装置の特性、および前記通信路の通信状況を監視し、その結果を前記監視結果保存部に保存する監視機能部と、
前記割当情報保存部、前記QoSパラメタ保存部および前記監視結果保存部に保存されている情報から前記情報記憶装置に設定する内部QoSパラメタを導出し、前記通信路に対する品質要求と関連づけて前記QoSパラメタ保存部に保存するQoS制御機能部と、
をさらに備える、
情報記憶装置。 - 前記QoS制御機能部は、新たな論理記憶領域の割当要求、割り当て済みの論理記憶領域を変更する要求、または割り当て済みの論理記憶領域に対する前記品質要求を変更する要求のいずれかが受信された場合、新たな内部QoSパラメタを導出する請求項1に記載の情報記憶装置。
- 前記QoS制御機能部は、前記新たな内部QoSパラメタを導出する過程において、前記記憶部への情報保存または前記記憶部からの読み出しの処理優先度、前記記憶部への情報保存または前記記憶部からの読み出しに使用する帯域、または前記情報記憶装置の内部通信路における伝送優先度を理由として、前記新たな内部QoSパラメタが設定済みの内部QoSパラメタと共存できないことが判明した場合、前記新たな内部QoSパラメタの導出を中断し、
前記割当管理機能部は、前記受信された要求を拒否する、
請求項2に記載の情報記憶装置。 - 前記QoS制御機能部は、
前記新たな内部QoSパラメタである第1の内部QoSパラメタが前記設定済みの内部QoSパラメタである第2の内部QoSパラメタと共存できないと判断した場合、前記監視結果保存部に保存されている監視結果と、前記割り当て済みの論理記憶領域に対する品質要求および前記第2の内部QoSパラメタとを比較し、
前記第2の内部QoSパラメタを変更しても前記品質要求を達成しうると判断できる場合、前記第1の内部QoSパラメタおよび前記第2の内部QoSパラメタとは異なる第3の内部QoSパラメタを導出する、
請求項3に記載の情報記憶装置。 - 前記QoS制御機能部は、前記内部QoSパラメタの導出に使用する最小割当単位を変更して前記第3の内部QoSパラメタを導出する請求項4に記載の情報記憶装置。
- 前記監視機能部は、割り当て済みの論理記憶領域に対応する前記品質要求と監視結果とを比較して見直しの条件が満たされたか否かを判断し、条件が満たされた場合、前記QoS制御機能部に対して、前記内部QoSパラメタの見直しを前記満たされた条件とともに通知し、
前記QoS制御機能部は、前記監視機能部から通知された条件が解消されるように前記内部QoSパラメタを見直す、
請求項2に記載の情報記憶装置。 - 前記QoS制御機能部は、前記内部QoSパラメタを見直す場合、(1)割り当て済みの論理記憶領域を変更せずに処理の優先度を変更する見直し、(2)割り当て済みの論理記憶領域に保存されている情報を移動せずに情報の入出力が可能な見直し、(3)割り当て済みの論理記憶領域に保存されている情報の移動を伴う見直し、の順序で見直す請求項6に記載の情報記憶装置。
- 前記監視機能部は、前記1つ以上の記憶装置の特性に影響を与える事象または特性の変化を捉える事象として、割り当て済みの論理記憶領域ごとに、読み出し、書き込み、消去の回数、誤り率、エラー訂正アルゴリズムによる訂正処理の実行回数、無効な情報が保存されている記憶領域を再利用するためのガベージコレクションの実行回数および実行間隔を監視する請求項6に記載の情報記憶装置。
- 1つ以上の演算装置と通信路を介して接続可能な情報記憶装置であって、
1つ以上の記憶装置を含む記憶部と
前記記憶部の制御を司り、前記演算装置から記憶領域の割当要求が受信された場合、前記1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成し、前記割当要求の送信元である前記演算装置と対応づけて管理する割当管理機能部を備える制御部と、
前記割当管理機能部によって管理される前記論理記憶領域に関する前記1つ以上の記憶装置の記憶領域の割当情報を保存する割当情報保存部と、
前記記憶部に対する監視の結果を保持する監視結果保存部と、
前記演算装置上で実行される前記論理記憶領域を使用するサービスの識別子および前記サービスに関して前記通信路を介して受信され得る情報の読み出しまたは書き込み要求に含まれる第1アドレスを、前記記憶装置の識別子および前記記憶装置内の物理的な位置を表す第2アドレスと対応づけて保存する変換情報保存部と、
前記変換情報保存部に保存されている情報に基づき、前記第1アドレスを前記記憶装置の識別子および前記第2アドレスに変換するアドレス変換部と、
を具備し、
前記割当管理機能部は、前記サービスの識別子を取得し、前記論理記憶領域と対応づけて前記割当情報保存部に保存し、
前記制御部は、
前記記憶部に含まれる前記1つ以上の記憶装置の正常性を監視し、監視時刻、監視した記憶装置、前記記憶装置の監視対象となったアドレス、監視項目、監視した結果を前記監視結果保存部に保存する監視機能部と、
前記監視結果保存部に保存されている監視結果に基づき、前記1つ以上の記憶装置の少なくとも1つに障害が生じたこと、または障害が生じる可能性があることを検知する障害予見・検出機能部と、
前記記憶装置の障害または障害の可能性が検出された場合、前記割当情報保存部に保存されているサービスの識別子と前記変換情報保存部に保持されているアドレス情報とに基づき、障害または障害の可能性が検出された記憶装置の記憶領域を含む論理記憶領域を使用するサービスと、前記サービスに対する論理記憶領域の割り当てを要求した演算装置とを特定し、前記演算装置に対して、障害または障害の可能性がある旨の通知を前記サービスの識別子とともに送信する拡張通知機能部と、
をさらに備える、
情報記憶装置。 - 前記障害予見・検出機能部は、前記監視機能部が前記記憶装置から障害または前記記憶装置の状態変化に関するアラートを受信したとき、または、事前に設定された定期的なタイミングで、障害予見・検出処理を実行する請求項9に記載の情報記憶装置。
- 前記障害予見・検出機能部は、前記監視機能部の監視項目に対してアラート発生に関する閾値を設定する請求項10に記載の情報記憶装置。
- 前記障害予見・検出機能部は、前記監視項目のうち、事前に相関関係があると設定された、または予見・検出の過程で相関関係があると判断された複数の監視項目に対して、前記閾値を一括して設定する請求項11に記載の情報記憶装置。
- 前記障害予見・検出機能部は、障害の発生可能性および前記情報記憶装置の負荷に応じて前記閾値を設定する請求項11に記載の情報記憶装置。
- 前記障害予見・検出機能部は、前記監視機能部の監視結果に基づき、前記監視項目に対して監視間隔を設定する請求項10に記載の情報記憶装置。
- 前記障害予見・検出機能部は、障害の発生可能性および前記情報記憶装置の負荷に応じて前記監視間隔を設定する請求項14に記載の情報記憶装置。
- 前記障害予見・検出機能部による障害予見・検出結果を保持する評価結果保存部をさらに具備し、
前記制御部は、前記演算装置からの前記記憶領域の割当要求に応じて前記論理記憶領域の割り当て可否を判断するとき、前記評価結果保存部に保存されている障害予見・検出結果に基づき、割り当て予定の論理記憶領域における障害の予見・検出の有無を判定する請求項9に記載の情報記憶装置。 - 前記制御部は、前記割り当て予定の論理記憶領域について障害の予見・検出があった場合、前記拡張通知機能部を介して前記予見または検出された障害を前記サービスの識別子とともに前記演算装置へ通知する請求項16に記載の情報記憶装置。
- 割り当て済みの論理記憶領域に対する前記障害予見・検出機能部の実行結果から得られる障害の発生可能性が低い断片群の情報を保存する割り当て可能リストをさらに具備し、
前記制御部は、前記割り当て済みの論理記憶領域に情報を保存する場合、前記割り当て可能リストから障害の発生可能性が低い断片を取得し、当該断片に情報を保存する、
請求項9に記載の情報記憶装置。 - 前記制御部は、
前記記憶領域の割当要求が受信されたとき、前記障害予見・検出機能部を用いて障害予見・検出処理を実行し、その結果に基づき、前記割り当て可能リストを生成し、
事前に設定された間隔で、前記障害予見・検出機能部を用いて障害予見・検出処理を定期的に実行し、前記割り当て可能リストを更新する、
請求項18に記載の情報記憶装置。 - 演算装置と情報記憶装置とを含み、前記演算装置と前記情報記憶装置とが通信路を介して接続される制御システムであって、
前記情報記憶装置は、
1つ以上の記憶装置を含む記憶部と、
前記記憶部を制御する制御部と、
を具備し、
前記演算装置は、
前記1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成して管理する割当管理機能部と、
前記割当管理機能部によって管理される前記論理記憶領域に関する前記1つ以上の記憶装置の記憶領域の割当情報を保存する割当情報保存部と、
前記論理記憶領域を利用するための通信に対して前記通信路で満たすことが期待される通信品質要求の全部または一部を保存するQoSパラメタ保存部と、
前記記憶部および前記通信路に対する監視の結果を保持する監視結果保存部と、
前記記憶部の動作状態、前記記憶部に含まれる、使用に伴って変化する前記1つ以上の記憶装置の特性、および前記通信路の通信状況を監視し、その結果を前記監視結果保存部に保存する監視機能部と、
前記割当情報保存部、前記QoSパラメタ保存部および前記監視結果保存部に保存されている情報から前記情報記憶装置に設定する内部QoSパラメタを導出し、前記通信路に対する通信品質要求と対応づけて前記QoSパラメタ保存部に保存するQoS制御機能部と、
を具備する、
制御システム。 - 演算装置と情報記憶装置とを含み、前記演算装置と前記情報記憶装置とが通信路を介して接続される制御システムであって、
前記情報記憶装置は、
1つ以上の記憶装置を含む記憶部と、
前記記憶部を制御する制御部と、
を具備し、
前記演算装置は、
前記1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成して管理する割当管理機能部と、
前記割当管理機能部によって管理される前記論理記憶領域に関する前記1つ以上の記憶装置の記憶領域の割当情報を保存する割当情報保存部と、
前記記憶部に対する監視の結果を保持する監視結果保存部と、
前記演算装置上で実行される前記論理記憶領域を使用するサービスの識別子および前記サービスに関して前記通信路を介して受信され得る情報の読み出しまたは書き込み要求に含まれる第1アドレスを、前記記憶装置の識別子および前記記憶装置内の物理的な位置を表す第2アドレスと対応づけて保存する変換情報保存部と、
前記変換情報保存部に保存されている情報に基づき、前記第1アドレスを前記記憶装置の識別子および前記第2アドレスに変換するアドレス変換部と、
を具備し、
前記割当管理機能部は、前記サービスの識別子を取得し、前記論理記憶領域と対応づけて前記割当情報保存部に保存し、
前記記憶部に含まれる前記1つ以上の記憶装置の正常性を監視し、監視時刻、監視した記憶装置、前記記憶装置の監視対象となったアドレス、監視項目、監視した結果を前記監視結果保存部に保存する監視機能部と、
前記監視結果保存部に保存されている監視結果に基づき、前記記憶部に含まれる前記1つ以上の記憶装置の少なくとも1つに障害が生じたこと、または障害が生じる可能性があることを検知する障害予見・検出機能部と、
前記記憶装置の障害または障害の可能性が検出された場合、前記割当情報保存部に保存されているサービスの識別子と前記変換情報保存部に保持されているアドレス情報とに基づき、障害または障害の可能性が検出された記憶装置の記憶領域を含む論理記憶領域を使用するサービスと、前記サービスに対する記憶領域の割り当てを要求した演算装置とを特定し、前記演算装置に対して、障害または障害の可能性がある旨の通知を前記サービスの識別子とともに送信する拡張通知機能部と、
をさらに具備する、
制御システム。 - 1つ以上の演算装置と通信路を介して接続可能な、1つ以上の記憶装置を含む記憶部を具備する情報記憶装置の制御方法であって、
前記演算装置から記憶領域の割当要求が受信された場合、前記1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成し、前記割当要求の送信元である前記演算装置と対応づけて管理し、
前記論理記憶領域に関する前記1つ以上の記憶装置の記憶領域の割当情報を保存し、
前記論理記憶領域を利用するための通信に対して前記通信路で満たすことが期待される通信品質要求の全部または一部を保存し、
前記記憶部の動作状態、前記記憶部に含まれる、使用に伴って変化する前記1つ以上の記憶装置の特性、および前記通信路の通信状況を監視して、その結果を保存し、
前記保存されている割当情報、通信品質要求および監視結果から前記情報記憶装置に設定する内部QoSパラメタを導出し、前記通信路に対する通信品質要求と関連づけて保存する、
制御方法。 - 1つ以上の演算装置と通信路を介して接続可能な、1つ以上の記憶装置を含む記憶部を具備する情報記憶装置の制御方法であって、
前記演算装置から記憶領域の割当要求を受信した場合、前記1つ以上の記憶装置の記憶領域を用いて論理記憶領域を作成し、前記割当要求の送信元である前記演算装置と対応づけて管理し、
前記演算装置上で実行される前記論理記憶領域を使用するサービスの識別子および前記サービスに関して前記通信路を介して受信され得る情報の読み出しまたは書き込み要求に含まれる第1アドレスを、前記記憶装置の識別子および前記記憶装置内の物理的な位置を表す第2アドレスと対応づけて保存し、
前記保存されている前記第1アドレスと前記記憶装置の識別子および前記第2アドレスとの対応に基づき、前記第1アドレスを前記記憶装置の識別子および前記第2アドレスに変換し、
前記サービスの識別子を取得し、前記論理記憶領域と対応づけて保存し、
前記記憶部に含まれる前記1つ以上の記憶装置の正常性を監視し、監視時刻、監視した記憶装置、前記記憶装置の監視対象となったアドレス、監視項目、監視した結果を保存し、
前記保存されている監視結果に基づき、前記記憶部に含まれる前記1つ以上の記憶装置の少なくとも1つに障害が生じたこと、または障害が生じる可能性があることを検知し、
前記記憶装置の障害または障害の可能性が検出された場合、前記保存されているサービスの識別子と、前記保存されている前記第1アドレスと前記記憶装置の識別子および前記第2アドレスとの対応とに基づき、障害または障害の可能性が検出された記憶装置の記憶領域を含む論理記憶領域を使用するサービスと、前記サービスに対する論理記憶領域の割り当てを要求した演算装置とを特定し、前記演算装置に対して、障害または障害の可能性がある旨の通知を前記サービスの識別子とともに送信する、
制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022142385A JP2024037487A (ja) | 2022-09-07 | 2022-09-07 | 情報記憶装置、制御システムおよび制御方法 |
US18/461,217 US20240078174A1 (en) | 2022-09-07 | 2023-09-05 | Storage device, control system and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022142385A JP2024037487A (ja) | 2022-09-07 | 2022-09-07 | 情報記憶装置、制御システムおよび制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024037487A true JP2024037487A (ja) | 2024-03-19 |
Family
ID=90060792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022142385A Pending JP2024037487A (ja) | 2022-09-07 | 2022-09-07 | 情報記憶装置、制御システムおよび制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240078174A1 (ja) |
JP (1) | JP2024037487A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240070063A1 (en) * | 2022-08-30 | 2024-02-29 | Micron Technology, Inc. | Sequential garbage collection |
-
2022
- 2022-09-07 JP JP2022142385A patent/JP2024037487A/ja active Pending
-
2023
- 2023-09-05 US US18/461,217 patent/US20240078174A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240078174A1 (en) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467136B2 (en) | Adaptable data caching mechanism for in-memory cluster computing | |
US10601903B2 (en) | Optimizing dynamical resource allocations based on locality of resources in disaggregated data centers | |
US9477601B2 (en) | Apparatus and method for determining a sector division ratio of a shared cache memory | |
EP3089039B1 (en) | Cache management method and device | |
US20190356729A1 (en) | Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers | |
US20170235609A1 (en) | Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems | |
US9971548B1 (en) | Storage resource management employing performance analytics | |
Sayadnavard et al. | A reliable energy-aware approach for dynamic virtual machine consolidation in cloud data centers | |
US7590816B2 (en) | Computer system, management computer and storage system, and storage area allocation amount controlling method | |
US10977085B2 (en) | Optimizing dynamical resource allocations in disaggregated data centers | |
US20210011830A1 (en) | Predictive storage management system | |
US20160048413A1 (en) | Parallel computer system, management apparatus, and control method for parallel computer system | |
JP2015225656A (ja) | 分散型データグラフ記憶システム及び方法 | |
US20150067238A1 (en) | Computing Device and Method for Predicting Low Memory Conditions | |
JP5609730B2 (ja) | 情報処理プログラム及び方法、転送処理装置 | |
US10936374B2 (en) | Optimizing dynamic resource allocations for memory-dependent workloads in disaggregated data centers | |
JP3989879B2 (ja) | 価値ベース・キャッシング | |
US20210157725A1 (en) | Method and apparatus for dynamically adapting cache size based on estimated cache performance | |
KR102469927B1 (ko) | 분할 메모리 관리장치 및 방법 | |
US10871986B2 (en) | Virtual server migration after performance deterioration | |
US10893096B2 (en) | Optimizing dynamical resource allocations using a data heat map in disaggregated data centers | |
US20170017557A1 (en) | Storage controlling device, storage controlling method, and non-transitory computer-readable recording medium | |
US20180121237A1 (en) | Life cycle management of virtualized storage performance | |
JPWO2015045046A1 (ja) | 計算機システムおよび計算機システムのメモリ割当調整方法 | |
US20240078174A1 (en) | Storage device, control system and control method |