kvm学习

作者: 缘觉如来 | 来源:发表于2019-05-13 15:38 被阅读0次

概念:

KVM

Kernel-based Virtual Machine基于内核的虚拟机,配合QEMU(处理器虚拟软件),需要CPU支持虚拟化技术(并且在BIOS里打开虚拟化选项),效率可达到物理机的80%以上。

架构图:


kvm

kvm安装:

查询机器是否支持虚拟化:

egrep -c '(vmx|svm)' /proc/cpuinfo

如果在输出中不包含 vmx 或者 svm 标识,那么就意味着你的 cpu 不支持硬件虚拟化。
如果结果大于0,即说明cpu支持虚拟化。因为虚拟化需要CPU支持 VMX 或者 SVM 指令集,VMX 是Intel指令。SVM 是AMD指令。

在deepin系统上安装qemu以及virsh虚拟机管理工具:

 sudo apt-get install virt-manager bridge-utils libvirt-clients qemu qemu-kvm

ARM服务器上安装命令:

sudo apt-get install libvirt0 libvirt-daemon qemu virt-manager  bridge-utils libvirt-clients python-libvirt qemu-efi uml-utilities virtinst qemu-system

系统通过加载诸如 kvm-intel.ko(基于 Intel 的机器)和 kvm-amd.ko(基于 amd 的机器)的内核模块,使其成为管理程序hyervisor。
查看kvm模块是否加载:

deepin@deepin-PC:~$ lsmod |grep kvm
kvm_intel             204800  0
kvm                   598016  1 kvm_intel
irqbypass              16384  1 kvm

安装 qemu 和 libvirtd 软件包之后,它就会自动启动并启用 libvirtd 服务。

deepin@deepin-PC:~$ service libvirtd status
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-05-13 11:45:18 CST; 1h 44min ago
     Docs: man:libvirtd(8)
           http://libvirt.org
 Main PID: 3666 (libvirtd)
    Tasks: 16 (limit: 4915)
   CGroup: /system.slice/libvirtd.service
           └─3666 /usr/sbin/libvirtd

创建虚拟机

图形化工具(virt-manager)

virt-manager.png

创建虚拟机


image.png

使用本地镜像创建


image.png

命令行工具 (virsh)

创建存储池:

virsh pool-define-as Spool1 dir - - - - "/media/deepin/Home/deepin/Spool1"  #定义存储池
virsh pool-build Spool1   #构造存储池
virsh pool-start Spool1   #激活存储池
virsh pool-autostart Spool1 #配置成跟随libvirtd服务自启动

配置磁盘映像

qemu-img create -f raw /media/deepin/Home/deepin/Spool1/deepin15-10.img 16G

创建虚拟机

sudo virt-install --name=deepin15.10 --disk path=/media/deepin/Home/deepin/Spoll1/deepin15-10.img --graphics spice --vcpu=2 --ram=2048 --cdrom=/media/deepin/Home/deepin/Downloads/deepin-15.10-amd64.iso --network bridge=virbr0 --os-variant=linux


image.png

xml文件创建虚拟机

sudo virsh dumpxml deepin15.10 > deepin15.10-2.xml  # 导出deepin15.10的配置到deepin15.10-2.xml
cp /media/deepin/Home/deepin/Spool1/deepin15-10.img /media/deepin/Home/deepin/Spool1/deepin15-10-2.img  #复制映像文件

修改配置deepin15.10-2.xml文件中的<name>字段和<source file>字段分别如下:

<name>deepin15.10-2</name>
<source file='/media/deepin/Home/deepin/Spoll1/deepin15-10-2.img'/>

定义deepin15.10-2虚拟机和启动该虚拟机

sudo virsh define deepin15.10-2.xml 
sudo virsh start deepin15.10-2

遇到的问题

问题一:“unsupported configuration: CPU mode 'custom' for x86_64 kvm domain on x86_64 host is not supported”
解决办法:重启主机。

问题二:虚拟机的启动参数加入“"console=tty0 console=ttyS0,115200"”。可以通过virsh console [vm id] 命令,进入虚拟机串口操作。

相关文章

  • kvm学习

    概念: KVM Kernel-based Virtual Machine基于内核的虚拟机,配合QEMU(处理器虚拟...

  • kvm基本命令

    kvm常用管理命令 kvm连接方式 kvm磁盘磁盘 kvm快照管理 kvm克隆虚拟机 kvm桥接网络 kvm虚拟机...

  • KVM 使用

    1. 檢查 kvm-ok cef@P5:~$ kvm-ok INFO: /dev/kvm exists KVM a...

  • ubuntu xenial 安装 KVM

    KVM 官网 http://www.linux-kvm.org/page/Main_Pageubuntu KVM ...

  • KVM学习(1)

    KVM学习(1) KVM是一种开源的虚拟化技术 虚拟机技术的演变 软件模拟:通过软件完全模拟CPU、芯片组、磁盘、...

  • 第二章 KVM原理与环境构建

    获取方式 kvm 源码管理地址 (search "kvm/kvm.git")linux 内核的Tarball (t...

  • 【KVM】KVM学习—实现自己的内核

    一、背景知识 介绍:KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),...

  • OpenStack 01

    KVM KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Lin...

  • 数字kvm和模拟kvm区别

    数字kvm和模拟kvm最主要的区别是: 数字kvm可以通过网络远程进行管理、操控PC或者服务器;模拟kvm只能在本...

  • KVM

    1、虚拟化技术: 2、KVM的组件: 3、快速使用kvm技术: 4、kvm: Kernel-based Virtu...

网友评论

      本文标题:kvm学习

      本文链接:https://www.haomeiwen.com/subject/lkklaqtx.html