• Libvirt


    Libvirt简介

    Libvirt是一些软件的集合(toolkit),其目的就是提供一个接口,通过这一套接口可以对虚拟化技术进行统一操作,如对虚拟机的创建和管理等功能。

    Libvirt概括起来包括一个API库、一个 daemon(libvirtd)和一个命令行工具(virsh)。

    Libvirt主要功能

    虚拟机管理:包括不同的领域生命周期操作,比如:启动、停止、暂停、保存、恢复和迁移。支持多种设备类型的热插拔操作,包括:磁盘、网卡、内存和CPU。

    远程机器支持:只要机器上运行了libvirt daemon,包括远程机器,所有的libvirt功能就都可以访问和使用。支持多种网络远程传输,使用最简单的SSH,不需要额外配置工作。

    存储管理:任何运行了libvirt daemon的主机都可以用来管理不同类型的存储:创建不同格式的文件镜像(qcow2、vmdk、raw等)、挂接NFS共享、列出现有的LVM卷组、创建新的LVM卷组和逻辑卷、对未处理过的磁盘设备分区、挂接iSCSI共享,等等等等。因为libvirt可以远程工作,所有这些都可以通过远程主机使用。

    网络接口管理:任何运行了libvirt daemon的主机都可以用来管理物理和逻辑的网络接口。

    虚拟NAT和基于路由的网络:任何运行了libvirt daemon的主机都可以用来管理和创建虚拟网络。

    Libvirt架构

    libvirt 比较和用例模型

    右图是在左图的基础上增加了Libvirt库的变化。libvirt建立在linux宿主操作系统之上,管理程序通过libvirt来控制本地域,也就是VM。

    当管理程序和Domain处在不同的节点上的时候,前者则需要通过远程通信的方式对Domain进行管理。远程节点上运行着一个名为libvirtd的守护进程,它会为同一个节点上的hypervisor自动安装驱动,然后管理程序就通过一种通用的协议(ssh,tcp,tls)将本地的libvirt和远程节点的libvirtd进行连接。

    libvirt会为不同的虚拟化监控程序安装不同的驱动,从而提供出一套统一的管理API。

    基于驱动程序的 libvirt 架构

    Libvirt支持的虚拟机监控程序包括:

    虚拟机监控程序描述
    Xen 面向 IA-32,IA-64 和 PowerPC 970 架构的虚拟机监控程序
    QEMU 面向各种架构的平台仿真器
    Kernel-based Virtual Machine (KVM) Linux 平台仿真器
    Linux Containers(LXC) 用于操作系统虚拟化的 Linux(轻量级)容器
    OpenVZ 基于 Linux 内核的操作系统级虚拟化
    VirtualBox x86 虚拟化虚拟机监控程序
    User Mode Linux 面向各种架构的 Linux 平台仿真器
    Test 面向伪虚拟机监控程序的测试驱动器
    Storage 存储池驱动器(本地磁盘,网络磁盘,iSCSI 卷)

    Virsh命令行

    virsh命令行可以用来创建、管理虚拟机。在virsh后面直接跟命令参数就是命令行模式,只输入virsh回车就进入交互模式。

    在输入help之后,可以看到分为了domain、monitor、host、interface、nodedev、snapshot、storage等多个方面的管理。

    此外,还可以指定URI进行远程操作,如virsh -c qemu+ssh//xxx/system list等。

    qemu:///session                      (local access to per-user instance)
    qemu+unix:///session                 (local access to per-user instance)
    qemu:///system                       (local access to system instance)
    qemu+unix:///system                  (local access to system instance)
    qemu://example.com/system            (remote access, TLS/x509)
    qemu+tcp://example.com/system        (remote access, SASl/Kerberos)
    qemu+ssh://root@example.com/system   (remote access, SSH tunnelled)

    参考资料:

    【Libvirt学习总结】http://blog.csdn.net/gaoxingnengjisuan/article/details/9674315

    【Libvirt 虚拟化库剖析】http://www.ibm.com/developerworks/cn/linux/l-libvirt/

  • 相关阅读:
    Windows性能调优: Perfomn.exe 和Perfmon /res
    WPF:逻辑树和视觉树
    AD FS 概述
    SQL Server : TRUSTWORTHY 数据库属性
    WCF:在开发期间应该注意的问题
    ASP.NET MVC 2中的数据验证
    SQL Server:如何在Service Broker发送消息验证失败后获取源消息
    GDI+:自定义控件时如何使用Region来输出特定区域
    LINQ to XML:如何替换XCData的内容
    javascript是否真的就不能实现跨站请求呢?
  • 原文地址:https://www.cnblogs.com/cubika/p/3485437.html
Copyright © 2020-2023  润新知