APP下载

基于KVM虚拟化平台的构建研究

2019-12-05李晓佳董延华吴佳怡

智能计算机与应用 2019年5期
关键词:虚拟化技术

李晓佳 董延华 吴佳怡

摘 要:云计算作为未来网络技术发展的方向,可以快速构建各类高效的信息化系统,其实现核心虚拟化技术也得到了用户广泛的重视。KVM是一种高效的虚拟化技术,提供了一种基于Linux内核的虚拟化解决方案,通过结合QEMU提供设备虚拟化,提高了资源分配的效率和灵活度,从而确保了虚拟化平台的高效性和稳定性。本文从KVM虚拟化平台的构建入手,对KVM虚拟化技术的优势进行分析,具体阐述了KVM虚拟化的部署方案,为集群的创建提供了硬件支撑。

关键词: 虚拟化技术;Linux内核;KVM虚拟化平台

【Abstract】 As the direction of future network development technology, cloud computing can rapidly construct various kinds of efficient information systems, and its core virtualization technology has also been widely valued by users. KVM is an efficient virtualization technology that provides a virtualization solution based on the Linux kernel. By combining with QEMU to provide device virtualization, it improves the efficiency and flexibility of resource allocation, thus ensuring the efficiency and stability of the virtualization platform. This paper starts with the construction of KVM virtualization platform, analyzes the advantages of KVM virtualization technology, and elaborates the deployment scheme of KVM virtualization in detail, which provides hardware support for cluster creation.

【Key words】  virtualization technology; Linux kernel; KVM virtualization platform

0 引 言

随着云计算概念的兴起,虚拟化技术也已逐渐引起学界关注,这是云计算架构中的核心技术。研究中是用软件的方法重新划分和定义IT资源,打破实体结构间的不可分割的障碍,实现对IT资源的动态分配、灵活调度,简化对资源以及对资源管理的访问,从而提高资源的利用效率。

1 KVM虚拟化技术

主流的虚拟化技术包括KVM(Kernel-based Virtual Machine)、Xen、VMM等,其中,KVM是集成到Linux内核的虚拟机管理程序(Hypervisor),是X86架构且硬件支持虚拟化技术的全虚拟化解决方案。KVM技术核心是实现了内核中对处理器虚拟化特性的支持,但缺乏设備虚拟化以及相应的用户空间管理虚拟机的工具[1]。相比较而言,XEN属于外部的Hypervisor,能够控制虚拟机,并给多个客户机分配资源,但缺点是更新XEN版本时,需要重新编译整个内核,容易造成系统崩溃。相比之下,KVM的结构更精简,代码量更少。

2 KVM与QEMU、Libvirt组件的关系

作为Linux内核驱动模块的一部分,KVM可以用Modprobe模块支持IntelVT或AMD-V虚拟化,并通过/dev/kvm暴露程序接口,用户态程序可以通过/ioctl函数来访问这个接口,使CPU的相关指令部分转交给内核来处理[2]。

2.1 KVM与QEMU的关系

QEMU是一个独立的虚拟化解决方案,包括独立的处理器虚拟化、内存虚拟化以及I/O设备虚拟化,其本身可以不依赖KVM而存在,但由于KVM无法独立完成用户与内核模块间的任务交互,需要借助QEMU作为用户空间的管理工具,而QEMU同样需要通过KVM提高硬件虚拟化的性能。

2.2 KVM与Libvirt的关系

Libvirt是面向驱动的架构设计,由API库、Libvirtd服务以及virsh命令行管理工具组成,可以通过调用闲置的API库实现对各种类型虚拟机的管理[3]。Libvirt提供了多种语言的编程接口,可以直接通过编程调用Libvirt提供的对外接口实现对虚拟机的操作,不同的虚拟机提供不同的驱动,从而实现相互间不受影响,有利于后期的研发拓展。

3 KVM虚拟机的实现

KVM的获得方式有多种,研究常用yum命令直接进行安装,操作的前提是宿主机(服务器)需要获得支持KVM的权限。对此可做阐释论述如下。

