弹性计算学习笔记

1.虚拟化技术概述

1.虚拟化概述

1.定义

在计算机领域,虚拟化指创建某事物的虚拟(而非实际)版本,包括虚拟的计算机硬件平台、存储设备,以及计算机网络资源)可见,虚拟化是一种资源管理技术,它将计算机的各种实体资源(CPU、内存、存储、网络等)予以抽象和转化出来,并提供分割、重新组合,以达到最大化利用物理资源的目的。

2.作用

简单说,虚拟化技术能将物理资源虚拟化。在传统架构当中,一个物理的主机只能支持一个操作系统及上层应用;有了虚拟化技术,一个物理主机可以被分割成多个虚拟的主机,向上支撑多个操作系统及其应用程序。

传统模式:

虚拟化: VMM为了达到虚拟化引入的软件层

2.虚拟化执行层面分类

从实现的方式上划分
  • 硬件虚拟化
  • 软件虚拟化
从虚拟化的程度上划分
  • 半虚拟化
  • 全虚拟化

3.虚拟化技术层面分类

虚拟化是云计算的入门技术,从云计算资源的角度,可以将虚拟化分为:计算虚拟化、存储虚拟化、网络虚拟化。

计算虚拟化

计算虚拟化主要包括CPU虚拟化、内存虚拟化、1/O虚拟化。

存储虚拟化

存储虚拟化主要涉及RAID、分布式存储、分布式文件系统。

网络虚拟化

网络虚拟化主要包含了网络虚拟化和软件定义网络。

4.虚拟化管理工具

虚拟机监控器:VMM

VMM,虚拟机监控器,也称为Hypervisor,为了达到虚拟化而引入的一个软件层。VMM向下能够掌握实际的各种物理资源,向上可以给虚拟机划分逻辑资源,实现了虚拟机独享物理资源的假象。

5.虚拟化技术优势

  1. 性价比高

虚拟化技术减少了数据中心里服务器和相关硬件的数量,降低IT成本

  1. 灵活性强

动态迁移技术有效减少迁移成本,服务不中断

  1. 稳定性强

强大的安全和故障隔离机制,实现同一主机上运行多个应用程序

  1. 利用率高

避免了服务器使用的浪费,充分利用现有的服务器资源

2.虚拟化技术产品介绍

1.KVM虚拟化解决方案

1.KVM概述

KVM全称是Kernel-based Virtual Machine,基于内核的虚拟机,KVM是采用硬件虚拟化技术的全虚拟化解决方案。

  • 它由Quramnet开发,该公司于2008年被RedHat收购。
  • 它支持x86 (32 and 64位), s390, Powerpc 等CPU.
  • 它从Linux2.6.20起就作为一模块被包含在Linux内核中。
  • 它需要支持虚拟化扩展的CPU。
  • 它是完全开源的。
2.发展

KVM全称是基于内核的虚拟机(Kernel-based Virtual Machine),它是一个Linux的一个内核模块,该内核模块使得Linux变成了一个Hypervisor:它由Quramnet开发,该公司于2008年被 Red Hat收购。

2.KVM功能概述

KVM从诞生开始就定位于基于硬件虚拟化支持的全虚拟化实现。它以内核模块的形式加载之后,就将Linux内核变成了一个Hypervisor,但硬件管理等还是通过Linux kernel来完成的,所以它是一个典型的Type 2Hypervisor。

KVM的功能特性
  1. 内存管理

Linux内存管理的机制,如大页、KSM、NUMA、通过mmap的进程间共享内存,可以应用到客户机内存管理上。

影子页表

  1. 存储和客户机镜像格式

KVM能够使用Linux支持的任何存储来存储虚拟机镜像,包括具有IDE、SCSI和SATA的本地磁盘,网络附加存储,或者支持iSCSI和光线通道的SAN。

  1. 实时迁移

KVM支持实时迁移,在宿主机之间转移正在运行的客户机而不中断服务。

  1. 性能

KVM在CPU、内存、网络、磁盘等虚拟化性能上表现出色,大多都在原生系统

的95%以上

