序文 最近、Kubernetes を学習しながら、ポッドデータの永続化を実現したいと考えています。調査の過程で、Ceph は近年急速に発展しており、企業で導入されている事例も多数あることがわかりました。選択に関しては、コミュニティで人気のあるプロジェクトを好みます。 GlusterFS と Ceph はどちらも検討範囲内ですが、GlusterFS はオブジェクト ストレージとファイル システム ストレージのみを提供するのに対し、Ceph はオブジェクト ストレージ、ブロック ストレージ、ファイル システム ストレージを提供します。新しいものへの憧れから、私は Ceph ブロック ストレージを実装し、Kubernetes に接続してポッド データの永続性を実現するために、Ceph を決定的に選択しました。
1. 初期 Ceph 1.1 ブロック ストレージ/オブジェクト ストレージ/ファイル システム ストレージとは何かを理解していますか? 早速本題に入りましょう。 Ceph は現在、オブジェクト ストレージ (RADOSGW)、ブロック ストレージ RDB、CephFS ファイル システムの 3 つの機能を提供しています。 3 つの機能は次のように紹介されています。 1. オブジェクト ストレージ。これは、通常の意味でのキー値ストレージです。インターフェースはシンプルな GET、PUT、DEL およびその他の拡張機能です。主な代表例としては、Swift、S3、Gluster があります。 2. ブロックストレージ。このインターフェースは通常、QEMUDriver または KernelModule の形式で存在します。このインターフェースは、Sheepdog、AWS の EBS、QingCloud のクラウド ハードディスク、Alibaba Cloud の Pangu システムなどの Linux BlockDevice インターフェースまたは QEMU によって提供される BlockDriver インターフェース、および Ceph の RBD (RBD は Ceph のブロック ストレージ インターフェース) を実装する必要があります。一般的なストレージの中で、DAS と SAN もブロック ストレージを提供します。 3. ファイル ストレージは通常、POSIX インターフェイスをサポートすることを意味します。これは、Ext4 などの従来のファイルシステムと同じタイプですが、分散ストレージが Ceph の CephFS (CephFS は Ceph のファイルストレージ用インターフェース) などの並列化機能を提供する点が異なります。ただし、GlusterFS や HDFS などの非 POSIX インターフェース ベースのファイル ストレージ インターフェースもこのカテゴリに分類されることがあります。もちろん、NFS と NAS もファイル システム ストレージに属します。 1.2 Ceph コンポーネントの紹介 次の図から Ceph アーキテクチャ コンポーネントを簡単に見てみましょう。 (ヒント: これは勉強しながら描いたものです。何か問題が見つかった場合はメッセージを残してください。批判しないでください。) モニターは、クラスター全体の動作状態を監視する役割を担います。情報は、各ノードのステータスやクラスター構成情報など、クラスター メンバーを管理するデーモンによって提供されます。 Cephmonitormap には主に OSDmap、PGmap、MDSmap、CRUSH などが含まれます。これらのマップは総称してクラスター マップと呼ばれます。 cephmonitor はデータを保存しません。これらのマップの機能は次のとおりです。
OSD、CephOSD は、物理ディスク ドライブ、その上の Linux ファイル システム、および CephOSD サービスで構成されます。 CephOSD は、クラスター内の各ノードの物理ディスク上にオブジェクトの形式でデータを保存します。データを保存する作業のほとんどは、OSDdaemon プロセスによって実行されます。 CephOSD を構築するときは、SSD ディスクと xfs ファイル システムを使用してパーティションをフォーマットすることをお勧めします。 BTRFS はパフォーマンスが優れていますが、現時点では本番環境での使用は推奨されません。しばらく様子を見ることをお勧めします。 Ceph メタデータ、MDS。 Ceph ブロック デバイスと RDB には MDS は必要ありません。MDS は CephFS のみをサポートします。 RADOS、ReliableAutonomicDistributedObjectStore。 RADOS は Ceph ストレージ クラスターの基盤です。 Ceph では、すべてのデータはオブジェクトの形式で保存され、RADOS オブジェクト ストレージはデータの種類に関係なくこれらのオブジェクトを保存する役割を担います。 RADOS レイヤーは、データの一貫性が常に保たれることを保証します。 librados(librados ライブラリ)は、アプリケーションへのアクセス インターフェイスを提供します。また、ブロック ストレージ、オブジェクト ストレージ、ファイル システム用のネイティブ インターフェイスも提供します。 ADOS ブロック デバイスはシンプロビジョニングされ、サイズ変更可能であり、複数の OSD にわたってデータを格納します。 ゲートウェイ インターフェイスである RADOSGW は、オブジェクト ストレージ サービスを提供します。 librgw と librados を使用して、アプリケーションが Ceph オブジェクト ストレージに接続できるようにします。また、S3 および Swift 互換の RESTful API インターフェースを提供します。 CephFS (Ceph ファイル システム) は、librados に基づくネイティブ インターフェイスをカプセル化する POSIX 互換のファイル システムです。 データストレージの分散選択アルゴリズムを表す CRUSH (Controlled Replication Under Scalable Hashing) について簡単に説明します。 Ceph の高パフォーマンス/高可用性は、このアルゴリズムを使用して実現されます。 CRUSH アルゴリズムは、クライアント要求ごとにメタデータ テーブルを検索する代わりに、システム内でデータの書き込み先または読み取り元となる場所を計算します。 CRUSH はインフラストラクチャを認識し、インフラストラクチャのさまざまなコンポーネント間の関係を理解できます。また、CRUSH はデータの複数のコピーを保存するため、障害ドメインの複数のコンポーネントに障害が発生しても、データは引き続き利用できます。 CRUSH により、Ceph は自己管理と自己修復を実現できます。 従来の分散ストレージと比較した RADOS 分散ストレージの利点は次のとおりです。 1. ファイルをオブジェクトにマッピングした後、ClusterMap を使用して、テーブル検索ではなく CRUSH 計算によってストレージ デバイス上のファイル データが保存されている特定の場所を見つけます。従来のファイルからブロックへのマッピングと BlockMAp 管理が最適化されています。 2.RADOS は OSD のインテリジェントな機能を最大限に活用し、一部のタスクを OSD に委任して、最大限のスケーラビリティを実現します。 2. Cephをインストールする 2.1 環境整備 ##環境説明 ホストIP機能 セフノード01192.168.58.128 デプロイ、mon*1、osd*3 セフノード02192.168.58.129 mon*1、osd*3 セフノード03192.168.58.130 mon*1、osd*3 ##yumソースを準備する
##Cephソースを追加
##キーフリーの設定(省略) ヒント: 通常のユーザーを使用してインストールする場合は、次のようにしてユーザーに関連する権限を付与してください。 a. yangsheng ユーザーを sudo 権限に追加します (yangshengALL=(ALL)NOPASSWD:ALL) b. /etc/sudoers の「Defaultsrequiretty」をコメントアウトします。 2.2 インストールを開始する ##デプロイメントツールをインストールします(192.168.58.128で次の操作を実行します)
##モニターを初期化する
独自の IP 構成に応じて ceph.conf に public_network を追加し、mons 間の時間差の許容範囲をわずかに増やします (デフォルトは 0.05 秒ですが、現在は 2 秒に変更されています)。
##ceph をインストールする
##モニターのデプロイを開始する
クラスターのステータスを確認する
ヒント: モニターが正常に作成されたら、クラスターのステータスを確認します。現時点では、クラスターの状態は正常ではありません。 ##OSDの展開を開始する
この時点で、クラスタの状態を再度確認します
2.3 環境をきれいにする 以前のデプロイメントが失敗した場合は、ceph クライアントを削除したり、仮想マシンを再構築したりする必要はありません。 Ceph クライアントをインストールした直後の状態に環境をクリーンアップするには、各ノードで次の手順を実行するだけです。古いクラスター上に構築する前に環境をクリーンアップすることを強くお勧めします。そうしないと、さまざまな異常な状況が発生する可能性があります。
3. クライアントを構成する 3.1 クライアントをインストールする
Ceph 設定ファイルを 192.168.58.131 にコピーします。
3.2 新しいユーザーキーを作成する クライアントが Ceph クラスターにアクセスするには、Ceph キーが必要です。 Ceph は、Ceph クラスターにアクセスするための十分な権限を持つデフォルトのユーザー client.admin を作成します。ただし、client.admin を他のすべてのクライアント ノードと共有することはお勧めしません。ここでは、特定のストレージ プールにアクセスするための別のキーを持つ新しいユーザー (client.rdb) を作成します。
192.168.58.131 の client.rbd ユーザーのキーを追加します。
クライアント(192.168.58.131)にアクセスして、クラスタのヘルスステータスを確認します。
3.3 ブロックデバイスを作成する
ブロックデバイスのマッピング
ヒント: ブロック デバイスのマッピング時に次のエラーが発生しました。
この問題を解決するには、次のようにいくつかの方法があります。 1. 作成プロセス中に次のパラメータ「--image-featurelayering」を追加しても問題は解決します。 2. 以下に示すように、関連するパラメータを手動で無効にします。
3. 各 Ceph ノードの設定ファイルに設定項目「rbd_default_features=1」を追加します。 3.4 マップされたブロックデバイスを確認する
デバイスを作成してマウントする
確認する
ceph ブロックデバイスが作成されます。 |
<<: エッジコンピューティング市場は必ず成長します。クラウドコンピューティングに取って代わることは可能でしょうか?
>>: エッジコンピューティングがクラウドコンピューティングに取って代わる可能性は低い
今日は、3年前に非常に人気があった商人から得た「言葉では言い表せない」役立つ情報を皆さんにお伝えしま...
最近、私の友人が非営利のウェブサイトを売りたいと考えており、交渉中の買い手がいたものの、価格に合意で...
5月23日、アリババクラウドは武漢オプティクスバレーにてアリババクラウドカンファレンス武漢サミットを...
Baidu Webmaster Platform に「ハイパーリンク不正アルゴリズムのアップグレード...
1. クラウドネイティブの技術的背景現在、デジタルトランスフォーメーションはあらゆる業界に徐々に浸透...
中国電子商取引の現在のB2C市場構造について、福清ウェブサイト建設は、全体的な状況は基本的に決定され...
2005年にCraigslistを模倣して設立された2つの分類情報ウェブサイト、Ganji.comと...
warez-host.com は 2007 年に設立されました。通常は hostplay というブラ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています7月24日...
Google アナリティクスのカスタム変数は、技術的な知識があまりない Web マーケティング担当者...
簡単に言えば、SEO は 4 つのステップに分かれています。1 つ目は基本的な基準を確立すること、2...
rytechhosting. は、トラフィック量の多いユーザーに適した、コスト効率に優れた 2 つの...
vpsunlimitedさん、私に最後に会ってから少なくとも1年経ちましたよね? 2010 年にホス...
また11月がやってきて、また眠れない夜がやってきました。 「独身の日」にちなんで名付けられたダブル1...
Justhost では、毎年恒例のハロウィーン プロモーションも実施しています。無制限の仮想ホスティ...