图片 1

[技术深度]云服务器IaaS的资源虚拟化

在正确实施和管理的前提之下,虚拟化意味着成本的节约,这里有服务器硬件、支持和管理等诸方面的节约,还有更简易的服务器部署和进一步减少的能源消耗。为了让这些利益变成现实,这个结构的虚拟化层的管理,必须要独立于应用程序或物理服务器进行。

第一篇 基础篇

随着云服务器技术和厂商的迅猛发展,越来越多的企业选择将业务系统部署在云服务器上,通常他们会选择成熟的厂商比如亚马逊,阿里云,腾讯云等.谈到云服务器,就避免不了涉及IaaS(Infratructure

保持完整性

第一章 绪论

as a service)技术.

虽然你并不想让拥有相同需求的虚拟服务器位于同一个物理服务器上,但可能希望将某些物理服务器放置到至少在物理上和网络上比较近的位置。

云计算的基本概念:

IaaS

原因:为了减少在物理服务器之间切换虚拟服务器,其需要就会增加。如果一组物理服务器共享网络连接和其它资源,将一个虚拟服务器从一个物理服务器切换到另外一个物理服务器的时间会极大地减少。

狭义的云计算:

(Infrastructure as
aService)基础架构即服务,是云计算的一种类型,它是PaaS(Platformas a
Service平台即服务)和SaaS(softwareasaservice软件即服务)的基础。IaaS软件通常用于管理大规模的物理硬件(IaaS可以管理小到一台物理主机,多到成千上万的物理服务器)并把客户所需的软硬件资源(CPU,内存,网络,存储等)以“主机”的形式提供.

“如果你在一个机架中拥有多个服务器,你就可以在一个服务器上关闭虚拟机,而在同样的交换机上的另一台服务器上打开它,”Anderson说,“花费的时间大约等于用来复制硬盘的时间。”

广义的云计算:

IaaS的根本就是将计算资源进行池化,这里的计算单元包括但不限于cpu,内存,网络.这些资源被逻辑切割成更小的可管理单元,然后根据客户需要被灵活的组装成可运作的主机,很明显这里的主机并不是一台真的物理主机,而是虚拟机.这个虚拟机通常都会包含一个可以连上网络的操作系统,用户可以通过网络连接上虚拟主机并且能灵活的进行资源配置以及按照配置及时间来付费.而用户操作这台虚拟主机就像操作一台物理服务器一样,可以在上面安装软件,搭建数据库以及应用服务器,部署web应用.由于这些提供给用户的功能都是最基础的计算功能,所以这种服务形式也被称作基础架构及服务(IaaS)

另外一方面,他说,如果你正在转换的服务器位于数据中心的另外一端,需要插入到不同交换机的不同子网中,那么配置时间将额外增加5分钟或10分钟。或者如果有其它的限制条件,那么花费的时间就可能更多一些。

云计算的基本特征:

上面我们提到IaaS的根本是将资源进行池化,这些资源我们把它分为三个大类:计算资源(CPU),存储资源(内存和存储),网络资源;下面我们详细地分析这三类资源的池化,也可以称为虚拟化.

当然,接近是有限制的,不管是物理上还是网络上。例如,你并不想要服务器使网络连接过载,而且你想让物理服务器隔开一段距离,或者处于不同的状态,对于灾难的恢复来说。这是一个有平衡作用的举动。

IAAS:infrastructure as a service

CPU虚拟化

跟踪明了硬件

PAAS:platform as a service

对于CPU来说,它具有极高的计算能力,可以在一秒钟内可以运算上千万条指令。另外,由于客户的虚拟机往往运行的并不是计算密集型的应用程序(如浏览网页,访问数据库,存储文件等等),换句话说它的程序功能可以在很短时间(毫秒级别)内计算完成,当计算完成或等待其他网络、硬盘等IO操作时,如果没有其他计算任务,CPU便会进入空闲(IDLE)状态。经过统计,通常情况我们的CPU繁忙的时间很短,例如CPU有95%的时间都处于空闲状态。如果我们让CPU在等待的时候,也能给别人提供服务,便可以让资源利用率最大化,所以CPU的虚拟化技术的本质就是以分时复用的方式,让所有的虚拟机能够共享CPU的计算能力。因为CPU运算的速度非常快,而且这种分时的单元非常的小,以至于用户完全不会察觉到自己的虚拟机是在CPU上轮流运算的,所以在宏观的世界里,这些虚拟机看起来就是在同时工作的。当然IaaS软件还需要通过一些手段保证每个虚拟机申请的CPU可以分到足够的时间片

这种非线性使管理虚拟服务器的另外一方面复杂化了。管理员们需要密切地监视在不同物理服务器上的资源需求。

