JP2022129774A - ストレージ装置、及び、そのデータ処理方法 - Google Patents
ストレージ装置、及び、そのデータ処理方法 Download PDFInfo
- Publication number
- JP2022129774A JP2022129774A JP2021028589A JP2021028589A JP2022129774A JP 2022129774 A JP2022129774 A JP 2022129774A JP 2021028589 A JP2021028589 A JP 2021028589A JP 2021028589 A JP2021028589 A JP 2021028589A JP 2022129774 A JP2022129774 A JP 2022129774A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read request
- transfer unit
- read
- host computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
Abstract
【解決課題】プロトコルの異なるリード要求に対しても、プロトコルの違いを吸収し、リード要求に迅速に応答すること。
【解決手段】ストレージ装置は、FICONのリード要求に基づくデータの転送単位から、zHLのリード要求に基づくデータの第2の転送単位を構成し、第2の転送単位のデータの保証コードを計算し、第2の転送単位のデータと保証コードとをメモリに格納し、zHLに基づくリード要求を受領すると、リード要求の対象となった第2の転送単位のデータがメモリに存在することを判定する場合、データを保証コードとともにホストコンピュータに転送し、zHLに基づくリード要求の対象となった第2の転送単位のデータがメモリに存在しないことを判定する場合、リード要求のミスを前記ホストコンピュータに通知し、通知を受けたホストコンピュータは、FICONに基づくリード要求を出力する。
【選択図】図1
【解決手段】ストレージ装置は、FICONのリード要求に基づくデータの転送単位から、zHLのリード要求に基づくデータの第2の転送単位を構成し、第2の転送単位のデータの保証コードを計算し、第2の転送単位のデータと保証コードとをメモリに格納し、zHLに基づくリード要求を受領すると、リード要求の対象となった第2の転送単位のデータがメモリに存在することを判定する場合、データを保証コードとともにホストコンピュータに転送し、zHLに基づくリード要求の対象となった第2の転送単位のデータがメモリに存在しないことを判定する場合、リード要求のミスを前記ホストコンピュータに通知し、通知を受けたホストコンピュータは、FICONに基づくリード要求を出力する。
【選択図】図1
Description
本発明は、ホストコンピュータとネットワークを介して情報の送受信を行うストレージ装置、そして、そのデータ処理方法に関する。
ホストコンピュータとストレージ装置とがネットワークを介して接続されるストレージシステムにおいて、メインフレームと補助記憶装置とを繋ぐインターフェースプロトコルとして、例えば、FICON(Fibre Connect)、HPF(High Performance)が知られている。
さらに、メインフレームとストレージ装置間のデータアクセスのパフォーマンスを向上することによって、アプリケーション応答速度を既存のインターフェースと比べて高速化する、新たなインターフェースプロトコルも開発されている。この種のプロトコルとして、z Hyper Link(以下、“zHL”と記す。)が存在する。
ホストコンピュータはインターフェースプロトコルに基づいてリード要求を生成してストレージ装置に送信する。ストレージ装置のDMAコントローラは、データの転送単位ごとに、リードデータに誤り検出符号、例えば、Cyclic Redundancy Check code(CRC)を付加して、リードデータをホストコンピュータに転送する(特開2014-558362号公報)。
ホストコンピュータとストレージ装置とがネットワークを介して接続されるストレージシステムにおいて、ホストコンピュータがストレージ装置に対してデータを要求する場合、ストレージ装置に対して、リード要求を出力する。この際、リード要求は、ホストコンピュータによっては異なるプロトコルで生成されることがある。例えば、zHL用のプロトコルで生成されるリード要求では、リードデータとして、レコード単位のデータが要求され、FICON用のプロトコルで生成されるリード要求では、トラック単位のデータが要求されることがある。この場合、プロトコルの異なるリード要求について、各リード要求で指定されたリードデータを要求元に送信するには、ストレージ装置としては、プロトコルの違いを吸収し、リード要求に迅速に応答することが要求される。
本発明は、プロトコルの異なるリード要求に対しても、プロトコルの違いを吸収し、リード要求に迅速に応答することを目的とする。
前記目的を達成するために、本発明は、ホストコンピュータからストレージ装置へのリード要求を処理する前記ストレージ装置であって、前記ホストコンピュータと前記ストレージ装置との間のデータ転送を制御するインターフェースコントローラと、前記リード要求対象のデータのリードと、リードされたデータの転送を制御するデータ処理コントローラと、前記リードされたデータの一時記憶用のメモリと、を備え、前記ホストコンピュータは、少なくとも2種類のインターフェースプロトコルを前記リード要求のために実行し、前記データ処理コントローラは、第1のインターフェースプロトコルのリード要求にしたがってリードされたデータを前記メモリに格納し、前記インターフェースコントローラ、及び/又は、前記データ処理コントローラは、前記第1のインターフェースプロトコルのリード要求に基づくデータの第1の転送単位から、前記第2のプロトコルのリード要求に基づくデータの第2の転送単位を構成し、当該第2の転送単位のデータの保証コードを計算し、当該第2の転送単位のデータと当該保証コードとを前記メモリに格納し、前記インターフェースコントローラは、前記第2のインターフェースプロトコルに基づくリード要求を受領すると、当該リード要求の対象となった前記第2の転送単位のデータが前記メモリに存在することを判定する場合、当該データを前記保証コードとともに前記ホストコンピュータに転送し、前記第2のインターフェースプロトコルに基づくリード要求の対象となった前記第2の転送単位のデータが前記メモリに存在しないことを判定する場合、当該リード要求のミスを前記ホストコンピュータに通知し、当該通知を受けたホストコンピュータは、前記第1のインターフェースプロトコルに基づくリード要求を前記インターフェースコントローラに出力する、ことを特徴とする。
本発明によれば、プロトコルの異なるリード要求に対しても、プロトコルの違いを吸収し、リード要求に迅速に応答することができる。
図1は、図示を省略したホストコンピュータに接続されるストレージ装置の実施形態のハードウェアブロック図である。図1において、ストレージ装置10は、マルチノードとして、第1のノード100と第2のノード100aを備え、各ノード100、100aが、スイッチ340を中間にして相互に接続されている。
HIE302はスイッチ340と第1のノード100の制御ボード170とを接続するチャネルモジュールであって、一端が制御ボード170のMP(マイクロプロセッサ)176に接続し、他端がスイッチ340に接続している。そして、HIE302には、DMA(Direct Memory Access)コントローラとしてのMFDMA312が実装されている。スイッチ340は、バス間の接続を行うネットワークデバイスであり、例えば、ファイバチャネル(Fibre Channel)、イーサネット(登録商標)、LAN(Local Area Network)などの通信ネットワークのデバイスで構成される。
第1のノード100は、制御ボード170と、制御ボード170とホストコンピュータとの間の通信を制御するCHB(チャネルアダプタ)110、120、130、140と、記憶デバイス180,182との間の通信を制御するDKB(ディスクアダプタ)150、160とを備えている。
CHB110は、ホストコンピュータからのHPFに基づくコマンドを処理するインターフェースコントローラとして、ASIC112を備えている。CHB130、140は、ホストコンピュータからFICONに基づくコマンドを処理するインターフェースコントローラとして、それぞれ、ASIC132、142を備えている。CHB120は、ホストコンピュータからのzHLに基づくコマンドを処理するインターフェースコントローラとして、FPGA122を備えている。FICONの物理層はファイバチャネルであり、一方で、zHLの物理層はInfinibandであるため、HPFも含めて、夫々のインターフェース用プロトコルに対するチャネルアダプタ/チャネルボードは別々に存在する。
zHLとは、メインフレームとストレージ装置とを光ファイバで高速接続するインターフェースであり、このインターフェースによって、データアクセスのパフォーマンスが向上し、アプリケーションの応答速度を既存のFICON,HPFといったインターフェースと比べて飛躍的に高速化することが可能になる。zHLは、物理層にInfinibandのインターフェースを利用し、プロトコルはPCIeを利用している。zHLは、MailboxやStatus領域をクレジットとして管理し、Mem WRで転送する。データI/Oについて、ReadはMem WR,WriteはMem Readで夫々転送される。
zHLで要求されるレスポンス性能の目標値は20μsとされ、FICON、HPFと比較すると15から1/3にまで短縮することが期待されるため、ストレージ装置は予め、リード要求の対象となる可能性があるデータをメモリにCKD形式でキャッシュしておく。そこで、ストレージ装置は、zHL以外のコマンドによるリード要求によってリードアクセスをした記録領域近傍の領域のデータを補助記憶装置(ストレージ)からリードして、予めキャッシュメモリ、あるいは、バッファメモリ等の一時記憶メモリにキャッシュする。CHB120がホストコンピュータからzHLに基づくリードコマンドを受領すると、CHBのコントローラ122が、キャッシュされたデータをホストコンピュータに転送することによって、DMAコントローラの起動を回避して、ストレージ装置からホストコンピュータに対するレスポンス性能を改善している。
発明者は、zHLに基づくリードコマンドに対する応答性能の改善を目指す中で、データベースを意識し、ランダムアクセスにおいても、FICON等に基づくアクセス要求があったデータの記憶領域の近傍領域にその後のアクセスの需要があることに鑑み、当該近傍領域のデータを先読みし、当該先読みデータをzHLに基づくリードコマンドの受領前にメモリにキャッシュしておくことによって、zHLに基づくリードコマンドへの応答性を改善できることを見出した。
DKB150、160には、夫々補助記憶装置としての記憶デバイス180、182とデータの入出力を行う入出力インターフェース152、162である、SAS(Serial Attached SCSI)が実装されている。記憶デバイス180、182は、例えば、NVMe(Non-Volatile Memory express)、SSD(Solid State Drive)、そして、HDD(Hard Disk Drive)の一つ、又は、複数を備える。
制御ボード170は、DIMM(Dual Inline Memory Module)171とマイクロプロセッサ(MP)176とを備える。DIMM171は、一時記憶用メモリとして、ホストコンピュータとの間で転送されるデータがキャッシュされる領域(DXBF:転送バッファ)172と、記録デバイスとの間で転送されるデータがキャッシュされる領域(CM:キャシュメモリ)174とを備える。
MP176は、マイクロプログラムに従って第1のノード100全体を統括制御する制御部として機能し、ホストコンピュータから、リード要求又はライト要求(これらを纏めてI/O(Input/Output)要求と称することがある。)を受信した場合、I/O要求を、スイッチ340を介して、第2のノード100aのオーナMP176aに転送する処理を実行するか、或いは、記憶デバイス180、182に対してデータの入出力処理を実行する。
第2のノード100aは、第1のノード100と同様に構成されている。第2のノード100aの複数の構成要素に対して、第1のノード100と同じ構成要素には、同じ数字を付してその説明を省略する。但し、第2のノード100aの構成要素には、数字の後に“a”を付して、第1のノード100の構成要素と区別することとする。
第2のノード100aのMP176aは、第1のノード100のCHBを介して、接続する所定のホストコンピュータについて、当該ホストコンピュータからのデータI/O要求に対する処理権限を有しているため、MP176aをMP(オーナ)として図示している。これと区別するために、第1のノード100のMP176をMP(IO受領)として図示している。
ホストコンピュータは、zHL、又は、その他のインターフェース(例えば、FICON)を介してストレージ装置と通信する。ホストコンピュータがFICONを介して、第1のノード100にリード要求を送信する際の動作を説明する。CHB130(又は、CHB140)がメインフレームからリードコマンドを受領すると、ASIC132(又は、ASIC142)は、オーナMPを判別してオーナMPであるMP176aにリードコマンドを通知する。
オーナMP176aはこの通知を受けるとMFDMA312aを起動する。MFDMA312aは、キャッシュメモリ174aのFBA形式固定長からなるリードデータをCKD(可変長)に変換する機能も有しており、変換後データをDMMA171のDXBF172に転送する。MP176aは、この転送を、リードコマンドを受領したCHB130に通知する。CHB130のASIC132は、この通知を受けると、リードデータをホストコンピュータに転送し、次いで、リードデータの転送完了をオーナMP176aに通知することによって、オーナMP176aはリード要求の処理の終了を判定する。
ホストコンピュータがzHLに基づいて、第1のノード100にリード要求を送信する場合には、リードコマンドを受けた、CHB120のFPGA122は、DXBF172にリード対象データが存在すると、これをホストコンピュータに転送し、リード対象データが存在しないと、ヒットミス通知をホストコンピュータに送信する。ホストコンピュータは、ヒットミス通知を受領すると、FICONに基づいて再度リードコマンドを発行する。
図2は、MFDMA312aの機能ブロック図を示す。MFDMA312aは、MP176aの指令に基づいて、リードコマンドに対するデータを転送するDMAモジュールと、記憶デバイスからリードされたFBA形式のデータをメインフレームのためのCKD形式のデータに変換するモジュールと、データの転送単位毎に保証コードを計算するモジュールとを備える。モジュールとは、プログラム、及び/又は、ハードウェアによって達成される機能であって、手段、回路、機能、ユニット、又は、パート等他の用語によって言い換えられてもよい。
zHL以外のFICON、HPF等に基づくリードコマンドは、DXBF172にリード対象データが存在しない場合、MP176aに記憶デバイス180a、182aにアクセスすることを実行させる。このようなコマンドでは、DMAコントローラ(MFDMA312a)は、主として、トラック単位でデータを転送する。一方、zHLは、データベースに着目して、ストレージ装置の応答性を向上させるものであるから、主として、レコード単位でデータの転送を実行させる。
図3A、図3Bは、DMAコントローラ(MFDMA:312a)によって実行される、FBAデータ/CKDデータの変換を説明するブロック図である。リードコマンドによって、記憶デバイスからのデータのリードが複数のレコードからなるトラック単位で実行されている(図3A)。MFDMAはデータ転送の際、転送単位毎、即ち、トラック単位毎で、FBAデータをCKDデータに変換すると共に、保証コード(CRC)を計算して、データの転送単位毎に保証コードを付加する。図3Aはトラック単位のデータの最後に保証コード508が付加されていること示している。
図3Aにおいて、固定長(FBA)伝送フォーマット400は、複数のレコードデータの集合となるトラックで構成され、例えば、複数のレコード401、402、403から構成される。各レコード401~403は、複数のデータブロック405の集合から構成されている。
可変長(CKD)伝送フォーマット500は、複数のレコードデータの集合となるトラックで構成され、複数のレコード501、502、503から構成される。各レコード501~503は、カウントエリア505と、キーエリア506と、データエリア507とから構成される。カウントエリア505には、レコード番号、データの長さ、キーの長さなどの情報が格納される。キーエリア506には、データの標識(キーワード)などの情報が格納される。データエリア507には、リードデータが格納される。
図3Bは、リードコマンドによって、データ転送がレコード単位で実行され、固定長(FBA)のリードデータを可変長(CKD)のデータに変換することを示している。MFDMAは、CRC508をレコードデータに基づいて生成し、レコードの最後に付加する。
図4は、DXBF172の機能ブロック図である。DXBF172は、記憶デバイスからリードされたデータ(リードコマンドに基づくデータ、及び、先読みデータ)を格納する格納領域1721と、これらデータに対する保証コードを格納する領域1722と、保証コードを管理するための管理テーブル(管理情報)の格納領域1723と、を有する。保証コード管理テーブル1723には、トラック単位の保証コードの管理テーブルと、レコード単位の保証コードの管理テーブルとが格納されている。
ホストコンピュータとストレージ装置との間のインターフェースは、既述のとおり、複数のプロトコルを扱うため、リードデータの転送単位が複数のプロトコル間で異なることがあり、その結果、転送単位のデータから生成される保証コードの範囲が異なることがある。例えば、FICONのリードコマンドに基づくデータのリード及びデータの転送はトラック単位であり、zHLに基づくそれはレコード単位である場合である。
この場合、ホストコンピュータからのzHLに基づくリードコマンドを受けたCHB120は、ストレージコントローラ170のDXBF172にキャッシュされているデータをホストコンピュータにそのまま転送することはできない。なぜなら、当該データの保証コードはトラック単位のデータに基づいて作成されて、zHLが要求するレコード単位で保証コードが作成されていないからである。一方、zHLに基づくリード要求がストレージ装置に適用された際に、MP176aがMFDMA312aを起動してトラック単位の保証コードをレコード単位に計算し直すと、CHB120はzHLに対して規定されているレスポンス値の範囲内でリードデータをホストコンピュータに応答できない。
そこで、ストレージ装置は、第1のプロトコルに基づくリードコマンドに関連して先読みされたデータの保証コードを、第2のプロトコルに基づくリードコマンドを受領する前に、計算し直してこれを保存し、第2のプロトコルに基づくリードコマンドを受領した際計算し直した保証コードと共に先読みしたデータをホストコンピュータに転送する。第1のプロトコルは、トラックをリード単位とするFICONでよく、第2のプロトコルは、レコードをリード単位とするzHLでよい。
図5は、トラックデータ用保証コード管理テーブル600(図1:1723)の一例である。トラックデータ用保証コード管理テーブル600は、リード要求の対象となったトラック単位のデータと、リード要求の対象トラック近傍の別のトラックに記憶され、先読みの対象となるトラック単位データとを、夫々の保証コードに関連付けて管理するためのテーブルであり、トラックデータのDXBFに於けるアドレス602と、トラックデータ長604と、保証コードアドレス(DXBF)606とを有する。
トラックアドレス602は、トラックに属するデータの格納先(DXBFアドレス)を一意に識別する識別番号である。トラックデータ長604は、トラックに属するデータの長さを示す情報である。トラックデータ長604には、例えば、「0x4000」の情報が格納される。保証コードアドレス606は、トラックに属するデータから算出された、トラック単位の保証コードの格納先(DXBFアドレス)を一意に識別する識別番号である。保証コードアドレス606には、例えば、「0x73628391」の情報が格納される。
図6は、レコードデータ用保証コード管理テーブル700(図1:1723)の一例である。管理テーブル700は、レコードデータと保証コードとを関連づけて管理するためのテーブルであり、レコードデータのアドレス(DXBF)702と、レコードデータ長704と、レコードのデータに基づいて計算された保証コードが格納されているDXBFアドレス706とを備える。
レコードデータアドレス702は、レコードに属するデータの格納先(アドレス)を一意に識別する識別番号である。レコードアドレス702には、例えば、「0x12345678」の情報が格納される。レコードデータ長704は、レコードに属するデータの長さを示す情報である。レコードデータ長704には、例えば、「0x80」の情報が格納される。保証コードアドレス706は、レコード単位の保証コードの格納先を一位意に識別する識別番号である。保証コードアドレス706には、例えば、「0x25482345」の情報が格納される。
次に、ホストコンピュータからリード要求が送信された場合のストレージ装置の動作を図7に示すフローチャートに基づいて説明する。ホストコンピュータは、リード要求をストレージ装置に転送する際zHLに基づくコマンドを他のインターフェースプロトコルに基づくコマンドより優先させて出力する。ストレージコントローラのCHB120のFPGA122がホストコンピュータからzHLに基づくリード要求(既述の第2のリードコマンド)を受領すると(S1)、FPGA122は、MP176aに受領を通知する(S2)。
次いで、FPGA122は、例えば、図5,6の管理テーブルを参照して、リード要求に係るデータがDXBF172の記憶領域1721に存在しているか否かを判定する(S3)。FPGA122は、これを否定すると、キャッシュヒットミスをホストコンピュータに通知する(S4)。ホストコンピュータは、この通知を受けると、FICONに基づくリード要求を発行する。
CHB130(又は、CHB140)のASIC132(又は、ASIC142)がFICONに基くリードコマンドを受領すると(S5)、受領をMP176aに通知する。MP176aは、この受領通知を受けて、MFDMA312aを起動する(S6)。MFDMA312aは、MP176aによって、キャシュメモリ(CM174a)にステージングされた、リード要求に対するリードデータとMP176aの先読み機能によって、既述のとおり、先読みされたデータ(共に、FBA形式のデータ)をCKD形式のデータに変換する(S7)。MFDMA312aは、さらに、データのリード単位、即ち、データの転送単位毎に保証コードを計算する(S8)。
次いで、MFDMA312aは、リードデータと先読みされたデータとをDXBF172のデータ格納領域1721に格納する(S9)。さらに、MFDMA312aは保証コードを計算し、これをDXBF172の保証コード格納領域1722に格納する(S10)。さらにまた、MFDMA312aは、計算された保証コードに基づいて、保証コード管理テーブル600、又は、700を更新する(S11)。
ホストコンピュータからFICONに基くリードコマンドを受領した、CHB130(又は、CHB140)のASIC132(又は、ASIC142)は、MP176aから転送通知、即ち、MFDMA312aによるDXBF172へのデータ・保証コードの転送の通知、を受けて、DXBF172のデータ格納領域1721からリードデータを取得し、さらに、保証コード管理テーブル600、又は、700を参照して保証コード格納領域1722から、リードデータに対する保証コードを取得して、リードデータと保証コードとをホストコンピュータに転送する(S12)。次いで、CHB130(又は、CHB140)のASIC132(又は、ASIC142)は、ホストコンピュータへの当該転送の完了をオーナMP176aに通知して(S13)、フローチャートを終了する。
ホストコンピュータからzHLに基づくリードコマンドを受領した、CHB120のFPGA122は、ステップS3を肯定すると、リード要求がレコード単位であるか否かを判定する(S14)。FPGA122はこの判定を肯定すると、先読みされたデータを、DXBF172のデータ格納領域1721から取得して、さらに、レコードデータ保証コード管理テーブル700を参照して、当該データに対する保証コードの格納先アドレスを参照し、当該保証コードを保証コード格納領域1722から読み出して先読みデータに付加し(S15)、ホストコンピュータに転送する(S15)。
FPGA122がS14の判定を否定すると、先読みされたデータを、DXBF172のデータ格納領域1721から取得し、さらに、トラックデータ保証コード管理テーブル600を参照して、当該データに対する保証コードの格納先アドレスに基づいて当該保証コードを保証コード格納領域1722から読み出し、先読みデータに付与し(S16)、これらをホストコンピュータに転送する(S12)。
zHLに基づくリード要求をホストコンピュータから受けるCHB120のコントローラ(FPGA122)は、保証コードの調整手段を実現する。これを図8のフローチャートに基づいて説明する。図8は、トラックデータからレコードデータ用の保証コードを生成するためのフローチャートである。FPGA122は、所定時間毎にこのフローチャートを繰り返し実行する。
FPGA122は、トラックデータ保証コード管理テーブル600の更新をチェックし、更新されたトラックフォーマットのトラックアドレスとトラック長とに基づいて、更新されたトラックに含まれる複数のレコードの夫々に基づいてレコードの位置を割り出す(S80)。
FPGA122はレコードの位置に基づいてデータ格納領域1721を参照してレコードデータを読み出し、レコード単位の保証コードを計算する(S82)。FPGA122は計算した保証コードを保証コード格納エリア1722に格納する(S84)。次いで、FPGA122は、レコードデータのDXBFアドレスと保証コードのDXBFアドレスとレコードデータ保証コード管理テーブル700に登録して(S86)、リターンする。なお、図8のフローチャートは、MP176aによって実行されてもよい。
zHLに基づくリード要求の対象レコードがDXBF172のデータ格納領域1721にトラックの一部として、既述の先読みの結果存在していても、対象レコードに対応する保証コードがDXBF172の保証コード格納領域1722に存在していないと、対象レコードのデータをホストコンピュータに応答することができない。この場合、FPGA122はキャッシュヒットミス(図7:S3、NO)をホストコンピュータに応答することになる。
一方、FPGA122が、キャッシュヒットミスをMP176aに通知し、MFDMA312aを起動させて、トラック中のレコードデータの保証コードを計算させようとすると、zHLに対して規定されているレスポンス値(応答制限時間)を順守できずタイムアウトになる。そこで、FPGA122は、先読みデータに対する、zHLに基づくリード要求がホストコンピュータから来る前に、図8のフローチャートを実行することによって、トラック中のレコードに対する保証コードを計算しておく。そのため、次回のリード要求では、MFDMA312aを起動する必要がなく、zHLに対して規定されているレスポンス値を順守することができる。
本発明は前述した実施の形態に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。前述した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。例えば、図1はマルチノードのストレージ装置について説明したが、これに限らず、シングルルノードのストレージ装置に本発明を適用することもできる。
また、前述した各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
10:ストレージ装置
176a:MP(マイクロプロセッサ)
312 DMA(Direct Memory Access):コントローラとしてのMFDMA2
CHA130、140、ASIC132、142:第1のインターフェースプロトコル(FICON)に基づくリード要求に処理するインタ-フェースコントローラ
CHB120、FPGA122:第2のインターフェースプロトコル(zHL)に基づくリード要求に処理するインターフェースコントローラ
180、182:記憶デバイス180、182
DIMM(Dual Inline Memory Module)171、DXBF172:一時記録用メモリ
176a:MP(マイクロプロセッサ)
312 DMA(Direct Memory Access):コントローラとしてのMFDMA2
CHA130、140、ASIC132、142:第1のインターフェースプロトコル(FICON)に基づくリード要求に処理するインタ-フェースコントローラ
CHB120、FPGA122:第2のインターフェースプロトコル(zHL)に基づくリード要求に処理するインターフェースコントローラ
180、182:記憶デバイス180、182
DIMM(Dual Inline Memory Module)171、DXBF172:一時記録用メモリ
Claims (8)
- ホストコンピュータからストレージ装置へのリード要求を処理する前記ストレージ装置であって、
前記ホストコンピュータと前記ストレージ装置との間のデータ転送を制御するインターフェースコントローラと、
前記リード要求対象のデータのリードと、リードされたデータの転送を制御するデータ処理コントローラと、
前記リードされたデータの一時記憶用のメモリと、
を備え、
前記ホストコンピュータは、少なくとも2種類のインターフェースプロトコルを前記リード要求のために実行し、
前記データ処理コントローラは、第1のインターフェースプロトコルのリード要求にしたがってリードされたデータを前記メモリに格納し、
前記インターフェースコントローラ、及び/又は、前記データ処理コントローラは、前記第1のインターフェースプロトコルのリード要求に基づくデータの第1の転送単位から、前記第2のプロトコルのリード要求に基づくデータの第2の転送単位を構成し、当該第2の転送単位のデータの保証コードを計算し、当該第2の転送単位のデータと当該保証コードとを前記メモリに格納し、
前記インターフェースコントローラは、
前記第2のインターフェースプロトコルに基づくリード要求を受領すると、当該リード要求の対象となった前記第2の転送単位のデータが前記メモリに存在することを判定する場合、当該データを前記保証コードとともに前記ホストコンピュータに転送し、
前記第2のインターフェースプロトコルに基づくリード要求の対象となった前記第2の転送単位のデータが前記メモリに存在しないことを判定する場合、当該リード要求のミスを前記ホストコンピュータに通知し、当該通知を受けたホストコンピュータは、前記第1のインターフェースプロトコルに基づくリード要求を前記インターフェースコントローラに出力する、
ストレージ装置。 - 前記第1のインターフェースプロトコルのリード要求に基づくデータの第1の転送単位は複数のレコードを有するトラックであり、
前記第2のプロトコルのリード要求に基づくデータの第2の転送単位はレコードである、
請求項1記載のストレージ装置。 - 前記データ処理コントローラは、MPとDMAコントローラとを備え、
前記DMAコントローラは、
前記MPによって起動され、
前記第1のインターフェースプロトコルのリード要求にしたがってリードされたデータをFBA形式からCKD形式に変更するとともに、前記第1の転送単位のデータ毎に保証コードを計算し、
当該CKD形式に変更されたデータと、当該保証コードと、を前記メモリに格納し、
前記インターフェースコントローラは、前記MPからの通知に基づいて、当該メモリに格納された、前記CKD形式に変更されたデータと前記第1の転送単位のデータ毎の保証コードとを、前記第1のインターフェースプロトコルに基づくリード要求に対する応答として、前記ホストコンピュータに転送する、
請求項1記載のストレージ装置。 - 前記メモリは、
記録デバイスからリードされたデータを格納する領域と、
当該データに対して計算された保証コードを格納する領域と、
当該保証コードを前記第1の転送単位と前記第2の転送単位とを区別して管理する管理情報の格納領域と、
を有する、
請求項1記載のストレージ装置。 - 前記第2のインターフェースプロトコルに基づくリード要求には、応答制限時間が設定されている、
請求項1記載のストレージ装置。 - 前記データ処理コントローラは、前記第1のインターフェースプロトコルに基づくリード要求対象記憶領域近傍の領域のデータを前記記憶デバイスから先読みし、当該先読みされたデータを前記メモリに格納し、
前記インターフェースコントローラは、前記第2のインターフェースプロトコルに基づくリード要求に対して、前記先読みされたデータのうち当該リード要求の対象となったデータを前記メモリから前記ホストコンピュータに出力する、
請求項1記載のストレージ装置。 - 前記第1の転送単位は複数のレコードを含むトラック、又は、レコードであり、
前記データ処理コントローラはDMAコントローラを有し、
当該DMAコントローラは、
前記第1の転送単位が前記トラックの場合、当該トラックに含まれるデータに基づいて前記保証コードを生成し、
前記第1の転送単位が前記レコードの場合、当該レコードに含まれるデータに基づいて前記保証コードを生成する、
請求項1記載のストレージ装置。 - ストレージ装置がホストコンピュータからの少なくとも2種類のインターフェースプロトコルに基づくリード要求を処理するデータ処理方法であって、
前記ストレージ装置は、
第1のインターフェースプロトコルのリード要求にしたがってリードされたデータを格納し、
前記第1のインターフェースプロトコルのリード要求に基づくデータの第1の転送単位から、前記第2のプロトコルのリード要求に基づくデータの第2の転送単位を構成し、当該第2の転送単位のデータの保証コードを計算し、当該第2の転送単位のデータと当該保証コードとを格納し、
前記第2のインターフェースプロトコルに基づくリード要求を受領すると、当該リード要求の対象となった前記第2の転送単位のデータが格納されているのを判定する場合、当該データを前記保証コードとともに前記ホストコンピュータに転送し、
前記第2のインターフェースプロトコルに基づくリード要求の対象となった前記第2の転送単位のデータが格納されていないことを判定する場合、当該リード要求のミスを前記ホストコンピュータに通知し、
当該通知を受けたホストコンピュータは、前記第1のインターフェースプロトコルに基づくリード要求を出力する、
データ処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021028589A JP2022129774A (ja) | 2021-02-25 | 2021-02-25 | ストレージ装置、及び、そのデータ処理方法 |
US17/471,953 US11474751B2 (en) | 2021-02-25 | 2021-09-10 | Storage apparatus and data processing method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021028589A JP2022129774A (ja) | 2021-02-25 | 2021-02-25 | ストレージ装置、及び、そのデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022129774A true JP2022129774A (ja) | 2022-09-06 |
Family
ID=82899608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021028589A Pending JP2022129774A (ja) | 2021-02-25 | 2021-02-25 | ストレージ装置、及び、そのデータ処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11474751B2 (ja) |
JP (1) | JP2022129774A (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3404289B2 (ja) * | 1998-05-22 | 2003-05-06 | 富士通株式会社 | ディスク制御装置及びその制御方法 |
US9720767B2 (en) | 2013-01-24 | 2017-08-01 | Hitachi, Ltd. | Storage apparatus and storage apparatus control method |
-
2021
- 2021-02-25 JP JP2021028589A patent/JP2022129774A/ja active Pending
- 2021-09-10 US US17/471,953 patent/US11474751B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11474751B2 (en) | 2022-10-18 |
US20220269415A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891054B2 (en) | Primary data storage system with quality of service | |
US10853274B2 (en) | Primary data storage system with data tiering | |
US10275351B2 (en) | Journal management | |
US20200019516A1 (en) | Primary Data Storage System with Staged Deduplication | |
KR102403489B1 (ko) | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 | |
JP2006195851A (ja) | ストレージシステム | |
JP7135162B2 (ja) | 情報処理システム、ストレージシステム及びデータ転送方法 | |
US9003119B2 (en) | Control apparatus and method, and storage apparatus | |
US20120221809A1 (en) | Storage apparatus and data processing method of the same | |
US20110282963A1 (en) | Storage device and method of controlling storage device | |
JP6426838B2 (ja) | ストレージシステム、及び、記憶制御方法 | |
JP2009175824A (ja) | メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 | |
JP2017049806A (ja) | ストレージ制御装置およびストレージ制御プログラム | |
US20120260043A1 (en) | Fabricating key fields | |
US8296478B2 (en) | Data transfer system and data transfer method | |
JP6649989B2 (ja) | ストレージシステム及びその制御方法 | |
JP2022129774A (ja) | ストレージ装置、及び、そのデータ処理方法 | |
JP2009294699A (ja) | ストレージ装置 | |
US9639417B2 (en) | Storage control apparatus and control method | |
JP2005346426A (ja) | データ共有ディスク装置 |