KVM 存储虚拟化
type
status
date
slug
summary
tags
category
icon
password
一、命令行工具管理虚拟磁盘
1. 查看虚拟磁盘
- 显示虚拟机
vm01_centos79的磁盘设备及其对应的磁盘文件路径。
2. 添加磁盘
2.1 创建磁盘文件
-f qcow2:指定磁盘格式为 qcow2。
- 创建成功后可使用
ls命令查看文件。
2.2 将磁盘附加到虚拟机
-target vdb:在虚拟机中显示为vdb设备。
-cache writeback:设置缓存模式为“回写”。
-persistent:配置永久生效。
磁盘缓存模式说明:
- writeback(回写):数据先写入缓存,再异步写入磁盘,性能高,但可能丢失数据。
- writethrough(通写):数据同时写入缓存和磁盘,安全性高,性能较低(默认模式)。
3. 删除磁盘
- 从虚拟机中卸载指定磁盘设备。
二、QCOW2 格式磁盘文件
kvm虚拟化格式:
1、RAW(裸格式) 一次性分配硬盘所有空间
- 优点:可以顺序写磁盘,读写性能性能好。
- 缺点:raw格式存在不支持快照,不方便传输等缺点。
举个例子:假设我们为KVM虚拟机分配了50GB的磁盘,若使用raw格式,则会立刻分配这50GB的空间,这样做的好处就是磁盘底层存储数据的磁盘扇区是连续的。如果我们仅使用了其中的2GB空间,但在传输时依旧要传输50GB空间。
2、QCOW2
- 优点:占用空间小,支持快照。
- 缺点:性能相比raw差一些。
举个例子:假设我们为KVM虚拟机分配了50GB的磁盘,若使用qcow2格式,不会立刻分配50GB空间,而是根据需求写时复制,当空间不足时再去系统申请格式化磁盘,因此底层存储的数据扇区可能不是连续的,因此性能相比于raw格式会差一些。如果我们仅使用了其中的2GB空间,在传输时仅需要传输2GB的空间。
1. 创建磁盘文件
- 创建 8GB 的 qcow2 格式磁盘。
2. 查看磁盘信息
- 显示磁盘格式、虚拟大小、实际大小、集群大小等信息。
3. 差量镜像(快速创建虚拟机)
3.1 创建差量镜像
-b:指定基础镜像(backing file),差量镜像仅记录与基础镜像的差异。
3.2 准备配置文件
- 需修改以下内容:
- 虚拟机名称
- UUID
- 磁盘文件路径
- MAC 地址
- VNC 端口(-1自动分配无需修改)等
3.3 创建并启动虚拟机
4. 批量部署虚拟机脚本
三、存储池(Storage Pool)
作用:存储磁盘映像的位置
个人虚拟化软件:存储池自动创建
企业虚拟化软件:手动创建
例:使用virt-manager创建存储池
编辑—>连接详情—>存储

1. 存储池类型
- 本地存储池:本地目录存储磁盘文件。
- 网络存储池:支持虚拟机在线迁移(如 NFS)。
2. 查看存储池
3. 在线迁移准备
3.1 配置 NFS 服务端(如 192.168.140.11)
3.2 客户端挂载测试
4. 创建 NFS 存储池(通过图形界面或命令行)
- 类型:
netfs(Network Exported Directory)
- 名称:
pool_by_nfs
- 目标路径:
/pool_by_nfs
- 主机名:
192.168.140.11
- 源路径:
/kvm_image

5. 添加主机名解析
6. 测试在线迁移
-live:在线迁移,虚拟机不中断。
-unsafe:强制迁移(需谨慎使用)。
四、注意事项
1. 缓存模式选择
writeback性能高但风险大,生产环境慎用。
writethrough为默认模式,推荐用于数据安全性要求高的场景。
2. 差量镜像使用
- 差量镜像依赖于基础镜像,删除或移动基础镜像会导致差量镜像不可用。
3. 迁移前提
- 在线迁移要求:
- 共享存储(如 NFS)
- 网络互通
- 主机间 libvirt 配置兼容
五、总结
- KVM 存储虚拟化支持多种磁盘格式(如 qcow2)、缓存模式和存储池类型。
- 差量镜像可快速部署虚拟机,适合模板化部署。
- 网络存储池是实现虚拟机在线迁移的关键。
- 命令行工具
virsh、qemu-img是管理存储的核心工具。
Loading...