JP2021026541A - ドライブボックス、ストレージシステム及びデータ転送方法 - Google Patents

ドライブボックス、ストレージシステム及びデータ転送方法 Download PDF

Info

Publication number
JP2021026541A
JP2021026541A JP2019144573A JP2019144573A JP2021026541A JP 2021026541 A JP2021026541 A JP 2021026541A JP 2019144573 A JP2019144573 A JP 2019144573A JP 2019144573 A JP2019144573 A JP 2019144573A JP 2021026541 A JP2021026541 A JP 2021026541A
Authority
JP
Japan
Prior art keywords
drive box
drive
data
storage
command
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
JP2019144573A
Other languages
English (en)
Other versions
JP6942163B2 (ja
Inventor
伸浩 横井
Nobuhiro Yokoi
伸浩 横井
洋俊 赤池
Hirotoshi Akaike
洋俊 赤池
良介 達見
Ryosuke Tatsumi
良介 達見
細木 浩二
Koji Hosoki
浩二 細木
山本 彰
Akira Yamamoto
山本  彰
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
Priority to JP2019144573A priority Critical patent/JP6942163B2/ja
Priority to CN202010081473.4A priority patent/CN112346653B/zh
Priority to US16/810,575 priority patent/US11327653B2/en
Publication of JP2021026541A publication Critical patent/JP2021026541A/ja
Application granted granted Critical
Publication of JP6942163B2 publication Critical patent/JP6942163B2/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/0614Improving the reliability of storage systems
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/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/0658Controller construction arrangements
    • 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/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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B33/00Constructional parts, details or accessories not provided for in the other groups of this subclass
    • G11B33/02Cabinets; Cases; Stands; Disposition of apparatus therein or thereon
    • G11B33/04Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers
    • G11B33/0405Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers for storing discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ホストコンピュータへドライブボックス追加の影響を与えずにI/O継続する。【解決手段】情報システムにおいて、記憶装置であるドライブをそれぞれ搭載する複数のドライブボックスと、複数のドライブボックスに接続されるストレージコントローラとを有する。第1のドライブボックスは、ホストコンピュータに、第1の記憶領域を提供し、コンピュータ装置から第1の記憶領域に対するコマンドを受領すると、コマンドをストレージコントローラに転送する。コマンドを受領したストレージコントローラは、アドレス管理テーブルに基づいて、データ格納先の情報を含むデータ転送コマンドを生成し、第1のドライブボックスに転送する。データ転送コマンドを受領した第1のドライブボックスは、コマンドに含まれるデータ格納先が、複数のドライブボックスの第2のドライブボックスである場合には、第2のドライブボックスにデータ転送コマンドを転送する。【選択図】図1

Description

本発明は概して、ドライブボックス、ストレージシステム及びストレージシステムのデータ転送方法に関し、例えば、フラッシュドライブを搭載したシステムに適用して好適なものである。
ストレージシステムでは、ストレージのフロントエンドネットワークにホストコンピュータを接続し、フロントエンドネットワークとは互いに独立したバックエンドネットワークに、ドライブボックスを接続している。
ホストコンピュータからのコマンドをストレージコントローラが受信すると、例えばリードコマンドの場合、ストレージコントローラがドライブボックス内のドライブからデータを読み出し、ホストコンピュータにデータ転送を行う。
従来、フロントエンドネットワークはFC(Fibre Channel)ネットワークやEtherネットワーク、バックエンドネットワークはSAS(Serial Attached SCSI)ネットワークが主流であり、ドライブボックスは、JBOD(Just a Bunch Of Disks)で、ドライブボックスのスロットに、データを格納するSAS/SATAドライブを複数搭載する。
近年、ストレージシステムの性能向上に向けて、高性能化を狙ったSSD(Solid State Drive)等のフラッシュドライブが登場し、フラッシュドライブに最適なNVMeプロトコルが規格化された。
また、ネットワーク接続によるドライブ接続の高拡張性に向けて、NVMeプロトコルをネットワーク上で用いることができるNVMe over Fabrics(NVMeoF)の規格が登場し、NVMe−oFに対応したドライブボックスであるFBOF(Fabric−attached Bunch of Flash)が登場した。
ところが、ホストコンピュータとストレージコントローラとドライブボックスのデータ転送の経路は、従来と同じであることから、ドライブボックスとして、FOBFを複数台設置しても、ストレージコントローラのデータ転送帯域がボトルネックとなり、FBOFの性能を引き出すことができないという問題が考えられる。
これに対し、フロントエンドネットワークとバックエンドネットワークを統合し、ホストコンピュータ、ストレージコントローラ、ドライブボックスを、共通のネットワークに直接接続して、データ転送することで、ストレージコントローラのデータ転送帯域のボトルネックを解消する事が特許文献1に示されている。
例えば、特許文献1によれば、ホストコンピュータで動作するエージェントソフトウエアが、ホストコンピュータのアクセス先データに対応するFBOF内のドライブとそのアドレスをストレージコントローラに問い合わせ、得られた情報を元に、直接FBOF内のドライブにアクセスすることが開示されている。
米国特許第9800661号明細書
特許文献1によれば、ホストコンピュータとFBOFが直接つながる構成のため、ホストコンピュータがFBOFのドライブに直接アクセスできる一方で、エージェントソフトウエアで、ストレージ機能のための制御や計算をしなくてはならず、ホストコンピュータ側に、高信頼な処理を行うための計算負荷がかかる。
例えば、ストレージコントローラで動作する、RAIDなどのデータ保護機能、スナップショットなどの、ストレージ装置の機能の動作と、エージェントソフトウエアの動作との同期が必要となり、ネットワークを介した制御が必要となり、性能を低下させることが考えられる。
また、シンプロビジョニングにより、FBOFに搭載するドライブの合計容量より大きな仮想化ストレージ容量を定義した場合、ドライブの合計容量を超えた分の容量を使うときは、新たなFBOFの追加が必要になる。
従来は、ホストコンピュータとFBOFの間のストレージコントローラがFBOFの物理的な変更をホストコンピュータに隠蔽していたため、新たなFBOFを追加したときも、ホストコンピュータへの変更が必要なかったが、特許文献1の構成ではホストコンピュータとFBOFを直接つなげることになるため、ホストコンピュート側で物理的な構成変更への対応が必要となる。
そこで、本発明の目的は、ホストコンピュータとFBOFを直接接続する構成において、ドライブの追加等によって容量を増加させても、ホストコンピュータの設定を変更する必要がない、ドライブボックス、ストレージシステム及びデータ転送方法を提供することにある。
上記目的を達成するためのストレージシステムの実施形態の一つは、データのリード又は、及びライトのためのコマンドを送信するコンピュータ装置にネットワークを介して接続されるよう構成され、記憶装置であるドライブをそれぞれ搭載する複数のドライブボックスと、複数のドライブボックスに接続されるストレージコントローラとを有するストレージシステムであって、複数のドライブボックスの第1のドライブボックスは、コンピュータ装置に、第1の記憶領域を提供し、ストレージコントローラは、第1の記憶領域と、第1の記憶領域を構成するドライブの物理的記憶領域との対応を管理するアドレス管理テーブルを格納し、第1のドライブボックスは、コンピュータ装置から第1の記憶領域に対するコマンドを受領すると、コマンドをストレージコントローラに転送し、コマンドを受領したストレージコントローラは、アドレス管理テーブルに基づいて、データ格納先の情報を含むデータ転送コマンドを生成し、第1のドライブボックスに転送し、データ転送コマンドを受領した第1のドライブボックスは、データ転送コマンドに含まれるデータ格納先が、複数のドライブボックスの第2のドライブボックスである場合には、第2のドライブボックスにデータ転送コマンドを転送する。
本発明の代表的な実施例によれば、ホストコンピュータとドライブボックス間で直接データ転送する構成において、ドライブ、ドライブボックス等の追加による容量の拡張を、ホストコンピュータの設定を変更することなく実現することができる。
前記した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
実施例1における情報システムの構成例を示すブロック図。 実施例1におけるドライブボックスの構成例を示すブロック図。 実施例1におけるホストコンピュータ、ストレージコントローラ、ドライブボックスのプラグラム構成例を示すブロック図。 実施例1における情報システムの論理的構造、データ構造例を示すブロック図。 実施例1におけるアドレス管理テーブルの例を示す図。 実施例1におけるドライブボックス追加フローチャートを示す図。 実施例1による、ホストコマンドを実行する方法の概略を示す図。 実施例1におけるデータ配置判定方法によるドライブボックス選択フローチャートを示す図。 実施例1におけるホストコマンドを実行する方法の概略を示す図。 実施例1によるデータ移動処理フローチャートを示す図。 実施例1におけるデータ配置判定テーブルを示す図。 実施例2におけるホストコマンドを実行する方法のホストへのパス追加の概略を示す図。 実施例2における情報システムのネットワーク共通化の構成例を示すブロック図。
以下、図面に基づいて、本発明の実施の形態を説明する。
なお、以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされており、本発明は、他の種々の形態でも実施する事が可能であり、特に限定しない限り、各構成要素は単数でも複数でも構わない。
また、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、実施例の中で説明されている要素の組み合わせの全てが、発明の解決手段に必須であるとは限らない。
以下の説明では、「テーブル」、「リスト」、「キュー」、「DB」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよく、データ構造に依存しないことを示すため、「xxxのテーブル」、「xxxのリスト」、「xxxのキュー」、「xxxのDB」等を「xxx情報」等と称することがある。
以下の説明では、識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
以下の説明では、同一あるいは同様な機能を有する構成要素が複数ある場合には、基本的に同一の符号を付して説明するが、機能が同じであっても機能を実現するための手段が異なる場合がある。
さらに、後述する本発明の実施例は、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし、専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装してもよい。
また、以下の説明では「プログラム」を主語として処理を説明することがあるが、プログラムはプロセッサ(例えば、CPU:Central Processing Unit)によって実行されることによって、定められた処理に対して、適宜に記憶資源(例えば、メモリ)、および/または、インタフェースデバイス(通信ポート)等を用いて行うため、処理の主体がプロセッサとして説明してもよい。
プログラムを主語として説明された処理は、プロセッサを有する計算機(例えば、計算ホスト、ストレージ装置)が行う処理としてもよい。
また、以下の説明では、「コントローラ」の表現で、プロセッサ又はプロセッサが行う処理の一部又は全部を行うハードウェア回路を指してもよい。
プログラムは、プログラムソース(例えば、プログラム配布サーバや、計算機が読み取り可能な記憶メディア)から、各計算機にインストールされてもよく、この場合、プログラム配布サーバはCPUと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶し、配布プログラムをCPUが実行することで、プログラム配布サーバのCPUは配布対象のプログラムを他の計算機に配布してもよい。
また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明において、「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。ストレージシステムに異なる種類のPDEVが混在していてもよい。
また、以下の説明において、「RAID」は、Redundant Array of Inexpensive Disksの略である。RAIDグループは、複数のPDEV(典型的には同種のPDEV)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
また、以下の説明において、「VOL」はボリュームの略であり、物理的な記憶デバイスまたは、論理的な記憶デバイスでもよい。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。「RVOL」は、そのRVOLを有するストレージシステムが有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」は、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOLとのうちのいずれでもよい。EVOLは、外部のストレージシステムの記憶空間(例えばVOL)に基づいており、ストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。
「プール(POOL)」は、論理的な記憶領域(例えば複数のプールVOLの集合)であり、用途ごとに用意されてよい。例えば、プールとして、TPプールであってよい。TPプールは、複数のページ(実体的な記憶領域)で構成された記憶領域でよい。ストレージコントローラが、ホストコンピュータ(以下、ホスト)から受信したライト要求が指定するアドレスが属する仮想領域(TPVOLの仮想領域)にページが割り当てられていない場合、その仮想領域(ライト先仮想領域)にTPプールからページを割り当てる(ライト先仮想領域にページが割り当て済であってもページが新たにライト先仮想領域に割り当てられてもよい)。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。
また、以下の説明では、ホストから認識されるVOL(ホストに提供されるVOL)を「LDEV」と言う。以下の説明では、LDEVは、TPVOL(又はRVOL)であり、プールは、TPプールである。しかし、本発明は、容量拡張技術(Thin Provisioning)が採用されていないストレージ装置にも適用できる。
また、以下の説明では、SCSIにおけるボリュームを「Logical Unit(以降、LU)」と言う。LUはLU Size Expansion(以降、LUSE)機能適用時は、LDEVと1:Nで対応する。
また、以下の説明では、NVMeにおけるボリュームを「Name Space(以降、NS)」と言う。NSはSCSIのLUと対応する。
実施例1は、ホストコンピュータ、ストレージコントローラ、ドライブボックスからなる情報システムにおいて、データ保存先を高信頼なストレージコントローラで管理しつつ、ホストコンピュータとドライブボックス間で直接データ転送する。ドライブボックスを追加する際には、元々接続していたドライブボックスを経由して、ホストコンピュータとデータを転送(2段転送という)を行う。また、データ配置の最適化により、2段転送のオーバヘッドを抑える。
図1は、実施例1に係る情報システムの構成例を示すブロック図を示す。
この第1の実施形態の情報処理システムは、1又は複数のホストコンピュータ100と、記憶装置である1又は複数のドライブ140を搭載した、1又は複数のドライブボックス110を備え、これらが、LAN(Local Area Network)又はインターネット等からなるネットワーク130を介して相互に接続される。ドライブボックス110と1又は複数の2重化構造を備えたストレージコントローラ120がLAN(Local Area Network)又はPCI Express等で接続される。
ストレージコントローラ120とドライブボックス110とでストレージシステムを構成しており、例えば、ドライブボックス110はFBOFを使用しても良い。
ネットワーク130は、例えば、Ethernet(登録商標)、Infiniband(登録商標)等の高性能なネットワークで、NVMe over Fabrics(NVMe−oF)に対応している。
ホストコンピュータ100は、CPU(Central Processing Unit)及びメモリ等の記憶装置を備えたコンピュータ装置であり、ユーザ操作や、実装されたプログラムからの要求に応じてネットワーク130を介して、ドライブボックス110とストレージコントローラ120から構成される、ストレージシステムに、ライトコマンドやリードコマンド(IOコマンド)を送信する。
ホストコンピュータ100は、ネットワーク130を介し、ストレージコントローラ120との通信時におけるプロトコル制御を行い、ドライブボックス110とデータのやり取りを行う。
ストレージシステムは、ホストコンピュータ100にストレージとしての機能を提供するため、冗長化されたストレージコントローラ120Aとストレージコントローラ120Bから構成される。ストレージコントローラ120は、CPUと、メモリ等の記憶装置とを備える。ストレージコントローラ120Aとストレージコントローラ120Bは同じ構成である。
ストレージコントローラ120は、1又は複数のCPUコアを有し、各CPUコアは、ホストコンピュータ100からのリードコマンドやライトコマンドに応じて、対応するドライブボックス110に格納されたデータを転送指示する。
ストレージコントローラ120のメモリは、例えば、SDRAM(Synchronous Dynamic Random Access Memory)等の半導体メモリで構成され、SCM(Storage Class Memory)などの不揮発メモリと組み合わせて構成してもよく、CPUの主記憶として、実行プログラム(ストレージ制御プログラム等)や、CPUが参照する管理テーブル等が格納される。また、メモリは、ストレージコントローラ120のディスクキャッシュ(キャッシュメモリ)としても使用される。
ストレージコントローラ120は、例えば、ドライブボックス110とインタフェースを持ち、ホストコンピュータ100から指示されたデータ転送や、データコピー等のストレージ処理にかかる処理に関する情報をドライブボックス110に通信する。
ドライブボックス110は、1又は複数のドライブ140を搭載し、ホストコンピュータ100とネットワーク130を介して接続されており、ホストコンピュータ100のデータを格納する。また、ストレージコントローラ120からの指示により、ホストコンピュータ100とデータ転送を実施する。
ドライブボックス110は、例えば、冗長パスを持ち、片方のパスの接続が切れた場合でも、ホストコンピュータ100とデータ通信できる構成をとってもよい。また、ストレージコントローラ120とも冗長パスを持ち、同様に、片方のパスの接続が切れた場合でも、ストレージコントローラ120と通信できる構成をとってもよい。
ドライブボックス110には、OSやストレージ制御プログラム、管理テーブルのバックアップ等が格納される。ドライブボックス110に搭載されるドライブ140は、例えば、HDDやSSDである。
図2は、実施例1に係るドライブボックスの構成例を示す。
ドライブボックス110は、冗長化されたエンクロージャ200で構成され、1又は複数のドライブ140を搭載する。
エンクロージャ200は、インタフェース160、プロセッサ210、メモリ150、スイッチ250で構成され、ホストコンピュータ100からのコマンドを処理し、ドライブ140との間でデータの転送制御を行う制御部となる。
インタフェース160は、フロントポート180を持ち、フロントパス190を経由して、ホストコンピュータ100又は他のドライブボックスとつながるネットワーク130と接続される。また、インタフェース160は、プロセッサ210とつながり、ホストコンピュータ100又は他のドライブボックス110とのコマンドやデータ等を通信する。
プロセッサ210は、インタフェース160、メモリ150、スイッチ250と接続され、冗長化のため他のプロセッサ210とつながるエンクロージャパス170と接続される。プロセッサ210は、例えば、ホストコンピュータ100、他ドライブボックス、ストレージコントローラ120とのコマンドやデータの処理や、ドライブボックス110及びドライブ140の制御を行う。また、ストレージコントローラ120の機能の一部をオフロードして処理しても良い。
メモリ150は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)等の半導体メモリで構成され、SCM(Storage Class Memory)などの不揮発メモリと組み合わせて構成してもよく、プロセッサ210の主記憶として、実行プログラム(ドライブボックス110制御プログラム等)や、プロセッサが参照する管理テーブル等が格納される。また、メモリ150は、データ転送の際のバッファメモリやキャッシュメモリとしても使用される。
スイッチ250は、例えば、PCI Expressのスイッチで、プロセッサ210とつながり、スイッチポート220を介して、ドライブ140のドライブポート240とつながる。スイッチにより、1又は複数のドライブ140と接続する。なお、冗長化のため、ドライブ140は複数のエンクロージャ200のスイッチ250と接続しても良い。また、スイッチポート220を介して、バックエンドパス230経由で、ストレージコントローラ120と接続しても良い。このとき、冗長化のため、片方のスイッチ250から、複数のバックエンドパス230を介して、複数のストレージコントローラ120へ接続してもよい。
ドライブ140は、1又は複数台のドライブボックス110に搭載され、例えば、冗長化のために、複数ドライブポート240を持ち、複数エンクロージャ200内のスイッチ250と接続する。
図3は、実施例1に係る情報システムのホストコンピュータ、ストレージコントローラ、ドライブボックスのプログラム構成例を示すブロック図を示す。
プログラムは、例えばホストコンピュータ100やストレージコントローラ120では、メモリに格納されており、CPUのCPUコアが実行することにより、各種処理が実行される。また、ドライブボックス110では、メモリ150に格納されており、プロセッサ210が実行することにより、各種処理が実行される。なお、CPUやプロセッサ210ではなく、GPUやASICやFPGAのようなハードウェアを用いて、プログラムを実行しても良く、プログラムの処理が、専用ハードウェアとなっており、それが処理されても良い。以下においては、理解の容易化のため、かかるプログラムをCPUやプロセッサ210が実行するものとして説明を進める。
ホストコンピュータ100は、アプリケーション270とイニシエータドライバ280のプログラムを持つ。ここでは、例として、主要なものを上げており、例えばOS(Operation System)などの他のプログラムは省略する。
アプリケーション270は、例えば、数値計算プログラムや、データベース、Webサービス等のプログラムであり、勘定系のシステムや、分析系のシステム等、様々な用途を想定する。
イニシエータドライバ280Cは、ディスクなどの周辺装置として動作するターゲットドライバ290を認識し、リード、ライト等のコマンドのインタフェースをアプリケーション270に対して提供する。例えば、ホストコンピュータ100のイニシエータドライバ280Cは、ストレージコントローラ120のターゲットドライバ290Aやドライブボックス110のターゲットドライバ290Bが提供する記憶領域を認識する。もし、ホストコンピュータ100に対して、ストレージコントローラ120がNVMe−oFのイニシエータとして動作する形態の場合、イニシエータドライバ280は、NVMe−oF対応のドライバとしても良い。
ストレージコントローラ120は、ターゲットドライバ290A、イニシエータドライバ280A、ホストコマンド処理260、データ転送制御300A、キャッシュメモリ制御310、ストレージ機能処理380A、デステージ処理320、アドレス変換処理330、データ配置最適化処理400等のプログラムを有し、ホストコンピュータ100と同様に、および図示しないOSで構成される。
ストレージコントローラ120のターゲットドライバ290Aは、ドライブボックス110のイニシエータドライバ280B及びホストコンピュータ100のイニシエータドライバ280Cに対して、記憶領域を提供するとともに、コマンドの受信、コマンドの完了応答の送信を行う。例えば、図1の構成を採るときは、ホストコンピュータ100のイニシエータドライバ280Cからの要求に対して、ドライブボックス110のターゲットドライバ290Bがそれを受け、ドライブボックス110のホストコマンド転送処理340がコマンドを転送し、ドライブボックス110のイニシエータドライバ280B経由で、ストレージコントローラ120のターゲットドライバ290Aが受信する。
ストレージコントローラ120のイニシエータドライバ280Aは、ドライブボックス110のターゲットドライバ290Bに対して、コントローラコマンドの送信等を行う。なお、ストレージコントローラ120にドライブボックス110が記憶領域を提供しても良い。ここで、コントローラコマンドとは、ストレージコントローラ120から発行されるコマンドを示す。
ストレージコントローラ120のホストコマンド処理260は、ホストコンピュータ100が発行したコマンドを、ターゲットドライバ290Aを介して受信し、コマンドの解析、コマンドの処理(リードコマンド、ライトコマンド、管理コマンド)、コマンドの完了応答の作成、ターゲットドライバ290Aを介したコマンドの完了応答の送信等を行う。
ストレージコントローラ120のデータ転送制御300Aは、ホストコマンド処理260の指示に従い、例えば、ドライブボックス110にホストコンピュータ100とのデータ転送処理を指示する。また、複数のドライブボックス110間のデータ転送が必要な場合は、これも指示する。
ストレージコントローラ120のキャッシュメモリ制御310は、キャッシュデータの検索に基づくキャッシュヒット、ヒットミスの判定、ダーティデータ(物理ドライブへの書込み前の状態)と、クリーンデータ(物理ドライブへの書込み後の状態)の各状態間の遷移、キャッシュ領域のリザーブ及びリリース等の制御を行う。キャッシュヒット、ヒットミスの判定は、ホストコンピュータ100からのコマンドに応答するデータがストレージコントローラ120のメモリにあるか否かを判定する。例えば、ホストコンピュータ100からのコマンドがライトコマンドの場合、ライトコマンドに応答するデータがメモリ上にあるか否を判定する。なお、データは、ストレージコントローラ120のメモリを利用しても良いし、ドライブボックス110上のメモリ150を利用しても良い。これは、リードの時も同様とする。これらのキャッシュメモリ制御の各処理は広く知られた技術であり、ここでの詳細な説明を省略する。
ストレージコントローラ120のストレージ機能処理380Aは、ストレージの機能をドライブボックス110にオフロードするコマンド(オフロードコマンド)を作成し、ドライブボックス110に対して指示する。例えば、オフロードするストレージの機能は、圧縮、伸長、暗号、復号や、コピーやフォーマット、RAID計算、パリティ計算等、様々である。データ転送制御300Aに合わせて、ストレージ機能処理380Aの一部もしくは複数をドライブボックス110で実施する。
ストレージコントローラ120のデステージ処理320は、イニシエータドライバ280Aを介して、キャッシュ内のデータをドライブ140に書き込むデステージ処理320を行う。
ストレージコントローラ120のアドレス変換処理330は、ストレージコントローラ120の管理するNS(Name Space)のデータ範囲と、データの格納先であるドライブボックス110、ドライブ140のマッピングテーブルを持ち、データ範囲のアドレスを、対応するドライブボックス110、ドライブ140内の記憶領域のアドレスに変換する。
ストレージコントローラ120のデータ配置最適化処理400は、データ転送の要求が来ているデータが格納されているドライブボックス110が最適かを、ストレージコントローラ120が保持するメタ情報等から判断し、データ移動の必要性がある場合は、ドライブボックス110へデータ移動の指示を発行する。例えば、二段転送を実施する際に、データ配置最適化の判断要素として、アクセス頻度を判定し、アクセス頻度が高ければ、二段転送先元のドライブボックス110から、二段転送先のドライブボックス110へデータを移動するように指示する。ここで、二段転送とは、ホストコンピュータ100のコマンドを受領し、ストレージコントローラ120から指示を受けたドライブボックス110が他のドライブボックス110へコマンドを転送する動作をいう。コマンドがライトコマンドの場合にはライトデータを他のドライブボックスへ転送し、リードコマンドの場合には他のドライブボックスからデータを受信する。
また、ホストコンピュータ100のデータアクセス以外の契機で非同期にドライブボックス110上でデータの読み出しが行われるとき、例えば、容量のリバランスや、リクラメーション、ガベージコレクション、スナップショット等のバックアップ処理の時にも、データ配置最適化処理400を実施し、データを最適なドライブボックス110へ移動する。
ドライブボックス110は、ターゲットドライバ290B、イニシエータドライバ280B、ホストコマンド転送処理340、コマンド処理390、データ転送制御300B、二段転送処理350、ストレージ機能処理380B、ドライブ制御処理360、バッファ制御処理370、および図示しないOSから構成される。
ドライブボックス110のターゲットドライバ290Bは、ホストコンピュータ100のイニシエータドライバ280C及びストレージコントローラ120のイニシエータドライバ280Aに対して、記憶領域を提供するとともに、コマンドの受信、コマンドの完了応答の送信を行う。また、他のドライブボックスのイニシエータドライバに対しても、同様の機能を提供する。
例えば、図1の構成を採るときは、ホストコンピュータ100のイニシエータドライバ280Cからの要求に対して、ドライブボックス110のターゲットドライバ290Bが要求を受け、ドライブボックス110のホストコマンド転送処理340が転送する処理を実施し、ドライブボックス110のイニシエータドライバ280B経由で、ストレージコントローラ120のターゲットドライバ290Aが受信する。
ドライブボックス110のターゲットドライバ290Bは、イニシエータドライバ280Aとイニシエータドライバ280Cと他ドライブボックスのイニシエータドライバに対して、記憶領域を提供する。また、ホストコンピュータ100との間でコマンドの受信、コマンドの完了応答の送信を行う。また、ストレージコントローラ120との間でコマンドの受信、コマンドの完了応答の送信を行う。さらに、他ドライブボックスとの間でコマンドの受信、コマンドの完了応答の送信を行う。なお、これらの間の転送には、データ転送もあり、例えば、DMAやRDMAを使ってデータ転送を行う。
ドライブボックス110のイニシエータドライバ280Bは、ストレージコントローラ120のターゲットドライバ290Aと他ドライブボックスのターゲットドライバに対して、コマンドの送信、コマンド完了応答等の受信を行う。
ドライブボックス110のホストコマンド転送処理340は、ホストコンピュータ100が発行したコマンドを、ターゲットドライバ290Bを使用して受信し、コマンドの解析、ストレージコントローラ120への転送を行う。コマンド転送の際は、イニシエータドライバ280Bを介して、ストレージコントローラ120のターゲットドライバ290Aとコマンドのやり取りを行う。なお、コマンドを解析した際に、あらかじめストレージコントローラ120から設定されたアドレスの範囲に関するアクセスであった場合、例えば、ホストコンピュータ100からコマンドを受けたドライブボックス110のドライブが提供する記憶領域である場合、ストレージコントローラ120を介さずに、コマンド処理390を起動し、直接ドライブボックス110からホストコンピュータ100へデータ転送しても良い。その際は、コマンド処理390がリード・ライト処理、コマンドの完了応答の作成、ターゲットドライバ290Bを介したイニシエータドライバ280Cに対するコマンドの完了応答の送信等を行う。
ドライブボックス110のコマンド処理390は、ストレージコントローラ120のホストコマンド処理260の結果を受けて、例えば、データ転送制御300Bを起動する。
ドライブボックス110のデータ転送制御300Bは、ストレージコントローラ120からの指示を受けたドライブボックス110のコマンド処理390の指示を受けて、ドライブボックス110とホストコンピュータ100とのデータ転送処理を行う。この際、ストレージコントローラ120のホストコマンド処理260の結果を受けて、ドライブボックス110のコマンド処理390に指示を出力する。
また、ホストコマンド転送処理340から直接転送の指示があった場合も、ドライブボックス110とホストコンピュータ100とのデータ転送処理を行う。例えば、NVMe−oF等のプロトコルにしたがってのデータ転送を行う。
ドライブボックス110の二段転送処理350は、ストレージコントローラ120のホストコマンド処理260の結果を受けて、複数のドライブボックス110間のデータ転送が必要な場合に、他のドライブボックスからドライブボックス110にデータを転送する。転送には、ドライブボックス110のメモリ150にバッファ領域を確保し、それを用いて、データ転送を行う。例えば、NVMe−oFで、DMA、RDMA、フレーム転送やパケット転送などの方法でデータ転送を行う。二段転送処理350を実施して、ドライブボックス110に転送してきたデータは、ホストコンピュータ100に転送する。
ドライブボックス110のドライブ制御処理360は、ドライブボックス110内のドライブ140の管理と、コマンド処理390の指示に従ってドライブ140に対してリードやライトなどのデータ転送処理を行う。また、管理コマンドなどを用いて、ドライブ140の管理も行う。
ドライブボックス110のバッファ制御処理370は、データ転送を行うための一時的なメモリ領域であるバッファの確保と解放を行う。
ドライブボックス110のストレージ機能処理380Bは、ストレージコントローラ120からの要求で、ストレージの機能を実施する。例えば、オフロードするストレージ処理は、圧縮、伸長、暗号、復号や、コピーやフォーマット、RAID計算、パリティ計算等、様々であり、コマンド処理390により、ストレージ機能処理380Aの一部もしくは複数をドライブボックス110のストレージ機能処理380Bで実施する。
図4は、実施例1に係る情報システムの論理的構造、データ構造例を示すブロック図を示す。
実施例1に係る情報システムの論理的構造として、例えば、アプリケーション270、ネットワーク130、ディスカバリサービス420、ドライブボックス110で構成され、特に、ドライブボックス110内は、ネットワーク130とつながる物理ポート430、サブシステム410、NS440、VOL450、POOL460、RAIDグループ470、PDEV480等で構成される。
アプリケーション270はデータを記憶するため、ストレージコントローラ120及びドライブボックス110で構成される、ストレージシステムを使用する。アプリケーション270はストレージシステムから提供されるボリュームに対して、データを書き込んだり、読み出したりを行う。例えば、ここではNVMeを想定し、NS440が、アプリケーション270が使うボリュームに当たることとする。なお、例えばSCSIの場合には、LU(Logical Unit)がNS440に該当する。
ディスカバリサービス420は、アプリケーション270とNS440を関連づけるサービスを提供する。例えば、ディスカバリサービスは、物理ポート430とサブシステム410の対応表を保持しており、アプリケーション270がNS440とを関連付けて、NS440にアクセスするために、まず、ディスカバリサービス420にアクセスし、NS440が定義されているサブシステム410と対応する物理ポート430の識別子を取得し、その物理ポート430にアクセスすることで、サブシステム410に属する目的のNS440にアクセスできる。なお、ディスカバリサービス420は、ホストコンピュータ100に定義されても良いし、ストレージコントローラ120に定義されても良いし、ドライブボックス110に定義されても良い。
ドライブボックス110は、1つまたは複数のPDEV480を持つ。このPDEV480は、HDDやSSD等のドライブ140を想定するが、論理的なデバイス(DEV)でも良いものとする。1つ又は複数のPDEV480より、RAIDグループ470を作成する。RAIDグループ470はデータを保護する事を示しており、例えば、二重化、三重化などでも良く、冗長化全般をさす。なお、RAIDグループ470がなく、直接PDEV480とする構成でも良い。1つ又は複数のRAIDグループ470、又は、直接PDEV480から、POOL460を構成する。POOL460はシンプロビジョニング(TP)でも良く、物理的な容量より大きい、仮想的な容量で定義しても良い。POOL460から、VOL450を切り出して、NS440としてサブシステム410に登録する。ここで、VOL450は仮想ボリューム(VVOL)でも良いし、実ボリューム(RVOL)でも良い。また、VVOLは、物理的な容量より大きい、仮想的な容量で定義しても良い。
POOL460は、ドライブボックス110Aとドライブボックス110Bなど、複数のドライブボックス110にまたがっても良いものとする。例えば、TPPOOL460の場合は、ドライブボックス110Aに搭載されているPDEV480の容量よりも大きく、POOL460容量を設計し、POOL460の物理的な空き容量が少なくなった場合は、ドライブボックス110AにPDEV480を追加することで、容量を拡充する。ドライブボックス110Aに搭載できるPDEV480数を超えた場合は、新たにドライブボックス110Bを追加し、ドライブボックス110BのPDEV480又は1つ又は複数のPDEV480で構成したRAIDグループ470をPOOL460に追加することで、容量を拡充する。なお、ドライブボックス110Bのサブシステム410ZのNS440をドライブボックス110AのPOOL460に追加しても良い。例えば、この場合は、サブシステム410ZのNS440はアプリケーション270に直接見せずに、ストレージコントローラ120及びドライブボックス110Aに見せて、利用する。
なお、ドライブボックス110が複数物理ポート430を備えても良く、その複数の物理ポート430が一つのサブシステム410と紐づいても良い。この時、サーバがリソース競合の調整を行う。
図5は、実施例1に係るアドレス管理テーブルの例を示す図を示す。
アドレス管理テーブル590は、ストレージコントローラ120のメモリに格納され、アドレス変換処理330等のストレージコントローラ120の各種プログラムによって、参照される。VOL番号490、VOL−LBA500、POOL−VOL番号510、POOL−VOL−LBA520を有し、VOL番号490とPOOL番号570、POOL−VOL番号510とPOOL番号570、POOL−VOL番号510とRAIDグループ番号530とRAIDグループOffset540、RAIDグループ番号530とPDEV番号550、PDEV番号550とドライブボックス番号560の対応等を管理する。なお、ここで示したアドレス管理テーブル590は一例であり、例えば、VOLは仮想VOLでも良く、また、圧縮、重複排除関係の情報、POOLの属性、RAIDグループのRAIDタイプなどを示す情報、VOL容量等、他の情報が追加されても良いものとする。アドレス管理テーブル590は、アプリケーションに提供されるNSやVOL等の論理的なアドレス(論理的記憶領域)と、実際にデータが格納されるドライブボックス110やドライブ内の物理的なアドレス(物理的記憶領域)の対応を管理する。
VOL番号490は、VOL番号はストレージにアクセスプロトコルに応じて、例えば、NSID(Namespace ID)やLUN(Logical Unit Number)などと関連づく。
アドレス管理テーブル590は、アプリケーションからVOL番号490とVOL−LBA500へのアクセスに対して、アクセス先のドライブを特定するために使用する。
VOL番号490、POOL−VOL番号510は、POOL番号570から切り出して構成する。POOL−VOL番号510は、RAIDグループ番号530とRAIDグループOffset540から構成される。RAIDグループ番号530は複数のPDEV番号550(Physical Device)で構成され、PDEV番号550はドライブボックス番号560に属する。なお、PDEV番号550が複数のドライブボックス番号560にまたがっても良く、この場合、RAIDグループ番号530は複数のドライブボックス番号560から構成される。
図5の例では、VOL番号490が「1」で、VOL−LBA500が「0−99」の範囲は、POOL−VOL番号510が「10」、POOL−VOL−LBA520が「0−99」に該当する。POOL−VOL番号510の「10」は、RAIDグループ番号530が「1」、RAIDグループOffset540が「0」で構成される。RAIDグループ番号530の「1」はPDEV番号550が「0−3」で構成され、PDEV番号550の「0−3」はドライブボックス番号560の「1」に搭載されている。
なお、PDEVが例えばFlashドライブで構成されており、そのドライブ内で、前記PDEV内のアドレスを仮想アドレスとして、更に物理アドレス変換をするような、仮想アドレスと物理アドレスの変換が行われても良い。
ドライブボックス追加580は、POOL容量が不足し、容量追加のために、ドライブボックスを追加したときの様子を示す。ドライブボックス追加580は、POOL番号570、POOL−VOL番号510、POOL−VOL−LBA520、RAIDグループ番号530、RAIDグループOffset540、PDEV番号550と対応付ける。
アクセス頻度等で、ドライブボックス110の間でデータを移動させた場合は、VOL−LBA500とPOOL−VOL番号510、POOL−VOL−LBA520の対応が変更される。
アドレス管理テーブル590は、ストレージコントローラ120が管理するが、その全体、又は、一部をドライブボックス110にキャッシュしても良く、そのキャッシュを使って、アプリケーション270とドライブボックス110間で、キャッシュヒットによるデータ転送を実施しても良い。
図6は、実施例1の情報システムのドライブボックス追加例を示す。
ステップS0010で、ストレージコントローラ120のホストコマンド処理260の一部で、仮想プール空き容量を閾値と比較し、閾値以上の場合は、ステップS0070仮想プール空き容量確保済み状態を確認として終了する。仮想プール空き容量と閾値とを比較は、アプリケーションに提供しているNS等の論理的なアドレスを構成するだけの物理的なリソースが不足するかを判断することになる。
ステップS0010で、空き容量が閾値未満の場合、ステップS0020に進み、ドライブボックス110内に追加できる物理容量があるかを判断する。判断の結果、物理容量がある場合は、ステップS0080で、例えばPDEV480からRAIDグループ470を作り、POOL460に追加する。PDEV480からRAIDグループ470を作り、POOL460に追加すると、アドレス管理テーブルの内容も更新されるが、ホストコンピュータ100のアプリケーション270がデータにアクセスするためのVOL番号490やVOL−LBA500は、変更されることはない。従って、ホストコンピュータ100は、ステップS0080で物理容量が増加したことを意識することなく、ホストコンピュータ100の設定を変更する必要がない。ステップS0070仮想プール空き容量確保済み状態を確認として終了する。
ステップS0030で、ドライブボックス110へドライブ140を、追加可能かを判断する。そのため、ドライブを格納するスロットの空きありを判断し、ドライブスロットが空いている場合は、ステップS0090でドライブ140を追加する。ドライブ140を追加すると、アドレス管理テーブルの内容も更新されるが、ホストコンピュータ100のアプリケーション270がデータにアクセスするためのVOL番号490等のアドレス空間は、変更されることはない。ステップS0070仮想プール空き容量確保済み状態を確認として終了する。
ステップS0030でドライブスロットの空きがないと判断すると、ステップS0040に進み、ドライブボックス110とドライブ140を追加する。そして、ステップS0050でストレージコントローラ120と追加したドライブボックス110の接続を確立するため、コネクションを作成する。次に、ステップS0060で、例えば、追加されたドライブボックス内のPDEV480からRAIDグループ470を作り、POOL460に追加する。ドライブボックス110を追加すると、アドレス管理テーブルの内容も更新されるが、ホストコンピュータ100のアプリケーション270がデータにアクセスするためのVOL番号490等のアドレス空間は、変更されることはない。ステップS0070で、仮想プール空き容量確保済み状態を確認として終了する。ステップS0070で、ドライブボックス110がホストコンピュータ100に提供するNS等の記憶領域(論理的記憶領域)に対し、アドレス管理テーブル590の一部を更新、例えば、ドライブボックス追加580等の追加、を行う。これにより、拡張された物理的記憶領域の容量(物理的記憶領域)を、論理的記憶領域に対応付け可能な状態にアドレス管理テーブルを更新する。
ステップS0070仮想プール空き容量確保済み状態を確認には、拡張された物理的な記憶領域の容量を、アプリケーションに提供しているNS等の論理的なアドレスに対応付ける処理が含まれても良い。
本フローにより、例えばTP POOLにおいて、物理容量が足りなくなり、かつ、ドライブ140を搭載する空きもない場合にも、ドライブボックス110を追加することで、ホストコンピュータ100の設定を変更することなく、POOL460の物理容量を確保する。
図7は、実施例1に係るホストコマンドを実行する方法の概略を示す図を示す。
情報システムにおいて、ホストコンピュータ100のアプリケーション270がイニシエータドライバ280C経由で、コマンド600をドライブボックス110Aに発行する。ドライブボックス110Aは、ターゲットドライバ290Bでコマンド600を受け、ホストコマンド転送処理340により、イニシエータドライバ280Bを介して、ストレージコントローラ120のターゲットドライバ290へコマンド600を転送する。ストレージコントローラ120は、ホストコマンド処理260を行う。ストレージコントローラ120(例えば、アドレス変換処理330等)では、アドレス管理テーブルを参照し、コマンドの対象データがどのドライブボックス110にあるか判断する。ストレージコントローラ120のデータ転送制御300Aを起動して、ホストコンピュータ100からコマンド600を受信したドライブボックス110Aにデータ転送コマンド610Aを送信し、ドライブボックス110Aのコマンド処理390を介して、データ転送制御300を起動する。データ転送コマンド610Aには、アドレス管理テーブルを参照して得られる、コマンドの対象データを格納する、あるいは、格納すべきドライブボックスの情報が含まれている。
実施例1では、ストレージコントローラ120は、アドレス管理テーブルを参照して、データ転送コマンド610Aに二段転送指示が含ませている場合、ドライブボックス110Aは二段転送処理350を起動する。他の方法として、ストレージコントローラ120からのデータ転送コマンド610Aに二段転送指示が含まれない場合、ドライブボックス110は、アドレス管理テーブルを参照し、コマンド600の対象のデータがドライブボックス110Bにあると判断した場合、ドライブボックス110Aは二段転送処理350を起動する。
ここで、リードの場合は、バッファ制御処理370で転送用のバッファを用意し、ドライブボックス110Bにデータ転送コマンド610Bを転送する。ドライブボックス110Bのコマンド処理390はこれを受けて、データ転送制御300を起動し、ドライブボックス110Aにデータ転送620Aを行う。ドライブボックス110Aは、ホストコンピュータ100にそのデータをデータ転送620Bする。
また、ライトの場合は、ドライブボックス110Aで二段転送処理350を起動した後に、ドライブボックス110Bにデータ転送コマンド610Bを転送し、ドライブボックス110Bのコマンド処理390はこれを受けて、データ転送制御300を起動し、ドライブボックス110Aにデータ転送620Bされたデータをドライブボックス110Bにデータ転送620Aする。ドライブボックス110Bは、ドライブ制御処理360を起動し、ドライブ140へデータを格納する。
これにより、ホストコンピュータ100とドライブボックス110間でストレージコントローラ120にデータを転送することなく、直接データ転送する。また、二段転送処理350により、ドライブボックス110Aとドライブボックス110Bのデータ転送を行うことで、例えば、TPなど、容量仮想化をした際に、ドライブボックス110Aに物理容量を追加できなくなっても、ドライブボックス110Bを追加することで、ホストコンピュータ100のアプリケーション270に影響を与えずに、容量追加に対応する。
また、ホストコンピュータ100とドライブボックス110でデータ転送を行うため、ストレージコントローラ120の帯域影響を受けずに、例えば、FBOFのようなドライブボックス110の広帯域性や、レイテンシの削減(応答性能向上)が見込める。
図8は、実施例1の情報システムのデータ転送制御300Aによるドライブボックス選択例を示す。
ステップS0100で、ホストコンピュータ100がコマンド600をドライブボックス110に発行する。ステップS0110でドライブボックス110がコマンド600をストレージコントローラ120に転送する。ステップS0120でストレージコントローラ120(アドレス変換処理330等)が、アドレス管理テーブルに基づいて、データ格納のアドレスを確認する。ステップS0130で、ステップS0120で確認したデータ格納アドレスに基づいて、二段転送必要かを判断する。
データ格納のアドレスが、コマンド600送信元のドライブボックス110で、二段転送が必要ない場合は、ステップS0180でストレージコントローラ120がドライブボックス110にデータ転送コマンド610Aを発行し、ステップS0170でデータ転送完了として終了する。
ステップS0130で二段転送必要と判断した場合、即ち、アドレス管理テーブルに基づいて、データ格納先のアドレスが、コマンド600送信元のドライブボックス110でない他のドライブボックス110の場合は、ステップS0140でストレージコントローラ120が二段転送コマンドを含むデータ転送コマンドを生成し、ステップS0150でストレージコントローラ120がドライブボックス110に二段転送のデータ転送コマンド610Aを発行し、ステップS0160でドライブボックス110の二段転送処理350が二段転送を行い、ステップS0170でデータ転送完了として終了する。二段転送コマンドを含むデータ転送コマンドには、データ格納先の情報を含む。
本フローにより、例えばTP POOLにおいて、物理容量が足りなくなり、かつ、ドライブ140を搭載する空きもない場合にも、ドライブボックス110を追加し、二段転送を行うことで、ホストコンピュータ100の設定を変更することなく、POOL460の物理容量を確保しつつ、データ転送に対応する。
図9は、実施例1に係るホストコマンドを実行する方法の概略を示す図を示す。
情報システムにおいて、ホストコンピュータ100のアプリケーション270がイニシエータドライバ280C経由で、コマンド600をドライブボックス110Aに発行する。ドライブボックス110Aは、ターゲットドライバ290Bでコマンド600を受け、ホストコマンド転送処理340により、イニシエータドライバ280Bを介して、ストレージコントローラ120のターゲットドライバ290Aへコマンド600を転送する。ストレージコントローラ120は、ホストコマンド処理260を行い、データ転送制御300Aを起動して、ドライブボックス110Aにデータ転送コマンド610Aを送信し、ドライブボックス110Aのコマンド処理390を介して、データ転送制御300を起動する。この処理では、ドライブボックス110Aは、アドレス管理テーブルを参照し、対象のデータがドライブボックス110Bあると判断した場合、ドライブボックス110Aは二段転送処理350を起動するようにしても良い。
ここで、リードの場合は、バッファ制御処理370で転送用のバッファを用意し、ドライブボックス110Bにデータ転送コマンド610Bを転送する。ドライブボックス110Bのコマンド処理390はこれを受けて、データ転送制御300を起動し、ドライブボックス110Aにデータ転送620Aを行い、ドライブボックス110Aはホストコンピュータ100にそのデータをデータ転送620Cする。
この時、ストレージコントローラ120のデータ配置最適化処理400で、データ転送の要求が来ているデータが格納されているドライブボックス110Bが最適の位置かを判断し、データ移動の必要性がある場合は、ドライブボックス110Aへデータ移動の指示を発行する。例えば、二段転送を実施する際に、データ配置最適化の判断要素として、アクセス頻度を判定し、アクセス頻度が高ければ、二段転送先元のドライブボックス110Bから、二段転送先のドライブボックス110Aへデータを移動するように指示する。データ移動の指示を受けたドライブボックス110Aは、データ転送620Aで、ドライブボックス110Bからドライブボックス110Aへデータが移動し、ドライブボックス110のメモリ150上のバッファ領域に格納された後に、ホストコンピュータ100へのデータ転送620Cと共に、データ格納630Aを実施する。これにより、転送回数最小で、データの最適配置を実施する。
また、ライトの場合は、例えば、ストレージコントローラ120のデータ配置最適化処理400で、データ転送の要求が来ているデータが格納されているドライブボックス110Bが最適の位置かを判断する。データ移動の必要性がある場合は、ドライブボックス110Aへデータ移動の指示を発行する。よって、この場合は、データ格納630Aとなり、ドライブボックス110Aにデータが格納される。一方で、ストレージコントローラ120のデータ配置最適化処理400で、データ転送の要求が来ているデータが格納されているドライブボックス110Bが最適の位置かを判断し、データ移動の必要性がない場合は、データ転送620Aでドライブボックス110Bにデータが転送されて格納される。
また、ホストコンピュータ100のデータアクセス以外の契機で非同期にドライブボックス110上でデータの読み出しが行われるとき、例えば、容量のリバランスや、リクラメーション、ガベージコレクション、スナップショット等のバックアップ処理の時にも、ストレージコントローラ120のデータ配置最適化処理400を実施し、例えば、ドライブボックス110Aのデータに対して処理を行うときに、そのデータがドライブボックス110Bの方に格納する方が最適である場合は、ドライブボックス110Aのメモリ150上のバッファ領域に、データ転送620Bし、ドライブボックス110Bへデータ格納630Bする。
これにより、ドライブボックス110Aとドライブボックス110B及び、ストレージコントローラ120間でコマンド600やデータ転送の負荷を最小化しつつ、データの最適配置を行える。尚、ドライブボックス間でデータを移動させる場合には、アドレス管理テーブルの内容を更新する。例えばVOL番号490とPOOL−VOL番号510との対応等を更新する。
図10は、実施例1の情報システムのデータ移動処理例を示す。
ステップS0200で、ホストコンピュータ100のアプリケーション270がイニシエータドライバ280Cを介して、コマンド600をドライブボックス110Aに発行する。
ステップS0210で、ドライブボックス110Aのターゲットドライバ290Bがコマンド600を受け、ホストコマンド転送処理340からイニシエータドライバ280Bを介してストレージコントローラ120に転送する。
ステップS0220で、ストレージコントローラ120がターゲットドライバ290Aを介してコマンド600を受け取り、ホストコマンド処理260でコマンド600を処理する。この時、ストレージコントローラ120が、アドレス管理テーブルを参照し、データ格納先を確認する。
ステップS0230で、ストレージコントローラ120のデータ配置最適化処理400により、例えば、アクセス頻度確認を行い、ステップS0240でデータ移動が必要かを判断する。つまり、最適なデータ格納位置を決定する。判断の結果、データ移動が不要であれば、ステップS0310でストレージコントローラ120がドライブボックス110Aにデータ転送制御300を介して、データ転送コマンド610Aを発行する。そして、ステップS0320で、ドライブボックス110Aがコマンド処理390を行い、データ転送制御300Bで、データ転送620Cを行い、ステップS0300でデータ転送完了として終了する。
一方で、ステップS0240でデータ移動が必要と判断した場合、ステップS0250でストレージコントローラ120が新規データ格納先を確保する。次に、ステップS0260で、ストレージコントローラ120がドライブボックス110Aにデータ転送制御300を介して、データ転送コマンド610Aを発行する。次に、ステップS0270で、ドライブボックス110Aがデータ転送制御300又は、二段転送処理350を起動して、データ転送処理を行う。次に、ステップS0280で、ドライブボックス110Aが新規データ格納場所へ、データを格納する。次に、ステップS0290で、ドライブボックス110Aがデータの旧格納位置を解放するために、例えば、ストレージコントローラ120へデータ移動完了の通知を送り、ストレージコントローラ120がデータの旧格納位置、例えば、ドライブボックス110Bの旧データの格納位置を、解放し、ステップS0300でデータ転送完了として終了する。
本フローにより、例えば、ドライブボックス110Aとドライブボックス110B及び、ストレージコントローラ120間でコマンド600やデータ転送の負荷を最小化しつつ、データの最適配置を行える。
図11は、実施例1に係るデータ配置を判定するためのアクセス頻度テーブルを示す。
ストレージコントローラ120のデータ配置最適化処理400の際に、例えば、アクセス頻度を判定要素とする。ストレージコントローラ120は、アクセス頻度640、対象ドライブボックス650、データ移動判定660のアクセス頻度テーブルを用いて、アクセス頻度640が閾値以下で、アクセス頻度が低いと判断した場合に、データを格納しているドライブボックス110がコマンド600発行元の場合は、データ移動判定660で他ドライブボックス110へデータ移動と判断する。
また、アクセス頻度640が閾値以下で、アクセス頻度が低いと判断した場合に、データを格納しているドライブボックス110がコマンド600発行元でなく、他のドライブボックス110の場合は、データ移動判定660でデータ移動なしと判断する。
また、アクセス頻度640が閾値より大きく、アクセス頻度が高いと判断した場合に、データを格納しているドライブボックス110がコマンド600発行元の場合は、データ移動判定660でデータ移動なしと判断する。
また、アクセス頻度640が閾値より大きく、アクセス頻度が高いと判断した場合に、データを格納しているドライブボックス110がコマンド600発行元でなく、他のドライブボックス110の場合は、データ移動判定660でコマンド600発行元のドライブボックス110へデータ移動と判断する。
本データ配置判定テーブルは、アクセス頻度で判定する場合を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態のみに限定する趣旨ではない。
例えば、アクセス頻度ではなく、ランダムアクセスとシーケンシャルアクセス等のアクセス方法により判定することができる。ランダムアクセスの方がレスポンスタイムを重視して、ホストコンピュータ100に近いドライブボックス110で、シーケンシャルアクセスの方がレスポンスタイムを重視しないため、ホストコンピュータ100から遠いドライブボックス110に、データを配置する等の判断としても良い。
また、バックアップデータかそうでないデータかで、バックアップデータの場合は、バックアップデータをまとめると判断し、バックアップ用のドライブボックス110に配置し、それ以外のデータは、バックアップ用でないドライブボックス110に配置しても良い。
また、ホストコンピュータ100で複数のアプリケーション270を使用した際に、アプリケーション270の要求性能に応じて、レスポンスタイムを重視するアプリケーション270のデータは、ホストコンピュータ100に近いドライブボックス110で、レスポンスタイムを重視しないアプリケーション270のデータは、ホストコンピュータ100から遠いドライブボックス110に配置する等の判断としても良い。
以上の通り、実施例1によれば、ホストコンピュータとドライブボックス間で直接データ転送する構成において、ドライブ追加等による容量の拡張を、ホストコンピュータの設定を変更することなく実現することができる。また、ドライブ容量の拡張後もホストコンピュータとドライブボックス間で直接データ転送を、ホストコンピュータの設定変更することなく実行できるので、ホストコンピュータのドライブボックスに対するIO要求を高速に処理することができる。このことは、図1で示した情報システムのエネルギー消費を抑えることにも寄与し、ホストコンピュータ100のユーザのビジネス機会損失を防止することができる。
また、実施例1によるデータ転送によれば、ホストコンピュータの設定を変更することなく、容量を追加できるので、シンプロビジョニング機能に対応した構成とすることができる。
また、実施例1による二段転送により、データ転送処理を行うので、NS440が定義されているサブシステム410と物理ポート430との対応を変更することなく、容量の拡張を可能とする。
さらに、実施例1によれば、ホストコンピュータへ近いドライブボックスと、追加したドライブボックス間のデータ配置最適化により、2段転送の頻度を減らし、レイテンシやネットワークトラフィックの増加を防ぐことができる。
図12は、実施例2に係るホストコマンドを実行する方法のホストへのパス追加の概略を示す図を示す。
この実施例2の情報システムにおいて、例えば、他のアプリケーション270でドライブボックス110Aの容量を使用しようとした際に、元のアプリケーション270で使用していたドライブボックス110Aの容量をあけるため、ホストコンピュータ100と追加したドライブボックス110Bの間に、新しいパスを追加し、元のアプリケーション270に、コピー先のNS440として見せてもよい。
なお、実施例2のシステムで特に言及しない点は、実施例1と同様とする。
例えば、ホストコンピュータ100の元のアプリケーション270がイニシエータドライバ280C経由で、コマンド600をドライブボックス110Aに発行する。ドライブボックス110Aは、ターゲットドライバ290Bでコマンド600を受け、ホストコマンド転送処理340により、イニシエータドライバ280Bを介して、ストレージコントローラ120のターゲットドライバ290へコマンド600を転送する。ストレージコントローラ120は、ホストコマンド処理260を行う。ここで、実施例2では、対象のデータがドライブボックス110Aあると想定し、例えば、ホストコンピュータ100からのデータライトを想定し、ストレージコントローラ120のデータ配置最適化処理400で、データ転送の要求が来ているドライブボックス110Aではなく、ドライブボックス110Bがデータ最適位置と判断したとする。
ストレージコントローラ120は、データ転送制御300Aを起動して、ドライブボックス110Aにデータ転送コマンド610Aを送信し、ドライブボックス110Aのコマンド処理390を介して、データ転送制御300を起動する。ここで、対象のデータをドライブボックス110Bに格納するために、ドライブボックス110Aは二段転送処理350を起動し、イニシエータドライバ280Bを介して、ドライブボックス110Bのターゲットドライバ290Bへデータ転送コマンド610Bを発行する。
ドライブボックス110Bは、データ転送コマンド610Bを受けて、コマンド処理390を行い、ホストコンピュータ100の元のアプリケーション270がライトするデータをドライブボックス110Bへ格納する。
ドライブボックス110Bは転送完了の後、ドライブボックス110Aがストレージコントローラ120とホストコンピュータ100の元のアプリケーション270にデータ転送完了を通知する。
なお、別の方法として、ストレージコントローラ120がドライブボックス110Bへデータを格納すべきと判断し、ドライブボックス110Aへデータ転送コマンド610Aを発行し、ドライブボックス110Aがこれを受けて、ホストコンピュータ100の元のアプリケーション270、または、イニシエータドライバ280Cにドライブボックス110Bへのデータ転送620を指示する方法を取っても良い。
これにより、ドライブボックス110Aとドライブボックス110B及び、ストレージコントローラ120間でコマンド600やデータ転送の負荷を最小化しつつ、データの最適配置を行える。
また、ドライブボックス110Aの空き容量が増えるため、そこを他のアプリケーション270が使用することができる。
以上、二つの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、図13は、実施例2に係る情報システムのネットワーク共通化の構成例を示す。
ホストコンピュータ100とストレージコントローラ120とドライブボックス110がネットワーク130に接続されている構成を採っても良い。
また、例えばストレージコントローラ120はSoftware Defined Storageでも良く、ホストコンピュータ100も仮想サーバでも良い。
また、本情報システムをエンタープライズ向けとする場合は、各要素、パス等は冗長化され、片方に障害が起きても、継続動作できる。そのため、ユーザのビジネス機会損失を防止することができる。
100:ホストコンピュータ
110:ドライブボックス
120:ストレージコントローラ
130:ネットワーク
140:ドライブ
150:メモリ
160:インタフェース
180:フロントポート
200:エンクロージャ
210:プロセッサ
220:スイッチポート
230:バックエンドパス
240:ドライブポート
250:スイッチ
260:ホストコマンド処理
270:アプリケーション
280:イニシエータドライバ
290:ターゲットドライバ
300:データ転送制御
330:アドレス変換処理
340:ホストコマンド転送処理
350:二段転送処理
400:データ配置最適化処理
420:ディスカバリサービス
440:NS
450:VOL
460:POOL
470:RAIDグループ
480:PDEV

