JP2019528517A - 低コストハードウェアを使用して記憶装置の待ち時間を改善する方法 - Google Patents

低コストハードウェアを使用して記憶装置の待ち時間を改善する方法 Download PDF

Info

Publication number
JP2019528517A
JP2019528517A JP2019504136A JP2019504136A JP2019528517A JP 2019528517 A JP2019528517 A JP 2019528517A JP 2019504136 A JP2019504136 A JP 2019504136A JP 2019504136 A JP2019504136 A JP 2019504136A JP 2019528517 A JP2019528517 A JP 2019528517A
Authority
JP
Japan
Prior art keywords
storage system
free space
information
volume
write
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.)
Granted
Application number
JP2019504136A
Other languages
English (en)
Other versions
JP6695000B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2019528517A publication Critical patent/JP2019528517A/ja
Application granted granted Critical
Publication of JP6695000B2 publication Critical patent/JP6695000B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本明細書に記載する例示の実施例は、ホストコンピュータ上で稼動するアプリケーションが関与し、記憶インフラストラクチャを管理するように構成された、システムおよび方法を対象とする。アプリケーションは、既に割り当てられているリソースを管理するだけではなく、そのアプリケーションに対するリソースの割当ておよび割当て解除も管理する。リソースは、実行されているプロセスのタイプに基づいて割当ておよび割当て解除を行うことができ、一次ストレージシステムの障害が起こると、接続されたフェールオーバーストレージシステムノードに対して実行される優先順位の高いプロセスに優先順位が与えられ、かかるフェールオーバーストレージシステムノードにおける優先順位の低いプロセスは動作不能にされる。

Description

