一、云计算概述

云计算定义:云计算是分布式计算的一种特殊形式,它引入效用模型来远程供给可扩展可测量的资源。重点
云计算特点:利用云计算技术,可以管理、调度、整合、优化分布在网络上的各种资源,并以统一界面为用户提供各类计算服务重点

  • 按需服务:云为用户提供想要的服务,用户可以按照自己的需求来获取计算资源,就像现实生活中使用自来水、煤气、电力资源一样。
  • 通用性:云计算并不是一种特定的计算方式,可以在云端支持下衍生出千变万化的应用,且适用范围广。
  • 超大规模计算能力:现在各大云计算提供商为用户提供了非常多且强大的云服务器,这些云服务器赋予用户前所未有的计算能力。
  • 实时在线:云支持在任何位置、使用各种终端来获取实时服务,请求的资源来源于云而不是固定的有形实体。
  • 高可靠性:绝大部分云计算提供商采用了多副本容错、计算节点同构可互换等措施来保障服务可靠性,使用户计算、数据更加可靠。
  • 虚拟化:虚拟化云计算支持用户在任意位置、使用各种终端获取应用服务。
  • 低成本:由于云的特殊容错措施可以采用极其廉价的节点来构成云,云的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,云的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受云的低成本优势。

云计算的商业驱动力

  1. 容量规划:指确定和满足一个组织未来对IT资源、产品和服务需求的过程。重点

    • 容量(capacity):指在一段给定时间内,一个IT资源能够提供的最大工作量。
    • 过度配置:IT资源容量远高于需求,导致系统效率低下。
    • 配置不足:IT资源容量低于需求,导致无法满足用户需求。
    • 重点:将IT资源容量与其需求之间的差异最小化,以获得预期的效率和性能。

    容量规划的类型重点

    • 领先策略(Lead Strategy):根据预期增加IT资源的容量。
    • 滞后策略(Lag Strategy):当IT资源达到其最大容量时增加资源容量。
    • 匹配策略(Match Strategy):当需求增加时,小幅增加IT资源容量。

    对“使用负载”变化的估计,导致容量规划颇具挑战性:

    • 若按峰值负载配置IT资源,会出现不合理的资金投入。
    • 有限的资金投入,会导致因使用限度降低而出现交易损失和使用受限。
  2. 降低成本

    • IT成本与业务性能之间的平衡很难保持。
    • IT环境的扩展总是与对其最大使用需求的评估相对应,这可以让不断增加的投资自动支持新的、扩展的业务。
    • 大部分所需资金都注入到基础设施的扩建中,因为给定的自动化解决方案的使用潜力,总是受限于底层基础设施的处理能力。

    成本的类型重点

    • 获得新基础设施的成本(前期成本)
    • 保有其所有权的成本(保有成本)(保有成本可能超过前期成本)
      与基础设施相关的运营开销在IT预算中占相当大一部分,往往超过了前期投资成本。

    与基础设施相关的运营成本

    • 为保证环境正常运行所需的技术人员
    • 引入额外测试和部署周期的更新和补丁
    • 电源和制冷所需的水电费和资金支出。
    • 维护和加强基础设施资源保护的安全和访问控制措施
    • 为跟踪许可证和支持部署安排所需要的行政和财务人员
  3. 组织灵活性:是组织对变化响应程度的衡量

    • IT企业常常需要应对行业变化,通常采用的措施是在原来预期或者计划的IT资源规模上进行扩展。
    • 变化的业务需求优先级也会要求IT资源具备更高的可用性和可靠性。

云计算的技术创新:了解

  • 集群化
  • 网格计算
  • 虚拟化

云计算的概念:了解

  • 用户视角:云计算是由第三方通过互联网提供的计算服务,用户只需关心云所提供的服务。
    • 云计算平台提供用户亟需的硬件服务、软件服务、数据资源服务,而且还能向用户提供可配置的平台服务
    • 用户按需向平台提交自己的硬件配置、软件安装、数据访问其他计算需求支付一定的费用后即可使用。
  • 云计算提供商视角:解决三个实质问题
    • 大规模问题:(1)云计算由数据中心支持,其聚集大量计算资源;(2)云计算也能够支撑大规模的、互联网级别的数据和应用。
    • 低成本问题:给客户带来成本上的优势。
    • 服务运营问题:通过无差别的存储计算能力提供公共基础服务,服务运营的本质是按量付费、弹性扩展,并解决多租户环境的安全问题。
  • 平台技术角度:云计算聚集了多种技术。
    • 从计算角度:云计算是由一组内部互联的物理服务器组成的并行和分布式计算系统,该系统能够根据服务提供商和客户之间协商好的服务等级协议动态提供计算资源。
    • 从服务角度:云计算通过互联网提供弹性的硬件、软件和数据服务,它以社会化服务的形式呈现。基础设施即服务/平台即服务(IaaS/PaaS)提供商对客户提供数据中心的硬件、平台和软件服务,软件即服务(SaaS)提供商通过互联网以服务的形式给终端用户交付应用软件。
    • 从存储角度:云计算将信息永久存储在云上的服务器中,客户端只是使用时缓存。
    • 从配置角度:云是以付费使用的形式向用户提供各种服务的分布式计算系统,其本质是一个对虚拟化的计算和存储资源池进行动态部署、分配、实时监控,从而向用户提供满足要求的计算服务、数据存储服务、平台服务的系统。

云计算基本术语:了解

  • IT资源(IT Resource):指一个与IT相关的物理或虚拟的事物。
    • 可以是基于软件的,比如虚拟服务器或定制软件程序。
    • 可以是基于硬件的,比如物理服务器或网络设备。
  • 企业内部的(on-premise):指不基于云的可控的IT环境
    • 一个内部的IT资源可以访问一个基于云的IT资源,并与之交互。
    • 一个内部的IT资源可以被迁移到云中,从而成为一个基于云的IT资源。
    • IT资源既可以冗余部署在内部环境中,也可以在云环境中。
  • 云用户:使用基于云的IT资源的一方。
  • 云提供者:提供基于云的IT资源的一方。
  • 可扩展性:指IT资源可以处理增加或减少的使用需求的能力。重点
    • 水平扩展(horizontal scaling):指分配和释放IT资源,其中分配资源称为向外扩展(scaling out),释放资源称为向内扩展(scaling in)。
    • 垂直扩展(vertical scaling):指现有IT资源被具有更大或更小容量的资源代替,分别称为向上(scaling up)扩展和向下(scaling down)扩展。
  • 云服务(cloud service):指任何可以通过云远程访问的IT资源
    • 并非云中所有IT资源都可以被远程访问,比如云中的数据库或物理服务器只能被本云的其它IT资源访问。
    • 公开发布的API可以专门部署为允许远程客户访问。
  • 云服务用户(cloud service consumer):是一个临时的运行时角色,由访问云服务的软件程序承担。

目标和收益:

  • 降低的投资与成比例的开销:云环境由相当广泛的基础设施组成,提供了“按使用付费”模式租赁的IT资源池,即IT资源仅根据实际使用情况付费。与相同的企业内部环境相比,云具备减少初期投资,以及与可测使用情况成正比的运营成本的能力。
  • 提高的可扩展性:扩展IT资源是云的固有能力,这能让使用云的企业适应无法预测的使用变化,不会因为受限于预设的阈值而拒绝用户请求。相反,按需减少资源扩展也是云的一个功能,它直接与成比例的成本收益相关。
  • 提高的可用性和可靠性:利用云环境使IT资源变的高度可用和可靠,企业能向用户提供更高的服务质量保证,同时,还能进一步降低或避免出现意外运行故障时可能带来的损失。

风险与挑战:了解

  • 增加的安全漏洞:云环境会引入不同的安全挑战,其中的一些与信任边界重叠有关,这些重叠是由于多个云用户共享一个云提供者的IT资源造成的。
  • 降低的运营管理控制:根据云提供者在其平台上提供的控制,云用户的运营控制受限于云环境。
  • 云提供者之间有限的可移植性:云的私有特征可能会抑制云IT资源的移植。
  • 多地区法规遵循和法律问题:当数据和IT资源被第三方云提供者处理时,其地理位置可能会可能会引起各种法律和法规问题。

二、基本概念与模型

角色与边界了解

  • 云提供者(cloud provider):提供基于云的IT资源的组织机构。

    • 云提供者要依据SLA保证,负责向云用户保证云服务可用。
    • 提供必要管理和行政职责,保证整个云基础设施的持续运行。
    • 云提供者通常拥有IT资源,但也会转售从其它云提供者那里租来的IT资源。
  • 云用户(cloud consumer):是组织机构或人,他们与云提供者签订正式合同或者约定,使用云提供者提供的可用的IT资源。

    • 云用户使用云服务用户(a cloud service consumer)来访问云服务。
      alt text
  • 云服务(cloud service):指任何可以通过云远程访问的IT资源。

  • 云服务拥有者(cloud service owner):在法律上拥有云服务的个人或组织。

    • 云服务拥有者可以是云用户,也可以是拥有该云服务所在云的云提供者
      alt text
      alt text
  • 云资源管理者(cloud resource administrator):负责管理基于云的IT资源(包括云服务)的人或组织。

    • 云资源管理者可以是云服务所属的云的云用户云提供者
      alt text
      alt text
    • 云资源管理者可以是签订了合约来管理基于云的IT资源的第三方组织
  • 其他角色:

    • 云审计者(cloud auditor):对云环境进行独立评估的第三方,典型责任包括安全控制评估、隐私影响以及性能评估,主要目的是提供对云环境的公平评价(和可能的背书),帮助加强云用户和云提供者之间的信任关系。
    • 云代理(cloud broker):承担管理和协商云用户和云提供者之间的云服务使用的责任,其提供的仲裁服务包括服务调解、仲裁。
    • 云运营商(cloud carrier):负责提供云用户和云提供者之间的线路级连接,通常由网络和电信提供商担任。
  • 组织边界(organizational boundary):是一个物理范围,指由一家组织拥有和管理的IT资源集合。

    • 组织边界表示该组织的IT资产和IT资源,不表示组织实际的边界。
      alt text
  • 信任边界(trust boundary):是一个逻辑范围,通常会跨越物理边界,表明IT资源受信任的程度。

    • 当组织角色是云用户时,要访问基于云的IT资源时,需要将信任扩展到该组织的物理边界之外,把部分云环境包括进来。
      alt text

云特性了解

  • 按需使用(on-demand usage):云用户可以单边访问基于云的IT资源,给予用户自助提供IT资源的自由。一旦配置好了,对自助提供的IT资源的访问可以自动化,不再需要云用户或云提供者的介入。
  • 泛在接入(ubiquitous access):即随处访问,允许基于云的服务能够被各种云服务用户访问,是一个云服务可用被广泛访问的能力。实现泛在接入可能需要支持一组设备、传输协议、接口和安全技术。
  • 多租户(multitenancy) :一个软件程序的实例能够服务不同用户(租户),租户之间互相隔离,通常通过虚拟化技术实现。
  • 弹性(elasticity):云根据运行时条件,或云用户或云提供者事先确定的要求,自动透明的扩展IT资源。这是采用云计算的核心理由。
  • 可测量的使用(measured usage):是云平台记录对IT资源使用情况的能力,根据记录的内容,云提供者只对云用户实际使用的和/或被授予IT资源访问的时间段进行收费。
  • 可恢复性(resilient computing):是一种故障转移形式,它在多个物理位置分放IT资源的冗余实现。当一个资源出现故障时,就自动转移到另一个冗余实现上处理。

云交付模型(cloud delivery model):是云提供者提供的具体的、事先打包好的IT资源组合。

  • 基础设施即服务(IaaS):基础设施可以包括硬件、网络、连通性、操作系统、以及其他一些原始的IT资源,这些资源是虚拟化的并打包成包,使得运行时扩展和定制基础设施变的简单。IaaS向云用户提供对基于“原始的”基础设施IT资源的高等级管理控制。
  • 平台即服务(PaaS):是预先定义好的就绪可用(ready-to-use)的环境,一般由已经部署好和配置好的IT资源组成。云用户可以使用这个环境来构建和部署云服务和解决方案,不过管理控制权有所下降。
  • 软件即服务(SaaS):把软件程序定位成共享的云服务,作为“产品”或通用工具进行提供,这些共享云服务可以是云承载的商业产品。特点:订阅制、无需安装和维护、随时随地访问、自动更新和升级
    alt text
  • 存储即服务(Storage as a Service)
  • 数据库即服务(Database as a Service)
  • 安全即服务(Security as a Service)
  • 通信即服务(Communication as a Service)
  • 集成即服务(Integration as a Service)
  • 测试即服务(Testing as a Service)
  • 处理即服务(Process as a Service)

云部署模型

  • 公有云(public cloud):由第三方云提供者拥有的可公共访问的云环境。公有云里的IT资源通常是按照事先描述好的云交付模型提供的,一般需要付费才能提供给云用户使用。
  • 社区云:类似于公有云,只是访问被限制在特定的云用户社区,社区云用户成员通常共同承担定义和发展社区云的责任。社区成员不一定能够访问或控制云中的所有IT资源。
  • 私有云:由一家组织单独拥有。私有云使得组织把云计算技术当做一种手段,可以集中访问不同部分、位置或部门的IT资源。
  • 混合云:由两个或者更多不同部署模型组成的云环境,如云用户把敏感信息部署在私有云,非敏感信息部署在公有云。
  • 虚拟私有云:又称专有云或托管云,由公有云提供者托管或管理,仅对一个用户可用。
  • 互联云:基于两个或更多互相连接起来的云组成的架构。

