JPWO2017195324A1 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JPWO2017195324A1
JPWO2017195324A1 JP2018516290A JP2018516290A JPWO2017195324A1 JP WO2017195324 A1 JPWO2017195324 A1 JP WO2017195324A1 JP 2018516290 A JP2018516290 A JP 2018516290A JP 2018516290 A JP2018516290 A JP 2018516290A JP WO2017195324 A1 JPWO2017195324 A1 JP WO2017195324A1
Authority
JP
Japan
Prior art keywords
request
data
area
drive
storage
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
JP2018516290A
Other languages
English (en)
Other versions
JP6677806B2 (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 JPWO2017195324A1 publication Critical patent/JPWO2017195324A1/ja
Application granted granted Critical
Publication of JP6677806B2 publication Critical patent/JP6677806B2/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0637Permissions
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

SSDドライブによるデータ破壊のリスクを防ぎ、そのための処理時間の増大を抑え、Dual port NVMe SSDで構成したストレージ装置の高信頼化及び高性能化を両立させる。ストレージ装置は、2以上のクラスタと、クラスタそれぞれに接続される記憶ドライブと、クラスタそれぞれに属しIO要求に係るデータを格納する主記憶と、クラスタそれぞれに属し主記憶に対するアクセスを制御するプロセッサとを備え、主記憶は、記憶ドライブからの書き込みを許可する第1の領域と、該書き込みを禁止する第2の領域とを含み、プロセッサは、IO要求が第1の要求である場合に、IO要求に係るデータの記憶ドライブからの転送先として第1の領域を選択し、IO要求が第2の要求である場合に、IO要求に係るデータの記憶ドライブからの転送先として第2の領域を選択すると共に第2の領域に対する書き込みを許可する。

Description

本発明は、SSDで構成したストレージ装置に関する。
従来は、SAS プロトコルI/Fを持つデバイスコントローラ(以下、「SAS CTL」という)を使ってSAS ドライブとの通信を実現していた。SAS CTLは、SASデータ転送をコマンドの内容に従ってメモリライトに変換し実行する。そのため、SAS CTLは、コマンドの内容に従ったSASデータ転送しか受け付けず、SASデータ転送に誤りがあればメモリライトは実行しない。よって、SAS CTLは、両CTLのユーザーデータにアクセスできず、ドライブ障害により両CTLのユーザーデータを破壊する可能性は比較的小さいものであった。
一方、NVM Express (以下、「NVMe」という)I/Fを2つ持つドライブは、高可用性を実現するために、ストレージクラスタが冗長化されたストレージ装置の両プロセッサとPCIeで接続し、両ストレージクラスタの主記憶に直接アクセスすることができる。
特開2007−269166号公報
Dual port NVMe SSD Drive(以下、SSDは、特に明記しない限りDual port構成を前提とする)で構成したストレージ装置は、両ストレージクラスタにSSDが直接接続されているところ、プロセッサとドライブの間に不正データ転送を検出するSAS Driveコントローラが無い。これにより、ストレージクラスタは、SSDドライブによる不正データの転送を抑止することができない。また、SSDが故障等で制御不能になり、SSDが両ストレージクラスタに不正なデータ転送を実行すると、ストレージクラスタはデータ転送を抑止できない。その結果、不正なデータ転送により、両ストレージクラスタの主記憶に格納されているホストデータが破壊される可能性があり、SSDドライブによるデータ破壊のリスクが増大し信頼性の低下を招くことになる。
このデータ破壊のリスクが増大することに対し、IOデバイスのデータ転送を制御する仕組みとして、IOMMU(IOMMUについては、後述)を使ったデータ転送制御方法が存在する。この制御方法は、制御プログラムが作成した、物理アドレスと仮想アドレスを変換するIOページテーブルの情報をIOMMUに読み込ませ、IOMMUにどのデバイスがどのようなデータ転送を実施してよいか判断させることで、制御プログラムはIOデバイスのデータ転送を制御することができる。例えば、SSDからストレージクラスタの主記憶へのデータ転送を実現したい場合、制御プログラムがIOページテーブルを操作し、IOページテーブルに記述された特定のアドレスに対するメモリアクセス権の属性を書き換える。これにより、制御プログラムが、SSDからストレージクラスタの主記憶に対するメモリライトを受け付けないようにすることで、ドライブの意図しないデータ転送による主記憶上のデータの破壊を防ぐことが可能となる。
しかし、プログラムによってIOMMUのIOページテーブルを操作しかつ変更内容を反映にかかるためには、そのプログラムによる処理時間は大きくなり、1回のIOの処理に必要な時間が大幅に増大してしまう。そのため、単純に各IO処理にIOMMUを適用しただけでは、高性能化の実現が困難である。
よって、Dual port NVMe SSDで構成したストレージ装置の高信頼化及び高性能化を両立させることが課題である。
本発明に係るストレージ装置は、2以上のクラスタと、クラスタそれぞれに接続される記憶ドライブと、クラスタそれぞれに属しIO要求に係るデータを格納する主記憶と、クラスタそれぞれに属し主記憶に対するアクセスを制御するプロセッサとを備え、主記憶は、記憶ドライブからの書き込みを許可する第1の領域と、該書き込みを禁止する第2の領域とを含み、プロセッサは、IO要求が第1の要求である場合に、IO要求に係るデータの記憶ドライブからの転送先として第1の領域を選択し、IO要求が第2の要求である場合に、IO要求に係るデータの記憶ドライブからの転送先として第2の領域を選択すると共に第2の領域に対する書き込みを許可することを特徴とする。
本発明によれば、両ストレージクラスタのダーティデータ破壊を防ぐことができ、装置の信頼性が向上する。すなわち、ドライブ障害により両系に対し不正メモリライトが発行されても、装置性能を維持しつつ両ストレージクラスタの主記憶上のキャッシュ領域のダーティデータが同時に破壊されることを防ぐことができる。また、ホスト要求内容を判断することによって、必要な時にのみIOページテーブルを操作するため、ストレージ装置のIO処理性能への影響を最小限にすることができる。その結果、Dual port NVMe SSDで構成したストレージ装置の高信頼化及び高性能化の両立を図ることができる。
図1は、ストレージ装置全体のハードウェア構成を示す図である。 図2は、ストレージコントローラのシステム物理アドレス空間及び主記憶に格納されているデータ種別並びにそのアドレスとの対応関係を示す図である。 図3は、IOページテーブルのデータ構造を示す図である。 図4は、メモリアクセス権切替判断処理のフローチャートを示す図である。 図5は、ドライブから主記憶へのデータ転送経路を示す図である。
本発明の実施形態を、実施例1として図を参照しながら以下に説明する
図1は、本発明の実施例1に係るストレージ装置全体のハードウェア構成を示す図である。
201は、ストレージ装置のストレージコントローラを表す。ストレージ装置は、他のコンピュータから転送されるデータを永続的に格納する。ストレージ装置の高可用化を実現するため、ストレージコントローラは、2つまたは2つ以上のストレージクラスタで冗長構成を採用する。実施例1では、ストレージクラスタを2つ設けた例を示す。
301(401)は、ストレージ装置のストレージクラスタを表す。ストレージクラスタは、ホストI/F、主記憶及びプロセッサで構成され、図示しないホストからの要求を受け付け、データの入出力処理を行う。
311(411)は、ホストI/Fを表し、他のコンピュータ(例えば、ホスト)とストレージクラスタ間の通信を実現するインタフェース(I/F)である。ホストI/Fは、典型的には、プロセッサとPCI Expressで接続するFibre Channel I/Fであり、ストレージクラスタとホストとの通信を実現する。ホストI/Fは、Ethernetアダプタ、InfiniBand Host Bus アダプタ、PCI Express ブリッジ等の各種I/Fでもよく、またそれらが混在してもよい。
321(421)は、プロセッサを表し、ホストI/Fとドライブボックス内のドライブとのデータ通信を実現する。プロセッサは、ストレージ制御プログラムに従って動作する。典型的には、ストレージクラスタの冗長化のため、プロセッサは、他ストレージクラスタのプロセッサとPCI Express等のI/Fで接続し、他プロセッサの主記憶にアクセスすることを可能にしている。ただし、プロセッサは、他方のプロセッサと接続せず、ホストI/Fを経由してストレージクラスタ間の通信を実現してもよい。また、後述するドライブボックス内のスイッチ間にストレージクラスタ間通信に用いるデータ転送バスを設けて、通信を実現してもよい。また、1つのストレージクラスタに2つ以上のプロセッサを搭載してもよい。
322(422)は、プロセッサコアを表し、プロセッサを構成する機能部位の一つである。プロセッサコアは、プロセッサにつき1つ以上存在する。
323(423)は、IO Memory Mapping Unit(以下、「IOMMU」という)を表し、プロセッサを構成する機能部位の一つである。IOMMUは、IOページテーブルの記載内容に従って、プロセッサに接続するPCIe デバイスによる主記憶のリードライトの可否及びアドレス変換を制御する。例えば、アドレス変換テーブル(IOページテーブル)を保持(キャッシュ)し、アドレス変換の切り替えを制御する。
331(431)は、プロセッサの主記憶を表し(以下では、単に「主記憶」という場合がある)、典型的にDRAM等の揮発媒体で構成される。ただし、プロセッサの主記憶の一部または全てが、NAND Flash、STT−RAM、PCM等の不揮発媒体で構成されてもよい。
D111(D211)は、制御データ領域を表し、主記憶331(431)にあるストレージ装置の動作を司る制御データが格納されている領域である。詳細については後述する。
D121(D221)は、バッファデータ領域を表し、一時データを格納ための主記憶331(431)上の領域である。詳細については後述する。
D131(D231)は、キャッシュデータ領域を表し、ホストデータを格納するための主記憶331(431)上の領域である。詳細については後述する。
500は、ドライブボックスを表し、複数のドライブを搭載する。ドライブボックスは、内部にスイッチ、ドライブを搭載する。典型的には、保存できるデータ容量を拡張するため、複数のドライブボックスがシステムに接続できるように、スイッチ部に拡張用のポートを設けている。ドライブボックスは、ドライブボックス拡張用の接続I/Fを持たなくてもよい。また、ドライブボックスは、ストレージ装置の筐体と一体となってもよい。
600は、ドライブボックス内のスイッチを表し、複数のドライブを搭載するためのスイッチである。典型的には、スイッチは、ストレージクラスタのプロセッサ、ドライブボックス内のドライブ及び他のドライブボックスとPCI expressで接続する。また、図では、1つのストレージクラスタと接続しているが、2つのストレージクラスタのプロセッサと接続してもよい。
700は、ドライブを表す。ドライブは、典型的にはPCI expressでスイッチ600と接続し、NVM expressプロトコルでプロセッサとドライブ間の通信を実現する。また、ドライブは、2つのPCI express I/Fを持ち、2つのストレージクラスタ双方からドライブにアクセスすることを可能にし、ドライブの可用性を向上させる。
図2は、ストレージコントローラのシステム物理アドレス空間及び該空間に配置されている主記憶のデータ種別並びにそのアドレスとの対応関係を示す図である。
D001は、物理アドレス空間を表す。物理アドレス空間の大きさは、プロセッサが管理できるアドレス空間の大きさで決まる。
D101は、DRAM空間を表し、物理アドレス空間にマッピングされたものである。DRAM空間は、典型的には、プロセッサの主記憶のアドレスと対応し、DRAM空間に配置されたデータは主記憶に格納される。主記憶の一部またはすべてが不揮発媒体で構成されている場合、不揮発媒体内のアドレスがDRAM空間にマッピングされてもよい。また、DRAM空間の一部またはすべてが不揮発媒体内のアドレスと対応していてもよい。
D102は、予約領域を表し、物理アドレス上で資源として割り当てられていない領域である。制御プログラムは、予約領域の開始アドレス及び終端アドレスを自由に変えることができる。
D103は、MMIO空間を表し、制御プログラムがPCIデバイスに対しデータの入出力を行うためのI/Fとなる空間である。予約領域と同様に、制御プログラムは、MMIO空間の大きさも自由に変えることができる。
D111は、制御データ領域を表し、DRAM空間に配置される。制御データ領域には、ストレージ装置を制御するためのプログラムデータ、その制御に必要な制御データ及びIOMMUのメモリアクセス権やアドレス変換を行うためのIOページテーブルを格納する。制御データ領域はストレージ装置の制御を司ることから、典型的には、特定の1つまたは1つ以上のプロセッサコア及びソフトウェアのみに、制御データ領域上のデータへのアクセスが許可される。
D112は、制御プログラムを表し、ストレージ装置を制御するためのプログラムデータである。制御プログラムは、典型的には、ストレージ装置のオペレーティングシステム(OS)である。具体的に、制御プログラムは、ホストI/Fやドライブへのデータ転送指示、後述する制御データを管理及び操作する。また、制御プログラムは、ハイパーバイザ―及びハイパーバイザ―上で動作する仮想マシンでもよく、仮想マシンは複数存在していてもよい。さらに、複数の仮想マシンが実装された場合、ストレージ装置を制御する仮想マシンが最低1つ存在していれば、他の仮想マシンはストレージ装置の動作に関係の無いアプリケーションを動作させてもよい。
D113は、制御データを表し、ストレージ装置の制御に必要なデータである。制御データは、典型的には、前述したキャッシュデータを管理するキャッシュディレクトリ、バッファデータ領域を管理するテーブル、ドライブデータを管理するためのボリューム管理情報、デバイスを制御するためのコマンドデータ及びストレージクラスタ間で共有する共有データ等である。
制御データの中で、キャッシュディレクトリに関して、ストレージ装置は、キャッシュディレクトリをセグメントと呼ばれる64kBで1つの管理単位により管理する。具体的には、セグメントの状態、LRU情報(デステージ処理の対象になるかどうかの判定を行う際の判断材料となる)、MRU情報、セグメント内の520Bの各サブブロックについて、ダーティ状態かクリーン状態かを示すビットマップ及びデータを格納する物理アドレスなどの情報を保持するリストにより管理する。
また、バッファデータ領域を管理するテーブルに関して、ストレージ装置は、後述する性能特化IO処理における参照すべきデータ量や処理量を小さくするために、ホストIO処理を行う処理ID、ボリューム情報、転送元のドライブ情報及び領域占有情報などIO処理に必要最低限の情報を格納するテーブルによりバッファデータ領域を管理する。
D114は、IOページテーブルを表し、IOMMUがプロセッサに接続するデバイスに対しアドレス変換、メモリアクセス権制御機能を提供するために必要なテーブルである。IOページテーブルは、図3に示すデータ構造を持つ。IOMMUは、IOページテーブルを参照し、どのデバイスがどのアドレスに対し入出力できるかを判断し制御する。プロセッサコアは、IOページテーブルの内容を書き換えることができる。また、プロセッサコアは、IOMMUのレジスタを操作することでIOMMUにキャッシュされているIOページテーブルを無効化し、書き換え後の新しいIOページテーブルをフェッチさせることができる。この操作により、プロセッサコアは、必要に応じて特定のデバイスに対するメモリアクセス権の制御を変更及びその反映をすることができる。
D121は、バッファデータ領域を表し、ストレージ装置とホストとの間でIOを行う際に一時データであるバッファデータを格納する領域である。バッファデータは、キャッシュ制御による管理の対象とならない。そのため、バッファ領域を使ったデータ転送は後述するキャッシュデータ領域を経由したデータ転送より処理時間が短く、高性能が要求されるデータ転送処理に利用されることがある。
D122は、一時データを表し、バッファデータ領域D121に一時的に格納されるデータである。一時データは、ホスト要求処理が完了すると速やかに破棄されることにより、次のホスト要求処理でバッファデータ領域が利用できるようになる。
D131は、キャッシュデータ領域を表し、ホストデータを格納するための主記憶上の領域である。キャッシュデータ領域にホストデータを格納できるようにすることにより、ストレージ装置のデータ入出力性能を向上させることを狙う。ストレージ装置は、キャッシュデータ領域上のキャッシュデータをストレージ装置のキャッシュ制御の対象とし、制御データD113内にあるキャッシュディレクトリによりキャッシュ領域上のホストデータを管理する。
D132は、ダーティデータを表し、キャッシュデータ領域D131内に格納されるホストデータで、ストレージ装置のドライブにデステージされていないデータである。ダーティデータは、主記憶上にのみ存在するホストデータであるため、主記憶の揮発が生じれば消失する。そのため、ダーティデータは、通常クラスタ間で冗長化され、デステージが発生するまで冗長化された状態が維持される。障害ドライブの不正データ転送によるダーティデータ消失を回避するために、ダーティデータが格納されている物理アドレス領域は、IOページテーブルのエントリのメモリアクセス権の設定によって、常にドライブによるメモリライトを不可とする。ただし、ドライブによるメモリリードについては、データが破壊される可能性が小さいため、メモリアクセス権を可としてもよい。ただし、ドライブがユーザーデータの信頼性をチェックできない低機能低価格のドライブである場合、データを誤ったドライブ内アドレスに転送することによるドライブ内のデータ破壊から保護するために、ダーティデータのメモリアクセス権を不可とする。
D133は、クリーンデータを表し、キャッシュデータ領域D131内に格納されるホストデータで、ストレージ装置のドライブにデステージされたデータである。クリーンデータは、主記憶とドライブの両方に存在するホストデータであるため、主記憶の揮発が生じてクリーンデータが消失しても、ドライブからステージングすることにより復元することができる。このように、クリーンデータは、回復が可能であるため、クラスタ間で冗長化されていなくてもよい。障害ドライブの不正データ転送によってクリーンデータが消失しても、ドライブから再度ステージングすることによって回復できる。そのため、クリーンデータが格納されている物理アドレス領域は、IOページテーブルにエントリされているメモリアクセス権の設定によって、ドライブによるメモリライトは可としてもよい。また、同様にドライブによるメモリリードについては、データが破壊される可能性が小さいため、メモリアクセス権を可としてもよい。
D134は、キャッシュデータ領域D131内の未割当領域を表す。制御プログラムがホストI/Fまたはドライブに主記憶からデータを転送させようとする際に、制御プログラムがキャッシュディレクトリを参照し、ホストI/Fまたはドライブのデータ転送先となるセグメントを選択する。この際、キャッシュデータ領域に未割当領域が存在すれば、制御プログラムは、未割当領域をデータ転送先として排他的に利用する。もし未割当領域が存在しなければ、制御プログラムは、LRUまたはMRUで、クリーンデータが格納されたセグメントを選択して未割当状態に遷移させるか、または、ダーティデータをデステージしてダーティ状態からクリーン状態に遷移させることにより、未割当状態に遷移させて、データ転送先として排他的に利用する。データ転送の完了後、制御プログラムは、キャッシュディレクトリを更新し、当該セグメントは未割当状態からダーティ状態またはクリーン状態に遷移する。
図3は、IOページテーブルのデータ構造を示す図である。
IOページテーブルは、制御対象デバイス情報T101を格納するフィールド、メモリアクセス制御対象領域の開始物理アドレスT102を格納するフィールド、メモリアクセス制御対象領域の大きさを表すページサイズT103を格納するフィールド、制御対象デバイスのメモリアクセス権T104の情報を格納するフィールドを含む。IOページテーブルは、これ以外のフィールドを含んでいてもよい。
制御対象デバイス情報T101は、メモリアクセス制御の対象となるPCIデバイスを指定する識別子を表す。この識別子は、典型的にはPCIのバス番号、デバイス番号及びファンクション番号の3つとなる。ファンクション番号は、ヴァーチャルファンクション番号を用いてもよい。バス単位、デバイス単位またはファンクション単位で、デバイスのメモリアクセス権を制御できる。
メモリアクセス制御対象領域の開始物理アドレスT102は、制御対象デバイスのメモリアクセスに対する物理アドレスの開始アドレスを指定する。
ページサイズT103は、典型的には、4kB、2MB、1GBといったサイズが指定できるところ、設計によってこの大きさを変えることもできる。
メモリアクセス権T104は、制御対象デバイスのメモリアクセス、すなわちメモリリードとメモリライトの可否を決定する可否情報を格納する。これにより、当該デバイスのメモリアクセス権を制御する。
このIOページテーブルは、典型的には主記憶に格納されているところ、IOページテーブルの複製の一部または全てをドライブ内のバッファに格納してもよい。
図4は、メモリアクセス権切替え判定処理のフローチャートを示す図である。
メモリアクセス権切替え判定処理は、ストレージ装置がホストからのIO要求を受けてから、このIO要求に対応したストレージ装置が行うべき処理内容に応じて、ストレージ装置がドライブによるメモリライトを許可または禁止するための処理を切り替える判定処理である。この判定処理において、ストレージ装置がホストからのIO要求を受領した以降の処理の主体は、ストレージ装置のプロセッサコアである(以下では、「コア」と略す)。
ステップS001は、コアがホスト要求を受領し要求を解釈するステップである。ホストI/Fが、ホスト−ストレージ装置間のプロトコルをSCSIコマンドに変換し、ホストI/Fが主記憶にライトする。コアが、主記憶上のSCSIコマンドに変換されたホスト要求を読み取り、内容を解釈する。ホスト要求には、データ転送長、ストレージ装置に対するRead処理またはWrite処理等の処理種別を表すIO処理種別、データが格納されているLUN等のボリューム管理情報、データ格納元のアドレスを表すLBAが記述されている。コアは、ホスト要求の内容に応じてストレージ装置が次に行う処理の内容を決定する。
ステップS002は、コアがホスト要求の内容を解釈し、Read要求か否かの判定する条件分岐のステップである。ホスト要求種別が、Read要求、すなわちストレージ装置からホストへのデータ転送要求である場合(YES)は、ステップS003に進む。それ以外の要求種別、ここではWrite要求、すなわちホストからストレージ装置へのデータ転送要求である場合(NO)は、ステップS005に進む。
まず始めに、Write要求(ステップS002の判定結果がNO)の場合の後続する処理を説明する。
ステップS005は、コアがホストのWrite要求のIOパターンを分析し、ランダムアクセス処理をすべきかどうかを判定するステップである。ホスト要求のIOパターンは、典型的にはデータ転送長が512B〜数十kBと小さく、Writeデータの格納先となるアクセス範囲が大きくかつ局所性が小さいランダムアクセスと、データ転送長が数十kB〜1MBと大きくかつアクセス先が連続性をもつシーケンシャルアクセス、の2つに大別される。
判定の結果、シーケンシャルライトである場合(NO)、コアはホストから受領したデータのみを用いてパリティを生成し冗長化する処理を行うため、既にドライブに格納されている旧データをドライブから読み込む処理は行わない。よって、アクセスパターンがシーケンシャルライトだった場合、コアは、ドライブからの読み込み処理(以下、「ドライブリード処理」という)時のドライブによるメモリライトの許可禁止切替え処理を不要と判断し、メモリアクセス権切替え判定処理を終了する。他方、ランダムライトである場合(YES)、後述するステップS006へ進む。
ステップS003は、ストレージ装置のRead処理におけるキャッシュヒットを判定するステップである。ストレージ装置は、プロセッサの主記憶をデータキャッシュとして用いることで、ストレージ装置の入出力性能を向上させる。コアは、キャッシュヒット判定処理を実行し、ホストが要求するデータがキャッシュ領域上に存在するかどうかを確認する。具体的には、コアが制御データ領域に格納されているキャッシュディレクトリを参照し、ホストが要求するデータがキャッシュディレクトリに登録されているかどうかを確認する。
ステップS004は、ステップS003のキャッシュヒット判定処理によるキャッシュミスを判定するステップである。キャッシュディレクトリに要求するデータが登録済みで、キャッシュ領域上に要求するデータが存在すると確認できた場合(NO)は、キャッシュヒットと判定される。キャッシュディレクトリに要求するデータが登録されておらず、キャッシュ領域上に要求するデータが存在しないと確認できた場合(YES)は、キャッシュミスと判定される。キャッシュミス時には、コアはキャッシュミスに対応した処理(Read Miss処理)を実施する
キャッシュミスと判定された場合(YES)、ホストにデータ転送するために、コアは、ドライブから要求するデータを主記憶にステージングする必要があるので、ステップS007に進む。
キャッシュヒットと判定された場合(NO)、コアは、キャッシュ領域上のホストデータを読み出してホストにデータ転送することができる。よって、ドライブリード処理を行う必要が無く、コアはメモリアクセス権切替え判定処理を終了する。
一方で、ステップS006は、ランダムライト処理におけるデステージ処理で生じる、ドライブリード処理を実行するステップである。アクセスパターンがランダムだった場合、キャッシュデータの管理単位より小さいデータ長でキャッシュデータの更新が発生し、デステージの際に古いパリティデータを更新する必要がある。管理単位より小さいデータ長でキャッシュデータの更新が発生するため、1つのキャッシュデータ内に新データと旧データが混在する形となる。そのため、コアは、ホストから受領したデータのみでパリティを生成するなどにより、データを冗長化することができず、ストレージ装置のドライブに格納されている旧データを用いて、新たな冗長データ(新パリティ)を演算し生成する必要がある。そのため、コアは、新パリティを演算する際に、ドライブから旧データを読み出す処理を行う。よって、ランダムライト処理でドライブリード処理が発生することになる。ランダムライト処理におけるデステージ処理は、非同期で行われる。キャッシュ領域上のダーティデータ量が閾値を超えること等を契機として、コアが、ランダムライト処理におけるデステージ処理を開始した場合、ドライブリード処理の性能特化IO処理の判定を行うため、ステップS007に進む。
ステップS007は、ストレージ装置のドライブリード処理方法を判断する条件分岐のステップである。ホスト要求とストレージ装置の状態が特定の条件に合致した場合に、ストレージ装置によるホスト要求の処理量を増加させる、または、できるだけホスト要求処理時間を短縮させるために、コアがホスト要求を特別な方法で処理する場合がある。以降、この処理を「性能特化IO処理」と呼ぶ。
ステップS007で、コアは、特定の処理条件に合致しない通常IO処理を実施するか、特定の処理条件に合致する性能特化IO処理を実施するかを判断する。コアが、通常IO処理を実施すると判断すれば(NO)、ステップS008に進み、性能特化IO処理を実施すると判断すれば(YES)、ステップS014に進む。具体的な判断方法については、以下のいずれの方法であってもよい。例えば、コアが、主記憶上に用意された、IO要求処理方法判断に使う条件判定用ビットマップテーブルを読み込み、バッファデータ領域が利用可能でキャッシュ制御処理を省略できると判断し高性能処理の実施を指示するビットが1になっている状態を契機として、性能特化IO処理の実施を判断してもよい。また、特定のホストからの要求、または特定のドライブのボリュームに対する要求を受領したことを契機として、性能特化IO処理の実施を判断してもよい。さらには、ストレージ装置のプロセッサコア稼働率(コアの動作時間に対してコアが演算処理している時間の比)が、定められた閾値、例えば50%を上回り、かつ、主記憶のキャッシュデータ領域に格納されているダーティデータの全体に占める割合が、定められた閾値、例えば60%を上回る場合において、性能特化IO処理の実施を判断してもよい。
ステップS008は、通常IO処理として、コアが、主記憶の転送先キャッシュデータ領域上にホストへのデータ転送用作業領域を特定し、排他的に利用するためのステップである。コアは、ホスト要求の内容を解釈し、ホストが要求するデータが格納されているNVMeドライブ内のLBAを特定する。LBAに対応するホストデータがキャッシュ領域に存在するかどうか確かめるため、コアはキャッシュディレクトリを参照する。参照の結果キャッシュミスした場合、コアはキャッシュデータ領域上のデータ転送先セグメントを探索する。
探索の結果、未割当領域があれば、コアは、制御データ領域に格納するキャッシュ制御デーブルを操作し、他のコアやデバイスが操作できないよう排他処理を行う。これは、ホストIO処理が完了するまでの間、主記憶上のキャッシュ領域が他の処理による干渉を受けないようにするためである。
探索の結果、未割当領域がなければ、コアは、クリーンデータを格納したセグメントの内容を破棄して未割当領域に状態遷移させるか、または、ダーティデータをデステージしてセグメントの内容をダーティ状態からクリーン状態に遷移させることで未割当領域に状態遷移させてから、前述した排他処理を行う。この際、対象となるセグメントは、典型的には、ホストの要求を受け付けたストレージクラスタ側の主記憶に格納されるセグメントを選択する。これに限らず、他方のストレージクラスタ側の主記憶に格納されるセグメントを選択してもよい。
ステップS009は、コアが、ドライブにデータ転送要求の指示を出すための命令(ドライブからの読み込みコマンド、以下「ドライブリードコマンド」という)を主記憶上に作成するステップである。NVMeドライブへの指示形式は、NVM expressのリードコマンドフォーマットに準ずる。
ステップS010は、コアが、転送先キャッシュデータ領域に対応するIOページテーブルを操作し、ドライブからの転送先キャッシュデータ領域へのデータ転送を許可するステップである。コアは、図3に示すIOページテーブルを操作し、転送先領域に該当するIOページテーブルのメモリアクセス権を「Read許可、Write禁止」から「Read許可、Write許可」に切り替える処理を行う。コアによる切り替え処理として以下の処理を行う。始めに、転送指示をするNVMeドライブを特定する。次に、転送処理先領域に対応する物理アドレスを特定し、操作すべきIOページテーブルを特定する。最後に、そのテーブルのビットを操作し、メモリアクセス権の切り替えを実施する。
メモリアクセス権の切り替えを確定させるため、コアは、IOMMUのレジスタを操作し、IOMMU内部にキャッシュされているIOページテーブルの無効化処理を行う。ステップS010では、メモリアクセス権変更済みのIOページテーブルを再度IOMMUにキャッシュさせることで、メモリアクセス権変更の適用を確定させる。
ステップS011は、コアが、ドライブに対しドライブリード処理の実行を指示するステップである。ドライブリード処理の実行の指示方法は、ドライブの設計、実装に依存するところ、ドライブ内のメディアコントローラのレジスタを操作し直接指示を出すか、または、コアまたはコア以外のデバイスが主記憶上に実行指示(メモリライト)しドライブにポーリングさせて間接的に指示を出すようにしてもよい。
ステップS012は、コアが、ドライブの処理応答完了の受領を確認するステップである。ドライブが、ドライブ内媒体からプロセッサ主記憶へのデータ転送を完了させると、主記憶上の完了応答受領用のキューに完了通知のメモリライトを実施する。コアが、この完了通知を読み取ることで完了の確認を行う。また、処理応答完了の方法は別手段でもよい。例えば、ドライブのMSIを1つまたは1つ以上のコアに発行し、割り込みによって完了を通知してもよい。その他、例えば、ホストI/F等、プロセッサに接続する外部デバイスのレジスタに対し、直接ライトを発行することで通知してもよい。
ステップS013は、コアが、転送先キャッシュデータ領域に対応するIOページテーブルを操作し、ドライブの転送先キャッシュデータ領域へのデータ転送を許可するステップである。コアは、図3に示すIOページテーブルを操作し、転送先領域に該当するIOページテーブルのメモリアクセス権を「Read許可、Write許可」から「Read許可、Write禁止」に切り替える処理を行う。コアによる切り替え処理として以下の処理を行う。始めに、転送指示をするNVMeドライブを特定する。次に、転送処理先領域に対応する物理アドレスを特定し、操作すべきIOページテーブルを特定する。最後に、テーブルのビットを操作し、メモリアクセス権の切り替えを実施する。
メモリアクセス権の切り替えを確定させるため、コアは、IOMMUのレジスタを操作し、IOMMU内部にキャッシュされているIOページテーブルの無効化処理を行う。ステップS013では、メモリアクセス権変更済みのIOページテーブルを再度IOMMUにキャッシュさせることで、メモリアクセス権変更の適用を確定させる。
次に、ステップS007でコアが性能特化IO処理の実施と判断した場合について説明する。ステップS014は、コアが、性能特化IO処理として転送先の一時領域を特定するステップである。キャッシュ制御を行わないことにより、転送先領域を占有するための処理量が少なくて済む。これにより、通常IO処理と比較して小さい処理時間で、性能特化IO処理で用いるバッファ領域を選択することが可能となる。
ステップS014に続く、ステップS009、ステップS011及びステップS012については、前述と同様である。
以上の処理を実行後、ホスト要求がRead処理である場合、コアは、ホストI/Fが主記憶からホストへユーザーデータを転送することを指示し、ホストI/Fに主記憶上のホストデータを転送させ、ホストからデータ受領完了応答を受領し、その応答受領を認識した時点で、ホスト要求の処理を終了する。また、ホスト要求がWrite要求でランダムライト処理である場合、コアは、RMW(Read−Modify−Write)処理で生成した新データ、新パリティをデステージし、デステージの完了を以てデステージ処理を終了する。
図5は、ストレージ装置のドライブからプロセッサの主記憶に対するデータ転送の経路を示す図である。転送経路としては、以下のP11、P12、P21及びP22の4つとなる。P11及びP12は、ストレージクラスタ301のプロセッサ321がドライブ700にデータ転送を要求し、ドライブ700がプロセッサの主記憶331にデータを転送する時のデータ転送経路である。P21及びP22は、同様に、ストレージクラスタ401のプロセッサ421がドライブ700にデータ転送を要求し、ドライブ700がプロセッサの主記憶431にデータを転送する時のデータ転送経路である。P11及びP12とP21及びP22は、転送経路及び動作がストレージクラスタ301及び401からすれば対称であるため、ストレージクラスタ301側のP11及びP12の方を対象にして説明する。
P11は、図示しないホストからの要求(以下、「ホスト要求」という)を受け付けたコア322が、ストレージクラスタ301の制御プログラムを実行し、図4に示すステップS007の結果、通常IO処理の実施と判断し、データ転送用キャッシュとして用いるセグメントを、ストレージクラスタ301側の主記憶331に確保した場合のデータ転送経路である。図4に示すステップS007の結果、通常IO処理の実施と判断した場合、ステップS008で、コア322は、ストレージクラスタ301の主記憶331のキャッシュデータ領域D131に対して、ドライブ700からのデータ転送先としてセグメントを確保し、排他処理を行う。コア322は、ドライブ700に対し、排他処理を行ったセグメントをデータ転送先としてドライブリード処理(ドライブから主記憶方向へのデータ転送)の要求を行う。ドライブ700は、この要求に従って、ホスト要求を受け付けた側のストレージクラスタ301の主記憶331のキャッシュデータ領域D131に対し、データ転送を実施する。
P12は、ホスト要求を受け付けたコア322が、ストレージクラスタ301の制御プログラムを実行し、図4に示すステップ007の結果、性能特化IO処理の実施と判断し、データ転送用バッファとして用いるバッファ領域を、ストレージクラスタ301側の主記憶331に確保した場合のデータ転送経路である。図4に示すステップS007の結果、性能特化IO処理の実施と判断した場合、ステップS014で、コア322は、ストレージクラスタ301の主記憶331のバッファデータ領域D121をドライブのデータ転送先として選択し、バッファデータ領域D121の一部の領域に対し排他処理を行う。コア322は、ドライブ700に対し、排他処理を行ったバッファデータ領域D121を、データ転送先としてドライブリード処理(ドライブから主記憶方向へのデータ転送)の要求を行う。ドライブ700は、主記憶331のバッファデータ領域D121に対し、データ転送を実施する。
例外として、ホスト要求に対するキャッシュヒット率の向上を目的として、ストレージクラスタ301側の制御プログラムがクラスタ401側の主記憶にデータ転送用のセグメントを確保する場合がある。その場合、コア322は、ストレージクラスタ301の制御プログラムの実行により、クラスタ間通信を介してコア422(ストレージクラスタ401の制御プログラム)に対し、ドライブへのデータ転送指示を依頼する。依頼を受けたコア422は、ストレージクラスタ401の制御プログラムの実行により、ドライブ700にデータ転送を要求元のストレージクラスタ401側の主記憶431へ行うことを要求する。その要求を受け取ったドライブ700は、P21の経路に従って要求元のストレージクラスタ401へデータ転送を行う。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
201…ストレージコントローラ 301、401…ストレージクラスタ
311、411…ホストI/F 321、421…プロセッサ
322、422…プロセッサコア(コア) 323,423…IOMMU
331、431…プロセッサの主記憶(主記憶)
500…ドライブボックス 600…スイッチ 700…ドライブ
D111、D211…制御データ領域
D121、D221…バッファデータ領域
D131、D231…キャッシュデータ領域

Claims (8)

  1. 2以上のクラスタと、前記クラスタそれぞれに接続される記憶ドライブと、前記クラスタそれぞれに属しIO要求に係るデータを格納する主記憶と、前記クラスタそれぞれに属し前記主記憶に対するアクセスを制御するプロセッサとを備え、
    前記主記憶は、前記記憶ドライブからの書き込みを許可する第1の領域と、該書き込みを禁止する第2の領域とを含み、
    前記プロセッサは、前記IO要求が第1の要求である場合に、前記IO要求に係るデータの前記記憶ドライブからの転送先として前記第1の領域を選択し、前記IO要求が第2の要求である場合に、前記IO要求に係るデータの前記記憶ドライブからの転送先として前記第2の領域を選択すると共に前記第2の領域に対する書き込みを許可する
    ことを特徴とするストレージ装置。
  2. 請求項1に記載のストレージ装置であって、
    前記プロセッサは、書き込みを許可した前記第2の領域への書き込みが終了すると、当該第2の領域に対する前記記憶ドライブからの書き込みを禁止する
    ことを特徴とするストレージ装置。
  3. 請求項1又は2に記載のストレージ装置であって、
    前記プロセッサは、前記IO要求が読み出し処理であり、該読み出し処理の対象データが前記主記憶に設けたデータキャッシュ上に存在しない場合、または、前記IO要求がランダムアクセスの書き込み処理であり、該書き込み処理に伴う前記記憶ドライブからのデータ読み出しが必要な場合に、前記第1の要求か前記第2の要求かの選択を行う
    ことを特徴とするストレージ装置。
  4. 請求項1〜3のいずれか1項に記載のストレージ装置であって、
    前記プロセッサは、前記第1の要求か前記第2の要求かの選択を、条件判定用ビットマップテーブルに基づいて判断する
    ことを特徴とするストレージ装置。
  5. 記憶ドライブからの書き込みを許可する第1の領域及び該書き込みを禁止する第2の領域を含む主記憶に対し、
    IO要求が第1の要求であるか第2の要求であるかを判断する第1のステップと
    前記IO要求が第1の要求である場合に、前記IO要求に係るデータの前記記憶ドライブからの転送先として前記第1の領域を選択する第2のステップと、
    前記IO要求が第2の要求である場合に、前記IO要求に係るデータの前記記憶ドライブからの転送先として前記第2の領域を選択すると共に前記第2の領域に対する書き込みを許可する第3のステップと
    を有するIO要求処理方法。
  6. 請求項5に記載のIO要求処理方法であって、
    前記第3のステップに続いて、書き込みを許可した前記第2の領域への書き込みが終了すると当該第2の領域に対する前記記憶ドライブからの書き込みを禁止する第4のステップ
    を有するIO要求処理方法。
  7. 請求項5又は6に記載のIO要求処理方法であって、
    前記第1のステップは、前記IO要求が読み出し処理であり、該読み出し処理の対象データが前記主記憶に設けたデータキャッシュ上に存在しない場合、または、前記IO要求がランダムアクセスの書き込み処理であり、該書き込み処理に伴う前記記憶ドライブからのデータ読み出しが必要な場合に、実行されるステップ
    であるIO要求処理方法。
  8. 請求項5〜7のいずれか1項に記載のIO要求処理方法であって、
    前記第1のステップは、当該IO要求処理を実行するプロセッサが条件判定用ビットマップテーブルに基づいて判断するステップ
    であるIO要求処理方法。
JP2018516290A 2016-05-12 2016-05-12 ストレージ装置 Active JP6677806B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/064148 WO2017195324A1 (ja) 2016-05-12 2016-05-12 ストレージ装置

Publications (2)

Publication Number Publication Date
JPWO2017195324A1 true JPWO2017195324A1 (ja) 2018-11-08
JP6677806B2 JP6677806B2 (ja) 2020-04-08

Family

ID=60266647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018516290A Active JP6677806B2 (ja) 2016-05-12 2016-05-12 ストレージ装置

Country Status (3)

Country Link
US (1) US10782917B2 (ja)
JP (1) JP6677806B2 (ja)
WO (1) WO2017195324A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11139959B2 (en) * 2018-02-01 2021-10-05 The University Of Chicago Stream ciphers for digital storage encryption
CN109448779B (zh) * 2018-11-14 2020-11-20 苏州浪潮智能科技有限公司 一种Dual Port SSD的SI测试方法、装置
JP2020161029A (ja) * 2019-03-28 2020-10-01 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US11256621B2 (en) * 2019-06-25 2022-02-22 Seagate Technology Llc Dual controller cache optimization in a deterministic data storage system
US11977493B2 (en) * 2019-07-17 2024-05-07 Red Hat, Inc. Safe virtual machine physical device access for network function virtualization
JP7315753B2 (ja) * 2019-08-02 2023-07-26 株式会社日立製作所 ストレージ装置
JP2021108058A (ja) 2019-12-27 2021-07-29 株式会社日立製作所 ストレージシステム
JP7242928B2 (ja) * 2020-02-07 2023-03-20 株式会社日立製作所 ストレージシステム及び入出力制御方法
JP7028902B2 (ja) 2020-02-07 2022-03-02 株式会社日立製作所 ストレージシステム及び入出力制御方法
CN113608784B (zh) * 2021-08-19 2024-05-03 湖南国科微电子股份有限公司 NVMe控制装置和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005352833A (ja) * 2004-06-11 2005-12-22 Hitachi Ltd 共有排他制御方法
JP2015026263A (ja) * 2013-07-26 2015-02-05 株式会社日立製作所 計算機システム、キャッシュ管理方法、及び計算機
WO2016038710A1 (ja) * 2014-09-11 2016-03-17 株式会社日立製作所 ストレージシステム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761657B2 (en) 2006-07-10 2010-07-20 Hitachi, Ltd. Storage control system, control method for storage control system, port selector, and controller
JP2008027291A (ja) * 2006-07-24 2008-02-07 Hitachi Ltd ストレージ装置及びデータ保護方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005352833A (ja) * 2004-06-11 2005-12-22 Hitachi Ltd 共有排他制御方法
JP2015026263A (ja) * 2013-07-26 2015-02-05 株式会社日立製作所 計算機システム、キャッシュ管理方法、及び計算機
WO2016038710A1 (ja) * 2014-09-11 2016-03-17 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
US20200192601A1 (en) 2020-06-18
US10782917B2 (en) 2020-09-22
WO2017195324A1 (ja) 2017-11-16
JP6677806B2 (ja) 2020-04-08

Similar Documents

Publication Publication Date Title
JP6677806B2 (ja) ストレージ装置
US9836404B2 (en) Write mirroring to storage class memory devices
TWI438628B (zh) 資料儲存系統及資料儲存媒介
US9262265B2 (en) Storage system and storage control apparatus
US9430386B2 (en) Multi-leveled cache management in a hybrid storage system
US9280478B2 (en) Cache rebuilds based on tracking data for cache entries
US20140189204A1 (en) Information processing apparatus and cache control method
WO2017216887A1 (ja) 情報処理システム
JP6101170B2 (ja) 計算機システム、キャッシュ管理方法、及び計算機
US7752409B2 (en) Storage system and computer system and processing method thereof
JP2007286946A (ja) 計算機システム、アクセス制御方法及び管理計算機
JP2014203405A (ja) 情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラム
WO2007146845A2 (en) Configurable and scalable hybrid multi-tiered caching storage system
JP2020021232A (ja) 情報処理システム
JP5977430B2 (ja) ストレージシステム、ストレージシステムの制御方法及びストレージコントローラ
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
WO2015141219A1 (ja) ストレージシステム、制御装置、記憶装置、データアクセス方法及びプログラム記録媒体
WO2015173889A1 (ja) ストレージ装置
WO2017149674A1 (ja) ストレージシステム、ストレージ装置、およびストレージシステムの制御方法
US10445239B1 (en) Write buffering
KR20200079729A (ko) 데이터 일관성을 위한 버퍼 캐시 및 방법
JP2017167658A (ja) 記録装置
JP2021108058A (ja) ストレージシステム
JP2024001761A (ja) メモリシステムおよび制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191016

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200313

R150 Certificate of patent or registration of utility model

Ref document number: 6677806

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150