前言是因为之前留了个坑,现在把虚拟机提到云计算方向了一起说.(run
把基本的脉络梳理一下,简单入门,也是抛砖引玉了.
1.云服务器
简单说云计算就是集中供暖供水一样,然后大家需要的去分,而不是每家每户挖口井自己取水,或者太阳能自己供电. 即时可用,可以按需分配.
那么云服务器其实就是普通服务器用了虚拟化技术之后的, 可以理解为云虚拟机大部分云服务器.有如下属性:
实例(Instance)
- 多指具体的某一个虚拟机,或者服务器
- 配置常见属性CPU核数,内存,网络,存储等
- 由元数据(meta-data)标识属性
镜像(Image)
就是创建云服务器的模板. 用过KVM管理的工具VCenter就知道,里面常用的就是新虚拟机创建用模板去生成. 还有类似快照这种备份的名词.
==特性==:
弹性
- 高效
- 快速复用
- 平滑(无感)扩缩容
- 付费方式灵活(时间/流量)
- 混合部署
- 自动化
- 提供RESTful API (保证统一可用,一般数据传输Json)
- 集成自动化运维体系
- 实现DevOps
- 专业(集中)
- 冷热迁移
- 高可用 (HA)
- 多种容灾方案
- 网络连接保障
- 安全保障
- 高效
2.虚拟化
虚拟化是整个云计算的核心之一. 这里主要说一下1, 虚拟化是什么 2.KVM跟XEN 3.弹性计算
a.虚拟化
- 概念(见图)
产生上世纪60年代
指的是计算元件 在 虚拟的环境基础上运行
将物理抽象为逻辑 (比如说现在很火的VR,就是把物理抽象为逻辑. 虚拟现实嘛哈哈)
(红框里 : 虚拟机监控器)
从最底层的硬件 –> VT –>OS –>app_server–>VM.最开始就是因为计算机很少,都是大型计算机,怎么把资源进行分割呢? 提出了最早的X86虚拟化技术,虚拟机中打交道的不是真实的硬件,而是VT层之后的环境.
分类
- 按虚拟对象分
- 操作系统虚拟化 : 将OS及OS调用抽象为资源,通过软件进行资源隔离
- 平台虚拟化 : 讲硬件组件抽象为逻辑资源
- 按方案分
- 软件虚拟化 : 用纯软件去模拟硬件平台,缺点是性能受到限制
- 硬件虚拟化 : 硬件本身提供隔离跟重定向, 缺点是耦合紧密
- 按方式分(KVM 与 XEN)
- 全虚拟化
- 准虚拟化
- 按虚拟对象分
虚拟机监控器
虚拟机的本质
b. KVM
KVM(Kernel-based Virtual Machine) 从linux2.6开始打包在内核里面发行.\
a.特性
需要运行在硬件虚拟化支持的机器上(intel- VT/AMD-V)
二型虚拟机监控器(形式上) : KVM 负责跟硬件通信, QEMU负责与vm通信,工作在user space
利用QEMU进行设备模拟 (如图,什么是QEMU见下)
1
21.QEMU是一个完整的可以单独运行的软件,它可以用来模拟机器,非常灵活和可移植。它主要通过一个特殊的'重编译器'将为特定处理器编写二进制代码转换为另一种。(也就是,在PPCmac上面运行MIPS代码,或者在X86 PC上运行ARM代码)
2.当一起工作的时候,KVM管理CPU和MEM的访问,QEMU仿真硬件资源(硬盘,声卡,USB,等等)当QEMU单独运行时,QEMU同时模拟CPU和硬件。- 仅支持全虚拟化一种模式,完整模拟所有的环境 (缺点是纯粹软件服务的模拟会很慢)
- 支持准虚拟化驱动提升I/O性能 (准虚拟化详见Xen)
- 充分利用Linux kernel
- 虚拟机为标准Linux 进程
- 利用Linux调度功能
- 内存管理模块
- 电源管理功能
b. 如何实现虚拟化
CPU虚拟 : 主要用CPU硬件特性,intel-VT/AMD-V 辅助
内存虚拟(二级内存映射,如图)
IO虚拟(三种)
- 完全依靠QEMU去模拟,优点是兼容性最好,缺点是性能最低.
- 半虚拟化设备驱动. 可以提高IO性能
- 分配专用设备同时保证兼容性与性能
c. KVM的功能
- 可以支持超大规模的主机服务器
- 主机 : 1024CPU,8TB内存
- 虚拟机: 160CPU,2TB内存.
- 支持快照(备份某个虚拟机的当前环境)
- 支持迁移,包括热迁移(不用关闭当前虚拟机)
- 逐步将内存内容复制到新地址
- 在最后一部分内容复制完毕前关闭源虚拟机
- 复制完毕后开启目标虚拟机
c. Xen(读音:zen)
- 采用定制微内核 (源于剑桥大学的开源项目,直接运行在裸机上. KVM是运行在Linux上么)
- 把每个虚拟机称为Domain域.特殊的虚拟机Domain 0 作为管理平台,只有它有直接访问硬件的权限(如图)
- 属于一型虚拟机监控器,其他虚拟机都需要通过虚拟I/O 通过Domain0来访问
支持多种虚拟化方式: 全虚拟化 ,准虚拟化等 (准虚拟化是指不用软件来模拟完整的硬件环境,而是利用一套适合软件平台的环境来简化硬件访问. )[什么叫适合软件平台的环境,见下面详细描述.]
运行准虚拟化虚拟机时需要做下面工作(适合软件平台的环境)
- 需要更改客户机系统
- 替换掉复杂的硬件指令
- 客户机配合虚拟化工作(纯软件模拟效率低下)
- 不模拟客户机环境
d. KVM与Xen比较
相同点:
- 开源并应用广泛 (实际KVM要广得多)
不同点:
- KVM得到了Linux社区大力支持(这也是为什么KVM发展推广比Xen快很多)
- KVM更容易维护和使用
- Xen的产品历史更悠久
- Xen提供对准虚拟化的支持(也是准虚拟化的创造者)
e. 弹性计算
概念
弹性: 自动化的调整计算资源的供应量. 并尽量贴近当前需求.
意义: 资源利用率最大化,是云计算的重要基础
实现基础 (三部分)
- 虚拟化技术 (软件技术来虚拟计算资源)
- 自动化资源管理与监控
- 高可用与容灾
弹性资源(主要3块)
- 计算资源 : 伸缩的云服务器
- 网络资源 : 弹性IP
- 存储资源 : 弹性云硬盘
应用的弹性伸缩的例子
利用公有云的IaaS服务创建弹性伸缩组.
- 在云服务器负载都大于50%时扩容
- 在云服务器负载都小于20%时锁容
3.实际的云计算平台
基本概述
后续
待更新~