三、云使能技术

Internet服务提供者(Internet Service Provider, ISP)了解

  • Internet组织
  • Internet拓扑
  • 云用户和云提供者的通信
  • 互联架构的两个基本组成部分
    • 无连接分组交换
    • 基于路由器的互联

数据中心:是一种特殊的IT基础设施,用于集中放置IT资源,如服务器、数据库、网络、通信设备和软件系统
数据中心技术:了解

  • 虚拟化:数据中心包含了物理和虚拟的IT资源
    • 物理IT资源层:放置计算/网络系统和设备,以及硬件系统及其操作系统的基础设施。
    • 虚拟层:对资源进行抽象和控制,通常由虚拟化平台上的运行和管理工具构成,将物理计算和网络IT资源抽象为虚拟化部件,以便于进行资源分配、操作、释放、监视和控制。
  • 标准化和模块化
    • 以硬件为基础,用模块化架构进行设计,整合多个相同的基础设施模块和设备,具备可扩展性、可增长性和快速更换硬件的特点。
    • 模块化和标准化是减少投资和运营成本的关键条件,因为它们能实现采购、收购、部署、运营和维护的规模经济。
  • 自动化
    • 将供给、配置、打补丁和监控等任务进行自动化。
  • 远程操作和管理
    • 在数据中心,IT资源的大多数操作和管理任务都是远程进行的,除非执行特殊任务,如设备处理、布线或者硬件级的安装与维护。
  • 高可用性
    • 采用高冗余实现高可用性,如冗余不间断电源(UPS)、综合布线、环境控制子系统;通信链路、集群硬件等。
  • 安全的设计、操作和管理
    • 对物理和逻辑的访问控制,及数据恢复策略要求高。
  • 配套设施
    • 数据中心的配套设施放置在专门设计的房间,配备了专门的计算设备、存储设备和网络设备。这些设施分为几个功能布局区域以及各种电源、布线和环境控制站等,用于控制供暖、通风、空调、消防和其它相关子系统。
  • 计算硬件
    • 机架式服务器设计:由含有电源、网络、内部冷却线路的标准机架构成。
    • 支持不同的硬件处理架构,如x86-32位、x86-64位和RISC。
    • 在大小如标准机架一个单元格空间上,可以容纳一个具有几百个处理器内核的高效能多核CPU
    • 冗余且可热插拔的组件,如硬盘、电源、网络接口和存储控制器卡。
  • 存储硬件
    • 硬盘阵列(hard disk array):这些阵列本身就进行了划分,并在多个物理硬盘间进行数据复制,利用备用磁盘提升性能和冗余度。这项技术一般利用独立磁盘冗余阵列(RAID)方式,通常使用硬件磁盘阵列控制器来实现。
    • I/O高速缓存(I/O caching):通常由硬盘阵列控制器完成,通过数据缓存来降低磁盘访问时间,提高性能。
    • 热插拔硬盘(hot-swappable hard disk):无需关闭电源,即可安全地从磁盘阵列移除硬盘。
    • 存储虚拟化(storage virtualization):通过虚拟化硬盘和存储共享来实现。
    • 快速数据复制机制(fast data replication mechanism):包括快照(snapshotting)和卷克隆(volume cloning)。快照是将虚拟内存保存到一个管理程序可读的文件中,以备将来重新装载。卷克隆是指复制虚拟或物理硬盘的卷和分区。
  • 网络硬件
    • 运营商和外网互联:这是与网络互联基础设施相关的子系统,这种互联通常由主干路由器和外围网络安全设备组成。其中,主干路由器提供外部WAN连接与数据中心LAN之间的路由;外围网络安全设备包括防火墙和VPN网关。
    • Web层负载均衡和加速:包括Web加速设备,如XML预处理器、加密/解密设备以及进行内容感知路由的第7层交换设备。
    • LAN光网络:内部LAN是光网络,为数据中心所有联网的IT资源提供高性能的冗余连接。这些先进的网络交换机还可以实现多个虚拟化功能,如将LAN分隔为多个VLAN、链路聚合、网络间的控制路由、负载均衡,以及故障转移。
    • SAN(storage area networking)光网络:通常由光纤通道(FC)、以太网光纤通道(FCoE)和无限带宽(InfiniBand)网络交换机实现。
    • NAS(网络存储器)网关:这个子系统为基于NAS的存储设备提供连接点,提供实现协议转换的硬件,以便实现SAN和NAS设备之间的数据传输。

虚拟化技术:虚拟化是将物理IT资源转换为虚拟IT资源的过程 重点

  • 例如:
    • 服务器(server):一个物理服务器可以抽象为一个虚拟服务器。
    • 存储设备(storage):一个物理存储设备可以抽象为一个虚拟存储设备或一个虚拟磁盘。
    • 网络(network):物理路由器和交换机可以抽象为逻辑网络,如VLAN。
    • 电源(power):一个物理UPS和电源分配单元可以抽象为通常意义上的虚拟UPS
  • 虚拟化的分类
    • 基于硬件的虚拟化:将虚拟化软件直接安装在物理主机硬件上,从而绕过宿主操作系统,这也适用于基于操作系统的虚拟化。
      alt text
    • 基于操作系统的虚拟化:在一个已存在的操作系统上安装虚拟化软件,这个已存在的操作系统称为宿主操作系统(host operating system)。
      alt text
  • 虚拟化管理
    • 通常由虚拟化基础设施管理(Virtualization Infrastructure Management, VIM)工具予以实现。

虚拟化的特点:

  • 在虚拟服务器上运行的客户操作系统和应用软件,都不会感知到虚拟化的过程
  • 硬件无关性
    • 在一个IT硬件平台上配置操作系统和安装应用软件会导致许多软硬件依赖关系,非虚拟环境下硬件的变化,将导致操作系统的重新配置。
  • 服务器整合(分区)
    • 虚拟化软件提供的协调功能,可以在一个虚拟主机上同时创建多个虚拟服务器
    • 虚拟化技术允许不同虚拟服务器共享一个物理服务器,这就是服务器整合(server consolidation)。
  • 隔离
    • 在同一服务器上的虚拟机之间互相隔离,改变了之前单台物理机服务器只能挂单个应用的格局。
  • 资源复制:创建虚拟服务器就是生成虚拟磁盘映像,它是硬盘内容的二进制文件副本。主机操作系统可以访问这些文件,因此简单的文件操作就可以实现虚拟服务器的复制、迁移和备份,这种方便性有助于实现以下功能:
    • 创建标准化虚拟机映像,通常包含了虚拟硬件功能、客户操作系统和其它应用软件,将这些内容预打包到虚拟磁盘映像,以支持瞬时部署。
    • 增强迁移和部署虚拟机新实例的灵活性,以便快速向外和向上扩展。
    • 回滚功能,将虚拟服务器内存状态和硬盘映像保存到基于主机的文件中,可以快速创建VM快照。
    • 支持业务连续性,具有高效的备份和恢复程序,可以创建多个关键IT资源和应用实例。
  • 其他特点:
    • 性能开销(performance overhead):对于高工作负载,又较少使用资源共享和复制的复杂系统而言,虚拟化可能并不是理想的选择。
    • 特殊硬件兼容性(special hardware compatibility):虚拟化软件不能兼容硬件厂商的专门硬件,或者软件自身与近期发布的硬件版本不兼容。
    • 可移植性(portability):虚拟化程序的兼容性带来的编程和管理接口的移植问题。

Web技术了解

  • WWW是由通过Internet访问的互联IT资源构成的系统,其两个基本组件是Web浏览器客户端和Web服务器。Web技术架构由三个基本元素组成:
    • 统一资源定位符(Uniform Resource Locator, URL):一个标准语法,用于创建指向Web资源的标识符,URL通常由逻辑网络位置构成。
    • 超文本传输协议(Hypertext Transfer Protocol, HTTP):通过WWW交换内容和数据的基本通信协议,通常,URL通过HTTP传送。
    • 标记语言(Markup Language, HTML/XML):标记语言提供一种轻量级方法来表示以Web为中心的数据和元数据。HTML(表示Web页面的样式)和XML(允许定义词汇表,以便通过元数据对Web数据赋以意义)是两种主要标记语言。

多租户技术

  • 目的
    • 使多个用户在逻辑上同时访问同一个应用,每个用户对其使用、管理和定制的应用程序都有自己的视图,是该软件的一个专有实例,同时每个租户都意识不到还有其他租户在使用该应用。
  • 每个租户可定制的应用特性
    • 用户界面(user interface):租户可以定义具有专门界面外观的应用接口。
    • 业务流程(business process):在实现应用时,租户可以定制业务处理的规则、逻辑和工作流。
    • 数据模型(data model):租户可以扩展应用的数据模式,以包含、排除或者重命名应用数据结构的字段。
    • 访问控制(access control):租户可以独立控制用户或群组的访问权限。
  • 特点:
    • 使用隔离(usage isolation):一个租户的使用行为不会影响到该应用对其他租户可用性和性能。
    • 数据安全(data security):租户不能访问其他租户的数据。
    • 可恢复性(recovery):每个租户的数据备份和恢复过程都是分别执行的。
    • 应用升级(application upgrade):共享软件构件的同步升级不会对租户造成负面影响。
    • 可扩展性(scalability):根据现有租户增长的使用需求或租户数量增加来扩展应用。
    • 使用计费(metered usage):根据租户实际使用的应用处理和功能来收费。
    • 数据层隔离(data tier isolation):租户拥有独立的且与其他租户隔离的数据库、表格和模式。

四、基本云安全

含义:了解

  1. 云计算安全:保护云计算本身的安全性
  2. 安全云:安全成为云计算的一种服务

概念:
安全需求重点

  • 基本安全需求:保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。简称CIA
  • 延伸安全需求:真实性(Authenticity)、不可抵赖性(Non-Repudiation)、可问责性(Accountability)
  1. 保密性(confidentiality)
    • 定义:指事物只有被授权才能访问的特性。云环境中的保密性,主要是关于对传输存储的数据进行访问限制的。
    • 防御措施
      • 数据加密:智能家居中,若智能电表的用电数据没有良好加密,则不法分子可利用这些用电数据推断用户的习惯,从而猜测用户当前是否在家
      • 访问控制:在云存储服务中,企业可能将员工分为不同的角色,每个角色有不同的数据访问权限。
  2. 完整性(integrity)
    • 定义:指未被未授权方篡改的特性,一个比较重要的问题是传送到云服务的数据和云服务接收到的数据完全一致。
      • 数据完整性:信息在存储或传输的过程中保持未经授权不能篡改的特性。
      • 系统完整性:确保系统免于未经授权的操作,预期功能不受损害,也可理解为系统的功能可以可靠正确地实现。
    • 防御措施
      • Hash 函数
      • 数字签名
      • 消息认证码
  3. 可用性(availability)
    • 定义:指特定时间段内可以访问和可以使用的特性。
      • 云服务的可用性是云提供者和云运营商共同的责任。
      • 当基于云的解决方案扩展到云服务用户时,可用性也是云用户的责任。
    • 攻击手段
      • 拒绝服务攻击(DoS)
      • 分布式拒绝服务攻击(DDoS)
  4. 真实性(authenticity)
    • 定义:指事物是由经过授权的源提供的特性 or 能够识别/实体认证及确定数据来源
      真实性提供了一种证明,证明这些交互是否是唯一链接到一个经过授权的源的,这意味着系统需要验证用户或设备的身份,该验证过程称为“认证”。
    • 实现方法:认证、数字签名、公钥基础设施(PKI)等
  5. 不可抵赖性(Non-Repudiation)
    • 指通信双方在信息交互过程中,确信参与者本身,以及参与者所提供的信息的真实同一性,即所有参与者都不可能否认或抵赖本人的真实身份,以及提供信息的原样性和完成的操作与承诺。
  6. 可问责性(Accountability)
    • 指对特定行为能唯一地跟踪到行为主体,是一项综合的安全需求。
      系统的绝对安全是一个不可达到的目标,因此需要将破坏安全的行为追溯到责任方,以便于后续的责任追溯以及纠纷解除。可以对破坏安全属性行为的威慑,帮助故障排除,入侵检测与防御,事后恢复等。
    • 实现方法:身份认证,日志记录和审计,访问控制,不可否认性

