KVM虚拟机管理

基本管理命令

  • 列出在运行状态中的虚拟机 virsh list
  • 列出所有虚拟机 virsh list --all
  • 查看kvm虚拟机配置文件 virsh dumpxml 虚拟机名字
  • 将vm2虚拟机的配置文件保存至vm3.xml virsh dumpxml vm3 > /etc/libvirt/qemu/vm4.xml
  • 启动 virsh start vm_name
  • 挂起 virsh suspend vm_name
  • 恢复 virsh resume vm_name
  • 关闭 1. virsh shutdown vm_name 2. virsh destroy vm_name
  • 重启 virsh reboot vm_name
  • 重置 virsh reset vm_name
  • 删除虚拟机 virsh undefine vm_name
    注意:虚拟机在开启的情况下undefine时无法删除的只是删除定义将配置文件删除了,不能删除磁盘文件。需要手动rm。
  • 虚拟机开机自动启动 virsh autostart vm_name
  • 查看开机启动的虚拟机 ls /etc/libvirt/qemu/autostart/ #此目录默认不存在,在有开机启动的虚拟机时自动创建
  • 关闭开机启动 virsh autostart --disable vm_name
  • 查看已启动的虚拟机ip地址 virsh domifaddr vm_name

KVM高级命令

磁盘镜像文件格式:
1. raw 原始格式,性能最好,直接占用你一开始给多少 系统就占多少 不支持快照
2. qcow2 性能上还是不如raw,但是raw不支持快照,qcow2支持快照
现在默认安装好的用的是raw格式,做快照要把它转换成qcow2格式
写实拷贝:
raw立刻分配空间,不管你有没有用到那么度空间
qcow2只是承诺给你分配空间,但是只有当你需要用空间的时候,才会给你空间。最多只给你承诺空间的大小,避免空间浪费。

cd /var/lib/libvirt/images
qemu-img create -f qcow2 test.img 5G	#建立qcow2格式磁盘文件
qemu-img create -f raw test.raw 5G	#建立raw格式磁盘文件
qemu-img info 	#查看已经创建的虚拟磁盘文件
============================================================
挂在磁盘:将虚拟机先关闭
virt-df -h -d vm2	#查看vm2的磁盘镜像分区信息
mkdir /test	#创建一个挂在目录
guestmount -d vm2 -m /dev/centos/root --rw /test/	#挂载虚拟机的根分区到test目录
guestunmount /test	#取消挂载

虚拟机添加设备

  1. 图形模式
    • 注意:要关闭添加硬件的虚拟机
  2. 修改配置文件方式
    • 给vm3添加磁盘为例,首先需要创建出要添加的磁盘;
qemu-img create -f qcow2 /var/lib/libvirt/images/vm4-1.qcow2 5G	#创建一个5G的空的磁盘文件
cd /etc/libvirt/qemu/
vim vm3.xml

在这里插入图片描述

systemctl restart libvirtd
virsh list -all
virsh start vm3 

虚拟机克隆

  1. 图形界面:
    Applications (左上角)-----> System Tools ------>Virtual Machine Manager
    关闭要克隆的虚拟机,右键点击虚拟机选择Clone
  2. 字符终端,命令克隆
virt-clone -o vm2 -n vm6 -f /var/lib/libvirt/images/vm6.img 
-o:origin-原始
-n:指定新客户机的名字
-f:为新客户机使用新的磁盘镜像文件

KVM存储配置

  • 概念:kvm必须要配置一个目录当作存储磁盘镜像的目录,我们称这个目录为存储池‘
  • 默认位置 /var/lib/libvirt/images
mkdir -p /data/vmfs	#创建基于文件夹的存储池
virsh pool-define-as vmdisk --type dir --target /data/vmfs	#定义储存池与其目录,vmdisk是存储池的名称,可自定义
virsh pool-build vmdisk	#创建已定义的存储池
virsh pool-list --all	#查看已定义的存储池
virsh pool-start vmdisk	
virsh pool-autostart vmdisk	#激活并启动启动已定义的存储池
virsh vol-create-as vmdisk vm99.qcow2 2G --format qcow2	#在存储池中创建虚拟机存储卷,vm99.qcow2是存储卷的名字
ll /data/vmfs/ -h	#查看存储卷

注意:
1. KVM虚拟池主要是体现一种管理方式,可以通过挂载存储目录,lvm逻辑卷的方式创建存储池。
2. KVM存储池也要用于虚拟机迁移任务。

#存储池相关管理命令
virsh vol-delete --pool vmdisk vm99.qcow2	#在存储池中删除虚拟机存储卷
virsh pool-destroy vmdisk	#取消激活存储池
virsh pool-delete vmdisk	#删除存储池定义的目录/data/vmfs
virsh pool-undefine vmdisk	#取消定义存储池

KVM快照

virsh snapshot-create-as vm2 vm2.snap1	#为虚拟机vm2创建一个快照(磁盘格式必须为qcow2)
qemu-img info /var/lib/libvirt/images/vm2.qcow2	#查看磁盘文件格式
virsh snapshot-list  vm2	#查看某台虚拟机设备的快照
======
qemu-img create -f raw /var/lib/libvirt/images/vm2-1.raw 2G	创建一块磁盘
ll -h /var/lib/libvirt/images/vm2-1.raw
cd /etc/libvirt/qemu/
vim vm2.xml	#将其添加到vm2虚拟机上面

在这里插入图片描述

virsh define /etc/libvirt/qemu/vm2.xml
virsh start vm2
virsh snapshot-create-as vm2 vm2.snap1
#会报错,不支持的配置:存储类型 vdb 不支持磁盘 raw 的内部快照,所以我们要进行磁盘格式的转换
qemu-img convert -O qcow2 /var/lib/libvirt/images/vm2-1.raw  /var/lib/libvirt/images/vm2-1.qcow2
cd /var/lib/libvirt/images/
ll -h 
qemu-img info /var/lib/libvirt/images/vm2-1.qcow2
vim /etc/libvirt/qemu/vm2.xml

在这里插入图片描述

virsh define /etc/libvirt/qemu/vm2.xml
virsh snapshot-create-as vm2 vm2.snap2	#创建快照
virsh shutdown vm2
virsh snapshot-revert vm2 vm2-snap3	#恢复到快照vm2-sanap3
 virsh snapshot-delete --snapshotname vm2-snap3 vm2	#删除vm2-snap3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值