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氏率いる代表団が華雲データグループを視察

推薦する

クラウドコンピューティングが災害復旧に適している理由

これまで、企業が災害復旧 (DR) インフラストラクチャを構築したい場合、それはスタンドアロンの施設...

Neusoft Cloud Technology が Alibaba Cloud Lindorm データベースを導入し、自動車のインターネットのデータ保存コストを 80% 削減

記者は4月9日、東軟集団の子会社である東軟雲科技が立ち上げた自動車インターネットクラウドプラットフォ...

高い木は風を引き寄せます。Yixin は強力な WeChat に公然と挑戦します。

WeChatの突如の出現は、中国電信、中国移動、中国聯通の3大通信事業者のSMSと音声機能市場を猛烈...

統合クラウドアーキテクチャとは何か、そしてそれがなぜ重要なのか

統合クラウド アーキテクチャを詳しく検討する前に、まずそれが直面するいくつかの課題を理解する必要があ...

SEOの考え方を活用してネガティブな情報を巧みに解決する方法

運営の過程で、企業やブランドが悪いニュースに遭遇することは避けられません。その一部は、当社のサービス...

ウェブサイトのキーワードランキングに影響を与える間接的な要因を無視する

インターネット上のランキングに影響を与える肯定的な要因、つまり直接的な要因がよく見られます。しかし、...

ドメイン名ニュース: 10 業界で「最多」の称号を持つドメイン名

過去1年間に所有者が変わったドメイン名は数多くあり、国内の主要産業もその実力を見せつけるために競争し...

beastnode-$3.5/4 コア/512m メモリ/512swap/30gSSD/2T トラフィック

BeastNode はロサンゼルスに登録された会社です。2011 年から VPS 事業に携わっており...

上海は、2つの会議で政府と代表者の間のコミュニケーションの新しいモデルを開拓し、今回は全国で先頭に立っている。

デジタル政府関連では、上海は再び国内の最前線に立っている。 1月19日、中国人民政治協商会議上海市委...

H3Cと安徽電信が共同でTianyi Security Brainをリリースし、中小企業向けの統合セキュリティSaaSサービスを提供

最近、「アクティブセキュリティと産業エコシステムの構築」をテーマにした2020 HCS合肥サイバーセ...

Baiduスパイダーを刺激して、含まれているがランク付けされていないという問題を解消する

長い間記事を書いていませんでした。最近とても忙しかったです。百度の頻繁な更新は、主要な草の根ウェブマ...

プロのウェブマスターの変革の苦しみ

インターネットの波の中で、プロのウェブマスターがどれだけ生き残っているかはわかりません。記事の最初の...

Googleがあなたのウェブサイトを掲載していない問題を解決する方法

みなさんこんにちは。記事を書くのは初めてです。書き方が下手なところがあれば指摘していただけると嬉しい...

bgpto - 日本独自サーバー/ソフトバンク/KDDI高速直結回線

bgp.to(-のブランド)は、日本の大阪データセンターを拡張し、帯域幅をアップグレードし、マシンの...

OVHはどうですか?カナダ ボーハルノワ (BHS) データセンター レビュー

ovhはどうですか?カナダではどうですか?カナダはフランス以外で常にOVHのコアデータセンターの一つ...