###1.kvm简介
这几年云计算越来越火,追其底层依赖于虚拟化技术。
虚拟化是构建云基础架构不可或缺的关键技术之一。云计算的云终端,其实质上就是一个大型的分布式的系统。虚拟化通过在一个物理平台上虚拟出更多的虚拟平台,而其中的每个虚拟平台则可以作为独立的终端加入云计算的分布式系统。比起直接使用物理平台,虚拟化在资源的利用、动态调配和高可靠行方面有着巨大的优势。利用虚拟化,企业可以不必抛弃现有的基础架构即可构建全新的信息基础架构。
KVM是kernel-based Virtual Machine的简称,目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。KVM的安装和使用相对于XEN来说十分的简单和方便,并且功能强大,比较适用于高性能计算服务的云计算环境中作为IAAS层的虚拟化部署工作。不得不提的是甲骨文公司的VirtualBox也很强大,各方面与KVM可以相媲美,但是现在不开源比较昂贵一般的云计算平台很少使用。至于完全虚拟化和半虚拟化我觉得这是一个很模糊的概念。
KVM提供了图像界面的管理接口(Virtual Machine Manager)和命令行式的管理接口(virsh)。可以根据使用的场景采用不同的方式,当然也可以使用Libvirt库进行管理虚拟机,并且使用libvirt库进行虚拟机的管理是业界很推崇的做法,这都源于libvirt库良好的移植性和强大的API,并且提供了多种语言接口(如C语言,python语言,JAVA语言,C#语言和PHP语言)能对Xen,KVM以及QEMU等多类虚拟机进行管理管理。详情请参考其官网:http://libvirt.org/。
KVM 的 全 称 是 Kernel Virtual Machine , 翻 译 成 中 文 就 是 内 核 虚 拟 机 KVM 虚 拟 机 最 初 是 由 一 个 以 色 列 的 创 业 公 司 Qumranet 开 发 的 , 作 为 他 们 的 VDI 产 品 的 虚 拟 机 为 了 简 化 开 发 , KVM 的 开 发 人 员 并 没 有 选 择 从 底 层 开 始 新 写 一 个 Hypervisor, 而 是 选 择 了 基 于 Linux kernel, 通 过 加 载 新 的 模 块 从 而 使 Linux Kernel 本 身 变 成 一 个 Hypervisor 2006 年 10 月 , 在 先 后 完 成 了 基 本 功 能 、 动 态 迁 移 以 及 主 要 的 性 能 优 化 之 后 , Qumranet 正 式 对 外 宣 布 了 KVM 的 诞 生 同 年 10 月 , KVM 模 块 的 源 代 码 被 正 式 接 纳 进 人 L 而 皿 Kernel, 成 为 内 核 源 代 码 的 一 部 分 作 为 一 个 功 能 和 成 熟 度 都 逊 于 xen 的 项 目 , 在 这 么 快 的 时 间 内 被 内 核 社 区 接 纳 , 主 要 原 因 在 于 : 在 虚 拟 化 方 兴 未 艾 的 当 时 , 内 核 社 区 急 于 将 虚 拟 化 的 支 持 包 含 在 内 , 但 是 xen 取 代 内 核 由 自 身 管 理 系 统 资 源 的 架 构 引 起 了 内 核 开 发 人 员 的 不 满 和 抵 触 在 2008 年 9 月 4 日 , 同 内 核 社 区 保 持 着 很 深 渊 源 的 著 名 Linux 发 行 版 提 供 商 —Redhat
公 司 出 人 意 料 地 出 资 , 亿 700 百 万 美 金 , 收 购 了 Qumranet , 从 而 成 为 了 KVM 开 源 项 目 的 新 东 家 山 于 此 次 收 购 , Redhat 公 司 有 了 自 己 的 虚 拟 机 解 决 方 案 , 于 是 开 始 在 自 己 的 产 品 中 使用kvm。
###2.查看物理主机是否支持kvm
通过以下命令查看:(注意xen和kvm不能共存,在带xen内核的系统中使用下面的命令会无效,即使你的机器支持VT技术也不会查到vmx或者svm)
kvm 依赖于vt技术(vt-x和vt-d),一般普通pc都已经支持vt-x技术,但vt-d还没有,只有少数高端机型的pc机器支持。服务器一般都支持vt-x和vt-d技术。
[root@centoskvm ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt
如果结果不为空,则说明支持kvm虚拟化技术,反之不支持。
kvm 依赖于vt技术(vt-x和vt-d),一般普通pc都已经支持vt-x技术,但vt-d还没有,只有少数高端机型的pc机器支持。服务器一般都支持vt-x和vt-d技术。