首页 > 数据库 > 数据库开发技术 > kvm 虚拟化管理工具libvirsh
为 了安全高效地管理节点上的各个域,而提供一个公共的稳定的软件层
libvirt是为了更方便地管理平台虚拟化技术而设计的开放源代码的应用程序接口、守 护进程和管理工具,它不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储 的管理libvirt作为中间适配层,可以让底层Hypervisor对上层用户空间的管理工具是完全透明 的,因为libvirt屏蔽了底层各种Hypervisor的细节,为上层管理工具提供了一个统一的、较 稳定的接口(API)
是一个物理机器,上面可能运行着多个虚拟客户机。Hypervisor和 Domain都运行在节点上。
也称虚拟机监控器(VMM),如KVM、Xen、VMware、Hyper-V等,是 虚拟化中的一个底层软件层,它可以虚拟化一个节点让其运行多个虚拟客户机(不同客户 机可能有不同的配置和操作系统)。
是在Hypervisor上运行的一个客户机操作系统实例。域也被称为实例 (instance,如在亚马逊的AWS云计算服务中客户机就被称为实例)、客户机操作系统 (guest OS)、虚拟机(virtual machine),它们都是指同一个概念。
域的管理
包括对节点上的域的各个生命周期的管理,如启动、停止、暂停、保 存、恢复和动态迁移。还包括对多种设备类型的热插拔操作,包括磁盘、网卡、内存和 CPU。当然不同的Hypervisor上对这些热插拔的支持程度有所不同。
远程节点的管理。
只要物理节点上运行了libvirtd这个守护进程,远程的管理程序 就可以连接到该节点进程管理操作,经过认证和授权之后,所有的libvirt功能都可以被访 问和使用。libvirt支持多种网络远程传输类型,如SSH、TCP套接字、Unix domain socket、TLS的加密传输等。假设使用了最简单的SSH,不需要额外的配置工作,比如, 在example.com节点上运行了libvirtd,而且允许SSH访问,在远程的某台管理机器上就可 以用如下的命令行来连接到example.com上,从而管理其上的域。
virsh -c qemu+ssh://root@example.com/system
存储的管理
任何运行了libvirtd守护进程的主机,都可以通过libvirt来管理不同类 型的存储,如创建不同格式的客户机镜像(qcow2、raw、qde、vmdk等)、挂载NFS共享 存储系统、查看现有的LVM卷组、创建新的LVM卷组和逻辑卷、对磁盘设备分区、挂载 iSCSI共享存储、使用Ceph系统支持的RBD远程存储,等等。当然在libvirt中,对存储的管 理也是支持远程的。
网络的管理。
任何运行了libvirtd守护进程的主机,都可以通过libvirt来管理物理的 和逻辑的网络接口。包括列出现有的网络接口卡,配置网络接口,创建虚拟网络接口,网 络接口的桥接,VLAN管理,NAT网络设置,为客户机分配虚拟网络接口,等等。
提供一个稳定、可靠、高效的应用程序接口,以便可以完成前面的4个管理功能。
libvirt主要由3个部分组成
应用程序接口是为其他虚拟机管理工具(如virsh、 virt-manager等)提供虚拟机管理的程序库支持。
libvirtd守护进程负责执行对节点上的域 的管理工作,在用各种工具对虚拟机进行管理时,这个守护进程一定要处于运行状态中。 而且这个守护进程可以分为两种:
一种是root权限的libvirtd,其权限较大,可以完成所有 支持的管理工作;
一种是普通用户权限的libvirtd,只能完成比较受限的管理工作
virsh是 libvirt项目中默认的对虚拟机管理的一个命令行工具
/etc/libvirt/libvirt.conf libvirt.conf文件用于配置一些常用libvirt连接(通常是远程连接)的别名。
和Linux中的普通配置文件一样,在该配置文件中以井号(#)开头的行是注释,如下:#为了演示目录,配置了如下这个别名
uri_aliases = [ "remote1=qemu+ssh://root@192.168.50.40/system", ]
其中,配置了remote1这个别名,用于指代qemu+ssh://root@192.168.93.201/system这 个远程的libvirt连接。
有这个别名后,就可以在用virsh等工具或自己写代码调用libvirt API 时使用这个别名,而不需要写完整的、冗长的URI连接标识了。用virsh使用这个别名,连 接到远程的libvirt上查询当前已经启动的客户机状态,然后退出连接。命令行操作如下:


添加博主
微信号|yfq940-
期待你的
分享
点赞
在看
原文作者:步步运维步步坑;如有侵权,请联系管理员删除。