企业级虚拟化Kvm实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业级虚拟化Kvm实战相关的知识,希望对你有一定的参考价值。

参考技术A

常用的虚拟化产品有哪些
1.Kvm(redhat)企业级
2.Vmware:
- - Vmware-workstation(windows和linux)桌面级
- -Vmware-fusion(mac)
- -Vmware-esxi(企业级别)本身就是一个操作系统。
3.hyper-v(微软)
4.Ovm(oracle公司--Windows linux) virtulbox
5.Xen(rhel6之前所有版本默认用的虚拟化产品)
虚拟化技术的分类:

我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor(虚拟监控器VMM) 或 Hypervisor ,隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。
平台虚拟化类型

全虚拟化(Full Virtualization):

半虚拟化(Para Virtualization):

硬件辅助虚拟化

部分虚拟化
企业级虚拟化与桌面级虚拟化的区别

从rhel6开始使用 直接把kvm的模块做成了内核的一部分

xen用在rhel6之前的企业版中 默认内核不支持,需要重新安装带xen功能的内核

KVM 针对运行在 x86 硬件上的、驻留在内核中的虚拟化基础结构。KVM 是第一个成为原生 Linux 内核(2.6.20)的一部分的 hypervisor,它是由 Avi Kivity 开发和维护的,现在归 Red Hat 所有。

这个 hypervisor 提供 x86 虚拟化,同时拥有到 PowerPC® 和 IA64 的通道。另外,KVM 最近还添加了对对称多处理(SMP)主机(和来宾)的支持,并且支持企业级特性,比如活动迁移(允许来宾操作系统在物理服务器之间迁移)。

KVM 是作为内核模块实现的,因此 Linux 只要加载该模块就会成为一个hypervisor。KVM 为支持 hypervisor 指令的硬件平台提供完整的虚拟化(比如 Intel® Virtualization Technology [Intel VT] 或 AMD Virtualization [AMD-V] 产品)。KVM 还支持准虚拟化来宾操作系统,包括 Linux 和 Windows®。

这种技术由两个组件实现。第一个是可加载的 KVM 模块,当在 Linux 内核安装该模块之后,它就可以管理虚拟化硬件,并通过 /proc 文件系统公开其功能。第二个组件用于 PC 平台模拟,它是由修改版 QEMU 提供的。QEMU 作为用户空间进程执行,并且在来宾操作系统请求方面与内核协调。

当新的操作系统在 KVM 上启动时(通过一个称为 kvm 的实用程序),它就成为宿主操作系统的一个进程,因此就可以像其他进程一样调度它。但与传统的 Linux 进程不一样,来宾操作系统被 hypervisor 标识为处于 "来宾" 模式(独立于内核和用户模式)。

每个来宾操作系统都是通过 /dev/kvm 设备映射的,它们拥有自己的虚拟地址空间,该空间映射到主机内核的物理地址空间。如前所述,KVM 使用底层硬件的虚拟化支持来提供完整的(原生)虚拟化。I/O 请求通过主机内核映射到在主机上(hypervisor)执行的 QEMU 进程。

KVM 在 Linux 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾操作系统.

KVM虚拟化应用实战

一、VNC的安装与使用


# yum -y install tigervnc-server

首次启动

# vncserver :1

会提示输入两次密码

然后编辑/root/.vnc/xstartup,将最后一行twm替换为gnome-session或者startkde

懒人可以直接用以下语句直接替换(执行任意一条即可,建议选择第一条稳定,但是占用内存较多)

sed -i ‘s/twm/gnome-session/g‘ /root/.vnc/xstartup

sed -i ‘s/twm/startkde/g‘ /root/.vnc/xstartup

重启vncserver

# vncserver


客户端连接

vncclient里输入 vncserver-IP:1

可能出现的问题:

vncserver 启动错误:could not open default font ‘fixed‘错误.


安装vncserver出现如下错误: 

 vncext:      VNC extension running! 
 vncext:      Listening for VNC connections on all interface(s), port 5901 
 vncext:      created VNC server for screen 0 
 Could not init font path element /usr/share/X11/fonts/misc, removing from list! 
 Could not init font path element /usr/share/fonts/default/Type1, removing from list! 
 Could not init font path element built-ins, removing from list!

 主要是缺少相关字体,通过yum安装即可 

yum install libXfont   
yum install xorg-x11-xfs   
yum install xorg-x11-xfs-utils   
yum install xorg-x11-xinit   
yum install xorg-x11-xdm   
yum install xorg-x11-fonts*


安装完后从新启动vnc服务即可。


二、查看是否支持虚拟化


vmware开启方式虚拟化方式如下图,虚拟机下面可以用VNC连接安装系统,如果服务器在idc机房,是连不上去的,另外kvm和桌面系统兼容性不清楚,有发生过卡死的情况,所以还是命令行,下面是一步一步的 操作过程,按着步骤肯定可以!


确定服务器是否支持虚拟化,如果没有查到,在bios里面开启


vmx属于inter处理器,svm属于amd处理器

egrep ‘vmx|svm‘ /proc/cpuinfo
flags       :fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflushdts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
rdtscp lmconstant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc
aperfmperfpni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr
pdcm pciddca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx
lahf_lm ida aratxsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid


三、安装kvm包


安装过程如下:

yum  groupinstall  "Development Tools"
yum  groupinstall "Virtualization" "Virtualization Client"  "Virtualization Platform"


virtualization //提供虚拟机的环境,主要包含qumu-kvm

virtualization-client//管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer

virtualization-platform//提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client


四、检查安装后是否加载模块

lsmod|grep kvm
kvm_intel              53484  12
kvm                   316506  1 kvm_intel


查看kvm正常运行


/etc/init.d/libvirtd start

chkconfig libvirtd on


安装完成后,需要启动/etc/init.d/libvirtd服务,在启动过程中可能出现如下错误:


启动libvirtd有如下报错:

[[email protected] lib64]# service libvirtd restart
正在关闭 libvirtd 守护进程:                               [失败]
启动 libvirtd 守护进程:libvirtd: relocation error: libvirtd: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference [失败]

                                                          

 解决方案如下:

yum -y  upgrade device-mapper-libs

本文出自 “爱维Linux” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/1877435

以上是关于企业级虚拟化Kvm实战的主要内容,如果未能解决你的问题,请参考以下文章

部署KVM虚拟化平台(理论+实战)

KVM+Qemu+Libvirt实战

KVM虚拟化实战精讲[第三章 创建虚拟磁盘]

KVM虚拟化实战精讲[第四章 安装虚拟机]

KVM虚拟化实战精讲[第一章 基础环境]

Linux系统之虚拟化实战PVE下KVM虚拟机的嵌套安装方法