WEB开发网
开发学院软件开发Java Windows下Libvirt Java API使用教程(二)- 接口使用... 阅读

Windows下Libvirt Java API使用教程(二)- 接口使用说明

 2012-05-16 19:39:43 来源:WEB开发网   
核心提示: 说明:注1:标注不支持的,是在当前环境当前libvirt版本下,Windows下Libvirt Java API使用教程(二)- 接口使用说明(3),运行会报错的接口, unsupported in sys interface 注2:名词解释hvm:gives similar information but whe
 
说明:
注1:标注不支持的,是在当前环境当前libvirt版本下,运行会报错的接口。
  unsupported in sys interface 
注2:名词解释
hvm:
gives similar information but when running a 32 bit OS fully virtualized with Xen using the hvm support。
numa:
For processors that support hyperthreading, this is the number of hyperthreads
they have per core.  On a machine that doesn't support hyperthreading, this
will be 1.
说实话,这么多信息中,笔者关注的不多,有很多甚至说不出其代表的含义,笔者关注只是cpu的个数,核心数,内存总量等直观信息。有就足以。
看完了主机,再看看虚拟机。一个虚拟化环境中的核心资源自然是虚拟机,所以其属性和信息也自然多很多,上测试代码:
/**  
     * 测试探测虚拟机接口  
     *   
     * @author lihzh  
     * @date 2012-5-16 上午11:14:20  
     */ 
    @Test 
    public void testDetectDomains() {  
        // KVM  
        doDetectDomains(kvmConn);  
        // XEN  
        doDetectDomains(xenConn);  
    }  
 
/**  
     * 执行探测虚拟机测试函数  
     *   
     * @param conn  
     * @author lihzh  
     * @date 2012-5-16 上午11:15:27  
     */ 
    private void doDetectDomains(Connect conn) {  
        try {  
            // Lists the active domains.(列出所有处于启动(激活)状态的虚拟机的id)  
            for (int activeDomId : conn.listDomains()) {  
                System.out.println("Active vm id: " + activeDomId);  
                // 根据Id,探测各个虚拟机的详细信息  
                Domain domain = conn.domainLookupByID(activeDomId);  
                // Gets the hypervisor ID number for the domain  
                System.out.println("Domain id: " + domain.getID());  
                // Gets the public name for this domain  
                System.out.println("Domain name: " + domain.getName());  
                // Gets the type of domain operation system.  
                System.out.println("Domain os type: " + domain.getOSType());  
                // Gets the UUID for this domain as string.  
                System.out.println("Domain uuid: " + domain.getUUIDString());  
                // Retrieve the maximum amount of physical memory allocated to a  
                // domain.  
                System.out.println("Domain max memory: " 
                        + domain.getMaxMemory());  
                // Provides the maximum number of virtual CPUs supported for the  
                // guest VM. If the guest is inactive, this is basically the  
                // same as virConnectGetMaxVcpus. If the guest is running this  
                // will reflect the maximum number of virtual CPUs the guest was  
                // booted with.  
                System.out.println("Domain max vcpu: " + domain.getMaxVcpus());  
                // Provides an XML description of the domain. The description  
                // may be  
                // reused later to relaunch the domain with createLinux().  
                System.out.println("Domain xml description: " 
                        + domain.getXMLDesc(0));  
                System.out.println("Domain maxMen allowed: " 
                        + domain.getInfo().maxMem);  
                System.out.println("Domain memory: " + domain.getInfo().memory);  
                // domain.getJobInfo()  
                // 不支持  
                System.out.println("Domain state: " + domain.getInfo().state);  
                // Provides a boolean value indicating whether the network is  
                // configured to be automatically started when the host machine  
                // boots.  
                System.out.println("Domain network autostart: " 
                        + domain.getAutostart());  
                // Extracts information about virtual CPUs of this domain  
                for (VcpuInfo vcpuInfo : domain.getVcpusInfo()) {  
                    System.out.println("cpu: " + vcpuInfo.cpu);  
                    System.out.println("cpu time: " + vcpuInfo.cpuTime);  
                    System.out.println("cpu number: " + vcpuInfo.number);  
                    System.out.println("cpu state: " + vcpuInfo.state);  
                }  
              
                // 如果是KVM环境  
                if (conn.getURI().startsWith("qemu")) {  
                    // This function returns block device (disk) stats for block  
                    // devices attached to the domain  
                    DomainBlockInfo blockInfo = domain  
                            .blockInfo("/opt/awcloud/instance/admin/" 
                                    + domain.getName() + "/disk");  
                    System.out.println("Disk Capacity: " 
                            + blockInfo.getCapacity());  
                    System.out.println("Disk allocation: " 
                            + blockInfo.getAllocation());  
                    System.out.println("Disk physical: " 
                            + blockInfo.getPhysical());  
 
                    DomainBlockStats blockStats = domain.blockStats("vda");  
                    // 磁盘读取请求总数  
                    System.out.println("read request num: " + blockStats.rd_req);  
                    // 磁盘读取总bytes数  
                    System.out.println("read request num: " + blockStats.rd_bytes);  
                    // 磁盘写入请求总数  
                    System.out.println("read request num: " + blockStats.wr_req);  
                    // 磁盘写入总bytes数  
                    System.out.println("read request num: " + blockStats.wr_bytes);  
                }  
 
            }  
              
            // 列出所有停止态的虚拟机  
            for (String name : conn.listDefinedDomains()) {  
                System.out.println("Inactive domain name: " + name);  
            }  
 
        } catch (LibvirtException e) {  
            e.printStackTrace();  
        }  
    } 

上一页  1 2 3 4 5  下一页

Tags:Windows Libvirt Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接