-
2021-05-15 09:20:10
云计算8项核心技术分析
云计算是一种以数据和处理能力为中心的密集型计算模式,它融合了多项ICT技术;其中,以虚拟化技术、分布式数据存储技术、编程模型、大规模数据管理技术、分布式资源管理、信息安全、云计算平台管理技术、绿色节能技术等8项技术最为关键。今天,工程师就为你详解云计算的8项核心技术:
1、虚拟化技术
虚拟化是云计算最重要的核心技术之一,它为云计算服务提供基础架构层面的支撑,是ICT服务快速走向云计算的最主要驱动力。
从技术上讲,虚拟化是一种在软件中仿真计算机硬件,以虚拟资源为用户提供服务的计算形式。虚拟化的最大好处是增强系统的弹性和灵活性,降低成本、改进服务、提高资源利用效率。
从表现形式上看,虚拟化又分两种应用模式。一是将一台性能强大的服务器虚拟成多个独立的小服务器,服务不同的用户。二是将多个服务器虚拟成一个强大的服务器,完成特定的功能。在云计算中,这两种模式都有比较多的应用。
2、分布式数据存储技术
云计算的另一大优势就是能够快速、高效地处理海量数据。为了保证数据的高可靠性,云计算通常会采用分布式存储技术,将数据存储在不同的物理设备中。这种模式不仅摆脱了硬件设备的限制,同时扩展性更好,能够快速响应用户需求的变化。
分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
在当前的云计算领域,Google的GFS和Hadoop开发的开源系统HDFS是比较流行的两种云计算分布式存储系统。
3、编程模式
从本质上讲,云计算是一个多用户、多任务、支持并发处理的系统。它旨在通过网络把强大的服务器计算资源方便地分发到终端用户手中,同时保证低成本和良好的用户体验。在这个过程中,编程模式的选择至关重要。云计算项目中分布式并行编程模式将被广泛采用。
在分布式并行编程模式中,后台复杂的任务处理和资源调度对于用户来说是透明的,这样用户体验能够大大提升。MapReduce是当前云计算主流并行编程模式之一。MapReduce模式将任务自动分成多个子任务,通过Map和Reduce两步实现任务在大规模计算节点中的高度与分配。
4、大规模数据管理
处理海量数据是云计算的一大优势,高效的数据处理技术是云计算不可或缺的核心技术之一。云计算不仅要保证数据的存储和访问,还要能够对海量数据进行特定的检索和分析。
Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase是业界比较典型的大规模数据管理技术。
5、分布式资源管理
云计算采用了分布式存储技术存储数据,那么自然要引入分布式资源管理技术。在多节点的并发执行环境中,各个节点的状态需要同步,并且在单个节点出现故障时,系统需要有效的机制保证其它节点不受影响。
全球各大云计算方案/服务提供商们都在积极开展相关技术的研发工作。其中Google内部使用的Borg技术很受业内称道。另外,微软、IBM、Oracle/Sun等云计算巨头都有相应解决方案提出。
6、信息安全调查
数据表明,安全已经成为阻碍云计算发展的最主要原因之一。要想保证云计算能够长期稳定、快速发展,安全是首要需要解决的问题。
在云计算体系中,安全涉及到很多层面,包括网络安全、服务器安全、软件安全、系统安全等等。云安全产业的发展,将把传统安全技术提到一个新的阶段。
现在,不管是软件安全厂商还是硬件安全厂商,都在积极研发云计算安全产品和方案;包括传统杀毒软件厂商、软硬防火墙厂商、IDS/IPS厂商在内的各个层面的安全供应商都已加入到云安全领域。
7、云计算平台管理
云计算系统的平台管理技术,需要具有高效调配大量服务器资源,使其更好协同工作的能力。其中,方便地部署和开通新业务、快速发现并且恢复系统故障、通过自动化、智能化手段实现大规模系统可靠的运营是云计算平台管理技术的关键。
对于提供者而言,云计算可以有三种部署模式,即公共云、私有云和混合云。对于用户而言,云计算平台管理方案要更多地考虑到定制化需求,能够满足不同场景的应用需求。包括Google、IBM、微软、Oracle/Sun等在内的许多厂商都有云计算平台管理方案推出,让企业云计算平台价值得以充分发挥。
8、绿色节能技术
云计算具有巨大的规模经济效益,在提高资源利用效率的同时,节省了大量能源。绿色节能技术已经成为云计算必不可少的技术,未来越来越多的节能技术还会被引入云计算中来。
更多相关内容 -
XXXX云计算平台建设总体技术方案
2018-01-17 17:21:30第10章 两种数据中心技术方案的综合对比 79 10.1 技术方案对比 79 10.1.1 传统技术领域对比 79 10.1.2 下一代数据中心技术能力比较 80 10.2 技术服务对比 82 10.3 商务对比 83 10.4 总结 83 第11章 附录:新一代数据... -
云计算和虚拟化技术
2021-12-28 10:44:48云计算内涵 英文名称:Cloud Computing 发展过程 Sun Microsystems —>...云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)并提高其可用性的模云计算内涵
-
英文名称:Cloud Computing
-
发展过程
- Sun Microsystems —> 网络是计算机
- Amazon —> 弹性计算云(Elastic Compute Cloud,EC2)
- Google —> 云计算
-
云计算是
- 分布式计算
- 并行计算
- 效用计算
- 网络存储
- 虚拟化
- 负载均衡
- 热备份冗余
等传统计算机和网络技术发展融合的产物
-
云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)并提高其可用性的模式。
这些资源来自一个共享的、可配置的资源池,并能够以最省力和无人干预的方式获取和释放
这种模式具有5个关键功能、3种服务模式和4种部署方式
-
云计算参考架构
云计算的组成通常可以分为6个部分,它们由上至下分别是
-
云客户端
-
云服务
-
云应用
-
云平台
-
云存储
-
云基础设施
-
-
云是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源
端指的是用户终端,可以是个人计算机、智能终端、手机等任何可以连入互联网的设备
-
云计算特点
多样性编程可用于服务也可用于经济
- 可靠性较强
- 服务型
- 可用性高
- 经济性
- 多样性服务
- 编程便利性
-
云计算演化的4个重要阶段
电厂效用网格云
-
电厂模式阶段
-
效用计算阶段
-
网格计算阶段
-
云计算阶段
-
-
云计算分类
-
按照服务方式划分
公有云被一个销售云计算服务的组织所拥有,公有云的核心属性是共享服务资源
私有云被一个单一的组织拥有或租用,私有云的核心属性是专有资源
混合云基础设施由私有云和公有云组成
-
按照服务类型划分
-
SaaS:软件服务,Software-as-a-service
服务提供商将应用软件提供给用户
-
对企业而言优点
- **技术方面:**只需简单部署,不需购买硬件,不需配备IT方面专业技术人员
- **投资方面:**不需一次性投资,缓解资金压力,且能即使获得最新硬件平台和解决方案
- **维护和管理方面:**不需要专门的维护和管理人员
-
面临的问题
- **安全性:**数据需要由第三方负责缺乏安全性
- **标准化:**SaaS解决方案缺乏标准化
-
实现方式
- 通过PaaS平台开发SaaS
- 采用多租户架构和元数据开发模式
-
应用实例
-
云OA(office automation-办公自动化)
-
云CRM(Customer Relationship Management-客户关系管理)
-
云ERP(Enterprise Resource Planning-企业资源计划)
-
阿里钉钉 属于SaaS,用友的云OA属于SaaS
-
-
-
PaaS:平台服务,Platform-as-a-service
在IaaS基础上,服务提供商将软件开发环境和运行环境等以开发平台的形式提供给用户
PaaS提供的是一种环境,用户程序不但可以运行在这个环境中,而且其生命周期也能够被该环境所控制
从PaaS以服务形式提供给用户的角度来说,PaaS也是SaaS模式的一种应用
-
特点
- 平台即服务
- 平台及服务
- 平台级服务
-
一些PaaS平台
-
国外平台
-
GAE
-
Microsoft Azure
-
Amazon Elastic Beanstalk
-
CumuLogic
-
Force
-
Engine Yard
-
Heroku
-
-
国内平台
-
BAE
-
SAE
-
Qcloud
-
ACE
-
腾讯提供的微信小程序接口
-
-
-
-
IaaS:基础设施服务,Infrastructure-as-a-service
服务提供商把计算基础(服务器、网络技术、存储和数据中心空间)作为一项服务提供给用户,IaaS服务是虚拟化技术发展的产物
-
IaaS厂商分类
-
IaaS管理平台分类
-
IaaS实例
-
专有云
-
VMware的vCloud
-
Microsoft的System Center
-
华为的Galax8800
-
-
开源云
-
OpenStack
-
CloudStack
-
Eucalyptus
-
-
-
-
SaaS,PaaS,IaaS之间的关系
IaaS提供基础架构部件PaaS是一套平台工具,主要面向应用程序研发人员,可以构建于IaaS之上,也可以直接构建在物理资源之上
SaaS提供各种应用程序,可基于PaaS平台提供,也可直接基于IaaS提供
对于标黄的两句话的理解:3种服务都是虚拟化的结果,上层可以使用下层虚拟化后的资源实现,当然也可以直接使用未虚拟化的物理资源实现
-
-
云体系,标准,应用
-
烟囱式(专机专用)的传统IT部署架构存在问题
- 硬件高配低用
- 整合困难
-
云基础架构的融合部署分为3个层次的融合
-
硬件层的融合
实现虚拟机与虚拟网络之间的关联
-
业务层的融合
典型的云安全解决方案就是通过虚拟防火墙与虚拟机之间的融合
虚拟机与LB(Load Balancing)负载均衡之间的联动
-
管理层的融合
云基础架构通过虚拟化技术与管理层的融合
-
-
SOA(Service-Oriented Architecture) -------- 面向服务的体系结构,是一个组件模型
-
SOA特征
- 可重用
- 松耦合
- 明确定义的接口
- 无状态的服务设计
- 基于开放标准
-
分布式计算
共享稀有资源和平衡负载是计算机分布式计算的核心思想之一
-
云计算与SOA是两个不同的概念
- 云计算是一种部署体系结构,而 SOA则是企业IT的体系结构
- SOA与云整合既带来应用和业务流程灵活的虚拟化和节省的费用(云),又带来原有应用的集成应用及业务流程的敏捷重构(SOA)
- 上层基于SOA 进行应用服务的开发,底层基于云计算进行资源整合,包括存储、网络、数据库和服务器等
云计算与SOA2个概念之间是有关联的
-
产生背景和原因角度
-
SOA产生的原因是为解决企业存在的信息孤岛和遗留系统这两大问题
-
云计算产生的原因是企业的信息系统数据量的高速增长与数据处理能力的相对不足,还有计算资源的利用率处于不平衡的状态
-
-
服务角度
- SOA实现了可以从多个服务提供商得到多个服务(一个服务便是一个功能模块),并通过不同的组合机制形成自己所需的一个服务
- 云计算实现了所有的资源都是服务,可以从云计算提供商购买硬件服务、平台服务、软件服务等,把购买的资源作为云计算提供商提供的一种服务
-
关键技术
- SOA需要实现业务组件的可重用性、敏捷性、适应改变、松耦合、基于标准
- 云计算则需要虚拟化技术、按需动态扩展、资源即服务的支撑
-
应用场景
- 当企业的业务需求经常改变的时候可以考虑使用SOA
- 当企业对IT设施的需求经常改变或者无法提前预知的时候可以考虑使用云计算,当有大量的批处理计算的时候也可以考虑使用云计算
-
应用的侧重点
- SOA侧重于采用服务的架构进行系统的设计,关注如何处理服务
- 云计算侧重于服务的提供和使用,关注如何提供服务
-
商业模式
- SOA可能会降低软件的开发及维护的成本,商业模式是间接的,需要落地
- 云计算根据使用的时间(硬件)或流量(带宽)进行收费,具有明确的商业模式
-
云计算和分布式计算区别和联系
-
分布式计算是云计算涉及的一项重要技术
分布式计算更多解决的是多个计算节点共同提供更强计算能力的问题
云计算的核心还是终端计算和存储能力朝云端的迁移和集中化,并能够弹性扩展
-
分布式计算往往更加强调是单个Request请求的拆分,主要通过应用设计,将任务进行分解来进行
云计算的PaaS层往往并不会拆分单个Request,而是将用户访问的多Request并发通过调度规则进行Retouer分发
-
分布式计算是由多个用户合作完成的
云计算是没有用户参与的,是交给网络另一端的服务器完成的
-
-
云计算标准化组织分类
-
《云计算综合标准化体系建设指南》涉及的内容
- 云计算生态系统:硬件、软件、服务、网络和安全5个方面
- 云计算综合标准化体系框架:云基础标准、云资源标准、云服务标准和云安全标准
- 云基础标准主要包括云计算术语、参考架构、指南等方面的标准
- 云资源标准主要包括关键技术、资源管理和资源运维等方面的标准
- 云服务标准主要包括服务采购、服务质量、服务计量和计费、服务能力评价等方面的标准
- 云安全标准:网络安全、系统安全、服务安全和信息安全,主要包括云计算环境下的安全管理、服务安全、安全技术和产品、安全基础等方面的标准
- 云计算的标准研制方向: 29个
云服务
-
云计算服务概念:是指将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户提供按需服务,用户通过网络以按需、易扩展的方式获得所需资源和服务
-
云计算服务特征:
- 随需自助服务
- 随时随地用任何网络设备访问
- 多人共享资源池
- 快速重新部署的灵活度
- 可被监控与量测的服务
一般认为还有的特征
- 基于虚拟化技术快速部署资源或获得服务
- 减少用户终端的处理负担
- 降低用户对于IT专业知识的依赖
-
-
云计算发展趋势(二)实现云计算的技术以及其他新兴技术介绍
2020-03-11 21:08:12文章目录前言实现云计算的技术容器技术(Container)DockerOpenStackOpenStack与云计算系统的关系OpenStack与计算虚拟化的关系OpenStack的优势OpenStack架构与组成其他新兴技术介绍雾计算边缘计算微服务无服务器 ...文章目录
前言
我们在上篇文章云计算的发展趋势(一)云计算相关领域介绍中介绍了与云计算息息相关的一些技术以及应用。那么本文就主要介绍实现云计算的一些技术以及一些新兴的技术。
实现云计算的技术
大家可以参考计算虚拟化简介这篇文章中有简略的提到计算虚拟化的历史,以及KVM、XEN等计算虚拟化技术。这里我们主要介绍一些其他的技术。
容器技术(Container)
一种轻量级的虚拟化技术
轻量级虚拟化
就是使用了一种操作系统虚拟化技术,这种技术允许一个操作系统上用户空间被分割成几个独立的单元在内核中运行,彼此互不干扰,这样一个独立的空间,就被称之为一个容器。
使用容器技术后,应用程序可以在几乎任何地方用相同的方式运行。开发人员可以在自己的电脑上常见并测试好容器,无须任何修改就能够在其它的虚拟机或者物理机上运行。
注意:容器是一种虚拟化技术,但要区别于虚拟机
容器和虚拟机的对比
容器由两部分组成:
1. 应用程序 2. 应用程序运行环境,比如应用程序需要的库等。
容器是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置。不管环境如何,集装箱化软件都可以运行相同的Linux和Windows应用程序。容器将软件与其周围环境隔离开来,例如开发环境和测试环境之间的差异,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突。
虚拟机除了部署应用容器中包含的这些外,还需要包含操作系统,这是二者最大的区别。
那么容器究竟解决了什么问题呢?当代软件的架构非常复杂,软件环境配置就成了现在软件开发最大的麻烦,开发者常常会说:“它在我的机器可以跑了”,言下之意就是这个软件在别的电脑上不一定能跑得起来,最大的原因是软件所在的操作系统的设置及各种库和组件的安装,只有他们全部正确,软件才能运行起来。比如一个软件是用JAVA开发的,计算必须有配套的引擎、依赖和环境变量的配置。那么我们安装软件的时候,把原始环境也一模一样的复制过来,这样不就解决问题了。
也有人说,那我用虚拟机模板,不也一样可以解决这个问题吗?
但是前面我们讲了,虚拟机是带操作系统的,所以会有以下几个缺陷:-
资源占用太多
虚拟机会独占一部分内存和硬盘空间。它运行的时候,其它程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有 1MB,虚拟机依然需要几百 MB 的内存才能运行。 -
冗余步骤多
虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。 -
启动起来较慢
启动操作系统需要多久,启动虚拟机就需要多久,所以可能要等几分钟,应用程序才能真正运行。
对比容器,上面的这是缺陷恰恰是容器的优势。
-
启动快
容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。 -
体积小
对比虚拟机的整个操作系统打包,容器只要包含应用所要用到的组件就可以了。所以容器文件要小的多。 -
资源占用少
容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。
但是在有些功能上,容器技术也是不如虚拟机的。
Docker
在计算虚拟化简介中介绍虚拟化的历史时,我们提到最开始提出容器的概念是:Linux中的LXC。但是我们现在提到最多的容器技术是Docker。
Docker
属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
Docker 的主要用途,目前有三类。
- 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
- 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
- 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
Docker采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。
)
Docker 的核心组件包括:
-
Docker 客户端 – Docker Client
最常用的Docker客户端是命令行。通过命令行我们可以在主机上构建和运行容器。
-
Docker 守护进程 - Docker daemon
Docker服务器组件指的是Docker daemon,它运行在Linux的操作系统上,负责创建、运行、监控容器,同时也构建和存储镜像。
-
Docker 镜像 - Image
它是Docker的关键组件,用来创建Docker容器。 Docker镜像类似虚拟机模板,只可读。如果需要修改,需要先转换为容器,修改完以后再转为镜像。
-
Registry
存放 Docker 镜像的仓库,Registry可分为私有和公有两种。
-
Docker 容器 - Container
Docker容器是Docker镜像运行的实例。
在云计算3.0的时代,主要的技术就是Docker为主的容器技术,那么在2.0时代我们更多的是用OpenStack。
OpenStack
)
OpenStack是目前最为流行的开源云操作系统框架。自2010年6月首次发布以来,经过数以千计的开发者和数以万计的使用者的共同努力,OpenStack不断成长,日渐成熟。目前,OpenStack的功能强大而丰富,已经在私有云、公有云、NFV。等多个领域得到了日益广泛的生产应用。与此同时,OpenStack已经受到了IT业界几乎所有主流厂商的关注与支持,并催生出大量提供相关产品和服务的创业企业,在事实上成为了开源云计算领域的主流标准。时至今日,围绕 OpenStack已经形成了一个繁荣而影响深远的生态系统,OpenStack已经是云计算时代一个无法回避的关键话题。可以说,不了解OpenStack,就无法理解当今云计算技术的发展,也无法把握云计算产业的脉搏。
OpenStack:
一种搭建云平台的解决方案。
OpenStack官网对OpenStack的定位:一个云操作系统。
可以说OpenStack是一个云操作系统框架更加合适。关于云操作系统,我们可以借助PC电脑操作系统来类比,进行理解。
操作系统,是计算机系统领域里一个至关重要的概念。有了操作系统,我们才能将计算机系 统中的各类软硬件整合起来,形成一个能够完成各类处理任务的完整系统,为用户提供服务。这 个描述较为抽象,但结合到日常生活与工作中的实例,就清楚易懂多了。无论是服务器和个人电脑上的Linux、Windows,还是手机上的Android、IOS, 都是操作系统的常见实例。 无论是服务器、个人电脑还是手机上的操作系统,本质上,其核心功能都可以概括为五个方面,即资源接入与抽象、资源分配与调度、应用生命周期管理、系统管理维护和人机交互支持。换言之,只有具备了以上这五个方面的主要功能,一个操作系统才能够实现各类软硬件的整合,让系统具备为用户提供服务的能力。
具体而言:- 资源接入与抽象,是指将各类硬件设备,如CPU、内存、本地硬盘、网卡等, 接入到系统中,并将其抽象为操作系统可以识别的逻辑资源,以此作为操作系统对各类硬件资源实施管理的基础
- 资源分配与调度,是指利用操作系统的资源管理能力,将上述不同的硬件资源,按照需求的类型和数量,分配给不同的系统软件或应用软件,供其使用
- 应用生命周期管理,是指协助用户实现各类应用软件在操作系统上的安装、升级、启动、停止、卸载等管理操作
- 系统管理维护,是指协助系统管理员实现对系统自身的各类配置、监控、升级等管理操作
- 人机交互支持,指提供必要的人机界面,支持系统管理员和用户对系统实施各类操作。
与之对应,一个完整的云操作系统,同样应该能够具备上述五个方面的主要功能。其核心区别只是在于,云操作系统需要管理的,是一个由大量软硬件组成的分布式的云计算系统,而一个普通操作系统需要管理的,则是一台服务器、一台个人电脑,或者一部手机。
针对云操作系统,上述五项主要功能的内容应该是:- 资源接入与抽象,是指将各类服务器、存储、网络设备等硬件资源,通过虚拟化的或者可软件定义的方式,接入到云计算系统中,并将其抽象为云操作系统可以识别的计算、存储、网络等资源池,以此作为云操作系统对各类 硬件资源实施管理的基础
- 资源分配与调度,是指利用云操作系统的资源管理能力,将前述的不同资源,按照不同的云租户对于资源类型与数量的不同需求,将资源分配给各个租户,以及不同租户的不同应用
- 应用生命周期管理,是指协助租户实现各类云应用在云操作系统上的安装、启动、停止、卸载等管理操作
- 系统管理维护,是指协助系统管理员实现对于云计算系统的各类管理与运维操作
- 人机交互支持,指提供必要的人机界面,支持系统管理员和普通租户对系统实施各类操作。
由上述介绍可以看出,虽然云操作系统比我们日常接触的操作系统复杂很多,但其最为关键的五项主要功能,其实是可以一一对应的。通过这种对应,我们可以更为直观地理解云操作系统这个概念。而OpenStack,则是实现云操作系统的关键组件,或者说,是构建一个完整的云操作系统的框架。
要构建一个完整的云操作系统,需要对大量软件组件进行有机整合,让它们协同工作,共 同提供系统管理员和租户所需的功能与服务。而OpenStack本身,尚且不能独立具备一个完整云操作系统所需的全部能力。举例而言:在上面提到的云操作系统的五项主要功能中,OpenStack不能独立实现资源接入与抽象,而需要和底层的虚拟化软件、软件定义存储、软件定义网络等软件相配合;OpenStack不能独立提供完善的应用生命周期管理能力,而需要在上层集成各类管理软件平台;OpenStack自身不具备完整的系统管理维护能力,在投入生产实用时,还需要集成各类管理软件与维护工具;OpenStack自身提供的人机界面,其功能也还不够丰富强大,等等。
由此不难看出,想在OpenStack基础上构建一个完整的云操作系统,需要将OpenStack与其它一些软件组件进行集成,以实现OpenStack自身并不提供的能力。因此,OpenStack自身的准确定位, 是一个云操作系统框架。基于这个框架,可以集成不同的各类组件,实现满足不同场景需要的云操作系统,并在此基础上,最终构建完整的云计算系统。OpenStack与云计算系统的关系
基于前面的介绍,不难看出,OpenStack与云计算系统之间,既紧密联系,又相互区别。
OpenStack是构建云操作系统的框架。使用云操作系统,集成并管理各类硬件设备,并承载各类上层应用与服务,才能最终形成一个完整的云计算系统。由此可见,OpenStack是云计算系统的核心软件组件,是构建云计算系统的基础框架,但OpenStack和云计算系统并不能直接等同。OpenStack与计算虚拟化的关系
计算虚拟化,是很多读者非常熟悉的概念。其对应的软件实现,就是平常所说的Hypervisor,如开源的KVM、Xen,以及VMware的vSphere、华为的FusionCompute、微软的Hyper-V等。OpenStack与计算虚拟化之间的关系,是目前仍然被频繁混淆的一个问题。理解这二者之间的联系与区别,也是理解OpenStack的关键之一。
OpenStack是一个云操作系统的框架。为构建完整的云操作系统,特别是为实现资源接入与抽象的功能,OpenStack需要与虚拟化软件实施集成,从而实现对服务器的计算资源的池化。应该指出的是,在资源池化的过程中,物理资源虚拟化的功能,仍然由虚拟化软件完成。举例而言,在使用KVM作为OpenStack的虚拟化软件时,仍然由KVM完成将一台物理服务器虚拟为多台虚拟机的功能,而OpenStack负责记录与维护资源池的状态。例如,系统中一共有多少台服务器,每台服务器的资源共有多少,其中已经向用户分配了多少,还有多少资源空闲。在此基础上,OpenStack负责根据用户的要求,向KVM下发各类控制命令,执行相应的虚拟机生命周期管理操作,如虚拟机的创建、删除、启动、关机等。由此可见,两相对比,OpenStack更像是系统的控制中枢,是云操作系统的“大脑”;计算虚拟化软件则更像是系统的执行机构,是云操作系统的“肢体”。二者分工合作,共同完成对云计算系统中的计算资源池的管理,但绝不能认为OpenStack等同于计算虚拟化软件。
OpenStack的优势
-
开放
OpenStack是开源的,而且OpenStack的开源,不仅体现在简单的源代码开放,更体现在其设计、开发、测试、发布的全流程中。 -
灵活
OpenStack的灵活,首先体现在其大量使用插件化、可配置的方式进行设计。最为突出的 体现,就在于OpenStack采用插件化的方式实现不同类型计算、存储、网络资源的接入,由此 实现OpenStack对于不同类型资源的灵活接入与管理,用一套架构实现了对于不同厂商、不同 类型设备的资源池化,例如,在计算领域,可以以插件化的形式接入KVM、Xen、vCenter、 FusionCompute等不同的Hypervisor;在存储领域,可以以插件化的形式实现对不同厂商的存储设备,以及Ceph、FusionStorage、vSAN等不同的软件定义存储的管理;在网络领域,可以实现对不同的网络硬件设备,OVS、Liunx-bridge、 HAProxy等开源网络组件,以及多种SDN控制器的接入。并且,这些接入都是通过可配置的方式加以选择。当在不同的资源之间进行选择时,OpenStack自身并不需要重新打包发布,只需通过配置项选择不同的接入插件即可,非常方便。
在此基础上,OpenStack的灵活还体现在不依赖于任何特定的商用软硬件。换言之,任何商用软硬件产品在OpenStack中一定是可选、可替换的,从而严格保证用户可以使用完全开源、开放的方案来构建基于OpenStack的云计算系统,而完全不必担心被锁定在某些特定厂商的产品之上。 -
可扩展
OpenStack的架构高度可扩展。具体而言,其扩展性体现在功能和系统规模两个方面。从功能视角看,OpenStack由多个相互解耦的项目组成。不同的项目分别完成云计算系统中的不同功能,如身份认证与授权服务、计算服务、块存储服务、网络服务、镜像服务、对象存储服 务等。对于一个特定场景下的云计算系统,系统设计人员可以根据实际需要决定使用OpenStack中的若干个项目,也可以在系统上线后,根据需求继续引入新的OpenStack项目。OpenStack的一些项目自身也具有功能可扩展性。系统设计人员可以在这些项目中引入新的功能模块,在不影响项目既有功能使用的前提下,对其功能进行扩展。从系统规模视角看,OpenStack总体上遵循了无中心、无状态的架构设计思想。其主要项目,均可实现规模水平扩展,以应对不同规模的云计算系统建设需求。在系统建成后,可根据应用负载规模的实际增长,通过增加系统管理节点和资源节点的方式,逐渐扩展系统规模。这种架构可以有效避免高额的初始建设投资,也降低了系统初始规划的难度,为云计算系统的建设者和运营者提供了充分的扩展空间。
OpenStack架构与组成
在2010年OpenStack社区首次发布其第一个发行版——Austin时,OpenStack仅包含两个项目Nova和Swift,仅能实现非常简单和基础的功能。时至今日,OpenStack已经日渐成熟和强大,其组成项目也已经大大增多,仅包含在Mitaka版本release notes中的服务项目就多达29个。各个项目各司其责,分工合作,共同形成了一个架构灵活、功能丰富、扩展性强的云操作系统框架。本文将优先选择 OpenStack中最为关键和有代表性的部分项目,进行扼要介绍,以便帮助读者更为直观地了解 OpenStack。
- Keystone:身份认证与授权服务
将计算、存储、网络等各种资源,以及基于上述资源构建的各类IaaS、PaaS、SaaS层服务,在不同的用户间共享,让众多用户安全地访问和使用同一个云计算系统,是一个云操作系统的基本能力。而实现这个能力的基础,就是一个安全可靠的身份认证与授权服务。而Keystone就是OpenStack的身份认证与授权服务项目。Keystone负责对用户进行身份认证,并向被认定为合法的用户发放令牌(token)。用户持 Keystone发放的令牌访问OpenStack的其它项目, 以使用其提供的服务。而各个组件中内嵌的令牌校验和权限控制机制,将与Keystone配合实现对用户身份的识别和权限级别的控制,保证只有恰当的用户能够对恰当的资源实施恰当的操作,以 此保证对不同用户资源的隔离与保护。 - Nova:计算服务
向用户按需提供不同规格的虚拟机,是任何一个云操作系统最为基础的功能。而Nova就是 OpenStack中负责提供此类计算服务的项目。Nova的核心功能,是将大量部署了计算虚拟化软件 (即Hypervisor) 的物理服务器统一纳入管理之下,组成一个具有完整资源视图的逻辑资源池。在此基础上,Nova通过接收不同用户发起的请求,对资源池中的资源进行生命周期管理操作。其中最为核心的,就是虚拟机的创建、删除、启动、停止等操作。通过执行客户发起的虚拟机创建操作,Nova将逻辑资源池中的CPU、内存、本地存储、IO设备等资源,组装成不同规格的虚拟机,再安装上不同类型的操作系统,最终提供给用户进行使用,由此满足用户对于计算资源的需求。
除了虚拟机资源管理服务能力之外,Nova还通 过与Ironic项目配合,共同为用户提供裸机资源管理服务能力。具体而言,Nova可以接收用户发起的裸机资源申请,然后调用Ironic项目的对应功能,实现对裸机的自动化选择、分配与操作系统安装部署,从而使得用户可以获得与虚拟机资源使用体验相当的物理机资源使用体验。 - Ironic:裸机管理
Ironic通过与Nova相配合,共同为用户提供裸机服务能力。
在实际工作时,Ironic直接负责对物理服务器的管理操作。一方面,在物理服务器被纳入到资源池之中时,Ironic负责记录物理服务器的硬件规格信息,并向Nova上报;另一方面,在用户发起裸机管理操作时,Ironic负责根据Nova的指令,对相应的物理服务器执行具体的管理操作动作。例如,当用户发起一个创建裸机操作时,Ironic需要根据Nova调度的结果,对选定的物理服务器执行硬件初始化配置、操作系统安装等一系列具体操作,以完成裸机创建动作。 - Glance:镜像服务
通常而言,在虚拟机被创建之后,都需要为其安装一个操作系统,以便用户使用。为此,云计算系统中往往需要预置若干不同种类、不同版本的操作系统镜像,以便用户选用。此外,在一 些应用场景下,为进一步方便用户,镜像中还需要预装一些常用的应用软件,这将进一步增加镜 像的种类与数量。为此,云操作系统必须具备镜像管理服务能力。Glance就是OpenStack中的镜像服务项目。
Glance主要负责对系统中提供的各类镜像的元数据进行管理,并提供镜像的创建、删除、查询、上传、下载等能力。但在正常的生产环境下,Glance本身并不直接负责镜像文件的存储,而是仅负责保管镜像文件的元数据,本质上是一个管理前端。Glance需要与真正的对象存储后端对接,才能共同提供完整的镜像管理与存储服务能力。 - Swift:对象存储服务
对象存储服务,是云计算领域中一种常见的数据存储服务,通常用于存储单文件数据量较大、访问不甚频繁、对数据访问延迟要求不高、对数据存储成本较为敏感的场景。Swift就是OpenStack中用于提供对象存储服务的项目。
与OpenStack中大部分只实现控制功能、并不直接承载用户业务的项目不同,Swift本身实现了完整的对象存储系统功能,甚至可以独立于 OpenStack,被单独作为一个对象存储系统加以应用。
此外,在OpenStack系统中,Swift也可以被用做Glance项目的后端存储,负责存储镜像文件。 - Cinder:块存储服务
在典型的、基于KVM虚拟化技术的OpenStack部署方案下,Nova创建的虚拟机默认使用各个计算节点的本地文件系统作为数据存储。这种数据存储的生命周期与虚拟机本身的生命周期相同,即当虚拟机被删除时,数据存储也随之被删除。如果用户希望获得生命周期独立于虚拟机自身的、能够持久存在的块存储介质,则需要使用 Cinder提供的块存储服务,也称为卷服务。
Cinder负责将不同的后端存储设备或软件定义存储集群提供的存储能力,统一抽象为块存储资源池,然后根据不同需求划分为大小各异的卷,分配给用户使用。
用户在使用Cinder提供的卷时,需要使用 Nova提供的能力,将卷挂载在指定的虚拟机上。 此时,用户可以在虚拟机操作系统内看到该卷对应的块设备,并加以访问。 - Neutron:网络服务
网络服务,是任意云操作系统IaaS层能力的关键组成部分。只有基于稳定、易用、高性能的云上虚拟网络,用户才能将云计算系统提供的各类资源和服务能力连接成真正满足需求的应用系统,以解决自身的实际业务需求。
Neutron是OpenStack中的网络服务项目。Neutron及其自身孵化出来的一系列子项目,共同为用户提供了从Layer 2到Layer 7不同层次的多种网络服务功能,包括Layer 2组网、Layer 3组网、内网DHCP管理、Internet浮动IP管理、内外网防火墙、负载均衡、VPN等。整体而言,Neutron的Layer 2、Layer 3服务能力已经较为成熟。时至今日,Neutron已经取代了早期的novanetwork,成为了OpenStack中Layer 2、Layer3的主流虚拟网络服务实现方式。与之对应,Neutron的Layer 4至Layer 7服务能力仍在迅速发展中,目前已具备初步应用能力。
需要说明的是,OpenStack的DNS即服务能力,并未包含在Neutron项目的功能范围当中,而是由另一个单独的项目Designate负责实现。 - Heat:资源编排服务
云计算的核心价值之一,即在于IT资源与服务管理和使用的自动化。换言之,在引入云计算技术之后,大量在传统IT领域中需要依靠管理人员或用户通过手工操作实现的复杂管理任务,应当可以通过调用云操作系统提供的API,以程序化的方式自动完成,从而显著提高IT系统管理的效率。
在上述提及的IT领域复杂管理操作中,用户业务应用系统的生命周期管理操作,即应用系统的安装、配置、扩容、撤除等,可谓是具有代表性的一类。这类操作的复杂与耗时耗力,与当前不断凸现的业务快速上线、弹性部署诉求,已经表现出明显的不适应性。Heat项目的出现,就是为了在OpenStack中提供自动化的应用系统生命周期管理能力。具体而言,Heat能够解析用户提交的,描述应用系统对资源类型、数量、连接关系要求的定义模板,并根据模板要求,调用Nova、Cinder、Neutron等项目提供的API,自动实现应用系统的部署工作。这一过程高度自动化,高度程序化。同样的模板,可以在相同或不同的基于OpenStack的云计算系统上重复使用,从而大大提升了应用系统的部署效率。在此基础上,Heat还可以与OpenStack Ceilometer项目的Aodh子项目相配合,共同实现对于应用系统的自动伸缩能力。这更进一步简化了部分采用无状态、可水平扩展架构的应用系统的管理,具有典型的云计算服务特征。 - Ceilometer:监控与计量
在云计算系统中,各类资源均以服务化的形式向用户提供,用户也需要按照所使用资源的 类型和数量缴费。这种基本业务形态,就要求云操作系统必须能够提供资源使用量的监控与计量能力。这正是OpenStack引入Ceilometer项目的根本动机。
Ceilometer项目的核心功能,是以轮询的方式,收集不同用户所使用的资源类型与数量信 息,以此作为计费的依据。
在此基础上,Ceilometer可以利用收集的信息,通过Aodh子项目发送告警信号,触发Heat项目执行弹性伸缩功能。
需要说明的是,Ceilometer项目自身并不提供计费能力。系统设计者需要将其与适当的计费模块相对接,才能实现完整的用户计费功能。目前,OpenStack社区已经创建了CloudKitty项目,作为OpenStack社区原生的计费组件。但该项目当前尚处于较为初期的阶段,难以直接商用。 - Horizon:图形界面
Horizon项目是OpenStack社区提供的图形化人机界面。经过社区长期的开发完善,Horizon界面简洁美观,功能丰富易用,可以满足云计算系统管理员和普通用户的基本需求,适于作为基于OpenStack的云计算系统的基本管理界面使用。
此外,Horizon的架构高度插件化,灵活而易于扩展,也便于有定制化需求的系统设计人员针对具体场景进行增量开发。
其他新兴技术介绍
雾计算
雾计算(Fog Computing),在该模式中数据、(数据)处理和应用程序集中在网络边缘的设备中,而不是几乎全部保存在云中,是云计算(Cloud Computing)的延伸概念,由思科(Cisco)提出的。这个因“云”而“雾”的命名源自“雾是更贴近地面的云”这一名句。
雾计算,这个名字由美国纽约哥伦比亚大学的斯特尔佛教授起的,他当时的目的是利用“雾”来阻挡黑客入侵。后来思科首次正是提出,赋予雾计算新含义。雾计算是一种面向物联网的分布式计算基础设施,可将计算能力和数据分析应用扩展至网络“边缘”,它使客户能够在本地分析和管理数据,从而通过联接获得即时的见解。
雾计算和云计算一样,十分形象。云在天空飘浮,高高在上,遥不可及,刻意抽象;而雾却现实可及,贴近地面,就在你我身边。雾计算并非由性能强大的服务器组成,而是由性能较弱、更为分散的各类功能计算机组成,渗入工厂、汽车、电器、街灯及人们物质生活中的各类用品。边缘计算
云计算从进入我们视线到今,已经发展了十几年,在商业上取得了很大的成功,边缘计算则是云计算继续发展的产物,目前还处于概念阶段。
引用Wikipedia对Edge Computing的定义,边缘计算指的是:与将数据传到远程的云端进行处理相反,边缘计算则是在靠近数据源头的网络边缘提供计算和存储资源。
通俗的说,边缘计算是去中心化或分布式的云计算,原始数据不传回云端,而是在本地完成分析。看好边缘计算的人认为计算能力正在从云端向边缘移动,因此边缘计算会成为下一个像云计算这样成功的技术爆发点。另一方面,边缘计算是驱动物联网的关键技术,因此边缘计算的推动者往往是从事物联网的人。
边缘是一个很笼统的概念,它是指接近数据源的计算基础设施,不同的边缘计算提供商往往有不同的边缘。比如美国电信公司AT&T的边缘就是离客户几英里的蜂窝网络基站;对于世界最大的CDN厂商阿卡麦,边缘则是指遍布全球的CDN设备;对于机场的监控设备,边缘就是覆盖整个机场无死角的高清摄像头。
根据Fog Computing vs. Edge Computing: What’s the Difference?(https://www.automationworld.com/fog-computing-vs-edge-computing-whats-difference)的观点,雾计算与边缘计算都是将智能和计算能力推向靠近数据来源的位置,因此他们常常被混用。他们的区别也正是计算能力(大脑)所处的位置:
• 雾计算将计算能力推向局域网,在雾节点或物联网的网关处完成数据处理。
• 边缘计算将边缘网关的智能,处理能力和通信能力直接推送到诸如可编程自动化控制器的设备。
微服务
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互 协调、相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对于具体的服务,应根据业务上下文,选择合适的语言、工具对其进行构建。 微服务架构模式,核心是将复杂应用划分成小颗粒度、轻量化的自治服务,并围绕微服务开展服务的开发和服务的治理,这是实现云化软件的一种架构模式,也是近两年最热门的架构模式。
实践中,微服务架构模式中的微服务具有如下几个主要特点:- 小
微服务架构通过对于特定的业务领域进行分析和业务建模,将复杂的业务逻辑剥离成为小而 专一、耦合度低并且高度自治的一组服务,每个服务都是很小的应用。 虽然强调每个服务小,但是每个微服务本身还是完整的应用,这与我们通常说的组件、插件、共享库是有区别的。微服务的规模也没有严格的定义,通常一个微服务的开发团队在6~8人左右,一个微服务的架构重构可以在2周时间内完成这样的描述来确定一个大致的规模。这样的开发团队能够完成的开发规模就是一个微服务规模的上限。 - 独
独,指的是微服务的独立性。这里的独立性主要是针对一个微服务应用的交付过程而言的, 也就是开发、测试以及部署升级的独立。在微服务架构中,每个服务都是一个独立的业务单元。这个业务单元在部署形态上,是独立的业务进程。对某个微服务进行改变,不会影响其它的服务。对于每个微服务,都有独立的代码库。某个微服务的代码修改,不会影响其它的微服务。 对于每个微服务,都有独立的测试验证机制,不必担心破坏完整功能而开展大范围的回归测试(这往往是现有大集成全覆盖测试研发模式中消耗很大,但测试结果却不让人放心的地方)。 - 轻
微服务强调服务自治,因此服务之间的交互,必须采用消息通信的方式予以开展。从效率 的角度,应当选择轻量级的通信机制。在软件实现的实践上,RESTful API的方式被广泛采用。这种通信机制的优点是语言无关、平台无关,并且十分便于制定通信协议,保证接口的前向兼 容性。
在从传统软件架构向微服务化架构演进的过程中,业界实践部分也保留了RPC的通信机制,但要求基于RPC进行通信协议的制定,以保证接口的前向兼容性,实际是为了支撑服务间的独立和服务的松耦合态。 - 松
松是指微服务间松耦合,每个微服务可独立部署,互相之间没有部署先后顺序的依赖,微服 务的接口前向兼容,单独微服务的上线,对于其他服务而言不产生关联,可以独立地灰度发布和灰度升级。
实现微服务间松耦合还有一点需要注意,就是一个微服务完成且最好仅完成一件事,业务逻辑的独立是微服务间解耦的关键。
无服务器
无服务器和Functions-as-a-Service(FaaS)是云计算最新的热点趋势。如同许多新的概念一样,Serverless目前还没有一个普遍公认的权威的定义。最新的一个定义是这样描述的
无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务(例如AWS Lambda服务),客户端逻辑和服务托管远程过程调用的组合。
-
-
云计算之虚拟化技术
2019-07-16 15:01:35云叔和云计算关注 ...通过前几篇文章的阅读,相信大家对云计算概念、架构和技术有了一定的认识。那么,我们这里来谈谈云计算的核心技术之一:虚拟化。 在讲虚拟化技术前,我们先来学习几个概念: ...转载:https://www.jianshu.com/p/312056e70387?from=timeline
云叔和云计算 关注
0.1 2017.12.10 13:32* 字数 3194 阅读 7608评论 0喜欢 5
通过前几篇文章的阅读,相信大家对云计算概念、架构和技术有了一定的认识。那么,我们这里来谈谈云计算的核心技术之一:虚拟化。
在讲虚拟化技术前,我们先来学习几个概念:
(1)物理平台----实现虚拟技术的真实物理硬件和操作系统平台。
(2)虚拟平台----在物理平台上,虚拟出来的运行不同操作系统的各种虚拟机。
(3)VMM----虚拟机监视器,一种监控和管理虚拟机运行的核心软件层,也叫Hypervisor。
(4)宿主机----真实的物理服务器,上面可以运行虚拟出来的虚拟机。
(5)客户机----就是指从宿主机上虚拟出来的虚拟机。
1 什么是虚拟化?
云计算的核心技术之一就是虚拟化技术。所谓虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化的核心软件VMM,是一种运行在物理服务器和操作系统之间的中间层软件。VMM是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括CPU、内存、磁盘、网卡在内的所有物理设备。VMM不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行VMM时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。
2 虚拟化方式
虚拟化技术有很多实现方式,比如根据虚拟化的程度和级别,有软件虚拟化和硬件虚拟化,全虚拟化和半虚拟化。
2.1软件虚拟化
软件虚拟化,顾名思义,就是采用纯软件的方法在在现有的物理平台上实现物理平台访问的截获和模拟,该物理平台往往不支持硬件虚拟化。
常见的软件虚拟化技术QEMU,是通过纯软件来仿真X86平台处理器的指令,然后解码和执行,该过程并不在物理平台上直接执行,而是通过软件模拟实现,因此往往性能比较差,但是可以在同一平台上模拟出不同架构平台的虚拟机。
VMware则采用了动态二进制翻译技术。VMM在可控的范围内,允许客户机的指令在可控的范围内直接运行。客户机指令在运行前会被VMM扫描,其中突破VMM限制的指令被动态替换为可以在物理平台上直接运行的安全指令,或者替换为对VMM的软件调用。因此其性能上比QEMU有大幅提升,但是其失去了跨平台虚拟化的能力。
2.2硬件虚拟化
硬件虚拟化,简单来说,就是物理平台本身提供了对特殊指令的截获和重定向的硬件支持,新的硬件会提供额外的资源来帮助软件实现对关键硬件资源的虚拟化,从而提升性能。
比如X86平台,CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会将客户机置于一种受限模式下运行,一旦客户机试图访问硬件资源,硬件会暂停客户机的运行,将控制权交回给VMM处理。同时,VMM还可以利用硬件的虚拟化增强技术,将客户机对硬件资源的访问,完全由硬件重定向到VMM指定的虚拟资源。
由于硬件虚拟化可提供全新的架构,支持操作系统直接在上面运行,无需进行二进制翻译转换,减少的性能开销,极大地简化了VMM的设计,从而使VMM可以按标准编写,通用性更好,性能更强。
需要说明的是,硬件虚拟化技术是一套解决方案,完整的情况需要CPU、主板芯片组、BIOS和软件的支持。Intel在其处理器产品线中实现了Intel VT虚拟化技术(包括Intel VT-x/d/c)。AMD也同样实现了其芯片级的虚拟化技术AMD-V。
2.3全虚拟化
完全虚拟化技术又叫硬件辅助虚拟化技术,最初所使用的虚拟化技术就是全虚拟化(Full Virtualization)技术,它在虚拟机(VM)和硬件之间加了一个软件层Hypervisor,或者叫做虚拟机管理程序或虚拟机监视器(VMM)。
完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,性能方面不如裸机,因为VMM需要占用一些资源,给处理器带来开销。
2.4半虚拟化
半虚拟化技术是后来才出现的技术,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化,即不需要VMM耗费一定的资源进行翻译操作。因此VMM的工作负担变得非常的小,因此整体的性能也有很大的提高。不过缺点就是,要修改包含该API的操作系统,但是对于某些不含该API的操作系统(主要是Windows)来说,就不行能用这种方法。
半虚拟化技术的优点是性能高。经过半虚拟化处理的服务器可与VMM协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。它的客户操作系统(Guest OS)集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
3 虚拟化实现
虚拟化技术指的是软件层面的实现虚拟化的技术,整体上分为开源虚拟化和商业虚拟化两大阵营。典型的代表有:Xen,KVM,WMware,Hyper-V、Docker容器等。
这里介绍一下开源的KVM和Xen以及微软的Hyper-V技术。
3.1 KVM
KVM(Kernel-based Virtual Machine)是基于内核的虚拟机,KVM是集成到Linux内核的VMM,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。
KVM本身不执行任何模拟,需要用户控件程序通过/dev/kvm接口设置一个客户机的虚拟虚拟地址空间,向它提供模拟的I/O,并将其视频显示映射回宿主机的显示屏。
KVM继承了Linux系统管理内存的诸多特性,比如,分配给虚拟使用的内存可以被交换至交换空间、能够使用大内存页以实现更好的性能,以及对NUMA的支持能够让虚拟机高效访问更大的内存空间等。
KVM基于Intel的EPT(ExtendedPage Table)或AMD的RVI(Rapid Virtualization Indexing)技术可以支持更新的内存虚拟功能,这可以降低CPU的占用率,并提供较好的吞吐量。此外,KVM还借助于KSM(Kernel Same-pageMerging)这个内核特性实现了内存页面共享。KSM通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时,KSM会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同GuestOS的虚拟机之间出现相同内存页面的概率是很的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此,KSM技术可以降低内存占用进而提高整体性能。
3.2 Xen
Xen是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。在Xen使用的方法中,没有指令翻译。这是通过两种方法之一实现的。第一,使用一个能理解和翻译虚拟操作系统发出的未修改指令的CPU(此方法称作完全虚拟化)。另一种,修改操作系统,从而使它发出的指令最优化,便于在虚拟化环境中执行(此方法称作准虚拟化)。
在Xen环境中,主要有两个组成部分。一个是虚拟机监控器(VMM)。VMM层在硬件与虚拟机之间,是必须最先载入到硬件的第一层。Hypervisor载入后,就可以部署虚拟机了。在Xen中,虚拟机叫做“domain”。在这些虚拟机中,其中一个扮演着很重要的角色,就是domain0,具有很高的特权。通常,在任何虚拟机之前安装的操作系统才有这种特权。
Domain0要负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(Xen术语叫domainU)。这些domainU也叫无特权domain。这是因为在基于i386的CPU架构中,它们绝不会享有最高优先级,只有domain0才可以。
3.3 Hyper-V
Hyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的VMM运行在最高的特权级别下,微软将其称为ring -1(而Intel则将其称为root mode),而虚拟机的OS内核和驱动运行在ring 0,应用程序运行在ring 3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。
由于Hyper-V底层的VMM代码量很小,不包含任何第三方的驱动,非常精简,所以安全性更高。Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。
这种架构效率很高,不再像以前的Virtual Server,每个硬件请求,都需要经过用户模式、内核模式的多次切换转移。更何况Hyper-V现在可以支持Virtual SMP,Windows Server 2008虚机最多可以支持4个虚拟CPU;而Windows Server 2003最多可以支持2个虚拟CPU。每个虚机最多可以使用64GB内存,而且还可以支持X64操作系统。
-
云计算技术综述
2021-12-07 17:30:14云计算是一种通过网络将高弹性的共享的物理和虚拟资源,按需进行服务和管理的方式。其具有虚拟化、广泛的网络接入、可度量的服务、多租户、按需自服务、快速的弹性和可扩展性、资源池化等特点。云计算最关键的技术之... -
基于云计算的数字图书馆建设与实现
2021-04-16 14:35:59基于对图书馆建设的数字化、安全性和高效...采用重定向认证的两层认证技术保证系统安全性。结果表明,采用云计算服务的数字图书馆服务平台实现了数据资源的交互性,满足用户对资料查阅和信息收集的高效性和安全性需求。 -
云计算的核心技术,主要有哪些?
2019-04-11 14:06:02云计算在技术上是通过虚拟化技术架构起来的数据服务中心,实现对存储、计算、内存、网络等资源化,按照用户需求进行动态分配。用户不再是在传统的物理硬件资源上享受服务,而改变为在虚拟资源层上构建自己的应用。 ... -
什么是云计算,云计算的三种类型
2020-12-29 16:11:29什么是云计算,云计算的三种类型1、什么是云计算1.1 云计算的五个基本特征1)自助服务2)广泛的网络访问3)资源池化4)快速弹性5)计费服务1.2 云计算的4种部署类型1)私有云2)社区云3)公共云4)混合云1.3 云计算... -
云计算技术简述及发展分析
2020-08-31 17:30:46如今,云计算服务是企业最先进的技术,市场还将继续加速变化,各个云计算提供商之间的竞争继续升温。云计算后端具有非常庞大、可靠的云计算中心,对于云计算使用者来说,在付出少量成本的前提下,即可获得较高的用户... -
云计算是什么?3分钟了解云计算技术
2022-04-02 14:55:48云计算技术是基于互联网和网络的下一代技术,以不同的方式为用户提供服务。在云计算中,简单的数据资源是外包的,这些资源可以临时使用,这使得它具有成本效益,因为用户可以为他们使用的内容付费。为了在云应用程序... -
云计算 三种模式 各种云的区别
2022-04-02 09:46:12云计算的三种模式 IaaS 提供基础设施例子 PaaS提供平台例子 SaaS提供软件例子 各种云 公有云 私有云 混合云 五大优势 数据中心 私有云 公有云 专有云的区别 混合云的例子 云计算的关键技术 数据存储... -
云计算和容器技术
2021-03-20 20:38:51说明:业界的划分只有自底向上中没有Docker as a Service,其他三种分别对应了不同的资源类型(基础设施、平台、软件)而DaaS是Doker技术发展起来后的一种新的云计算服务模式,注意这个图我没有画完,下 -
云计算技术与应用 - 了解认识云计算
2021-11-07 16:41:22近几年来,云计算也正在成为信息技术产业发展的战略重点,全球的信息技术企业都在纷纷向云计算转型。我们举例来说,每家公司都需要做数据信息化,存储相关的运营数据,进行产品管理,人员管理,财务管理等,而进行... -
云计算的三种服务模式和四种部署模型
2020-12-23 11:36:26云计算技术都是基于3种特殊的云计算服务模式,它们都具有流行、有效、灵活、用户友好等特征。因此,云架构的基本模式是:本文引用地址:http://www.eepw.com.cn/article/201710/368624.htm1、基础设施即服务:基础... -
云计算的两种形式
2012-08-17 23:32:33还是继续思考《IT不在重要》这本书的一些内容,从实现的角度讲,云计算其实可以有两种形式,一种是集中式的,一种是分布式的。前者主要是大公司建立的云计算平台,如谷哥,苹果,微软,亚马逊等,后者主要是利用民间... -
云计算的核心技术是什么
2021-06-17 08:22:39虚拟化是云计算最重要的核心技术之一,它为云计算服务提供基础架构层面的支撑。从技术上讲,虚拟化是一种在软件中仿真计算机硬件,以虚拟资源为用户提供服务的计算形式。旨在合理调配计算机资源,使其更高效地提供... -
总结:云计算的4种部署模型
2022-02-16 18:41:24云计算有 4 种部署模型,分别是私有云、社区云、公共云和混合云,这是根据云计算服务的消费者来源划分的,即: 如果一个云端的所有消费者只来自一个特定的单位组织(如微算科技公司),那么就是私有云。 如果一个... -
云计算的技术基础-虚拟化技术(一)
2021-06-17 11:14:05虚拟化技术是云计算的核心技术之一。虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。虚拟化技术的出现和应用... -
云计算与大数据技术应用前四章知识点整理
2022-01-13 18:10:441.1什么是云计算 1.2云计算技术发展背景。。。 第二章大数据技术概述 2.1大数据技术的产生 2.2大数据的4V特征。。。 第三章虚拟化技术 3.1虚拟化技术简介 3.2虚拟化技术原理。。。 第四章数据中心 4.1数据中心的概念... -
云计算的六大技术
2018-12-19 13:14:02云计算是一种新型的业务交付模式,同时也是新型的IT基础设施管理方法。通过新型的业务交付模式,用户将通过网络充分利用优化的硬件、软件和网络资源,并以此为基础提供创新的业务服务。 云计算是一种新型的业务... -
云计算与大数据技术应用
2022-01-07 11:56:39美国联邦云计算战略报告中定义了四种云: 1)公有云:提供面向社会大众,公共群体的云计算服务。 缺点:难以保证数据的私密性。 2)私有云:提供面向行业/组织内的云计算服务。 优点:保密性高。 3)社区云:... -
云计算技术特点!
2020-05-08 15:51:09美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够... -
云计算技术基础【7】
2022-02-10 18:43:161. BGP 是一种内部网关协议,可以实现数据中心内部网元之间的互联(1 分) A. 正确 B. 错误 2. 以下( )是属于智慧交通数据的采集。(2 分) A. 视频监控 B. 车载的 RFID 的采集信息 C. GPS 的数据,包括地理... -
云计算与大数据应用技术————21大数据2021142247537刘新敏
2022-01-07 09:19:06● 社区云:提供面向社团组织内用户使用的云计算 ● 混合云:含有两种以上的云计算类型的混合云平台。 广义云计算:服务的使用和交付模式,具有超大规模、虚拟化、可靠安全等特性。 侠义云计算:指IT基础设施的... -
云计算基础技术及解决方案介绍
2020-02-24 13:03:54文章目录一、云计算基础概念1、云计算定义与特点2、云计算服务模式3、云计算交付方式二、资源池化技术1、服务器虚拟化2、网络功能虚拟化分为传统网络架构和虚拟化环境中网络架构常用的网络虚拟化功能设备3、分布式... -
云计算领域的6大新技术-为人们带来了巨大的希望
2019-11-01 11:57:31云计算领域的新兴技术 这些新兴技术(基于云计算或与云计算高度可互操作)为人们带来了巨大的希望,但它们也增加了云计算的复杂性。 01 容器 2014年春季,容器技术应运而生。而容器可以使软件开发更快、更敏捷,... -
《云计算与大数据技术应用》
2022-01-13 11:14:08云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的... -
关于云计算存储虚拟化技术三个层次上的实现
2018-08-16 11:16:34关于云计算存储虚拟化技术三个层次上的实现 随着企业的成长,业务和应用不断增加,IT 系统规模日益庞大,带来高能耗、数据中心空间紧张、IT 系统总体拥有成本过高等问题;而现有服务器、存储系统等设备又没有充分...