3.1 开启虚拟化服务

(1)安装虚拟化软件配置信息如下:

#yum groupinstall Virtual*

(2)检查KVM是否开启成功。配置代码为:#Ismod | grep KVM

运行后,出现如图1所示的反馈结果即支持服务器虚拟化操作。

3.2 KVM组件安装及网络配置

(1)启动libvirt脚本,此时将用到的配置代码可写为:#Service libvirtd start

(2)配置网卡的桥接信息。在安装和启动libvirtd服务后,libvirtd在服务器(宿主机)上自动生成一个virbr0(virtual network switch),连接在宿主机上的虚拟机会默认通过virbr0连接起来。但由于设计采用的是NAT网络模式,在连接多台虚拟机时会造成IP地址的浪费,因此在操作过程中,一般将virbr0予以关闭,再使用br0进行桥接设置。具体配置如下:

# virsh net-list

Name     State   Autostart

default   active yes

# virsh net-destroy default

Network default destroyed

# virsh net-undefine default

Network default has been undefined

# service libvirtd restart

Stopping libvirtd daemon:[ OK ]

Starting libvirtd daemon:[ OK ]

3.3 创建虚拟服务器

(1)通过QEMU-img创建8 G的映像文件。配置代码如下:

#qemu-img create -f raw /share/class1.raw 8G

(2)安装CentOS 6.6版本的操作系统,配置如下:

#virt-install --virt-type kvm --name class1--ram 1024 --cdrom=/ISO/CentOS-6.6-i386-bin-DVD1.iso --disk path=/share/class1.raw --network network=default  --graphics vnc,listen=0.0.0.0-noautoconsole

3.4 开启远程桌面控制

Linux中对虚拟桌面的连接共有4种方式,对此可得研究分述如下:

(1)宿主机(服务器)上使用SSH命令连接虚拟机文本界面。

(2)宿主机(服务器)上使用virt-manager命令进入虚拟机图形管理界面。

(3)宿主机(服务器)上使用virsh命令的子命令concole通过串口连接虚拟机。

(4)远程计算机通过虚拟計算机网络(Virtual Network Computing,VNC)连接虚拟机图形界面。

实验中采用VNC进行远程桌面的管理,具体配置如下:

(1)安装VNC服务包。对应代码为:

rpm -ivh /mnt/Server/vnc-server-4.1.2-9.el5.x86_64.rpm

(2)配置虚拟机监听。对应代码为:

# vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"

vnc_password = "666666"

(3)配置VNC图形桌面为KDE。对应代码为:

# vi /root/.VNC/xstartup

Unset SESSION-MANAGER

Exec /etc/X11/xinit/xinitrc

4 结束语

作为当前应用最广泛的虚拟化技术之一,KVM虚拟化为云计算的进一步发展和应用奠定了坚实的基础,如何提高虚拟化平台的性能是构建云平台的关键,本文从分析KVM虚拟化平台的构成入手,详细讨论了平台的实现方法,未来将深入研究基于KVM虚拟化的批量克隆技术,从而提高虚拟化集群搭建的效率。

参考文献

[1]彭天炜. KVM虚拟化技术在云平台中的应用[J]. 电脑知识与技术,2015,11(14):32-33.

[2]彭晓平,张雪坚,黄波. 基于KVM的虚拟化技术研究[J]. 中国新通信,2017(20):77-80.

[3]王伟. 云计算原理与实践[M]. 北京:人民邮电出版社,2018.

猜你喜欢

虚拟化技术
独立学院虚拟网络实验室的研究与建设
基于云平台的计算机开放式实验教学与管理模式研究
虚拟化技术在中职学校校园网服务器中的应用
云计算虚拟化技术在电信领域的应用研究
基于SOP架构的一种轻量级虚拟化防火墙的实现
服务器虚拟化技术在高职机房管理中的应用
探讨虚拟化技术在广电监测台中的应用
云计算实验室建设方案探究