kvm的搭建,请参考之前所发布的文章:https://blog.youkuaiyun.com/Bilise/article/details/104660754
virsh的简单使用
virsh list --all //查看当所有kvm虚拟机列表
virsh start [虚拟机名] //启动虚拟机
virsh shutdown [虚拟机名] //关闭虚拟机
virsh destroy [虚拟机名] //强制停止虚拟机
virsh undefine [虚拟机名] //删除虚拟机,但不会删除虚拟机所在的磁盘文件
virsh autostart [虚拟机名] //设置kvm的虚拟机开机自启
virsh autostart --disable [虚拟机名] //解除开机自启
virsh suspend [虚拟机名] //挂起虚拟机
virsh resume [虚拟机名] //恢复挂起的虚拟机
virt-clone -o [克隆的主机] -n [克隆后的主机名] -f [克隆的的虚拟机存放的位置] //虚拟机克隆
virsh snapshot-create [虚拟机名] //创建快照
virsh snapshot-list [虚拟机名] //列出快照
virsh snapshot-revert [虚拟机名] [快照名] //恢复快照
virsh snapshot-delete [虚拟机名] [快照名] //删除快照
更改虚拟机的配置(需先关闭虚拟机)
virsh edit [虚拟机名]
例:将centos7.0的机子改为20G磁盘空间和2个cpu
[root@raid newdisk]# virsh list --all //查询虚拟机状态
Id Name State
----------------------------------------------------
1 centos7.0 running
[root@raid newdisk]# virsh shutdown centos7.0 //关掉虚拟机
Domain centos7.0 is being shutdown
[root@raid newdisk]# virsh list --all
Id Name State
----------------------------------------------------
- centos7.0 shut off
[root@raid newdisk]# virsh edit centos7.0
<domain type='kvm'>
<name>centos7.0</name>
<uuid>3a8e5625-8c43-400c-b109-e471896ca6a0</uuid>
<memory unit='KiB'>2097152</memory> //此行设置kvm虚拟机的磁盘空间,请注意计量单位
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>2</vcpu> //此行是cpu分配的数量
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='hd'/>
</os>
[root@raid newdisk]# virsh start centos7.0 //改完后和vi编辑器一样保存退出,并重启kvm虚拟机
Domain centos7.0 started
[root@raid newdisk]# virsh dominfo centos7.0 //查看kvm虚拟机的信息
Id: 2
Name: centos7.0
UUID: 3a8e5625-8c43-400c-b109-e471896ca6a0
OS Type: hvm
State: running
CPU(s): 2 //cpu数量以设置为两个
CPU time: 19.6s
Max memory: 2097152 KiB //虚拟机磁盘容量
Used memory: 2097152 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: selinux
Security DOI: 0
Security label: system_u:system_r:svirt_t:s0:c61,c266 (permissive)
增加网卡接口
[root@raid newdisk]# virsh domiflist centos7.0 //列出此虚拟机的所有网卡
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge br0 virtio 52:54:00:82:ab:7c
创建网口
virsh attach-interface [kvm主机名] --type bridge --source br0 --model virtio --config //下次启动生效
virsh attach-interface [kvm主机名] --type bridge --source br0 --model virtio --current //立即生效
virsh detach-interface [kvm主机名] --type bridge --mac [自定义mac地址] --config //下次启动生效
virsh detach-interface [kvm主机名] --type bridge --mac [自定义mac地址] --current //立即生效
关闭或打开某个网口
virsh domif-setlink [kvm主机名] [网卡名] down
virsh domif-setlink [kvm主机名] [网卡名] up
获取某个网口状态
[root@raid newdisk]# virsh domiflist centos7.0
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge br0 virtio 52:54:00:82:ab:7c
vnet1 bridge br0 virtio 52:54:00:62:d3:e6
列出所有的块设备
virsh domblklist domain
[root@raid newdisk]# virsh domblklist centos7.0
Target Source
------------------------------------------------
vda /home/newdisk/centos7.0.qcow2
hda -
qemu-img的使用
1、创建镜像
qemu-img create -f [文件类型] [文件名] [大小]
例:使用qemu-img创建一个存储空间为3GB,格式为qcow2的镜像文件test2.qcow2
[root@raid newdisk]# qemu-img create -f qcow2 test.qcow2 3G
Formatting 'test.qcow2', fmt=qcow2 size=3221225472 encryption=off cluster_size=65536 lazy_refcounts=off
2、检查镜像是否正常
qemu-img check [镜像名]
例:检查镜像 test2.qcow2是否正常
[root@raid newdisk]# qemu-img check test.qcow2
No errors were found on the image.
Image end offset: 262144
3、查看镜像信息
qumu-img info [镜像文件名]
例:查看刚刚创建的test.qcow2的信息
[root@raid newdisk]# qemu-img info test.qcow2
image: test.qcow2 //镜像文件名
file format: qcow2 //镜像文件格式
virtual size: 3.0G (3221225472 bytes) //镜像文件大小
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
4、转化镜像的格式
qemu-img convert [-c] -f [原镜像格式] -O [输出镜像格式] [原镜像文件名] [转化后的新文件名]
-f 表示原有的镜像格式
-O 表示输出的镜像格式
-c 对输出的镜像文件进行压缩,不过只有qcow2和qcow格式的镜像文件才支持压缩,而且这种压缩是只读的,如果压缩的扇区被重写,则会被重写为未压缩的数据
例:转化镜像(Convert) 转化镜像的格式,将test2.qcow2转化成vm1.raw
[root@raid newdisk]# qemu-img convert -f qcow2 -O raw test.qcow2 vm1.raw
[root@raid newdisk]# ll
total 1367052
-rw-------. 1 qemu qemu 21478375424 Mar 5 23:44 centos7.0.qcow2
drwx------. 2 root root 16384 Mar 3 16:00 lost+found
-rw-r--r--. 1 root root 197120 Mar 5 23:16 test.qcow2
-rw-r--r--. 1 root root 3221225472 Mar 5 23:47 vm1.raw
[root@raid newdisk]# qemu-img info vm1.raw //查看转化后的文件是否转化为raw格式
image: vm1.raw
file format: raw
virtual size: 3.0G (3221225472 bytes)
disk size: 0
[root@raid newdisk]# qemu-img info test.qcow2 //查看原文件格式
image: test.qcow2
file format: qcow2
virtual size: 3.0G (3221225472 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
5、更改镜像文件大小
qemu-img resize [镜像文件名] [+/-需要改变的大小]
例:给vm1.raw增加3G
[root@raid newdisk]# qemu-img info vm1.raw
image: vm1.raw
file format: raw
virtual size: 3.0G (3221225472 bytes) //原本为3G
disk size: 0
[root@raid newdisk]# qemu-img resize vm1.raw +3G
Image resized.
[root@raid newdisk]# qemu-img info vm1.raw
image: vm1.raw
file format: raw
virtual size: 6.0G (6442450944 bytes) //更改后为6G
disk size: 0
qcow2只能增大,不支持缩小,否则会报错,如下。
[root@raid newdisk]# qemu-img resize test.qcow2 -1G
qemu-img: qcow2 doesn't support shrinking images yet
qemu-img: This image does not support resize
6、创建快照与查询快照
qemu-img snapshot -c [标签] [目标镜像名] //创建快照目的命令
qemu-img snapshot -l [镜像文件名] //查询此镜像文件所有快照的命令
例:创建一个test.qcow2的快照并设置标签one
[root@raid newdisk]# qemu-img snapshot -c one test.qcow2
[root@raid newdisk]# qemu-img snapshot -l test.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 one 0 2020-03-06 00:05:31 00:00:00.000