虚拟化计算技术在给企业IT系统带来改善和提高的同时,也带来了一些现实的问题。对于许多部署了桌面虚拟化和服务器虚拟化技术的企业来说,虚拟机蔓延慢慢成为了突出的问题之一。如果不对虚拟机蔓延加以控制和管理,久而久之,它们将会对虚拟化基础架构的总体效率产生不利的影响。连接即服务(CaaS,Connection as a Service)的出现,不仅仅帮助完成了网络连接的资源化,同时为控制虚拟机蔓延提出了新的思路。

1. 虚拟机蔓延

1.1. 什么是虚拟机蔓延?
计算虚拟化技术将操作系统从运行它的底层硬件中抽离出来,并为操作系统及其应用程序提供标准化的虚拟硬件,从而使得多台虚拟机能够在一台或者多台共享处理器上同时独立运行。借助虚拟化技术,用户可以轻松将多台不同服务器的工作负载整合到更为可靠并且性能更高的硬件平台上。

图1 虚拟化的关键特性
基于固有的分区、隔离和封装等特性,虚拟机与物理服务器相比具有很多优势。(如图1所示)其特点包括:
 虚拟机在标准的 x86 物理服务器上运行,可访问物理服务器的所有资源(如 CPU、内存、磁盘、网络设备和外围设备),因此任何应用程序都可以在虚拟机中运行;
 虚拟机彼此完全隔离,从而实现安全的数据处理、网络连接和数据存储,可与其他虚拟机同时运行,从而充分利用硬件资源;
 虚拟机镜像封装于文件之中,因此通过简单的文件复制便可实现部署、备份以及还原;
 可迁移,可以便捷地将整个系统(包括虚拟硬件、操作系统和配置好的应用程序)在不同的物理服务器之间进行迁移,甚至还可以在虚拟机正在运行的情况下进行动态迁移;
 可作为即插即用的虚拟工具(包含整套虚拟硬件、操作系统和配置好的应用程序)进行构建和分发,从而实现快速部署。
正是计算虚拟化的这些优势,计算虚拟化在企业IT系统中迅速得到普及应用,企业通过虚拟化技术整合服务器资源、提高硬件资源利用率、增加业务部署弹性,在能源消耗、成本消减以及效率提高等方面收益,虚拟机在全球范围内的部署数量也不断稳步提高,从图2中可以看出,2009年是计算虚拟化应用的拐点,虚拟机的数量开始反超硬件服务器的数量。

图2 虚拟机部署在全球的部署统计(Source:IDC)

虚拟化技术不仅消除大规模异构服务器的差异化,其形成的计算池可以具有超级的计算能力,在一个云计算中心物理服务器达到数万台是一个很正常的规模(如图3所示)。

图3密集的虚拟机群
一台物理服务器上运行的虚拟机数量是动态变化的,一般是4到20,某些高密度的虚拟机可以达到100:1的虚拟比(即一台物理服务器上运行100个虚拟机),在当前CPU性能不断增强(主频提升、多核多路)、各种硬件虚拟化(CPU指令级虚拟化、内存虚拟化、桥片虚拟化、网卡虚拟化)的辅助下,物理服务器上运行的虚拟机数量会迅猛增加。一个大型IDC中运行数十万个虚拟机是可预见的。

总的来说,虚拟机创建起来越容易,数量就会越来越多,而想要回收计算资源或清理虚拟机的工作就会越来越难,这种不受控制的虚拟机繁殖被称为虚拟机蔓延(VM Sprawl)。虚拟机蔓延有以下几种表现形式。
1、幽灵虚拟机:许多虚拟机的创建没有经过合理的验证和审核,导致了不必要的虚拟机配置,或者由于业务需求,需要保留一定数量的冗余虚拟机,当这些虚拟机被弃用后,如果在虚拟机的生命周期管理上缺乏控制,随着时间的迁移,没有人知道这些虚拟机的创建原因,从而不敢删除、不敢回收,不得不任其消耗计算资源。
2. 僵尸虚拟机:许多虚拟机被停机了,但由于虚拟机生命周期管理流程的缺陷,相关的虚拟机镜像文件依然被保留在硬盘上,出于备份的考虑,甚至还可能保有多份副本,这些虚拟机资源大量占据着服务器的存储资源。
3、虚胖虚拟机:许多虚拟机被过度配置(过高的CPU、内存和存储容量等),而在实际部署后完全没有充分利用这些被分配的资源,长期占据CPU、内存和存储资源,形成浪费。