威胁作用者(threat agent):是引发威胁的实体,因为它能够实施攻击。需要知道

  • 匿名攻击者(anonymous attacker):是云中没有权限、不被信任的云服务用户。常试图从云边界的外部进行攻击。
    • 它通常是一个外部软件程序,通过公网发动网络攻击。
    • 当匿名攻击者对安全策略和防护所知有限时,会抑制他们形成有效攻击的能力
    • 匿名攻击者往往诉诸绕过用户账号或窃取用户证书的手段,同时使用能确保匿名性或需要大量资源才能被检举的方法。
  • 恶意服务作用者(malicious service agent):能截取并转发云内的网络流量。试图恶意地使用篡改数据。
    • 它通常是带有被损害的或恶意逻辑的服务代理(或伪装成服务代理的程序)。
    • 也可能是能够远程截取并破坏消息内容的外部程序。
  • 授信的攻击者(trusted attacker):又称恶意租户(malicious tenant),是经过授权的云服务用户,与同一云环境中的云用户共享IT资源,试图利用合法的证书来把云提供者、以及与他们共享IT资源的云租户作为攻击目标。
    • 通过滥用合法证书、挪用敏感和保密信息,在云的信任边界内部发动攻击。
    • 恶意租户能够使用基于云的IT资源做很多非法之用,包括非法入侵认证薄弱的进程、破解加密、往电子邮件账号发送垃圾邮件、发起拒绝服务等常见的攻击等。
  • 恶意的内部人员(malicious insider):是人为的威胁作用者,他们的行为代表云提供者,或者与之有关。他们是试图滥用对云资源范围的访问特权的人。
    • 他们通常是现任或前任雇员,或是能够访问云提供者资源范围的第三方。
    • 这种类型的威胁作用者会带来极大的破坏可能性,因为恶意的内部人员可能拥有访问云用户IT资源的管理特权。

云安全威胁重点

  • 流量窃听(traffic eavesdropping):指当数据在传输到云中或在云内部传输时(通常是从云用户到云提供者),被恶意服务作用者被动地截获,用于非法的信息收集,破坏保密性。由于这种攻击被动的性质,其更容易长时间进行而不被发现。
  • 恶意中间人/恶意媒介(malicious intermediary):是指消息被恶意服务作用者截获并篡改,因此可能会破坏消息的保密性完整性
  • 拒绝服务(DoS):攻击的目标是使IT资源过载至无法正确运行,破环可用性,发起形式包括:
    • 云服务上的负载由于伪造的消息或重复的通信请求不正常的增加。
    • 网络流量过载,降低了响应性,性能下降。
    • 发出多个云服务请求,每个请求都设计成消耗过量的内存和处理资源。
  • 授权不足:是指错误的授予了攻击者访问权限,或是授权太宽泛,导致攻击者能够访问本应该受到保护的IT资源。
    • 这种攻击的一种变种称为弱认证(weak authentication),如果用弱密码或共享账户来保护IT资源,就可能导致这种攻击。
  • 虚拟化攻击(Virtualization attack):利用虚拟化平台的漏洞获得了对底层物理硬件未被授权的访问,危害虚拟化平台的保密性完整性可用性。例如:虚拟机逃逸攻击。
  • 信任边界重叠:如果云中的物理IT资源是由不同的云服务共享的,那么这些云服务用户的信任边界是重叠的。恶意的云服务用户可以把目标设定为共享的IT资源,意图损害其他共享同样信任边界的云服务用户或IT资源。

五、云基础设施机制

云基础设施机制是云环境的基础构建块,它是形成基本云技术架构基础的主要构件。
逻辑网络边界:将一个网络环境与通信网络的其他部分分割开来,形成一个虚拟网络边界,包含并隔离了一组关于云的IT资源,这些资源可能是分布式的。

  • 作用:

    • 将云中的IT资源与非授权用户隔离
    • 将云中的IT资源与非用户隔离
    • 将云中的IT资源与云用户隔离
    • 控制被隔离IT资源的可用带宽
  • 实现隔离机制的网络设备有:

    • 虚拟防火墙(virtual firewall):一种IT资源,可以主动过滤被隔离网络的流量,并控制其与Internet的交互。
      • 技术特点:
        1. 每个虚拟防火墙独立维护一组安全区域。
        2. 每个虚拟防火墙独立维护一组资源对象(地址/地址组、服务/服务组等)。
        3. 每个虚拟防火墙独立维护自己的包过滤策略。
        4. 每个虚拟防火墙独立维护自己的 NAT 策略、ALG 策略。
        5. 可限制每个虚拟防火墙占用的资源数
    • VLAN(虚拟局域网)、VPN(虚拟专用网络)
      • 虚拟专用网络(virtual private network, VPN):虚拟专用网络(VPN)是一种通过公用网络(例如Internet)连接专用网络(例如办公室网络)的方法。
      • VPN系统的主要特点
        1. 安全保障
        2. 服务质量保障
        3. 可扩充性和灵活性
        4. 可管理性

通过防火墙我们可以将网络划分为三个区域:安全级别最高的LAN Area (内网), 安全级别中等的DMZ区域(Demilitarized Zone,非军事区)和安全级别最低的Internet区域(外网)。了解

虚拟服务器:一种模拟物理服务器虚拟化软件。通过提供独立的虚拟服务器,可以实现多个用户共享一个物理服务器。从映像文件进行虚拟服务器的实例化是一个可以快速且按需完成资源分配过程。重点

  • 虚拟基础设施管理器(Virtual Infrastructure Manager, VIM)
    • 具有多种功能,包括:
      • 资源管理
      • 监控与性能优化
      • 自动化管理
      • 安全性管理
      • 弹性伸缩
      • 多租户管理
    • alt text
  • 虚拟服务器的特性
    • 多实例:一台物理机上可以运行多个虚拟服务器
    • 隔离性:虚拟服务器可以将同一台物理服务器上的多个虚拟机完全隔离开来, 多个虚拟机之间就像多个物理机器之间一样。
    • 封装性:虚拟机都保存在文件中,且可通过移动跟复制这些文件的方式来移动跟复制该虚拟机。
  • 虚拟服务器的优点
    • 实时迁移
    • 快速部署
    • 高兼容性
    • 提高资源利用率
    • 动态调动资源

云存储设备:专门为云配置所设计的存储设备。重点

  • 云存储等级:指数据存储的逻辑单元
    • : 存储的最低等级,最接近硬件,是可被独立访问数据的最小单位,存储效率最高。
      • 常被分配给云服务器和虚拟机使用,也被用来存储大型数据。
    • 文件:数据集合分组存放在文件夹中的文件里。数据以文件的形式存储在文件系统中,通过文件路径进行访问。可以包括各种类型数据:文本、图片、音视频等。
    • 数据集:基于表格、以分隔符分割或以记录形式组织的数据集合。以表格的形式展示;用于存储结构化数据;便于组织和分析。
    • 对象:将数据及相关的元数据组织为Web的资源。通常以唯一的标识符来标识和访问;用于存储大规模的非结构化数据。存储灵活性、可拓展性、可靠性高,同时成本较低。

alt text

  • 网络存储接口
    • 文件存储块存储通常通过网络存储接口来访问。
    • 文件存储需要将独立的数据存入不同的文件,当数据发生变化时,原来的文件要被生成的新文件替换。
    • 云存储设备机制是基于文件接口时,数据搜索和读取性能很可能不是最优的。存储水平和阈值都是由文件系统本身决定。
    • 不论是逻辑单元号(LUN)还是虚拟卷,块存储与文件集存储相比,拥有更好的性能
  • 对象存储接口
    • 各种类型的数据可以作为Web资源被引用和存储。
    • 实现这种接口的云存储设备机制通常可以通过以HTTP为主要协议的REST基于Web服务的云服务来访问。
  • 数据库存储接口
    • 关系数据存储
      • 依靠表格,将相似的数据组织为行列的形式,表格之间的关系可以用于保护数据的完整性,避免冗余(规范化)。
      • 基于云的关系数据库的主要挑战来自于扩展和性能。
        • 垂直扩展比水平扩展更加复杂。
        • 远程访问时,大量数据的表可能会出现更高的处理开销和延迟。
    • 非关系数据存储(NoSQL):
      • 采用更松散的结构存储数据,避免关系数据库带来可能的复杂性和处理成本,可以进行更多的水平扩展
      • 非关系存储倾向于不支持关系数据库的功能,如事务或连接。
      • 将规范化数据导出到非关系存储后,数据大小一般会增加
      • 非关系数据存储机制是专有的,严重限制了数据的可移植性
  • 云存储设备的主要问题在于数据的安全性完整性保密性

云使用监控了解

  • 监控代理
    • 一种中间的事件驱动程序,作为服务代理驻留在已有通信路径上,对数据流进行透明的监控和分析。
    • 这种类型的云使用监控通常用来计量网络流量和消息指标。
  • 资源代理
    • 一种处理模块,通过专门的资源软件进行事件驱动的交互来收集数据。
    • 它在资源软件级上,监控预定义的且可观测事件的使用指标,比如启动、暂停、恢复和垂直扩展。
  • 轮询代理
    • 一种处理模块,通过轮询IT资源来收集云服务使用数据。
    • 通常被用于周期性地监控IT资源状态,比如正常运行时间与停机时间。

资源复制了解:在需要加强IT资源的可用性和性能时,使用资源复制技术对同一个IT资源创建多个实例。

已就绪环境了解

  • 是PaaS云交付模型定义的组件,它代表的是预定义的基于云的平台。
  • 该平台有一组已安装的IT资源(如数据库,中间件,开发工具)组成,可以被云用户使用和定制。
  • 使用这些环境在云内远程开发和配置自身的服务与应用程序。

六、虚拟化 重点

虚拟化技术概述

  • 定义:
    • 虚拟化(Virtualization)是计算机资源的逻辑表示,主要目的是使上层计算或应用与下层的资源或管理解耦,把底层资源抽象成另一种形式的资源,从而提供给上层使用和分享。
    • 虚拟机监视器(Virtual Machine Monitor)为软件和硬件的复制提供必要的机制。
    • 虚拟机本质上是一套软件系统,它和物理机(Physical Machine)可形成对应。
    • 对虚拟机来说,也存在虚拟处理器、虚拟存储、虚拟网络的概念,其中处理器(计算)虚拟化的实现最为关键。
    • 经典虚拟机的实现方式主要采取宿主型(Hosted VM),即虚拟化软件直接安装在宿主机的OS中,虚拟内存、磁盘、I/O设备的状态都被封装成专用的文件保存在宿主机上。
  • 经典虚拟机的特点
    • 多态(Polymorphism):支持多种类型的OS。
    • 重用(Manifolding):虚拟机的镜像可以被反复复制和使用。
    • 复用(Multiplexing):虚拟机能够对物理资源时分复用。

