KVM虚拟化集群技术概述

一、 虚拟化集群介绍、设计思路及架构

使用虚拟化集群的目标是克服单机虚拟化的局限性,利用技术 手段提高虚拟机可用性, 最终达到业务不中断或者减少中断时间, 确 保业务数据更安全的目标。

虚拟化集群介绍

什么是虚拟化集群

虚拟机集群最显著的特征是有共享存储,因为有了共享存储, 虚拟机就可以实现非常快速的在线迁移,并在虚拟化层配置高可用。 笔者在生产环境使用的集群有两种存储方式, 基于商业存储和基于开 源分布式文件系统。

虚拟化集群的高可用和基于应用层高可用的区别

高可用是经常用到的运维技术,在系统、网络、数据库、 Web 业务等各个应用层面都有使用。 高可用技术是指至少有主备两个节点, 当主节点故障的时候, 迅速切换到备用节点。 为了避免备用节点误判, 有时候还有第三个节点, 或者主节点和备用节点共同能访问到的存储

空间,用于做仲裁判断。应用层面的高可用还有一个特点,就是一般 都有浮动 IP ,当切换发生的时候, IP 从主节点漂移到备用节点。应 用层面的高可用一般切换时间比较快, 从几毫米到几秒中, 同时应用 层面的高可用一般需要专用软件, 比如常用的 Keepalived ,Heartbeat 等。

虚拟化层面的高可用是虚拟机系统层面的高可用,即当一台计 算节点故障的时候, 在另外一台计算节点上自动将故障节点上的虚拟 机启动起来。 注意如果虚拟机上的业务不能做到开机自启动, 即使虚 拟机自动启动了,并不能保证业务层面的自动恢复 !

另外还有一个问题,就是即使虚拟机启动起来了,当启动到一 半虚拟机的系统卡住了,也不能及时恢复业务 !

虚拟化层的高可用一般业务恢复实际是系统重启的时间,加上 业务开机自启动的时间,通常是分钟级别。

虽然虚拟化层高可用有业务不能恢复的风险,业务恢复时间也 相对比较长, 但是虚拟化层高可用有个非常巨大的优势, 就是不需要 在应用层面配置, 大大的拓宽了高可用的适用范围, 使原来在应用层 难以使用高可用技术的应用, 也能做到高可用, 尤其是在某些专用的 软件领域。

其实虚拟机层高可用和应用层面高可用并不矛盾,在虚拟机的 系统里面,也可以配置应用层面的高可用,做这样的配置的时候,注 意主备节点放置到不同宿主机上 !

虚拟化集群后端存储的使用

最早的时候,笔者在生产环境使用的集群都是以机柜为单位的 小集群,主要因为笔者一直搭建的是私有云, 在 IDC 机房里面机柜都 是要计算费用的,为了充分利用资源,合理节省成本,笔者私有云一 个设计思想就是能够按照机柜,灵活扩展或者伸缩。

后来随着虚拟化的规模扩大,也进行了一些基于开源分布式文 件系统集群的搭建, 基于开源分布式文件系统的集群, 规模可以更大, 扩展性更好,适用于KVM的开源分布式文件系统在第9章、第10章 都有详细的介绍。开源的虚拟化管理平台,本书第 11 章、第 12 章、 第 13 章有详细介绍,所以本章不再介绍开源分布式文件系统及管理 平台。

使用虚拟化集群的优势

虚拟化集群相对于单机虚拟化,有以下几点优势:

q 快速的在线迁移 (Live Migration) ,设备、系统维护造成的 业务计划内停机时间减少到零。

q 高可用 (HA) ,一台计算节点故障,上面的虚拟机可以很快在 其他计算节点上启动运行起来,极大缩短计划外停机时间。

q 动态资源调度,业务负载发生变化引起计算节点压力分布不 均匀时,可手动或者自动平衡物理机负载。 也可在整体压力较低的时 间段,将虚拟机集中在部分计算节点上, 将不用的计算节点临时关闭, 达到节能的目标。

q 业务快速部署,集群将资源池化,通过和管理平台结合,在 集群的容量范围内,业务部署的速度非常快。

q 数据更安全,后端存储采用冗余度更高的商业存储,或者分 布式文件系统,数据可靠性可以达到 99.99%以上。

q 网络速度、可靠性更高, 集群网络采用冗余架构, 网络设备、 网络连接都是双冗余, 网络速度更高,可靠性也更高,单台网络设备、 单根网线、单个网卡故障都不会引起网络中断。

提示:

1) 什么是计划内停机与计划外停机

计划内停机是指可预期可计划的停机,比如定期的维护,提前 通告的维护。 计划外停机是指突发事件引起的停机事件, 比如硬件故 障,网络DDO攻击等。一般计划内停机因为是提前预知的,会做好 预防措施,不会有数据丢失,对业务的损失是比较小的。计划外停机 则因为是突发事件, 对业务的损失要大很多。 运维的重要职责之一就 是通过技术手段减少计划外和计划内停机时间, 对虚拟化来说, 虚拟 化集群能够做到在线虚拟机迁移, 并且是全冗余设计, 需要计划内硬 件和软件维护的时候, 可以做到计划内停机时间为零。 当宿主机发生 紧急硬件故障的时候, 虚拟机可以很快在其他宿主机上开起来, 所以