本開示は、概して、ストレージシステムに関し、より具体的には、ストレージシステムの待ち時間の改善を容易にすることに関する。
オンライン取引処理(OLTP)を容易にするため、OLTPを容易にするストレージシステムは、取引処理システム(TPS)よりも十分に短い待ち時間を有する。したがって、かかる関連技術の記憶装置の実現には、待ち時間のため、オールフラッシュアレイ(AFA)の形態のフラッシュが必須である。かかるAFAの実現は高価な傾向にある。更に、TPSの実現は、ダウン時間を最小限に抑えるとともに、システム障害インシデントの間の性能低下が最小である必要がある。したがって、関連技術のTPSの実現には予備システムが必須であり、それによってハードウェア費用が増加する。
TPSの実現が、予備システムの代わりに解析処理システム(APS)のボリュームに複製データをコピーすることができる場合、予備システムのハードウェアコストを低減することができる。このように、関連技術の実施例では、APSをTPSとともに利用して、TPSに記憶されたデータを解析することができる。かかる関連技術の実施例では、OLTPは、システム障害の間、経路を切り替え、APSのボリュームから複製データにアクセスすることができる。
一例の関連技術の実施例では、第1のボリュームが第1のストレージシステムからのものであり、第2のボリュームが第2のストレージシステムからのものである、ストレージシステムがある。第1のボリュームおよび第2のボリュームは、高可用性ペアとして設定され、仮想ボリュームと関連付けられる。かかる仮想ボリュームは複数のボリュームを含むことができる。かかる関連技術の実施例では、経路を、実ボリュームとホストコンピュータとの間の代わりに、仮想ボリュームとホストコンピュータとの間で接続することができる。更に、経路切替えプログラムは、仮想ボリュームに割り当てられた経路の中から、アクセスされるべきボリュームへの経路を選択する。かかるストレージシステムの一例は、例えば、米国特許第8,943,286号に記載されており、その全体をあらゆる目的で参照により本明細書に援用する。
関連技術の実施例では、OLTPがAPSからの複製データにアクセスすると、OLTPのアクセス待ち時間が悪化する。APSは、ビッグデータ記憶装置の実装を容易にするAPSのスケーラビリティ要件により、安価なディスクを有する汎用ハードウェア上の、ソフトウェアデファインドストレージ(SDS)で構成されてもよい。
関連技術の実施例では、TPSとAPSとの間でドライブの違いがある場合がある。APSの実施例には、安価であるが、ビッグデータ解析などの解析処理の場合に、待ち時間が長く記憶速度が遅いディスクが必須のことがある。フラッシュデバイスを使用して、TPSの実装に関する短い待ち時間の要件を満たすことができる。
このように、TPSの障害の間に起こり得る、TPSからのボリュームからAPSのボリュームへのアクセスターゲットの変更の際に、OLTPのアクセス待ち時間を遅延させてもよい。例示の実施例は、スイッチオーバーによって起こることがある、起こり得るアクセス待ち時間の問題に対処することを対象とする。
例示の実施例では、ストレージシステムは、フラッシュまたはメモリに可能な限りデータを割り当てるのに、ディスクの種類とメモリサイズとを考慮することによって、ボリュームを選択する。かかる実施例は、ストレージシステムの障害の間に、ディスクにアクセスする頻度を低減することができる。ストレージシステムにおける障害が発生すると、フラッシュデバイスを有さないSDSノードは、データをディスクからメモリにロードし、フラッシュデバイスを有するSDSノードは、記憶プロセス以外のプロセスを終わらせるように構成される。
例示の実施例は、記憶インフラストラクチャを規定するアプリケーションを利用する。かかる実施例は、記憶装置の管理者と通信して記憶インフラストラクチャを変更する必要なく、アプリケーションを迅速に柔軟に開発するのに、アプリケーションプログラマによって使用されてもよい。
本開示の態様は、第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第2のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第1のストレージシステムを含む。第1のストレージシステムは、第2のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第2のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第2のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理するように構成されたメモリと、データの書込みコマンドをホストから受信すると、データが第1のストレージシステムまたは第2のストレージシステムに書き込まれるべきかを判定するように構成されたプロセッサとを含むことができる。データが第2のストレージシステムに書き込まれるべきと判定された場合、プロセッサは、第2のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択するように構成される。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、プロセッサは、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新し、第2のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行するように構成される。
本開示の態様は、更に、第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第2のストレージシステムに、通信可能に連結された第1のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとの方法を含む。方法は、第2のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第2のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第2のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理することと、データの書込みコマンドをホストから受信すると、データが第1のストレージシステムまたは第2のストレージシステムに書き込まれるべきかを判定することとを含むことができる。データが第2のストレージシステムに書き込まれるべきと判定された場合、方法は更に、第2のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択することを含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、方法は更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新することと、第2のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行することとを含むことができる。
本開示の態様は、更に、第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第2のストレージシステムに、通信可能に連結された第1のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとのコンピュータプログラムを含む。コンピュータプログラムは、第2のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第2のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第2のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理し、データの書込みコマンドをホストから受信すると、データが第1のストレージシステムまたは第2のストレージシステムに書き込まれるべきかを判定する、命令を含むことができる。データが第2のストレージシステムに書き込まれるべきと判定された場合、命令は更に、第2のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択することを含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、命令は更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新することと、第2のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行することとを含むことができる。コンピュータプログラムの命令は、非一時的コンピュータ可読媒体に記憶され、1つまたは複数のプロセッサによって実行されるように構成されてもよい。
本開示の態様は、更に、第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第2のストレージシステムに、通信可能に連結された第1のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとのコンピュータプログラムを含む。コンピュータプログラムは、第2のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第2のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第2のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理し、データの書込みコマンドをホストから受信すると、データが第1のストレージシステムまたは第2のストレージシステムに書き込まれるべきかを判定する、命令を含むことができる。データが第2のストレージシステムに書き込まれるべきと判定された場合、命令は更に、第2のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択することを含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、命令は更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新することと、第2のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行することとを含むことができる。コンピュータプログラムの命令は、非一時的コンピュータ可読媒体に記憶され、1つまたは複数のプロセッサによって実行されるように構成されてもよい。
本開示の態様は、更に、第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第2のストレージシステムに、通信可能に連結された第1のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとのシステムを含む。システムは、第2のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第2のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第2のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理する手段と、データの書込みコマンドをホストから受信すると、データが第1のストレージシステムまたは第2のストレージシステムに書き込まれるべきかを判定する手段とを含むことができる。データが第2のストレージシステムに書き込まれるべきと判定された場合、システムは更に、第2のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択する手段を含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、システムは更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新する手段と、第2のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行する手段とを含むことができる。
図1A〜1Cは、例示の実施例が適用されてもよいシステムの例示の物理的構成を示す図である。
例示の実施例による、SDSのボリューム、プール、および記憶デバイスの間の例示の関係を示す図である。
例示の実施例による、ホストコンピュータのメモリの論理的レイアウトを示す図である。
例示の実施例による、ストレージシステムのメモリの論理的レイアウトを示す図である。
例示の実施例による、SDSノードにおけるメモリの例示の論理的レイアウトを示す図である。
例示の実施例による、ノード管理テーブルの論理的レイアウトを示す図である。
例示の実施例による、ボリューム管理テーブルの論理的レイアウトを示す図である。
例示の実施例による、OLTPビットマップの論理的レイアウトを示す図である。
例示の実施例による、I/Oプロセスの例示のフローを示す図である。
例示の実施例による、ボリュームセレクタのフローチャートである。
例示の実施例による、プロセスコントローラのフローチャートである。
例示の実施例による、優先順位判定のフローを示す図である。
以下の詳細な説明は、本出願の図面および例示の実施例の更なる詳細を提供する。図面間の冗長な要素の参照番号および説明は、明瞭にするために省略する。明細書全体を通して使用される用語は、例として提供されるものであり、限定を意図しない。例えば、「自動」という用語の使用には、本出願の実施例を実施する当業者の所望の実施例に応じて、ユーザまたは管理者が実施例の特定の態様を制御することを含む、全自動または半自動の実施例が関与することがある。選択は、ユーザインターフェースまたは他の入力手段を通してユーザが実践することができ、または所望のアルゴリズムを通して実現することができる。本明細書に記載されるような例示の実施例は、単独または組み合わせのどちらかで利用することができ、例示の実施例の機能性は、所望の実施例による任意の手段を通して実現することができる。
例示の実施例では、複製データをSDSに記憶するように構成されたストレージシステム、ならびに重要なシステムで障害が起こったときにSDSがプロセスを切り替えるシステムおよび方法がある。
図1Aは、例示の実施例が適用されてもよいシステムの物理的構成を示している。図1Aの例では、ホストコンピュータ1と、ストレージシステム2と、1つまたは複数のSDSノード3とが、ネットワーク4を介して互いに接続されている。各ホストコンピュータ1は、メモリ10と、記憶デバイス11と、中央処理装置(CPU)12と、ネットワークポート13とを含むことができる。ストレージシステム2は、メモリ20と、記憶デバイス21と、CPU22と、ネットワークポート23とを含むことができる。各ノード3は、メモリ30と、記憶デバイス31と、CPU32と、ネットワークポート33とを含むことができる。所望の実施例に応じて、ストレージシステム2はSDSとして、またはAFAとして実現することができる。
メモリ10、20、および30は、ダイナミックランダムアクセスメモリ(DRAM)など、所望の実施例に応じて任意のメモリの形態をとることができる。ネットワーク4は、インターネットプロトコル(IP)ネットワーク、またはストレージエリアネットワーク(SAN)など、所望の実施例にしたがって、任意のタイプのネットワークとして実現することができる。
ストレージシステム2からの記憶デバイス21は、フラッシュデバイスを含むことができ、SDSノード3の記憶デバイス31は、フラッシュデバイス、またはハードディスクドライブ(HDD)などのディスクのどちらかを含むことができる。フラッシュデバイスへのアクセスの待ち時間は、ディスクへのアクセスの待ち時間よりも短い。
図1Aの入出力(I/O)の一例では、ストレージシステム2は、ホストコンピュータ1からI/Oコマンドを受信する。コマンドは、ストレージシステム2の主要ボリュームと、SDSノード3またはストレージシステム2の補助ボリュームとの論理ユニット番号(LUN)を含む。データは、CPU22による複製プロセスをストレージシステム2に対して行うことによって、主要ボリュームに書き込まれ、補助ボリュームにコピーされる。LUNは、ボリューム群番号のボリューム番号に関連させることができる。LUNがボリューム群に関連する場合、ボリュームセレクタ203は、ボリューム群からボリュームを選択する。
図1Aに示されるように、ストレージシステム2は、ネットワーク4を介して、SDSノード3などの他のストレージシステムに通信可能に連結される。SDSノード3は、第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成されてもよい。ホストコンピュータ1は、第1のタイプのプロセスを実行するように構成されてもよい。ストレージシステム2は、ボリューム管理テーブル202によるフィールド2025によって記載されるような、SDSノード3の複数のボリュームの各ボリュームに関する空き領域情報を含む、管理情報を管理するように構成されたメモリ10を含んでもよい。メモリ10はまた、ボリューム管理テーブル202によるフィールド2021によって記載されるような、SDSノードの複数のボリュームの各ボリュームに関するドライブタイプ情報を記憶するように構成されてもよい。メモリ10はまた、ノード管理テーブル201によるフィールド2013によって記載されるような、SDSノードのフラッシュデバイスの空き領域情報を記憶するように構成されてもよい。
CPU20は、ホストからデータに対する書込みコマンドを受信すると、図9に示されるように、複製データがストレージシステム2に、またはSDSノード3などの他のストレージシステムに書き込まれるべきかを判定するように構成されてもよい。複製データがSDSノード3などの他のストレージシステムに書き込まれるべきと判定された場合、CPU12は、図9および図10に示されるように、他のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択するように構成される。例示の実施例では、例えば、図10のS201〜S204で示されるように、選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、CPU12は、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新し、SDSノード3などの他のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行するように構成される。
管理情報はまた、例えば、図6の2016および2018で示されるように、SDSノード3などの他のストレージシステムのハードディスクドライブデバイスの空き領域情報、およびSDSノード3などの他のストレージシステムのメモリの空き領域情報を含むことができる。CPU12は、例えば、図10のS207、S208、およびS212で示されるように、選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書き込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がハードディスクドライブであり、ハードディスクドライブデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、他のストレージシステムのメモリの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、書込みコマンドと関連付けられた書込みサイズに基づいて、ハードディスクドライブデバイスの空き領域情報と、他のストレージシステムのメモリの空き領域情報とを更新し、他のストレージシステムのメモリおよびハードディスクドライブデバイスに対して書込みコマンドを実行するように構成することができる。CPU12は、例えば、図10のS209〜S212に記載されるように、選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がハードディスクドライブであり、ハードディスクドライブデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、他のストレージシステムのメモリの空き領域情報が、書込みコマンドと関連付けられた書込みサイズを越えていないことを示している場合、CPU負荷に基づいて判定される優先順位に基づいて複数のSDSノード3から別のストレージシステムを選択し、SDSノード3から選択されたストレージシステムのハードディスクドライブデバイスの空き領域情報が、ディスクドライブデバイスの空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、選択されたストレージシステムのメモリおよびハードディスクドライブデバイスに対して書込みコマンドを実行し、SDSノード3から選択されたストレージシステムのハードディスクドライブデバイスの空き領域情報が、ディスクドライブデバイスの空き領域が書込みコマンドと関連付けられた書込みサイズを越えていないことを示している場合、優先順位に基づいてSDSノード3から別のストレージシステムを選択するように構成することができる。
ストレージシステム2の障害が起こった場合、図11のS300およびS305に示されるように、SDSノード3からの他のストレージシステムは、第1のタイプのプロセスを他のストレージシステムに対して実行し、他のストレージシステムがハードディスクドライブデバイスを有さない場合、第2のタイプのプロセスの実行を終了するように構成される。更に、ストレージシステム2の障害が起こった場合、図11のS304に示されるように、SDSノード3からの他のストレージシステムは、第1のタイプのプロセスと関連付けられたデータをストレージシステム2から他のストレージシステムにロードし、他のストレージシステムのプロセッサのロードが閾値未満でない場合、第2のタイプのプロセスの実行を終了するように構成される。
例示の実施例では、第1のタイプのプロセスは、第2のタイプのプロセスよりも待ち時間が短いことを要するOLTPであり、第2のタイプのプロセスは解析処理である。しかしながら、他のプロセスも利用することができ、本開示はそれらに限定されない。OLTPは、SDSノード3によって実行されるプロセスよりも待ち時間が短いことを要する、他の任意のプロセスに置き換えることができる。第2のタイプのプロセスは、第1のタイプのプロセスの短い待ち時間レベルを要しない、任意のプロセスを含むことができる。
図1Bおよび1Cは、例示の実施例による、物理的構成のプロセスの例示の実行を示している。図1Bに示されるように、ストレージシステム2は、OLTP 1000に対して記憶プロセス1001を実施するAFAの形態であることができる。SDSノード3は、短い待ち時間を要しないことがある補助プロセスである、データ解析1002を実行するのに使用することができる。図1Bの例示のアーキテクチャでは、ストレージシステム2に対する要件は、OLTP 1000の待ち時間が解析プロセス1002よりも短く、ダウン時間が最小限に抑えられ、ストレージシステム2の障害の間の性能低下が最小限であることを含むことができる。例示の実施例では、SDSノード3は、フェールオーバーの場合のバックアップシステムとして利用され、ストレージシステム2はSDSノード3に対してデータの複製を作成するように構成され、障害がストレージシステム2で起こると、記憶プロセス1001をSDSに対して実行してOLTP 1000を継続することができる。ストレージシステム2は、フラッシュデバイス(例えば、高速でディスクよりも高価)およびSDSノード3を含むので、記憶プロセス1001がストレージシステム2からSDSモード3に切り替えられると、記憶応答時間が遅延することがある。
例示の実施例は、データをフラッシュまたはキャッシュメモリに割り当ててディスクへのアクセスを低減することによって、かかるスイッチオーバーにおける遅延に対処することを対象とする。このように、障害がストレージシステム2で起こった後、記憶プロセス1001を解析プロセス1002よりも高い優先順位で実行することができ、CPU負荷が高い場合は解析プロセス1002を遮断し、CPU負荷が閾値よりも低い場合は維持することができる。
例示の実施例では、データは、ストレージシステム2の主要ボリュームに書き込まれ、SDSノード3の1つで補助ボリュームに複製される。補助ボリュームは、フラッシュまたはHDDのどちらかであることができ、次に優先順位を割り当てられる。優先順位は、所望のCPU負荷関数にしたがって動的に変更して、低い負荷を有するSDSノード3にデータを割り当てることができる。
図1Cは、例示の実施例による、SDSノードの例示の実施例を示している。記憶プロセス1001は、フラッシュ記憶装置を有するノードで走らせて、OTLPの待ち時間を短くすることができる。解析プロセス1002は、ディスクのみを有するノードで走らせることができる。更に、CPU負荷が閾値を上回る場合、解析プロセス1002を停止することができる。
図2は、例示の実施例による、SDSのボリューム、プール、および記憶デバイスの間の例示の関係を示している。例示の実施例では、ボリュームは記憶デバイスの論理デバイスとして作成され、ボリューム群は複数のボリュームを含むことができる。例えば、ホストコンピュータ1が、LUNを介してボリューム#0またはボリューム#1を指定した場合、データはボリューム#0またはボリューム#1に書き込まれる。ホストコンピュータ1が、LUNを介してボリューム群#0を指定した場合、ボリュームは、ボリュームセレクタ203によってボリューム群#0(例えば、ボリューム#2、3、4、および5)内の対応するボリュームの中から選択され、次にデータが選択されたボリュームに書き込まれる。
図3は、例示の実施例による、ホストコンピュータのメモリの論理的レイアウトを示している。図3の例では、OLTPプロセス100は、ストレージシステム2に書き込むプロセスを含むOLTPを実行する。経路コントローラ101は、ストレージシステム2の障害が起こったときに経路切替えを実行する。ホストコンピュータ1は、正常動作条件の間、ネットワーク4を解してI/Oコマンドをストレージシステム2に送信するが、ストレージシステム2に障害が起こった場合、経路コントローラ101は経路を切り替え、SAN 4を介してI/OコマンドをSDSに送信する。
図4は、例示の実施例による、ストレージシステムのメモリの論理的レイアウトを示している。図4の例では、ユーザデータキャッシュ200が中間エリアとして構成される。記憶デバイス21がREADコマンドをホストコンピュータ1から受信すると、CPU22は、記憶デバイス21から読み取ることによってデータをホストコンピュータ1に転送し、ユーザデータキャッシュ200にデータを記憶する。かかる処理は、CPUが次のサイクルでユーザデータをユーザデータキャッシュ200から読み取ることができるので、読取り待ち時間を改善することができる。CPU22は、ユーザデータを、記憶デバイス21ではなくユーザデータキャッシュ200に書き込む。CPU22は、ユーザデータが記憶デバイス21に書き込まれる前にホストコンピュータに応答を返すことができるので、書込み待ち時間も速くなり得る。メモリ20にアクセスすることによる待ち時間は、記憶デバイス21にアクセスすることによる待ち時間よりも速い。
ノード管理テーブル201は、システムのノード3に関する管理情報を含む。ノード管理テーブル201の更なる詳細は、図6に関して提供される。ボリューム管理テーブル202は、システムのボリュームに関する管理情報を含む。ボリューム管理テーブル202の更なる詳細は、図7に関して提供される。ボリュームセレクタ203は、OLTPプロセスからのデータを記憶するボリュームを選択するフローを提供する。ボリュームセレクタ203の更なる詳細は、図10に関して提供される。記憶プロセス204は、READプロセスまたはWRITEプロセスなどのI/Oプロセスを実行する。
図5は、例示の実施例による、SDSノード3におけるメモリ30の例示の論理的レイアウトを示している。ユーザデータキャッシュ300は、ストレージシステム2のユーザデータキャッシュ200と同様の動作を行う。ノード管理テーブルのコピー302は、ノード管理テーブル201と同じ情報を含む。このノード管理テーブル302は、ノード管理テーブル201が更新されるのと同時に、ストレージシステム2のCPU22によって更新される。
OLTPビットマップ301は、OLTPプロセスに関する管理情報を含む管理テーブルである。OLTPビットマップ301に関する更なる詳細は、図8に関して提供される。記憶プロセス303は、ストレージシステム2の記憶プロセス20と動作的に類似している。記憶プロセス303は、ストレージシステム2に障害が起こると呼び出される。解析プロセス304は、データを記憶デバイス31からロードすることによって解析を実行する。プロセスコントローラ305は、ノード3によって利用されるドライブのタイプにしたがって、プロセスの切替えを実行する。プロセスコントローラ305の更なる詳細は、図9に関して提供される。
図6は、例示の実施例による、ノード管理テーブルの論理的レイアウトを示している。ノード管理テーブル201は、ノードおよびそれらの相対的管理情報を管理するのに使用される。かかる管理情報としては、ノードの識別子(ID)または番号2010、フラッシュドライブの数2011、フラッシュドライブの合計サイズ2012、フラッシュドライブに利用可能な空き領域2013、HDDの数2014、HDDの合計サイズ2015、HDDに利用可能な空き領域2016、合計メモリサイズ2017、メモリに利用可能な空き領域2018、ノードの優先順位レベル2019、およびCPU負荷201Aを挙げることができる。ボリュームセレクタ203がデータを書き込むボリュームを選択すると、このテーブルが、関連するノード情報(例えば、フラッシュドライブ、HDD、およびメモリの合計サイズ、空きサイズ)を参照するのに使用される。ボリュームがボリュームセレクタ203によって選択された後、ノード管理テーブル201は、対応するドライブへの書込みのサイズを減算することによって、利用可能な空きサイズを更新する。
ノードの優先順位レベル2019に関して、このフィールドは、ボリュームセレクタ203が最も優先順位が高いノードを選択したときに参照される。ノードの優先順位レベル2019は、各ノード3のCPUロードフィールド201Aにしたがって、任意の所望の機能に基づいて設定される。図6の例では、値0が選択される最も優先順位が高いノードを示すが、本開示はかかる実施例に限定されず、優先順位の値は所望の機能にしたがって設定することができる。
図7は、例示の実施例による、ボリューム管理テーブルの論理的レイアウトを示している。具体的には、ボリューム管理テーブル202は、ボリュームおよびそれらの相対的管理情報を管理するのに使用される。かかる管理情報としては、ボリュームのIDまたは番号2020、ドライブタイプ2021、ボリューム群のIDまたは番号2022、ノードのIDまたは番号2023、ボリュームの合計サイズ2024、およびボリュームに利用可能な空き領域2025を挙げることができる。ボリュームセレクタ203がI/O動作に対してボリュームを選択すると、ボリューム管理テーブル202は、ドライブタイプ、ボリューム群#、ノード#、ならびにボリュームの合計サイズおよび空きサイズなどの情報を提供して、選択プロセスを支援する。
図8は、例示の実施例による、OLTPビットマップの論理的レイアウトを示している。OLTPビットマップ203は、どのページがOLTPデータを有するかに関する管理情報を提供する管理テーブルである。かかる管理情報としては、ページ2030、およびページに対応するビットマップ2031を挙げることができる。ページは、ボリュームに対するデータを管理する単位(例えば、64KB)である。各ビットは各ページに対応する。図8に示される例では、1は、そのページがOLTPデータを有することを示し、0は、そのページにOLTPデータが関与しないことを示す。障害がOLTPシステムで起こった場合、プロセスコントローラ305は、OLTPビットマップ203を利用して、OLTPデータを記憶装置からメモリにロードする。
図9は、例示の実施例による、I/Oプロセスの例示のフローを示している。図9のフローは、ストレージシステム2がホストコンピュータ1からコマンドを受信すると、CPU22によって実行される。受信したコマンドは、ストレージシステム2内部における特定のボリュームのアドレスを示すのに使用されるLUNを含む。この受信したコマンドはまた、READ/WRITEなどの動作コード、複製を動作可能/動作不能にするか否かに関する動作および/または情報のデータサイズを含む。複製が動作可能にされた場合、受信したコマンドは、ストレージシステム2およびSDSノード3の内部の主要および補助ボリュームのアドレスを示すのに使用される、LUNを含む。
S100で、CPU22は、 I/OコマンドがREADまたはWRITEコマンドであるか否かを判定する。I/OコマンドがREADコマンドの場合、フローはS105に進んでREAD I/Oプロセスを実行する。I/OコマンドがWRITEコマンドの場合、フローはS101に進んでWRITEコマンドを実行する。
S101で、CPU22は次に、複製データがSDSノード3にコピーされるべきかを判定する。複製データがストレージシステム2(記憶装置)に書き込まれるべきである場合、フローはS104に進んでWRITE I/O動作を実行し、複製データをストレージシステム2にコピーする。複製データがSDSノード3(SDS)にコピーされるべきである場合、フローは進んで、ボリュームセレクタ機能F200を実行する。
S102で、CPU22は、ボリュームセレクタ機能F200からの戻りコードが、ボリュームが満杯であるかどうかを示すかを判定する。ボリュームが満杯の場合(はい)、フローは終了する。そうでない場合(いいえ)、フローはS103に進み、CPU22はSDSノード3のCPU32にOLTPビットマップ203を更新するように要求する。フローは次にS104に進んで、選択されたボリュームへのWRITE I/Oプロセスを実行する。
図10は、例示の実施例による、ボリュームセレクタのフローチャートを示している。このフローは、I/Oプロセスがこの機能をF200で呼び出すと、CPU22で実行される。S200で、ボリュームセレクタは、ボリューム管理テーブル202およびノード管理テーブル201をロードすることによって、ボリュームおよびノードの管理情報を参照する。S201で、ボリュームセレクタは、受信したI/Oコマンドに含まれる補助ボリュームのLUNに基づいて、ボリュームIDを判定する。ボリュームセレクタは、ボリューム管理テーブル202のボリュームフィールド2025における空き領域を参照することによって、SDSノード3からの判定されたボリュームの空きサイズが書込みサイズよりも大きいか否かを判定する。書込みサイズは、ストレージシステム2からSDSノード3へと転送されるべきデータのサイズである。ボリュームの空きサイズが書込みサイズよりも大きい場合(>0)、フローはS202に進み、そうでない場合(<0)、フローはS205に進んで、I/Oプロセスに対して「満杯」の戻りコードを提供する。S202で、ボリュームセレクタは、ノード管理テーブル201のフィールド2021を参照することによって、ドライブタイプを判定する。ボリュームタイプがフラッシュであると判定された場合、フローはS203に進み、そうではなくディスクの場合、フローはS206に進む。
S203で、ボリュームセレクタは、ノード管理テーブル201の空きフラッシュサイズフィールド2013を参照することによって、ボリュームを提供するSDSノード3におけるフラッシュの空き領域のサイズが、書込みサイズよりも大きいか否かを判定する。フラッシュの空きサイズが書込みサイズよりも大きい場合(>0)、フローはS204に進み、そうでない場合(<0)、フローはS205に進んで、I/Oプロセスに対して「満杯」の戻りコードを提供する。S204で、ボリュームセレクタは、ノード管理テーブル201の空きフラッシュサイズフィールド2013に関して、書込みサイズを空き領域のサイズから減算する。
S206で、ボリュームセレクタは、ノード管理テーブル201のディスクフィールド2016に利用可能な空き領域を参照することによって、1つまたは複数のSDSノード3における、ボリュームを提供するディスクの最大空きサイズが、書込みサイズよりも大きいか否かを判定する。最大空き領域が書込みサイズよりも小さい場合(<0)、フローはS205に進んで「満杯」の戻りコードを提供する。そうでなければ、最大空き領域が書込みサイズよりも大きい場合(>0)、フローはS207に進む。ボリューム群番号が指定された場合、ボリュームセレクタは、ボリューム群内のノードIDまたは番号フィールド2023を参照する。ボリュームセレクタは、ノードIDまたは番号フィールド2010をノードIDまたは番号フィールド2023と比較することによって、ディスクフィールド2016の空き領域を参照する。最大サイズが書込みサイズよりも小さい場合、どのディスクも書込みデータを記憶する容量を有さないので、ボリュームセレクタは最大サイズを参照する。かかる状況では、ボリュームセレクタはI/Oプロセスに対して「満杯」の戻りコードを提供する。戻りコードは、書込み動作に十分な空き領域を含むノードがあるか否かを確認するのに利用される。
例えば、各ノードのディスクの空き領域が64MBの場合、最大空きサイズは64MBであり、64MBよりも大きい書込みデータをボリュームに書き込むことはできない。あるノードの空きサイズが256MBであり、他のノードの空き領域が64MBである場合、最大空きサイズは256MBである。したがって、256MB以下の書込みデータをボリュームに書き込むことができる。
S207で、ボリュームセレクタは、ノード管理テーブル201のメモリフィールド2018に利用可能な空き領域を参照することによって、1つまたは複数のSDSノード3における、ボリュームを提供するメモリの最大空き領域が、書込みサイズよりも大きいか否かを判定する。メモリの空き領域が書込みサイズよりも大きい場合(>0)、フローはS208に進む。そうでなければ、メモリの空き領域が書込みサイズよりも小さい場合(<0)、フローはS209に進む。
S208で、ボリュームセレクタは、書き込みサイズをメモリフィールド2018の空き領域から減算し、ノード管理テーブル201のメモリフィールド2018の空き領域を更新する。
S209で、ボリュームセレクタは、ノード管理テーブル201のフィールド2019を参照することによって、ボリュームを提供する1つまたは複数のSDSノード3の中で最も優先順位が高いノードを選択する。S210で、ボリュームセレクタは、ノード管理テーブル201のディスクフィールド2016の空き領域を参照することによって、選択されたノードのディスクの空きサイズが書込みサイズよりも大きいか否かを判定する。ディスクの空きサイズが書込みサイズよりも大きい場合(>0)、フローはS212に進む。そうでなければ、ディスクの空きサイズが書き込みサイズよりも小さい場合(<0)、
フローはS211に進む。
S211で、S210でフローから選択されたノードが書込みデータを記憶するのに十分な領域を有さない場合、フローは次に優先順位の高いノードに進み、現在のノードをキューに入れ直す。全てのノードを検討した場合、ボリュームセレクタはキューにおける第1の利用可能なノードを選択する。
S212で、ボリュームセレクタは、書込みサイズをディスクの空き領域から減算し、ディスクの空きを更新し、ノード管理テーブル201のディスクフィールド2015の合計サイズを更新する。
図11は、例示の実施例による、プロセスコントローラ305のフローチャートを示している。具体的には、図11のフローは、ストレージシステム2に障害が起こると、CPU32によってSDSノードに対して実行される。
S300で、OLTPプロセスの記憶プロセス204が活性化される。S301で、プロセスコントローラは、ノード管理テーブルのコピー302におけるディスクフィールドの数2014を参照することによって、SDSノード3がディスクを有するかを判定する。ノードがディスクを有する場合(はい)、フローはS302に進み、そうでない場合(いいえ)、フローはS305に進んで、あらゆる補助プロセスまたは解析プロセスを終え、CPU32を利用してOLTPの記憶プロセスを実行する。
S302で、プロセスコントローラは、ノード管理テーブルのコピー302におけるCPUロードフィールド201Aを参照することによって、CPU32のロードが閾値を上回るかを判定する。CPU32のロードが閾値を下回る場合(はい)、フローはS303に進み、そうでない場合(いいえ)、フローはS304に進む。S303で、プロセスコントローラは、OLTPビットマップ203を参照することによって、OLTPデータを記憶デバイス31(ディスク)からSDSノード3のメモリ30にロードする。
S304で、CPU負荷が閾値を上回る場合、OLTPの記憶プロセス以外の動作を終わらせて、CPUをできる限りOLTPの記憶プロセスに提供する。
図12は、例示の実施例による、優先順位判定のフローを示している。フローは、SDSノードのCPU32によって規則的に、例えば毎分1回実行される。優先順位は、ノードのディスクタイプおよびCPU負荷に基づいて判定される。ノードがディスクを有さない場合、ノードの優先順位は最低優先順位に設定される。ノードがディスクを有する場合、ノードの優先順位はCPU負荷に応じて設定される。例えば、ノードのCPU負荷が高いほど優先順位は低くなる。
S400で、フローは、ノード管理テーブル302のCPU負荷フィールド201Aを参照することによって開始される。S401で、フローは進んで、ノード管理テーブル201を参照する。S402で、ノード管理テーブル201は、優先順位フィールド2019の各ノードの優先順位を再計算することによって更新される。
詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズムおよび図式的表現に関して提示されている。これらのアルゴリズム的説明および図式的表現は、データ処理分野の当業者が技術革新の本質について他の当業者に伝達するのに使用される手段である。アルゴリズムは、所望の最終状態または結果につながる一連の規定のステップである。例示の実施例では、実施されるステップは、有形の結果を達成する有形の量の物理的操作を要する。
別段の具体的な説明がない限り、考察から明白であるように、本明細書全体を通して、「処理する」、「計算する」、「算出する」、「判定する」、「表示する」などの用語を利用した考察は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを操作し、同様にコンピュータシステムのメモリもしくはレジスタまたは他の情報記憶デバイス、送信デバイス、または表示デバイス内の物理量として表される他のデータへと変換する、コンピュータシステムまたは他の情報処理デバイスの動作およびプロセスを含み得ることが認識される。
例示の実施例はまた、本明細書の動作を実施する装置に関連することがある。この装置は、求められる目的のために特別に構築されてもよく、あるいは1つもしくは複数のコンピュータプログラムによって選択的に起動または再構成される、1つもしくは複数の汎用コンピュータを含んでもよい。かかるコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体など、コンピュータ可読媒体に記憶されてもよい。コンピュータ可読記憶媒体には、光学ディスク、磁気ディスク、読出し専用メモリ、ランダムアクセスメモリ、固体素子およびドライブ、または電子情報を記憶するのに適した他の任意のタイプの有形もしくは非一時的媒体などであるがそれらに限定されない、有形媒体が関与してもよい。コンピュータ可読信号媒体は、搬送波などの媒体を含んでもよい。本明細書に提示されるアルゴリズムおよびディスプレイは、いずれかの特定のコンピュータまたは他の装置には本質的に関連しない。コンピュータプログラムには、所望の実施例の動作を実施する命令を含む、純粋なソフトウェア実装が関与し得る。
様々な汎用システムが、本明細書の例によるプログラムおよびモジュールとともに使用されてもよく、または所望の方法ステップを実施するのに、より専門的な装置を構築するのが便利であるとわかる。それに加えて、例示の実施例は、いかなる特定のプログラミング言語も参照せずに記載されている。本明細書に記載される例示の実現例の教示を実現するのに、様々なプログラミング言語が使用されてもよいことが認識されるであろう。プログラミング言語の命令は、1つまたは複数の処理デバイス、例えば中央処理装置(CPU)、プロセッサ、またはコントローラによって実行されてもよい。
当該分野で知られているように、上述の動作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実施することができる。例示の実施例の様々な態様は、回路および論理デバイス(ハードウェア)を使用して実現されてもよく、他の態様は、機械可読媒体(ソフトウェア)に記憶された命令を使用して実現されてもよく、これはプロセッサによって実行された場合、プロセッサによって方法を実施させて、本出願の実施例を実施する。更に、本出願のいくつかの例示の実施例はハードウェアだけで実施されてもよく、他の例示の実施例はソフトウェアだけで実施されてもよい。更に、記載した様々な機能は、単一の単位体で実施することができ、または無数の手法で多数の構成要素にわたって分散させることができる。ソフトウェアによって実施される場合、方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてもよい。所望の場合、命令は、圧縮および/または暗号化形式で媒体に記憶することができる。
更に、本明細書を考察し、本出願の教示を実践することによって、本発明の他の実施例が当業者には明白となるであろう。記載された例示の実施例の様々な態様および/または構成要素は、単独でまたは任意の組み合わせで使用されてもよい。本明細書および例示の実施例は単なる例として考察されるものであって、本出願の真の範囲および趣旨は以下の特許請求の範囲によって示される。

