`
yaolinnan
  • 浏览: 58625 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

基于java的libvirt接口

阅读更多

准备:

1.确保你的linux平台搭建了kvm环境

 

2.下载libvirt-java-0.4.7.tar.gz  官方网站:http://libvirt.org/sources/java/

 

3.打开eclipse,新建工程,导入libvirt包

 

开发:

1.根据xml配置文件创建虚拟机

 

  1. public class Test {
  2.     /**
  3.      * @param args
  4.      */
  5.     public static void main(String[] args) {
  6.         Connect conn = null;
  7.         int flags = 0;
  8.         try {
  9.             
  10.             
  11.             conn = new Connect("qemu:///system", false);
  12.             String dumpxml = "<domain type='kvm'>"+
  13.              "<name>tt2</name>"+
  14.              "<memory>524288</memory>"+
  15.              "<currentMemory>524288</currentMemory>"+
  16.              "<vcpu>1</vcpu>"+
  17.              "<os>"+
  18.              " <type arch='i686' machine='pc-0.11'>hvm</type>"+
  19.              " <boot dev='hd'/>"+
  20.              "</os>"+
  21.              "<features>"+
  22.              " <acpi/>"+
  23.              " <apic/>"+
  24.              " <pae/>"+
  25.              "</features>"+
  26.              "<clock offset='utc'/>"+
  27.              "<on_poweroff>destroy</on_poweroff>"+
  28.              "<on_reboot>restart</on_reboot>"+
  29.              "<on_crash>restart</on_crash>"+
  30.              "<devices>"+
  31.              " <emulator>/usr/bin/qemu-kvm</emulator>"+
  32.              " <disk type='file' device='disk'>"+
  33.              " <driver name='qemu' cache='none'/>"+
  34.              " <source file='/var/lib/libvirt/images/tt.img'/>"+
  35.              " <target dev='hda' bus='ide'/>"+
  36.              " </disk>"+
  37.              " <interface type='network'>"+
  38.              " <mac address='54:52:00:02:02:2c'/>"+
  39.              " <source network='default'/>"+
  40.              " </interface>"+
  41.              " <serial type='pty'>"+
  42.              " <target port='0'/>"+
  43.              " </serial>"+
  44.              " <console type='pty'>"+
  45.              " <target port='0'/>"+
  46.              " </console>"+
  47.              " <input type='mouse' bus='ps2'/>"+
  48.              " <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>"+
  49.              "</devices>"+
  50.             "</domain>";
  51.             
  52.             
  53.             Domain dm = null;
  54.             
  55.             Domain dm1 = conn.domainDefineXML(dumpxml);
  56.             //Domain dm1 = conn.domainDefineXML(dumpxml); //创建一个域,但不启动
  57.             //dm1.undefine(); //undefind一个域,如果活动,则不停止
  58.             /****
  59.             try{
  60.                 Domain dm1 =conn.domainLookupByName("tt2");
  61.             }
  62.             catch (LibvirtException e) {
  63.                 System.out.println("libvirt 错误" + e);
  64.                 // TODO: handle exception
  65.             }
  66.             if(dm!=null)
  67.             {
  68.                 
  69.                 dm.undefine();
  70.                 
  71.             }
  72.             ****/
  73.         
  74.             /********
  75.             Domain dm2 = conn.domainDefineXML(dumpxml);
  76.             dm2.undefine();
  77.             *******/
  78.                         
  79.         } catch (LibvirtException e) { //LibvirtException 返回错误详细信息
  80.             System.out.println("exception caught:" + e);
  81.             System.out.println("获取的错误;" + e.getError()); 
  82.             return;
  83.         }
  84.         
  85.         System.out.println("Clean exit");
  86.     }
  87. }
2 libvirt库函数说明
 
(1)
  1. conn = new Connect("qemu:///system",true)
  1. conn = new Connect("qemu:///system",false)

 

第一个是以只读的方式打开连接

第二个可以对domain进行写操作

 

(2)

  1. Domain dm1 = conn.domainDefineXML(dumpxml);
创建一个域, 但不启动
 
(3)
 
  1. dm1.undefine();
undefind一个域,如果活动,则不停止
 
3.官方API文档:http://libvirt.org/sources/java/javadoc/
精彩科技工作室
分享到:
评论

相关推荐

    libvirt-java0.4.7

    5. **安全策略**:libvirt支持细粒度的安全策略,libvirt-java提供了相应的接口来设置和查询这些策略,确保虚拟化环境的安全性。 6. **XML描述**:libvirt使用XML来定义虚拟机配置,libvirt-java提供了解析和生成...

    libvirt -java绑定

    libvirt java绑定包 提供java API

    libvirt-java

    编译后直接可用的libvirt-java.jar,java监控虚拟机的必要jar包

    libvirt-snmp 网络管理接口

    **libvirt-snmp 网络管理接口** libvirt-snmp 是一个专为虚拟化环境设计的网络管理接口工具,它允许用户通过简单网络管理协议(SNMP)来监控和管理虚拟机网络流量。该工具提供了对libvirt库的扩展,使SNMP支持成为...

    libvirt application开发指南C语言

    整体来看,该文档详尽介绍了libvirt的各个方面,为开发者提供了全面的参考,无论是在理解libvirt内部工作机制,还是在开发与libvirt接口交互的应用程序时,都能提供重要的指导。由于libvirt支持多种虚拟化后端和API...

    Libvirt 介绍

    1. **API 提供**:Libvirt 提供了一个 C 语言的 API,同时也支持多种高级编程语言的绑定,如 Python、Java 和 Ruby。这些 API 允许开发者编写应用程序来创建、配置和管理虚拟机。 2. **虚拟化管理接口**:Libvirt ...

    PHP简单管理Libvirt虚拟机

    2. **关闭虚拟机**:同样利用Libvirt接口,能够安全地关闭正在运行的虚拟机,确保数据的完整性和系统的稳定性。 3. **强制结束虚拟机**:在某些紧急情况下,可能需要立即停止虚拟机运行,这个功能提供了这样的能力...

    Libvirt虚拟化技术介绍.pdf

    Libvirt虚拟化技术是当前使用最广泛的对KVM虚拟机进行管理的工具和应用程序接口。Libvirt支持多种虚拟化方案,既支持包括KVM、QEMU、Xen、VMware、VirtualBox等在内的平台虚拟化方案,又支持OpenVZ、LXC等Linux容器...

    libvirt源码

    这个源码包是版本0.9.11,适用于安装和开发基于libvirt的应用程序。在深入研究libvirt源码之前,我们需要先了解其基本概念和功能。 1. **libvirt API** Libvirt提供了一组丰富的C语言API,允许开发者创建跨平台的...

    libvirt-1.3.5.tar.gz

    libvirt提供了C语言的原生API,同时也为其他编程语言如Python、Java、Perl、Ruby等提供了绑定,方便不同语言的开发者使用。API包含了丰富的函数和结构体,涵盖虚拟机生命周期管理、网络配置、存储管理等多个方面。 ...

    Libvirt Qemu KVM 教程大全

    KVM 通过 `/dev/kvm` 设备节点提供 API 接口,应用程序可通过 ioctl 调用来创建和管理虚拟机。 - **Qemu-KVM**:Qemu 通过 ioctl 调用 `/dev/kvm` 来实现硬件辅助虚拟化。从版本 release_0_5_1 开始,Qemu 将 KVM ...

    Qemu KVM and Libvirt

    Qemu 将 KVM 整合进来,通过 ioctl 调用 /dev/kvm 接口,将有关 CPU 指令的部分交由内核模块来做。这使得 Qemu 可以使用 KVM 的硬件辅助虚拟化技术,提高性能。Qemu 还会模拟其它的硬件,如 Network 和 Disk,这些...

    libvirt内部原理.pdf

    Python接口是libvirt的Python绑定,提供了对libvirt的Python接口。Driver实现是libvirt的驱动程序,提供了对libvirt的实现。 5. 内部原理 libvirt的内部原理包括Daemon、Virsh、API函数和数据结构声明、Python接口...

    基于KVM_QEMU与Libvirt的虚拟化资源池构建

    基于KVM_QEMU与Libvirt的虚拟化资源池构建,

    libvirt-test-API

    该项目使用 Python 编写,旨在通过 Python 绑定接口来尽可能覆盖 `libvirt` API 的所有功能。 #### 主要组件与功能 - **Python 绑定**: `libvirt` 提供了一个长期稳定的 C API,并为多种编程语言提供了绑定支持,...

    libvirt编译安装

    libvirt是一个开源的软件集合,它提供了用于管理虚拟化基础设施的工具和应用程序接口(API)。libvirt支持多种类型的虚拟化技术,包括KVM、Xen、VirtualBox等,使用户能够在不同的平台上统一管理和操作虚拟机。 ###...

    libvirt内部原理

    对于Python绑定,libvirt提供了一个Python模块,可以导入libvirt.py,并通过Python接口调用libvirtmod.so中的函数,这些函数最终调用到libvirt的C语言API。 以qemu驱动实现为例,qemu驱动接口声明在qemu_driver.c中...

    Foundations of Libvirt Development.pdf

    libvirt是一个开源API库,它提供了对虚拟化技术如KVM, Xen和QEMU等进行管理的接口。在IT行业中,libvirt库被广泛用于开发和管理虚拟化解决方案,特别是和KVM配合使用时。在开始之前,我们需要了解一些基础知识点。 ...

    libvirt0.9.4.tar.gz

    libvirt作为一款强大的开源虚拟化管理工具,为多种虚拟化平台提供了统一的API接口,让开发者可以方便地进行跨平台的虚拟机管理。本文将围绕libvirt0.9.4版本,深入探讨其关键特性、安装过程以及如何利用它进行虚拟化...

    libvirt application开发指南 python

    libvirt的API抽象了底层的虚拟化技术,让开发者可以用统一的接口来管理和控制不同厂商的虚拟化技术。 接着,文档介绍libvirt的对象模型,这包括对虚拟化环境中各种实体的表示。比如,hypervisor连接是指对虚拟化...

Global site tag (gtag.js) - Google Analytics