1. libvirt介绍
    Libvirt是一个软件集合,便于使用者管理虚拟机和其他虚拟化功能,比如存储和网络接口管理等等。Libvirt概括
起来包括一个API库、一个 daemon(libvirtd)和一个命令行工具(virsh)。
    Libvirt的主要目标是:提供一种单一的方式管理多种不同的虚拟化提供方式和 hypervisor。
    Libvirt的主要功能如下:
    (1)虚拟机管理
             包括不同的领域生命周期操作,比如:启动、停止、暂停、保存、恢复和迁移。
             支持多种设备类型的热插拔操作,包括:磁盘、网卡、内存和CPU。
    (2)远程机器支持
             只要机器上运行了libvirt daemon,包括远程机器,所有的libvirt功能就都可以访问和使用。
             支持多种网络远程传输,使用最简单的SSH,不需要额外配置工作。比如:example.com运行了libvirt,
             而且允许SSH访问,下面的命令行就可以在远程的主机上使用virsh命令行。

                             virsh --connect qemu+ssh://root@example.com/system
    (3)存储管理
            任何运行了libvirt daemon的主机都可以用来管理不同类型的存储:创建不同格式的文件映像(qcow2、vmdk、raw等)、挂接NFS共享、列出现有的LVM卷组、创建新的LVM卷组和逻辑卷、对未处理过的磁盘设备分区、挂接iSCSI共享,等等等等。因为libvirt可以远程工作,所有这些都可以通过远程主机使用。
     (4)网络接口管理
           任何运行了libvirt daemon的主机都可以用来管理物理和逻辑的网络接口。可以列出现有的接口卡,配置、创建接口,以及桥接、vlan和关联设备等,通过netcf都可以支持。
     (5)虚拟NAT和基于路由的网络
             任何运行了libvirt daemon的主机都可以用来管理和创建虚拟网络。Libvirt虚拟网络使用防火墙规则作为路由器,让虚拟机可以透明访问主机的网络

2. 使用libvirt创建kvm虚拟机
(1)制作虚拟机镜像

  1. qemu-img create -f qcow2 test.qcow2 10G

(2)下载并复制iso镜像到指定目录,本文将所有镜像及配置文件放到/var/lib/libvirt/images/目录下,注意:有些系统因为SELinux的原因,限定了qemu的访问,所以,可以根据自己需求调整,默认放在/var/lib/libvirt/images/下。
(3)创建安装配置文件,demo.xml如下,可以根据自己需求更改。

  1. <domain type='kvm'>
  2. <name>test_Ubuntu</name> //虚拟机名称
  3. <memory>1048576</memory> //最大内存,单位k
  4. <currentMemory>1048576</currentMemory> //可用内存,单位k
  5. <vcpu>8</vcpu> //虚拟cpu个数
  6. <os>
  7. <type arch='x86_64' machine='pc'>hvm</type>
  8. <boot dev='cdrom'/> //光盘启动
  9. </os>
  10. <features>
  11. <acpi/>
  12. <apic/>
  13. <pae/>
  14. </features>
  15. <clock offset='localtime'/>
  16. <on_poweroff>destroy</on_poweroff>
  17. <on_reboot>restart</on_reboot>
  18. <on_crash>destroy</on_crash>
  19. <devices>
  20. <emulator>/usr/libexec/qemu-kvm</emulator>
  21. <disk type='file' device='disk'>
  22. <driver name='qemu' type='qcow2'/>
  23. <source file='/var/lib/libvirt/images/test.qcow2'/> //目的镜像路径
  24. <target dev='hda' bus='ide'/>
  25. </disk>
  26. <disk type='file' device='cdrom'>
  27. <source file='/var/lib/libvirt/images/ubuntu.iso'/> //光盘镜像路径
  28. <target dev='hdb' bus='ide'/>
  29. </disk>
  30. <interface type='bridge'> //虚拟机网络连接方式
  31. <source bridge='kvmbr0'/> //当前主机网桥的名称
  32. <mac address="00:16:3e:5d:aa:a8"/> //为虚拟机分配mac地址,务必唯一,否则dhcp获得同样ip,引起冲突
  33. </interface>
  34. <input type='mouse' bus='ps2'/>
  35. <graphics type='vnc' port='-1' autoport='yes' listen = '0.0.0.0' keymap='en-us'/>//vnc方式登录,端口号自动分配,自动加1,可以通过virsh vncdisplay来查询
  36. </devices>
  37. </domain>
  1. virsh define demo.xml //创建虚拟机
  1. virsh start test_ubuntu //启动虚拟机
  1. virsh vncdisplay test_ubuntu //查看虚拟机的vnc端口, 然后就可以通过vnc登录来完成虚拟机的安装

3. 使用刚才创建好的镜像来启动一个新的虚拟机
(1)创建启动配置文件,demo.xml如下。

  1. <domain type='kvm'>
  2. <name>myvm</name>  //创建名为myvm的虚拟机
  3. <memory>1048576</memory>
  4. <currentMemory>1048576</currentMemory>
  5. <vcpu>8</vcpu>
  6. <os>
  7. <type arch='x86_64' machine='pc'>hvm</type>
  8. <boot dev='hd'/> //即harddisk,从磁盘启动
  9. </os>
  10. <features>
  11. <acpi/>
  12. <apic/>
  13. <pae/>
  14. </features>
  15. <clock offset='localtime'/>
  16. <on_poweroff>destroy</on_poweroff>
  17. <on_reboot>restart</on_reboot>
  18. <on_crash>destroy</on_crash>
  19. <devices>
  20. <emulator>/usr/libexec/qemu-kvm</emulator>
  21. <disk type='file' device='disk'>
  22. <driver name='qemu' type='qcow2'/>
  23. <source file='/var/lib/libvirt/images/test.qcow2'/> //目的镜像路径
  24. <target dev='hda' bus='ide'/>
  25. </disk>
  26. <disk type='file' device='cdrom'>
  27. <source file='/var/lib/libvirt/images/ubuntu.iso'/> //光盘镜像路径
  28. <target dev='hdb' bus='ide'/>
  29. </disk>
  30. <interface type='bridge'>
  31. <source bridge='kvmbr0'/>
  32. <mac address="00:16:3e:5d:aa:a8"/>
  33. </interface>
  34. <input type='mouse' bus='ps2'/>
  35. <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
  36. </devices>
  37. </domain>
  1. virsh define demo.xml
  2. virsh start myvm

