day02 - 云计算主流技术 与 Docker简介


知识回顾:


虚拟化的好处:
  1. 通过资源复用,提高资源利用率
  2. 统一管理资源,降低运维难度和运维工作量
  3. 通过虚拟化实现了应用和硬件解耦,上层应用不依赖底层硬件
  4. 操作系统从资源池分配资源,实现资源的统一管理和分配


第一章:云计算的主流技术

  1. 云计算技术简介
  2. Docker简介

1、什么是虚拟化:
        将任意的资源抽象成另一种资源的技术。
    
        云计算环境下降底层的存储设备、网络设备、计算设备等资源统一起来,封装成资源池,供多个操作系统和应用系统使用,从而整合资源,提高了资源利用率。


2、虚拟化的几个重要概念:



几个和虚拟化相关的常见概念:
  • 虚拟机:虚拟机VMVirtual Machine)是指使用虚拟化技术,通过软件模拟完整的计算机硬件系统功能,构造出的完整虚拟计算机系统。该虚拟机可以独立运行在一个完全隔离的环境中,像使用本地计算机一样安全可靠。
  • Hypervisor:即虚拟机监视器VMMVirtual Machine Monitor),是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。Hypervisor是一种在虚拟环境中的“元”操作系统。它可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisor是所有虚拟化技术的核心Hypervisor不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统,同时会分配给每一台虚拟机适量的内存、CPU、网络和磁盘。
  • Xen Hypervisor:是一个开源的采用半虚拟化技术的VMM,负责在各虚拟机之间进行CPU调度和内存分配。Xen Hypervisor抽象出硬件层,并控制虚拟机的执行,但不会处理网络、存储设备、视频以及其他I/O(输入/输出)。由于Xen Hypervisor可以在单个计算机上运行多个修改过的操作系统,且最上层的用户应用无需做特殊修改,因此Xen Hypervisor无需特殊硬件支持,就能达到高性能的虚拟化。
  • 宿主操作系统:宿主操作系统(Host OS)指被虚拟的物理机的操作系统。
  • 客户操作系统:客户操作系统(Guest OS)指运行在虚拟机上的操作系统。
  • Domain 0:指运行Host OS的虚拟机。Domain 0是其他虚拟主机的管理者和控制者,可以构建其他更多的Domain,并管理虚拟设备。它还能执行管理任务,比如虚拟机的休眠、唤醒和迁移其他虚拟机。
  • Domain U:指除Domain 0之外的虚拟机。

3、虚拟化的特点:



  • 分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使您能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。
  • 隔离:虚拟机是互相隔离的:
    • 一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障,等等)不会影响同一服务器上的其它虚拟机。
    • 一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样。
    • 可以进行资源控制以提供性能隔离:您可以为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可用。
    • 可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论传统 x86 服务器体系结构的局限性时所提到的那些问题(应用程序冲突、DLL 冲突等)。
  • 封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。这样,您只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。
  • 相对于硬件独立:因为虚拟机运行于虚拟化层之上,所以只能看到虚拟化层提供的虚拟硬件;此虚拟硬件也同样不必考虑物理服务器的情况;这样,虚拟机就可以在任何 x86 服务器(IBMDellHP等)上运行而无需进行任何修改。这打破了操作系统和硬件以及应用程序和操作系统/硬件之间的约束。
  • 我们可以看到,这些功能对于在虚拟机中建立系统来说具有重大的意义。


