3.KVM虚拟机磁盘、快照和克隆管理

2022-04-04 分类:kvm 阅读(301) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.磁盘管理

1.虚拟机的磁盘格式

raw格式:俗称裸格式,占用空间大,不支持快照功能,不方便传输,读写性能较好    不方便传输是因为,分配了50G的磁盘空间,用了1G,在传输时传输的大小是50G,相当于VM虚拟机立即分配所有空间         raw格式还有一个好处是,可以在宿主机上挂载使用  挂载方法:
[root@test ~]# fdisk /opt/centos7.raw 
 输入p,找到start值 然后使用值*512 然后挂载使用
[root@test ~]# mount -o loop,offset=1048576 /opt/centos7.raw /srv/###offset是上面乘以512的值。
挂载之后可以进入修改网卡该密码等所有操作
安装时执行的命令virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpu 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-2003.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
qcow2格式:是qcow(copy on write)的升级版,占用空间小,支持快照,性能比raw差一点,方便传输    是因为,分配了50G的磁盘空间,用了1G,在传输时传输的大小是1G 
安装时执行的命令virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpu 1 --disk /opt/centos2.qcow2,format=qcow2,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-2003.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

2.查看磁盘信息info

[root@test /opt]# qemu-img info centos7.raw 
image: centos7.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.5G

3.创建磁盘create

##-f 后的三个参数,第一个是磁盘的格式,第二个是磁盘的名称路径,第三个是磁盘的大小
#创建一个qcow2格式的硬盘
[root@test /opt]# qemu-img create -f qcow2 /opt/sfy.qcow2 1G
Formatting '/opt/sfy.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@test /opt]# ll -h /opt/sfy.qcow2 
-rw-r--r-- 1 root root 192K Jul 18 11:46 /opt/sfy.qcow2
[root@test /opt]# qemu-img info sfy.qcow2 
image: sfy.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 192K
cluster_size: 65536
Format specific information:
    compat: 1.1
lazy refcounts: false
#创建一个raw格式的硬盘
[root@test /opt]# qemu-img create -f raw /opt/sfy.raw 1G
Formatting '/opt/sfy.raw', fmt=raw size=1073741824 
[root@test /opt]# qemu-img info sfy.raw 
image: sfy.raw
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 0
创建磁盘挂载到虚拟机上,需要在配置文件搜索disk type,然后复制这个模块的内容改吧改吧即可

4.磁盘扩容resize

##扩容2G
[root@test /opt]# qemu-img resize /opt/sfy.raw +2G
Image resized.
[root@test /opt]# qemu-img info /opt/sfy.raw 
image: /opt/sfy.raw
file format: raw
virtual size: 3.0G (3221225984 bytes)
disk size: 0
##扩(缩)容至2G
[root@test /opt]# qemu-img resize /opt/sfy.raw 2G
Image resized.
[root@test /opt]# qemu-img info /opt/sfy.raw 
image: /opt/sfy.raw
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 0
##缩容1G
[root@test /opt]# qemu-img resize /opt/sfy.raw -1G
Image resized.
[root@test /opt]# qemu-img info /opt/sfy.raw 
image: /opt/sfy.raw
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 0

5.磁盘格式转换convert

##注意修改磁盘格式,必须处于关机状态下
-f 磁盘原格式 -O磁盘新格式 原格式磁盘路径 新格式磁盘路径
[root@test /opt]# time qemu-img convert -f raw -O qcow2 /opt/centos7.raw /opt/centos7.qcow2
#修改虚拟机配置文件磁盘格式
[root@test /opt]# grep qcow2 /etc/libvirt/qemu/web01.xml 
      <driver name='qemu' type='qcow2'/>
      <source file='/opt/centos7.qcow2'/>

2.虚拟机的快照管理

snapshot-create创建快照不支持自定义名称
snapshot-create-as支持自定义名称
raw格式无法创建快照,qcow2格式可以创建快照,是基于磁盘创建的快照,即快照是保存在qcow2磁盘文件里的

1.创建快照snapshot-create、snapshot-create-as和查看快照snapshot-list