4, 虚拟机管理
    虚拟机的管理即通过virsh命令来完成,具体命令的使用参见:http://libvirt.org/sources/virshcmdref/html-single/

使用 libvirt创建和管理KVM虚拟机的更多相关文章

  1. 管理KVM虚拟机(二)

    管理KVM虚拟机 工具:libvirt 官网:http://libvirt.org/ 介绍:Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 ...

  2. 菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机

    菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机 chedou@hgdb.net 虚拟机给工作带来巨大的便利,不仅仅体现在资源的按需使用,而且配置的迁移特别方便.本文将使用Ubuntu ...

  3. Linux 中使用 virsh 管理 KVM 虚拟机 (转)

    术语 虚拟化指的是:在相同的物理(硬件)系统上,同时运行多个操作系统,且这几个系统相互隔离的可能性,而那个硬件在虚拟化架构中被称作宿主机(host).虚拟机监视器(也被称为虚拟机管理程序(hyperv ...

  4. 使用Wok管理kvm虚拟机

    [Centos7.4] !!!测试环境我们首关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# ...

  5. 用于创建和管理 Azure 虚拟机的常用 PowerShell 命令

    本文介绍一些可用于在 Azure 订阅中创建和管理虚拟机的 Azure PowerShell 命令. 若要获取特定命令行开关和选项的详细帮助,可以使用 Get-Help 命令. 有关安装最新版 Azu ...

  6. 安装libvirt管理套件(C/S架构模式,用户管理kvm虚拟机)

    # 1:安装程序包 yum install -y libvirt virt-manager virt-viewer virt-install qemu-kvm   # 2:启动libvirtd守护进程 ...

  7. 使用cockpit管理kvm虚拟机

    在Centos8.2主机上部署kvm,使用cockpit管理 首先检测cpu是否支持虚拟化 [root@localhost ~]# cat /proc/cpuinfo | grep vmx flags ...

  8. 使用libvirt做适配的kvm虚拟机window server 2008 磁盘性能的提升

    实验室自己做了一个iaas的项目,当时是为了更方面的在kvm和xen下进行迁移,所以选择了libvirt作为适配层. 昨天简单的测试一了一下我们跟qingcloud的性能对比.我们的linux主机性能 ...

  9. 通过python-libvirt管理KVM虚拟机 源码

    版本:0.9.13 libvirt库可真是大,先看看该版本里面都有哪些类和方法,验证过的方法我会用O开头,|开头的标示还没亲自验证过. <span style="font-size:1 ...

随机推荐

  1. 构建高性能数据库缓存之Redis(一)

    一.Redis概述 1.1 什么是redis Redis是一个开源的用ANSI C编写.支持网络.基于内存.亦可持久化的日志型.Key-Value数据库,根据DB-Engines.com站点月度排行的 ...

  2. 【算法】MD5加密

    1.什么是MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍 ...

  3. iOS 一个小动画效果-b

    近期工作不忙,来一个需求感觉棒棒的,是一个比较简单的页面,如下图(图1) 图1 应该很简单吧,没什么大的功能,就是一个展示,一个拨打电话,拨打电话不需要说,几行代码搞定,基本UI也不用说了,刚培训完的 ...

  4. jquery ajax 回调函数的值alert出来[object Object] 解决方法

    $("#activity_project").change(function(){ var pro=$("#activity_project").val(); ...

  5. itunes Connect 未能创建 App 图标

    之前用的是chrome浏览器提交了app和app图标都是没问题的,可今天一直提交一直没成功,也是符合apple要求格式和大小的,郁闷.后来想了想换个浏览器试试,用了mac自带的safari浏览器后居然 ...

  6. mvc 使用预置队列类型存储异常对象

    using PaiXie.Utils; using System; using System.Collections.Generic; using System.Linq; using System. ...

  7. 【转】Kotlin 和 Checked Exception

    Kotlin 和 Checked Exception 最近 JetBrains 的 Kotlin 语言忽然成了热门话题.国内小编们传言说,Kotlin 取代了 Java,成为了 Android 的“钦 ...

  8. 【转】我离开了 Coverity

    我离开了 Coverity 在写这篇博文的时候,我已经不再是 Coverity 的员工了,我已经在今天下午向公司正式辞职. 走出公司的大门,我觉得一身的轻松.这是我几个月以来第一次感受到加州美丽的阳光 ...

  9. Bootstrap VS Semantic VS Foundation

    相信多数科技公司都没有自己动手设计UI的能力! 看到这个开头,预计非常多程序员非常不服气,我们那个美工可NB了,各种切图,各种特效! 假设你跟我讲这些,就说明你还没有明确UI详细指什么.通常我们所讲的 ...

  10. Java项目多数据源配置 (转)

    由于种种原因,有的时候可能要连接别人的数据库,或者不同的数据库没法自动转换,重构起来数据量又太大了,我们不得不在一个项目中连接多个数据源.从网上找了各种资料,只有这位大神给出的解决方案一下子就成功了. ...