4、云计算基于虚拟化技术,通过云计算向上提供服务,



  • 服务器虚拟化
  • 将一台物理服务器虚拟成多台虚拟服务器。虚拟机是运行在物理机上的一系列的标准虚拟硬件,并由一系列的文件组成
  • 虚拟机与物理机相比
  • 物理机的操作系统运行在物理硬件上,物理硬件的变更必然带来操作系统的变化。一个操作系统总往往只能运行一个应用,因此资源利用率低,往往只有510%。虚拟化环境中,多台虚拟机可以运行在同一个物理硬件上,因此大大提高了资源的利用率,节约能耗。另一方面,虚拟机是由一系列标准虚拟硬件组成的,底层的物理硬件变化不会影响到上层的虚拟硬件,因此虚拟机的生命周期更长,不会随着硬件变化而变化。同时可扩展性也更好,可以根据需求的变化,非常容易更改资源的分配
  • 虚拟机是由一系列文件组成的,因此高可靠、迁移、保护等高级功能可以非常容易地实现
  • 虚拟机易于创建、易于管理,用户可以更方便地获取计算资源,减少整体拥有成本,包括管理、维护等
  • 更多高级功能
  • 在线的数据、虚拟机迁移
  • 高可用
  • 自动资源调配
  • 计算云
  • 1.降低运营成本
  • 服务器虚拟化降低了IT基础设施的运营成本,运维人员可以从繁重的物理服务器、OS、中间件及兼容性的管理工作解放处理,减少人工干预频率,使管理更加强大、便捷。
  • 2.缩短上线周期
  • 虚拟化中对可以将需要批量预安装机器进行模板化,使用模板创建虚拟机,不仅可以缩短安装周期,也可以减少人工带来的配置失误。从而缩短操作系统安装部署周期,进而缩短业务的上线周期。
  • 3.提高可靠性
  • 通过集群部署、双网卡、双电源以及OS盘的RAID策略都可以为我们提升基础架构的可靠性。通过对集群设置,我们可以实现虚拟机的冷热迁移,故障恢复甚至容错等,从而在架构上实现了高可靠。
  • 4.提高资源利用率
  • 摆脱传统架构单台服务器单个应用,通过虚拟化技术,资源可以以更小的单位提供,可以实现一比多的形式,很大程度提高了物理资源的利用率,同时,可对虚拟机进行隔离,保证了安全性。
  • 5.动态资源调度(DRS
  • 通过DRS可以实现机房节能环保,降低功耗,在资源闲置时自动迁移并关闭部分资源,资源紧张时可自动开启资源并负载均衡





虚拟机的三个特征: 
  • 同质(Equivalence)
    VM 的运行环境和物理机的环境在本质上是相同的,表现上可以有一些差异。如 CPU ISA 必须一致(实际可以不一致)CPU core 的个数可以不同。
  • 高效(Efficiency)
    VM 的性能必须接近物理机。因此,常见的模拟器 (boches, simics ...) 就不能称为 VM
    为达此目的,软件在 VM 上运行时,大多数指令要直接在硬件上执行,只有少量指令需要 VMM 的模拟或处理。
  • 资源受控(Resource control)
    VMM 对物理机的所有资源有绝对的控制力

虚拟化的三种架构:


  • 寄居虚拟化:寄居虚拟化架构指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理。虚拟化管理软件作为底层操作系统(WindowsLinux等)上的一个普通应用程序,然后通过其创建相应的虚拟机,共享底层服务器资源。也可以理解为在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理。
  • 裸金属虚拟化:裸金属虚拟化架构指直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理。Hypervisor是指直接运行于物理硬件之上的虚拟机监控程序。它主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的CPU特权指令 或保护指令;其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机。
  • 操作系统虚拟化:操作系统虚拟化架构在操作系统层面增加虚拟服务器功能。操作系统虚拟化架构把单个的操作系统划分为多个容器,使用容器管理器来进行管理。宿主操作系统负责在多个虚拟服务器(即容器)之间分配硬件资源,并且让这些服务器彼此独立。
  • 混合虚拟化:将一个内核级驱动器插入到宿主操作系统内核。这个驱动器作为虚拟硬件管理器来协调虚拟机和宿主操作系统之间的硬件访问。混合虚拟化需要底层硬件支持虚拟化扩展功能。
        华为公司的统一虚拟化平台使用的是裸金属虚拟化架构。
        没有独立的hypervisor层。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)




  • Xen作为最优秀的半虚拟化引擎,在基于硬件的虚拟化帮助下,现在也完全支持虚拟化MS Windows。被设计成一个独立的内核,它只需要Linux执行 I/O,这样使得它非常的大,并且它有自己的调度程序、内存管理器、计时器和机器初始化程序。Domain 0(特权虚拟机)是其他虚拟机的管理者和控制者,可以构建其他更多Domain,并管理虚拟设备。它还能执行管理任务,比如虚拟机的休眠、唤醒和迁移其他虚拟机。此外,还有个Domain U,这个是指除了Domain 0之外的普通虚拟机。
  • KVM是一个独特的管理程序,其让Linux内核自身变成一个管理程序,通过KVM作为一个内核模块实现,在虚拟环境下Linux内核集成管理程序将其作为一个可加载的模块,可以简化管理以及提升性能。KVM使用标准Linux调度程序、内存管理器和其他服务。将虚拟技术建立在内核上而不是去替换内核。     
  • 通过前后端驱动模型,实现IO的捕获




第二章:Docker简介


Docker:容器是一种轻量级、可一直、自包含的软件大伯啊技术,使应用可以在几乎不同的任何地方在

1、让每种服务能够在所有的部署环境中顺利运行

2、将业务、应用、服务、环境封装起来,使其能够在不同的环境中进行使用,从而不用考虑不同的环境的兼容性的问题


  • 对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失。
  • 我们可以从生活经验中寻找答案。当我们去陌生城市旅游想了解一下这个城市一般我们会怎么做?
  • Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,大家也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素。
    我想大部分人应该会打开手机看一下这个城市的地图:
      城市大概的位置和地理形状是什么?
      都由哪几个区或县组成?
      主要的交通干道是哪几条?
    同样的道理,学习容器技术我们可以先从天上鸟瞰一下:
      容器生态系统包含哪些不同层次的技术?
      不同技术之间是什么关系?
      哪些是核心技术哪些是辅助技术?








没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试