0
点赞
收藏
分享

微信扫一扫

vscode编辑器警告, jsconfig.json 第一行红色波浪线

白衣蓝剑冰魄 2024-06-12 阅读 13
大数据

1. 产生背景

2. 虚拟化的概念和分类

3. 计算虚拟化原理及实现方式

4. 存储虚拟化原理及实现方式

5. 网络虚拟化原理及实现方式


1. 产生背景

1.1 时代背景

        在第四次技术革命浪潮中,数据是最重要的生产要素,但因数据与其他传统生产要素不同,有效的海量数据往往依托多主体生成,其交互和利用效率依赖于与其相匹配的信息化基础设施,数据中心则成为数据安全存储和充分利用的根本保证。数据中心是承载数据的基础物理单元,应用于生产和生活各个环节,成为各行业数字化转型的重要支撑,推动数字经济快速发展。

1.2 技术痛点

        数据中心除了需要部署大规模的服务器,存储,网络等IT基础设施,还需要大量配套的电力,冷却等基础设施,投资巨大。数据中心在发展到一定的规模的时候,一般都会面临或多或少的一些问题,典型的几个问题如下:

        ① 资源利用率低:传统IT系统采用所谓坚井式IT架构,是指为每个业务构建独立的IT架构,包含计算、网络、存储等组件,但并不是每时每刻都会有大量的业务数据需要处理,在业务量比较小的时段会有大量的数据中心资源处于闲置状态,但是各个业务之间的架构是独立的,无法共享底层资源,会造成大量资源浪费。

        ② 业务部署缓慢:新业务上线可能涉及不同的硬件、软件产品,从业务评估到软硬件部署,需要较长周期,通常一个业务上线需要2-3个月。

        ③ 管理策略分散:不同业务系统可能基于不同的软硬件架构,基于不同的管理平台,而平台之间通常没有接口,统一管理困难。

        ④ 业务扩容困难:随着业务量扩展,逐渐增加相应组件,硬件扩容通常涉及业务迁移扩容、回迁,软件升级通常涉及数据备份、迁移、升级,还需要制定可靠的回退措施,操作管理复杂。

        ⑤ 运维成本上升:竖井式IT架构需要各个厂家支持,需要配备多个专业的运维人员,随着业务持续增长,设备维护成本直线上升。

        因此如何解决或者缓解上述问题,提升数据中心资源利用率和资源管理效率一直是数据中心面临的重要问题。

