e-works数字化企业网  »  文章频道  »  基础信息化  »  IT综合

底层技术大对比!分分钟带你看透区块链和云计算

2017/8/20    来源:区块链大本营    作者:谢文杰  金钰      
关键字:区块链  云计算  
我们在研究区块链的过程中发现,区块链的发展和云计算有非常多的相似之处,因此便有了此文,带领大家从宏观的角度认识区块链和云计算。
    我们在研究区块链的过程中发现,区块链的发展和云计算有非常多的相似之处,因此便有了此文,带领大家从宏观的角度认识区块链和云计算。
 
底层技术大对比!分分钟带你看透区块链和云计算
 
    云计算的底层三要素
 
    1.1计算虚拟化
 
    计算虚拟化就是在虚拟系统和底层硬件之间抽象出CPU和内存等,以供虚拟机使用。计算虚拟化技术需要模拟出一套操作系统的运行环境,在这个环境你可以安装Windows也是可以安装Linux,这些操作系统被称作Guest OS。他们相互独立,互不影响(相对的,因为当主机资源不足会出现竞争等问题,导致运行缓慢等问题)。
 
    计算虚拟化可以将主机单个物理核虚拟出多个vcpu,这些vcpu本质上就是运行的进程,考虑到系统调度,所以并不是虚拟的核数越多越好;内存相似的,把物理机上面内存进行逻辑划分出多个段,供不同的虚拟机使用,每个虚拟机看到的都是自己独立的一个内存。除了这些还需要模拟网络设备、BIOS等。这个虚拟化软件叫做hypervisor,著名的有ESXI、xen、KVM等,通常分为两种,第一种是直接部署到物理服务器上面的,如下图ESXI 
 
底层技术大对比!分分钟带你看透区块链和云计算
 
    由于直接部署到裸机上面,hypervisor需要自带各种硬件驱动,虚拟机的所有操作都需要经过hypervisor。还有另一种虚拟化hypervisor,以KVM最为流行(个人电脑上面安装的virtualbox以及workstations也是),它们依赖与宿主机操作系统,这样的好处就是可以充分利用宿主机的各种资源管理以及驱动,但效率上面会打一些折扣。下图是KVM的在使用IO时候的流程图。 
 
底层技术大对比!分分钟带你看透区块链和云计算
 
    当然也可以从全虚拟化、半虚拟化、硬件辅助虚拟化的角度去说,现在数据中心基本都是硬件辅助虚拟化了,全虚拟化就是完全靠软件模拟、半虚拟需要修改操作让其知道自己运行在虚拟环境中、硬件辅助由硬件为每个Guest OS提供一套寄存器、Guest OS可以直接运行在特权级,这样提高效率。
 
    虽然当前数据中心商用的虚拟化软件仍然以VMware的ESXI为主,但在OpenStack的推动下,KVM正在慢慢追赶,并且KVM是开源的,下面简单介绍一下KVM。KVM是基于内核的,从内核2.6以后就自带了,可以运行在x86和power等主流架构上。 KVM主要是CPU和内存的虚拟化,其它设备的虚拟化和虚拟机的管理则需要依赖QEMU完成。一个虚拟机本质上就是一个进程,运行在QEMU-KVM进程地址空间,KVM(内核空间)和qemu(用户空间)相结合一起向用户提供完整的虚拟化环境。
 
    1.2网络虚拟化
 
    网络虚拟化是一种重要的网络技术,该技术可在物理网络上虚拟多个相互隔离的虚拟网络,不依赖于底层物理连接,能够动态变化网络拓扑,提供多租户隔离,从而使得不同用户之间使用独立的网络资源切片变成可能,从而提高网络资源利用率,实现弹性的网络。这里面目前最为火热的即软件定义网络(Software Defined Network, SDN),SDN的出现使得网络虚拟化的实现更加灵活和高效,同时网络虚拟化也成为SDN应用中的重量级应用。其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
 
    通过SDN实现网络虚拟化包括物理网络管理,网络资源虚拟化和网络隔离三部分。而这三部分内容往往通过专门的中间层软件完成,我们称之为网络虚拟化平台。虚拟化平台需要完成物理网络的管理和抽象虚拟化,并分别提供给不同的租户。此外,虚拟化平台还应该实现不同租户之间的相互隔离,保证不同租户互不影响。虚拟化平台的存在使得租户无法感知到网络虚拟化的存在,也即虚拟化平台可实现用户透明的网络虚拟化。
 
    虚拟化平台
 
    虚拟化平台是介于数据网络拓扑和租户控制器之间的中间层。面向数据平面,虚拟化平面就是控制器;而面向租户控制器,虚拟化平台就是数据平面。所以虚拟化平台本质上具有数据平面和控制层面两种属性。在虚拟化的核心层,虚拟化平台需要完成物理网络资源到虚拟资源的虚拟化映射过程。面向租户控制器,虚拟化平台充当数据平面角色,将模拟出来的虚拟网络呈现给租户控制器。从租户控制器上往下看,只能看到属于自己的虚拟网络,而并不了解真实的物理网络。而在数据层面的角度看,虚拟化平台就是控制器,而交换机并不知道虚拟平面的存在。所以虚拟化平台的存在实现了面向租户和面向底层网络的透明虚拟化,其管理全部的物理网络拓扑,并向租户提供隔离的虚拟网络。
 
    网络虚拟化平台示意图:
 