Claims (15)

  1. 第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された1つまたは複数の第2のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第1のストレージシステムであって、
    前記第2のストレージシステムの前記複数のボリュームの各ボリュームに関する空き領域情報と、前記第2のストレージシステムの前記複数のボリュームの各ボリュームに関するドライブタイプ情報と、前記第2のストレージシステムのフラッシュデバイスに関する空き領域情報とを含む管理情報を管理するように構成された、メモリと、
    プロセッサであって、
    前記第1のタイプのプロセスと関連付けられたデータに対する書込みコマンドを前記ホストから受信した場合、前記データの複製が前記第1のストレージシステムまたは前記第2のストレージシステムに対して行われるべきかを判定し、
    前記データの複製が前記第2のストレージシステムに対して行われるべきである場合、
    前記第2のストレージシステムの各ボリュームの前記空き領域情報、各ボリュームの前記ドライブタイプ情報、およびフラッシュデバイスの前記空き領域情報に基づいて、前記書込みコマンドに対して前記複数のボリュームからボリュームを選択し、
    前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がフラッシュであり、前記フラッシュデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記フラッシュデバイスの前記空き領域情報を更新し、
    前記データの前記複製を前記第2のストレージシステムの前記フラッシュデバイスに書き込むように構成された、プロセッサとを備える、第1のストレージシステム。
  2. 請求項1に記載のシステムであって、前記管理情報が、前記1つまたは複数の第2のストレージシステムのハードディスクドライブデバイスの空き領域情報と、前記1つまたは複数の第2のストレージシステムのメモリの空き領域情報とを更に含み、
    前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記1つまたは複数の第2のストレージシステムの前記メモリの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記1つまたは複数の第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報および前記メモリの前記空き領域情報を更新し、
    前記データの前記複製を前記第2のストレージシステムの前記ハードディスクドライブデバイスに書き込むように、前記プロセッサが更に構成された、システム。
  3. 前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記1つまたは複数の第2のストレージシステムの前記メモリの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていない場合、CPU負荷に基づいて判定される優先順位に基づいて、前記1つまたは複数の第2のストレージシステムから1つの第2のストレージシステムを選択し、
    前記1つまたは複数の第2のストレージシステムからの前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記データの前記複製を前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスに書き込み、
    前記1つまたは複数の第2のストレージシステムからの前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、優先順位に基づいて、前記1つまたは複数の第2のストレージシステムから別の第2のストレージシステムを選択するように、前記プロセッサが更に構成された、請求項2に記載のシステム。
  4. 前記第1のストレージシステムの障害が起こると、前記1つまたは複数の第2のストレージシステムが、
    前記第1のタイプのプロセスの記憶プロセスを前記第2のストレージシステムに対して実行し、
    前記第2のストレージシステムがハードディスクドライブデバイスを有さない場合、前記第2のタイプのプロセスの前記実行を終了するように構成された、請求項1に記載のシステム。
  5. 前記第1のストレージシステムの障害が起こると、前記第2のストレージシステムが、
    前記第1のタイプのプロセスと関連付けられたデータを、前記ハードディスクドライブデバイスから前記第2のストレージシステムのメモリにロードし、
    前記第2のストレージシステムのプロセッサの負荷が閾値未満である場合、前記第2のタイプのプロセスの前記実行を終了するように構成された、請求項4に記載のシステム。
  6. 前記第1のタイプのプロセスが、前記第2のタイプのプロセスよりも待ち時間が短いことを要するオンライン取引処理(OLTP)であり、前記第2のタイプのプロセスが解析処理である、請求項1に記載のシステム。
  7. 第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された1つまたは複数の第2のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第1のストレージシステムに対する命令を記憶する、非一時的コンピュータ可読媒体であって、前記第1のストレージシステムに対する前記命令が、
    前記第2のストレージシステムの前記複数のボリュームの各ボリュームに関する空き領域情報と、前記第2のストレージシステムの前記複数のボリュームの各ボリュームに関するドライブタイプ情報と、前記第2のストレージシステムのフラッシュデバイスに関する空き領域情報とを含む管理情報を管理することと、
    前記第1のタイプのプロセスと関連付けられたデータに対する書込みコマンドを前記ホストから受信した場合、前記データの複製が前記第1のストレージシステムまたは前記第2のストレージシステムに対して行われるべきかを判定することと、
    前記データの複製が前記第2のストレージシステムに対して行われるべきである場合、
    前記第2のストレージシステムの各ボリュームの前記空き領域情報、各ボリュームの前記ドライブタイプ情報、およびフラッシュデバイスの前記空き領域情報に基づいて、前記書込みコマンドに対して前記複数のボリュームからボリュームを選択することと、
    前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がフラッシュであり、前記フラッシュデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記フラッシュデバイスの前記空き領域情報を更新することと、
    前記データの前記複製を前記第2のストレージシステムの前記フラッシュデバイスに書き込むこととを含む、非一時的コンピュータ可読媒体。
  8. 請求項7に記載の非一時的コンピュータ可読媒体であって、前記管理情報が、前記1つまたは複数の第2のストレージシステムのハードディスクドライブデバイスの空き領域情報と、前記1つまたは複数の第2のストレージシステムのメモリの空き領域情報とを更に含み、
    前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記1つまたは複数の第2のストレージシステムの前記メモリの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記1つまたは複数の第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報および前記メモリの前記空き領域情報を更新することと、
    前記データの前記複製を前記第2のストレージシステムの前記ハードディスクドライブデバイスに書き込むこととを、前記命令が更に含む、非一時的コンピュータ可読媒体。
  9. 請求項8に記載の非一時的コンピュータ可読媒体であって、
    前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記1つまたは複数の第2のストレージシステムの前記メモリの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていない場合、CPU負荷に基づいて判定される優先順位に基づいて、前記1つまたは複数の第2のストレージシステムから1つの第2のストレージシステムを選択することと、
    前記1つまたは複数の第2のストレージシステムからの前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記データの前記複製を前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスに書き込むことと、
    前記1つまたは複数の第2のストレージシステムからの前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、優先順位に基づいて、前記1つまたは複数の第2のストレージシステムから別の第2のストレージシステムを選択することとを、前記命令が更に含む、非一時的コンピュータ可読媒体。
  10. 前記第1のストレージシステムの障害が起こると、前記1つまたは複数の第2のストレージシステムが、
    前記第1のタイプのプロセスの記憶プロセスを前記第2のストレージシステムに対して実行し、
    前記第2のストレージシステムがハードディスクドライブデバイスを有さない場合、前記第2のタイプのプロセスの前記実行を終了するように構成された、請求項7に記載の非一時的コンピュータ可読媒体。
  11. 前記第1のストレージシステムの障害が起こると、前記第2のストレージシステムが、
    前記第1のタイプのプロセスと関連付けられたデータを、前記ハードディスクドライブデバイスから前記第2のストレージシステムのメモリにロードし、
    前記第2のストレージシステムのプロセッサの負荷が閾値未満である場合、前記第2のタイプのプロセスの前記実行を終了するように構成された、請求項10に記載の非一時的コンピュータ可読媒体。
  12. 前記第1のタイプのプロセスが、前記第2のタイプのプロセスよりも待ち時間が短いことを要するオンライン取引処理(OLTP)であり、前記第2のタイプのプロセスが解析処理である、請求項7に記載の非一時的コンピュータ可読媒体。
  13. 第2のタイプのプロセスを実行し、複数のボリュームを管理するように構成された1つまたは複数の第2のストレージシステムと、第1のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第1のストレージシステムに対する方法であって、
    前記第2のストレージシステムの前記複数のボリュームの各ボリュームに関する空き領域情報と、前記第2のストレージシステムの前記複数のボリュームの各ボリュームに関するドライブタイプ情報と、前記第2のストレージシステムのフラッシュデバイスに関する空き領域情報とを含む管理情報を管理することと、
    前記第1のタイプのプロセスと関連付けられたデータに対する書込みコマンドを前記ホストから受信した場合、前記データの複製が前記第1のストレージシステムまたは前記第2のストレージシステムに対して行われるべきかを判定することと、
    前記データの複製が前記第2のストレージシステムに対して行われるべきである場合、
    前記第2のストレージシステムの各ボリュームの前記空き領域情報、各ボリュームの前記ドライブタイプ情報、およびフラッシュデバイスの前記空き領域情報に基づいて、前記書込みコマンドに対して前記複数のボリュームからボリュームを選択することと、
    前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がフラッシュであり、前記フラッシュデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記フラッシュドライブの前記空き領域情報を更新することと、
    前記データの前記複製を前記第2のストレージシステムの前記フラッシュデバイスに書き込むこととを含む、方法。
  14. 請求項13に記載の方法であって、前記管理情報が、前記1つまたは複数の第2のストレージシステムの前記ハードディスクドライブデバイスの空き領域情報と、前記1つまたは複数の第2のストレージシステムのメモリの空き領域情報とを更に含み、前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記1つまたは複数の第2のストレージシステムの前記メモリの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記1つまたは複数の第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報および前記メモリの前記空き領域情報を更新することと、
    前記データの前記複製を前記第2のストレージシステムの前記ハードディスクドライブデバイスに書き込むこととを更に含む、方法。
  15. 前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
    前記1つまたは複数の第2のストレージシステムの前記メモリの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていない場合、CPU負荷に基づいて判定される優先順位に基づいて、前記1つまたは複数の第2のストレージシステムから1つの第2のストレージシステムを選択することと、
    前記1つまたは複数の第2のストレージシステムからの前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記データの前記複製を前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスに書き込むことと、
    前記1つまたは複数の第2のストレージシステムからの前記選択された1つの第2のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、優先順位に基づいて、前記1つまたは複数の第2のストレージシステムから別の第2のストレージシステムを選択することとを更に含む、請求項14に記載の方法。
