ストレージは種類によってブロックストレージ、オブジェクトストレージ、ファイルストレージに分けられます。主流の分散ストレージ技術の中で、HDFS/GPFS/GFSはファイルストレージに属し、Swiftはオブジェクトストレージに属し、Cephはブロックストレージ、オブジェクトストレージ、ファイルストレージをサポートできるため、統合ストレージと呼ばれています。 1. セフ Ceph は Sage 氏の博士課程の研究から生まれました。結果は 2004 年に公開され、その後オープン ソース コミュニティに貢献されました。長年の開発を経て、多くのクラウド コンピューティングおよびストレージ ベンダーからサポートされ、最も広く使用されているオープン ソース分散ストレージ プラットフォームになりました。 Ceph は、シナリオに応じて、オブジェクト ストレージ、ブロック デバイス ストレージ、ファイル ストレージに分けられます。他の分散ストレージ技術と比較して、Ceph には次の利点があります。データを保存するだけでなく、ストレージ ノードの計算能力を最大限に活用します。各データを保存するときに、データが格納されている場所を計算し、データを均等に分散しようとします。同時に、CRUSHやHASHなどのアルゴリズムを使用しているため、従来の単一障害点がなく、規模が拡大してもパフォーマンスに影響はありません。 1. Ceph の主なアーキテクチャ Ceph の最下層は、信頼性、インテリジェンス、分散という特徴を持つ RADOS (分散オブジェクト ストレージ システム) です。高信頼性、高拡張性、高パフォーマンス、高自動化などの機能を実現し、最終的にはユーザーデータを保存します。 RADOS システムは主に OSD とモニターの 2 つの部分で構成されています。 RADOS の上位にあるのは LIBRADOS で、これはライブラリにアクセスすることでアプリケーションが RADOS システムと対話できるようにするライブラリであり、C、C++、Python などの複数のプログラミング言語をサポートしています。 LIBRADOS レイヤーに基づいて開発されたインターフェースは、RADOSGW、librbd、MDS の 3 つです。 RADOSGW は、オブジェクト ストレージをサポートし、S3 および Swift と互換性のある、一般的な RESTFUL プロトコルに基づくゲートウェイです。 librbd は分散ブロック ストレージ デバイス インターフェイスを提供し、ブロック ストレージをサポートします。 MDS は POSIX 互換のファイル システムを提供し、ファイル ストレージをサポートします。 2. Ceph 機能モジュール Ceph のコア コンポーネントには、クライアント、MON 監視サービス、MDS メタデータ サービス、および OSD ストレージ サービスが含まれます。各コンポーネントの機能は次のとおりです。
3.Cephリソース分割 Ceph はクラッシュ アルゴリズムを使用して、大規模クラスターでの高速かつ正確なデータ ストレージを実現します。同時に、ハードウェア障害やハードウェア拡張が発生した場合のデータ移行を最小限に抑えることができます。原則は次のとおりです。 ユーザーが Ceph クラスターにデータを保存する場合、データは最初に複数のオブジェクトに分割されます (各オブジェクトにはオブジェクト ID があり、サイズを設定できます。デフォルトは 4MB)。オブジェクトは Ceph ストレージの最小のストレージ単位です。 オブジェクトの数が多いため、オブジェクトから OSD へのインデックス テーブルを効果的に削減し、メタデータの複雑さを軽減し、書き込みと読み取りをより柔軟にするために、pg (配置グループ) が導入されました。PG はオブジェクトの管理に使用されます。各オブジェクトはハッシュを通じて pg にマッピングされます。 pg には複数のオブジェクトを含めることができます。 次に、Pg は CRUSH を通じて計算され、osd にマップされます。コピーが 3 つある場合、データの冗長性を確保するために、各 pg は 3 つの osd にマップされます。 4. Cephへのデータの書き込み Cephデータ書き込みプロセス 1) データは負荷分散を通じてノードの動的 IP アドレスを取得します。 2) ブロック、ファイル、またはオブジェクト プロトコルを介してノードにファイルを転送します。 3) データは 4M 個のオブジェクトに分割され、オブジェクト ID が取得されます。 4) オブジェクト ID は、HASH アルゴリズムを使用して異なる PG に割り当てられます。 5) CRUSHアルゴリズムにより、異なるPGが異なるOSDに割り当てられる 5. Cephの特徴
Ceph にはいくつかの欠点があります。 分散型ソリューションには事前の計画と設計が必要であり、技術チームに対する要件が比較的高くなります。 Ceph を拡張すると、バランスのとれたデータ分散特性により、ストレージシステム全体のパフォーマンスが低下します。 2. 地球環境 GFS は、大量の検索データを保存するために特別に設計された Google の分散ファイル ストレージ システムです。これは 2003 年に提案されたクローズドソースの分散ファイル システムです。大きなファイルの読み取りや書き込みなど、大量の順次読み取りや順次追加に適しています。単一の読み取りと書き込みの遅延ではなく、大きなファイルの持続的で安定した帯域幅に重点を置きます。 1. GFSの主なアーキテクチャ GFS アーキテクチャは比較的シンプルです。 GFS クラスターは通常、マスター、複数のチャンクサーバー、および複数のクライアントで構成されます。 GFS では、すべてのファイルは複数のチャンクに分割され、各チャンクには一意で不変の識別子 (チャンクの作成時にマスターによって割り当てられる) があり、すべてのチャンクは実際にはチャンクサーバーのディスクに保存されます。 災害復旧のために、各チャンクは複数のチャンクサーブに複製されます。 2. GFSの機能モジュール GFS クライアント: POSIX API に似たアプリケーション用の API を提供します。また、GFS マスターから読み取ったメタデータ チャンク情報もキャッシュします。 GFS マスター メタデータ サーバー: コマンド スペース (ディレクトリ階層)、アクセス制御情報、ファイルとチャンクのマッピング、チャンクの場所など、すべてのファイル システムのメタデータを管理します。同時に、マスターは、チャンクの作成、レプリケーション、データ移行、ガベージ コレクションなど、システム内のさまざまなアクティビティも管理します。 GFS チャンクサーバー ストレージ ノード: すべてのチャンクを保存するために使用されます。ファイルは固定サイズ (デフォルトでは 64 MB) の複数のチャンクに分割され、各チャンクにはグローバルに一意のチャンク ID が付けられます。 3. GFS書き込みプロセス 1) クライアントは、変更するチャンクがどのチャンクサーバー上にあるか、またチャンクの他のコピーの場所情報をマスターに問い合わせます。 2) マスターはプライマリとセカンダリの関連情報をクライアントに返します。 3) クライアントはデータをプライマリとセカンダリにプッシュします。 4) すべてのレプリカがデータの受信を確認すると、クライアントはプライマリに書き込み要求を送信し、プライマリは異なるクライアントの操作にシーケンス番号を割り当てて、操作が順番に実行されるようにします。 5) プライマリは書き込み要求をセカンダリに送信し、セカンダリはプライマリによって割り当てられたシーケンス番号の順序ですべての操作を実行します。 6) セカンダリが実行を完了すると、実行結果をプライマリに応答します。 7) プライマリは実行結果をクライアントに応答します。 上記からわかるように、GFS はデータを書き込む際に次の特性を持ちます。
4. GFSの機能
3. HDFS HDFS (Hadoop Distributed File System) は、市販のハードウェア上で実行するのに適した分散ファイル システムです。これは Hadoop のコア サブプロジェクトであり、ストリーミング データ モードで非常に大きなファイルにアクセスして処理するというニーズに基づいて開発されています。このシステムは Google ファイル システム (GFS) をモデルにしており、GFS の簡略化されたオープン ソース バージョンです。 1. HDFSの主なアーキテクチャ HDFS クライアント: NameNode からファイルの場所の情報を取得し、DataNode からデータを読み書きします。さらに、データを保存する際のファイルのセグメント化はクライアントの責任となります。 NameNode(メタデータノード):名前空間、データブロックのマッピング情報を管理し、レプリケーション戦略を構成し、クライアントの読み取りおよび書き込み要求を処理します。 DataNode(ストレージノード):実際の読み取りおよび書き込み操作を実行し、実際のデータブロックを保存する役割を担います。同じデータ ブロックが複数の DataNode に保存されます。 セカンダリネームノード: メタデータを定期的にマージし、ネームノードにプッシュします。緊急時には、NameNode の HA リカバリを支援できます。 2. HDFSの特徴(GFSと比較)
3. HDFSに適したアプリケーションシナリオ
4. HDFS が適さないシナリオ:
迅速 Swift は、もともと Rackspace によって開発され、2010 年に OpenStack オープンソース コミュニティに提供された分散オブジェクト ストレージ サービスです。元のコア サブプロジェクトの 1 つとして、Nova サブプロジェクトに仮想マシン イメージ ストレージ サービスを提供します。 1. Swiftの主なアーキテクチャ Swift は、完全に対称的なリソース指向の分散システム アーキテクチャ設計を採用しています。すべてのコンポーネントはスケーラブルであるため、単一点障害によるシステム全体の可用性への影響を回避できます。 Swiftのコンポーネントには以下が含まれます
2. Swiftのデータモデル Swift のデータ モデルは、アカウント/コンテナ/オブジェクトの 3 つの層を持つ階層構造を採用しています。各層のノード数に制限はなく、任意に拡張可能です。データモデルは次のとおりです。 3. 一貫性のあるハッシュ関数 Swift は、計算によって仮想空間内の仮想ノードにオブジェクトを均等に分散するコンシステント ハッシュ テクノロジに基づいており、ノードを追加または削除するときに移動する必要があるデータの量を大幅に削減できます。 効率的なシフト操作を容易にするために、仮想空間のサイズは通常 2n です。リングと呼ばれる独自のデータ構造を通じて、仮想ノードが実際の物理ストレージ デバイスにマッピングされ、アドレス指定プロセスが完了します。次の図に示すように: ハッシュ空間は4バイト(32ビット)で、仮想ノードの最大数は232です。ハッシュ結果をmビット右にシフトすると、2(32-m)個の仮想ノードを生成できます(上図のように、m=29のとき、8個の仮想ノードを生成できます)。 4. リングデータ構造 Swift は、アカウント、コンテナ、オブジェクトごとに個別のリングを定義します。 リングは、仮想ノード (パーティション) を一連の物理ストレージ デバイスにマッピングし、ある程度の冗長性を提供するように設計されています。リングのデータ情報には、ストレージデバイスリストとデバイス情報、パーティションとデバイスのマッピング関係、計算されたパーティション番号の変位(上図のm)が含まれます。 アカウント、コンテナ、オブジェクトのアドレス指定プロセス。 (オブジェクト アドレス指定プロセスを例に挙げます) 1) オブジェクト階層 account/container/object をキーとして使用し、MD5 ハッシュ アルゴリズムを使用してハッシュ値を取得します。 2) ハッシュ値の最初の 4 バイト (m ビット) を右シフトしてパーティション インデックス番号を取得します。 3) パーティションとデバイスのマッピング テーブルで、パーティション インデックス番号に従って、オブジェクトが配置されているパーティションに対応するすべての物理デバイス番号を検索します。以下のように表示されます。 5. Swiftの一貫したデザイン Swift が Quorum 仲裁プロトコルを採用
Swift のデフォルト構成は N=3、W=2、R=2 です。つまり、各オブジェクトには 3 つのコピーがあり、書き込みを成功させるには少なくとも 2 つのコピーを更新する必要があります。 2 つの読み取りデータ間に不整合がある場合、検出および複製プロトコルを通じてデータ同期が完了します。 R=1 の場合、ダーティデータが読み取られる可能性があります。このとき、一定の一貫性を犠牲にすることで読み取り速度を向上させることができます(また、データの最終的な一貫性を確保するために、一貫性をバックグラウンドで同期することもできます)。 クォーラム プロトコルの例を以下に示します。 6. Swiftの機能
5. Lustre 分散ストレージ Lustre は、Linux プラットフォームをベースにしたオープン ソースのクラスター (並列) ファイル システムです。これは、Pete Bramble によって設立された Cluster File Systems Inc. によって 1999 年に初めて開発されました。その後、HP、Intel、Cluster File System、米国エネルギー省によって共同開発されました。 2003 年に正式にオープン ソースとなり、主に HPC スーパーコンピューティング分野で使用されています。 1. Lustreの主なアーキテクチャ Lustre コンポーネントには次のものが含まれます。
2. 光沢の特徴
6. 主流の分散ストレージ技術の比較 いくつかの主流の分散ストレージ技術の特性は次のように比較されます。 さらに、分散ストレージシステムの設計コンセプトによれば、ソフトウェアとハードウェアは分離されており、信頼性やパフォーマンスの向上など、分散ストレージの多くの機能はソフトウェアによって提供されるため、基盤となるハードウェアはもはや重要ではないと考えられる傾向があります。しかし、多くの場合、そうではありません。分散ストレージ システムを統合する場合、適切な分散ストレージ テクノロジを選択するだけでなく、基盤となるハードウェアの互換性も考慮する必要があります。一般的に、分散ストレージ システム製品には、ハードウェアとソフトウェアのオールインワン マシン、ハードウェア OEM、ソフトウェア + 標準ハードウェアの 3 つの形式があります。選択する際には、製品の成熟度、リスク回避、運用および保守の要件と、自社の技術力を考慮して、適切な製品形態を選択する必要があります。 元のタイトル: 主流の分散ストレージ技術の比較分析と応用。ご質問がある場合は、記事の最後をクリックして原文をお読みになり、コミュニティにコメントを残してください。 推奨資料/記事: 分散ストレージ技術ルートの選択に関する議論 http://www.talkwithtrend.com/Question/424127 金融業界向け分散ストレージソリューションの設計 http://www.talkwithtrend.com/Document/detail/tid/416333 |
<<: LVS、Nginx、HAProxy がどのように動作するかを本当に理解していますか?
>>: 企業はクラウドに移行する必要がありますか?エッジコンピューティングに移行できる
IDC の Global Cloud IT Infrastructure Quarterly Tra...
米国西海岸の trentahost のポートランド データ センターには、低価格で構成の優れたサーバ...
みなさんこんにちは。私はHongtu Internetです。検索エンジン最適化の専門家ならご存知のと...
1. ヤフーが今夏、広告テクノロジー企業AppNexusの株式を取得する計画があると噂されている。海...
私はしばらくSEOを勉強してきましたが、この間多くの問題に遭遇しました。問題に遭遇するたびにBaid...
現在、SEO担当者が独立ブログを開設するケースが増えています。実践を通じてより深い理解が得られるだけ...
最近、友人から「IaaS とは何ですか?」と尋ねられました。 PaaSとは何ですか? SaaS とは...
ミニプログラムは1年以上前からオンラインになっており、 WeChatの担当者は期待に応えて、過去1年...
[[376648]]この記事はWeChatの公開アカウント「sowhat1412」から転載したもので...
5月10日、Amazon Web Servicesと51CTOが共同で開始した毎週のライブ放送シリー...
フロリダに登録されているホスティング会社である VPSRus は、シカゴとノースカロライナの 2 つ...
最近、筆者は他業種のウェブマスターとコミュニケーションを取っています。コミュニケーションの過程で、企...
南都地図:劉銀山「ダブル11」と比べると「ダブル12」のプロモーション規模は小さく、商人たちは楽観的...
3月1日、Baiduは外部リンクを拒否する最新のバージョンを発表し、インターネット上のウェブサイトや...
「今回の投資は途家にとって画期的な出来事ではなく、バケーションレンタル業界全体にとって画期的な出来事...