SAAS:software as a service

内存虚拟化

这与在虚拟机上的操作系统所报告的需求是不同的。随着应用程序资源的配置文件发生改变,管理员们最好密切注意其趋势,以避免突然的资源匮乏。

云计算的优势:

我们知道,物理内存在计算机上通常是一段以零地址开始以全部内存空间为截止地址的空间。例如4个8GB内存条组成的32GB内存,它在物理服务器上看起来就是0~32GB的空间。CPU在访问内存时的,只要提供内存地址,就可以访问到地址内的数据。对于每个虚拟机来说,不论给它分配1G的内存,还是分配4GB的内存,它通常都认为自己的内存是从零开始的。但实际上,它们都会被映射到物理机上的不同地址段,有的可能是从2G开始的,有的可能是从4G开始的。而且不仅仅是内存的起始地址在物理机上不同,甚至虚拟机的内存在物理机内存上的分布也不是连续的。他们可能会被映射到不同的内存空间。虚拟机管理程序(Hypervisor)负责维护虚拟机内存在物理内存上的映射。当虚拟机访问一段自己的内存空间时,会被映射到真实的物理地址。这种映射对虚拟机的操作系统来说是完全透明的。因为一台物理机上运行了多个虚拟机,所以虚拟机管理程序需要保证,不论在任何时候,来自虚拟机A的访问内存请求不能到达虚拟机B的内存空间里面。这就是所谓的资源隔离。

而且,跟踪物理硬件必须要祥细,因为虚拟化的应用程序依靠服务器提供的不同种类的资源来维持,由此造成的负荷是不同的。因为不同的虚拟化应用程序拥有不同的需求,如内存、处理器周期和I/O带宽等需要分别地进行跟踪。

优点和缺点:

存储虚拟化

你不能做的是通过监视虚拟机上的操作系统来跟踪服务器的物理资源。你必须到管理程序的下层去跟踪一个物理服务器上的资源,并且从不同的虚拟机进行。你可能仍然需要跟踪VM所报告的资源利用,不过那是一个独立的问题,那是为性能分析等所做的。(再次注意,这假设你正使用Vmware或
Xen等管理程序虚拟化软件)。

第二章 云计算架构以及标准化情况

IaaS虚拟存储资源的方法和虚拟内存类似,主要也是通过把一个大的存储空间划分成多个小的存储空间分配给虚拟机使用。但是与内存虚拟化不同,存储虚拟化通常并不是直接发生在硬盘的寻址层面,也就是不会在具体访问硬盘驱动的时候才转化访问的地址。存储虚拟化是以文件为单位来进行资源的存储和隔离的。这个文件不是虚拟机里看到每个具体文件,而是在物理机上用于模拟虚拟机硬盘的一个超大文件,对硬盘地址的访问就是对文件的某个偏移量的访问。这点看似复杂,其实更容易理解。例如一个大小为20GB的独立文件,可以被看成是一个20GB的硬盘空间,当需要访问0地址的时候,也就是访问文件的开头,当需要访问3G这个地址的时候,也就是访问文件的3G偏移量的地方。使用这种灵活分配的方法,理论上可以让一个2TB的物理硬盘,化身身成接近100个20GB或者接近20个100GB的硬盘。需要说明的是,看似一个完整的20GB文件,它在硬盘上可能并不是连续存放的,这完全取决于虚拟机管理程序的文件系统是如何分配硬盘空间的。当然虚拟机本身并不会意识到这点,具体访问硬盘的时候,会由虚拟机管理程序的文件系统来保证访问的准确性。

根据Anderson的观点,存储带宽通常是物理服务器上最关键的资源,只是因为这是一个硬性限制。不像其它任何方面,从存储到处理周期,你不能增加内置到服务器中的存储带宽。当它饱和之后,你要将一些虚拟机迁移到一台新的物理服务器上。

第二篇 技术篇

网络虚拟化

所有种类的带宽是一个特定的问题,因为它可能就是问题出现的地方。不仅几乎所有的应用程序使用带宽,而且其负载还趋于多样化。如果两个或多个应用程序同时达到了最大的内存需求,你可能会不断地碰到难以跟踪的问题。

第三章 云存储

