raw 是什么
raw 是把虚拟磁盘按字节原样存放的裸格式:文件内容就是磁盘的扇区数据,没有头部元数据。它兼容面最广,dd、云平台导入、各类虚拟化工具都能直接识别,I/O 路径也最短;配合稀疏文件可以只占用实际写入的空间,代价是没有内置快照、压缩与校验。
基本信息
| 结构 | 无头的裸数据,任何工具可读写 |
|---|---|
| 稀疏 | 支持(未写块不占物理空间) |
| 优势 | 兼容与性能好,可被 dd 与云平台直接识别 |
| 劣势 | 无内置快照 / 压缩 / 校验,传输体积大 |
| 常用工具 | qemu-img、dd、virt-convert |
| 常见用途 | 云镜像导入、块设备直写、迁移中转格式 |
典型使用场景
- 导入自定义镜像到云平台(多数平台接受 raw 与 qcow2)
- 把镜像直接写入块设备或磁盘,做物理机部署
- 迁移前统一格式,避免目标平台不识别 qcow2 或 vmdk
- 性能对照测试时排除镜像格式自身开销
- 备份与传输管道里配合 dd、gzip 做流式处理
创建、识别与转换
创建、识别与转换
qemu-img create -f raw disk.img 20G # 创建 20G 的 raw 镜像
qemu-img info disk.img # file format: raw,同时看虚拟与实际占用
qemu-img convert -p -O raw src.qcow2 dst.img # qcow2 转 raw,-p 显示进度
qemu-img convert -S 4k -O raw a.qcow2 b.img # 保留空洞,产出稀疏文件
qemu-img resize disk.img +10G # 扩容虚拟盘(操作前先做备份)
dd if=disk.img of=/dev/sdb bs=4M conv=fsync # 直写块设备,务必先核对目标盘raw 与 qcow2 对比
| 维度 | raw | qcow2 |
|---|---|---|
| 元数据 | 无 | 有头部,记录格式与快照信息 |
| 快照 | 不支持内部快照 | 支持内部快照 |
| 按需增长 | 依赖稀疏文件 | 原生按需增长 |
| 性能 | I/O 路径最短 | 有映射开销,常规场景差异不大 |
| 体积 | 传输体积大(除非稀疏) | 体积小,便于分发 |
需要精简置备效果时用 qemu-img create 或 dd conv=sparse 生成稀疏文件;部分复制与传输工具会把稀疏文件展开成实占,跨工具流转前先确认真实占用大小。
云平台导入镜像通常只认 raw 与 qcow2,vmdk 等格式需先转换;导入后平台会按自己的卷格式重建,raw 只是传输载体,不决定运行时的置备方式。