JP6286542B2 - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- JP6286542B2 JP6286542B2 JP2016528751A JP2016528751A JP6286542B2 JP 6286542 B2 JP6286542 B2 JP 6286542B2 JP 2016528751 A JP2016528751 A JP 2016528751A JP 2016528751 A JP2016528751 A JP 2016528751A JP 6286542 B2 JP6286542 B2 JP 6286542B2
- Authority
- JP
- Japan
- Prior art keywords
- server computer
- storage area
- express
- command
- storage controller
- 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.)
- Expired - Fee Related
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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
Description
This specification defines a streamlined set of registers whose functionality includes:
・ Indication of controller capabilities
・ Status for controller failures (command status is processed via CQ directly)
・ Admin Queue configuration (I/O Queue configuration processed via Admin commands)
・ Doorbell registers for scalable number of Submission and Completion Queues
・ Does not require uncacheable / MMIO register reads in the command submission or completion path.
・ A maximum of one MMIO register write is necessary in the command submission path.
・ Support for up to 65,535 I/O queues, with each I/O queue supporting up to 64K outstanding commands.
・ Priority associated with each I/O queue with well-defined arbitration mechanism.
・ All information to complete a 4KB read request is included in the 64B command itself, ensuring efficient small I/O operation.
・ Efficient and streamlined command set.
・ Support for MSI/MSI-X and interrupt aggregation.
・ Support for multiple namespaces.
・ Efficient support for I/O virtualization architectures like SR-IOV.
・ Robust error reporting and management capabilities.
・ Support for multi-path I/O and namespace sharing.
"1.3 Outside of Scope
The register interface and command set are specified apart from any usage model for the NVM, but rather only specifies the communication interface to the NVM subsystem. Thus, this specification does not specify whether the non-volatile memory system is used as a solid state drive, a main memory, a cache memory, a backup memory, a redundant memory, etc. Specific usage models are outside the scope, optional, and not licensed."
*フラッシュメモリチップを含む。
*以下の処理を行うフラッシュメモリコントローラを含む:
#外部からのリードリクエストに応じて、フラッシュメモリチップに保存されたデータを外部に転送する。そして、外部から受信したライトリクエストと共に受信したデータをフラッシュメモリチップに保存する。
#フラッシュメモリチップのイレース処理を行う。
*サーバ計算機、ストレージシステム(ストレージコントローラと記憶デバイスを含む)、及びこれらを接続する通信機構を含む製品。企業の管理者が個別にサーバ計算機とストレージシステムを導入する場合、こうしたサーバ計算機とストレージシステムの接続確認に代表される動作検証は管理者側で行われていた。しかし、CPFを導入する場合、製品を販売するベンダが事前に動作検証を行うため、製品を設置して使用する顧客の管理者による動作検証が不要又は削減できる。
*なお、一部のCPFは、サーバ計算機、ストレージシステム、及び通信機構の設定を一括して行う管理プログラムを実行する管理サブシステムを含む場合がある。この管理サブシステムは、管理者が希望する実行環境(仮想マシン、DBMS:Database Management System、Webサーバ等)を迅速に提供することができる。例えば、管理プログラムは、必要なリソース量の仮想マシンを提供するために、サーバ計算機及びストレージシステムに必要なリソースの割り当てをリクエストし、割り当てられたリソースを用いて仮想マシンを作成するようにハイパーバイザにリクエストする。
*ファイルサーバ
*ブレードサーバシステム
*PC(Personal Computer)サーバ
*ブレードサーバシステムに差し込まれるブレード
*これら広域SANも構築可能なプロトコルでは変換処理のオーバーヘッドが高く、共有データ領域への高性能I/O提供の妨げとなるため。
*EthernetやSANのデバイス(特にスイッチ)が高価であるため。
*候補(1):フラッシュメモリデバイス。この場合はストレージコントローラとフラッシュメモリデバイスとはPCIeで接続され、フラッシュメモリデバイスはNVMeに準拠したFunctionを持つEPとなる。ストレージコントローラはサーバ計算機からのNVMeコマンドを当該フラッシュメモリデバイスにスルーする。
*候補(2):ストレージコントローラ。この場合はサーバ計算機からストレージコントローラまでがPCIeで接続される。なお、前述の複数RCの同居に関する制限がある場合、サーバ計算機(1)のRCとストレージコントローラのRCとのPCIe接続と、サーバ計算機(2)のRCとストレージコントローラのRCとのPCIe接続とは、分離される。そして、ストレージコントローラのRCはそれぞれのサーバ計算機のRCに対して個別なEPを提供する。
*候補(3):サーバ計算機からのPCIe接続とストレージコントローラからのPCIe接続を仲介する仲介デバイス。インテル(R)やAMD(R)等が提供するCPU及びPCIeチップセットはコモディティ化されているため、低価格で高性能である。こうしたものをストレージコントローラに採用する場合に課題となるのが、ストレージコントローラにもRCが存在してしまい、前述の複数RCの同居の制限がある場合は、そのままサーバ計算機と接続できないことである。当該仲介デバイスは、夫々のサーバ計算機のRCに対してはEPを提供するロジックと、ストレージコントローラのRCに対しては別なEPを提供するロジックと、サーバ計算機とストレージコントローラとの間のライトデータやリードデータの転送を仲介するロジックとを含むことにより、この課題を解決する。
*候補(1):ストレージコントローラによる処理のオーバーヘッドが無い、又は小さい。候補(1)は、フラッシュメモリデバイスの内部状態を考慮した、効率的なNVMeのキュー制御を実現しやすい。なぜなら、NVMeコマンドを解釈する部位と、フラッシュメモリデバイスのウェアレベリングやリクラメーション等を行うコントローラが同じ又は近いためである。例えば、NVMeではI/Oキューが複数存在するが、候補(1)は、複数のI/OキューからのNVMeコマンドの取り出し方を当該内部状態に基づいて変更する。
*候補(2):ストレージコントローラが提供する前述のエンタープライズ向け機能をNVMeのNSに対して適用できる。また、候補(2)は、ストレージコントローラの内部状態を考慮した効率的なNVMeのキュー制御を行うことができる。なぜなら、NVMeコマンドを解釈する部位と、ストレージコントローラとが同じ又は近いためである。例えば、候補(2)は、複数のI/OキューからのNVMeコマンドの取り出し方を当該内部状態に基づいて変更することができる他、I/OキューにあるNVMeコマンドの蓄積状態に応じて、ストレージコントローラの他の処理の制御を変更できる。
*候補(3):ストレージコントローラが提供するエンタープライズ向け機能をNVMeのNSに対して適用できる。また、候補(3)の仲介デバイスがNVMeコマンドをSCSIリクエスト(SCSIコマンド)に変換するのであれば、ストレージコントローラで実行されるストレージプログラムは、実行コード、中間コード、又はソースコードレベルで、従来のSANストレージサブシステムのストレージプログラムと互換性を保ちやすい。その結果として、計算機システムのストレージプログラムの品質向上、機能向上できる他、前述のリモートコピーのような計算機システムのストレージコントローラとSANストレージサブシステムとの間の連携処理の実装も容易になる。なぜなら、通常のSANストレージサブシステム同士の連携と同じ部分が殆どのためである。
*ストレージコントローラは、フラッシュメモリデバイスを冗長化し、冗長化した記憶領域から共有データ領域を提供する。また、ストレージコントローラは、共有データ領域に格納したデータへのアクセスを禁止又は失敗させずに(いわゆる無停止に)、フラッシュメモリデバイスの交換、増設、抜き去りといったデバイス保守を可能とする。HDDとは異なり、フラッシュメモリデバイスには書き込み過多によるデバイス寿命の短期化という特性がある。そのため、こうした冗長化や無停止保守をストレージコントローラが提供することで本計算機システムとしての信頼性を向上させることができる。また、サーバ計算機にPCIeのフラッシュメモリデバイスが差し込まれる場合、フラッシュメモリデバイスの保守は個々のサーバ計算機に対して個別に行われなければならない。しかし、本計算機システムのようにストレージコントローラにフラッシュメモリデバイスが接続されることにより、フラッシュメモリデバイスの保守をストレージ側にまとめると、保守作業者はまとめてフラッシュメモリデバイスの保守作業を行うことができ、保守が容易になる。
*ストレージコントローラは、NVMeによって格納したデータに対して、リモートコピーやスナップショットといったコピー機能を提供する。
*ストレージコントローラは、フラッシュメモリデバイス以外に記憶デバイスとしてHDDに接続されることにより、これらの記憶デバイスを用いたティアリングを可能とする。なお、ストレージコントローラは、HDDが提供する記憶領域をNVMeのNSに対応させてもよい。
*ストレージコントローラは、サーバ計算機(1)や(2)を介さずに、本計算機システムの外部の計算機システム(サーバ計算機やストレージシステムを含む)又はネットワーク装置(SANスイッチやEthernetスイッチを含む)からのネットワークを介したアクセスを提供する。これにより前述のリモートコピーが行えたり、本計算機システム外部の計算機システム又はネットワーク装置も含めたストレージコンソリデーションも提供できたりする等、柔軟性が向上する。
*ストレージコントローラが、ブレードサーバシステムのシャーシに差し込まれる構成を有する。なお、サーバ計算機であるブレードとストレージコントローラとの間のPCIe接続にバックプレーン等の基板を用いることで、PCIe接続に伴うトラブルを削減できる。
*ブレードサーバシステムのシャーシとは別なシャーシにストレージコントローラを入れ、両シャーシをPCIe接続用のケーブルで接続する。なお、ブレードサーバシステムのシャーシとストレージコントローラのシャーシとを1つのラックに入れたものを、CPFとして販売してもよい。このようにラックに両シャーシとPCIe接続用ケーブルとを入れることで、PCIe接続用ケーブルに伴うトラブルを削減でき、また単体販売しているブレードサーバシステムやストレージシステムのシャーシそのもの又は部品をCPFへ流用することが容易である。
*管理者又は統合管理サブシステムからのリクエストを受信し、計算機システムコンポーネントに対してリクエストに応じた設定を行うこと。
*計算機システムコンポーネントから情報を取得し、管理者に表示したり、又は統合管理サブシステムに送信したりすること。なお、取得する情報は例えば性能情報、障害情報、設定情報、構成情報等がある。例えば、構成情報は、コンポーネントの抜き差しをしない限り本計算機システムに固定な項目と、変更可能な項目とを含み、設定情報は特に構成情報のうち、設定により変更可能な項目である。なお、これら種類の情報をまとめてコンポーネント情報と呼ぶことがある。また、管理者に表示したり、別な計算機に送信したりする情報は、取得したコンポーネント情報そのままでもよく、又は何らかの基準で変換・加工した後に、当該情報の表示や送信を行ってもよい。
*上記コンポーネント情報に基づいて、計算機システムコンポーネントへの設定を自動的・自律的に行う、いわゆる自動・自律管理。
*計算機システムコンポーネントとは別な計算機(1以上)。管理サブシステムが、ネットワークを介して計算機システムに接続されている複数の計算機である場合、例えば、サーバ計算機専用の計算機、ストレージコントローラ専用の計算機、表示処理専用の計算機、といった計算機が管理サブシステムに存在してもよい。
*計算機システムコンポーネントの一部。例えばBMC(Baseboard Management Controller)やエージェントプログラムが管理サブシステムである。
#複数のサーバ計算機間の高速フェイルオーバ。サーバ計算機(1)の障害等に応じて、サーバ計算機(2)はサーバ計算機(1)による処理を引き継ぐフェイルオーバを行うと判定する。複数のサーバ計算機の夫々にPCIe接続を介してLocalフラッシュメモリデバイス(図では「Local Flash」と省略)が接続されており、そしてサーバ計算機のプログラムのNVMeコマンド発行先がLocalフラッシュメモリデバイスだけである場合、複数のサーバ計算機は、フェイルオーバ元と先のLocalフラッシュメモリデバイス間でデータコピーする必要があり、高速なフェイルオーバが難しい。本計算機システムの場合はそのようなデータコピーは不要である。
#複数のサーバ計算機がNVMeで共有データ領域に並列アクセスすることで、並列処理を行う場合。あるサーバ計算機がデータをライトし、すぐに他のサーバ計算機が当該データをリードすることができる。
*管理サブシステムがNSIDとストレージコントローラの記憶領域との関係を計算機システムに問い合わせる。
*サーバ計算機のプログラムがNSIDを指定して情報収集を行うことにより得られる情報から共通のNSであることを判断する。
*サーバ計算機2においてNVMe非対応のプログラムが、NVMeのNSに対応した記憶領域にアクセスできるようにするため。
*サーバ計算機2においてNVMe非対応のプログラムが、NVMeのNSに対応した記憶領域とは別な記憶領域にアクセスできるようにするため。例えばストレージコントローラ3にHDDが接続している場合、サーバ計算機2が当該HDDの記憶領域に対してはSCSIでアクセスできるようにする。
*本願出願時点ではNVMeのI/FがNSをサーバ計算機2のブートデバイスとして使用できるように規格化されていないため。そのため、ストレージコントローラ3が提供する記憶領域をサーバ計算機2のブートデバイスとする場合、サーバ計算機2がその記憶領域にSCSIリクエストでアクセスできる必要がある。なお、サーバ計算機2がブートするということは、サーバ計算機2のBIOS(Basic Input/Output System)プログラムが、ブートデバイスを持つEPをハンドリング可能なように実装されている必要があるということである。ここでのEPは、例えばSCSI HBA(Host Bus Adapter)やPCIe I/Fデバイス(NVMeファンクション又はSCSIファンクション)である。その具体的な実装方法は以下の通りである:
#BIOSプログラムが、発見したEPからBIOSプログラム用のデバイスドライバプログラムを取得し、それを実行する。
#BIOSプログラム自体がNVMe用のドライバプログラムを含む。
(A)NVMeコマンドを発行し、SCSIリクエストを発行しない。
(B)NVMeコマンドとSCSIリクエストを発行する。
(C)NVMeコマンドを発行せず、SCSIリクエストを発行する。
*CPU21により実行されるプログラムによって発行されたNVMeコマンドを解釈する。
*RC24に対してEP41を提供する。
*ストレージコントローラ3に含まれるRC33に対して別なEP42を提供する。なお、ストレージコントローラ3に複数のRCが含まれ、本デバイス4がそれぞれと通信する必要がある場合は、本デバイス4は各RCに対して別なEP42を提供する。ここでのサーバ側PCIe I/Fデバイス4は、ストレージコントローラ3内の二つのRC33に対して二つのEP42を夫々提供する。
*低コスト化。
*サーバ計算機2においてPCIe接続のデバイスを差し込むためのスペースの削減。
*サーバ計算機2内の使用PCIeスロット数の削減。
特に本候補(3)で上記マルチファンクションを実現した場合は、サーバ側PCIe I/Fデバイス4がSCSIリクエストをストレージコントローラ3へ送信するロジックをファンクション間で共通化できるため、デバイスの小型化又はコスト削減が可能である。
*パリティグループ。それは複数の記憶デバイス(フラッシュメモリデバイス5やHDD6)を用いて定義される。これにより、RAID(Redundant Arrays of Inexpensive Disks)による高信頼化、高速化、大容量化が達成される。
*論理ボリューム。それはパリティグループの記憶領域を分割した領域である。パリティグループの記憶領域はそのままサーバ計算機に提供されるには大容量過ぎる場合があるため、論理ボリュームが存在する。
*プール。それはシンプロビジョニングやティアリングに用いる記憶領域が含まれるグループである。図では論理ボリュームがプールに割り当てられているが、パリティグループや記憶デバイス自体が直接プールに割り当てられてもよい。
*仮想ボリューム。それはプールを用いて定義された、シンプロビジョニング又は/及びティアリングを適用した仮想記憶領域である。なお、以後の説明では論理ボリュームと仮想ボリュームを指し示す用語として「ボリューム」と呼ぶことがある。
*Logical Unit(論理ユニット、以後、LUと呼ぶことがある)。それは仮想ボリューム又は論理ボリュームのうち、サーバ計算機2からのアクセスを許す記憶領域である。Logical UnitはSCSIのLUN(Logical Unit Number)を割り当てられる。
*SCSIリクエストを受信し、解釈し、処理すること。例えば当該SCSIリクエストがリードリクエストであれば、ストレージプログラム320は、フラッシュメモリデバイス5やHDD6等の記憶デバイスからデータをリードし、サーバ計算機2に転送する。なお、その際、ストレージコントローラ3のメインメモリ32をキャッシュメモリとして用いてもよい。例えば当該SCSIリクエストがライトリクエストであればキャッシュメモリにライトデータを格納し、その後記憶デバイスにライトデータをライトする。
*パリティグループに対してRAID処理をすること。
*ストレージコントローラ3により提供される上記記憶領域の定義を行うこと。なお、定義した結果はストレージコントローラ3のメインメモリ32に記憶領域定義情報として格納し、前述のリクエスト処理の際に参照する。
*その他シンプロビジョニング等のエンタープライズ向け機能の処理を行うこと。
(S8110)サーバ計算機2は、前述のプログラムの処理によりNVMeコマンドを送信する。なお、NVMeコマンドはNSIDを含むことで、対象となるNSを指定できる。NVMeコマンドはまた、NSID内のアクセス範囲と、サーバ計算機2のメモリ範囲とを含む。
(S8112)サーバ側PCIe I/Fデバイス4は、NVMeコマンドを受信する。
(S8114)サーバ側PCIe I/Fデバイス4は、受信したNVMeコマンドを解釈し、コマンドに含まれるNSIDを、対応するLUNに変換する。
(S8116)サーバ側PCIe I/Fデバイス4は、変換したLUNを含むSCSIコマンドを生成する。
(S8118)サーバ側PCIe I/Fデバイス4は、生成したSCSIコマンドの送信先となるコントロールユニット36及びCPU31を決定する。
(S8120)サーバ側PCIe I/Fデバイス4は、生成したSCSIコマンドを決定した送信先に送信する。
(S8122、S8124)送信先のコントロールユニット36のCPU31は、SCSIコマンドを受信し、受信したSCSIコマンドを処理する。
(A)サーバ計算機2で実行中のプログラムは、サーバ計算機2のメモリ22に準備したI/OキューにNVMeコマンドを登録し、
(B)サーバ計算機2で実行中のプログラムは、サーバ側PCIe I/Fデバイス4のEP41のNVMeレジスタ空間のI/Oキューのhead pointerをインクリメントし、
(C)サーバ側PCIe I/Fデバイス4は、I/Oキューのhead pointerのインクリメントを検知し、サーバ計算機2のメモリ22のI/OキューからNVMeコマンドをフェッチする。
*サーバ側PCIe I/Fデバイス4は、所定の変換式(ビット演算を含んでもよい)でNSIDからLUNに変換する。なお、サーバ側PCIe I/Fデバイス4は、所定の変換式とペアを成す逆変換式により、LUNからNSIDへも変換できる。所定の変換式のシンプルな例がNSID=LUNである。
*サーバ側PCIe I/Fデバイス4は、NSIDからLUNを得るための変換テーブルをサーバ側PCIe I/Fデバイス4のメモリに格納し、変換の際に参照する。
*コントロールユニット36、又はCPU31の障害の有無。例えば、サーバ側PCIe I/Fデバイス4は送信の結果として得られるコントロールユニット36の状態を記憶し、記憶した状態に基づいて障害が発生していないコントロールユニット36に送信する。
*コントロールユニット36、又はCPU31の障害の負荷。実現形態としては、(A)ストレージコントローラ3又は管理計算機7が、コントロールユニット36又はCPU31の負荷を取得し、各NS宛てのリクエストで生成されたSCSIコマンドの送信先となるコントロールユニット36又はCPU31を決定して各サーバ側PCIe I/Fデバイス4に送信し、(B)決定結果を受信したサーバ側PCIe I/Fデバイス4は決定結果に基づいてSCSIコマンドを送信する。
*ストレージプログラム320にてWWN(World Wide Name)又はWWNから生成されたPort IDや、IPアドレスといったSAN上の通信識別子を用いた制御(アクセス制御や優先度制御等)を行うことができる。
*SANストレージサブシステムとの互換性が維持できる。これはストレージプログラム視点と操作視点の両方の意味がある。
*統合管理サブシステムがサーバ計算機2とストレージコントローラ3間の接続を取得できる。
*EP41に対応する仮想サーバポート(仮想WWNが割り当てられる)。
*EP42に対応する仮想ストレージポート(仮想WWNが割り当てられる)。仮想ストレージポートは、ストレージプログラム320により通常のSANポートと同様に認識され、取り扱われる。
(S01)管理サブシステムは、ストレージポートとボリュームを指定するLogical Unit定義リクエストを受信する。
(S02)指定されたストレージポートが仮想ストレージポートでない場合、管理サブシステムは、SANストレージサブシステムと同様の処理で指定されたストレージポートに対して、指定されたボリュームに対応するLogical Unitを定義する指示を、ストレージコントローラ3に送信する。
(S03)指定されたストレージポートが仮想ストレージポートである場合、管理サブシステムは、指定された仮想ストレージポートに対して、指定されたボリュームに対応するLogical Unitを定義する指示を、ストレージコントローラ3に送信する。
(S03−1)ストレージコントローラ3は、指定された仮想ストレージポートに対応するサーバ側PCIe I/Fデバイス4を選択する。
(S03−2)ストレージコントローラ3は、指定されたボリュームに対応するLogical Unitを定義する(つまりLUNを、指定されたボリュームに割り当てる)。
(S03−3)ストレージコントローラ3は、選択されたサーバ側PCIe I/Fデバイス4に対して、割り当てられたLUNを通知する。なお、サーバ側PCIe I/Fデバイス4は通知されたLUNに対してNSIDを割り当てることでNS化する。なお、この割り当ての処理においてサーバ側PCIe I/Fデバイス4は、NSIDを生成し、NSIDとLUNの変換情報を用いている場合は当該情報の生成・登録を行う。
(S1531、S1532、S1533、S1534)ストレージコントローラ3は、電源ONを検知したらストレージプログラム320を起動し、後述する仮想ボリューム作成処理を行い、Logical Unitへのアクセス受付開始状態となる。
(S1535)ストレージコントローラ3は、サーバ側PCIe I/Fデバイス4へLogical Unit情報(LUN等)を送信する。なお、ここでストレージコントローラ3は、サーバ側PCIe I/Fデバイス4からのリクエストに応じて送信してもよく、主体的に送信してもよい。
(S1521)サーバ計算機2及びサーバ側PCIe I/Fデバイス4は、電源ONを検知する。
(S1542、S1543)サーバ側PCIe I/Fデバイス4は、起動し、ストレージコントローラ3から受信したLogical Unit情報を受信することでLogical Unitを認識する。
(S1544)サーバ側PCIe I/Fデバイス4は、認識したLogical Unitに対応するNS情報(NSID等)を生成し、サーバ計算機2で実行されるプログラムに送信する。なお、ここでサーバ側PCIe I/Fデバイス4はサーバ計算機2のプログラムからのリクエストに応じて送信することが考えられるが、サーバ側PCIe I/Fデバイス4が主体的に送信してもよい。なお、本ステップはデバイス4の起動の一環として行われてもよく、起動後に行われてもよい。
(S1522)サーバ計算機2は、OS227、アプリケーション228等のプログラムを起動し、NSの認識が必要なプログラムはNS情報(NSID等)の受信を待つ。
(S1523)サーバ計算機2においてNSの認識が必要なプログラムは、サーバ側PCIe I/Fデバイス4から、NS情報を受信する。なお、本図が示す通り、S1523の受信を行った時点で、ストレージコントローラ3及びサーバ側PCIe I/Fデバイス4の起動は完了している。なお、本ステップはS1522の起動の一環として行われてもよく、起動後に行われてもよい。
*サーバ側PCIe I/Fデバイス4は、PCIeスイッチ(SW)9に代替された。
*ストレージコントローラ3にストレージ側PCIe I/Fデバイス8が新設された。なお、本デバイス8はサーバ側PCIe I/Fデバイス4と同様であるが、サーバ計算機2の各々に対してEP51を提供することで前述の「複数RCの同居」問題を解決するため、本デバイス8においてサーバ計算機2に接続されるEP51の数は、サーバ計算機2の数以上になる。更に本デバイス8は、ストレージコントローラ3内のRC33に対してEP52を提供する。
*アプリケーションは、一時的に生成するデータを、NVMeをサポートするローカルフラッシュメモリデバイスのNSに格納し、非一時的なデータを、ストレージコントローラにより提供されるLogical Unitに格納する。これによってアプリケーションの高速処理を実現する。
*仮にサーバ計算機(1)が停止した場合、サーバ計算機(2)がアプリケーションの処理を再開する。ただし、サーバ計算機(2)はサーバ計算機(1)によりローカルフラッシュメモリデバイスに格納されたデータを引き継げないため、サーバ計算機(2)はFC経由でLogical Unitからデータを読み込み、処理を再開する。
このような構成によれば、以下のメリットが得られる:
*フラッシュメモリデバイスの保守を集約できる。
*フラッシュメモリデバイスに対してストレージコントローラのエンタープライズ向け機能を用いることにより、信頼性、冗長性、高機能性、保守・管理容易性が向上できる。
(S2110)管理者が管理計算機7に仮想ボリューム作成画面を表示させ、その画面上で仮想ボリュームの作成の指示を入力すると、管理計算機7は、その指示をストレージコントローラ3へ発行する。
(S2120)その後、ストレージコントローラ3は、指示に基づいて、当該仮想ボリュームの仮想ボリューム属性がNVMeであるか否かを判定する。仮想ボリューム属性がNVMeでない、即ち仮想ボリューム属性がSCSIであると判定された場合(SCSI)、ストレージコントローラ3は、処理をS2150へ移行させる。一方、仮想ボリューム属性がNVMeであると判定された場合(NVMe)、ストレージコントローラ3は、処理をS2130へ移行させる。
(S2130)ストレージコントローラ3は、プール管理テーブル353にNVMe用プールのエントリを追加し、指示に基づいてTier毎の論理ボリュームの登録の許可又は禁止を設定する。
(S2140)その後、ストレージコントローラ3は、当該プールを指定して論理ボリュームを登録する論理ボリューム登録処理を行う。
(S2150)その後、ストレージコントローラ3は、仮想ボリューム管理テーブル352に当該プールに関連付けられた仮想ボリュームのエントリを追加し、このフローを終了する。
(S2210)ストレージコントローラ3は、論理ボリューム管理テーブル354を検索し、指定されたプールに適合する論理ボリュームがあるか否かを判定する。ここで適合する論理ボリュームは、予備の論理ボリュームで、且つ指定されたTierに対応する記憶媒体の論理ボリュームである。当該プールに適合する論理ボリュームがあると判定された場合(Yes)、ストレージコントローラ3は処理をS2240へ移行させる。一方、当該プールに適合する論理ボリュームがないと判定された場合(No)、ストレージコントローラ3は処理をS2220へ移行させる。
(S2220)ストレージコントローラ3は、アラートを管理計算機7へ報告することにより、管理者に対し新たな論理ボリュームの追加を促す。
(S2230)その後、ストレージコントローラ3は、当該プールに適合する論理ボリュームが追加されたか否かを判定する。当該プールに適合する論理ボリュームが追加されていないと判定された場合(No)、ストレージコントローラ3は、S2230を繰り返す。一方、当該プールに適合する論理ボリュームが追加されたと判定された場合(Yes)、ストレージコントローラ3は、処理をS2240へ移行させる。
(S2240)ストレージコントローラ3は、当該プールに適合すると判定された論理ボリュームの情報を、論理ボリューム管理テーブルとプール管理テーブルへ追加し、このフローを終了する。ここで、複数の論理ボリュームが当該プールに適合すると判定された場合、ストレージコントローラ3は、これらの複数の論理ボリュームの中から予め定められた番号順に論理ボリュームを選択してもよい。
(S8310)ストレージコントローラ3は、SCSIのWriteコマンドを受信すると、ライトデータの転送要求をサーバ側PCIe I/Fデバイス4へ送信する。その後、サーバ側PCIe I/Fデバイス4は、サーバ計算機2のメモリ22に格納されたライトデータを、ストレージコントローラ3のメモリ32(キャッシュメモリ)へ転送する。
(S8320)その後、ストレージコントローラ3は、LU管理テーブル351を参照し、サーバ側PCIe I/Fデバイス4からのWriteコマンドにより指定されたLUに対応する仮想ボリュームを選択する。その後、ストレージコントローラ3は、マッピング管理テーブル355を参照し、当該仮想ボリューム内でWriteコマンドにより指定されたライト対象の仮想ボリューム論理アドレスにページが割り当てられているか否かを判定する。ライト対象の仮想ボリューム論理アドレスにページが割り当てられていると判定された場合、ストレージコントローラ3は、処理をS8360へ移行させる。一方、ライト対象の仮想ボリューム論理アドレスにページが割り当てられていないと判定された場合、ストレージコントローラ3は、処理をS8330へ移行させる。
(S8330、S8340、S8350)ストレージコントローラ3は、ライト対象の仮想ボリューム論理アドレスへ、当該仮想ボリュームに対応するプールから未使用(新規)ページを割り当てる。その後、ストレージコントローラ3は、割り当てられたページの情報をマッピング管理テーブル355に追加する。その後、ストレージコントローラ3は、プール管理テーブル353における当該プールの割当済容量を当該ページのサイズだけ増加させる。
(S8360)その後、ストレージコントローラ3は、非同期でメモリ32内のライトデータを記憶デバイスへ書き込む非同期デステージを行う。ここで、ストレージコントローラ3は、マッピング管理テーブル355に基づいて、ライト対象に対応するページに対応する記憶デバイス論理アドレスを取得し、その記憶デバイス論理アドレスへ書き込む。
(S8370)その後、ストレージコントローラ3は、プール管理テーブル353に基づいて、当該プールのプール容量に対する割当済容量の割合が枯渇閾値を超えたか否かを判定する。当該割合が枯渇閾値を超えていないと判定された場合、ストレージコントローラ3は、このフローを終了する。一方、当該割合が枯渇閾値を超えたと判定された場合、ストレージコントローラ3は、処理をS8380へ移行させる。
(S8380)ストレージコントローラ3は、当該プールを指定して前述の論理ボリューム登録処理を行い、このフローを終了する。
(S8210、S8220)ストレージコントローラ3は、サーバ側PCIe I/Fデバイス4からのSCSIコマンドに応じた処理を実行し、そのSCSIコマンドに対するSCSI形式の応答をサーバ側PCIe I/Fデバイス4へ送信する。
(S8230、S8240、S8250)その後、サーバ側PCIe I/Fデバイス4は、ストレージコントローラ3からのSCSI形式の応答を受信し、受信された応答をNVMe形式の応答に変換し、変換された応答をサーバ計算機2へ送信する。
(S8260)その後、サーバ計算機2は、サーバ側PCIe I/Fデバイス4からのNVMe形式の応答を受信し、このフローを終了する。
(S8410)ストレージコントローラ3は、LU管理テーブル351に基づいて、Inquiryコマンドにより指定されたLUに対応する仮想ボリュームを特定し、仮想ボリューム管理テーブル352に基づいて、当該Inquiryコマンドにより指定されたLUに対応する仮想ボリューム属性がNVMeであるか否かを判定する。仮想ボリューム属性がNVMeでない、即ち仮想ボリューム属性がSCSIであると判定された場合、ストレージコントローラ3は、処理をS8430へ移行させる。一方、仮想ボリューム属性がNVMeであると判定された場合、ストレージコントローラ3は、処理をS8430へ移行させる。
(S8420)ストレージコントローラ3は、仮想ボリューム管理テーブル352から当該仮想ボリュームの仮想ボリューム容量を取得し、プール管理テーブル353から当該仮想ボリュームに対応するプールのプール容量及び割当済容量を取得し、取得された情報に基づいて、NVMe規格に示された次の応答パラメータを算出する。
NS Size = 仮想ボリューム容量÷LBAサイズ
NS Capacity = プール容量÷LBAサイズ
NS Utilization = 割当済容量÷LBAサイズ
割当済容量が割当済ページ数で表されている場合、ストレージコントローラ3は、割当済ページ数にページサイズを乗じた値を割当済容量として算出する。更にストレージコントローラ3は、当該LUに仮想ボリュームが関連付けられている場合、即ち当該LUにシンプロビジョニングを用いる場合、NS Featuresを1に設定し、当該LUに論理ボリュームが関連付けられている場合、即ち当該LUにシンプロビジョニングを用いない場合、NS Featuresを0に設定する。NVMe規格では、NS Size ≧ NS Capacity ≧ NS Utilizationの関係が定められている。ストレージコントローラ3は、プール容量が仮想ボリューム容量より大きい場合、応答パラメータにおけるNS CapacityをNS Sizeに一致させる。これにより、ストレージコントローラ3は、NVMe規格に準拠した応答パラメータを算出することができる。
(S8430)その後、ストレージコントローラ3は、応答パラメータを用いてSCSIのInquiryコマンドの応答パケットを作成してサーバ側PCIe I/Fデバイス4へ送信し、このフローを終了する。例えば、ストレージコントローラ3は、Inquiryコマンドの応答パケットのフォーマットの空き領域に、NS Size、NS Capacity、NS Utilization、NS Featuresを含める。サーバ側PCIe I/Fデバイス4は、Inquiryの応答パケットをIdentifyの応答パケットに変換してサーバ計算機2へ送信する。これにより、ストレージコントローラ3がNVMeを解釈しない場合であっても、サーバ計算機2はNVMe規格に準拠した応答パケットを受信することができる。
Claims (14)
- 第1サーバ計算機と、
第2サーバ計算機と、
不揮発メモリデバイスと、
前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、
を含み、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイス内の記憶領域を前記仮想記憶領域に割り当て、
前記ストレージコントローラは、前記仮想記憶領域を作成し、前記不揮発メモリデバイスに基づくプールを仮想記憶領域に関連付け、前記仮想記憶領域へ書き込まれるデータの増加に応じて、前記プールの一部を前記仮想記憶領域に割り当て、
前記サーバ計算機が前記namespaceを指定するIdentifyコマンドを発行した場合、前記ストレージコントローラは、前記仮想記憶領域の容量をLBAサイズで除した値を示す第1フィールドと、前記プールの容量をLBAサイズで除した値を示す第2フィールドと、前記プールから前記仮想記憶領域に割り当てられている記憶領域のサイズをLBAサイズで除した値を示す第3フィールドとを含む応答を発行する、
計算機システム。 - 前記ストレージコントローラは、前記仮想記憶領域の作成の指示を受信した場合、前記仮想記憶領域及び前記プールを作成し、前記プールを前記仮想記憶領域に関連付ける、
請求項1に記載の計算機システム。 - 前記ストレージコントローラは、前記プールの容量が前記仮想記憶領域の容量より大きい場合、前記応答内の前記第2フィールドに、前記第1フィールドの値を設定する、
請求項1に記載の計算機システム。 - 第1サーバ計算機と、
第2サーバ計算機と、
不揮発メモリデバイスと、
前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、
を含み、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイス内の記憶領域を前記仮想記憶領域に割り当て、
前記サーバ計算機にPCI-Expressを介して接続されると共に、前記ストレージコントローラにPCI-Expressを介して接続されることにより、前記サーバ計算機と前記ストレージコントローラの間に介在するインターフェースデバイスを更に含み、
前記ストレージコントローラは、SCSIリクエストを解釈し前記SCSIリクエストに基づいて前記不揮発メモリデバイスにアクセスすることにより、前記仮想記憶領域を提供し、
前記インターフェースデバイスは、
前記第1サーバ計算機に含まれるRoot Complex(RC)である第1サーバ側RCに対して第1Endpoint(EP)を提供するロジックと、
前記第2サーバ計算機に含まれるRCである第2サーバ側RCに対して第2EPを提供するロジックと、
前記ストレージコントローラに含まれるRCであるストレージ側RCに対して第3EPを提供するロジックと、
前記サーバ計算機により発行されたNVM-Expressコマンドを解釈し、前記解釈されたNVM-Expressコマンドに基づくSCSIリクエストを前記ストレージコントローラへ発行するロジックと、
前記発行されたSCSIリクエストに応じて前記ストレージコントローラにより発行されたSCSI応答を解釈し、前記SCSI応答に基づくNVMe応答を前記サーバ計算機へ発行するロジックと、
を含む、
計算機システム。 - 前記ストレージコントローラは、前記仮想記憶領域である仮想ボリューム及び仮想ストレージポートを論理ユニットに関連付け、前記論理ユニットを前記namespaceに割り当てる、
請求項4に記載の計算機システム。 - 前記プログラムは、SCSIリクエストを発行することを、前記サーバ計算機に実行させ、
前記インターフェースデバイスは更に、前記サーバ計算機により発行されたSCSIリクエストを解釈し前記サーバ計算機により発行されたSCSIリクエストに基づくSCSIリクエストを前記ストレージコントローラへ発行するロジックを含む、
請求項4に記載の計算機システム。 - 第1サーバ計算機と、
第2サーバ計算機と、
不揮発メモリデバイスと、
前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、
を含み、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイス内の記憶領域を前記仮想記憶領域に割り当て、
前記不揮発メモリデバイスを含み、互いに特性が異なる複数の記憶デバイスを備え、
前記ストレージコントローラは、前記複数の記憶デバイスに接続され、前記アクセスに基づいて、前記仮想記憶領域へ書き込まれるデータを前記複数の記憶デバイスの何れかに配置する、
計算機システム。 - 第1サーバ計算機と、
第2サーバ計算機と、
互いに特性が異なる複数の記憶デバイスと、
前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記複数の記憶デバイスに接続されるストレージコントローラと、
を含み、
前記複数の記憶デバイスの一つは不揮発メモリデバイスであり、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される第1共有記憶領域及び第2共有記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行する第1プログラムと、前記NVM-Express規格と異なる特定規格に準拠するコマンドである特定規格コマンドを発行する第2プログラムとを格納し、
前記第1プログラムは、前記第1共有記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記第1共有記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記第2プログラムは、前記第2共有記憶領域を指定する特定規格コマンドを発行することによりPCI-Expressを介して前記第2共有記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記NVM-Expressコマンドによるアクセスに基づいて、前記第1共有記憶領域へ書き込まれるデータを前記不揮発メモリデバイスへ配置し、
前記ストレージコントローラは、前記特定規格コマンドによるアクセスに基づいて、前記第2共有記憶領域へ書き込まれるデータを前記複数の記憶デバイスの何れかへ配置する、
計算機システム。 - 第1サーバ計算機と、
第2サーバ計算機と、
不揮発メモリデバイスと、
前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、
を含み、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイスの記憶領域に基づくプールを前記仮想記憶領域に割り当て、
前記サーバ計算機は、前記NVM-Expressコマンドによるアクセスを含む複数の種類のアクセスが可能であり、前記プールは、前記アクセスの種類が規定されて作成されている、
計算機システム。 - 第1サーバ計算機と、第2サーバ計算機と、不揮発メモリデバイスと、前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、を含む計算機システムによる処理方法であって、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイス内の記憶領域を前記仮想記憶領域に割り当て、
前記ストレージコントローラは、前記仮想記憶領域を作成し、前記不揮発メモリデバイスに基づくプールを仮想記憶領域に関連付け、前記仮想記憶領域へ書き込まれるデータの増加に応じて、前記プールの一部を前記仮想記憶領域に割り当て、
前記サーバ計算機が前記namespaceを指定するIdentifyコマンドを発行した場合、前記ストレージコントローラは、前記仮想記憶領域の容量をLBAサイズで除した値を示す第1フィールドと、前記プールの容量をLBAサイズで除した値を示す第2フィールドと、前記プールから前記仮想記憶領域に割り当てられている記憶領域のサイズをLBAサイズで除した値を示す第3フィールドとを含む応答を発行する、
処理方法。 - 第1サーバ計算機と、第2サーバ計算機と、不揮発メモリデバイスと、前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、を含む、計算機システムによる処理方法であって、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイス内の記憶領域を前記仮想記憶領域に割り当て、
前記計算機システムは、前記サーバ計算機にPCI-Expressを介して接続されると共に、前記ストレージコントローラにPCI-Expressを介して接続されることにより、前記サーバ計算機と前記ストレージコントローラの間に介在するインターフェースデバイスを更に含み、
前記ストレージコントローラは、SCSIリクエストを解釈し前記SCSIリクエストに基づいて前記不揮発メモリデバイスにアクセスすることにより、前記仮想記憶領域を提供し、
前記インターフェースデバイスは、
前記第1サーバ計算機に含まれるRoot Complex(RC)である第1サーバ側RCに対して第1Endpoint(EP)を提供し、
前記第2サーバ計算機に含まれるRCである第2サーバ側RCに対して第2EPを提供し、
前記ストレージコントローラに含まれるRCであるストレージ側RCに対して第3EPを提供し、
前記サーバ計算機により発行されたNVM-Expressコマンドを解釈し、前記解釈されたNVM-Expressコマンドに基づくSCSIリクエストを前記ストレージコントローラへ発行し、
前記発行されたSCSIリクエストに応じて前記ストレージコントローラにより発行されたSCSI応答を解釈し、前記SCSI応答に基づくNVMe応答を前記サーバ計算機へ発行する、
処理方法。 - 第1サーバ計算機と、第2サーバ計算機と、不揮発メモリデバイスと、前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、を含む計算機システムによる処理方法であって、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイス内の記憶領域を前記仮想記憶領域に割り当て、
前記計算機システムは、前記不揮発メモリデバイスを含み、互いに特性が異なる複数の記憶デバイスを備え、
前記ストレージコントローラは、前記複数の記憶デバイスに接続され、前記アクセスに基づいて、前記仮想記憶領域へ書き込まれるデータを前記複数の記憶デバイスの何れかに配置する、
処理方法。 - 第1サーバ計算機と、第2サーバ計算機と、互いに特性が異なる複数の記憶デバイスと、前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記複数の記憶デバイスに接続されるストレージコントローラと、を含む計算機システムによる処理方法であって、
前記複数の記憶デバイスの一つは不揮発メモリデバイスであり、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される第1共有記憶領域及び第2共有記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行する第1プログラムと、前記NVM-Express規格と異なる特定規格に準拠するコマンドである特定規格コマンドを発行する第2プログラムとを格納し、
前記第1プログラムは、前記第1共有記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記第1共有記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記第2プログラムは、前記第2共有記憶領域を指定する特定規格コマンドを発行することによりPCI-Expressを介して前記第2共有記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記NVM-Expressコマンドによるアクセスに基づいて、前記第1共有記憶領域へ書き込まれるデータを前記不揮発メモリデバイスへ配置し、
前記ストレージコントローラは、前記特定規格コマンドによるアクセスに基づいて、前記第2共有記憶領域へ書き込まれるデータを前記複数の記憶デバイスの何れかへ配置する、
処理方法。 - 第1サーバ計算機と、第2サーバ計算機と、不揮発メモリデバイスと、前記第1サーバ計算機及び前記第2サーバ計算機にPCI-Expressを介して接続され、前記不揮発メモリデバイスに接続されるストレージコントローラと、を含む計算機システムによる処理方法であって、
前記ストレージコントローラは、前記第1サーバ計算機及び前記第2サーバ計算機により共有される仮想記憶領域を提供し、
前記第1サーバ計算機及び前記第2サーバ計算機の夫々であるサーバ計算機は、NVM-Express規格に準拠するコマンドであるNVM-Expressコマンドを発行するプログラムを格納し、
前記プログラムは、前記仮想記憶領域に関連付けられたnamespaceを指定するNVM-Expressコマンドを発行することによりPCI-Expressを介して前記仮想記憶領域にアクセスすることを、前記サーバ計算機に実行させ、
前記ストレージコントローラは、前記アクセスに基づいて、前記不揮発メモリデバイスの記憶領域に基づくプールを前記仮想記憶領域に割り当て、
前記サーバ計算機は、前記NVM-Expressコマンドによるアクセスを含む複数の種類のアクセスが可能であり、前記プールは、前記アクセスの種類が規定されて作成されている、
処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/066419 WO2015194033A1 (ja) | 2014-06-20 | 2014-06-20 | 計算機システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018020807A Division JP2018101440A (ja) | 2018-02-08 | 2018-02-08 | 計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2015194033A1 JPWO2015194033A1 (ja) | 2017-04-20 |
JP6286542B2 true JP6286542B2 (ja) | 2018-02-28 |
Family
ID=54935062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016528751A Expired - Fee Related JP6286542B2 (ja) | 2014-06-20 | 2014-06-20 | 計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170102874A1 (ja) |
JP (1) | JP6286542B2 (ja) |
WO (1) | WO2015194033A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9823849B2 (en) | 2015-06-26 | 2017-11-21 | Intel Corporation | Method and apparatus for dynamically allocating storage resources to compute nodes |
US10235102B2 (en) * | 2015-11-01 | 2019-03-19 | Sandisk Technologies Llc | Methods, systems and computer readable media for submission queue pointer management |
US10206297B2 (en) * | 2015-11-23 | 2019-02-12 | Liqid Inc. | Meshed architecture rackmount storage assembly |
US10049053B1 (en) * | 2015-12-31 | 2018-08-14 | EMC IP Holding Company LLC | Classifying performance of an external storage resource pool associated with a performance tier in a federated tiered storage system for overload avoidance and auto-tiering |
US10204057B2 (en) * | 2016-08-09 | 2019-02-12 | Atmel Corporation | Memory emulation mechanism |
US10534541B2 (en) * | 2016-09-20 | 2020-01-14 | Seagate Technology Llc | Asynchronous discovery of initiators and targets in a storage fabric |
JP6253752B1 (ja) | 2016-11-29 | 2017-12-27 | 株式会社東芝 | 階層化ストレージシステム |
JP6763543B2 (ja) * | 2016-12-16 | 2020-09-30 | 日本電気株式会社 | 管理装置、管理システム、管理装置の制御方法及びプログラム |
JP6783645B2 (ja) | 2016-12-21 | 2020-11-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10771340B2 (en) * | 2017-03-16 | 2020-09-08 | Samsung Electronics Co., Ltd. | Automatic ethernet storage discovery in hyperscale datacenter environment |
US10545664B2 (en) | 2017-04-11 | 2020-01-28 | Samsung Electronics Co., Ltd. | System and method for identifying SSDs with lowest tail latencies |
CN109324753B (zh) * | 2017-07-31 | 2023-10-31 | 北京忆恒创源科技股份有限公司 | 虚拟lun管理 |
JP2019057121A (ja) | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム、メモリシステムの制御方法、及びコントローラ回路 |
US10768820B2 (en) * | 2017-11-16 | 2020-09-08 | Samsung Electronics Co., Ltd. | On-demand storage provisioning using distributed and virtual namespace management |
US11934322B1 (en) * | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US10558376B2 (en) * | 2018-06-28 | 2020-02-11 | Western Digital Technologies, Inc. | Storage system and method for namespace reservation in a multi-queue single-controller environment |
US11509606B2 (en) * | 2018-06-29 | 2022-11-22 | Intel Corporation | Offload of storage node scale-out management to a smart network interface controller |
CN109062184B (zh) * | 2018-08-10 | 2021-05-14 | 中国船舶重工集团公司第七一九研究所 | 双机应急救援设备、故障切换方法和救援系统 |
CN111190844A (zh) * | 2019-12-31 | 2020-05-22 | 杭州华澜微电子股份有限公司 | 一种协议转化方法及电子设备 |
US11650937B2 (en) | 2019-12-31 | 2023-05-16 | Western Digital Technologies, Inc. | Storage system and method for secure host controller memory buffer access |
JP7429214B2 (ja) * | 2021-10-07 | 2024-02-07 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおけるデータ複製方法 |
US20230305875A1 (en) * | 2022-03-25 | 2023-09-28 | Red Hat, Inc. | Virtual networking for special types of nested virtual machines |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027291A (ja) * | 2006-07-24 | 2008-02-07 | Hitachi Ltd | ストレージ装置及びデータ保護方法 |
JP4975396B2 (ja) * | 2006-08-24 | 2012-07-11 | 株式会社日立製作所 | 記憶制御装置及び記憶制御方法 |
US20120110259A1 (en) * | 2010-10-27 | 2012-05-03 | Enmotus Inc. | Tiered data storage system with data management and method of operation thereof |
US8683162B2 (en) * | 2011-06-08 | 2014-03-25 | Hitachi, Ltd. | Computer system and method of managing storage system monitoring access performance for risky pool detection |
US8966172B2 (en) * | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
US20140195634A1 (en) * | 2013-01-10 | 2014-07-10 | Broadcom Corporation | System and Method for Multiservice Input/Output |
US9003071B2 (en) * | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9009397B1 (en) * | 2013-09-27 | 2015-04-14 | Avalanche Technology, Inc. | Storage processor managing solid state disk array |
US20150095555A1 (en) * | 2013-09-27 | 2015-04-02 | Avalanche Technology, Inc. | Method of thin provisioning in a solid state disk array |
US9298648B2 (en) * | 2013-05-08 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte Ltd | Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch |
US9430412B2 (en) * | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
-
2014
- 2014-06-20 JP JP2016528751A patent/JP6286542B2/ja not_active Expired - Fee Related
- 2014-06-20 WO PCT/JP2014/066419 patent/WO2015194033A1/ja active Application Filing
- 2014-06-20 US US15/125,204 patent/US20170102874A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2015194033A1 (ja) | 2015-12-23 |
US20170102874A1 (en) | 2017-04-13 |
JPWO2015194033A1 (ja) | 2017-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6286542B2 (ja) | 計算機システム | |
JP6273353B2 (ja) | 計算機システム | |
US11314543B2 (en) | Architecture for implementing a virtualization environment and appliance | |
US9606745B2 (en) | Storage system and method for allocating resource | |
US9990313B2 (en) | Storage apparatus and interface apparatus | |
EP1837751B1 (en) | Storage system, storage extent release method and storage apparatus | |
US8578178B2 (en) | Storage system and its management method | |
KR20200017363A (ko) | 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭 | |
US20130290541A1 (en) | Resource management system and resource managing method | |
US7555600B2 (en) | Storage apparatus and configuration setting method | |
JP6068676B2 (ja) | 計算機システム及び計算機システムの制御方法 | |
US8286163B2 (en) | Coupling between server and storage apparatus using detected I/O adaptor and allowing application execution based on access group and port connection group in virtualized environment | |
US10346065B2 (en) | Method for performing hot-swap of a storage device in a virtualization environment | |
JP5996098B2 (ja) | ストレージデバイスの高速アクセス及びデータ保護を実現する計算機、計算機システム、及びi/o要求処理方法 | |
US8799573B2 (en) | Storage system and its logical unit management method | |
EP2696275A2 (en) | I/o device and storage management system | |
US9239681B2 (en) | Storage subsystem and method for controlling the storage subsystem | |
JP2006227856A (ja) | アクセス制御装置及びそれに搭載されるインターフェース | |
US20190213147A1 (en) | Storage system and mapping method | |
JP2018101440A (ja) | 計算機システム | |
WO2016139749A1 (ja) | 計算機システム、及び、記憶制御方法 | |
US11201788B2 (en) | Distributed computing system and resource allocation method | |
JP6516875B2 (ja) | 統合プラットフォーム、サーバ、及び、フェイルオーバ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170908 |
|
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: 20180109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6286542 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |