Virtuozzo:分散ストレージの本当の利点は何ですか?

画像






メディアに障害が発生した場合に重要な情報を保存したり、重要なデータへのアクセスを高速化したりできる多くのテクノロジーがあります。 しかし、Virtuozzo Storageのハイパーコンバージドストレージは、オープンソースのソフトウェア定義ソリューションや、既製のSANまたはNASシステムよりも優れています。 そして今日、システムのアーキテクチャとその利点について話しています。



まず、Virtuozzo Storageとは何ですか(開発環境のVZ Storage)。 ソリューションは、仮想マシンとコンテナーが実行されているのと同じインフラストラクチャ(いわゆるハイパーコンバージドインフラストラクチャ)を使用する分散ストレージです。 最初は、Virtuozzo仮想化とともに製品が開発されました。 ただし、本格的な仮想化システムが不要な場合、プロジェクトは、任意のクライアントと連携できる個別の分散リポジトリとして利用できるようになりました。



一般的に、VZ Storageは仮想化システムを提供する同じサーバーのドライブを使用します。 したがって、ネットワークストレージ環境を構築するために、高価なSAN / NASコントローラなどの別個の機器を購入する必要がなくなりました。 VZ Storageの際立った機能の1つは、さまざまなカテゴリのデータに対するデータストレージ方法(冗長性スキーム)の選択です。 たとえば、一時ログはまったくバックアップされない場合があり、重要なデータには、レプリケーション(完全な複製)または自己修復コード(消去コーディング)などのさまざまな保護技術が提供されます。







VZ Storageはハイパーコンバージドストレージシステムであるため、x86標準アーキテクチャサーバーを使用して展開できます。 ただし、システムが効率的に動作するには、各サーバーに少なくとも100 GBのハードディスクが少なくとも3つ、デュアルコアプロセッサ(ストレージにコアを提供)、および2 GBのRAMがインストールされている必要があります。 より強力な構成では、8台のハードドライブごとに1つのプロセッサコアと4GBのメモリをインストールすることをお勧めします。 つまり、たとえば、ノード上の15個のディスクを使用してストレージを作成し、ストレージクラスターの操作をサポートするために必要なのは、2コアと8GBのRAMだけです。



分散ストレージについて話しているので、サーバーはネットワーク化する必要があります。 理論的には、仮想化クラスターが動作するのと同じデータネットワークを使用できますが、データの読み取りと書き込みの速度はネットワークの特性に直接依存するため、少なくとも1 GB /秒の帯域幅を持つ2番目のネットワークアダプターを使用する方がはるかに効率的です。 さらに、セキュリティの観点からは、別のネットワークが役立ちます。



建築



VZ Storageの分散アーキテクチャは、物理サーバーまたは仮想サーバーにさまざまなシステムコンポーネントをインストールすることを意味します:グラフィカルインターフェイスを備えたコントロールパネル、ストレージサーバー(チャンクサーバー-CS)、メタデータサーバー(メタデータサーバー-MDS)、データの読み取り/書き込み用のストレージのマウント(クライアント)。 1つのノードで複数のコンポーネントを任意の組み合わせで実行できます。 つまり、たとえば、1つのサーバーがデータとメタデータの両方を同時に保存し、仮想マシンを実行し、クラスターコントロールパネルを提供できます。



画像






クラスター内のすべてのデータは、固定サイズのブロックに分割されます(「チャンク」-チャンク)。 「チャンク」ごとに複数のレプリカ(そのコピー)が作成され、異なるマシンに配置されます(マシン全体に障害が発生した場合のフォールトトレランスを確保するため)。 クラスターをインストールするときに、レプリカの通常数と最小数を指定します。 一部のマシンがクラッシュするか、ドライブが機能しなくなると、クラスターフォースは残りのレプリカで失われたすべてのレプリカを再生します-通常の数パラメーター(通常は3)まで。 現時点では、システムはデータの一部を遅延なく書き込むことができます。 ただし、障害が原因でコピー数が最小値(通常2)を下回った場合、つまり2つのコンポーネントが同時に障害を起こした場合、クラスターはデータの読み取りのみを許可し、書き込みの場合、クライアントは少なくとも最小数のコピーが復元されるまで待機する必要があります。 システムは、動作しているチャンクを最高の優先度で復元します。