JP2019504136A 2017-01-25 2017-01-25 低コストハードウェアを使用して記憶装置の待ち時間を改善する方法 Active JP6695000B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/014993 WO2018140016A1 (en) 2017-01-25 2017-01-25 Method for latency improvement of storages using low cost hardware

Publications (2)

Publication Number Publication Date
JP2019528517A true JP2019528517A (ja) 2019-10-10
JP6695000B2 JP6695000B2 (ja) 2020-05-20

Family

ID=62979612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019504136A Active JP6695000B2 (ja) 2017-01-25 2017-01-25 低コストハードウェアを使用して記憶装置の待ち時間を改善する方法

Country Status (3)

Country Link
US (1) US10983882B2 (ja)
JP (1) JP6695000B2 (ja)
WO (1) WO2018140016A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089343A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and system for block allocation for hybrid drives
JP2013033515A (ja) * 2004-08-30 2013-02-14 Hitachi Ltd ストレージシステム及びデータ再配置制御装置
WO2016103471A1 (ja) * 2014-12-26 2016-06-30 株式会社日立製作所 計算機システムおよび管理プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138011A1 (en) 2003-12-23 2005-06-23 Royer Robert J.Jr. Meta-data storage and access techniques
US9569139B1 (en) * 2013-09-26 2017-02-14 EMC IP Holding Company LLC Methods and apparatus for shared service provisioning
JP5620614B1 (ja) 2014-04-21 2014-11-05 株式会社日立製作所 ストレージシステム
US9652287B2 (en) * 2015-01-05 2017-05-16 Miosoft Corporation Using databases for both transactions and analysis
US10353634B1 (en) * 2016-03-28 2019-07-16 Amazon Technologies, Inc. Storage tier-based volume placement

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013033515A (ja) * 2004-08-30 2013-02-14 Hitachi Ltd ストレージシステム及びデータ再配置制御装置
US20090089343A1 (en) * 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and system for block allocation for hybrid drives
WO2016103471A1 (ja) * 2014-12-26 2016-06-30 株式会社日立製作所 計算機システムおよび管理プログラム

