ソフトウェア定義のストレージとイレージャーコーディングを使用したバックアップ-ゲームは十分に価値がありますか?

PetyaやBadRabbitなどのランサムウェアの活動が拡大するとともに、法律の要件が強化されたため(たとえば、No.187-FZ「重要な情報インフラストラクチャの保護について」が施行されたばかり)、バックアップ用のデータ量は絶えず増大しています。 その結果、バックアップストレージインフラストラクチャのコストが増大しています。 Erasure Codingなどのテクノロジーは、ストレージコストを劇的に削減できます。 今日は、Erasure Codingに基づいてBackupを構築する方法を正確に説明します。



画像






リードソロモンコードについては、ソフトウェア定義ストレージ(ソフトウェア定義ストレージ(SDS))に大量の情報を保存する最も効果的な方法として、多くのことを話し、書きました。 ただし、バックアップはErasure Coding(EC)を使用するための理想的なシナリオの1つです。バックアップは、書き込みと読み取りが順番に行われる大きなファイルであるためです。 SDSの分布が拡大しているにもかかわらず、SDSはユーザーデータを保護するためにデフォルトで従来のレプリケーションを使用しているため、バックアップの保存にはあまり使用されません。 その結果、このような問題の解決策は非常に非効率的です。



Virtuozzo Storageを含む分散ストレージシステムおよび最新のソフトウェア定義のストレージシステムでは、各データブロックに対して1つまたは2つのコピーが作成され、それらはすべて負荷、データソースへの近接性などに応じて異なるサーバーに配置されますパフォーマンスとフォールトトレランスに影響する要因。 Erasure Codingを使用する場合、データはいくつかのブロックに分割され、クラスターのノードに分散されます。 さらに、2つまたは3つのチェックサムが作成されます。これにより、レプリカを使用する場合と同様に、2つのサーバーまたはディスクに同時に障害が発生した場合でもデータを保存できますが、同時にディスクスペースを節約し、過剰な容量を数倍減らします。



たとえば、5つの北のクラスターがある場合、そのうちの2つの障害から身を守るために、レプリケーションの場合は3つのレプリカを使用するか、スキーム3(ブロック)+2(ハッシュ)に従ってErasure Codingを使用する必要があります。 100GBを保存すると、レプリカとともにデータが300GBを占有し、ECを使用する場合、この容量は約170GBに削減されます。 また、クラスター内のサーバーが多いほど、スペースを節約できます。 たとえば、20台のサーバーのクラスターの場合、過剰なディスク使用量は約20%にすぎません。



画像



はい、一部のシナリオではErasure Codingを使用するとアプリケーションのパフォーマンスが低下しますが、バックアップの場合は逆になります。これにより、バックアップの速度が向上します。 また、商用ソリューションでは、Erasure Codingは多くの場合有料のオプションであり、そのパフォーマンスは依然として問題であり、バックアップを保存するためにソフトウェア定義のストレージを試すことを誰もが決めているわけではありません。 そして、それを無駄に見せます。



それでも、パフォーマンスはどうですか?



6つのノードで構成されるクラスター#1と12のノードで構成されるクラスター#2の2つの構成でErasure Codingを使用する場合のバックアップ速度をテストしました。 Erasure Codingスキームは、標準のVirtuozzo Storage機能に基づいて適用され、サーバー構成は次のとおりでした。



6ノードで起動された最初のクラスターは、42台のハードディスク(チャンクサービス)、各サーバーに7台のディスクを収容していました。 スピンドル速度7200 rpmの標準SATAドライブを使用しました。 それぞれについて、32 GB(サーバーあたり合計224 GB)のNVMe SSDディスクにログが作成され、このクラスターのクライアントキャッシュのサイズは各マウントポイントで64 GBでした。 バックアップソフトウェアとして、Virtuozzo 7の組み込みソリューションを使用しました。



画像



測定結果は、Erasure Codingを使用したバックアップタスクのこのような6ノードのクラスターのスループットが、従来のレプリケーションと比較して1.6倍高いことを示しました。



画像



クラスターが成長するにつれて、生産性の高いハードドライブを使用したとしても、効果は強まります。 そのため、クラスター#2はすでに12個のノードで構成されており、各ノードにはスピンドル速度15,000 rpmの高速SASディスクが11個ありました。 この点で、NVMe SSD上のログのサイズが削減されました(チャンクサービスあたり16 GBまたはノードあたり176 GB)。 ただし、結果は、クラスター内のバックアップのスループット(したがって速度)は、データ複製よりもECの方が3倍高いことを示しました。



なぜこれが起こっているのですか? 実際、答えは簡単です。他の、おそらくより複雑なタスクとは異なり、バックアップは実際にはデータの順次書き込み(順次書き込み)です。 また、ECの場合、クラスターはより少ない追加データを書き込む必要があります。 3つのレプリカで標準のレプリケーションスキームを使用する場合、3回情報を記録する必要があり(元のブロックと2つのコピー)、Erasure Codingは元のファイルのサイズより20%だけ多くのデータを記録します。 データストリームが多いほど、Erasure Codingを使用した効果が顕著になります。



さらに、分散ストレージシステムでは、ネットワークインターフェイスがボトルネックになることがよくあります。 結局、1 Gb / sチャネルは110〜120 MB / sの速度でデータ転送を提供できます。これは、順次書き込み/読み取り中の1台のハードディスクの能力にほぼ相当します。 したがって、ECの使用は、クラスターの効率を向上させる手段として正当化され、バックアップシナリオでネットワークサブシステムの負荷を正確に削減します。 あまり一般的ではない少量のデータを保存するには、1 Gbit / sのネットワークアダプターを使用できますが、もちろん、生産的なワークロードには10 Gbit / sのネットワークアダプターをお勧めします。



無料で使用



パフォーマンスの問題は解決されました-Erasure Codingは、レプリケーションよりも高速にバックアップを実行しますが、ディスクスペースを大幅に節約します。つまり、サーバー、ディスク、およびネットワークポートリソースを意味します。 費用はいくらですか? Virtuozzo Storageの場合、Erasure Codingを無料で使用できます。これは標準ライセンスに含まれています。 Erasure Codingは、コンテナおよび仮想マシンVirtuozzo、iSCSI、NFS、またはオブジェクトストレージ用のデータボリュームを作成する場合の単なるオプションです。 すでにVirtuozzo Storageを使用している場合は、すぐにECを有効にして、テクノロジーを使用するすべての利点をすぐに得ることができます。 また、Virtuozzo StorageとともにVirtuozzoを使用する場合、バックアップソフトウェア自体はすでにライセンスに含まれています。



画像



上記の例からわかるように、必要に応じて大量のデータを保護する必要がある場合、Erasure Codingはバックアップの作成にかかる時間を節約し、削減するのに役立ちます。 Amazon S3互換オブジェクトストレージなどのオブジェクトストレージを積極的に使用している場合、この種の負荷にはErasure Codingが最適です。 また、最もホットなデータのレプリケーションを同時に使用する機能をキャンセルした人はいませんでした。



All Articles