Claims (9)

  1. データのリード又はライトのためのコマンドを送信するコンピュータ装置にネットワークを介して接続されるよう構成され、記憶装置であるドライブをそれぞれ搭載する複数のドライブボックスと、前記複数のドライブボックスに接続されるストレージコントローラとを有するストレージシステムであって、
    前記複数のドライブボックスの第1のドライブボックスは、
    前記コンピュータ装置に、第1の記憶領域を提供し、
    前記ストレージコントローラは、前記第1の記憶領域と、前記第1の記憶領域を構成する前記ドライブの物理的記憶領域との対応を管理するアドレス管理テーブルを格納し、
    前記第1のドライブボックスは、前記コンピュータ装置から前記第1の記憶領域に対するコマンドを受領すると、前記コマンドを前記ストレージコントローラに転送し、
    前記コマンドを受領した前記ストレージコントローラは、前記アドレス管理テーブルに基づいて、データ格納先の情報を含むデータ転送コマンドを生成し、前記第1のドライブボックスに転送し、
    前記データ転送コマンドを受領した前記第1のドライブボックスは、前記データ転送コマンドに含まれるデータ格納先が、前記複数のドライブボックスの第2のドライブボックスである場合には、前記第2のドライブボックスに前記データ転送コマンドを転送する
    ことを特徴とするストレージシステム。
  2. 請求項1に記載のストレージシステムにおいて、
    前記第1の記憶領域は、NVMeにおけるName SpaceまたはSCSIにおけるLUであることを特徴とするストレージシステム。
  3. 請求項1に記載のストレージシステムにおいて、
    前記ストレージコントローラは、
    前記第1の記憶領域を構成する前記ドライブの記憶領域が不足すると判断すると、
    前記第1の記憶領域を提供するプールの容量の増加、前記第1のドライブボックスに新規なドライブの追加、あるいは、新規なドライブボックスの追加により、前記物理的記憶領域の容量を拡張された前記物理的記憶領域の容量を、前記第1の記憶領域に対応付けることが可能な状態に前記アドレス管理テーブルを更新する
    ことを特徴とするストレージシステム。
  4. 請求項3に記載のストレージシステムにおいて、
    前記ストレージコントローラは、
    前記コンピュータ装置からの前記コマンドの対象データのアクセス頻度に基づいて、前記対象データの格納先を前記第1のドライブボックス及び前記第2のドライブボックスの何れかに決定する
    ことを特徴とするストレージシステム。
  5. 請求項3に記載のストレージシステムにおいて、
    前記第1のドライブボックスは、
    前記コンピュータ装置、前記複数のドライブボックスの他のドライブボックスと接続される制御部と有し、
    前記データ転送コマンドを受領した前記第1のドライブボックスの前記制御部は、前記データ転送コマンドに含まれる対象データの格納先が、前記複数のドライブボックスの前記第2のドライブボックスである場合には、前記第2のドライブボックスに前記データ転送コマンドを転送すると共に、前記対象データを前記第1のドライブボックスの前記ドライブにデータを格納する
    ことを特徴とするストレージシステム。
  6. 請求項5に記載のストレージシステムにおいて、
    前記ストレージコントローラは、
    前記物理的記憶領域の容量を拡張するため前記新規なドライブボックスを追加すると、前記第1のドライブボックスへ前記データ転送コマンドを転送するときに、前記追加したドライブボックスにデータを格納させるかを判断し、
    前記追加したドライブボックスにデータを格納させると判断すると、前記追加したドライブボックスと前記コンピュータ装置と間の新しいパスを用いるよう前記コンピュータ装置に指示を行う
    ことを特徴とするストレージシステム。
  7. データのリード又はライトのためのコマンドを送信するコンピュータ装置にネットワークを介して接続されるよう構成され、記憶装置であるドライブをそれぞれ搭載する複数のドライブボックスであって、
    前記複数のドライブボックスの第1のドライブボックスは、
    前記コンピュータ装置に、第1の記憶領域を提供し、
    前記コンピュータ装置から前記第1の記憶領域に対するコマンドを受領すると、前記第1の記憶領域を構成する前記ドライブの物理的記憶領域との対応を管理するアドレス管理テーブルに基づいて、前記複数のドライブボックスの第2のドライブボックスに対し、前記コマンドを転送する
    ことを特徴とするドライブボックス。
  8. 請求項7に記載のドライブボックスにおいて、
    前記第1のドライブボックスは、
    前記コンピュータ装置、前記複数のドライブボックスの他のドライブボックスと接続され、前記コンピュータ装置からのコマンドを処理する制御部とを有し、
    前記制御部により、前記コンピュータ装置に提供される前記第1の記憶領域は、NVMeにおけるName SpaceまたはSCSIにおけるLUであるである
    ことを特徴とするドライブボックス。
  9. データのリード又はライトのためのコマンドを発行するコンピュータ装置にネットワークを介して接続される複数のドライブボックスと、前記複数のドライブボックスに接続されるストレージコントローラとを有するストレージシステムのデータ転送方法であって、
    前記複数のドライブボックスの第1のドライブボックスは、
    前記コンピュータ装置に、第1の記憶領域を提供し、
    前記ストレージコントローラは、前記第1の記憶領域と、前記第1の記憶領域を構成する前記複数のドライブボックスの物理的記憶領域との対応を管理するアドレス管理テーブルを格納し、
    前記第1のドライブボックスは、前記コンピュータ装置から前記第1の記憶領域に対するコマンドを受領すると、前記コマンドを前記ストレージコントローラに転送し、
    前記コマンドを受領した前記ストレージコントローラは、前記アドレス管理テーブルに基づいて、データ格納先の情報を含むデータ転送コマンドを生成し、前記第1のドライブボックスに転送し、
    前記データ転送コマンドを受領した前記第1のドライブボックスは、前記データ転送コマンドに含まれるデータ格納先が、前記複数のドライブボックスの第2のドライブボックスである場合には、前記第2のドライブボックスに前記データ転送コマンドを転送する
    ことを特徴とするストレージシステムのデータ転送方法。
