老男孩IT教育,只培养技术精英

全国免费咨询电话:400-609-2893
KVM虚拟机的磁盘、快照与克隆详解

    /    2018-12-25

1. 磁盘管理

# 创建一块qcow2的虚拟硬盘(仅测试使用,无实际意义)
[root@kvm data]# qemu-img create -f qcow2 oldboy.qcow2 2G
[root@kvm data]# ls -l

查看当前虚拟机硬盘信息

[root@kvm ~]# qemu-img info /data/oldboy.raw 
image: /data/oldboy.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.1G

raw转qcow2格式:

# 参数说明
[root@kvm data]# qemu-img  --help |grep convert 
qemu-img convert [-f fmt] [-O output_fmt] filename  output_filename

转换原有磁盘格式

[root@kvm data]# qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2

修改oldboy7 虚拟机配置文件

[root@kvm data]# virsh edit oldboy7 
修改前:
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/data/oldboy.raw'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
修改后:
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/oldboy.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>

删除原磁盘文件

[root@kvm data]# \rm oldboy.raw

启动虚拟机

[root@kvm data]# virsh start oldboy7 

[root@kvm data]# virsh list --all 
 Id    名称                         状态
----------------------------------------------------
 22    oldboy7                          running

2. KVM虚拟机添加硬盘

进入硬盘存放目录

[root@kvm ~]# cd /data

创建一块新的硬盘

[root@kvm data]# qemu-img create -f qcow2 oldboy7-add01.qcow2 5G 
Formatting 'oldboy7-add01.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off

查看创建的硬盘信息

[root@kvm data]# qemu-img info oldboy7-add01.qcow2 
image: oldboy7-add01.qcow2
file format: qcow2
virtual size: 5.0G (5368709120 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

为虚拟机添加硬盘

[root@kvm data]# virsh attach-disk oldboy7 /data/oldboy7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
# 成功附加磁盘

# 成功附加磁盘

参数说明:

调整已添加硬盘的大小

[root@kvm data]# virsh --help |grep disk 
    attach-disk                    #附加磁盘设备
    detach-disk                    #分离磁盘设备

将已挂载的磁盘卸载下来

[root@kvm data]# virsh detach-disk oldboy7  vdb 
成功分离磁盘

调整磁盘大小

# 使用参数
[root@kvm data]# qemu-img --help |grep resize
  resize [-q] filename [+ | -]size

增加1G容量

[root@kvm data]# qemu-img resize oldboy7-add01.qcow2 +1G
Image resized.
[root@kvm data]# qemu-img info oldboy7-add01.qcow2 
image: oldboy7-add01.qcow2
file format: qcow2
virtual size: 6.0G (6442450944 bytes)
disk size: 260K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

重新讲磁盘添加到虚拟机

[root@kvm data]# virsh attach-disk oldboy7 /data/oldboy7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2

以下在虚拟机中操作

格式化磁盘

[root@oldboy7 ~]# mkfs.xfs /dev/vdb

挂载磁盘

[root@oldboy7 ~]# df -h |grep /dev/vdb
/dev/vdb        6.0G   33M  6.0G   1% /opt

使用 xfs_growfs 刷新磁盘的信息

[root@oldboy7 ~]# xfs_growfs --help 
xfs_growfs: invalid option -- '-'
Usage: xfs_growfs [options] mountpoint

3. 快照管理

注意:raw格式的磁盘无法创建快照

创建快照

[root@kvm data]# virsh snapshot-create oldboy7 
已生成域快照 1516607756

查看主机快照列表

[root@kvm data]# virsh snapshot-list  oldboy7
 名称               生成时间              状态
------------------------------------------------------------
 1516607756           2018-01-22 15:55:56 +0800 running
# 注:该名称为unix时间戳(格林威治时间)

查看快照信息

[root@kvm data]# virsh snapshot-info  oldboy7 --snapshotname 1516607756

登陆虚拟机,进行删除操作

[root@oldboy7 /]# ls -1|egrep -v 'proc|sys|run' |rm -rf

还原快照

[root@kvm data]# virsh snapshot-revert oldboy7 --snapshotname 1516607756

删除快照

[root@kvm data]# virsh snapshot-delete  oldboy7 --snapshotname 1516607756

快照配置文件位置

[root@kvm data]# cd  /var/lib/libvirt/qemu/snapshot/
[root@kvm snapshot]# tree
.
└── oldboy7
    └── 1516607756.xml

4. kvm虚拟机克隆

复制一个虚拟机,需修改如 MAC 地址,名称等所有主机端唯一的配置。

虚拟机的内容并没有改变:virt-clone 不修改任何客户机系统内部的配置,它只复制磁盘和主机端的修改。所以像修改密码,修改静态 IP 地址等操作都在本工具复制范围内。如何修改此类型的配置,请参考 virt-sysprep。

克隆常用命令:

[root@kvm ~]# virt-clone --auto-clone -o oldboy7 
WARNING  设置图形设备端口为自动端口,以避免相互冲突。
正在分配 ‘oldboy-clone.ra 4% [-                 ] 1.5 MB/s | 464 MB  01:50:18 ETA

参数说明:

(4)

分享至