虚拟机核心原理和技术

  • 系统接口
    • 计算机系统的组建离不开各式各样的接口,接口将两个不同的对象环境联系起来,使之得以协调运行。
    • 最基本的接口是微处理器指令集架构(Instruction Set Architecture, ISA)。
    • 然而,应用程序一般不是借助于ISA直接运行在硬件平台之上的,多个软件应用一般也不完全隔离运行,它们共同运行在某个OS之上,并共享其服务。

      [硬件]指令集(ISA[OS]系统调用SysCall[函数库]应用编程接口API[应用程序][硬件] \quad\underrightarrow{指令集(ISA)}\quad [OS] \quad\underrightarrow{系统调用SysCall}\quad [函数库] \quad\underrightarrow{应用编程接口API}\quad [应用程序]

    • 应用程序二进制接口(Application Binary Interface, ABI)给程序提供使用硬件资源和系统服务的接口,ABI包括所有用户指令部分系统调用接口,应用程序和OS与硬件的交互都通过ISA接口完成,而应用程序与关键硬件资源的交互是间接的,需要OS通过系统调用方式实现。
    • 与ABI不同,应用程序接口(Application Programming Interface, API)通常由某种高层次语言定义,其关键元素是一个能够由应用程序调用来触发多种服务的系统标准库。一般来说,API的功能往往涉及一个或多个ABI层面的OS调用。
    • alt text
    • 从不同角度看机器
      • 从ISA角度看,机器可以指代整个计算机硬件架构和设备。
      • 从ABI接口层面看,机器可以指代整个硬件设备连同其上的OS。
      • 从API角度看,一个完整的机器还包括了关键的库函数。
  • 运行模式
    • 各类接口的引入对于保护多用户多程序并发运行是有极大好处的,各类应用对资源的访问是间接的,需要通过OS并借助系统调用来完成,为实现这一过程,大部分系统支持至少两种操作模式:Kernel Mode & User Mode。与之对应,ISA被设计为两大类: User ISA & System ISA。(User ISA:指对于应用程序完全可见的指令子集。System ISA:仅为具有较高监控权限的系统(如OS)可见。)
  • 虚拟机的分类
    • 从某一接口出发,通过为底层机器配置一个耦合的软件而形成的、具有新的虚拟接口的系统,就是一个虚拟机。
    • 在这个虚拟机之上,原始上层软件可以无缝的运行。
    • alt text
    • 进程级虚拟机(Process VM):是基于OS的VM,是应用程序二进制接口ABI层面设立的虚拟机,虚拟化软件需要为用户程序模拟所需要的主机硬件功能。
    • 系统级虚拟机(System VM):是基于硬件的VM,是ISA层面设立的虚拟机,虚拟化软件设置在硬件设备和软件系统之间。
    • alt text

Xen虚拟机技术

  • Xen基本组件
    • Xen Hypervisor
      • Xen虚拟机技术创造了一个基于原生态硬件的Hypervisor,它把虚拟化软件直接安装在不加任何修饰的服务器原生态硬件上。
    • Domain0
      • 对Xen来说,Hypervisor上一般运行多个客户作业系统,有个特殊的虚拟机会成为管理其它客户作业系统的高权限管理VM,Xen称它为Domain0
      • Domain0能够和Hypervisor交互,其上一般安装用于操纵底层硬件的驱动软件,可以启动或者停止虚拟机
    • DomainU
      • 与Domain0相对应,其他客户使用的是在该管理VM旁运行的客户VM,称为DomainU
      • 这种对虚拟机功能的划分也应用在Microsoft的Hyper-V虚拟化技术中,管理VM的一般称为Parent Partition,而客户VM一般称为Child Partition
  • Para-Virtualization技术
    • 全虚拟化(Full Virtualization)能够提供很好的隔绝和安全保护,以及更好的移动性,不需要硬件或OS的支持来虚拟化敏感或者特权指令。VMware的虚拟化产品和Microsoft的Virtual Server是全虚拟化的代表。
    • 为减轻虚拟化的复杂度,Xen采用了Para-Virtualization方法,该方法并不会让客户OS认为自己运行在真实独立的硬件资源上,而是要求对客户OS进行改进,使它们了解自己运行在虚拟环境下,从而采取不同的接口调用方式,因此适合于开源OS。
    • Para-Virtualization在Hypervisor里不对设备驱动器进行仿真,仅对CPU和内存做虚拟,所以又称半虚拟化准虚拟化
    • Para-Virtualization的代表性应用包括Xen和Microsoft的Hyper-V。
    • 除了OS协助的虚拟化外,还可以采用硬件协助的虚拟化技术(Hardware-Assisted-Virtualization)来实现“低特权态下发出的敏感指令”的处理,该技术以Intel VT-x与AMD-V为代表。
    • 若不考虑半虚拟化与全虚拟化在IO设备处理上的不同,硬件协助的虚拟化技术事实上已经消除了半虚拟化与全虚拟化之间的差别
  • Xen调度器
    • 每个Domain可以拥有一个或以上的虚拟CPU(vCPU),如果没有特别指定,Xen尽可能的把vCPU均匀地分布在物理CPU上。
    • 用户可以控制Domain拥有的vCPU数,或将vCPU对应到物理CPU(PCPU)上面
    • 尽量保证公平的分配,并尽可能避免CPU时钟的浪费,Domain0也受其制约。
    • 资源足够时
      • 如果目前有更多的CPU资源,所有DomainU都能获得所需的资源
    • 资源不足时调度器决定各个vCPU获得的CPU份额
      • Xen调度器给每个Domain分配一个权重(Weight),比如权重200的Domain可以获得两倍于权重100的Domain的CPU份额。
      • Xen调度器还给Domain施加了一个封顶阈值(Cap),即可以使用的最高绝对份额,用百分比表示。
      • vCPU运行时消耗Credit,当一个vCPU用光了自身的Credit,那么只有在比它优先级更高的vCPU运行结束后才能使用物理处理器。

KVM虚拟机技术

  • KVM是Kernel-based Virtual Machine的简称,是基于虚拟化扩展(Intel VT或AMD-V)的x86硬件的开源虚拟化解决方案。
  • 在KVM中,虚拟机表现为常规的Linux进程,虚拟机的每一个vCPU都被实现为一个Linux进程,使用Linux自身的调度器进行管理。
  • 一般来说,Linux的进程包括两种执行模式:内核态和用户态。用户态是应用程序运行的常见默认模式,当需要特权服务时(如硬盘写入)则进入内核态。
  • 客户机是作为一个用户态进程存在的,这个进程称为QEMU,每个客户机有自身的用户模式和内核模式。

其它资源虚拟化技术 了解

  • I/O虚拟化
    • 处理器是通过I/O设备来访问外设资源的,I/O设备的相关虚拟化称为I/O虚拟化
    • I/O虚拟化包括虚拟的芯片组、虚拟的PCI总线、虚拟的系统设备、虚拟的基本I/O设备(如网卡硬盘等)。
    • I/O虚拟化主要通过VMM截获客户OS对设备的访问请求,然后以软件模拟的方式实现真实设备的效果。主要过程包括三个方面:设备发现、访问截获、设备模拟。
    • 设备发现:可以帮助客户OS识别虚拟化设备,从而加载相关驱动程序,客户OS中的驱动会按照接口定义访问这个虚拟设备。
    • 访问截获:I/O设备的访问本身是特权指令,处于低特权的客户机访问端口I/O会抛出异常,从而陷入到VMM中,交给设备模拟器进行模拟。
    • 一些I/O虚拟化的例子包括VLAN、VT-d(Intel为I/O直接访问设计的虚拟化技术)等。
  • GPU虚拟化
    • 通用的GPU虚拟化技术目前有不同的实施方法,如显卡直通(GPU pass-through)和显卡虚拟化(Shared vGPU)。
    • 显卡直通:绕过虚拟机管理系统,为每个虚拟机分配专用的GPU设备,只有该虚拟机拥有使用GPU的权限。
      • 优点:虚拟机独占设备保留了GPU的完整性和独立性,在性能方面与非虚拟化条件下接近,且可以用来进行通用计算。
      • 缺点:不支持实时迁移等虚拟机高级特性,虚拟机整合率取决于物理GPU的数目。
    • 显卡虚拟化:将GPU资源进行细粒度切分,并将这些资源时间片段分配给不同的虚拟机使用,这其实是采用了半虚拟化I/O的方法,通过vGPU管理模块分时共享一个物理GPU。
      • 优点:使用灵活,虚拟机整合率高。
      • 缺点:性能不如显卡直通技术。

虚拟机热迁移了解

  • 虚拟机热迁移(Live Migration):又叫动态迁移或实时迁移,通常是将整个虚拟机的运行状态完全保存下来,同时可以快速恢复到原有硬件平台甚至是不同硬件平台上。
  • 这种方式能极大降低服务宕机时间和整体迁移时间,服务恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
  • 虚拟机迁移的三个步骤:
    • 传输虚拟机的基本配置和设备信息。
    • 传输虚拟机内存和关键状态。
    • 恢复目标虚拟机运行。
  • 一般来说,传输时间和虚拟机的工作内存大小成正比,传输过程中原系统服务有可能出现短暂停机。
  • 虚拟机迁移的主要方式
    • 预拷贝(Pre-Copy):需要经过初始复制、迭代复制、停机复制三个过程。
      • 初始复制:将虚拟机全部内存页面复制到目标主机。
      • 迭代复制:针对上一轮过程中源虚拟机被修改的内存文件进行复制。
      • 停机复制:将虚拟机剩余的少量没有同步内存页面和信息复制到目标主机。
      • 理想的Pre-Copy性能应该等同于内存没有被改写的停机拷贝(Stop-and-Copy)。
      • 最糟糕的情况下,可能存在较长时间的内存脏页面的迭代传送过程,引起极大的系统开销。
    • 后拷贝(Post-Copy):
      • 源主机先传输包括处理器状态在内的、能够在目标主机上运行的最小数据集。
      • 然后停止源虚拟机的运行,目的主机借助最小数据集恢复虚拟主机运行。
      • 最后通过网络从源虚拟主机获取内存页面。

检查点和热备份了解

  • 作为虚拟化的一个重要机制,检查点可以对虚拟机进行系统级的状态保存。该机制提供了将虚拟机恢复到过去状态的快速而简单的方法,并确保恢复后的虚拟机可以继续运行。
  • 可以通过周期性的制造检查点来捕获虚拟机信息,然后动态的把虚拟机信息复制到另一个备份主机上,即使原始物理机出现故障,系统也可以借助虚拟机检查点来恢复到最近状态。
  • 需要注意的是,对于虚拟机层面的检查点设置会占用大量的检查点空间,可能达到数G字节。
    • 这样大量的数据写入硬盘会不可避免的降低虚拟机的磁盘性能,或者造成和宿主机上共存应用对其他资源(CPU,I/O带宽等)的竞争。
    • 不建议在虚拟机提供时间敏感型服务时使用检查点,也不建议在存储空间的可用性至关重要时使用检查点。

虚拟化资源整合了解

  • 根据VMware的报告,在传统的“一虚拟机一负载”供给模式下,大多数服务器的利用率很低,这导致了虚拟机资源过度供给和资源利用率不高。
    • 服务器整合(Server Consolidation)是借助虚拟化来实现多应用对物理服务器的共享,提升资源利用率。
      • 每个子系统被封装在虚拟机内,并集中部署。
      • 服务器整合:寻找适合的候选虚拟机,根据应用程序推断整合方案,跟踪整合后的应用程序性能,并调整资源利用方式。
    • 服务器整合比(Consolidation Ratio)指一台物理机上部署的虚拟机的数量(2010年 一般10:1。理想18:1)
    • 整合比不是越高越好,把过量的虚拟机安置在资源有限的物理机上,会导致系统性能的极大下降,增加运维难度,还会增大能源消耗。

虚拟机蔓延管控

  • 随着虚拟机数量飞速增长,回收虚拟化的计算资源清理非正常虚拟机的工作变得越来越困难,这种不受控制的虚拟机繁殖被称为虚拟机蔓延(VM Sprawl)。
  • 虚拟机蔓延的表现形式:
    • 虚胖虚拟机:虚拟机被过度配置,如规划了过高的CPU、内存和存储容量等。
    • 幽灵虚拟机:虚拟机的创建没有经过符合规程的审核和验证,造成不必要的系统配置,或者由于业务需求需要保留一定数量的冗余虚拟机。这些虚拟机弃用后,导致人们不知道这些虚拟机创建的原因,不敢删除回收,任其消耗资源。
    • 僵尸虚拟机文件:许多虚拟机虽然被停机了,但由于生命周期管理流程的缺陷,相关虚拟机镜像文件依然保留在硬盘上。有时出于可靠性的考虑,文件可能还存在许多副本,这些僵尸资源占据着大量服务器存储资源。
  • 解决虚拟机蔓延的关键在于优化对虚拟机全生命周期的管控,可概括为3R:
    • 降低(Reduce):减少不必要的虚拟机供给,包括减少缺乏认证的过度供给的虚拟机资源,降低虚拟机资源的浪费,这能够极大的提升投资回报率。
    • 重用(Reuse):意味着不止一次的使用虚拟机资源,无论每次使用是否做同样的工作。对于虚拟化基础设施来说,资源的重用能极大提升利用率。
    • 回收(Recycle):回收过程包括收集、处理、重生产和重使用。对于回收过程来说,如何准确的确定不再活跃的虚拟机是个非常有挑战的问题。

弹性伸缩

  • 弹性伸缩(Elastic Compute Cloud, EC2)是云计算平台的一个关键特性,指根据用户的业务需求和发展策略,系统能自动调整其所需的计算资源的能力。
  • 有了弹性伸缩技术,用户可以在业务需求高峰时无缝的增加ECS(Elastic Compute Service)实例,并在业务需求下降时自动减少ECS实例以节约成本
    • 利用垂直扩展,可以实时升级CPU和内存,实时升级带宽。
    • 利用水平扩展,可以实时创建新的实例,完成任务后,可以立刻销毁这些实例

七、虚拟化-KVM 重点

KVM虚拟化技术产生的背景:为了解决QEMU功能强大,兼容性高但性能较差以及Xen性能高但兼容性较差的问题,实现一种性能好,兼容性也好的虚拟化技术。
KVM优缺点:

  • 优点:
    • 官方支持:广泛支持主要的Linux发行版,如RHEL, CentOS, Fedora, Debian和Ubuntu
    • 轻量且高效:作为Linux内核的一部分,无需额外的虚拟化层
    • libvirt支持:通过libvirt提供强大的管理能力和工具生态系统
    • Linux集成:与Linux内核紧密集成,提供自动化安装和配置
  • 面临的挑战:
    • 成熟度:作为一个较新的技术,相比其他虚拟化技术,KVM在某些地方可能还不够成熟
    • 宿主系统限制:主要在Linux宿主上运行
    • 图形界面工具:图形用户界面(GUI)工具相比其他虚拟化方案还在持续发展中

KVM特征:

  • 客户机操作系统兼容性:Windows、Linux、BSD、Solaris、macOS…
  • 硬件兼容性:任何具备AMD-V或Intel VT-x技术的i386/x86_64架构CPU。近几年出售的几乎所有服务器CPU都兼容。
  • 内核模块
    • kvm.ko是KVM的核心公共模块
    • kvm-intel.ko是针对Intel平台架构的独立模块
    • kvm-amd.ko是针对AMD平台架构的独立模块
  • QEMU-KVM设备模拟模块
    • 实现IO虚拟化与各设备模拟(磁盘、网卡、显卡、声卡等),通过IOCTL系统调用与KVM内核交互。
  • alt text

KVM的虚拟化管理工具

  • 认识Libvirt:KVM的管理引擎
    • Libvirt是一个开源API库,用于管理各种虚拟化解决方案。
    • 提供了统一的管理界面,使得用户可以不依赖底层技术进行虚拟机管理。
    • 包括一个守护进程(libvirtd)
    • 支持多种虚拟化技术,包括KVM、Xen、QEMU、OpenVZ等。
  • Libvirt的主要功能
    • 创建、修改、监控和控制虚拟机和虚拟化环境。
    • 管理网络和存储资源。
    • 支持迁移虚拟机以及保存和恢复虚拟机状态。
  • Libvirt的优势
    • 抽象化虚拟化细节,提供简化的虚拟化管理。
    • 强大的命令行界面(virsh)和图形用户界面工具,如Virt-Manager。
    • 可以通过多种编程语言的API进行扩展和集成。

KVM实践

  • 安装Guest OS
    1
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name vm01-host01 --memory 1024 --vcpus 1 --disk /opt/vm01-host01.raw, format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-2207-02 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
  • 连接客户机方式 了解
    • vnc
      • 优点:可以远程访问图形用户界面
      • 缺点:每个vm需在宿主机配置端口、和宿主机终端界面分离
    • 直接使用Xshell
      • 优点:提供加密安全性高
      • 缺点:不提供图形用户界面、vm网络不佳卡顿、需vm网络配置和IP地址
    • 图形控制台:virt-manager
      • 优点:提供图形界面、全局把控
      • 缺点:宿主机需要安装X-manager、和宿主机终端界面分离
    • 串行控制台:console
      • 优点:网络服务未启动或配置不正确也能访问、和宿主机共用界面且切换便捷
      • 缺点:无图形界面
  • 虚拟磁盘管理和快照管理 了解
    • 虚拟磁盘文件作为虚拟机存储的基础。
    • 磁盘管理功能包括创建、调整大小和性能优化。
    • 支持多种磁盘文件格式
      • raw格式
        • 俗称裸格式,直接以二进制形式存储数据
        • 读写性能较好,适合对性能要求较高的场景
        • 占用空间较大,文件大小等于分配的总空间
        • 即使只使用一小部分空间,也需要传输整个文件,示例:总50G,用1G,传输50G
        • 不支持快照功能,无法进行增量备份(增量备份:优点在于没有重复的备份数据,缺点是可靠性欠缺)
      • qcow2格式
        • 与raw格式不同,qcow2格式基于写时复制技术,只存储实际使用的数据块和元数据
        • 节约空间,动态分配。
        • 支持快照,易于备份和恢复。
        • 方便传输,仅传输实际使用的数据量。

八、虚拟化–Docker 重点

问题1:隔离和轻量级之间的矛盾

  • 操作系统级虚拟化(Operating System Level Virtualization):是一种虚拟技术,能够实现多个相互隔离的实例共享一个操作系统内核
  • 容器(Container):包含相应应用程序组件的服务实例。
    • 在一个容器中运行的程序无法看到容器外的程序进程,包括那些直接运行在宿主机(host)上的应用和其它容器中的应用。
    • 如何实现容器之间的隔离和限制
      1. Namespace:命名空间。资源的隔离
        • 使用多个命名空间来隔离容器之间的进程、网络、文件系统等资源。每个容器都有自己的命名空间,使得不同容器之间的资源相互隔离。(不同namespace下的进程可以拥有相同的PID;可以存在嵌套关系)
        • 缺点:
          • 隔离不彻底:在某些情况下,一个进程可以通过文件描述符访问另一个容器的文件系统。
          • 有些资源和对象不能被Namespace化,如:容器中的程序调用 settimeofday() 修改了时间,整个宿主机的时间都会被修改
          • 安全问题:因为共享宿主机内核,容器中的应用暴露出来的攻击面很大。
      2. Cgroups:控制组。资源的限制
        • Linux内核中是为进程设置资源限制的重要手段
        • 把多个进程放到组里面,对组设置资源使用的权限,实现对进程的控制。
        • 具体功能
          • 资源控制,Resource Limiting:cgroup通过进程组对资源总额进行限制。如:程序使用内存时,要为程序设定可以使用主机的多少内存,也叫作限额
          • 优先级分配,Prioritization:使用硬件的权重值。如:当两个程序都需要进程读取cpu,哪个先哪个后,通过优先级来进行控制
          • 资源统计,Accounting:可以统计硬件资源的用量,如:cpu、内存…使用了多长时间
          • 进程控制,Control:可以对进程组实现挂起/恢复的操作
        • 子系统(可以限制哪些资源)
          • cpu 子系统,主要限制进程的 cpu 使用率。
          • cpuacct 子系统,可以统计 cgroups 中的进程的 cpu 使用情况。
          • cpuset 子系统,可以为 cgroups 中的进程分配单独的 cpu 核或者内存。
          • memory 子系统,可以限制进程的 memory 使用量。
          • blkio 子系统,可以限制进程对存储设备的读取。
          • devices 子系统,可以控制进程能够访问某些设备。
        • 任务(task):进程
        • cgroup:Cgroups中的资源控制都以cgroup为单位实现的。cgroup表示按照某种资源控制标准划分而成的任务组,包含一个或多个子系统。
        • 层级关系(hierarchy):hierarchy由一系列cgroup以一个树状结构排列而成,每个hierarchy通过绑定对应的subsystem进行资源调度。目的是简化资源配置。
          • 一群Cgroup组成的树状结构
          • 每个Cgroup可以看成一个节点,子节点可以继承父节点属性
          • alt text
        • 规则
          1. 同一个hierarchy能够附加一个或多个subsystem。
            alt text
          2. 一个subsystem只能附加到一个hierarchy上。
            alt text
          3. 一个task不能存在于同一个hierarchy的不同cgroup中。
            alt text
          4. 任何一个task(Linux中的进程)fork自己创建一个子task(子进程)时,子task会自动的继承父task cgroup的关系
            alt text

问题2:开发环境和部署环境不一致(环境配置麻烦,无法跨平台使用)

  • 解决方案:将应用程序所有依赖项、库、配置文件和运行时环境合二为一,打包成镜像。
    容器往往容纳了该程序运行所需要的全部文件,它可能包含自己的库、自己的/boot目录、/usr目录、/home目录等。然而,如果需要的话,运行中的容器甚至可能仅包含一个文件,比如运行一个不依赖任何文件的二进制程序。

综上,操作系统级虚拟化很好的解决和问题1和问题2。

Docker

Docker是一个工具,能帮助我们快速的创建、分享和运行软件。
Docker允许我们将一个软件和其依赖(运行环境)打包成一个单独的库,更利于移植可运行的软件。

  • 镜像(Image)
    • Docker镜像是一个构建容器的只读模板,提供了容器应用打包的标准格式,容器即为一个通过Docker镜像创建的运行时实例。
    • Docker 镜像包含Dockerfile、依赖、程序代码和重要配置参数(环境变量、网络配置)(尽量使用被人制作好的镜像文件,而不是从头开始制作)
    • 每个Docker镜像的文件系统由一系列只读层(read-only layer)组成,只读层自底向上逐层堆叠,构成了容器所需要的基础文件系统。
    • 优点:使得镜像的复用、定制变的更为容易实现。
    • 镜像的ID如何生成?哈希函数(Hash)。如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。碰撞是必然存在的。
    • Dockerfile命令
      • FROM:指定基础镜像
      • WORKDIR:设置工作目录
      • COPY和ADD:将本地的文件或者文件夹复制到容器指定的路径中
      • EXPOSE:声明容器运行时监听的端口
      • VOLUME:声明容器内的挂载点
      • RUN:在创建镜像时执行命令,用于安装软件包、运行脚本等操作
      • CMD和ENTRYPOINT:定义了容器启动后执行的命令或程序
  • 容器(Container)
    • 容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
    • 当启动一个容器时,Docker会在镜像栈的顶部增加一个新的、薄的读写层,这一层即“容器层”。当前运行容器的所有操作(比如写新文件、修改现有文件、删除文件)都写到这一读写层中。当这一容器被删除时,其读写层也被删除,而底层的镜像保持原状,而重新利用该镜像创建的应用也不保留此前的更改。这种只读层结合顶部读写层的组合被称为Union File System。在这样的架构下,多个容器可以安全的共享一个底层镜像。
    • 数据卷:是宿主机中的一个目录或文件
      • 特性
        • 独立生存周期
        • 实时同步:单个容器挂载多个数据卷当容器目录和数据卷目录绑定后,对方的修改会立即同步
        • 多容器共享:一个数据卷可以被多个容器同时挂载
        • 容器挂载多个数据卷:一个容器也可以被挂载多个数据卷
      • 作用
        • 容器数据持久化
        • 外部机器和容器间接通信
        • 容器之间数据交换
  • 仓库(Repository)
    • 是集中存放镜像文件的场所
    • 仓库(Repository)和仓库注册服务器(Registry);公开仓库(Public)(DockerHub)和私有仓库(Private)

容器技术与传统虚拟机

  • 容器技术不是虚拟化的替代方案,它还不能取代传统的服务器虚拟化技术
    特性 容器 虚拟机
    启动 秒级 分钟级
    硬盘使用 一般为MB 一般为GB
    性能 接近原生 弱于
    系统支持量 单机支持上千个容器 一般几十个
  • 容器和虚拟机两者是可以共存的
  • 容器技术
    • 优点
      • 轻量级、易扩展:虚拟机自身是一个完备系统,拥有虚拟化的硬件和特定资源,如果每个VM有2GB容量,则10个虚拟机就需要20GB;若采用容器,因为共享其操作系统内核,因此并不会占据20GB空间。
      • 资源利用率高:虚拟机需要借助虚拟化软件层模拟硬件行为,而容器则直接运行在主机操作系统上。其启动时间也短。
      • 简化配置、提升效率:降低了硬件资源和应用环境的耦合度,并且可以给开发者提供理想的开发环境,提升开发效率。
    • 缺点
      • 安全性:容器极度依赖其主机操作系统,所以任何针对主机操作系统的攻击都会造成其安全问题。同时,主机操作系统能够看到容器中运行的一切资源。
      • 隔离性相比虚拟机差:如果某个应用运行时导致内核崩溃,所有的容器都会崩溃

Docker对云的扩展
Docker的轻量级特性使其成为未来云计算的重要拓展方向之一——边缘计算(Edge Computing)的重要使能技术

  • 基于地理分布的边缘设备的计算方式,需要一种灵活可扩展的平台来实现应用和服务的部署。
  • 该平台应当能够部署适合小型边缘设备的轻量级可重用的服务,并且不依赖于异构硬件架构。
  • 该平台还应当能够有效的与云端进行交互,从而实现分布式大数据的边缘计算和云端存储。
  • 这一平台还应易于安装、配置、管理、升级、以及调试。

九、云安全机制

模运算

  • 同余性质
    1. n(ab)n\mid (a-b),则 ab(modn)a\equiv b\pmod n
    2. ab(modn)a\equiv b\pmod n,则 ba(modn)b\equiv a\pmod n
    3. ab(modn)a\equiv b\pmod nbc(modn)b\equiv c\pmod n,则 ac(modn)a\equiv c\pmod n
  • 模算数运算的性质
    1. [amodn+bmodn]modn(a+b)modn[a\bmod n+b\bmod n]\bmod n\equiv (a+b)\bmod n
    2. [amodnbmodn]modn(ab)modn[a\bmod n-b\bmod n]\bmod n\equiv (a-b)\bmod n
    3. [amodn×bmodn]modn(a×b)modn[a\bmod n\times b\bmod n]\bmod n\equiv (a\times b)\bmod n
    4. abmodn(amodn)bmodna^b\bmod n\equiv (a\bmod n)^b\bmod n

剩余类
给定正整数mm,全体整数可按照模mm是否同余分为若干两两不相交的集合,使得每一个集合中的任意两个正整数对模mm一定同余,而属于不同集合的任意两个整数对模mm不同余,每一个这样的集合称为模mm剩余类

欧几里得算法
辗转相除法:定理:gcd(a,b)=gcd(b,amodb)\gcd (a, b)=\gcd (b, a\bmod b)

证明:aa可以表示成 a=kb+ra=kb+r,则 r=amodbr=a\bmod b

  1. 假设ddaabb的一个公约数,则有:da,dbd\mid a, d\mid b,而 r=akbr=a-kb
    因此 drd\mid r,因此dd(b,amodb)(b, a\bmod b)的公约数
  2. 假设dd(b,amodb)(b,a\bmod b)的公约数,则dbd\mid bdrd\mid r ,而a=kb+ra=kb+r
    因此 dad\mid a,因此d也是(a,b)(a,b)的公约数

因此(a,b)(a,b)(b,amodb)(b,a\bmod b)的公约数是一样的,其最大公约数也必然相等,得证。

扩展欧几里得算法
对于给定整数a,ba,b,拓展的欧几里得算法不仅可以计算出最大公因子dd, 而且可以得到两个整数x,yx,y,并满足:ax+by=d=gcd(a,b)ax+by=d=\gcd (a, b)。如果a,ba,b互质,bb有模aa的乘法逆元:b1=yb^{-1}=y
在模运算中,如果一个数aa和模数mm互质,那么aa在模mm下存在乘法逆元,表示为aa的逆元,记作a1a^{-1},满足以下条件:a×a11(modm)a\times a^{-1}\equiv 1\pmod m
计算方法:
exgcd(a,b,x,y,prex,prey)=exgcd(b,amodb,prex(a/b)x,prey(a/b)y,x,y)\text{exgcd}(a,b,x,y,prex,prey)=\text{exgcd}(b,a\bmod b,prex-(a/b)x,prey-(a/b)y,x,y)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
using namespace std;
int a, b, x, y, prex, prey;
int main() {
cin >> a >> b;
x = 0, y = 1, prex = 1, prey = 0;
if (a < b) swap(a, b);
while (a % b != 0) {
int new_a, new_b, new_x, new_y, new_prex, new_prey;
new_a = b;
new_b = a % b;
new_x = prex - (a / b) * x;
new_y = prey - (a / b) * y;
new_prex = x;
new_prey = y;
a = new_a;
b = new_b;
x = new_x;
y = new_y;
prex = new_prex;
prey = new_prey;
}
cout << "gcd(a, b): " << b << '\n';
cout << "x: " << x << '\n';
cout << "y: " << y << '\n';
return 0;
}
/*
1759,550 ,0 ,1 ,1 ,0
550 ,109 ,1 ,-3 ,0 ,1
109 ,5 ,-5 ,16 ,1 ,-3
5 ,4 ,106 ,-339,-5 ,16
4 ,1 ,-111,355 ,106 ,-339

273 ,110 ,0 ,1 ,1 ,0
110 53 1 -2 0 1
53 4 -2 5 1 -2
4 1 27 -67 -2 5
*/

密码学

代替(Substitution):明文中的字符被替换成密文中另一个字符
置换(Permutation):明文字母不变,但顺序被打乱
扩散:将每一位明文尽可能地散布到多个输出密文中去,以更隐蔽明文数字的统计特性
混淆:使密文的统计特性与明文密钥之间的关系尽量复杂化
攻击的分类(以获取密钥和加解密算法为目的)

  • 唯密文攻击(Cipher-only attack): 攻击者有一个或多个密文,攻击需要统计分析
  • 已知明文攻击(Known-plaintext attack): 攻击者有一份密文和对应的明文,进行算法和密钥推导
  • 选择明文攻击(Chosen-plaintext attack): 攻击者有机会使用加密机,因此可以选择任何明文并产生对应的密文,攻击概率更大
  • 选择密文攻击(Chosen-cipher attack): 攻击者有机会使用解密机,因此可以选择一些密文并产生对应的明文
    攻击难度由下到上逐渐增加

密钥长度越长,加密数据越不容易被非法解密
加密:

  • 数据按照一种可读的格式进行编码,这种格式称为明文(plaintext)。
  • 数据在网络上传输时,为避免未授权的恶意访问,可以使用称为加密部件(cipher)的标准化算法,通过密钥把原始的明文数据转换为密文(ciphertext),这个过程称为加密(encryption)。从密文恢复出明文的过程称为解密(Decryption)
  • 加密机制可以对抗流量窃听恶意媒介授权不足信任边界重叠

对称加密加密与解密时使用同一个密钥,这两个过程都是授权的各方用共享的密钥执行的。

  • 由于用一个密钥加密的消息只能用同一个密钥解密,因此拥有密钥的被授权方才能创建消息,因此保证了数据的保密性
  • 对称加密不具备不可否认性,当有多方使用同一个密钥时,无法判断是哪一方执行的加密和解密。
  • 优点:算法公开、计算量小、加密速度快、加密效率高。
  • 缺点:事先协商密钥;多用户时密钥量巨大

移位加密(凯撒加密)
加密:y=x+k(mod26)y=x+k\pmod{26}
解密:x=yk(mod26)x=y-k\pmod{26}
如何攻击?

  • 已知明文攻击:x,y都已知,那么k=yx(mod26)k=y-x\pmod {26}
  • 选择明文攻击:能够自己选择x。比如选择 x=‘a’=0 ,则为y=k(mod26)y=k\pmod{26}
  • 选择密文攻击:自己选择密文y。例如选择 y=‘a’=0,那么x=k(mod26)x=-k\pmod{26}

破解:

  • 暴力穷举(26种可能)
  • 词频统计
    1. 统计密文中字母出现的频率
    2. 与标准的语言字母出现的频率进行比对
    3. 确定密钥k的最可能值

仿射加密
加密:y=αx+β(mod26)y=\alpha x+\beta\pmod{26}
解密:x=α1(yβ)(mod26),其中α1是满足αγ1(mod26)γ的值x=\alpha^{-1}(y-\beta)\pmod{26}, 其中\alpha^{-1}是满足\alpha\gamma\equiv 1\pmod{26}的\gamma的值
破解:

  • 暴力穷举(312种可能,α\alpha相对26存在逆元,那么α\alpha小于26且与26互质,只有12种可能,β\beta有26种可能,12*26=312)
  • 词频统计
    1. 统计密文中字母出现的频率
    2. 与标准的语言字母出现的频率进行比对,找到两个密文-明文映射
    3. 确定映射关系(线性方程组,枚举α\alpha求解)

维吉尼亚密码
将明文按照密钥长度分组,用密钥对每个组内字母进行移位加密。
维吉尼亚密码实际上是移位密码的一种扩展;能够消除字母的频率特征
加密:Ci=Pi+Ki(mod26)C_i=P_i+K_i\pmod{26}
解密:Pi=CiKi(mod26)P_i=C_i-K_i\pmod{26}
破解:

  1. 确定密钥长度
    • Kasiski实验
      • 利用英文单词的规律,统计重复子串的间隔,间隔的公因数都可能是密钥长度
    • Friedman测试
      • 枚举可能的密钥长度,根据密钥长度将同一密钥字符加密的密文分为一组,计算每组的重合指数,越接近原文语言的重合指数的密钥长度越可能是真实密钥长度。
      • IC, index of coincidence 重合指数
        • IC=P(A)2+P(B)2++P(Z)2=0.065\text{IC}=P(A)^2 + P(B)^2+……+P(Z)^2 = 0.065
        • P(i)由字母频率分析得到
        • 利用重合指数推测密钥长度的原理在于,对于一个由移位加密的序列,由于所有字母的位移程度相同,所以密文的重合指数应等于原文语言的重合指数。
  2. 确定密钥
    • 词频统计

一次性密码本
双方共同维护一个本子,使用和明文长度相等的密钥进行加密。每次加密完,换新的密钥。密钥的生成是完全随机的。一次性密码本是一种理论上绝对安全的加密方式

DES

  • DES(Data Encryption Standard)是一种使用56位密钥对64位长分组进行加密的密码,是一种迭代算法、对称加密算法。DES是第一个公开的分组加密算法。
  • 特点:
    • 对称加密算法:同一个密钥用于加密和解密,密钥必须保密。
    • 块加密:对固定大小(64位)的数据块进行加密,每个数据块独立处理。
    • Feistel结构:DES由16轮相似的操作组成,每轮使用一个子密钥进行替换和置换操作。
    • 56位密钥:实际使用的密钥长度为56位,尽管输入的密钥长度为64位(其中8位用于校验)
  • alt text
  • 安全性
    • 密钥长度:由于密钥长度较短,容易被暴力破解。1997年,DES的密钥首次被公开破解。
    • 其它攻击方法:差分密码分析、线性密码分析等方法可以有效攻击DES。
    • 替代方案:为了增强安全性,Triple DES(3DES)应运而生,使用三个DES操作(加密-解密-加密)来增加密钥长度和复杂性。

3DES
3DES(Triple DES):由三个连续的DES加密组成,也称之为三重DES。
三个密码组件既可以是一个加密函数又可以是一个解密函数。
加密:y=Ek1[Dk2[Ek3[x]]]y=E_{k_1}[D_{k_2}[E_{k_3}[x]]]
解密:x=Dk3[Ek2[Dk1[y]]]x=D_{k_3}[E_{k_2}[D_{k_1}[y]]]
k1=k3k_1= k_3时,则成为双密钥三重DES
k1k2k3k_1 、k_2、 k_3互不相等,密钥长度56*3=168,安全性非常高
优点:

  • 密钥长度增加到112位或168位,克服了DES面临的穷举攻击。
  • 相对于DES,增强了抗差分分析和线性分析等的能力。
  • 由于DES已经大规模使用,升级到3DES比更新新算法成本小得多。
  • DES比其他任何加密算法收到的分析时间都长得多,相应地,3DES的抗分析能力更强。

不足:

  • 3DES处理速度较慢。
  • 虽然密钥长度增加了,但明文分组的长度没变,与密钥长度的增长不匹配。

AES
高级加密标准(Advanced Encryption Standard, AES)也是一种对称加密算法,是公开的分组加密算法。明文分组为128位、支持3种密钥长度(128、192、256)且软硬件实现都很高效。

AES-128 AES-192 AES-256
密钥长度 128 192 256
迭代轮数 10 12 14

破解:

  • 差分密码分析:攻击者通过分析输入和输出差分来推测密钥。
  • 线性密码分析:利用线性逼近的方法对密钥进行推测。

对称密钥体制缺陷
对称密码体制(例如DES, AES) 需要两个用户利用提前共享的秘钥来建立“安全信道” ,然而通信双方共享秘钥并不容易。且无法保证可追溯性(accountability)。

公钥密码概念
公钥可以公开分发,任何人都可以使用公钥加密消息。
私钥必须保密,仅持有私钥的一方可以解密消息或生成签名。
应用:
加密:使用接收方的公钥加密消息,只有接收方能用其私钥解密。
解密:接收方用私钥解密加密的消息。
签名:发送方用自己的私钥对消息进行签名,生成数字签名。
验证:接收方用发送方的公钥验证签名,确认消息的真实性和完整性。
密钥交换:通信双方交换会话密钥。

RSA
基于大整数因子分解的数学难题,广泛应用于安全通信和数字签名。使用过程包括密钥生成、加密、解密。
数学基础:欧拉定理

  • 剩余类互质定义:在模mm的一个剩余类当中,如果有一个数与mm互质,则该剩余类中所有的数均与mm互质,这时称该剩余类与mm互质。
  • 欧拉函数定义:与mm互质的剩余类的个数称为欧拉函数,记为ϕ(m)\phi(m)
    ϕ(m)\phi(m)等于ZmZ_m当中与mm互质的数的个数。对于任意一个质数mmϕ(m)=m1\phi(m)=m−1
  • 欧拉定理:设mm是正整数,rZmr\isin Z_m,若gcd(r,m)=1\gcd(r, m)=1,则rϕ(m)1(mod m)r^{\phi(m)}\equiv 1(mod m)
  • 费马小定理:如果mm也是质数,rZmr\isin Z_m,且gcd(r,m)=1\gcd(r, m)=1,则rm11(mod m)r^{m−1}\equiv 1(mod m)
  • 特例:如果mm可以分解成两个质数相乘,m=p1×p2m=p1\times p2, 则ϕ(m)=ϕ(p1×p2)=ϕ(p1)×ϕ(p2)\phi(m)=\phi(p1\times p2)=\phi(p1)\times\phi(p2)

alt text
安全性:对于攻击者来说,已知e、n,如果无法求出d就是安全的。d=e1modϕ(n)d=e^{−1} \bmod\phi(n)问题本质:已知nn,求n=pqn=pq。即数的质分解问题。一般情况下,破解RSA密钥成为计算上的不可解问题。
优点:密钥空间大
缺点:

  • 产生密钥很麻烦,受到素数产生技术的影响,因此很难做到一次一密。
  • 分组长度太长。
  • 速度太慢,RSA最快的情况也比DES慢100倍。

ECC(椭圆曲线密码学)了解

  • 基本原理:基于椭圆曲线离散对数问题
  • 安全性:提供相同安全性的前提下,使用较短的密钥长度
  • 例如:ECC的160位密钥提供的安全性相当于RSA的1024位密钥。
  • 过程:密钥生成、加密、解密、签名、验证
  • 应用:移动设备、智能卡、SSL/TLS等领域

哈希函数
哈希函数需满足的特性:

  • 输入长度可变:对任何长度的输入x都适用
  • 输出长度固定:对任何长度的输入x,输出z都是固定长度
  • 效率:计算复杂度低
  • 抗原像攻击(单向性):对于给定输出y,不可能找到对应的输入x
  • 抗第二原像攻击(抗弱碰撞性):对于给定的x1x_1,找到满足h(x1)=h(x2)h(x_1)=h(x_2)x2x_2是不可能的
  • 抗碰撞攻击(抗强碰撞性):找到满足h(x1)=h(x2)h(x_1)=h(x_2)的偶对x1=x2x_1=x_2是不可行的。

应用:

  1. 数据完整性检验
  2. 用于数字签名
  3. 密钥推导
  4. 密码存储

数字签名
数字签名是一种通过身份验证和不可否认性来提供数据真实性和完整性的手段。(发送消息时,附加一个数字签名,如果消息被篡改,数字签名就会变得非法)
数字签名可以通过非对称加密(用私钥加密)和哈希实现

  • 用私钥对消息哈希值进行加密,附加到消息后面。
  • 接受者收到后对消息进行哈希得到一个消息摘要1,用公钥对加密后的消息哈希值进行解密得到消息摘要2,如果一致则保证了消息的完整性。

数字签名方案分类

  • 利用特殊的公钥加密算法实现。
    • RSA数字签名算法
      • 安全性:基于大整数因子分解问题,具有很高的安全性。
    • ECDSA(Elliptic Curve Digital Signature Algorithm)
      • 安全性:基于椭圆曲线离散对数问题的难解性,提供与RSA相同级别的安全性,但使用的密钥长度更短。
  • 利用专门设计的数字签名算法实现。
    • DSA数字签名算法(Digital Signature Algorithm )
      • 安全性:基于离散对数问题的难解性,具有很高的安全性。
特性 RSA ECDSA DSA
基本概念 基于RSA公钥加密算法的数字签名方法 基于椭圆曲线密码学(ECC)的数字签名方法 基于离散对数问题的数字签名算法
安全性 基于大整数因子分解问题,安全性较高 基于椭圆曲线离散对数问题,安全性高 基于离散对数问题,安全性较高
密钥长度 2048位及以上 256位及以上,提供同等安全性时密钥更短 2048位及以上
签名长度 较长(与密钥长度成正比) 较短(相对于同等安全性的RSA) 中等(与密钥长度成正比)
签名生成速度 较慢 较快 较快
签名验证速度 较慢 较快 较慢
计算复杂度 较高 较低 中等
性能 对计算资源需求较高 高效,适合资源受限环境 依赖高质量随机数,速度适中
应用场景 SSL/TLS证书、电子邮件签名、软件签名 移动支付、区块链、物联网设备 软件分发、数字证书、电子文件签名

公钥基础设施
管理非对称密钥颁发的常用方法是基于公钥基础设施(Public Key Infrastruction, PKI)机制的,它是由一个协议、数据格式、规则和实施组成的系统。
这个系统用来把公钥与对应私钥所有者对应起来(公钥身份识别)。

  • PKI依赖于使用数字证书。
  • 数字证书是带数字签名的数据结构,它与公钥一起来验证证书所有者身份以及相关信息,例如有效期。
  • 数字证书通常由第三方证书颁发机构(Certificate Authority, CA)数字签发的。

alt text

十、特殊云机制 了解

  • 自动伸缩监听器 (Automated scaling listener)
    • 自动伸缩监听器 (Automated scaling listener)是一个服务代理,它监控和追踪云服务用户云服务之间的通信,用以动态伸缩
    • 通常部署在靠近防火墙的位置,自动追踪负载状态信息;负载量可以由前端请求量,也可以由请求引发的后端处理需求量决定。
    • 提供不同类型的响应:如通过预定义参数自动伸缩IT资源,或者负载超过或低于阈值时自动通知云用户
  • 负载均衡器(Load Balancer)重点
    • 负载均衡器(Load balancer)机制是一个运行时代理,基本思想是把负载在更多的IT资源上做负载均衡,与单一IT资源相比,提升了性能和容量。
    • 基于水平拓展的思想。
    • 可以负载均衡的资源或者设备有服务器、网络设备、存储设备等。
    • 负载均衡器可以执行一组特殊的运行时负载分配功能,包括:
      • 非对称分配:较大的工作负载被送到具有较强处理能力的IT资源;
      • 负载优先级:根据优先等级进行调度、排队、丢弃和分配;
      • 上下文感知分配: 根据请求内容的指示把请求分配到不同IT资源。
    • 负载均衡的机制:
      • 多层网络交换机
      • 专门的硬件设备
      • 专门的基于软件的系统
      • 服务代理
    • 负载均衡器通常位于产生负载的IT资源负责执行负载IT资源之间的通信路径上。
  • SLA监控器(SLA Monitor)
    • SLA:Service-Level Agreement,服务等级协议。
    • SLA监控器(SLA monitor)被用来专门观察云服务的运行时性能,确保他们履行SLA公布的QoS需求。
    • SLA监控器收集的数据由SLA管理系统处理并集成到SLA报告的标准中。
  • 按使用付费监控器(Pay-per-use monitor)
    • 按使用付费监控器(Pay-per-use monitor)机制按照预先定义好的定价参数测量基于云的IT资源使用,并生成使用日志用于计算费用。
      • 请求/响应消息数量
      • 传输的数据量
      • 带宽消耗
  • 审计监控器(Audit Monitor)
    • 审计监控器机制(Audit monitor)用来收集网络和IT资源的审计记录数据,用以满足管理需要或合同义务。
  • 故障转移系统(Failover system)
    • 故障转移系统(Failover system)通过使用现有的集群技术提供冗余的实现来增加IT资源的可靠性和可用性。
      • 主动-主动:IT资源的冗余实现会主动地同步服务工作负载;当发现故障时,将失效的实例从负载均衡调度器中剔除,有效的IT资源就会接管处理工作。
      • 主动-被动:待机或非活跃的实现会被激活,从不可用的IT资源处接管工作。
  • 虚拟机监控器(Hypervisor)
    • 虚拟机监控器(Hypervisor)机制是虚拟化基础设施中最基础的部分,主要用来在物理服务器上生成虚拟服务器实例。
  • 资源集群(Resource cluster)
    • 资源集群(Resource cluster)将多个分布的IT资源分为一组,使得他们能像同一个IT资源一样进行操作。这增强了集群化IT资源的组合计算能力、负载均衡能力和可用性。
    • 从资源角度划分,常用资源集群类型包括:
      • 服务器集群:物理或虚拟服务器组成集群。
      • 数据库集群:用于改进数据的可用性,具有同步的特性,可以维持集群中各种存储设备上存储数据的一致性。
      • 大数据集集群:实现了数据的分区和分布,目标数据集可以有效的划分区域,而不需要破坏数据的完整性或计算的准确性。
    • 从性能角度划分,资源集群的两个基本类型:
      • 负载均衡的集群:这种资源集群在集群节点中分布工作负载,既提高IT资源容量又保持资源的集中管理。
      • 高可用集群:在遇到多节点失效时,仍能维持系统的可用性,而且大多数或者所有集群的IT资源都有冗余实现。它实现一个故障转移系统机制,监控失效情况,并自动将工作负载重定向为远离故障节点。
  • 多设备代理(Multi-device broker)
    • 一个云服务可能会被大量的云用户访问,他们对主机硬件设备和通信需求都不同。为了克服云服务和不同云服务用户之间的不兼容性,需要创建映射逻辑来改变运行时交换的信息。
    • 多设备代理(Multi-devise broker)来帮助运行时的数据转换,使得云服务能够被更广泛的云用户程序和设备所使用。
    • 多设备代理通常作为网关存在。
    • 可创建转化的逻辑层次包括:
      • 传输协议
      • 消息协议
      • 存储设备协议
      • 数据模式/数据模型
  • 状态管理数据库(state management database)
    • 状态管理数据库(State management database):一种用来暂时地保存软件程序的状态数据
    • 软件程序可以把状态数据保存到数据库中,用以降低程序占用的运行时内存。

十一、基本云架构

  • 负载分布架构重点
    • 通过增加一个或多个相同的IT资源可以进行IT资源水平扩展,而提供运行中逻辑的负载均衡器能够在可用的IT资源上均匀分配工作负载。
    • 在一定程度上依靠复杂的负载均衡算法和运行时逻辑,减少IT资源的过度使用和使用率不足的情况。
    • 负载分布常常可以用来支持分布式虚拟服务器、云存储设备、云服务、微服务
    • 单机系统
      • 所有的业务全部写在一个项目中,部署服务到一台服务器上。
      • 优点:1)架构简单,易于开发和维护;2)没有网络通信的延迟
      • 缺点:1)扩展性差,当访问量和数据量增加时,单机资源(CPU、内存、存储)会迅速耗尽;2)单点故障(SPOF):如果服务器宕机,整个系统会不可用。
    • 应用、数据库分离
      • 为了提升性能和分担负载,Web应用开始采用两层架构,将Web服务器和数据库服务器分离。
      • 优点:提供性能和拓展性;增强了模块化和维护性。
      • 缺点:单点故障、性能存在瓶颈。
    • 应用服务集群
      • 增加应用层服务器,将用户流量分担到不同的应用层服务器上,来提升系统的承载能力。
      • 优点:高可用、高拓展性等。
      • 缺点:存储服务器单点故障、性能存在瓶颈。
    • 微服务
      • 将应用拆分为多个独立的小服务,每个服务负责特定的功能。
      • 独立开发、部署和扩展,通过轻量级的通信协议(如HTTP/REST)进行交互
      • 优点:
        • 提高了系统的灵活性和可维护性,每个服务可以独立演化。
        • 技术多样性,可使用不同语言、框架、数据库进行开发
        • 提供了更好的故障隔离能力,某个服务的故障不会影响整个系统。
      • 缺点:
        • 增加了系统的复杂性,需要处理服务间的通信、数据一致性和分布式事务问题。
        • 运维成本增加,需要完善的监控和管理工具。
    • 负载均衡分类(根据网络协议的层数)
      • 二层负载均衡
        • 负载均衡服务器对外提供一个VIP(虚拟IP),集群中不同的机器采用相同IP地址,但机器的MAC地址不一样。当负载均衡服务器接受到请求之后,通过改写报文的目标MAC地址的方式将请求转发到目标机器实现负载均衡。
        • 特点: 控制粒度比较粗;负载均衡服务器压力小;吞吐量高
      • 三层负载均衡
        • 负载均衡服务器对外依然提供一个VIP,但集群中不同的机器采用不同的IP地址。当负载均衡服务器接受到请求之后,根据不同的负载均衡算法,通过IP将请求转发至不同的真实服务器。
        • 特点: 控制粒度比较粗;请求响应经过负载均衡器服务器,其压力较大
      • 四层负载均衡
        • 工作在OSI模型的传输层,该层协议除了包含源IP、目标IP以外,还包含源端口号及目的端口号。在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。
        • 特点: 不理解应用层协议
        • 根据请求处理的模式,负载均衡方式可以分为:
          • NAT
            • 特点:请求响应经过负载均衡器服务器,其压力较大
          • D-NAT
          • DR(Direct Routing, 直接路由模式)
            • 特点:响应不经过负载均衡器服务器,其压力较小
          • TUN隧道技术
            • 特点:响应不经过负载均衡器服务器,其压力较小
      • 七层负载均衡
        • 基于应用层的负载均衡,可以根据请求的url进行转发负载,在四层负载的基础上,考虑应用层的特征。
        • 特点: 更灵活,控制粒度更细。
    • Nginx
      • Nginx是一款轻量级的高性能web服务器,同时也是一款非常优秀的负载均衡器和反向代理服务器。由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
      • 正向代理(Forward Proxy);反向代理(Reverse Proxy)
    • 负载均衡算法
      • 负载均衡服务器在决定将请求转发到具体哪台真实服务器时,是通过负载均衡算法来实现的。
      • 静态负载均衡算法
        • 轮询法:按请求顺序轮流分配。
          • 优点:简单高效、易拓展
          • 缺点:性能受限于木桶最短木板理论
        • 随机法:将请求随机分配到各个节点。
          • 优缺点同上
        • 源地址哈希法:根据客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器节点数进行取模,得到的结果便是要访问节点序号。
          • 优点:可人为干预某客户端请求的节点。
          • 缺点:无法保证高可用性,可能导致负载不均衡。
        • 加权轮询法:根据机器的配置分配不同的权重,将请求顺序且按照权重分配到后端。
          • 优点:可以将不同机器的性能问题纳入到考量范围,集群性能最优最大化
          • 缺点:无法动态调整节点权重。
        • 加权随机法:根据后端机器的配置,系统的负载分配不同的权重
        • 键值范围法:根据键的范围进行负债,比如0到10万的用户请求走第一个节点服务器,10万到20万的用户请求走第二个节点服务器…
          • 优点:容易水平拓展
          • 缺点:容易负载不均、无法满足高可用性
      • 动态负载均衡算法
        • 最少连接数:每一台服务器的当前连接数进行统计(L4 层连接数),当有新的请求进入时,将新的请求分配给当前最少连接处理的服务器
          • 最小连接数为最常用的负载均衡算法之一,在后台服务器处理能力均等的情况下, 使用最小连接数可以得到最为平衡的负载均衡效果。
        • 最快响应速度:通过观察每台服务器的应用响应速度,当有新的请求进入的时候,将新的请求分配给响应最快的服务器。
        • 动态观察法:连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。
        • 预测法
    • 以下机制也是该云架构的一部分
      • 审计监控器:分配运行时工作负载时,就满足法律和监管要求而言,处理数据的IT资源类型和地理位置可以决定监控是否是必要的。
      • 云使用监控器:各种监控器都能参与执行运行时工作负载的跟踪与数据处理。
      • 虚拟机监控器:虚拟机监控器与其托管的虚拟服务器之间的工作负载可能需要分配。
      • 逻辑网络边界:逻辑网络边界用于隔离、确定如何分布、以及在哪里分布工作负载相关的云用户网络边界。
      • 资源集群:支持不同集群节点间的负载均衡。
      • 资源复制:生成虚拟化IT资源的新实例。
  • 资源池架构
    • 使用一个或多个资源池为基础,相同的IT资源由一个系统进行分组和维护,确保他们保持同步。
      • 常见的资源池有:物理服务器池、虚拟服务器池、存储池、网络池、CPU池、内存池。
    • 资源池可以建立层次结构,形成资源池父子、兄弟和嵌套关系,从而满足不同的资源池需求。
  • 动态可扩展架构
    • 基于一个预先定义的可扩展条件的系统,触发条件会导致从资源池动态分配IT资源
    • 动态扩展类型有
      • 动态水平扩展:指分配和释放IT资源,其中分配资源称为向外扩展(scaling out),释放资源称为向内扩展(scaling in)。
      • 动态垂直扩展:垂直扩展(vertical scaling):指现有IT资源被具有更大或更小容量的资源代替,分别称为向上(scaling up)扩展和向下(scaling down)扩展。
      • 动态重定位:将IT资源重放置到更大容量的主机上。
  • 弹性资源容量架构
    • 主要与虚拟服务器的动态供给相关,该架构可以分配和回收CPU与RAM资源,从而可以立即响应服务对IT资源的需求变化。
  • 服务负载均衡架构
    • 工作负载分布架构的变种,是专门针对云服务实现的。在动态工作负载上增加负载均衡系统,就创建了云服务的冗余部署。
    • 云服务实现的副本被组织为一个资源池,而负载均衡器则作为外部或内置组件,允许托管服务器自行平衡工作负载。
  • 云爆发架构
    • 只要达到预先设定的容量阈值,就从企业内部的IT资源扩展或“爆发”到云中。
    • 相应的云IT资源是冗余性预部署,它们会保持非活跃状态,直到发生云爆发。
    • 当不再需要这些资源后,基于云的IT资源被释放,架构则“爆发入”企业内部,回到企业内部环境。
  • 弹性磁盘供给架构
    • 一个动态存储供给系统,确保按照云用户实际使用的存储量进行精确计费
  • 冗余存储架构
    • 引入了复制的辅云存储设备做为故障系统的一部分,它要与主运存储设备中的数据保持同步。当主设备失效时,就把请求转向辅设备。