通常用户通常熟悉的计算机网络概念包含,网卡、IP地址,主机名等等。例如在一台物理机上,可能有一个或几个网卡,每个网卡在工作的时候会分配不同的IP地址,对外可能有一个或多个网络主机名。网络连接速度取决于网卡的能力以及网络接入(例如交换机)的能力。在网络上通过IP地址或者网络主机名可以连接不同的物理主机,所以在一个可以路由的网段内IP地址和主机名必须是唯一的。在每个网卡上,还有一个MAC地址,用来标识在相同网段上不同的网卡。用户通常不会注意MAC地址,因为它并不需要用户手动配置。那么什么是网络虚拟化呢?假如原本的物理机只有一个网卡,那么它有一个MAC地址,并且可以分配一个IP地址,其他机器就可以通过IP地址访问这个物理主机。当创建N个虚拟机后,每个虚拟机都需要有独立的网络配置,以便他们可以像物理机一样的处理各种网络连接。但是这个时候物理机上依然只有一个网卡,N个虚拟机通过这一个物理网卡都能进行顺畅的网络连接的过程即为网络虚拟化。

这就带来了新一层的复杂性,或者至少是在虚拟化数据中心中的一个新的观察点。

云储存的结构模型

虚拟机上的网络概念和物理机一样。在一个物理机上创建多个虚拟机,就是要创建多份虚拟机的虚拟网卡,并且保证它们能够正确的联通到网络上。这是如何做到的呢?这主要是通过虚拟机管理程序在虚拟层面创建了一个虚拟的网桥(Bridge)。这个网桥就和我们我们看到的交换机一样,上面有很多“接口”可以连接不同的虚拟网卡,当然物理机的真实网卡也需要连在这个网桥上,并且设置了一种特殊的混杂模式(可以允许不论该物理网卡是否为网络包的目的地址都能通过该网卡接收或者发送)。在同一个网桥上的不同虚拟机之间进行的网络通信,只会在本网桥内发生。只有当虚拟机的网络通信的对象不在本机(比如物联网上的其他主机)上的时候,他们就会通过物理机的网卡向外进行传输。由于物理机的网卡带宽能力是固定的,所以在一个网桥上的虚拟网卡也是分时共享相同的网络带宽(如果网络包的交换之发生在本网桥内,速度不会受到物理网卡的影响)。虽然他们在自己传输的时间段内是独占全部带宽(例如1Gbps),但是同时会导致其他虚拟网卡暂时无法传输数据,以至于在宏观范围(秒)来看,虚拟机是没有办法在共享网络的时候占用全部带宽的。如果假设有4个虚拟机都在进行大规模的网络操作(例如大文件的下载和上传),那么理论上他们的实际连接速度最多就只能达到250Mbps。由于网络速度对云计算中虚拟机的能力非常重要,芯片公司也在不断推出各种针对网络连接的硬件虚拟化解决方案(例如SR-IOV,VMDq等等)。

在支持虚拟机的物理服务器耗尽资源时,就会有大量的应用程序受到影响。

两种架构:

如果物理机去上只有一个物理网卡,那么不同的虚拟机的网络都是通过同一个网卡连接出去,这是会导致网络安全问题的。例如一个虚拟机可以监听整个网络上的所有数据包,并分析截获感兴趣的别的虚拟机的网络数据。为了解决这个问题,计算机网络提供了一种叫做VLan的技术。通过对网络编辑指定的VLan编号,一个物理网卡可以拓展多达4095个独立连接能力。例如,如果原本的物理网卡为eth0,VLan1的网卡设备在操作系统就变成eth0.1,VLan1000的网卡设备就是eth0.1000,eth0.1和eth0.1000之间都无法看到对方的网络包。有了VLan的支持,在相同物理机上的虚拟机就可以分配不同的VLan编号的网络设备,从而进行了网络隔离。

监视

块存储,文件存储

有了资源的虚拟化,并且提供将虚拟化资源灵活管理的能力,

确保资源的可用性需要是对虚拟的/物理的服务器堆栈需要密切监视的另外一个原因。另外一个原因是硬件失效会影响到不只一个应用程序。

第四章 云服务

IaaS厂商便可以采购成千上万台物理服务器,并且通过虚拟化技术将这些资源重新拆分,然后按需租赁给客户使用.在IaaS的基础上,

因为监视如此重要,所以像Vmware以及Swsoft的
Virtuozzo虚拟化软件都包括能够帮助跟踪物理和虚拟资源的工具。

第五章 虚拟化

PaaS和SaaS产品也如雨后春笋般出现,接下来的文章我们将对PaaS和SaaS技术做深入探讨.

因为负荷随时间而改变,所以监视就是一个持续的过程。你不能设置监视然后又忘记监视。事实上,你必须更密切地注意监视,因为每一个物理服务器正支持几个虚拟服务器,而且如果一台物理服务器开始耗尽资源,那么所有的虚拟服务器都能受到影响。

第六章 云桌面

图片 1

相关文章】

第七章 云安全

  • 微软为虚拟化放宽41种服务器程序授权

云计算原理与实践()

  • 用跨平台虚拟安全工具强化虚拟安全
  • 第2章 云计算核心技术