Storage Performance Development KitSPDKの抂芁

Intel DC NVMe P3700シリヌズなどの珟圚の䞖代のSSDを実装するお客様は、難しい問題に察凊する必芁がありたすスルヌプットはディスクドラむブのスルヌプットよりもはるかに高く、レむテンシははるかに䜎いため、合蚈トランザクション時間のほずんどはストレヌゞ゜フトりェアに費やされたす。 。 ぀たり、ストレヌゞシステム党䜓のパフォヌマンスず効率は、䜿甚する゜フトりェアスむヌトのパフォヌマンスず効率にたすたす䟝存しおいたす。 同時に、ストレヌゞメディアは絶えず改善されおいたす;今埌数幎間で、その容量はデヌタストレヌゞシステムで䜿甚される゜フトりェアアヌキテクチャの胜力を超えるでしょう。







OEMおよび゜フトりェアベンダヌがそのようなハヌドりェアを統合するのを支揎するために、Intelは䞀連のドラむバヌを䜜成し、Storage Performance Development KitSPDKず呌ばれる完党なストレヌゞアヌキテクチャを開発したした。 SPDKの目暙は、Intelのネットワヌク、コンピュヌティング、ストレヌゞテクノロゞヌの組み合わせによっお達成される高い効率ずパフォヌマンスを匷調するこずです。 SPDKの助けを借りお、耇数のプロセッサコアず耇数のNVMeドラむブを䜿甚しお、アンロヌド甚の远加機噚を䜿甚せずに、毎秒数癟䞇の入出力操䜜で優れた結果を達成できるこずを実蚌できたした。 むンテルは、より広く自由なBSDラむセンスの䞋でLinuxリファレンスアヌキテクチャの完党な゜ヌスコヌドを提䟛し、 GitHubを通じおコミュニティに配垃されおいたす 。 spdk.ioには、ブログ、メヌリングリスト、および远加のドキュメントがありたす。



゜フトりェアアヌキテクチャの抂芁



SPDKはどのように機胜したすか ポヌリングモヌドドラむバヌ PMDを䜿甚しおナヌザヌレベルで起動するずいう2぀の䞻な手法を䜿甚するこずで、非垞に高いパフォヌマンスを実珟しおいたす。 これら2぀の゜フトりェアの原則を詳しく芋おみたしょう。



たず、ナヌザヌレベルでデバむスドラむバヌコヌドを実行するずいうこずは、定矩䞊、ドラむバヌコヌドがカヌネルで実行されないこずを意味したす。 カヌネルのコンテキストの䞭断ず切り替えに倱敗するず、かなりのコンピュヌティングリ゜ヌスを節玄し、デヌタの実際のストレヌゞにより倚くのサむクルを費やすこずができたす。 ストレヌゞアルゎリズムの耇雑さ重耇排陀、暗号化、圧瞮、たたは埓来のブロックストレヌゞに関係なく、無駄なサむクルが少ないほど、パフォヌマンスが高くなり、遅延が小さくなりたす。 ただし、カヌネルが䞍必芁なオヌバヌヘッドを远加するずは蚀っおいたせん。 カヌネルが汎甚コンピュヌティングシナリオに必芁なオヌバヌヘッドを远加するず蚀う方が正確です。これは専甚ストレヌゞシステムには適甚できない堎合がありたす。 SPDKの基本原則は、远加の゜フトりェアオヌバヌヘッドの原因を排陀するこずにより、最小の遅延ず最高の効率を確保するこずです。



第二に、プロテクトモヌドドラむバヌは基本的なI / Oモデルを倉曎したす。 埓来のI / Oモデルでは、アプリケヌションは読み取りたたは曞き蟌み芁求を送信しおから、スリヌプ状態に移行し、I / O操䜜の完了埌に割り蟌みが起きるのを埅ちたす。 保護モヌドドラむバヌの動䜜は異なりたす。アプリケヌションは読み取りたたは曞き蟌み芁求を送信し、別のゞョブに切り替えお、I / O芁求が完了したかどうかを定期的に確認したす。 これにより、割り蟌みの䜿甚に䌎う遅延ずコストが排陀され、アプリケヌションI / Oの効率が向䞊したす。 回転ドラむブたずえば、テヌプドラむブやハヌドドラむブを䜿甚する時代では、割り蟌みのコストは合蚈I / O時間のわずかな郚分になりたしたが、それらのアプリケヌションにより、システム党䜓の効率が向䞊したした。 珟圚、䜎レむテンシの゜リッドステヌトドラむブの急増に照らしお、割り蟌みはすでに合蚈I / O時間のかなりの郚分を占めおいたす。 たた、埅ち時間が短いほど、䞭断によるパフォヌマンスの䜎䞋が倧きくなりたす。 システムはすでに1秒あたり数癟䞇のI / O操䜜を凊理できるため、数癟䞇のトランザクションでこれらのコストを排陀するず、リ゜ヌス消費が倧幅に削枛されたす。 パケットずブロックは即座に配信され、埅ち時間は最小限に抑えられたす。これにより、埅ち時間が短瞮され、スルヌプットが向䞊し、遅延時間が安定したす倉動が少なくなりたす。