十二、高级云架构 了解

  • 虚拟机监控器集群架构
    • 虚拟机监控器可以负责创建和管理多个虚拟服务器,因为这种依赖关系,任何影响虚拟机监控器失效的状况,都会波及它管理的虚拟服务器。
    • 虚拟机监控器集群架构(Hypervisor clustering architecture)建立了一个跨多个物理服务器的高可用虚拟机监控器集群。如果一个虚拟监控器或底层物理服务器不可用,那么被其托管的虚拟服务器可迁移到另一物理服务器
    • 虚拟机监控器集群由中心VIM控制,VIM发送常规心跳消息来确认虚拟机监控器是否在运行
      • 如果心跳消息未被应答,VIM将启动VM在线迁移程序,以动态地将受影响的虚拟机监控器移动到一个新的主机上。
        • 心跳是虚拟机监控器之间、虚拟机监控器和虚拟服务器之间、虚拟机监控器和VIM之间相互交换的系统级消息
    • 核心机制
      • 虚拟机监控器
      • 资源集群机制
      • 受到集群环境保护的虚拟服务器
    • 相关机制
      • 逻辑网络边界(logical network perimeter):确保没有其他云用户的虚拟机监控器被意外的包含到一个给定的集群。
      • 资源复制(resource replication):同一集群中的虚拟机监控器相互告知其状态和可用性;在集群中创建或删除一个虚拟交换机之类的变化,需要通过VIM复制到所有的虚拟机监控器。
  • 负载均衡的虚拟服务器实例架构
    • 物理服务器的运行和管理是相互隔离的,使得在物理服务器之间保持负载均衡变得困难。
    • 负载均衡的虚拟服务器实例架构(load balanced virtual server instances architecture):建立了一个容量看门狗系统(capacity watchdog system),会动态计算虚拟服务器实例及其相关工作负载,然后再均衡的分配负载到物理服务器。
    • 容量看门狗系统组成:
      • 容量看门狗监控器:追踪物理和虚拟服务器的使用,并向容量计划器报告任何明显的波动。
      • 容量计划器:负责动态的计算和比较物理服务器的计算能力,以及虚拟服务器的容量要求;如果容量计划器决定把一个虚拟服务器迁移到另一台主机上以分散工作负载,则发信号给VM在线迁移程序。
      • VM在线迁移程序:移动虚拟服务器。
    • 相关机制
      • 自动伸缩监听器(automated scaling listener):可以用来启动负载均衡的过程,通过虚拟机监控器动态的监控进入每个虚拟服务器的工作负载。
      • 负载均衡器(load balancer):负责在虚拟机监控器之间分配虚拟服务器的工作负载。
      • 逻辑网络边界(logical network perimeter):确保一个虚拟服务器重新定位的目的地仍然遵守SLA和隐私规定。
      • 资源复制(resource replication):虚拟服务器实例的复制是负载均衡功能的一部分。
  • 不中断服务重定位架构
    • 造成云服务不可用的原因:
      • 运行时使用需求超出了它的处理能力
      • 维护更新要求必须暂时中断。
      • 永久的迁移至新的物理服务器主机。
    • 不中断服务重定位架构(non-disruptive service relocation architecture):预先定义的事件触发云服务实现的运行时复制或迁移,从而避免中断。
      • 通过在新主机上复制一个实现,云服务活动被暂时迁移,而不是通过冗余来实现伸缩。
      • 关键在于原始的云服务实现中断前,新的云服务实现能接收响应云服务用户的请求。
      • 一种常见方法是VM在线迁移,移动承载该云服务的虚拟服务器实例。
    • 根据虚拟服务器磁盘位置和配置,虚拟服务器迁移可能以如下两种方式之一发生
      • 如果虚拟服务器的磁盘存储在一个本地存储设备,或者附加到源主机的非共享远程存储设备,那么就需要在目标主机上创建虚拟服务器磁盘副本;创建好副本后,两个虚拟服务器实例会进行同步,然后虚拟服务器的文件从源主机删除
      • 如果虚拟服务器的文件存储在源和目的主机间共享的远程存储设备上,那么就不需要拷贝虚拟服务器磁盘;只需要简单的将虚拟服务器的所有权从源转移到目的服务器主机,虚拟服务器的状态就会自动同步。
    • 相关机制
      • 云使用监控器(cloud usage monitor):可以使用不同类型的云使用监控器持续追踪IT资源的使用情况和系统行为。
      • 按使用付费监控器(pay-per-use monitor):收集数据,由此计算源和目的位置的IT资源服务使用费。
      • 资源复制(resource replication):用来在目的端实例化云服务的卷影副本(shadow copy)。
      • SLA管理系统(SLA management system):在云服务复制或重定位期间及之后,负责处理SLA监控器提供的SLA数据,以获得云服务的可用性保证。
      • SLA监控器(SLA monitor):收集SLA管理系统所需的SLA信息,如果可用性保证是依赖于此架构实现的,那么SLA监控器就是必不可少的。
  • 零宕机架构
    • 物理服务器故障或被损害时,它承载的某些(或所有)虚拟服务器都会受到影响,这使得云提供者向云用户做出的零宕机时间的承诺变得非常困难。
    • 零宕机架构(zero downtime architecture):允许虚拟机服务器原始的物理服务器失效时,动态迁移到其它物理服务器主机上。
      • 多个物理服务器聚成一组,由容错系统控制,容错系统具有把活动从一台物理服务器切换到另一台却不引起中断的能力。
    • 相关机制
      • 审计监控器(audit monitor):可能需要这个机制来检查虚拟服务器的重定位是否把它所承载的数据放置到了应该禁止的位置。
      • 云使用监控器(cloud usage monitor):监控云用户对IT资源的实际使用情况,确保不超出云用户的虚拟服务器容量。
      • 虚拟机监控器(hypervisor):每个受到影响的物理服务器的虚拟机监控器承载着受到影响的虚拟服务器。
      • 逻辑网络边界(logical network perimeter):确保虚拟服务器重定位后,每个云用户都还在它自己的逻辑边界内。
      • 资源集群(resource cluster):创建不同类型的主动-主动集群组,以协同改进虚拟服务器承载的IT资源的可用性。
      • 资源复制(resource replication):在主虚拟服务器失效的时候,创建新的虚拟服务器和云服务实例。
  • 云负载均衡架构
    • 云负载均衡架构(cloud balancing architecture):IT资源可以在多个云之间实现负载均衡,云用户请求的跨云负载均衡可以帮助:
      • 提高IT资源的性能和可扩展性。
      • 增加IT资源的可用性和可靠性。
      • 改进负载均衡和IT资源优化。
    • 相关机制
      • 自动伸缩监听器:根据当前的扩展性和性能要求,自动伸缩监听器把云服务用户的请求重定向到几个冗余的IT资源实现中的一个。
      • 故障转移系统机制:故障转移系统保证在IT资源或底层承载故障时,冗余的IT资源能够进行跨云的负载均衡。IT资源失效时会被广播,这样自动伸缩监听器可以避免把云服务的用户请求路由到不可用或不稳定的IT资源上。
  • 资源预留架构
    • 资源受限(resource constraint):由于IT资源使用共享,受限于其可用的容量等级,并发访问可能导致运行时的异常情况,称为资源受限。
      • 当两个或更多用户被分配到共享同一IT资源,而该IT资源没有足够的容量来容纳这些云用户的处理要求时,就会发生资源受限情况。
      • 资源受限发生时,一个或更多云用户会遇到性能下降或拒绝服务,云服务本身也会出现性能下降,并导致所有的云用户被拒绝服务。
      • 一个资源池可以临时从其他资源池借用IT资源,如果借用方拖延了使用时间而没有归还借用的IT资源时,会引起并发冲突,也会引起资源受限。
    • 资源预留架构(resource reservation architecture):专门为给定用户保留下述某种资源的系统,从而避免资源受限和资源借用情况:
      • 单个IT资源
      • 一个IT资源的一部分
      • 多个IT资源
    • 相关机制
      • 审计监控器(audit monitor):用来检查资源预留系统是否遵守了云用户的审计、隐私和其它法规的要求。
      • 云使用监控器(cloud usage monitor):监视触发分配预留IT资源的阈值。
      • 虚拟机监控器(hypervisor):可以向不同的云用户提供预留,保证正确的给他们分配了保证过的IT资源。
      • 逻辑网络边界(logical network perimeter):保证预留的IT资源仅对某些云用户可用。
      • 资源复制(resource replication):需要持续的告知这个组件每个云用户的IT资源消耗的界限,以便能方便的复制和提供新的IT资源实例。
  • 动态故障检测和恢复架构
    • 手动管理和解决IT资源故障通常效率很低且不切实际。
    • 动态故障检测和恢复架构(dynamic failure detection and recovery architecture):建立了一个弹性的看门狗系统,以监控预先定义的故障场景,并对之作出响应。
      • 对于不能解决的故障情况,该系统会发出通知,并作升级处理。
      • 这个系统依赖于一个特殊的云使用监控器,称为智能看门狗监控器,主动地追踪IT资源,对预先定义的事件采取预先定义的措施。
    • 弹性看门狗系统执行以下五个核心功能
      • 监视
      • 选定事件
      • 对事件做出反应
      • 报告
      • 升级处理,常用措施:
        • 运行一个批处理文件
        • 发送一个控制台消息
        • 发送一条短信消息
        • 发送一封电子邮件消息
        • 发送一个SNMP陷阱
        • 记录一个通知单
    • 相关机制
      • 审计监控器(audit monitor):追踪数据的恢复是否遵守了法律或策略的要求。
      • 故障转移系统(failover system):通常在最初尝试恢复失效的IT资源时,会使用故障转移系统机制。
      • SLA管理和SLA监控器(SLA management system and SLA monitor):由于采用这个架构能实现的功能和SLA保证是密切相关的,所以这个系统通常依赖于SLA管理和SLA监控器机制管理并处理信息。
  • 裸机供给架构
    • 裸机服务器(bare-metal server):指没有预装OS或其它任何软件的物理服务器。
      • 现代大多数物理服务器在其ROM中都提供远程安装管理软件支持。
      • 有些厂商需要扩展卡支持这个功能,也有些厂商把这个组件集成到芯片组里。
      • 基于Web或专用用户接口连接和管理物理服务器
    • 远程管理软件虽然可以连接到物理服务器控制台,并部署OS,但有两个常见问题
      • 手动部署多台服务器容易出现人为的疏漏和配置错误。
      • 远程管理软件可能是时间密级型的,需要大量的运行时IT资源处理。
    • 裸机供给架构(bare-metal provisioning architecture):提供一个自动部署的功能,允许云用户链接到部署软件,同时提供多个服务器或操作系统,这样裸机就变成了一个安装有管理代理的原始客户端。
    • 相关机制
      • 云存储设备(cloud storage device):存储OS模板和安装文件,以及供给系统的部署代理和部署包。
      • 虚拟机监控器(hypervisor):可能会要求作为OS供给的一部分,在物理服务器上部署虚拟机监控器。
      • 逻辑网络边界(logical network perimeter):确保物理裸机服务器只能被授权的云用户访问。
      • 资源复制(resource replication):复制IT资源。
      • SLA管理系统(SLA management system):保证物理裸机服务器的可用性与预先定义好的SLA条款一致。
  • 快速供给架构
    • 快速供给架构(rapid provisioning architecture):建立的系统将大范围的IT资源供给进行了自动化,这些IT资源可以是单个的,也可以是联合起来的。
  • 存储负载管理架构
    • 云存储设备使用中可能出现的问题:过度使用——增加工作负载;使用过低——损失潜能
    • LUN迁移(Logical Unit Number, 通常说的LUN也指在SAN存储上创建的逻辑磁盘):是一种特殊的存储程序,用来把LUN从一个存储设备移动到另一个上而无需中断,同时还对云用户保持透明。
    • 存储负载管理架构(storage workload management architecture):使得LUN可以均匀地分布在可用地云存储设备上,而存储容量系统则用来确保运行时工作负载均匀地分布在LUN上。
    • 相关机制
      • 审计监控器(audit monitor):检查对法规、隐私和安全要求的遵守情况,因为这个架构建立起来的系统可以在物理上重新定位数据。
      • 自动伸缩监听器(automated scaling listener):用来监视和响应工作负载的波动
      • 云使用监控器(cloud usage monitor):追踪LUN的移动,并收集工作负载分布的统计数据。
      • 负载均衡器(load balancer):用来在可用的云存储设备之间水平的对工作负载作均衡。
      • 逻辑网络边界(logical network perimeter):确保数据重定位后,也能够对未授权方保持不可访问。