openstack学习笔记---libvirt

来源:互联网 发布:java分布式开发书籍 编辑:程序博客网 时间:2024/04/28 19:09
1  什么是libvirt ? 
Nova通过独立的软件管理模块实现XenServer、Hyper-V和VMWare ESX的调用与管理,同时对于其他的Hypervisor,如KVM、LXC、QEMU、UML和Xen则是通过Libvirt标准接口统一实现,其中KVM是Nova-Compute中Libvirt默认调用的底层虚拟化平台。为了更好地理解在Nova环境下Libvirt是如何管理底层的Hypervisor,先要基本了解Libvirt的体系架构与实现方法。
Nova基于Libvirt在功能方面实现与底层虚拟化平台的无缝兼容。Nova对于底层Hypervisor(如KVM/QEMU等)的调用与管理主要通过LibvirtDriver类(见Nova源代码“nova/virt/libvirt/driver.py”)来实现,其中定义了一个ComputeDriver雷,是其他各种XXXDriver的基类,如LibvirtDriver,VMwareVCDriver,IronicDriver,,,,
    Libvirt是一种实现虚拟化平台能力交互的工具集,它为所支持的Hypervisor提供了一种通用的API接口套件,上层管理平台(如Nova)通过Libvirt来实现对虚拟机的生命周期管理。Libvirt当前支持以下底层虚拟化平台:
 KVM:Linux平台仿真器;
    QEMU:面向各种架构的平台仿真器;
    Xen:面向IA-32、IA-64和PowerPC970架构的虚拟机监控程序;
    LXC:用于操作系统虚拟化的Linux(轻量级)容器;
    OpenVZ:基于Linux内核的操作系统级虚拟化;
    User Mode Linux:面向各种架构的Linux平台仿真器;
    VirtualBox:x86虚拟化虚拟机监控程序;
    ESX、GSX:VMW爱热企业级虚拟化平台;
    VMWare Workstation、VMWare Player:VMWare用户级虚拟化平台;
    Hyper-V:Microsoft虚拟化平台。

2 libvirt对底层虚拟化平台管理方式:
A:本地 上层管理平台系统、Libvirt、虚拟化平台以及客户虚拟机均不属在同一物理主机节点之上
B:远程  不同节点 。

3 虚拟机在libvirt的管理系的生命周期:
Undefined ,Undefined ,Running ,Paused ,Saved

 Libvirt对Hypervisor的连接有方式:
A : 只读式 ,适合监控性的应用程序
B: 认证式,需要包含一个认证参数才能执行相关的写操作。

5      Nova通过Libvirt建立于底层Hypervisor认证式连接的关键语句是“libvirt.openAuth(uri, auth, 0)”。其中,Libvirt作为一个Python模块,通过它能够调用Libvirt库中与Hypervisor相关的管理API;“uri”参数主要是连接到Hypervisor的入口地址,
如系统要求连接到本地的Xen Hypervisor,其本地URI是“xen:///”;“auth”参数是提供相应的认证信息,进一步实现Libvirt对Hypervisor的读写操作。


0 0
原创粉丝点击