Zhihui Huayun: カーネルバイパス技術の紹介と Ceph でのその応用

Zhihui Huayun: カーネルバイパス技術の紹介と Ceph でのその応用

クラウドコンピューティング事業の急速な発展に伴い、国内外のクラウドコンピューティング企業間の特許紛争はますます激しくなっています。クラウド コンピューティングなどの技術分野では、特許保有量が企業の究極の技術力を表すことがよくあります。今回の Huayun Data の「Smart Huayun」コラムでは、カーネルバイパス技術と Ceph でのその応用を分析し、クラウドコンピューティング分野の最新の技術とソリューションを皆様と共有します。

背景

Ceph は現在、ブロック ストレージ、オブジェクト ストレージ、ファイル ストレージを単一のインフラストラクチャでサポートする、最も先進的なオープン ソースの分散統合ストレージです。 PB レベルのスケーラビリティをサポートし、クラウド環境で広く使用されています。 Ceph は、Sage Weil 博士によるストレージ システムに関する博士研究プロジェクトから生まれました。もともとは分散ファイルシステムとして設計されました。全体的なアーキテクチャは低速デバイス上に構築されており、ミリ秒 (ms) レベルの IO レイテンシを提供します。

1956 年に最初の機械式ハードディスク (HDD) が誕生して以来、ストレージ メディアの容量とパフォーマンスは大きく進歩しました。特に、2011 年頃にソリッド ステート ドライブ (SSD) が登場して以来、IOPS は飛躍的に増加し、IO レイテンシはミリ秒 (ms) からマイクロ秒 (us) にまで 1,000 倍以上も短縮されました。同時に、ネットワークの伝送速度も10年前の100Mbpsから現在の100Gbpsへと1,000倍に増加しました。

ハードウェア性能の急速な向上に伴い、従来のソフトウェア実装とアーキテクチャがソフトウェア システムの改善における主なボトルネックとなっています。データによると、すべての NVMe ソリッド ステート メディアの構成では、Ceph クラスターのパフォーマンスはハードウェア制限のパフォーマンスの約 40% にすぎません。そのため、高性能なメディアを最大限に活用するためには、既存のソフトウェアを再構築する必要があります。

カーネルバイパス技術

ハードウェア性能の向上に伴い、カーネル内のネットワーク スタックとストレージ スタックによってもたらされるパフォーマンスのボトルネックがますます顕著になってきています。 IO パスを短縮し、従来の IO スタック上の NVMe SSD のパフォーマンス問題を解決するために、Linux カーネルは 4.x 以降、新しい NVMe IO スタックを導入しました。次の図に示すように、新しい IO サブシステムは、従来の一般的なブロック層と SCSI サブシステムを完全に廃止します。

カーネル バイパスは、システム ネットワーク スタックとストレージ スタックのパフォーマンスのボトルネックを解決するもう 1 つの方法です。従来の割り込みメカニズムとは異なり、カーネルバイパスの核となる考え方は、カーネルは制御フローの処理にのみ使用され、すべてのデータフロー関連操作はユーザー状態で処理されることです。これにより、カーネルのパケットコピー、スレッドスケジューリング、システムコール、割り込みなどのパフォーマンスボトルネックを回避し、さまざまなパフォーマンスチューニング方法(CPUピン、ロックフリーキューなど)を補完して、より高いパフォーマンスを実現します。市場には、DPDK、NETMAP、SPDK、PF_RING、RDMA など、同様のテクノロジが多数存在します。その中でも、DPDK はカーネル スケジューリングからより完全に分離されており、コミュニティによるサポートが活発であるため、より広く使用されています。以下は、DPDK、SPDK、RDMA の技術原理の簡単な紹介です。

DPDK (データ プレーン開発キット) は Intel によって開始され、主に Linux システム上で実行されます。これは、高速データ パケット処理用の関数ライブラリとドライバーのコレクションであり、データ処理のパフォーマンスとスループットを大幅に向上させ、データ プレーン アプリケーションの作業効率を向上させることができます。 DPDK は、パケットを処理するために割り込みではなくポーリングを使用します。データ パケットを受信すると、DPDK によってオーバーロードされたネットワーク カード ドライバーは、割り込みを通じて CPU に通知するのではなく、データ パケットをメモリに直接保存し、DPDK によって提供されるインターフェイスを通じてアプリケーション層ソフトウェアに直接渡すことで直接処理するため、CPU 割り込み時間とメモリ コピー時間が大幅に節約されます。

