KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机。在Ubuntu中安装openwrt可以作为旁路由方便管理。

一、安装KVM和Openwrt虚拟机

本文操作都是在root账户下进行。

1.验证支持KVM

(1)验证CPU是否支持硬件虚拟化

grep -Eoc '(vmx|svm)' /proc/cpuinfo //数字大于0,则代表CPU支持硬件虚拟化,反之则不支持

(2)检查 VT 是否在 BIOS 中启用

apt install cpu-checker //检查 VT 是否在 BIOS 中启用

kvm-ok //如果处理器虚拟化能力没有在 BIOS 中被禁用,命令将会打印出,否则,这个命令将会打印一个失败信息,和打印的消息
INFO: /dev/kvm exists
KVM acceleration can be used

2.安装KVM

apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
systemctl is-active libvirtd

(1)检查是否安装成功

 lsmod | grep kvm

(2)启动虚拟化和设置开机自启

systemctl start libvirtd 
systemctl enable libvirtd
systemctl list-unit-files |grep libvirtd.service //打印启动虚拟化和设置开机自启情况

3.网络环境配置

(1)配置网卡桥接模式

apt install bridge-utils

(2)安装使用命令ifconfig查看自己的网卡、ip等

apt install net-tools -y
ifconfig

(3)新建/修改br0.yaml文件:

vim /etc/netplan/br0.yaml

文件内容如下:

network:
  version: 2
  ethernets:
    enp1s0:#替换为实际网卡
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [enp1s0] #替换为实际网卡
      dhcp4: false
      addresses: [192.168.1.5/24] #当前ip
      routes:
          - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [223.5.5.5,223.6.6.6]
      parameters:
        stp: false
      dhcp6:  false

应用网络设置:

netplan apply

4.创建虚拟机

用Winscp将openwrt.img上传到/opt/目录下,输入命令:

virt-install --name openwrt --ram 512 --vcpus 2 --osinfo detect=on,require=off --disk path=/opt/openwrt.img --network bridge=br0,model=e1000  --force --import --autostart --vnc --vncport=5911 --vnclisten=0.0.0.0

name,ram,vcpus,disk path,vncport等字段可根据实际设定。
VNC中用 http://ip:5911 登入虚拟机

二、KVM虚拟机管理

1.KVM基本命令

(1)查看命令帮助

virsh -h

(2)查看KVM的配置文件存放目录

ls /etc/libvirt/qemu/

(3)查看虚拟机状态

virsh list --all

(4)虚拟机关机与开机

virsh shutdown openwrt
virsh destroy openwrt

openwrt根据实际名字修改。

(5)强制实例系统关闭电源

virsh destroy openwrt

(6)通过配置文件启动虚拟机系统实例

virsh create /etc/libvirt/qemu/openwrt.xml
virsh list --all

(7)挂起虚拟机

virsh suspend openwrt
virsh list --all

(8)恢复虚拟机

virsh resume openwrt
virsh list --all

(9)配置虚拟机伴随宿主机自动启动

virsh autostart openwrt

(10)导出虚拟机配置

virsh dumpxml openwrt > /etc/libvirt/qemu/openwrt-2.xml

(11)虚拟机的删除与添加

virsh shutdown openwrt
virsh undefine openwrt

重新定义虚拟机

cd /etc/libvirt/qemu
mv centos7-2.xml openwrt.xml
virsh define openwrt.xml
virsh list --all

(12)修改虚拟机配置信息

 vim /etc/libvirt/qemu/openwrt.xml        
 virsh edit openwrt

2.KVM文件管理

(1)查看当前磁盘格式

qemu-img info /data_kvm/store/openwrt.qcow2

(2)通过qemu-img命令转换磁盘文件格式,将openwrt虚拟机的raw格式磁盘转换至qcow2格式

virsh shutdown openwrt
qemu-img convert -f raw -O qcow2 /data_kvm/store/openwrt.img /data_kvm/store/openwrt.qcow2

修改openwrt的xml配置文件中的磁盘类型与磁盘文件名

virsh edit openwrt

(3) virt-cat,类似cat命令

vist-cat -a /data_kvm/store/openwrt.qcow2 /etc/sysconfig/grub

(4)virt-edit,编辑文件,用法与vim一致

virt-edit -a /data_kvm/store/openwrt.qcow2 /etc/resolv.conf

(5)virt-df命令用于查看虚拟机磁盘信息

vist -df -h openwrt

3.克隆虚拟机

(1)查看虚拟机状态

virsh list --all

(2)从openwrt克隆openwrt-2

virt-clon -o openwrt -n centos7-2 -f /data_kvm/store/openwrt.qcown2

(3)查看虚拟机状态

virsh list --all

(4)启动虚拟机

virsh start openwrt

4.虚拟机快照

(1)对openwrt创建快照

virsh snapshot-create openwrt

(2)查看虚拟机快照版本信息

virsh snapshot-current openwrt

(3)查看快照信息

virsh snapshot-list openwrt

(4)恢复虚拟机状态至{编号}

virsh snapshot-revert openwrt 编码

(5)删除快照

virs snapshot-delete openwrt 编码

发表评论

已有 18 条评论

  1. 博主真是太厉害了!!!

  2. 叼茂SEO.bfbikes.com

  3. 看的我热血沸腾啊

  4. 不错不错,我喜欢看

  5. 叼茂SEO.bfbikes.com

  6. 叼茂SEO.bfbikes.com

  7. 怎么收藏这篇文章?

  8. 看的我热血沸腾啊https://www.237fa.com/

  9. 不错不错,我喜欢看 https://www.ea55.com/

  10. 看的我热血沸腾啊https://www.ea55.com/

  11. 不错不错,我喜欢看 www.jiwenlaw.com

  12. 文章的确不错啊https://www.cscnn.com/

  13. 兄弟写的非常好 https://www.cscnn.com/

  14. 哈哈哈,写的太好了https://www.lawjida.com/

  15. 内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。

  16. 喜剧效果背后暗含深刻社会观察。

  17. 文章紧扣主题,观点鲜明,展现出深刻的思考维度。