[TOC]
## 一 KVM磁盘格式
### 1.两种磁盘格式
* raw:
裸格式,占用空间比较大,不适合远程传输,不支持快照功能,性能较好
* qcow2:
cow(copy on write)占用空间小,适合传输,支持快照,性能比raw差一点点
### 2.磁盘相关命令
1. 创建相应格式磁盘
```sh
qemu-img create test.raw 1G
qemu-img create -f qcow2 test.qcow2 1G
```
2. 查看虚拟磁盘信息
`qemu-img info test.raw`
3. 调整虚拟磁盘容量大小
`qemu-img resize test.raw +1G`
4. 磁盘格式转换
会多出一份新格式文件,源文件保留
```sh
qemu-img convert -f raw -O qcow2 test.raw test2.qcow2
[root@noah-tp opt]# ll test* -h
-rw-r--r--. 1 root root 193K Nov 14 22:45 test2.qcow2
-rw-r--r--. 1 root root 193K Nov 14 22:42 test.qcow2
-rw-r--r--. 1 root root 2.0G Nov 14 22:44 test.raw
```
### 3.实际操作演示
以修改centos7mb.raw为例
```
#1.停止虚拟机
virsh shutdown centos7mb
#2.转换虚拟机磁盘格式为qcow2
qemu-img convert -f raw -O qcow2 /opt/centos7-mb.raw /opt/centos7-mb.qcow2
#3.手动修改虚拟机配置文件
virsh edit centos7mb
##搜索disk,将driver name 和source file中的raw修改为qcow2
-->
-->
#4.重启虚拟机
virsh start centos7mb
```
## 二 快照和克隆
### 1.虚拟机快照[qcow2格式]
只有qcow2格式的虚拟机能使用快照功能
1. 创建快照
```
virsh snapshot-create centos7mb
```
2. 查看快照
```sh
virsh snapshot-list centos7mb
Name Creation Time State
------------------------------------------------------------
1542207368 2018-11-14 22:56:08 +0800 running
1542207451 2018-11-14 22:57:31 +0800 running
```
4. 还原快照
`virsh snapshot-revert centos7mb --snapshotname 1542207368`
5. 删除快照
`virsh snapshot-delete centos7mb --snapshotname 1542207368`
### 2.虚拟机克隆
**完整克隆**
实现方法:virt-clone -o 源虚拟机名 -n 新虚拟机名 -f 新虚拟机磁盘文件名 --auto-clone
`virt-clone -o centos7mb -n web02 -f web02.qcow2 --auto-clone`
**链接克隆**
1. 创建回写文件
`qemu-img create -f qcow2 -b cetnos7mb.qcow2 web03.qcow2`
2. 以此回写文件创建虚拟机
通过`--boot hd`参数直接从硬盘启动的方式,加载别人已经做好的模板镜像,免去了从iso镜像安装的过程
```
virt-install --virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name web03 \
--memory 1024 \
--vcpus 1 \
--disk /opt/web03.qcow2,format=qcow2,size=10 \
--boot hd \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole
```