仮想マシン環境を扱っていると、異なる仮想化ソフトウェア間でディスクイメージを移行したり、ファイルサイズを削減したりしたい場面が必ず訪れます。
そのような時に強力な助けとなるのが、qemu-img convertコマンドです。
VDI、VMDK、QCOW2、RAWなど、さまざまなディスクイメージ形式を相互に変換できるこのコマンドは、仮想化環境を扱うエンジニアにとって欠かせないツールと言えるでしょう。
本記事では、qemu-img convertの基本的な使い方から、各ディスクイメージ形式の特徴、圧縮・最適化の方法まで詳しく解説していきます。
qemu-img convertの基本的な使い方
それではまず、qemu-img convertコマンドの基本的な構文と使い方について解説していきます。
qemu-img convertの基本構文
qemu-img convertコマンドの基本的な構文は以下のとおりです。
qemu-img convert -f 入力フォーマット -O 出力フォーマット 入力ファイル 出力ファイル
例:VMDK形式をQCOW2形式に変換
qemu-img convert -f vmdk -O qcow2 input.vmdk output.qcow2
「-f」オプションで入力ファイルの形式を指定し、「-O」オプションで出力ファイルの形式を指定します。
入力形式の指定(-f)は省略可能で、qemu-imgが自動判別してくれる場合がほとんどです。
ただし、明示的に指定することで変換ミスを防ぐことができるため、指定しておく習慣をつけるとよいでしょう。
主なディスクイメージ形式の概要
qemu-img convertが対応する主なディスクイメージ形式を整理しておきましょう。
| 形式名 | 拡張子 | 主な用途 | 特徴 |
|---|---|---|---|
| QCOW2 | .qcow2 | QEMU/KVM標準 | スナップショット・圧縮・暗号化対応 |
| VMDK | .vmdk | VMware | VMware製品全般で使用 |
| VDI | .vdi | VirtualBox | Oracle VirtualBox標準形式 |
| RAW | .raw / .img | 汎用 | シンプルで高速、圧縮なし |
| VHD / VHDX | .vhd / .vhdx | Microsoft Hyper-V | Windows環境での仮想化 |
用途に応じて適切な形式を選択することが、パフォーマンスと互換性の両立につながります。
変換前に確認すべきイメージ情報の確認コマンド
変換を行う前に、対象のイメージファイルの情報を確認しておくことが重要です。
qemu-img infoコマンドを使うことで、ファイル形式・仮想サイズ・実際のディスク使用量・スナップショット情報などを確認できます。
qemu-img info myimage.vmdk
(出力例)
image: myimage.vmdk
file format: vmdk
virtual size: 50 GiB
disk size: 12 GiB
仮想サイズ(virtual size)と実際のディスク使用量(disk size)の差が大きい場合、スパースイメージ(使用分だけファイルサイズが増加する形式)である可能性が高いです。
主要なイメージ変換パターンの実践
続いては、実際によく使われるディスクイメージ変換のパターンを具体的に確認していきます。
VMDKからQCOW2への変換
VMware環境からQEMU/KVM環境への移行時に最もよく使われるのが、VMDKからQCOW2への変換です。
qemu-img convert -f vmdk -O qcow2 vmware_disk.vmdk kvm_disk.qcow2
VMwareで作成したディスクイメージをQEMU/KVM環境に移行する際に使います。
変換後のQCOW2ファイルは、QEMU/KVMの仮想マシンにそのまま接続して起動できます。
ただし、ゲストOS内のドライバー設定(特にVirtIOドライバー)の変更が必要になる場合があるため、移行後の動作確認は入念に行いましょう。
VDIからQCOW2への変換
VirtualBoxからQEMU/KVM環境への移行には、VDIからQCOW2への変換がよく使われます。
qemu-img convert -f vdi -O qcow2 virtualbox_disk.vdi kvm_disk.qcow2
VirtualBoxで構築した仮想マシンをKVM環境に移植する際に活用できる変換です。
VirtualBoxとQEMU/KVMはデバイスエミュレーションの実装が異なるため、ネットワークドライバーやグラフィックドライバーの設定変更が必要になることがあります。
RAWからQCOW2への変換と圧縮
RAW形式はシンプルな構造ですが、ファイルサイズが大きくなりやすいです。
QCOW2に変換することでサイズを削減でき、さらに圧縮オプションを加えることでファイルサイズをさらに小さくできます。
qemu-img convert -f raw -O qcow2 -c raw_disk.img compressed.qcow2
(-c オプションで圧縮を有効化)
-c(–compress)オプションを指定すると、変換後のQCOW2ファイルが圧縮された状態で保存されます。
ディスクスペースを大幅に節約できる反面、I/Oアクセス時に展開処理が入るため、わずかながらパフォーマンスに影響する場合があります。
変換時の最適化オプションと注意点
続いては、変換をより効果的に行うためのオプションと、変換時に注意すべきポイントについて確認していきましょう。
スパースファイルと最適化オプション
ディスクイメージの変換において、スパースファイルの扱いは重要なポイントです。
スパースファイルとは、ゼロのデータ領域をファイルシステムレベルで省略して保存するファイル形式のことです。
qemu-img convertに-S(–sparse-size)オプションを指定することで、変換後のファイルをスパースファイルとして最適化できます。
qemu-img convert -O qcow2 -S 4k input.raw output.qcow2
(4kブロック単位でスパース最適化を行う例)
また、-pオプションを指定することで変換の進捗をプログレスバー形式で表示できます。
大きなイメージファイルを変換する際は、-pオプションを付けておくと変換の進行状況を把握しやすくなるでしょう。
マルチスレッド変換による高速化
大きなディスクイメージの変換は時間がかかることがあります。
qemu-imgの新しいバージョンでは、-T(–target-image-opts)オプションなどを活用することで変換速度を改善できる場合があります。
また、IOスレッド数をチューニングすることで、マルチコアCPU環境での変換速度を高めることも可能です。
変換元ファイルと変換先ファイルを別々の物理ディスクに配置することも、I/Oのボトルネックを回避して変換速度を上げる有効な手段と言えるでしょう。
大容量ディスクイメージの変換は時間がかかります。-pオプションで進捗表示を有効にし、変換元と変換先を別ディスクに配置することで、変換速度を大幅に改善できます。
変換後のイメージ検証方法
変換が完了したら、変換後のイメージが正常かどうかを検証することが大切です。
qemu-img checkコマンドを使うことで、QCOW2形式イメージのデータ整合性を検証できます。
qemu-img check output.qcow2
(正常な場合)No errors were found on the image.
エラーが検出された場合は、再度変換を行うか、変換元のイメージが破損していないかを確認する必要があります。
重要なデータを含む仮想マシンの変換を行う際は、事前に変換元のバックアップを必ず取っておくことをお勧めします。
実用的な変換ユースケースと活用シーン
続いては、qemu-img convertが実際に役立つユースケースと活用シーンを具体的に確認していきましょう。
仮想マシンのプラットフォーム移行
qemu-img convertの最も一般的な用途が、仮想マシンの異なるプラットフォームへの移行です。
たとえば、開発環境でVirtualBoxを使っていた仮想マシンを、本番環境のProxmox VE(QEMU/KVM)に移行する際に活用できます。
また、VMwareライセンスのコスト削減を目的として、VMware仮想マシンをKVM環境に一括移行するプロジェクトでも広く使われています。
クラウドプロバイダーへの移行(AWS、GCP、Azureへのリフトアンドシフト)においても、ディスクイメージのフォーマット変換が必要になる場面があります。
ディスクイメージのアーカイブと保存
使用頻度の低い仮想マシンをアーカイブする際にも、qemu-img convertが役立ちます。
QCOW2の圧縮オプションを使ってイメージを圧縮することで、ストレージの使用量を大幅に削減できます。
長期保存するイメージには、よく知られた標準フォーマット(RAWやQCOW2)を選ぶことで、将来的なツール変更に対しても互換性を維持しやすくなるでしょう。
クラウドイメージの作成と展開
クラウド環境向けのイメージ作成にも、qemu-img convertは活躍します。
たとえば、AWSではAMI(Amazon Machine Image)の作成にRAWまたはVMDK形式が必要なケースがあり、QCOW2からの変換が必要になります。
Google Cloud PlatformへのイメージアップロードにはRAW形式が求められるため、QCOW2をRAWに変換してtarアーカイブに格納するという手順がよく使われます。
まとめ
本記事では、qemu-img convertの基本的な使い方、主要な変換パターン、最適化オプション、実用的なユースケースについて解説しました。
VMDK・VDI・QCOW2・RAWといったディスクイメージ形式を相互に変換できるqemu-img convertは、仮想化環境の移行やアーカイブ、クラウドへの展開において非常に重要なツールです。
圧縮オプションやスパースファイル最適化を活用することで、ストレージの有効活用も実現できます。
仮想マシン管理の現場でぜひ積極的に活用してみてください。