SPDK (ストレージ パフォーマンス開発キット) は Intel によって開始され、NVMe SSD をバックエンド ストレージとして使用するアプリケーション ソフトウェアを高速化するために使用されます。このソフトウェア ライブラリの中核は、ユーザー モードの非同期ポーリング NVMe ドライバーです。カーネルモードの NVMe ドライバーと比較すると、単一の CPU コアの IOPS を増加させながら、レイテンシを大幅に削減できます。そのアーキテクチャは次のとおりです。

RDMA (Remote Direct Memory Access) は、リモート ダイレクト データ アクセスの略で、ネットワーク転送中のサーバー側データ処理の遅延を解決するために作成されました。 RDMA は、ネットワーク経由でデータをコンピューターのストレージ領域に直接転送し、オペレーティング システムに影響を与えることなく、あるシステムからリモート システムのメモリにデータをすばやく移動します。これにより、必要なコンピューターの処理能力が少なくなります。外部メモリのコピーとコンテキストスイッチのオーバーヘッドが排除され、メモリ帯域幅と CPU サイクルが解放され、アプリケーションのパフォーマンスが向上します。次の図は、従来のモードと RDMA モードの違いを直感的に示しています。

Ceph BlueStore における SPDK テクノロジーの応用

まず、Intelのパフォーマンステストデータを見てみましょう: ユーザーモードNVMeドライバー VS カーネルモードNVMeドライバー

上記の比較データから、SPDK の優れたパフォーマンスと可能性がわかります。 Ceph OSD バックエンド IO を高速化することで Ceph のパフォーマンスを向上できると考えるのは自然なことです。具体的なアプローチとしては、カーネル ドライバーの代わりに SPDK のユーザー モード NVMe ドライバーを使用することです。 bluestore のアーキテクチャは次のとおりです。

上記の図から、次の情報が得られます。

1. RAWデバイスを使用して、ブロックデバイスに直接データを書き込むことで、ファイルシステムの影響を排除します。

2. メタデータデータベースRocksDBを運ぶために、ベアデバイス上に軽量のBluefsファイルシステムを構築する

3. プラグイン ブロック アロケータのサポート (現在は StupidAllocator と BitmapAllocator をサポート)

4. プラグイン ブロック デバイス ドライバーのサポート (現在はカーネル ドライバーのみサポート)

したがって、新しいブロック デバイス ドライバーをサポートするには、新しいデバイス タイプ (Type) を追加し、対応するドライバー (Driver) を実装するだけで済みます。

Ceph における DPDK/RDMA テクノロジーの応用

DPDK/RDMA のアプリケーションについて説明する前に、Ceph でよく使用される 2 つのネットワーク モジュール (Messenger) について見てみましょう。

1. シンプルメッセンジャー

SimpleMessenger は、Ceph でサポートされている最も初期のネットワーク モジュールの 1 つです。名前が示すように、その実装は比較的単純です。スレッドを使用してサービス ポートをリッスンし、クライアント接続を受信します。それぞれの新しい接続はパイプに関連付けられ、2 つのポート間のパイプのような機能を実装します。パイプ内には、このパイプに関連するメッセージの受信とリクエストの送信を処理する読み取りおよび書き込みスレッドがあります。 SimpleMessenger は、共有キューを通じて受信したメッセージを各接続に配布します。メッセージとリクエストを処理するには、各接続を読み取りスレッドと書き込みスレッドのペアに関連付ける必要があるため、接続数と同時実行性が増加すると、大量のスレッドが生成され、スレッド コンテキストの切り替えと TCP/IP オーバーヘッドも指数関数的に増加し、メッセージとリクエストの処理パフォーマンスに重大な影響を与えることは明らかです。

2.非同期メッセンジャー

