【KVM虚拟化实践与编程】云平台管理系统

本文详细介绍了如何搭建KVM/QEMU虚拟化环境,包括安装QEMU、构建KVM、配置JDK环境,以及使用Java和Libvirt API开发云平台管理系统。系统功能涵盖虚拟机管理、镜像操作、网络设置等。
摘要由CSDN通过智能技术生成

【KVM虚拟化实践与编程】云平台管理系统

一、KVM/QEMU虚拟化环境的搭建

1. 安装QEMU

使用命令“apt-get install qemu”安装QEMU。
图1 QEMU的apt-get安装

2.构建KVM环境

(1)打开VMware对CPU的虚拟化支持。
图2 打开VMware对CPU的虚拟化支持
(2)使用命令“cat /etc/issue”查看Ubuntu操作系统版本。
图3 查看Ubuntu操作系统版本
(3)使用命令“uname -r”或“cat /proc/version”查看Linux内核版本,如果内核版本低于2.6.20,则需要下载KVM进行编译和安装。
图4 查看Linux内核版本
(4)使用命令“lsmod | grep kvm”查看Linux内核是否已安装KVM内核模块。
图5 查看KVM模块
(5)确认KVM 相关的模块加载成功后,使用命令“ls -l /dev/kvm”检查/dev/kvm文件。
检查/dev/kvm文件

3.安装虚拟化管理工具

(1)安装libvirt,使用命令“apt-get install libvirt-bin”和“apt-get install libvirt-dev”安装libvirt-bin和libvirt-dev两个包。
图7 libvirt-bin的apt-get安装图8 libvirt-dev的apt-get安装
(2)安装virt-manager,使用命令“apt-get install virt-manager”安装virt-manager。
图9 virt-manager的apt-get安装

4.配置JDK环境

(1)由于使用java程序设计语言做开发,因此需要配置JDK环境。IDE工具可以使用eclipse。可以使用“apt-get install eclipse”命令安装eclipse,会自动配置JDK环境。
图10 eclipse的apt-get安装
(2)由于libvirt是使用C语言开发的,因此使用java进行系统开发需要使用libvirt对java的绑定,需要下载libvirt-0.5.0.jarjna-4.4.0.jar
图11 下载jar包拷贝至宿主机

二、需求分析

云平台管理系统的功能包括:

  1. 通过镜像管理虚拟机,包括虚拟机创建、启动、暂停、恢复、删除等
  2. 镜像的添加与删除功能
  3. 虚拟机网络模式设置,网络的断开和连接
  4. 对虚拟机做快照功能(选做)
  5. 虚拟机挂载存储磁盘(选做)

三、系统设计

云平台管理系统是对虚拟机进行管理和操作,该系统采用Libvirt Java API 进行分析和设计,使用编程语言java作为开发语言,使用ecplise作为开发平台,通过jfinal框架展示给用户,能够很好的实现系统的开发及测试。使用java的GUI实现了按钮对虚拟机的启动,重启,正常关机,强制关机,挂起,唤醒挂起的虚拟机,保存当前虚拟机状态,读取已保存的虚拟机,也可以实现对当前运行的虚拟机状态的打印输出,还可以实现对网络的启动和关闭。

  1. 连接
    public static Domain init() throws LibvirtException, DocumentException {
   
		conn = new Connect("qemu:///system", false);
		SAXReader reader = new SAXReader();
		Document docu = reader.read(new File("/etc/libvirt/qemu/demo.xml"));
		String xmlDesc = docu.asXML();
		Domain domain = conn.domainDefineXML(xmlDesc);
		return domain;
	}
  1. 启动
        if (e.getActionCommand().equals("启动")) {
   
			try {
   
				domain = JavaLibvirt.init();
				domain.create();
				System.out.println(domain.getName() + "虚拟机已启动!");
			} catch (LibvirtException e1) {
   
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (DocumentException e1) {
   
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
  1. 挂起
        if (e.getActionCommand().equals("挂起")) {
   
			try {
   
				domain = JavaLibvirt.init();
				domain.suspend();
				System.out.println(domain.getName() + "虚拟机已挂起!");
			} catch (LibvirtException e1) {
   
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值