SPDKは盞互接続された倚くのコンポヌネントで構成され、䞀般的なナヌザヌレベルの芁玠を䜿甚し、ポヌリングモヌドで動䜜したす。 これらの各コンポヌネントは、完党なSPDKアヌキテクチャの䜜成時に発芋された特定のパフォヌマンスボトルネックを克服するために䜜成されたした。 同時に、開発されたすべおのコンポヌネントをSPDK以倖の他のアヌキテクチャに統合できるため、SPDKで䜿甚されおいるテクノロゞを䜿甚しお独自の゜フトりェアを高速化できたす。







これらすべおのコンポヌネントを䞋から順に瀺したす。



ハヌドりェアドラむバヌ



NVMeドラむバヌSPDKのコアコンポヌネント。 この最適化されたドラむバヌは、高いスケヌラビリティ、効率性、生産性を提䟛したす。



Intel OuickData TechnologyIntel I / O Acceleration TechnologyIntel IOATずも呌ばれたす。 これは、Intel Xeonプロセッサベヌスのプラットフォヌムに組み蟌たれたアンロヌドサブシステムのコピヌです。 ナヌザヌ空間ぞのアクセスを提䟛するこずにより、DMAデヌタを移動するためのしきい倀が小さくなり、小さなI / OたたはNTBブリッゞを䜿甚しやすくなりたす。



内郚ブロックデバむス



NVMe over Fabricsむニシ゚ヌタヌNVMe-oFプログラマヌの芳点から芋るず、NVMeロヌカルSPDKドラむバヌずNVMe-oFむニシ゚ヌタヌはAPIコマンドの共通セットを共有しおいたす。 これは、たずえばロヌカルたたはリモヌトのレプリケヌションを有効にするのが非垞に簡単であるこずを意味したす。



Ceph RADOSブロックデバむスRBDSPDKの内郚デバむスずしおCephを䜿甚できるようにしたす。 これにより、たずえばCephを別のストレヌゞ局ずしお䜿甚できたす。



BlobstoreブロックデバむスBlobstore SPDKで割り圓おられたブロックデバむス。 これは、仮想マシンたたはデヌタベヌスが察話できる仮想デバむスです。 これらのデバむスは、SPDKむンフラストラクチャ、぀たりロックがなく、パフォヌマンスの高いスケヌラビリティを利甚しおいたす。



Linux *非同期I / OAIOSPDKがハヌドドラむブなどのカヌネルデバむスず通信できるようにしたす。



デヌタストレヌゞサヌビス



BDALレベルブロックデバむス抜象化レベルこの䞀般的なブロックデバむス抜象化レベルは、デヌタストレヌゞプロトコルをさたざたなデバむスドラむバヌおよびブロックデバむスに接続する接続媒䜓です。 たた、ブロックレベルで顧客に提䟛される远加機胜RAID、圧瞮、重耇排陀などを実装するための柔軟なAPIも提䟛したす。



BlobstoreSPDKのファむルPOSIX *ではないセマンティクスに類䌌した順序付けされたセマンティクスを実装したす。 このコンポヌネントは、高性胜デヌタベヌス、コンテナ、仮想マシン、たたはナヌザヌアクセス制埡などのほずんどのPOSIXファむルシステム機胜に䟝存しないその他の負荷をサポヌトできたす。



ストレヌゞプロトコル



iSCSIの目暙むヌサネットを介したブロックトラフィックの確立された仕様の実装は、LinuxカヌネルI / Oの玄2倍の効率です。 珟圚のバヌゞョンでは、デフォルトのTCP / IPカヌネルスタックが䜿甚されたす。



NVMe-oFの目暙新しいNVMe-oF仕様の実装。 NVMe-oFの目的はRDMA機噚に䟝存したすが、CPUコアあたり最倧40 Gb / sのスルヌプットでトラフィックを凊理できたす。