3.KVM发展现状及未来趋势

KVM已经成为Openstack用户主流的Hypervisor选择。

经过10年的不断发展和演变,KVM已经非常成熟。KVM未来会怎样进一步发展?

4.其他虚拟化解决方案

Xen
架构

Xen是英国剑桥大学计算机实验室开发的一个开源新项目。它是可以直接运行在计算机硬件上而不是操作系统里的软件层,还可以在计算机硬件上同时运行多个客户操作系统(Guest OS)。在开源社区获得了非常大的推广。Xen支持x86、x86-64、安腾、Power PC和ARM处理器,因而它能够在很多计算设备中运行。现阶段Xen支持Linux、NetBSD、FreeBSD、Solaris、Windows等常见操作系统。Xen在架构上是一个典型的Type1 Hypervisor,与KVM不同。没有宿主机的概念,而是由XenHypervisor(VMM)管理硬件

虚拟化类型—半虚拟化

半虚拟化(Paravirtualization)被称作“超虚拟化”(通称PV),是一种以Xen为主导虚拟化技术。此项技术使虚拟机操作系统可以辨别在Xen虚拟机管理程序上运行,而不是在硬件运行的虚拟机,并鉴别在同样环境里运行的多个虚拟机。

虚拟化类型—全虚拟化

完全虚拟化,又称“硬件虚拟化”(HVM),运行在虚拟环境里的虚拟机总是感觉自己运行在硬件上,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。

VMware
发展
代表性产品

VMware产品线非常全,既有PaaS产品,也有laaS产品;既有运行于Linux平台上的产品,也有Windows和Mac平台上的产品。

HyperV

Hyper-V是微软公司的服务器虚拟化商品,微软公司初次采用了虚拟机管着微软公司将更直接的和市场先峰VMware市场竞争,但仍然有所不同。

Hyper-V是微软公司明确提出的hypervisor虚拟化技术,能够实现桌面虚拟化。Hyper-V最早开始计划在2008年第一季度与Windows Server 2008与此同时发布。Hyper-V Server 2012已完成RTM版本的发布。

架构

HyperV在架构上与Xen类似,也是Type1HypervisorHyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V 底层的Hypervisor 运行在最高的特权级别下,微软将其称为ring-1(而Intel则将其称为root mode),而虚拟机的OS 内核和驱动运行在ring0,应用程序运行在ring3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。

Container

容器严格来说与虚拟化软件并不是一个大类,容器不是某个虚拟化软件,而是某类软件的统称,包括Docker和LXC等。另外,容器不是硬件平台级的虚拟化技术,而是软件运行环境的虚拟化,是一种操作系统级的虚拟化技术。

LinuxContainer容器技术的诞生(2008年)就解决了IT世界里“集装箱运输”的问题。Linux Container(简称LXC)它是一种内核轻量级的操作系统层虚拟化技术。Linux Container主要由Namespace和Cgroup两大机制来保证实现。

技术

Container技术利用了Linux kernel提供的cgroup、namespace等机制,将应用之间隔离起来。

技术特点

与硬件配置抽象层虚拟化hypervisor技术对比,容器的特性非常明显。传统虚拟化(虚拟机)技术不但部署环境与布署应用很麻烦,针对APP运用的可移植性也非常麻烦。例如把vmware中的vm虚拟机迁移到KVM就比较繁琐。但是,拥有容器技术就很简单,容器技术主要有如下的特性:

总结:KVM的优势

1.开源项目,开放的姿态,先应用新技术,Linux

2.性能 架构简单

3.免费

3.弹性伸缩概述

弹性伸缩(AutoScaling)是根据业务需求和策略自动调整计算能力(即实例数量)的服务。

1. 弹性伸缩基本概念

2. 弹性伸缩产品优势

弹性伸缩具有自动化、降成本、高可用、灵活智能以及易审计等优势。

1、自动化

根据预设的配置信息,弹性伸缩能够自动化实现以下功能,无需您人工干预,避免因手动操作而可能引入的低错。

(1)弹性扩张时

