虚拟机值libvirt解析

1.什么是libvirt

虚拟云实现的三部曲:虚拟化技术实现-->虚拟机管理-->集群资源管理(云管理)。各种不同的虚拟化技术都提供了基本的管理工具。比如,启动,停用,配置,连接控制台等。**这样在构建云管理的时候就存在两个问题:**

* 1) 如果采用混合虚拟技术,上层就需要对不同的虚拟化技术调用不同管理工具,很是麻烦。
* 2) 虚拟化技术发展很迅速,系统虚拟化和容器虚拟化均在发展和演化中。可能有新的虚拟化技术更加符合现在的应用场景,需要迁移过去。这样管理平台就需要大幅改动。

为了适应变化,我们惯用的手段是分层,使之相互透明,在虚拟机和云管理中设置一个抽象管理层。libvirt就是扮演的这个角色。有了它,上面两个问题就迎刃而解。libvirt提供各种API,供上层来管理不同的虚拟机。
Libvirt是管理虚拟机和其他虚拟化功能,比如存储管理,网络管理的软件集合。它包括一个API库,一个守护程序(libvirtd)和一个命令行工具(virsh);libvirt本身构建于一种抽象的概念之上。
libvirt的主要目标是为各种虚拟化工具提供一套方便、可靠的编程接口,用一种单一的方式管理多种不同的虚拟化提供方式。

2.Libvirt主要支持的功能

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

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

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

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

3.libvirt的工具virsh的使用:

下面是virsh的常用命令方法: 
(instancename 为虚拟机实例名)

virsh list                                #显示本地活动虚拟机
virsh list –all                           #显示本地所有的虚拟机(活动的+不活动的)
virsh define ubuntu.xml                   #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh start instancename                  #启动名字为ubuntu的非活动虚拟机
virsh create ubuntu.xml                   # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend instancename                # 暂停虚拟机
virsh resume instancename                 # 启动暂停的虚拟机
virsh shutdown instancename               # 正常关闭虚拟机
virsh destroy instancename                # 强制关闭虚拟机
virsh dominfo instancename                #显示虚拟机的基本信息
virsh domname 2                           # 显示id号为2的虚拟机名
virsh domid instancename                  # 显示虚拟机id号
virsh domuuid instancename                # 显示虚拟机的uuid
virsh domstate instancename               # 显示虚拟机的当前状态
virsh dumpxml instancename                # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem instancename 512000          #给不活动虚拟机设置内存大小
virsh setvcpus instancename 4             # 给不活动虚拟机设置cpu个数
virsh edit instancename                   # 编辑配置文件(一般是在刚定义完虚拟机之后

4.libvirt 支持的虚拟技术:

目前支持的虚拟化技术包括:xen,qemu,kvm,lxc,openvz,virtualbox,test,storage,user mod linux ,主流的虚拟化技术基本都支持了。

5..Libvirt语言绑定

libvirt库用C(支持 C++)实现,且包含对Python的直接支持。不过它还支持大量语言绑定。目前已经对Ruby、Java语言,Perl和 OCaml实施了绑定。libvirt支持最流行的系统编程语言(C和C++)、多种脚本语言。因此,不管您侧重何种语言,都可以方便的应用Libvirt。

原文地址:https://www.cnblogs.com/lifei02/p/9892438.html

时间: 2024-10-02 21:46:03

虚拟机值libvirt解析的相关文章

SQL查询多条不重复记录值简要解析【转载】

转载http://hi.baidu.com/my_favourate/item/3716b0cbe125f312505058eb SQL查询多条不重复记录值简要解析2008-02-28 11:36 以下内容在Oracle 10g下测试由于设计需要,需要查询不重复的记录值,同类问题,想必大家都遇到过,于是乎马上GOOGLE一下,发现此类问题还挺多,解决方案也不少,仔细看看.例如有如下表结构和值tablefid   name sex1     a      男2     b      男3    