JP2019144573A 2019-08-06 2019-08-06 ドライブボックス、ストレージシステム及びデータ転送方法 Active JP6942163B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019144573A JP6942163B2 (ja) 2019-08-06 2019-08-06 ドライブボックス、ストレージシステム及びデータ転送方法
CN202010081473.4A CN112346653B (zh) 2019-08-06 2020-02-06 驱动器箱、存储系统和数据传送方法
US16/810,575 US11327653B2 (en) 2019-08-06 2020-03-05 Drive box, storage system and data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019144573A JP6942163B2 (ja) 2019-08-06 2019-08-06 ドライブボックス、ストレージシステム及びデータ転送方法

Publications (2)

Publication Number Publication Date
JP2021026541A true JP2021026541A (ja) 2021-02-22
JP6942163B2 JP6942163B2 (ja) 2021-09-29

Family

ID=74357212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019144573A Active JP6942163B2 (ja) 2019-08-06 2019-08-06 ドライブボックス、ストレージシステム及びデータ転送方法

Country Status (3)

Country Link
US (1) US11327653B2 (ja)
JP (1) JP6942163B2 (ja)
CN (1) CN112346653B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321002B2 (en) * 2018-12-11 2022-05-03 Hewlett Packard Enterprise Development Lp Converting a virtual volume between volume types
US11163501B2 (en) * 2019-09-27 2021-11-02 Dell Products L.P. Raid storage multi-step command system
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11941301B2 (en) * 2021-01-22 2024-03-26 EMC IP Holding Company LLC Maintaining online access to data stored in a plurality of storage devices during a hardware upgrade

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532339A (ja) * 2010-06-18 2013-08-15 エルエスアイ コーポレーション スケーラブルな記憶装置
WO2015072028A1 (ja) * 2013-11-18 2015-05-21 株式会社日立製作所 ストレージ制御装置
WO2015162745A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
JP2016539399A (ja) * 2014-09-15 2016-12-15 華為技術有限公司Huawei Technologies Co.,Ltd. データ書込み要求処理方法及びストレージアレイ
JP2018173959A (ja) * 2017-03-31 2018-11-08 三星電子株式会社Samsung Electronics Co.,Ltd. NVMe−oF装置用ストレージ集積方法、NVMe−oFイーサネットSSDのグループにNVMe−oF SSD容量を集積する方法、及び集積されたイーサネットSSDグループ

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
JP2002124077A (ja) * 2000-10-13 2002-04-26 Internatl Business Mach Corp <Ibm> ディスク・ドライブ装置、ハード・ディスク・ドライブ、ガスケットおよびトップ・カバー
JP3950720B2 (ja) * 2002-03-18 2007-08-01 株式会社日立製作所 ディスクアレイサブシステム
JP2005158101A (ja) * 2003-11-21 2005-06-16 Hitachi Ltd ディスクアレイ装置
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9128626B2 (en) * 2010-10-01 2015-09-08 Peter Chacko Distributed virtual storage cloud architecture and a method thereof
JP6427913B2 (ja) * 2014-03-28 2018-11-28 日本電気株式会社 ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム
US9858013B1 (en) * 2014-05-05 2018-01-02 EMC IP Holding Company LLC Scalable distributed storage system infrastructure
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
US9112890B1 (en) 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
WO2016189640A1 (ja) * 2015-05-26 2016-12-01 株式会社日立製作所 ストレージ装置、及び方法
US9852107B2 (en) * 2015-12-24 2017-12-26 Intel Corporation Techniques for scalable endpoint addressing for parallel applications
US10380028B2 (en) * 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
US10769081B2 (en) * 2016-12-30 2020-09-08 Intel Corporation Computer program product, system, and method to allow a host and a storage device to communicate between different fabrics
JP6556404B2 (ja) * 2017-03-24 2019-08-07 株式会社日立製作所 ストレージシステム及びストレージシステムのバックエンド構築方法
JP2019008730A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム
US11385815B2 (en) * 2017-08-30 2022-07-12 Hitachi, Ltd. Storage system
US10860475B1 (en) * 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
JP6842480B2 (ja) * 2019-02-14 2021-03-17 株式会社日立製作所 分散ストレージシステム
JP2020177501A (ja) * 2019-04-19 2020-10-29 株式会社日立製作所 ストレージシステム、そのドライブ筐体、およびパリティ演算方法。
JP7080863B2 (ja) * 2019-08-02 2022-06-06 株式会社日立製作所 ストレージ装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532339A (ja) * 2010-06-18 2013-08-15 エルエスアイ コーポレーション スケーラブルな記憶装置
WO2015072028A1 (ja) * 2013-11-18 2015-05-21 株式会社日立製作所 ストレージ制御装置
WO2015162745A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
JP2016539399A (ja) * 2014-09-15 2016-12-15 華為技術有限公司Huawei Technologies Co.,Ltd. データ書込み要求処理方法及びストレージアレイ
JP2018173959A (ja) * 2017-03-31 2018-11-08 三星電子株式会社Samsung Electronics Co.,Ltd. NVMe−oF装置用ストレージ集積方法、NVMe−oFイーサネットSSDのグループにNVMe−oF SSD容量を集積する方法、及び集積されたイーサネットSSDグループ

Also Published As

Publication number Publication date
CN112346653A (zh) 2021-02-09
JP6942163B2 (ja) 2021-09-29
US20210042032A1 (en) 2021-02-11
US11327653B2 (en) 2022-05-10
CN112346653B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
US10853274B2 (en) Primary data storage system with data tiering
US10891054B2 (en) Primary data storage system with quality of service
JP6942163B2 (ja) ドライブボックス、ストレージシステム及びデータ転送方法
JP4903415B2 (ja) 記憶制御システム及び記憶制御方法
US20200019516A1 (en) Primary Data Storage System with Staged Deduplication
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US8195913B2 (en) Data storage control on storage devices
EP2239655B1 (en) Storage controller and storage control method
JP5658197B2 (ja) 計算機システム、仮想化機構、及び計算機システムの制御方法
JP2007141216A (ja) 複数のプロトコルアクセス可能なosdストレージサブシステムのためのシステム、方法および装置
US8745326B2 (en) Request priority seek manager

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210907

R150 Certificate of patent or registration of utility model

Ref document number: 6942163

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150