BTRFSスナップショットを多用するUbuntu 14.04アプリケーションアプライアンスがあります。アプリケーションはハイパーバイザーに拘束されず、問題を解決する必要がある場合に備えて、スナップショットをVMイメージとともに保存する必要があります。 BTRFSスナップショットの代わりにスナップショット方式に組み込まれているハイパーバイザーを使用するには、VMがハイパーバイザーへのAPIアクセスを必要とするため、より多くの作業が必要です。これはセキュリティ上の理由から望ましくありません。マシンをシャットダウンしたり、ハイパーバイザーAPIにアクセスしたりすることなく、アプライアンスのコマンドラインから直接sshを介してBTRFSスナップショットファイルシステムサブボリュームにリモートでアクセスできます。
以前は、このアプリケーションをvmwareベースのハイパーバイザーにデプロイしました。私はいつもvmwareディスクでシンプロビジョニングを使用し、パフォーマンスの問題をまったく見つけませんでした。私はこのデバイスで多くのテストを実行し、同時に複数のテストを実行するために複数のデバイスを一度に展開する傾向があるため、シンプロビジョニングを使用しています。
ディスクの増加が制御を超えないように、スクリプトでストレージを過度にコミットしないように非常に注意しています。シンプロビジョニングされたディスク要件が増加したときに発生するI / Oドロップも目立たない。
KVMをサポートする必要があり、ディスクをシン/スパスプロビジョニングのままにしたいのですが、CoWファイルシステムを他のCoWファイルシステムと混在させることは、過度に重複した書き込みとディスクのために悪いことを読んでいます。アイデアなどの一般的な例は、BTRFS形式のボリュームに格納されているqcow2形式のディスクを使用して仮想マシンを実行することです。私にとっては、その逆は本当です。 qcow2イメージで実行されている仮想マシンにBTRFS形式のファイルシステムを持たせたい。 qcow2イメージの上にBTRFSスナップショットがパフォーマンスに与える影響の詳細は見つかりませんでした。
質問:KVMが使用するディスクサイズによって大きくなる他のスパースファイル形式はありますか?
私はまれなrawファイルを使ってナビゲートしましたが、cp、untar / gunzipのダウンロードなどではまれに保つことができないようです。希薄なオリジナルファイルを使用したい場合は、単に移動できないため、展開が難しいようです。
答え1
問題は、KVMがディスクイメージングをまったくサポートしていないことです。 vmwareとは異なり、KVMはオールインワンソリューションです。ただ仮想化ソリューションを構築するための仮想化機能を提供します。
...コア仮想化インフラストラクチャを提供するロード可能なカーネルモジュールkvm.koと、プロセッサ固有のモジュールkvm-intel.koまたはkvm-amd.koで構成されています。 -http://www.linux-kvm.org/page/Main%5Fページ
一般に、KVM ベースのソリューションには次の組み合わせが含まれます。
- KVM - CPUの仮想化機能にアクセスするために使用されます。
- QEMU- BIOS/UEFIなどのエミュレーションビットを提供
- その他のライブラリとツール - 例:ライブラリ仮想マシンそして仮想マシンマネージャ
QEMU
QEMUは2つをサポートしています。国のディスク形式(VDIなどの他の形式もあります):
生の
生ディスクイメージ形式(デフォルト)。この形式の利点は、シンプルで
他のすべてのエミュレータに簡単にエクスポートできることです。
ファイルシステムがエクスプロイト(たとえば、Linuxのext2またはext3、WindowsのNTFS)をサポートしている場合、作成されたセクタのみがスペースを予約します。 - 人々 qemu-img
Q小/2
QEMU イメージ形式は最も一般的な形式です。これにより、
小さなイメージ(
Windowsなどのファイルシステムがエクスプロイトをサポートしていない場合に
便利です)、オプションのAES暗号化、zlibベースの圧縮、および複数のVMスナップショットのサポートを得ることができます。 - 人々 qemu-img
ライブラリ仮想マシン
libvirt は、ディスクイメージを保存するいくつかの方法を提供します。
- ディレクトリバックエンド
- ローカルファイルシステムバックエンド
- ネットワークファイルシステムバックエンド
- 論理バックエンド - LVMですが、シンプロビジョニングはありません:(
- ディスクバックエンド
- iSCSIバックエンド
- SCSIバックエンド
- マルチパスバックエンド
- RBD(RADOSブロックデバイス)バックエンド
- シェパードバックエンド
- Gluster バックエンド
- ZFSバックエンド
- Virtuozzoストレージバックエンド
これを確認し、あなたの要件を満たすものがあることを確認してください。バラよりhttps://libvirt.org/storage.html、またはより良いhttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/chap-Virtualization_Administration_Guide-Storage_Pools-Storage_Pools.html
答え2
私の個人的な経験は、希少機能を備えたホストファイルシステムで生ファイルを使用できることです。
ext4 ホストファイルシステムに生ファイルがあります。 VMをシャットダウンした後、ソースファイル(ループデバイスとしてマウントされている)で「zerofree」を使用でき、cp --sparse = always oldfile newfileを使用するとファイルサイズを減らすことができます。私はテストシステムの画像を「保存」するためだけにこの方法を使用しているので、使用中にファイルがまれに保持されるかどうかはわかりません。
ところで、スナップショットが多いbtrfsは良くない考えのようです。 https://btrfs.wiki.kernel.org/index.php/Gotchas#Having_many_subvolumes_can_be_very_slow