1.2. 虚拟机蔓延的后果
虚拟机蔓延意味着没有适当总量控制的虚拟机的创建和部署。一个节省成本的技术如果没有被很好的使用时,反而会增加使用成本。在数据中心里,虚拟机的蔓延会增加拥有虚拟机的总体成本,包括以下几个方面。
1、软件License成本
在软件的耗费成本因素中,License费用是最大的。并且虚拟机都需要操作系统和应用程序的License费用,通常情况下是按照单一CPU或者单一CPU内核来收费License费用。因此,无论虚拟机是否运行,只要部署安装,License费用都是需要支付的。
2、服务器及存储设备成本
企业用户在部署虚拟机时通常会采购多CPU、大内存的服务器,以满足不断增长的虚拟机数量。这些买来用于托管虚拟机的服务器的标准规格通常要比单机的X86服务器要高的多,托管多个虚拟服务器需要更多的中央处理器资源和更大的内存,这些都需要消耗更多的能源和产生更大的热量。
同时,每创建一个虚拟机都会生成对应的虚拟机image文件,这些文件通常尺寸不会太小(1~2GB的很常见)。随着虚拟机的创建,存储空间会快速的被消耗,如果考虑到备份需求,存储容量规划通常需要加倍增加。
当计算虚拟机的成本时,要包括针对这些虚拟机、映像以及备份的硬盘相关成本。
3、时间成本
虽然虚拟机在创建过程的时间被大大缩短,但企业用户依旧需要投入大量的时间到虚拟机的部署中:
(1) 随着虚拟机数量的增加,所需的存储资源也会增加,这就导致存储硬件也有所增加,这意味着对这些额外的映像进行备份需要花费大量时间;
(2) 虚拟机的定位、监控以及生命周期管理需要投入大量时间。

2. 利用CaaS控制虚拟机蔓延

虚拟化部署不可避免,如何控制虚拟机蔓延呢?基本思路就是"开源节流":减少资源消耗、重复利用和回收资源。一方面从源头上控制,减少未经授权和过度配置的虚拟机数量;另一方面积极监控虚拟机使用情况,回收闲置及被弃用的虚拟机。
802.1Qbg标准提供了控制虚拟机网络接入的精细化解决方案,即在邻接物理交换机提出vPort的概念(如图4所示),类似物理交换机的网络端口,vPort这类逻辑虚接口可以实现和VM对应的vNic/VSI的1:1对应关系。

图4 802.1Qbg的vPort
同时,802.1Qbg的VDP特性解决了VM接入定位准确性的问题,即通过VDP通告,邻接物理交换机学习到连接接入的VM信息和对应的网络连接配置信息,并主动向网管系统请求对应的网络连接配置profile,减少了网管系统进行VM接入位置定位的步骤。
对系统管理员来讲,只需要关注网络提供的虚拟服务器到邻接交换机的连接;而对网络管理员而言,则只需要关注针对不同的应用系统(或VSI类型)应提供什么样的网络接入配置。这样在网络和服务器之间就产生了一种抽象的服务概念——连接即服务(CaaS,Connection as a service)。连接即服务的出现,不仅仅帮助完成了网络连接的资源化,同时为控制虚拟机蔓延提出了新的思路。