kickstart虚拟机安装故障解析

新建虚拟机或客户端常见报错: 如果遇到了以下错误 Error processing driver  thisdevice may need to be reinitialized ,那 几乎可以肯定是制作ks.cfg文件时,没有选择清除原有MBR.而不是内存不足. 解决办法: 重新制作ks.cfg,或者修改成以下样子: # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Recor

JAVA finally字句的异常丢失和返回值覆盖解析

转载:http://blog.csdn.net/sureyonder/article/details/5560538 Java虚拟机在每个try语句块和与其相关的catch子句的结尾 处都会“调用”finally子句的子例程.实际上,finally子句在方法内部的表现很象“微型子例程”.finally子句正常结束后-指的是finally子句中最后一条语句正常执行完毕,不包括抛出异常,或执行return.continue.break等情况,隶属于这个finally子句的微型子例程执行“返回”操作.

虚拟机联网及解析域名方法

虚拟机联网及域名解析办法 (一)虚拟机联网解决办法 (1)虚拟机设置 虚拟机的连接方式设置为host-only (2)本地连接设置 在网络和共享中心,点击"更改适配器设置",选择"本地连接",点击"属性"选择"共享"选项卡,选中 Internet连接共享选项. (3)设置VMnet1的Ip地址,不要和物理网卡设在同一个网段 如果用的是Oracle的VM VirtualBox,则是双击"VirtualBox Host-

VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

一.NAT模式 特点: 1.如果主机可以上网,虚拟机可以上网 2.虚拟机之间不能ping通 3.虚拟机可以ping通主机(此时ping虚拟机的网关,即是ping主机) 4.主机不能ping通虚拟机 应用场景: 虚拟机只要求可以上网,无其它特殊要求,满足最一般需求 配置方法: 连接方式 选择 网络地址转换(NAT) 高级-控制芯片 选择 PCnet-FAST III 高级-混杂模式 拒绝 高级-接入网线 √ (虚拟机ip自动获取) ip样式: ip 10.0.2.15 网关 10.0.2.2 注意

接口API测试和返回值JSON解析的插件

火狐插件1.   HttpRequest作用:接口API测试例子:http://192.168.10.61:8080/ZHCS/user/loginApp.do?phone=admin&pwd=admin接口以?作为结束, 连接用& 2.   JSON-handle作用:对json进行解析

Java虚拟机值对象访问以及如何使用对象的引用(2)

对象访问在 Java 语言中无处不在,是最普通的程序行为,但即使是最简单的访问,也会却涉及 Java 栈. Java 堆.方法区这三个最重要内存区域之间的关联关系,如下面的这句代码: Object obj = new Object(); 我们知道在Java栈中保存的是对象的引用,在Java堆中才是具体new出来的对象实体,根据具体类型以及虚拟机实现的对象内存布局( Object Memory Layout)的不同,这块内存的长度是不固定的. 另外,在 Java 堆中还必须包含能查找到此对象类型数

vSphere 6 创建RAC虚拟机共享磁盘解析

在vsphere环境中搭建虚机RAC需要遵循一定的步骤,虚拟机配置RAC,如果不是挂裸盘RDM的话,按以下步骤进行,不影响VMotion 的功能,但是影响Storage VMotion 的功能.在数据库系统云化实施中,对oracleRAC要求部署在虚拟机中的场景,可以采用以下步骤来进行实施. 要点: 各节点均采用单独的pvscsi控制器,SCSI总线共享选物理 添加厚制备置零的硬盘,各节点SCSI ID保持一致 每个节点双网卡或多网卡,用vmxnet3 设置磁盘为独立磁盘,这样对VM拍快照不会对

((TextBox)(GridView1.Rows[GridView1.EditIndex].Cells[1].Controls[0])).Text; 转换出错、获取不到值的解析

<asp:TemplateField HeaderText="序号"> <EditItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("序号") %>' Width="64"></asp:TextBox> </EditItemTemplate> &