##snapshot-create创建虚拟机快照
[root@test /opt]# virsh snapshot-create web01 
Domain snapshot 1626588992 created
[root@test /opt]# virsh snapshot-list  web01 
 Name                 Creation Time             State
------------------------------------------------------------
 1626588992           2021-07-18 14:16:32 +0800 running
##snapshot-create-as创建虚拟机快照
[root@test /opt]# virsh snapshot-create-as web01 --name 刚创建的虚拟机
Domain snapshot 刚创建的虚拟机 created
[root@test /opt]# virsh snapshot-list  web01 
 Name                 Creation Time             State
------------------------------------------------------------
 1626588992           2021-07-18 14:16:32 +0800 running
 刚创建的虚拟机 2021-07-18 14:19:36 +0800 running

2.删除快照snapshot-delete

[root@test /opt]# virsh snapshot-delete  web01 --snapshotname 1626588992 
Domain snapshot 1626588992 deleted

[root@test /opt]# virsh snapshot-list  web01 
 Name                 Creation Time             State
------------------------------------------------------
 刚创建的虚拟机 2021-07-18 14:19:36 +0800 running

3.恢复快照snapshot-revert

[root@test /opt]# virsh snapshot-revert  web01 --snapshotname 刚创建的虚拟机

3.虚拟机的克隆

1.完整克隆virt-clone 自动

#创建克隆 -o 老的虚拟机名称 -n 新的虚拟机名称—auto-clone自动分配虚拟机磁盘位置
[root@test /opt]# virt-clone -o web01 -n web02 --auto-clone
Allocating 'centos7-clone.qcow2'                                                    |  12 GB  00:00:09     

Clone 'web02' created successfully.
##--file 指定克隆后的虚拟机磁盘存放位置
[root@test /opt]# virt-clone -o web01 -n web03 --file /opt/web03.qcow2
Allocating 'web03.qcow2'                                                            |  12 GB  00:00:03     

Clone 'web03' created successfully

2.完整克隆手动

##创建磁盘文件###(注意这里是创建,不是复制,复制的需要重启libvertd服务)
[root@test /opt]# qemu-img convert -f qcow2 -O qcow2 -c web03.qcow2 web02.qcow2 
##创建虚拟机配置文件
[root@test /opt]# virsh dumpxml web03 > vm_web02.xml
#导入配置文件
[root@test /opt]# virsh define /opt/vm_web02.xml
[root@test /opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     web01                          running
 2     web02                          running
 -     web03                          shut off
###修改配置文件
[root@test /opt]# virsh edit web02
修改<name>
删除<uuid>
删除<mac address
修改<source file

3.链接克隆##只能手动操作

##-b 基于web04.qcow2 创建web05.qcow2
[root@test /opt]# qemu-img create -f qcow2 -b web04.qcow2 web05.qcow2 
Formatting 'web05.qcow2', fmt=qcow2 size=12884901888 backing_file='web04.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@test /opt]# qemu-img info web05.qcow2 
image: web05.qcow2
file format: qcow2
virtual size: 12G (12884901888 bytes)
disk size: 196K
cluster_size: 65536
backing file: web04.qcow2#####基于web04.qcow2创建
Format specific information:
    compat: 1.1
lazy refcounts: false
##创建配置文件
[root@test /opt]# virsh dumpxml web04 >vm_web05.xml
修改配置文件,名称、id、mac、还有磁盘文件路径等
[root@test /opt]# vim /opt/vm_web05.xml
[root@test /opt]# virsh define /opt/vm_web05.xml 
Domain web05 defined from /opt/vm_web05.xml

[root@test /opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     web01                          running
 2     web04                          running
 4     web03                          running
 -     web02                          shut off
 -     web05                          shut off

导出配置文件的时候会发现多了一个source文件,依赖文件
[root@test /opt]# virsh dumpxml web05 |grep qcow2
      <driver name='qemu' type='qcow2'/>
      <source file='/opt/web05.qcow2'/>
        <source file='/opt/web04.qcow2'/>

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1