お客様は、
VMmanagerでサポートされているデータストアの種類のうち、
どれが最良かつ最速で、どのケースを選択するかについてよく質問します。 残念ながら、この質問に対する答えはうまくいきません。
そのため、データウェアハウスのパフォーマンスをテストすることにしました。

ISPsystemは2013年3月上旬に、仮想化を管理するための新しいソフトウェア製品である
VMmanager のリリースを
発表し ました 。 このソリューションは、仮想マシンのホスティングとクラウドの構築の両方に適合しています。
VMmanagerは、いくつかのタイプのデータストレージをサポートしています。 「データストレージ」という用語は、仮想ディスクの格納方法の説明を意味します。 これらのタイプは、ネットワークとローカルに分類されます。 ネットワーキングには、
iSCSI 、
NFS、および
RBDが含まれます。 ローカル
-LVMおよび
DIR (ファイルシステム)。
- iSCSIは、IPネットワークを介してSCSIコマンドを送信することにより、長距離でデータを送信できるリモートストレージ管理プロトコルです。
- NFS-ネットワーク接続ストレージ。 ローカルよりもはるかに遅いため、追加の仮想ディスクを配置する場合にのみ使用することをお勧めします。
- RDB -Ceph RADOSブロックデバイスとも呼ばれます。 これは分散ファイルシステムです。 Habréには、ユーザーilaskovからの短い助けを借りたCeph FSのインストールに関する記事ガイドがありました。
- LVM-メインのローカルストレージとして使用するのに最適なソリューションです。
- ファイルシステム -サーバーファイルシステムがストレージとして使用されます。 仮想ディスクイメージはRAWファイルとして保存されます。
提示されたそれぞれには、独自の欠点と利点があります。 たとえば、ネットワークデータストレージを使用している場合、仮想マシンの移行の問題が発生したとき、クラスター内の別のノードにイメージを転送する必要はありません。
最もアクセスしやすく普及しているため、ローカルデータストア
LVM 、
DIR (
RAW形式および
Qcow2形式)を使用して、読み取りまたは書き込み時にどのローカルストレージが最も速いかという質問に答えることにしました。
参照用:
- RAWは、内部形式のない完全なブロックデバイスイメージです。
- Qcow2はQEMUディスクイメージ形式です。 これは、コピーオンライト形式(記録中のコピー)の略語です。
テストのために、この構成のサーバーが選択されました。
- CPU:Intel Core2Quad CPU Q6600
- RAM:8GB
- HDD:RAID-10 Adaptec ASR3405 4x150GB SAS
- OS:Centos 6
テスト自体は、fbroアプリケーションを使用して実行されました。これは、habrovchan
amaramoの記事
「ディスクパフォーマンスを適切に測定する方法」で説明され
ています 。 このユーティリティは、
公式Webサイトでソースコードの形式で入手できます。
EPELリポジトリを使用して
Centosにインストールしました。
読み取りと書き込みの両方を個別にテストしました。
IOPSの数がキー値として選択されました。
fioオプションは次のとおりです。
読書テスト:
[readtest]ブロックサイズ= 128kファイル名= / dev / vdbrw = randreadダイレクト= 1バッファリング= 0ioengine = libaioiodepth = 16記録テスト:
[書き込みテスト]ブロックサイズ= 128kサイズ= 100%ファイル名= / dev / vdbrw = randwriteダイレクト= 1バッファリング= 0ioengine = libaioiodepth = 16各テストは3回実行されました。 各起動の前に、
ddアプリケーションを使用してディスクに「ゼロ」が書き込まれました。
- dd if = / dev / zero of = / dev / vdb bs = 4096 conv = noerror
オペレーティングシステムのディスクキャッシュをフラッシュしました。
- echo 3> / proc / sys / vm / drop_caches
テストはオペレーティングシステムがインストールされているのと同じ物理アレイで実行されたため、システムアプリケーションは取得した値に影響を与える可能性があります。 したがって、
中央値が結果値として採用されました。 いくつかの開始点では、値は桁違いに異なっていました。
テスト用に、サイズが50,000 MBの仮想ディスクが作成されました。 サイズは偶然ではありません。 仮想サーバーの最も一般的なディスクサイズとして。 すべてのディスクは、
virtioドライバーを使用して仮想マシンに接続されました。 準仮想ドライバー(
virtio )は、仮想環境でメインデバイスを操作するときに使用されます。 通常、これらのドライバーを使用すると、仮想ディスクサブシステムのパフォーマンスが向上します。 これらのドライバーは、バージョン2.6.25以降の
Linuxカーネルに存在し
ます 。
最初のテスト方法では、
sda4 (後で仮想マシン用の
LVMとディスクの両方を作成)を使用し、パラメーターに
fio-size = 50Gを追加しました。
テストのために、2番目の方法では、
LVMボリュームグループが作成され、この
LVMグループでは、仮想マシンの場合と同様に500,000 MBのパーティションが作成されました。
RAWおよび
Qcow2形式の
DIRリポジトリをテストする場合
、ディスクイメージ自体は、
/ vmディレクトリ内の
ext4ファイルシステム内のファイルとして配置されていました。
5番目のテスト方法では、1つのパスが作成され、ディスクは「ゼロ」で満たされませんでした。 ファイルシステムのスナップショットを撮った直後にパフォーマンスに興味があったので。
結果表いや | 保管タイプ | テスト結果の読み取り、IOPS | テスト結果の記録、IOPS |
1 | 物理サーバーでの読み取り/書き込み | 843 | 331 |
2 | 物理サーバー上のLVMパーティション | 848 | 559 |
3 | DIR上の仮想マシン(RAW) | 668 | 545 |
4 | DIR上の仮想マシン(Qcow2) | 621 | 463 |
5 | DIR(Qcow2)上の仮想マシン+スナップショット | 615 | 56 |
6 | LVM上の仮想マシン | 854 | 557 |
表のデータに基づいて、次の結論に達することができます。
- 最速は、 LVMストレージの使用です。
- しかし、同時に、 RAWストレージは、サイズ変更、ディスクレイアウトの変更、変換なしの別の仮想化での実行、 Qcow2形式への変換など、さまざまな操作を最も簡単に実行できます 。
- Qcow2の利点は、 ファイルシステムのスナップショット(スナップショット)をサポートしていることですが、それらを使用すると記録が大幅に遅くなります。 スナップショットに関連するすべてのブロックの上書きが完了するのを待つため、書き込み速度が低下します。