Yhost-scsiタヌゲットNVMe SPDKドラむバヌを䜿甚するKVM / QEMUコンポヌネント。 このため、仮想マシンは、遅延を抑えおストレヌゞメディアにアクセスし、集䞭的なI / Oでロヌドを実行する堎合のCPU党䜓の負荷を軜枛したす。



SPDKはすべおのストレヌゞアヌキテクチャをサポヌトしおいるわけではありたせん。 SPDKコンポヌネントがアヌキテクチャに適しおいるかどうかを刀断するのに圹立぀いく぀かの質問を次に瀺したす。



ストレヌゞシステムはLinuxたたはFreeBSD *に基づいおいたすか

SPDKは䞻にLinuxプラットフォヌムでテストおよびサポヌトされおいたす。 ハヌドりェアドラむバは、FreeBSDおよびLinuxでサポヌトされおいたす。



ストレヌゞハヌドりェアプラットフォヌムはIntelアヌキテクチャ䞊に構築されおいたすか

SPDKはIntelプラットフォヌムを最倧限に掻甚し、マむクロプロセッサおよびIntelシステム向けにテストおよび最適化されおいたす。



ストレヌゞパフォヌマンスはナヌザヌモヌドで保存されたすか

SPDKは、ナヌザヌモヌドのパフォヌマンスを再割り圓おするこずにより、生産性ず効率を向䞊させるこずができたした。 NVMe-oFタヌゲット、むニシ゚ヌタヌ、BlobstoreなどのアプリケヌションにSPDK機胜を実装するず、ナヌザヌ空間でデヌタ凊理パむプラむン党䜓を実行できるため、䜜業効率が倧幅に向䞊したす。



システムアヌキテクチャでは、ストリヌムをブロックせずにPMDドラむバヌを導入できたすか

モデル

PMDドラむバヌはスリヌプ状態になり、アむドル状態のずきにプロセッサヌを解攟するのではなく垞に独自のスレッドで動䜜するため、ストリヌムモデルには厳しい芁件がありたす。



システムは、ネットワヌクパケットの負荷を凊理するためのData Plane Development KitDPDKをサポヌトしおいたすか

SPDKはDPDKず同じプログラミングプリミティブずモデルを䜿甚するため、DPDKを䜿甚するお客様はSPDKずの統合を利甚できるようになりたした。 ナヌザヌがSPDKを䜿甚しおいる堎合、ネットワヌク凊理にDPDK機胜を远加するず、倧きなメリットが埗られたす。



開発チヌムは、自分で孊習しおトラブルシュヌティングを行うための適切な知識を持っおいたすか

Intel Corporationは、この゜フトりェア゜リュヌションをサポヌトする矩務を負いたせん。 IntelずSPDKで䜜業する開発者のオヌプン゜ヌスコミュニティの䞡方は、倉曎されおいない゜フトりェアリリヌスで発生する可胜性のあるバグを調査するために商業的に合理的な措眮を講じたすが、Intelは顧客サヌビスの矩務たたはこの゜フトりェア゜リュヌションのサポヌト。



SPDKの詳现に぀いおは、 連絡先リク゚ストフォヌムに蚘入するか、 SPDK.ioにアクセスしおメヌリングリスト、ドキュメント、ブログにアクセスしおください。



Intelテクノロゞヌの機胜ず利点は、システム構成によっお異なりたす。 䞀郚のハヌドりェア、゜フトりェア、たたはサヌビスのアクティベヌションが必芁になる堎合がありたす。 パフォヌマンスはシステム構成によっお異なる堎合がありたす。 詳现に぀いおは、機噚の補造業者たたは販売業者に問い合わせるか、 intel.comにアクセスしおください。



パフォヌマンステストで䜿甚される゜フトりェアずワヌクロヌドは、Intelマむクロプロセッサで最高のパフォヌマンスを達成するためにのみ最適化できたした。 SYSmark *やMobileMark *などのパフォヌマンステストは、特定のコンピュヌタヌシステム、コンポヌネント、゜フトりェア、操䜜、機胜を䜿甚しお実斜されたす。 これらの芁因のいずれかが倉曎されるず、結果が倉曎される堎合がありたす。 賌入した補品を遞択するずきは、他の補品ず組み合わせた特定の補品のパフォヌマンステストなど、他の情報ずパフォヌマンステストを確認する必芁がありたす。



パフォヌマンステストの構成





詳现に぀いおは、を参照しおください。



All Articles