摘要:在计算机科学中,虚拟化的意思是创建某个事物的虚拟(相对于实体)版本的行为,可被虚拟化的实体包括但不仅限于虚拟计算机硬件平台,操作系统,存储设备,甚至是计算机网络资源。随着互联网的大规模高速扩张,虚拟化技术正在发展成为现代网络服务之中一种不可或缺的技术。不管是普通的网络服务,还是发展势头非常强劲的云计算,事实证明他们对虚拟化技术的依赖日益增强。虚拟化技术用对于成本的缩减和资源利用率的提高拥有非常大的帮助。对于个人电脑性能越来越好的今天,我相信虚拟化技术也可以在个人电脑上有所作为,特别是对于个人开发者来说,虚拟化技术意味着可负担的开发成本和可控的开发环境。KVM(Kernel-Based Virtualization)是一个非常成功的开源虚拟化项目,如今KVM是许多开源商业产品和开源云平台的重要的底层虚拟化技术。本文致力于基于KVM实现一个虚拟机自动化部署和管理工具。
关键词:虚拟化 KVM 自动化
目录
摘要
Abstract
1概述-1
1.1研究目的和意义-1
1.2研究背景-2
1.2.1国内现状-2
1.2.2国外现状-2
1.3主要贡献-4
1.4文章的结构-4
2预备知识及原理说明-5
2.1 虚拟化-5
2.1.1 虚拟化的概念-5
2.1.2 服务器虚拟化技术-6
2.2 KVM-7
2.2.1 KVM的概念-7
2.2.2 基于KVM的虚拟化技术-7
2.3 Libvirt-8
2.3.1 Libvirt的基本情况-8
2.3.1 Libvirt架构原理-9
2.4 Anaconda-10
2.5 SSH-10
2.5.1 SSH协议介绍-10
2.5.2 SSH协议结构-11
3 VMRanger系统分析-11
3.1需求分析-11
3.2功能说明-12
3.2.1虚拟机安装-12
3.2.2虚拟机基本操作-12
3.2.3虚拟机软件添加-12
3.2.4虚拟机脚本执行-13
3.2.5 连续多任务处理-13
4 VMRanger系统设计-13
4.1系统总体设计-13
4.1.1系统的工作流程-13
4.1.2系统的功能模块-14
4.2系统详细设计-15
4.2.1系统关键类-16
4.2.2系统重要模块详细设计-16
5 VMRanger系统实现-17
5.1开发平台-17
5.1.1 Fedora 22-17
5.1.2 Vim-17
5.1.3 Git-17
5.1.4 Python-17
5.1.5 Micosoft Visual Visio 2013-17
5.2模块实现-18
5.2.1 Action模块-18
5.2.2 vminstall模块-19
6 VMRanger系统测试与运行-21
6.1 测试-21
6.1.1单元测试-21
6.1.2 功能测试-21
6.1.3 系统综合测试-21
6.2 系统运行-22
7 结束语-22
致谢-23
参考文献-24