1.3 虚拟化技术的实现

        随着云计算的发展,传统的数据中心逐渐过渡到云数据中心,新IT架构颠覆了传统竖井式IT架构,将硬件资源抽象池化,并按需为应用提供资源,其中核心技术即为虚拟化。

        现代计算机系统是一个庞大的整体,整人系统的复杂性是不言而喻的。因而整个计算机系统被分成了多个自下而上的层次,每一个层次都向上一层次呈现一个抽象,并且每一层只需知道下层抽象的接口,而不需要了解其内部运作机制。以分层的方式抽象资源的好处是每一层只需要考虑本层设计以及与相邻层间的相互交互,从而大大降低了系统设计的复杂性,提高了软件的移植性。

        本质上,虚拟化就是由位于下层的软件模块,通过向上一层软件模块提供一个与它原先所期待的运行环境完全一致的接口的方法,抽象出一个虚拟的软件或硬件接口,使得上层软件可以直接运行在虚拟的环境上。虚拟化可以发生在现代计算机系统的各个层次上,不同层次的虚拟化会带来不同的虚拟化概念。

        通过虚拟化可以将计算、存储、网络等硬件资源形成资源池,通过云计算可以将池化的资源按需创建虚拟机提供给最终用户,虚拟机(Vidua Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。但是虚拟机可以快速的创建和释放,可以灵活的迁移和备份,实现资源的弹性供给,提升资源使用率,降低系统维护管理成本。

1.4 虚拟化的类型

        实现虚拟化技术的核心是对计算资源,存储资源和网络资源进行虚拟化。

        计算虚拟化在云计算中是最重要和最关键的,是将一个或多个物理服务器虚拟成多个逻辑上的服务器,集中管理,能跨越物理平台而不受物理平台的限制;

        存储虚拟化是把分布的异构存储设备统一为一个或几个大的存储池,方便用户的使用和管理;

        网络虚拟化是在底层物理网络和网络用户之间增加一个抽象层,该抽象层向下对物理网络资源进行分割,向上提供虚拟网络。

2. 虚拟化的概念和分类

        虚拟化的定义:

        虚拟化是资源的逻辑表示,并不受物理资源所处的位置影响。通过在物理硬件层之上添加虚拟化层,将硬件层的资源抽象成另一种形式的资源,把新的资源称为虚拟资源,从而提供给上层操作系统或者应用使用。

        虚拟化的特点:

        虚拟化的对象是各种各样的资源,例如:计算、存储、网络等IT资源。经过虚拟化后的逻辑资源对用户隐藏了不必要的细节,例如使用虚拟机的用户不需要了解虚拟机的CPU和内存是通过硬件模拟还是软件模拟,也不需要了解存储资源是来自于本地存储还是网络存储,阵列使用RAID1还是RAID5等类似细节。

        虚拟化环境可以实现真实环境部分或全部功能,例如用户使用一台安装CentOS的虚拟机,在该虚拟机上可以部署Web server,也可以部署数据库,不管是从功能上还是性能上看,都和部署在一台物理主机上没有差异。

        虚拟化的优势与不足:

        虚拟化技术是云计算中重要的组成部分,把硬件资源进行虚拟化后,其主要优势如下:

        ① 更高的资源利用率。虚拟化可实现物理资源和资源池的动态共享,提高资源利用率,特别是针对那些平均需求远低于需要为其提供专用资源的业务场景。

        ② 降低管理成本。虚拟化可通过以下途径提高工作人员的效率: 减少必须进行管理的物理资源的数量;隐藏物理资源的部分复杂性;通过实现自动化、获得更好的信息和实现中央管理来简化公共管理任务;实现负载管理自动化。另外,虚拟还可以支持在多个平台上使用公共的工具。

        ③ 提高使用灵活性。通过虚拟化可实现动态的资源部署和重配置,满足不断变化的业务需求。并且虚拟机可在不影响用户的情况下对物理资源进行删除、升级或改变

        ④ 提高安全性。虚拟化技术可实现较简单的共享机制无法实现的隔离和划分,这些特性可实现对数据和服务进行可控和安全的访问。

        ⑤ 更高的可扩展性。根据不同的产品,资源分区和汇聚可支持实现比个体物理资源小得多或大得多的虚拟资源,这意味着您可以在不改变物理资源配置的情况下进行规模调整。

        当然虚拟化技术也是有缺点的,主要的缺点如下:

        ① 由于虚拟机间接访问硬件,因此虚拟机效率不如实际机器;

        ② 如果虚拟机太多,可能会发生物理资源争抢问题;

        ③ 引入虚拟化层之后,导致上层系统应用出错概率增加,从而导致故障排查困难。

3. 计算虚拟化原理及实现方式

        计算虚拟化:

        一台完整可用的计算机应该包括硬件、系统软件以及应用程序。在现代计算机架构中,拥有“计算”能力的硬件包括有 CPU、内存以及IO。需要完成计算虚拟化,就意味着要对上述3种硬件进行虚拟,使其成为能够被虚拟机所使用的资源,并且每个虚拟机中的应用程序可以在相对独立的空间内运行,而且相互不会影响。

        计算虚拟化是通过VMM(Virtual Machine Monitor,虚拟化管理程序,也被称为Hypervisor)将服务器物理资源抽象成逻辑资源,在一台物理服务器上创建并运行几台甚至上百台相互隔离的虚拟服务器。资源不再受限于物理上的界限,CPU、内存、IO等硬件变成可以动态管理的"资源池",从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应性。

        基于VMM所在位置与虚拟化范围不同,计算虑拟化可以分为三种类型,分别是寄居虚拟化,裸金属虚拟化和操作系统虚拟化。

        实现计算虚拟化的方式之寄居虚拟化:

        对“寄居虚拟化”来说,物理硬件上是一层操作系统,称之为“宿主机操作系统”,在该操作系统上再安装虚拟化管理程序软件(VMM或Hypervisor),通过虚拟化软件可以划分出多个虚拟机,各个虚拟机上再安装各自独立的操作系统,称之为"客户机操作系统",然后就可以部署应用了。

        上图应用1,直接安装在宿主机操作系统上,该场景没有使用虚拟化技术。

        上图应用2,部署在虚拟机操作系统上,就是寄居虚拟化使用场景。

        可以看出,这种虚拟化方式存在两层操作系统,虚拟机的操作系统是寄居在物理机的操作系统之上,并由 VMM来在中间整合的。

        寄居虚拟化的优点是简单、易于实现,缺点是需要依赖于宿主机操作系统支撑,资源的调度需要依靠宿主机操作系统来完成,所以管理开销大,性能损耗也很大。

        代表的产品有:Vmware Workstation

        实现计算虚拟化的方式之裸金属虚拟化:

        裸金属虚拟化也称为硬件抽象层虚拟化,其实现的方式是直接在硬件层之上部署虚拟化平台软件,而不再需要宿主机操作系统来支撑。由于客户机操作系统所看到的是虚拟化层,因此可以认为客户机操作系统的功能和在宿主机操作系统功能几乎没有什么区别。(裸金属虚拟化的定义)

        理论上,宿主机操作系统和客户机操作系统的指令集架构相同,所以客户机操作系统大部分指令是可以直接调用CPU来执行的,只有那些需要虚拟化的指令才会由虚拟化层(VMM)进行处理。

        裸金属虚拟化的优缺点:

优点

缺点

不需要依赖宿主机操作系统,支持多种操作系统,与寄居虚拟化相比,缩短了虚拟机到物理硬件路径,从而减少应用的响应时间,改善用户的体验

虚拟化层内核开发难度大,价格也就更为昂贵,多用于大型企业级应用。

        代表的产品有:Vmware vSphere

        操作系统虚拟化:

        操作系统虚拟化指的是宿主机操作系统的内核提供多个相互隔离的实例。这些实例并不是平常说的虚拟机,而是容器。

        容器可以看作是一台真实的计算机,里面有自己的独立文件系统、网络、系统设置、函数库等。通俗点的理解就是一个装应用软件的箱子,箱子里面有软件运行所害的依赖库和配置。开发人员可以把这个箱子搬到任何机器上,且不影响里面软件的运行。

        该虚拟化是由宿主机操作系统本身的内核提供的,因此操作系统层上的虚拟化时比较高效的,它对虚拟化资源和性能开销要求比较低,也不需要特殊硬件支持。但是每个容器的操作系统必须和底层硬件的操作系统相同,灵活性较差。

        操作系统虚拟化的优点是简单、易于实现,而且管理开销非常低;缺点是隔离性较差,如果容器被攻击,可能会把攻击传播到宿主机操作系统和其他容器。另外多个容器共享同一个操作系统,容器迁移也存在一定局限性。

4. 存储虚拟化原理及实现方式

        存储的虚拟化可以分为基于主机的存储虚拟化基于存储设备的存储虚拟化基于网络的存储虚拟化

        基于主机的存储虚拟化通常称为分布式存储,是指通过将服务器主机的本地存储资源虚拟化为资源池,为服务器应用提供存储空间,在此应用场景中,服务器不再需要外接独立的存储设备。

        基于存储设备的存储虚拟化主要有N:1形式的存储集群和1:N形式的Vitual Domain。存储集群通过Scale out的方式,将多台存储虚拟为一台存储,从而扩展存储容量并提供设备级可靠性。Virtual Domains是一款虚拟机软件,也称为虚拟专用阵列,可为不同的应用和用户群提供安全的访问和强大的存储服务。所有用户只能访问经过授权的Viual Domain,可以独立管理和监控自己的存储资源,为用户之间提供安全隔离。

        基于网络的存储虚拟化,指将存储SCSI(Small Computer System Interface,小型计算机系统接口)命令和数据封装在P或FC网络中传输,服务器通过网络挂载相应的存储资源。相比本地存储,基于网络的存储虚拟化,可以挂载更多的磁盘,可以支持更远距离,可以提升存储资源的使用率。

        基于主机的虚拟化:

        当主机服务器需要访问多个磁盘阵列,可以使用基于主机的存储虚拟化技术,虚拟化的工作通过特定的软件在主机服务器上完成,经过虚拟化的存储空间可以跨越多个异构的磁盘阵列。

        如图:主机1可以使用磁盘阵列1和磁盘阵列2上的存储空间,主机2可以使用磁盘阵列2上的存储空间,主机3和4均可使用磁盘阵列3和磁盘阵列4上的存储空间。

        该技术的优点:支持异构的存储系统;容易实现,不需要额外的特殊硬件;开销低,不需要硬件支持,不修改现有系统架构。

        该技术的缺点:占用主机资源,降低应用性能:存在操作系统和应用的兼容性问题,导致主机升级、维护、扩展复杂,容易造成系统不稳定:需要复杂的数据迁移过程,影响业务连续性。

        基于存储设备的虚拟化:

        当有多个主机服务器需要访问同一个存储设备的时候,可以采用基于存储设备控制器的虚拟化技术。基于存储设备的虚拟化能够实现存储资源提供给多个主机使用,但是不能够跨越各个存储设备间的限制,无法打破设备间的不兼容性。

        如图:磁盘阵列1的存储空间可以提供给主机1和2使用,磁盘阵列2的存储空间可以提供给主机2~4使用。

        技术优点:与主机无关,不占用主机资源,数据管理功能丰富。

        技术缺点:一般只能实现对本设备内磁盘的虚拟化;不同厂商间的数据管理功能不能互操作;多套存储设备需要配置多套数据管理软件,成本较高。

5. 网络虚拟化原理及实现方式

        之所以要对网络进行虚拟化,是因为在没有进行虚拟化之前,每个服务器都有自己独立的网卡,服务器上的 OS独占物理网卡的使用。而现在通过虚拟化技术在一台物理服务器需要运行多个VM,而多个VM都要有自己的网卡,VM之间的网卡彼此之间是独立的,但一台服务器物理网卡是有限的,为了解决VM 之间的通信、VM 与外网通信等问题,所以有了网络虚拟化。

        传统数据中心主要提供互联网访问,流量多来自于互联网用户的访问,这些流量通常被称之为“南北流量”,数据中心内部服务器之间的流量则称之为“东西流量”。在传统数据中心南北流量几乎占据到80%。

        基于流量的特点,传统数据中心采用三层网络架构,即整个网络由接入层、汇聚层和核心层组成,流量纵向经过接入层、汇聚层网络,收敛至骨干核心层。

        但随着云计算的发展,尤其是大数据分析和人工智能的兴起,大量的数据分析、搜索和挖掘在数据中心内部进行,东西流量开始取代南北向流量,在数据中心占据主导地位,比例可达70%以上。

        云数据中心网络需要解决数据中心内部的数据同步传送的大流量、备份大流量、虚拟机迁移大流量等问题。同时,还需要采用统一的交换网络减少布线、维护工作量和扩容成本。引入虚拟化技术之后,在不改变传统数据中心网络设计的物理拓扑和布线方式的前提下,可以实现网络各层的横向整合,形成一个统一的交换架构。

        数据中心网络虚拟化分为核心层、接入层和虚拟机网络虚拟化三个方面。

        1)虚拟机网络虚拟化

        虚拟机网络交互包括物理网卡虚拟化和虚拟网络交换机,在服务器内部虚拟出相应的交换机和网卡功能。

        数据包从虚拟机的虚拟网卡流出,通过Hypervisor内部的虚拟交换机,再经过服务器的物理网卡流出到上联交换机。

        2)接入层网络虚拟化

        接入层虚拟化实现数据中心接入层的分级设计。

        接入层交换机要求能够支持各种灵活的部署方式和新的以太网技术。

        3)核心层网络虚拟化

        核心层网络虚拟化,主要指的是数据中心核心网络设备的虚拟化。

        要求核心层网络具备超大规模的数据交换能力,以及足够的万兆接入能力。

        可以将多个交换机连接在一起虚拟成成一个逻辑单元,简化设备管理,提高资源利用率,提高交换系统的灵活性和扩展性,为资源的灵活调度和动态伸缩提供支撑。

        网络虚拟化后不同租户的流量是相互隔离的,不同租户默认不能相互访问,不同租户的IP/MAC 地址可以独立规划,甚至可以重叠。

        虚拟机可以跨二层/三层迁移,甚至可以跨广域网进行迁移,逻辑网络和物理网络解耦,逻辑网络可以跨越二层/三层物理网络。

        虚拟网卡:

        在物理环境之中,主机是通过物理交换机连接到网络当中。而在虚拟化环境中,虚拟机通过虚拟交换机来连接网络,虚拟交换机是通过主机上的物理网卡作为上行链路与外界网络进行连接。

        跟普通服务器设备一样,每个虚拟机有着自己的虚拟网卡(virtual NIC),每个 virtual NIC有着自己的 MAC地址和IP地址。Virtual Switch(vSwitch)相当于一个虚拟的二层交换机,该交换机连接虚拟网卡和物理网卡,将虚拟机上的数据报文从物理网口转发出去。与物理交换机样,vSwitch 的作用就是用来转发数据。

        在虚拟化环境中,多个虚拟机共享服务器中的物理网卡,需要一种机制既能保证I/O的效率,又能保证多个虚拟机对物理网卡的共享使用,I/O虚拟化主要解决这类问题。

        随着越来越多的服务器被虚拟化,网络已经延伸到VMM内部,网络通信的“端”已经从以前的服务器变成了运行在服务器中的虚拟机,数据包从虚拟机的虚拟网卡流出,通过 VMM内部的虚拟交换机,再经过服务器的物理网卡流出到上联交换机。

        虚拟交换机:

        为了解决同一台服务器上的多台虚拟机之间的通信问题,采用了虚拟交换技术。虚拟交换类型分为基于CPU 技术实现的,基于物理网卡技术实现的和基于物理交换机技术实现的3种。

        基于CPU实现的虚拟交换,使用服务器内部的CPU和内存资源,在云环境中创建一个虚拟的分布式交换机,这个交换机跨越了云环境中需要通信的两台服务器,用于实现这两台服务器内所有虚拟机的完整虚拟交换功能。采用CPU实现的虚拟交换方式扩展灵活,但是会消耗服务器的CPU资源,性能较低。

        基于物理网卡实现的虚拟交换,利用服务器的物理网卡来实现完整的虚拟交换能力,对物理网卡有特殊要求。基于物理网卡实现的虚拟交换方式高级特性较少,不支持热迁移。

        基于物理交换机实现的虚拟交换,将虚拟机的网络流量接入到物理交换机进行处理,需要依赖物理交换机相应的功能来实现虚拟交换,基于物理交换机实现的虚拟交换是一种优选的技术方案。

        硬件设备虚拟化:

        硬件设备虚拟化分为N:1和1:N两类,N:1虚拟化是指将多个物理资源虚拟化为一个逻辑资源,1:N虚拟化是指将一个物理资源虚拟化为多个逻辑资源。

        常见的N:1虚拟化形式有计算机集群、IRF(Intelligent Resilient Framework,智能弹性架构)和存储集群。通过N:1虚拟化可以将多个物理设备虚拟为一台逻辑设备,可以扩展计算能力、交换能力以及存储容量,并提供设备级可靠性。另外还可以把不同类型的网络设备虚拟化为一台逻辑设备,把整个网络中的核心层、汇聚层等物理设备虚拟化为一台逻辑设备,简化网终结构,统一管理和配置网终

        常见的1:N虚拟化有服务器虚拟化、MDC(Multitenant Device Context,多租户设备环境)和存储设备虚拟化。通过 1:N 虚拟化可以将一个物理设备虚拟化为多台虚拟设备,具有物理资源复用、逻辑资源隔离、弹性等优点。

        虚拟网络:

        目前比较常见的网络虚拟化应用包括虚拟局域网(VLAN),虚拟专用网(VPN),以及虚拟二层延伸网络等。

        VLAN(Virtual LocalArea Network,虚拟局域网)是一种传统的局域网虚拟化技术,VLAN将同一网络划分为多个逻辑上的虚拟子网,不同子网间不能直接互通,防止广播报文泛滥,同时组网也更加灵活。对于局域网规模的扩展具有非常重要的意义。

        但随着虚拟化技术的发展,促使云计算服务提供商采用物理设备虚拟多台虚拟机的方式来进行组网,因此对于支持VLAN的数量要求也在提升,但传统VLAN技术最多支持4094个VLAN已经无法满足需求。且传统交换机的一个端口连接一个物理主机对应一个 MAC 地址,但现在交换机的一个端口可能连接几十个甚至上百个虚拟机和相应数量的MAC地址。整个数据中心的MAC地址可能多了几十甚至上百倍,相应的交换机里面的MAC地址表也需要同比例扩大这会大大增加了交换机的负担,影响交换机正常工作。

        同时云数据中心内部存在大量的虚拟机动态迁移,为了保证迁移时业务不中断,就要求在迁移时,不仅虚拟机的IP地址不变,而且虚拟机的运行状态也必须保持原状(例如TCP会话状态),所以虚拟机的动态迁移只能在同一个二层域中进行,而不能跨二层域迁移。

        一般情况下,多数据中心之间的连接是通过三层路由连通的。而要实现通过三层网络连接的两个二层网络直接互通,就要使用到虚拟二层延伸网络,也被称为大二层网络。目前应用比较广泛的大二层网络技术主要有 VXLAN (Vitual extensible Local Area Network,虚拟扩展局域网)、NVGRE(Network Virtualization using Generic Routing Encapsulation,使用通用路由协议封装实现网络虚拟化)等网络虚拟化技术。VXLAN、NVGRE 都是通过将MAC封装在IP之上,实现对物理网络的屏蔽,解决了物理网络VLAN数量限制、接入交换机 MAC表资源有限等问题,同时通过提供统一的逻辑网络管理工具,更方便地实现了虚拟机在进行迁移时网终策略跟随的问题,大大降低了虚拟化对网络的依赖。

        虚拟专用网络(VPN,Virtual Private Network)是指在共用网络上建立专用网络的技术之所以称为虚拟网主要是因为整个VPN网络的任意两个结点之间的连接并没有传统专网建设所需的点到点的物理链路,而是架构在公用网络服务商ISP 所提供的网络平台之上的逻辑网络用户的数据是通过ISP 在公共网络(Internet)中建立的逻辑隧道(Tunnel),即点到点的虚拟专线进行传输的。通过相应的加密和认证技术来保证用户内部网络数据在公网上安全传输,从而真正实现网络数据的专有性。

举报

相关推荐

0 条评论