1. 概要
クラウド コンピューティング仮想化の主な目的の 1 つは、リソース使用率の問題を解決すること、つまり、使用率の低い物理リソースを複数の小さな論理リソースに仮想化し、それらをオンデマンドで複数のアプリケーションに割り当てて、リソース使用効率を向上させることです。リソースに対する需要は、仮想化技術のそれとはまったく逆です。単一の物理サーバー リソースでは、ビッグ データのストレージ容量とコンピューティング パフォーマンスの要件を満たすことができません。ストレージ容量とストレージ容量を向上させる分散フレームワークを実装するには、クラスターを形成するために複数の物理サーバー リソースが必要です。この記事では、ビッグ データ クラスターを物理マシンと仮想マシンに展開した場合のパフォーマンスの違いを分析することに焦点を当てます。
Hadoop は、大規模クラスター上で実行される分散並列コンピューティング フレームワークであり、そのコア テクノロジには、分散ストレージ (HDFS) と分散コンピューティング (MapReduce) が含まれます。
HDFS は、Linux オペレーティング システム上に構築された仮想分散ファイル システムです。大規模なデータ セットを複数の小さなデータ ブロック (ブロック) に分割し、ハッシュ パーティションと仮想バケットに従ってそれらを分割できます。バケット) およびその他のアルゴリズムは、データ ブロックをクラスター内のさまざまなデータ ノード上で秩序ある方法で実行し、フォールト トレランスと分散機能を向上させます。
MapReduce には、Map と Reduce という 2 つの操作が含まれています。MapReduce フレームワークは、コンピューティング タスクを複数の Map タスクに分割し、それらを異なるホスト ノードに割り当てて実行します。各 Map タスクは入力データの一部を処理します。Map タスクが完了すると、いくつかの中間ファイルが生成されます。これらの中間ファイルは、ファイル ファイルは Reduce タスクの入力データとして使用され、Reduce はデータを要約および処理して最終結果を出力します。
MapReduce コンピューティングでは大規模なデータの読み書きが必要となり、大容量のネットワーク I/O が MapReduce コンピューティングのパフォーマンスを左右する重要なポイントの 1 つとなっています。ネットワーク I/O を削減する方法は数多くあります。「データをジョブに移動する」という従来のコンピューティング モデルとは異なり、Hadoop は「ジョブをデータに移動」することを提案しています。これは、ローカルなデータを実現するために、データが配置されているノードにコンピューティング タスクをプッシュすることを意味します。コンピューティングを強化し、クロスノード データを削減します。パフォーマンスを向上させるために読み取ります。
ビッグデータクラスタの導入環境選択において、ユーザーは物理マシンクラスタを構築するか、仮想マシンクラスタを構築するかで多くの疑問を抱くことになりますが、Hadoopの基本原理、特にネットワークI/Oを削減するための「ジョブをデータに移動する」ことを正しく理解することコンピューティングのパフォーマンスを向上させることで、ユーザーが正しい選択を行えるようにすることができます。
2.ビッグデータ物理マシンクラスタ
図 1 ビッグデータ物理マシン クラスター
図 1 に示すように、ビッグ データ物理マシン クラスターはそのプロセス上で構築され、サーバー間のデータ移動が減少し、ネットワーク I/O が減少し、高速なデータ読み取りと計算が実現されます。さらに、ビッグ データ物理マシン クラスターには次の利点もあります。
(1) ビッグデータ物理マシンクラスタは、スケールアウト水平拡張を実現できるシェアナッシング技術アーキテクチャを採用しており、クラスタホスト数は数台から数千台まで対応し、PB、EBレベルの大規模データの線形拡張をサポートします。ストレージとコンピューティング機能。
(2) 各物理サーバーノードは複数のハードディスクで構成でき、各ハードディスクは独立した実装方式を採用しており、各ハードディスクは独立した I/O 機能を持ち、データの並列読み取りと書き込みをサポートして高速化を実現します。データスループット。
(3) ビッグ データ物理マシン クラスターのホスト ノード間でデータ交換が行われるため、通常、ネットワーク カードがフル容量で動作する必要があり、物理マシンは複数のネットワーク カードの負荷分散を通じてネットワーク I/O パフォーマンスを向上させることができます。
3. ビッグデータ仮想マシンクラスター
図 2 ビッグデータ仮想マシン クラスター
仮想化技術は、図2に示すように、物理サーバのCPU、メモリ、ストレージなどのリソースを複数の論理リソースに仮想化し、物理サーバのCPUやメモリなどのリソースの利用率を向上させることを目的としています。仮想マシン VM とは、物理サーバーを複数の VM に仮想化し、VM を複数の APP に割り当てる単位として使用して、サーバー リソースの利用効率を最大化します。
ビッグ データの物理マシン クラスターと比較して、ビッグ データの仮想マシン クラスターには次の問題があります。
(1) 仮想マシン クラスタの計算能力が大幅に低下します。Hadoop は分散コンピューティング フレームワークを使用しており、ビッグ データ クラスター内の複数のホストが同じコンピューティング タスクを共有する必要があります。ホストの CPU、メモリ、ディスク I/O 能力が強化されるほど、処理パフォーマンスは速くなります。仮想化技術は、サーバーの物理リソースを複数の論理リソースに仮想化しますが、ビッグ データ クラスターの CPU、メモリ、ディスクの I/O 能力が向上しないだけでなく、ハイパーバイザーなどの仮想化処理により追加のリソース消費が発生し、シングル物理サーバーの処理性能は約10%低下します。
(2) 仮想マシン クラスタの I/O 効率が大幅に低下します。ビッグ データ クラスターがコンピューティング タスクを実行するたびに、大量の読み取りおよび書き込みデータが必要になります。仮想マシンは共有ストレージまたはユニファイド ストレージを使用します。Hadoop で必要とされる「ジョブをデータに移動する」という原理は実現できず、ネットワーク I /O が大幅に増加し、I/O 効率が大幅に低下します。さらに、複数の仮想マシン ネットワーク カードが物理ネットワーク カードを共有することになり、大量のデータが交換される場合には仮想ネットワーク カードの帯域幅もボトルネックになります。
(3) 仮想マシン クラスタは、コンピューティングとストレージの線形拡張をサポートできません。共有ストレージまたはユニファイド ストレージでは、複数の仮想マシンが同時に読み取りと書き込みを行うと、深刻な I/O 競合が発生し、クラスター ホストの規模が制限されます。
4. ビッグデータ物理マシンクラスタと仮想マシンクラスタの性能比較テスト
ビッグ データ物理マシン クラスターと仮想マシン クラスターに関する上記の理論分析の正しさを証明するために、標準的なビッグ データ分散コンピューティング タスク Terasort ソートを使用してパフォーマンス比較テストを実施しました。Terasort の Map と Reduce はどちらも大量の中間データを生成し、大規模なハードディスクの読み取りと書き込みを必要とするため、物理マシン クラスターと仮想マシン クラスターのパフォーマンスの違いを効果的に証明できます。
図 3 Terasort のソート
図 3 に示すように、Terasort は Hadoop をベースとした並べ替えジョブであり、並べ替えられるデータはまず K データ ブロックに分割されます。Map ステージでは、各 Map タスクはデータを R データ ブロックに分割します。R は Reduce タスクの数であり、i (i>0) 番目のデータ ブロック内のすべてのデータは、 i+1 番目のデータ ブロック。大きい。Reduce ステージでは、i 番目の Reduce タスクがすべてのマップ タスクの i 番目のブロックを処理 (ソート) するため、i 番目の Reduce タスクによって生成される結果が大きくなります。 i+1 番目よりも、最後に 1 to R Reduce タスクになります。 タスクのソート結果が順に出力され、これが最終的なソート結果となります。
同じサーバー構成を使用して、ビッグデータ物理マシン クラスターとビッグデータ仮想マシン クラスターを構築した環境とテスト結果は次のとおりです。
(1) 3台の物理サーバから構成されるビッグデータ物理マシンクラスタの構成を表1に示します。
表 1 ビッグデータ物理マシンのクラスタ構成
使用 |
CPU |
メモリ |
システムディスク |
データハードドライブ |
通信網 |
ノード 1 |
4ウェイ8コア |
128G |
1*600G |
4*600G |
10GbE |
ノード 2 |
4ウェイ8コア |
128G |
1*600G |
4*600G |
10GbE |
ノード 3 |
4ウェイ8コア |
128G |
1*600G |
4*600G |
10GbE |
(2) 6台の仮想マシンから構成されるビッグデータ仮想マシンクラスタの構成を表2に示します。
表 2 ビッグデータ仮想マシンのクラスタ構成
使用 |
CPU |
メモリ |
システムディスク |
データハードドライブ |
通信網 |
ノード 1 |
2ウェイ8コア |
62G |
1*600G |
1.2T |
10GbE |
ノード 2 |
2ウェイ8コア |
62G |
1*600G |
1.2T |
10GbE |
ノード 3 |
2ウェイ8コア |
62G |
1*600G |
1.2T |
10GbE |
ノード 4 |
2ウェイ8コア |
62G |
1*600G |
1.2T |
10GbE |
ノード5 |
2ウェイ8コア |
62G |
1*600G |
1.2T |
10GbE |
ノード 6 |
2ウェイ8コア |
62G |
1*600G |
1.2T |
10GbE |
(3) 試験結果の比較を表 3 に示します。
表 3 テスト結果
試験項目 |
物理マシンクラスタのパフォーマンス |
仮想マシンクラスターのパフォーマンス |
仮想マシンクラスタ/物理マシンクラスタ |
100Gデータ生成 |
295秒 |
395秒 |
133.9% |
100Gデータテラソートソーティング |
3006秒 |
4342秒 |
144.4% |
上記の結果から、ビッグ データ仮想クラスター ホストの数はビッグ データ物理クラスター ホストの 2 倍であるにも関わらず、処理パフォーマンスは 40% 低いことがわかります。ビッグ データの物理クラスターは、ビッグ データの仮想クラスターよりもパフォーマンス上の利点が大きいことがわかります。
5. ビッグデータ仮想マシンクラスターのリスクポイント
ビッグ データ仮想マシン クラスターの主なリスク ポイントは次の側面にあります。
パフォーマンス
(1) クラスターの全体的なパフォーマンスが低下します。同じ構成の物理マシンと仮想マシン間の TBDS/MPP 製品の実際のパフォーマンス テストを比較すると、仮想マシンの全体的なパフォーマンスは物理マシンよりも約 40% 低いことがわかります。
(2) 仮想マシン クラスタの計算能力が大幅に低下します。TBDS /MPP は分散コンピューティング フレームワークを採用しており、ビッグ データ クラスター内の複数のホストが同じコンピューティング タスクを共有する必要があり、ホストの CPU、メモリ、ディスク I/O 能力が強化されるほど、処理パフォーマンスが向上します。仮想化技術は、サーバーの物理リソースを複数の論理リソースに仮想化しますが、ビッグ データ クラスターの CPU、メモリ、ディスクの I/O 能力は向上しないだけでなく、ハイパーバイザーなどの仮想化処理により追加のリソース消費が発生し、シングル 物理サーバーの処理性能が約10%低下します。
(3) 仮想マシンは、本来の分散技術の利点を活用できません。TBDS /MPPのパフォーマンスを向上させる鍵は、分散コンピューティングのために各ホストのローカル コンピューティング リソースとローカル ハードディスク リソースを最大限に活用し、ホスト間での大量のデータの再分散を回避し、物理マシンを使用してデータ分散を制御することです。 SQLの実行や最適化を制御できる仮想マシンを利用した場合、物理マシンとのデータ配置の整合性が保証されず、物理マシン上で再配置する必要のないデータも再配置されてしまいます。 CPU と IO が忙しくなり、極端な場合には SQL パフォーマンスが 2 倍以上低下します。
安定性
(1) 仮想マシンの安定性は物理マシンに比べて非常に弱いです。仮想マシン自体はソフトウェアであり、仮想マシン自体にもバグが存在します。
(2) 物理マシンがダウンすると、上位層の仮想マシンはすべて使用できなくなります。物理マシンにアップグレードが必要なハードウェアがある場合、アップグレードに伴う問題は上位層の仮想マシンの動作に影響を与えます。
スケーラビリティ
仮想マシン クラスターは、コンピューティングとストレージの線形拡張をサポートできません。共有ストレージまたは統合ストレージは、複数の仮想マシンが同時に読み取りおよび書き込みを行うと深刻な I/O 競合に直面し、クラスター ホストの規模が制限されます。
データセキュリティ
仮想マシンを使用する場合、データのセキュリティは保証できません。TBDS/MPP が物理マシンに展開される場合、プライマリ コピーは異なる物理マシンに分散されるため、1 つの物理マシンがダウンしても、他の物理マシンに利用可能なコピーが存在します。ただし、仮想マシンを使用してコピーを展開すると、部分的に問題が発生する可能性があります。データのマスターとコピーは同じ物理マシン上にあるため、マスター コピーの高可用性機能が失われます。極端な場合には、1 台の物理マシンに障害が発生すると、クラスタ データ全体が不完全になり、クラスタが利用できなくなります。
開発費と運用保守費
仮想マシンを使用すると、開発コストと運用コストが数倍に増加します。同じ物理リソース要件では、仮想マシンの数は物理マシンの 2 ~ 3 倍になり、本来は 1 つの物理クラスタを 2 ~ 3 つのクラスタに分割する必要があり、クラスタ間で大量のデータ転送が発生します。事業展開が複雑になる一方で、スピードが大幅に上がる一方で、運用保守コストも2~3倍に増加します。
6. 結論
ビッグ データには、コンピューティング能力、ストレージ リソース、およびスケーラビリティに対する高い要件があります。単一の物理サーバーの CPU、メモリ、およびストレージ リソースでは、TBDS/MPPのデータ ストレージ容量とコンピューティング効率の要件をサポートするには不十分です。複数のサーバーが必要です。統合されたクラスターは分散ストレージと分散コンピューティング、つまり N:1 を実行します。仮想化技術は、物理サーバーのCPU、メモリ、ストレージなどのリソースを複数の論理リソース、つまり1:Nで仮想化することで、リソースの利用効率を向上させることを目的としています。1:N仮想化の技術的特性は、実際にはビッグデータクラスタN:1の技術要件とは異なり、仮想マシンによって構築されるビッグデータクラスタは、処理性能、安定性、拡張性、データセキュリティ、開発コスト、運用保守コストなどを備えています。実際の運用環境ではあらゆる面で多くの問題が発生します。
要約すると、大量のデータ量と高いパフォーマンス要件がある運用環境の場合は、物理サーバー クラスターを使用してビッグ データを展開することをお勧めします。データ量が少なく、パフォーマンス要件が低い実験環境の場合は、仮想マシン クラスターを使用してビッグ データを展開できます。 。