ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
QCOW2(QEMU Copy-On-Write version 2、拡張子 .qcow2)は、オープンソース仮想化エンジン QEMU および KVM で標準的に使われる仮想ディスクフォーマットです。初代 QCOW から進化したバージョン 2 で、2009 年頃から普及し、現在は QCOW2 の改良版や QCOW3(QCOW2 内部バージョン 3)として継続的にメンテナンスされています。
QCOW2 が他のフォーマットと比べて優れているのは、仮想ディスクに求められる機能を一通り内包している ことです。具体的には次のような機能をフォーマットレベルでサポートします。
- スパース割り当て(薄い割り当て) — 100 GB の仮想ディスクを作っても、初期サイズは数 MB。使った分だけ拡張
- コピーオンライト(CoW) — 親ディスクからの差分のみを記録する「バッキングファイル」
- 内部スナップショット — 仮想ディスク 1 ファイルの中に複数の時点スナップショットを保存
- 暗号化 — AES-128(旧)/ LUKS(現在推奨)による中身の暗号化
- 内部圧縮 — クラスタ単位の zlib 圧縮(読み取り専用ベースに適する)
- ゼロクラスタ — 0 で埋まった領域はディスク上に書かない
これらの機能のおかげで、QCOW2 は OpenStack、Proxmox VE、oVirt、libvirt、CloudStack、Red Hat Virtualization、SUSE KVM など、Linux ベースの仮想化・クラウド基盤で事実上の標準として採用されています。Windows 側の VHDX、VMware の VMDK と並ぶ仮想ディスク 3 大フォーマットの一角と言えます。
内部構造
QCOW2 ファイルは以下のような構造を持ちます。
| 要素 | 役割 |
|---|---|
| ヘッダ | マジックナンバー (QFI\xfb)、バージョン、クラスタサイズ、暗号化方式、バッキングファイル名等 |
| L1 テーブル / L2 テーブル | 仮想アドレス → ファイル内オフセットの 2 段階マッピング |
| クラスタ | 実データのブロック。デフォルト 64 KB |
| リファレンスカウント表 | 各クラスタの参照数(スナップショット用) |
| スナップショットテーブル | 内部スナップショットのメタデータ |
仮想ディスクへの書き込みは L1 → L2 → クラスタ という 2 段間接参照を経由するため、raw に比べてオーバーヘッドがあります。代わりに 未割り当て領域はファイルとして存在しない ため、実消費量が小さくなります。
主な用途
- QEMU / KVM 仮想マシンの OS ディスク — Linux サーバ仮想化の標準
- Proxmox VE / oVirt のディスク — Linux 系仮想化アプライアンスの内部形式
- OpenStack Glance イメージ — クラウド OS テンプレートとして配布
- VM スナップショット — 内部スナップショット機能で「実験前に保存→失敗したら戻る」を高速に
- 差分ディスクによるテンプレート展開 — 1 つの「ゴールデンイメージ」から多数の VM を差分で起動
- 暗号化が必要な仮想ディスク — LUKS 統合により VM 単位で暗号化
- クラウドイメージ配布 — Ubuntu Cloud Images、CentOS Cloud Images などは
.qcow2で配布
関連形式との比較
| 形式 | 圧縮 | スナップショット | 暗号化 | 性能 | 主な使い手 |
|---|---|---|---|---|---|
| QCOW2 | あり | 内部 | LUKS | 中 | QEMU / KVM |
| raw / IMG | なし | 外部のみ | 外部のみ | 最速 | 共通 |
| VHDX | なし | 差分ファイル | BitLocker 連携 | 中〜高 | Hyper-V |
| VMDK | 分割可 | 内部・外部 | VMware 連携 | 中 | VMware |
| VDI | なし | 外部 | なし | 中 | VirtualBox |
性能が最優先(DB 用途等)なら raw / preallocation=full の QCOW2、機能性と省ディスクを両立したいなら 標準 QCOW2 が選ばれます。Windows ハイパーバイザとの相互運用が必要なら VHDX / VMDK へ変換します。
コマンド・ツール
QCOW2 操作はすべて qemu-img で完結します。
# 100 GB の QCOW2 を作成
qemu-img create -f qcow2 disk.qcow2 100G
# 情報を見る
qemu-img info disk.qcow2
# 出力例:
# file format: qcow2
# virtual size: 100 GiB (107374182400 bytes)
# disk size: 196 KiB
# cluster_size: 65536
# バッキングファイル付きの差分ディスクを作成
qemu-img create -f qcow2 -F qcow2 -b base.qcow2 child.qcow2
# 内部スナップショット
qemu-img snapshot -c snap1 disk.qcow2 # 作成
qemu-img snapshot -l disk.qcow2 # 一覧
qemu-img snapshot -a snap1 disk.qcow2 # 適用(戻す)
qemu-img snapshot -d snap1 disk.qcow2 # 削除
# サイズ拡張
qemu-img resize disk.qcow2 +50G
# 他形式への変換
qemu-img convert -p -O vmdk disk.qcow2 disk.vmdk
qemu-img convert -p -O raw disk.qcow2 disk.raw
# 暗号化(LUKS)
qemu-img create --object secret,id=sec0,data=mypassword \
-f qcow2 -o encrypt.format=luks,encrypt.key-secret=sec0 \
enc.qcow2 50G
注意点
- 本番性能を引き出すには
preallocation=metadataやpreallocation=falloc推奨。スパース割り当てによる動的拡張のオーバーヘッドを抑えられる - バッキングファイル(親ディスク)は 絶対に変更しない。変更すると全ての子 QCOW2 が壊れる。読み取り専用属性で保護する運用が望ましい
- 内部スナップショットを多用すると サイズが膨張し性能が落ちる。長期運用では外部スナップショット(バッキングファイル方式)に寄せる
- QCOW2 の
cacheモードは要検討。cache=noneはホスト OS のページキャッシュをバイパスし、データ整合性に有利だが性能は条件次第 - 古い AES 暗号化(QCOW2 v2 旧仕様)は脆弱で廃止予定。新規は必ず LUKS を使う
- Windows VM のディスクを QCOW2 にすると、起動・I/O 性能は VirtIO ドライバの有無で大きく変わる。virtio-blk / virtio-scsi ドライバを入れることで性能が大幅に改善する
- QCOW2 → raw の変換は容量が一気に膨らむ(スパースが解凍されるため)ので、変換先のディスク残量を要確認
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?