Also Published As

Publication number Publication date
US10983882B2 (en) 2021-04-20
WO2018140016A1 (en) 2018-08-02
JP6695000B2 (ja) 2020-05-20
US20190227889A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
JP4958739B2 (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
WO2012049711A1 (en) Data migration system and data migration method
JP5315348B2 (ja) シン・プロビジョニングの移行および取り消しのための方法および装置
US7467269B2 (en) Storage apparatus and storage apparatus control method
JP4902501B2 (ja) 電力制御方法、計算機システム、及びプログラム
US20180267713A1 (en) Method and apparatus for defining storage infrastructure
JP2016511474A (ja) 階層化ストレージにおける重複排除及びホストベースQoS
US8832396B2 (en) Storage apparatus and its control method
WO2016080953A1 (en) Method and apparatus for data cache in converged system
US20110238915A1 (en) Storage system
JP2022094705A (ja) メモリシステムおよび制御方法
CN115617542A (zh) 内存交换方法、装置、计算机设备及存储介质
KR20210016188A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US8732422B2 (en) Storage apparatus and its control method
JP2022054132A (ja) 複合型ストレージシステム
JP2015052853A (ja) ストレージ制御装置、制御方法及びプログラム
JP2018106573A (ja) ストレージ制御装置及び制御プログラム
CN112748865A (zh) 用于存储管理的方法、电子设备和计算机程序产品
JP2014038551A (ja) データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム
JP6695000B2 (ja) 低コストハードウェアを使用して記憶装置の待ち時間を改善する方法
WO2014112062A1 (ja) ストレージ装置及びデータ移行方法
WO2018055686A1 (ja) 情報処理システム
US20220067549A1 (en) Method and Apparatus for Increasing the Accuracy of Predicting Future IO Operations on a Storage System
US10191690B2 (en) Storage system, control device, memory device, data access method, and program recording medium
WO2016088372A1 (ja) アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200420

R150 Certificate of patent or registration of utility model

Ref document number: 6695000

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150