2.1. 通过网络资源申请减少未经授权和过度配置的虚拟机数量
在数据中心环境中,为实现按需分配资源,需要计算、存储、网络资源的协同调度,才能完成服务/应用的创建部署。如图5所示,此过程中需要为服务(VM)分配:

  1. 计算资源:CPU、内存;
  2. 存储资源:存储空间;
  3. 网络资源:网络资源比较复杂,对于一个服务来说,网络即体现为一个接入port,所有的网络资源都是隐藏在该port之后的,而VM是通过该port连接到网络中从而获得网络服务的。

    图5网络资源分配
    引入802.1Qbg后,虚拟机在创建时,需要申请网络资源vPort,即到邻接交换机的连接,才能接入网络,虚拟机和其申请到的网络资源一一对应,只要制定适当的策略,管理员不仅可以控制虚拟机的创建方式,还可以控制该虚拟机所消耗的资源量及资源消耗方式。若企业需要进一步对虚拟机进行管理,只需制定相应的策略,实现虚拟机审核流程自动化,从而避免创建多余的虚拟机,实现虚拟机蔓延的控制。

2.2. 通过VM智能感知回收闲置及被弃用的虚拟机
对大部分资源回收方案来说,最耗费人力和时间的环节是识别和搜集可回收资源。虚拟基础架构资源回收也有着同样的问题。
对于数据中心部署的虚拟机来说,是否具备活动的网络流量是识别虚拟机是否在线的一种手段,因此通过监控虚拟机的网络流量来识别闲置虚拟机是管理员可借助的手段之一,同时辅助虚拟机CPU状态、内存活动、磁盘IO等信息综合判断并识别闲置虚拟机。
目前正在形成标准的802.1Qbg方案中,VM间的流量必须通过外部网桥进行交换。如图6所示,网络具有完全的流量可视性,只要网络流量分析管理软件(如H3C iMC管理组件)能够将触角延伸到VEPA外部网桥上即可。

图6 802.1Qbg网络流量模型
借助802.1Qbg标准,虚拟机的东西向流量以及南北向流量均可纳入可监控范围,同时通过H3C iMC的可视化流量监控,管理员可以初步判断闲置虚拟机(如图7所示)。

图7 H3C iMC流量监控
同时,H3C iMC网络管理软件已经可以提供虚拟机的CPU、内存、磁盘IO信息监控,如图8所示

图8 H3C iMC支持VM的CPU、内存、磁盘IO信息监控

综合以上手段识别闲置和被弃用的虚拟机后,企业可根据自身策略和管理要求,执行闲置虚拟机回收机制,为了提高回收流程的管理效率,企业需要一个自动化流程配置平台,借助它将已确认的非闲置虚拟机从闲置虚拟机报告列表中剔除,与用户确认该虚拟机是否需要保留,并将那些不需要保留的虚拟机所消耗的资源全部进行回收。

3. 结束语

基础架构虚拟化的投资回报是直接而且可量化的。对于企业来讲,通过虚拟化整合物理资源可获得很大的管理收益。然而,虚拟化基础架构的低利用率会造成相当高的资源浪费,从而导致虚拟化所带来的实际成本节约没有预期那么高。EVB(802.1Qbg)网络方案不仅仅实现的网络资源的虚拟化和池化,同时它也解决了虚拟机在网络中的精确定位和虚拟机流量监控问题,通过网络资源申请减少未经授权和过度配置的虚拟机数量以及通过VM智能感知回收闲置及被弃用的虚拟机,都是有效控制虚拟机蔓延的手段。

