Category:
Linux
KVM でディスクイメージの形式として QCOW2 を利用するとディスク容量が節約できたりスナップショットを取ったりできるので便利ですが、使い込んでゆくとパフォーマンスが気になってきます。QCOW2 はデフォルトではディスク領域を事前に割り当てない (アプリケーションレイヤで sparse file 相当の処理を実装している) ため、ディスク領域を事前に割り当てた raw 形式等と比較してディスクアクセス (特に利用領域の増加時) のコストが大きくなります。したがって、VM のワークロードによってはこれがボトルネックとなる可能性があります。
QCOW2 の領域の事前割り当てモード (preallocation mode) の設定を変更することで、このようなコストを抑えることが可能です。領域の事前割り当てモードは、ディスクイメージごとに作成時に決定されます。ディスクイメージの作成後に事前割り当てモードを変更するには、以下のように
QCOW2 の領域の事前割り当てモード (preallocation mode) の設定を変更することで、このようなコストを抑えることが可能です。領域の事前割り当てモードは、ディスクイメージごとに作成時に決定されます。ディスクイメージの作成後に事前割り当てモードを変更するには、以下のように
qemu-img convert
コマンドを使用して変換を行います (オンラインで変更することはできません)。qemu-img convert -p -f qcow2 -O qcow2 -o preallocation=metadata mydisk.qcow2.img new-mydisk.qcow2.imgpreallocation mode には off, metadata, full の 3 種類が指定可能です。off では事前割り当てを行いません (デフォルト)。metadata では領域の管理情報のみを事前に割り当てます。full では管理情報に加えて実際のデータ領域も事前に割り当てます。
Comments