仮想マシンのクローン作成が遅い理由の1つ
故障現象
R&D部門は、新しいサーバーを購入し、scpを使用して古いサーバー上の仮想マシンのディスクイメージをコピーし、virt-cloneコマンドを使用して仮想マシンのクローンを作成しました。クローン作成の速度が非常に遅く、10分以上かかっていることがわかりました。 、古いサーバーに複製されます。2、3分しかかかりません。この仮想マシンのディスクイメージのファイルサイズは120GBです。
問題の原因
調査の結果、新しいマシンの仮想マシンイメージが占める実際のスペースは120GBであるのに対し、古いマシンの仮想マシンイメージは5.5GBであることがわかりました。qemu-img convert
イメージ形式の変換は、新しいマシンでクローンを作成するたびに呼び出されます。プロセスは非常に遅いです。
解決
qemu-img convert
コピーした画像をフォーマット変換に使用し、変換した画像ファイルに置き換えます。コマンドは次のとおりです。
# qemu-img convert -f qcow2 -O qcow2 /data/template.qcow2 /data/new-template.qcow2
# mv /data/new-template.qcow2 /data/template.qcow2
# virt-clone -o template -n new-host -f /data/new-host.qcow2
トラブルシューティングプロセス
ディスクIOの表示
rpmパッケージsysstatをインストールし、クローン作成中にiostat -d 2
コマンドを実行すると、ディスクの書き込み速度が非常に遅いことがわかります。ただし、ISOディスクイメージファイルをこのディスクにコピーする場合、速度は1秒あたり150 MBを超えており、ディスクIOに問題がないことを示しています。
CPUとメモリの使用量を表示する
クローン作成中にtopコマンドを使用したところ、メモリバフ/キャッシュが大量にあり、qemu-imgプロセスが大量のCPUを消費しているps -ef | grep qemu-img
ことがわかりました。プロセスの詳細を確認し、プロセスがのPPIDを介してvirt-clone
開始されていることを確認できます。プロセス。
ディスクミラーリングに関する情報を比較する
新旧のマシンでコマンドを実行するls -lh /data/template.qcow2
とdu -sh /data/template.qcow2
、新旧のマシンにdu -sh
表示されるファイルの実際の占有容量は、それぞれ120GBと5.5GBであるqemu-img info /data/template.qcow2
ことがわかります。また、ミラーで実際に使用されているディスクサイズを確認することもできます。
原因分析
scpを使用してイメージファイルをコピーすると、qcow2ファイルの空き領域も実際のコンテンツとしてディスクに書き込まれるため、ディスクファイルの実際のサイズが非常に大きくなり、クローン作成中に非常に遅くなります。