底层技术大对比!分分钟带你看透区块链和云计算
 
    虚拟化平台不仅可以实现物理拓扑到虚拟拓扑“一对一”的映射,也应该能实现物理拓扑“多对一”的映射。而由于租户网络无法独占物理平面的交换机,所以本质上虚拟网络实现了“一虚多”和“多虚一”的虚拟化。此处的“一虚多”是指单个物理交换机可以虚拟映射成多个虚拟租户网中的逻辑交换机,从而被不同的租户共享;“多虚一”是指多个物理交换机和链路资源被虚拟成一个大型的逻辑交换机。即租户眼中的一个交换机可能在物理上由多个物理交换机连接而成。
 
    单虚拟节点映射到多物理节点:
 
底层技术大对比!分分钟带你看透区块链和云计算
 
    网络资源虚拟化
 
    为实现网络虚拟化,虚拟化平台需要对物理网络资源进行抽象虚拟化,其中包括拓扑虚拟化,节点资源虚拟化和链路资源虚拟化。
 
    拓扑虚拟化
 
    拓扑虚拟化是网络虚拟化平台最基本的功能。虚拟平台需要完成租户虚网中的虚拟节点和虚拟链路到物理节点和链路的映射。其中包括“一对一”和“一对多”的映射。“一对一”的映射中,一个虚拟节点将会映射成一个物理节点,同理虚拟链路也是。而在“一对多”的映射中,一个虚拟节点可以映射成由多个连接在一起的物理节点;一条逻辑链路也可能映射成由链接在一起的多条链路。而对于物理节点而言,一个物理节点可以被多个逻辑节点映射。
 
    节点资源虚拟化
 
    节点资源的虚拟化包括对节点Flow tables(流表)、CPU等资源的抽象虚拟化。流表资源本身是交换机节点的稀缺资源,如果能对其进行虚拟化,然后由虚拟化平台对其进行分配,分配给不同的租户,那么就可以实现不同租户对节点资源使用的分配和限制。拓扑抽象仅仅完成了虚拟节点到物理节点的映射,而没有规定不同用户/租户对物理节点资源使用的分配情况。若希望进行更细粒度的网络虚拟化,节点资源虚拟化非常有必要。
 
    链路资源虚拟化
 
    和节点资源一样,链路资源也是网络中重要的资源,而拓扑抽象并没有规定某些用户可使用的链路资源的多少。所以在进行更细粒度的虚拟化时,有必要对链路资源进行虚拟化,从而实现链路资源的合理分配。可被抽象虚拟化的链路资源包括租户可使用的带宽以及端口的队列资源等等。
 
    网络隔离
 
    网络资源虚拟化仅仅完成了物理资源到虚拟资源的抽象过程,为实现完全的网络虚拟化,还需要对不同的租户提供隔离的网络资源。网络隔离需要对SDN的控制平面和数据平面进行隔离,从而保证不同租户控制器之间互补干扰,不同虚网之间彼此隔离。此外,为了满足用户对地址空间自定义的需求,虚拟化平台还需要对网络地址进行虚拟化。
 
    控制面隔离
 
    控制器的性能对SDN整体的性能产生极大的影响,所以虚拟化平台需保证租户的控制器在运行时不受其他租户控制器的影响,保证租户对虚拟化平台资源的使用。虚拟化平台在连接租户控制器时需保证该进程可以得到一定的资源保障,比如CPU资源。而虚拟化平台本身所处的位置就可以轻易实现租户的控制器之间的相互隔离。
 
    数据面隔离
 
    数据面的资源包括节点的CPU、Flow Tables等资源以及链路的带宽,端口的队列资源等。为保证各个租户的正常使用,需对数据面的资源进行相应的隔离,从而保证租户的资源不被其他租户所占据。若在数据面上不进行资源的隔离,则会产生租户数据在数据面上的竞争,从而无法保障租户对网络资源的需求,所以很有必要在数据面对资源进行隔离。
 
    地址隔离
 
    为使租户能在自己的虚拟租户网中任意使用地址,虚拟化平台需要完成地址的隔离。实现地址隔离主要通过地址映射来完成。租户可任意定制地址空间,而这些地址对于虚拟化平台而言是面向租户的虚拟地址。虚拟化平台在转发租户控制器南向协议报文时,需要将虚拟地址转化成全网唯一的物理地址。租户的服务器的地址在发送到接入交换机时就会被修改成物理地址,然后数据包的转发会基于修改之后的物理地址进行转发。当数据到达租户目的地址主机出端口,控制器需将地址转换成原来租户设定的地址,从而完成地址的虚拟化映射。地址的虚拟化映射使得租户可以使用完全的地址空间,可以使用任意的FlowSpace(流空间:流表匹配项所组成的多维空间),而面向物理层面则实现了地址的隔离,使得不同的租户使用特定的物理地址,数据之间互不干扰。

责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