SimpleMessenger での多数のスレッド コンテキスト スイッチによって発生するオーバーヘッドを解決するために、AsyncMessenger は IO 多重化テクノロジ (epoll、kqueue など) とスレッド プールを使用してメッセージの受信と要求の送信を処理し、複数のネットワーク要求を非ブロッキングで処理できるようにします。さまざまな伝送プロトコル スタックとの互換性を保つために、AsyncMessenger はプラグインを通じて posix、dpdk、rdma などの複数の伝送プロトコルもサポートします。その構造は次のとおりです。

上図から、NetworkStack を継承し、異なる実装を追加することで、PosixStack、DPDKStack、RDMAStack などのさまざまな伝送プロトコルをサポートできることがわかります。

前述の DPDK テクノロジー、RDMA テクノロジー、および SPDK テクノロジーを組み合わせることで、Ceph は純粋なユーザー モード ストレージ ソリューションを提供できるようになります。これは、現在のストレージ システム設計の開発方向の 1 つでもあると私は個人的に考えています。

上記の記事では、Ceph における DPDK、SPDK、および RDMA テクノロジーの適用について簡単に紹介しています。今後、上記部分について詳細な分析を行っていきますので、ご期待ください。

<<:  デジタルプラットフォームが国境を越えた電子商取引を強化 Oracle が Secoo「クラウド」で高級ブティックライフを実現

>>:  南京ビッグデータ管理局のZhai Shengqiang氏率いる代表団が華雲データグループを視察

推薦する

hostodo: 年間 25 ドル、アジア最適化 (+cn2 ネットワーク)、KVM/768M/20g ハードディスク/750g トラフィック

hostodo のボスは、KVM や OpenVZ を含む 6 つの特別な VPS を送ってくれまし...

「中学高」が打ち砕いたのは、ネットセレブ経済のバブルだった

暑い夏には、アイスクリームやアイスキャンディーの売り上げが急増しました。ネットセレブの商品が複数、安...

ページのコンテンツと詳細を最適化するためのヒントと方法

1. ページコンテンツの最適化1. キーワードの密度、分布、同義語。 ①キーワード密度SEO ツール...

justhost: 7.8 元/月、ロシア VPS (データセンター 5 か所)、200M 帯域幅、無制限トラフィック、カスタム ISO

ロシアの VPS 業者 justhost が新しいニュースを発表しました。/24、/23、/22 I...

アリババがテンセントを盗作で告発:WeChatマイクロコミュニティは莱王子弔の実子

アリババがテンセントを盗作で告発:WeChatマイクロコミュニティは莱王子弔の実子(TechWeb写...

人気商品からのトラフィックの合理的な利用: 関連セールをより魅力的にする方法

売れ筋商品については、誰もがよく知っています。広告商品やトラフィック生成商品として、その意義は極めて...

グルメな人は IaaS、PaaS、SaaS をどのように理解すべきでしょうか?

こんにちは、みんな。クラウドコンピューティング、クラウドサービス、クラウドプラットフォームなどの登場...

一生懸命書いたオリジナル記事を守る方法

今のところ、無実の罪で告発され処罰されたオリジナルのウェブマスターはまだたくさんいます。Baidu ...

ウェブサイト再設計事例: Xunlei Daquan 再設計の概要

Xunlei Encyclopedia は、ユーザーにワンストップのインターネット デジタル コンテ...

ウェブマスターネットワークからの毎日のレポート:福建省が違法ウェブサイトを閉鎖、NDRCが価格競争を調査

1. Renren.comは変化を計画、陳一州はグループ購入サイトの買収を希望中国版Facebook...

中小企業が検索エンジンマーケティング(SEM)を行う必要がある理由

間違いなく、今日はインターネットの時代です。どの企業もインターネットの影響を無視することはできません...

クラウドは新しい領域を開き、インテリジェンスは未来に力を与えます。Tianyi Cloud Intelligence はデジタル首都の新しい姿を描きます。

2023年12月12日、「クラウドが新たな領域を切り開き、インテリジェンスが未来に力を与える」をテー...

インターネットを活用してビジネスを最適化する

ほとんどの企業はインターネットを宣伝やマーケティングのチャネルとして利用しています。オンラインの世界...