各サーバーのCSおよびMDSの数は、物理ディスクの数によって決まります。 VZ Storageは、1つのコンポーネントを1つのドライブにバインドすることにより、異なる物理機器間でリソースとレプリカを明確に分離します。



利点は何ですか?



VZ Storageの構造と要件に少し精通しましたが、疑問が生じました。なぜこれがすべて必要なのでしょうか? システムの利点は何ですか? VZ Storageの最も重要な利点は、その信頼性です。 同じ機器(おそらくネットワークコントローラーとディスクを追加する)を使用して、データとメタデータを操作するための合理化されたメカニズムを備えた、非常に効率的で簡単に拡張可能なシステムを取得します。 VZ Storageは、Docker、Kubernetes、またはRancherのVMディスクやコンテナアプリケーションデータを含む、継続的で信頼性の高いデータストレージを提供します。



2番目のプラスは、低所有コスト(TCO)です。 ソリューションでは、高価なハードウェアを別途購入する必要がなく、さまざまなデータのバックアップオプションを選択できるという事実に加えて、VZ Storageには消去コーディング(リードソロモンなどの冗長コード)を使用する機能があります。 これにより、障害発生時にデータを回復する機能を維持しながら、全体的な容量要件が削減されます。 この方法は、最高のアクセス速度が最も重要なものとはほど遠い場合に大量のデータを保存するのに適しています。



消失符号化(EC)の利点は何ですか? 消去コーディングにより、ディスク使用量を大幅に削減できます。 これは、特別なデータ処理によって実現されます。



画像






冗長性の式M + N [/ X]を使用すると、ECで使用できるディスクスペースがはるかに少なくなります。 Mがデータブロックの数であり、Nが特別なチェックサム(「パリティ」)のブロック数であり、Xが書き込み許可パラメーター(クライアントがまだデータを書き込むことができるときにストレージシステムのノードがいくつ利用できないかによって特徴付けられます)ファイル)。 システムが機能するには、VZ Storageのノードの最小数は5である必要があります(この場合、M = 3、N = 2、または「3 + 2」)。 この図は、M = 5、N = 2または「5 + 2」の例を示しています。



5 + 2構成でECを有効にしてシステムをインストールする例では、40GBの追加容量負荷を保証でき、5GBのアプリケーションデータごとに2GBのバックアップデータしか作成できません)。



この場合、100 TBのデータを安全に保管するには、140 TBの容量しか必要ありません。 このアプローチは、予算を最適化するのに役立ちます。または、クラスターにさらに多くのディスク、ラックに多くのサーバー、およびサーバーに多くのラックをインストールすることが物理的にすでに不可能な場合、大量のデータのストレージを確保します。 同時に、高いデータ可用性を維持します-ストレージシステムの2つの要素に障害が発生した場合でも、システムの残りのノードにより、アプリケーションを停止することなく、すべてのデータを少しだけ復元できます。 この表は予備容量の値を示しています。ご覧のとおり、クラスターで多くのマシンが使用されている場合、消去コーディングを使用した結果は非常に印象的です。 たとえば、消去コーディングを使用した17 + 3構成では、バックアップ容量はわずか18%です



画像






もう1つはパフォーマンスです。 もちろん、イレイジャーコーディングはCPU負荷を増加させますが、ほんのわずかです。 最新のプロセッサのSSE命令により、1つのコアで最大2GB / sのデータを処理できます。



分散ストレージシステムの利点は、さまざまな負荷に対してさまざまな種類の冗長性を指定できることです。 また、直接レプリカの場合は、対照的に、多数のノードを持つクラスターの方がはるかに優れたパフォーマンスを提供します。 ただし、ハイパーコンバージドストレージシステムの有効性の測定は、ハードウェア特性、ネットワークアーキテクチャのタイプ、負荷特性などを含む多数の要因に依存するため、VZストレージのパフォーマンスについては次の投稿で詳しく説明します。



All Articles