概述,区块链和云计算的相似之处
云计算的底层三要素
1.计算虚拟化
计算虚拟化是指将虚拟系统和底层硬件之间的CPU和内存抽象出来,供虚拟机使用。计算虚拟化技术需要模拟一套操作系统的运行环境。在这种环境下,可以安装Windows或Linux。这些操作系统被称为来宾操作系统。两者相互独立,互不影响(相比之下,当主机资源不足时,会出现竞争等问题,从而导致运行缓慢等问题)。计算虚拟化可以将主机的单个物理内核虚拟化为多个vcpu,这些vcpu本质上是正在运行的进程。考虑系统调度,虚拟核越多越好。记忆力也差不多。物理机上的内存在逻辑上分为几个部分,供不同的虚拟机使用。每个虚拟机都有自己独立的内存。除了这些,我们还需要模拟网络设备,BIOS等。这个虚拟化软件叫hypervisor,以ESXI、xen、KVM等著称。通常分为两种。第一个直接部署到物理服务器上,如下图ESXI所示
由于直接部署在裸机上,虚拟机管理程序需要自带硬件驱动,虚拟机的所有操作都需要通过虚拟机管理程序。还有一种虚拟化虚拟机管理程序,KVM是最流行的一种(安装在个人电脑上的virtualbox和工作站也是)。它们依赖于主机操作系统。这样做的好处是他们可以充分利用主机的各种资源管理和驱动,但是效率会打折扣。下图是使用IO时KVM的流程图。
当然,从完全虚拟化、半虚拟化和硬件辅助虚拟化的角度来看,数据中心现在基本上是硬件辅助虚拟化。完全虚拟化完全依靠软件模拟,半虚拟化需要修改操作,让他们知道自己在虚拟环境中运行。硬件辅助为每个Guest OS提供一组寄存器,Guest OS可以直接在特权级运行,从而提高效率。
虽然VMware的ESXI仍然是数据中心的主要虚拟化软件,但KVM正在慢慢赶上OpenStack,KVM是开源的。下面简单介绍一下KVM。KVM是基于内核的,从内核2.6开始带。它可以在x86和power等主流架构上运行。KVM主要是CPU和内存的虚拟化,其他设备的虚拟化和虚拟机的管理都需要QEMU。一个虚拟机本质上就是一个进程,运行在qemu-KVM进程地址空,KVM (kernel 空)和QEMU (user 空)相结合,为用户提供一个完整的虚拟化环境。
2.网络虚拟化
网络虚拟化是一种重要的网络技术,它可以在物理网络上虚拟多个隔离的虚拟网络,而不依赖于底层的物理连接,并且可以动态改变网络拓扑结构,提供多租户隔离,从而使不同的用户可以使用独立的网络资源片,从而提高网络资源的利用率,实现灵活的网络。目前最火的是软件定义网络(SDN)。SDN的出现使得网络虚拟化的实现更加灵活高效,同时网络虚拟化也成为SDN应用中的一个重量级应用。其核心技术OpenFlow将网络设备的控制平面和数据平面分开,从而实现对网络流量的灵活控制,使网络作为一个管道更加智能化。
通过SDN实现网络虚拟化包括物理网络管理、网络资源虚拟化和网络隔离三个部分。这三部分往往由专门的中间层软件来完成,我们称之为网络虚拟化平台。虚拟化平台需要完成物理网络管理和抽象虚拟化,并提供给不同的租户。此外,虚拟化平台还应该实现不同租户之间的相互隔离,以确保不同租户之间互不影响。虚拟化平台的存在使得租户无法感知网络虚拟化的存在,即虚拟化平台可以实现用户透明的网络虚拟化。
(1)虚拟化平台
虚拟化平台是数据网络拓扑和租户控制器之间的中间层。面向数据平面,虚拟化平面是控制器;对于租户控制器,虚拟化平台就是数据平面。因此,虚拟化平台本质上有两个属性:数据平面和控制平面。在虚拟化的核心层,虚拟化平台需要完成从物理网络资源到虚拟资源的虚拟化映射过程。面对租户控制器,虚拟化平台充当数据平面,并将模拟的虚拟网络呈现给租户控制器。从租户控制器往下看,只能看到自己的虚拟网络,不知道真实的物理网络。从数据角度看,虚拟化平台就是控制器,交换机并不知道虚拟平面的存在。因此,虚拟化平台的存在实现了租户和底层网络的透明虚拟化,管理所有物理网络拓扑,为租户提供隔离的虚拟网络。
网络虚拟化平台示意图
虚拟化平台不仅可以实现物理拓扑到虚拟拓扑的“一对一”映射,还可以实现物理拓扑的“多对一”映射。由于租户网络不能垄断物理平面的交换机,所以虚拟网络本质上实现了“一虚多”和“多虚一”的虚拟化。这里的“一个虚拟多台”是指单个物理交换机可以虚拟映射到多个虚拟租户网络中的逻辑交换机,从而由不同的租户共享;“多个虚拟交换机”是指将多个物理交换机和链路资源虚拟化为一个大型逻辑交换机。也就是说,租户眼中的交换机可以通过多个物理交换机进行物理连接。
将单个虚拟节点映射到多个物理节点
(2)网络资源虚拟化
为了实现网络虚拟化,虚拟化平台需要对物理网络资源进行抽象虚拟化,包括拓扑虚拟化、节点资源虚拟化和链路资源虚拟化。
拓扑虚拟化
拓扑虚拟化是网络虚拟化平台最基本的功能。虚拟平台需要完成从虚拟节点和虚拟链路到租户虚拟网络中物理节点和链路的映射。这包括“一对一”和“一对多”映射。在“一对一”映射中,虚拟节点将映射到物理节点,虚拟链路也是如此。在“一对多”映射中,一个虚拟节点可以映射成多个连接在一起的物理节点;逻辑链路也可以映射到链接在一起的多个链路。对于物理节点,一个物理节点可以被多个逻辑节点映射。
节点资源虚拟化
节点资源的虚拟化包括节点Flow表、CPU等资源的抽象虚拟化。流表资源本身就是交换节点的稀缺资源。如果可以虚拟化,然后由虚拟化平台分配给不同的租户,那么不同的租户可以分配和限制节点资源的使用。拓扑抽象只是完成了从虚拟节点到物理节点的映射,并没有指定不同用户/租户对物理节点资源的分配。如果要对网络进行更细粒度的虚拟化,就需要对节点资源进行虚拟化。
链接资源虚拟化
和节点资源一样,链路资源也是网络中重要的资源,但是拓扑抽象并没有规定一些用户可以使用多少链路资源。因此,为了实现链路资源的合理分配,有必要对链路资源进行虚拟化。可以抽象虚拟化的链路资源包括租户可用的带宽、端口的队列资源等。
(3)网络隔离
网络资源虚拟化只是完成了从物理资源到虚拟资源的抽象过程。为了实现完整的网络虚拟化,需要为不同的租户提供隔离的网络资源。网络隔离需要隔离SDN的控制平面和数据平面,以保证不同租户控制器之间的互补干扰和不同虚拟网络之间的隔离。另外,为了满足用户在地址空之间的定制需求,虚拟化平台还需要对网络地址进行虚拟化。
控制平面隔离
控制器的性能对SDN的整体性能影响很大,所以虚拟化平台需要保证租户的控制器在运行时不受其他租户控制器的影响,从而保证租户可以使用虚拟化平台的资源。虚拟化平台连接到租户控制器时,需要保证进程能够获得一定的资源,比如CPU资源。虚拟化平台本身可以轻松地将租户的控制器相互隔离。
数据平面隔离
数据平面的资源包括节点的CPU和流表、链路带宽、端口的队列资源等。为了保证每个租户的正常使用,需要相应隔离数据平面的资源,以保证租户的资源不被其他租户占用。如果资源没有在数据平面上隔离,那么数据平面上租户的数据之间就会产生竞争,不能保证租户对网络资源的需求,所以需要在数据平面上隔离资源。
地址隔离
为了使租户能够在自己的虚拟租户网络中任意使用地址,虚拟化平台需要完成地址隔离。地址隔离主要通过地址映射来实现。租户可以随意定制地址空,这些地址是面向租户的虚拟化平台虚拟地址。虚拟化平台在转发租户控制器南行协议报文时,需要将虚拟地址翻译成整个网络唯一的物理地址。租户服务器的地址在发送到接入交换机时会被修改为物理地址,然后数据包的转发会基于修改后的物理地址。当数据到达租户目的地址的主机出口时,控制器需要将该地址转换为原租户设置的地址,从而完成地址的虚拟映射。地址的虚拟映射使租户可以使用完整的地址空和任意的FlowSpace (flow 空:由流表匹配项组成的多维空),而物理层实现地址隔离,使不同租户使用特定的物理地址和数据不会相互干扰。
3.存储虚拟化
存储虚拟化是一种贯穿整个信息技术环境的技术,用于简化原本可能相对复杂的底层基础架构。存储虚拟化的思想是将资源的逻辑映像从物理存储中分离出来,从而为系统和管理员提供简化和无缝的资源虚拟视图。存储虚拟化在云计算之前已经发展了很长时间,与云计算没有特别的关系。云计算存储通常指亚马逊的S3存储或EBS存储,它将一个统一的资源库划分为多个用户。
对用户来说,虚拟化存储资源就像一个巨大的“存储池”。用户看不到特定的磁盘和磁带,也不必关心他们的数据通向哪个特定的存储设备。
从管理角度来看,虚拟存储池采用集中式管理,根据具体需求动态分配存储资源给各种应用。值得指出的是,通过使用虚拟化技术,磁带库可以由磁盘阵列模拟,为应用程序提供与磁盘一样快但与磁带库一样大的存储资源。这就是VTL,虚拟磁带库(VTL),它如今被广泛使用,在当今的企业存储系统中扮演着越来越重要的角色。
主流存储虚拟化有以下三种技术。在云计算场景中,通常会根据实际场景选择合适的技术。
疗养院
先说高端存储。现在高端存储应该是以EMC、IBM、HDS为主。近年来,外部存储随着廉价磁盘不断提高容量和性能,推动了存储区域网络和主机光纤通道接口的不断成熟,在数据中心,尤其是金融领域变得非常普遍。
存储区域网络提供块存储。例如,一个磁盘阵列中有10个测试数据磁盘,然后10个数据磁盘可以按磁盘阵列或逻辑卷(LVM)划分。但是,这10个数据磁盘不同于以前的物理磁盘。逻辑盘可以具有提供100克的第一物理盘和提供300克的第二物理盘。对于操作系统来说,无法感知是物理磁盘还是逻辑磁盘,这就是存储资源池的概念。RAID或LVM不仅可以提供数据保护,还可以重新划分磁盘大小,提高读写速率。
但是SAN也不是没有缺点,价格也比较贵。光纤端口和光纤交换机价格高,所以有IPSAN存储,存储协议由IP协议承载;无法提供数据共享,一个磁盘只能挂在一台主机上,所以有NAS存储。
噪声控制协会
NAS是文件存储。与块存储相比,文件存储具有最大的数据共享优势。它基于标准的网络协议,存储区域网络有自己的一套存储协议。常见的NAS包括NFS、FTP、HTTP文件服务器等。由于这类设备通常有IP,一般客户端可以作为数据网关服务器直接访问。网络连接存储建立在传统网络上,因此可以远距离传输。NAS易于安装和维护,但速度通常比SAN慢很多。
分布式存储
随着x86性能的提高,用x86芯片搭建的小型存储系统开始在中端存储领域崭露头角。利用X86本地磁盘构建大型存储集群。分布式存储通常可以提供块存储和文件存储。没有必要引入与OpenStack紧密集成的分布式存储ceph。下图是ceph官网的整体模块图,提供了CEPH FS文件存储系统和POSIX接口,对象存储和最常用的快速存储。
其基石是以下RADOS,然后是系统组件,包括:
ceph osds:ceph的OSD(对象存储设备)守护进程。主要功能包括:数据存储、复制数据处理、数据恢复、数据补偿、平衡数据分布。并提供一些与数据相关的监控信息给cephmonitor,让cephmonitor可以检查其他OSD的心跳状态。CEPH存储集群需要至少两个CEPH操作系统才能有效存储两个数据。请注意,这里的两个ceph OSD指的是运行在两个物理服务器上的守护进程,而不是一个物理服务器上的两个ceph OSD。
监视器:CEPH的Moniter守护进程,其主要功能是维护集群状态表组,该组包含多个表,包括Moniter:CEPH、OSD映射、PG(放置组)映射和CRUSH映射。
mdss:ceph的MDS(元数据服务器)守护进程,主要保存ceph文件系统的元数据。请注意,CEPH的数据块设备和CEPH对象存储都不需要CEPH MDS守护程序。Cephemds为基于POSIX文件系统的用户提供了一些基本命令,比如ls、find等。,可以大大降低CPEH存储集群的压力。
另一个开源对象存储是openstack的Swift。Swift的初衷是低成本存储超大容量的数据。swift使用容器来管理对象,允许用户存储、检索和删除对象及其元数据,所有这些都是通过用户友好的RESTful界面完成的。
底部三个元素的区块链
1.共享书籍
确切地说,共享分类账是一种分布式分类账技术,本质上是一种可以在由多个站点、不同地理位置或多个机构组成的网络中共享的资产数据库。网络中的参与者可以获得一份唯一真实的分类账副本。书中的任何变化都会体现在所有的副本中,反应时间在几分钟甚至几秒钟之内。本账簿中存储的资产可以是金融资产、法律定义的资产、实物资产或电子资产。本账本存储资产的安全性和准确性是通过使用公私钥和签名来控制账本的访问权限,从而实现基于密码学的维护。根据网络中约定的规则,总账中的记录可以由一个、部分或全部参与者更新。
分布式账本技术使用加密哈希算法和数字签名来保证交易的完整性,并保证共享账本是准确的副本,降低了交易欺诈的风险,因为篡改需要在多个地方同时进行。密码哈希算法(如SHA256计算算法)可以确保对事务输入的任何更改——即使是最轻微的更改——都会计算出不同的哈希值,这表明事务输入可能已损坏。数字签名确保交易源自发送者(用私钥签名),而不是冒名顶替者。
2.一致性算法
在区块链的发展过程中有五种典型的共识算法:PoW、PoS、DPoS、PBFT和联合共识。
早期,比特币比特币作为区块链技术的第一个成功应用,率先引入了利用哈希算法随机性的工作证明(PoW)。PoW机制通常被称为挖掘,比特币的每个区块都被挖掘出来。每个块使用事务、时间和自定义值来计算该块的哈希。合格块的Hash必须满足前n位为零,所以需要不断调整刚才的三个参数,才能找到满足条件的Hash。因为哈希算法足够随机,所以零的数量越多,计算该哈希的概率就越低。此时,需要进行大量尝试才能得到合理的Block Hash,计算时间取决于机器的Hash运算速度。当一个节点提供了一个合理的Block Hash值,就意味着这个节点经历了大量的尝试计算,这就是工作量的证明。当然,我们无法得到计算次数的绝对值,因为找到一个合格的Hash是一个概率事件。当一个节点在整个网络中有n%的计算能力时,它有n%的概率先发布一个合格的块。
然后由于算法PoW极度消耗计算资源,截止到本文撰写之时(2017年8月),估计比特币网络消耗的电量已经达到15TW。因此,NXT和其他新兴的加密货币提出了一个新的想法,即PoS(股份证明)。这个模型将根据你持有数字现金的数量和时间来决定你可以发布下一个区块的概率。在PoS模式下,有一个名词叫做货币年龄,每种货币每天产生一个货币年龄。比如你总共持有100种货币30天,那么此时你的货币年龄是3000,然后根据每个人的货币年龄,按照随机算法决定谁来发布下一个区块。此时,如果您被选中发布POS块,您的货币年龄将被清除空将为0,您将重新开始。
PoS不是没有缺点,但最大的缺点在于效率。于是,BitShares提出了DPoS(委托持股证明)。其原理是让每一个持有bit份额的人投票,从而产生101个委托,可以理解为101个超级节点或挖掘池,这101个超级节点的权限完全相等。从某个角度来说,DPoS有点像议会制或者人大制。如果代表未能履行职责(轮到他们时,他们未能生成块),他们将从列表中删除,网络将选择新的超级节点来替换他们。
这些共识机制都依赖于密码学货币,因为驱动搜索块的来源,无论是PoW还是PoS,都是发布新块的货币奖励。对于没有令牌的系统,比如HyperLedger Fabric,如何选择共识机制?这时,我们可以回头看看PBFT。BFT(拜占庭容错)是一种很早就提出的分布式容错算法,可以发现拜占庭问题进行进一步的理解,这里就不详述了。作为BFT的一个实现,PBFT是一个状态机复制算法,即将服务建模为状态机,状态机在分布式系统的不同节点进行复制。每个状态机的副本保存服务的状态,并且还实现服务的操作。所有副本的集合用大写字母R表示,每个副本用0到|R|-1的整数表示。为了描述方便,假设|R|=3f+1,其中f为可能无效副本的最大数量。虽然可能有超过3f+1的副本,但额外的副本除了降低性能之外,并不能提高可靠性。
此外,还有一个基于投票的联合共识,由瑞波代表。这种共识使得网络能够基于特殊节点的列表达成共识。最初的特殊节点列表就像一个俱乐部。接纳新会员,必须得到51%俱乐部会员的认可。共识遵循这个核心成员51%的权力,外人没有影响力。这种共识模式也大大提高了效率,但需要保证不超过51%的恶意节点在特殊节点,代价是分散整个网络。
3.P2P网络
P2P之所以广为人知,主要是因为BitTorrent和BT的普及,P2P网络的核心概念是多台相互连接的计算机处于平等的地位,每台计算机功能相同,没有隶属划分。一台计算机可以作为服务器,设置共享资源供网络中的其他计算机使用,也可以作为工作站使用。一般来说,整个网络不依赖于专用的集中式服务器或专用的工作站。网络中的每台计算机不仅可以充当网络服务的请求者,还可以响应其他计算机的请求,提供资源、服务和内容。这些资源和服务一般包括:信息共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘之间的使用空)、网络共享、打印机共享等。
为了实现分布式账本的能力,区块链还采用了P2P网络。分布式分类帐分布到网络中的所有成员节点,可以防止任何个人或一组参与者控制底层基础设施或破坏整个系统。网络中的参与者是平等的,遵守相同的协议。
作者简介:
谢文杰·钱诺瓦首席技术官
区块链技术专家。前金山云技术产品专家,百度移动事业部技术经理,搜狐高级工程师。毕业于南京邮电大学计算机系,拥有十余年大型软件技术架构经验,擅长设计高性能、高可用性服务,对云计算、移动APP、手机游戏、社交网络、P2P网络等各类产品的开发运营有深入研究。我从14年开始研究区块链,在区块链很多主流技术平台上进行了深入研究,重点是区块链技术在海量数据和高性能高可用性软件系统中的应用实践。
金链条新星区块链高级工程师
前IBM GBS区块链技术专家,移动应用软件架构师。本人从事互联网工作8年,在金融领域和制造业领域有丰富的行业经验。他学习区块链16年,参与过邮政储蓄银行、农业银行等多家区块链银行的实践项目,具有丰富的咨询和实施经验。
链新星(www.chainnova.com)
智联是由a股上市公司中南建设和美国硅谷科技公司PeerNova共同成立的高科技公司。定位于服务金融科技行业的实践,整合区块链、云计算、大数据、人工智能等技术板块,共同实现面向国内乃至全球用户的行业应用场景,打造互联网新金融、区块链+工商认知等解决方案。目前现有的行业解决方案涵盖:供应链(商品)追溯、FinTech、IP信息正义、知识产权交易、企业外部成本交易。智联是Linux基金会和Hyperledger的成员。
本文是瑞文原创专家专栏。请联系后台授权。
1.《谢文杰 10分钟带你看透区块链和云计算之底层技术三要素》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《谢文杰 10分钟带你看透区块链和云计算之底层技术三要素》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/880871.html