<1>自动创建指定数量、指定类型的实例(即ECS实例或ECI实例),确保伸缩内所有实例的计算能力能满足业务需求。

<2>如果伸缩组关联了负载均衡,自动为创建的ECS实例或ECI实例关联负载均衡。负载均衡按需将访问请求分发给该ECS实例或ECI实例。

<3>如果伸缩组关联了RDS数据库,自动将创建的ECS实例或ECI实例的IP添加到RDS访问白名单。该ECS实例或ECI实例可以将应用数据保存到RDS数据库。

(2)弹性收缩时:

<1>自动移出指定数量、指定类型的实例(即ECS实例或ECI实例),确保冗余的资源及时得到释放。

<2>如果伸缩组关联了负载均衡,自动为移出的ECS实例或ECI实例取消关联负载均衡。负载均衡不再给该ECS实例或ECI实例分发访问请求。

<3>如果伸缩组关联了RDS数据库,自动从RDS访问白名单中移出ECS实例或ECI实例的IP。该ECS实例或ECI实例不再保存应用数据到RDS数据库。

2、降成本

弹性伸缩按需取用,自动释放,提高资源的利用率,有效降低成本。

<1无需提前准备冗余的ECS实例或EC(实例,来防止业务高峰期受到影响;无需担心不能及时释放冗余资源,造成成本浪费。弹性伸缩能够适时调整计算能力,降低了资源的拥有成本。

<2>无需投入大量人力来调整计算资源,节约了人力成本和时间成本。

3、易审计

弹性伸缩自动记录每一个伸缩活动的详细信息,有助于您快速定位问题根源,降低了排查难度。弹性伸缩还提供伸维组监控功能,可以通过云监控查看伸缩组内的实例运行状态。您无需多次查看多台ECS实例或ECI实例的运行状态,有助于您快速了解整体的业务供给能力。

4、高可用

弹性伸缩支持监测ECS实例或ECI实例的健康状况(即运行状况)。如果发现一台ECS实例或ECI实例未处于运行中状态,则弹性伸缩判定为该ECS实例或ECI实例不健康,并及时自动增加ECS实例替换不健康的ECS实例,或者及时自动增加ECI实例替换不健康的EC实例,来确保业务的高可用。弹性伸缩可以有效避免因不能及时发现ECS实例或ECI实例的不健康状态,而导致业务连续性受到影响的情况。

5、灵活智能

弹性伸缩的功能丰富、灵活智能、高可用,可以有效降低手动配置的复杂度,提高操作效率。

(1)伸缩模式:支持多模式兼容,可同时配置固定数量、健康、定时、动态、自定义模式。其中,动态模式支持对接云监控服务,可以通过AP对接外部的监控系统。

(2)实例配置来源(实例使用的模板):

<1>支持多种配置方式。例如,从已有实例创建伸缩配置,或者新建伸缩配置。如果是ECS实例使用的模板,还支持指定启动模板,

<2>支持匹配多个ECS实例或EC|实例规格,有效增加模板的灵活性,提高扩容的成功率。比如,ECS实例的模板支持配置多实例规格、多磁盘类型等;EC(实例模板支持指定vCPU和内存来匹配多个实例规格。

(3)弹性伸缩策略:如果伸缩组是ECS类型,弹性伸缩支持丰富的扩缩容策略。如果伸缩组是ECI类型,伸缩策略是默认的。

<1>优先级策略:弹性伸缩会在优先级高的可用区扩缩容。如果无法扩缩容,则自动在下一优先级的可用区进行扩缩容。

<2>均衡分布策略:弹性伸缩在多个可用区均衡分布ECS实例,提高可用性。

<3>成本优化策略:当您在组内实例来源中指定了多实例规格时,优先创建VCPU单价最低的ECS实例,优先移出伸缩组内vCPU单价最高的ECS实例。

<4>实例移出策略:您可以选择移出最早伸缩配置对应的实例,或者最早、最新创建的ECS实例。

<5>实例回收模式:移出ECS实例时,您可以直接释放ECS实例,也可以保留部分资源,节省付费。

3. 弹性伸缩应用场景

4. 弹性伸缩工作原理

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注