利用CaaS控制虚拟机蔓延相关推荐

  1. 从0开始利用VirtualBox搭建虚拟机靶场

    从0开始利用VirtualBox搭建虚拟机靶场 1. 前期准备配置 1.1 Gnome Desktop 安装 1.2 VNC配置 1.2.1 VNC Sever配置 1.2.2 VNC Client配 ...

  2. 利用msf控制目标电脑

    利用msf控制目标电脑 准备工作 永恒之蓝漏洞 msf简介 利用永恒之蓝漏洞攻击win7 准备工作 kali Linux虚拟机一台 win7虚拟机一台(要关闭防火墙和杀软的) 注意两台机器要连接到同一 ...

  3. python用渐变色画圆_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  4. python控制autocad_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  5. autocad支持python吗_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  6. ROS系统MoveIt玩转双臂机器人系列(三)--利用controller控制实际机器人

    ROS系统MoveIt玩转双臂机器人系列(三)--利用controller控制实际机器人 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_ ...

  7. 【Proteus仿真】数字温度计,利用 Mega16 控制 DS18B20 ,若温度达到设定阈值,即可报警提醒(用串口控制停止报警、用键盘输入改变报警阈值)

    (代码在文末) 工程文件和代码下载链接如下(求求下载前点个赞支持一下吧QAQ,博主自己做出来这个也hin累的) 链接: https://pan.baidu.com/s/1-aRZjyRZodzLcw8 ...

  8. 利用单片机控制74HC595显示图案

    利用单片机控制74HC595显示图案(单片机型号STC89C52) 此文将介绍如何用74HC595自定义显示图案,需要一定的单片机学习基础,话不多说,上代码 #include "reg51. ...

  9. 利用stm32控制步进电机 速度加速度控制

    因为想申请 CSDN 博客认证需要一定的粉丝量,而我写了五年博客才 700 多粉丝,本文开启关注才可阅读全文,很抱歉影响您的阅读体验 利用stm32控制步进电机 尝试用42系步进电机做倒立摆,总结步进 ...

  10. 树莓派利用python控制57步进电机

    一.57步进电机参数 二.树莓派利用python控制57步进电机 import RPi.GPIO as GPIO import time# w1,w2,w3,w4,w5,w6 = 0,1,0,0,0, ...

最新文章

  1. linux 安装输入法
  2. 不要说自己没什么兴趣,也不要说自己兴趣很广泛,最好能具体到哪个方面,顺便提一下你最近看的一本该方面的书,有什么收获(转)...
  3. SQL Server 为什么事务日志自动增长会降低你的性能
  4. Unity2017.1官方UGUI文档翻译——Visual Components
  5. SqlServer SqlBulkCopy批量插入 -- 多张表同时插入(事务)
  6. 在GCC和Visual Studio中使用hash_map
  7. [crypto][ipsec] 简述ESP协议的sequence number机制
  8. Nginx+Php-fpm+MySQL+Redis源代码编译安装指南
  9. 如何挖掘评论中的关键信息
  10. 如何使用以太网将 Mac 接入互联网?
  11. 怎样用计算机编码出文字,计算机汉字编码主要有哪些方式
  12. cannot re-initialize CUDA in forked subprocess.To use CUDA with multiprocessing,you must use the ‘sp
  13. android highcharts柱状图实例,Highcharts 基本柱形图
  14. 联想 扬天M4000q-11-Hackintosh-Opencore 黑苹果efi引导文件
  15. 用python打印几种三角形的排列
  16. 读取云服务器文件列表,读取云服务器文件列表
  17. 求生之路服务器正在强制此文件的一致性,求生之路2和朋友联机错误代码的解决办法...
  18. 单样本t检验中指标分析
  19. js和jQuery获取浏览器窗口的高度、宽度的方法详解
  20. 外卖小哥用计算机,阿里公布全球数学大赛答案一题可帮上千万外卖小哥提效30%...

热门文章

  1. php+aira2+ffmpeg下载m3u8文件并保存成mp4
  2. 摄氏度和开氏度的换算_摄氏温度和华氏、开氏温度_温度表示符号及单位换算...
  3. [vue] 使用vue后怎么针对搜索引擎做SEO优化?
  4. 如何将PDF图片转变成Word
  5. 人工智能发展将使人类沦落为“无用阶级”
  6. java 卫星轨道6根数实现轨道预测
  7. 英威腾伺服驱动器故障代码_英威腾伺服驱动器维修
  8. JVM-JConsole:Java监视与管理控制台(windows)
  9. establish connection
  10. Excel 2010 VBA 入门 108 个人所得税计算函数