通⽤的虚拟机管理接⼝-libvirt
libvirt本⾝是⼀套稳定的C语⾔应⽤程序接⼝,⽤于管理虚拟化环境,其他⼀些流⾏的编程语⾔都提供了对libvirt的绑定,在Python、Perl、Java、Ruby等编程语⾔中均有各⾃的libvirt库供直接使⽤。
libvirt通过⼀种基于驱动程序的架构⽀持KVM、QEMU、Xen等在内的多种不同的Hypervisor。对于KVM来说,libvirt是最主要的应⽤程序接⼝。基于libvirt应⽤程序接⼝开发的管理⼯具主要包括:virsh、virt-manager和virt-viewer。virsh是⼀个命令⾏管理⼯具,它实现了⼏乎libvirt的全部功能;virt-manager则是⼀个图形界⾯的管理⼯具,实现了libvirt的主要功能;⽽virt-viewer只是⼀个轻型的图形化虚拟机控制台连接器。
虚拟化环境中的宿主机(Host)、虚拟机监控器(VMM)、客户机(VM)在libvirt中分别被称为:节点(Node)、Hypervisor、域(Domain)。
通过libvirt可以实现以下管理功能:
python虚拟机1)域管理。对域的整个⽣命周期进⾏管理,包括启动、停⽌、暂停、保存、恢复、动态迁移等。也包括域中磁盘、⽹卡、内存、CPU等设备的管理。
2)节点管理。只要在节点上运⾏守护进程libvirtd,就可以从远程连接并管理该节点,所有的libvirt功能
都可以被远程访问和使⽤。libvirt远程管理最常⽤的⽹络传输协议是SSH。
3)存储管理。通过节点上的libvirtd可以管理不同类型的存储,如创建不同格式的客户机镜像、挂载NFS共享存储、查看现有的LVM卷组、创建新的LVM卷组和逻辑卷、对磁盘设备进⾏分区、挂载iSCSI共享存储等。
4)⽹络管理。通过节点上的libvirtd可以管理配置⽹络设备,如配置节点的⽹络接⼝,创建虚拟⽹络接⼝,⽹络接⼝的桥接,VLAN管理,NAT ⽹络设置等。
5)提供⼀个稳定、可靠、⾼效的应⽤程序接⼝,以便可以完成前⾯的4个管理功能。
libvirt应⽤程序接⼝的各项功能都是通过节点上的守护进程libvirtd执⾏的,因此,必须保证libvirtd在节点上处于运⾏状态。libvirtd有两种运⾏⽅式:⼀是root权限的libvirtd,其权限较⼤,可以完成所有⽀持的管理⼯作;⼆是普通⽤户权限的libvirtd,只能完成⽐较受限的管理⼯作。
libvirt的配置⽂件
在CentOS6.x中,安装libvirt后,相关的配置⽂件都保存在/etc/libvirt/⽬录中。
/etc/f
该配置⽂件主要⽤于配置⼀些常⽤的libvirt连接别名。libvirt连接是指libvirt客户端⼯具,如virsh、virt-viewer、virt-manager等,向libvirtd连接所使⽤的URI。别名定义的⽰例:
uri aliases = [
" myRemote=qemu+ssh : //root@10 . 10 . 10 . 10/system" ,
...
]
⽤名称“myRemote”代替相对冗长的URI“qemu+ssh://root@10.10.10.10/system”
/etc/f
守护进程libvirtd的配置⽂件,该⽂件配置了libvirtd启动时的许多设置,被修改后需要让libvirtd重新加载配置⽂件(或重启libvirtd)才会⽣效。该配置⽂件主要⽤来设置libvirtd在⽹络连接、⾝份认证、⽇志、审计等⽅⾯的控制。
/etc/f
是对QEMU/KVM 驱动的配置⽂件,设置内容主要涉及VNC、⽤户认证、SELinux、Cgroups等相关配置。
/etc/libvirt/qemu/⽬录
该⽬录下存放的QEMU/KVM驱动的域的配置⽂件,配置⽂件均采⽤XML描述。其中的networks⼦⽬录⽤于保存创建域时可以使⽤的⽹络的配置⽂件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论