为什么会出现云之传统数据中学面临的问题

物理服务器的利用率非常低,浪费资源,且资源分配不合理,比如一台服务器CPU使用率不到40%,或者某个应用需要的硬件配置低但是服务器硬件配置高等等。

云计算概念

云这个概念流行时间很久了,但是仍然很多人不懂不理解什么是云,所以在此先解释下什么是云:

云就是天上的云,天上的云由水蒸气遇冷凝聚而成,水蒸气由陆地或海洋等地表水蒸发而来,而地表水又通过大气降水的形式来获取,所以整个流程如下:

上图的特点就是:循环使用

那云还有一个功能就是动态分配:

我们指定地理环境导致降水不均,所以有时候需要人工参与降水,那么此时缺水的地方通过人工降水降水量会多点,这就形成了一个动态分配的功能,哪里需要多点就人工降雨,不需要的地方人工驱雨。

所以云计算它有以下三个特点:

  1. 它是一种模式
  2. 使用方法需要网络访问
  3. 按需付费,便捷的,可用的。

所以,综上所述,云的特点就是:按需分配(动态分配),循环使用。

云计算分类

  1. 私有云

    数据安全性高,但是需要公司人工来搭建。
  2. 公有云

    一般商业化,卖给个人或公司。特点就是数据不安全性,机密的数据不适合放在这里。
  3. 混合云

    既有自己的私有云,也有购买到的阿里云的,混合使用就是混合云。

云计算分层

  1. SaaS(Software as a service)

    软件服务,卖软件服务给用户,用户不需要关系软件版本升级,漏洞修补之类的信息,只需要学会使用就行了。
  2. Paas(platform as a service)

    平台服务,我们不需要关心系统,中间价等等系统和硬件之类的信息,我们只需要关心自己开发的代码和相关的数据。
  3. Iaas( Infrastructure as a service)

    基础设施服务,云供应商提供基础环境,比如确保网络畅通,云主机不会经常宕机等等,它就给你一个操作系统,操作系统下面的硬件我们作为使用者不需要关心。

SAAS,PAAS,IAAS的概念如下图所示:

云计算与虚拟化的关系

云计算依赖于虚拟化,虚拟化不等于云计算。

例如Openstack使用的KVM的技术。

所以下面说说KVM的虚拟化技术。

虚拟化技术-KVM(Kernel-based virtual machine)

虚拟化是一个广义的术语,是指计算机元件在虚拟的基础上而不是真实的基础上运行,是一个简化管理、管理资源的解决方案。

如上图所示,我们可以将一般的计算模型抽象成为一定的物理资源和运行于之上的计算元件,他们之间通过定义的物理资源接口进行交互。随着计算机硬件技术的发展,物力资源的容量越来越大而价格越来越低,在既有的计算元件架构下,物理资源不可避免地产生了闲置和浪费。为了充分利用新的物力资源,提高效率,一个比较直接的方法就是更新计算元件以利用更加丰富的物理资源。但是人们往往出于稳定性和兼容性的追求,并不愿意频繁地对已经存在的计算元件做大幅度的变更。虚拟化技术则是另辟蹊跷,通过引入一个新的虚拟化层,对下管理真实的硬件物理资源,对上提供虚拟的系统资源,从而实现了在扩大硬件容量的同时,简化软件的重新配置过程。

对于上端话说的资源这个词,我们可以理解为各式各样的形式,例如把系统以及提供的系统调用作为资源,那么虚拟化好就表现为操作系统虚拟化,在一台真实服务器上虚拟出多台linux系统。

在X86平台虚拟化技术中,新引入的虚拟化层通常称为虚拟机监控器(Virtual Machine Monitor),也叫做Hypervisor。虚拟机监控器运行的环境,也就是真实的物理平台,称之为宿主机。而虚拟出来的平台成为虚拟机,里面运行的系统对应地也成为客户端操作系统。

软件虚拟化和硬件虚拟化

在上面的虚拟化介绍基础之上,我们再说说软件虚拟化和硬件虚拟化。但是得首先了解一个概念:是不是什么物理资源都可以被虚拟化的。

如下图所示,实现虚拟化的第一步就在于,虚拟化层能够截获计算元件对物理资源的直接访问,并将其重定向到虚拟资源池中。根据虚拟化层是通过纯软件的方法,还是通过物理资源提供的机制来实现这种“截获并重定向”,我们可以把虚拟化划分为软件虚拟化和硬件虚拟化。

软件虚拟化

通过软件的方法在现有的物理平台上(往往不支持硬件虚拟化)实现物理平台访问的截获和模拟。

常见的软件虚拟机就是QEMU,它是通过软件的来仿真X86平台处理的取指,解码和执行,客户机的指令并不是在物理平台上的直接执行。由于所有的指令都是软件模拟的,因此性能往往较差,但是可以在同一平台上模拟不同的架构平台的虚拟机。

还有一种是VMware,VMware使用了动态二进制编译的技术。VMware软件在可控制的范围内,允许客户机的指令在物理平台上直接运行。但是客户机指令在运行前会被VMware扫描到,其中突破VMware限制的指令会被动态替换为可以在物理平台上直接运行的安全指令,或者替换为对VMware的软件掉哟个。这样做的好处就是比纯软件模拟有大幅提升。但是同时也失去了跨平台的能力。

硬件虚拟化

物理平台提供了对特殊指令的截获和重定向的硬件支持。甚至,新的硬件会提供额外的资源来帮助软件实现关键硬件资源的虚拟化,从而提升性能。

以X86平台的虚拟化为例,支持虚拟化技术的X86 CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集、VMM会容易将客户机置于一种受限制的模式下运行,一旦客户机试图访问物理资源,硬件会暂停客户机的运行,将控制权交回给VMM处理。VMM还可以利用硬件的虚拟化增加机制,将客户机在受限模式下对一些特定资源的访问,完全由硬件重定向到VMM指定的虚拟资源,整个过程不需要暂停客户机的运行和VMM软件参与。

由于虚拟化硬件提供全新的架构,支持操作系统直接在上面运行,无需进行二进制转换,减少了相关的性能开销,极大的简化了VMM设计,进而使VMM能够按通用的变准进行编写,性能更加强大。

硬件虚拟华技术是一套解决方案。完整的情况需要CPU,主板芯片组,BIOS和软件的支持。例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM软件的情况下,也会比完全不支持虚拟化技术的系统有更好的性能。

准虚拟化和全虚拟化

准虚拟化(半虚拟化 para-virtualization)

我们指定软件虚拟化可以在缺乏硬件虚拟化支持的平台上完全通过VMM软件来实现对各个虚拟机的监控,以保证他们之间彼此独立和隔离的。但是付出的代价是软件复杂度的增加和性能上的损失。减轻这种负担的一种方法就是,改动宿主机,使它以为自己运行在虚拟环境下,能够与虚拟机监控机(虚拟软件)来协同工作。这种方法就叫做准虚拟化,也叫做半虚拟化。本质上,准虚拟化弱化了对虚拟机特殊指令的被动截获或要求,将其转化宿主机操作系统的主动通知。但是,半虚拟化需要修改宿主机操作系统的源代码来实现主动通知。

XEN就是开源准虚拟化技术的一个例子。

全虚拟化(full virtaulization)

与半虚拟化技术不同,全虚拟化为宿主机提供了完整的虚拟X86平台,包括处理器,内存,外设,支持运行任何理论上可在真实物理平台上运行的操作系统,为虚拟机的配置提供了最大程度的灵活。不需要对客户机操作系统做任何修改即可正常运行任何非虚拟化环境中已存在基于X86平台的操作系统和软件,是全虚拟化最大的优势。

1 云计算系列之云计算概述和KVM虚拟化简介的更多相关文章

  1. KVM虚拟化——简介

    KVM 基于内核的虚拟机KVM(Kernel-Based Virtual Machine)是2007年问世的开源虚拟化解决方案.KVM需要两个条件: ①硬件支持全虚拟化 ②操作系统为Linux KVM ...

  2. KVM虚拟化简介及安装

    kvm是基于图形化的linux操作的 安装图形化界面的知识点: 磁盘空间有两个词: 精简置备:我先在我系统里面去声明我要一个50G的空间,但是呢,我不会把50G都分给你,你用多少,我分给你多少,但是做 ...

  3. 云计算概述和KVM虚拟化

    前言: 近些年一直听着 虚拟化.云计算.公有云.私有云.混合云这些个概念,一直想着....这些概念要用什么技术实现? 一.云计算的概念 1.传统IDC机房面都会临什么问题? 任何新事物都是由需求催生的 ...

  4. KVM -> 虚拟化简介&虚拟机安装_01

    什么是虚拟化? 在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU.内存.磁盘空间.网络适配器等),予以抽象.转换后呈现 ...

  5. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  6. 安装配置KVM虚拟化

    安装KVM虚拟化 KVM需要硬件⽀持, 所以需要开启虚拟化⽀持 硬件设备直接在BIOS设置开启CPU虚拟化 个⼈电脑同样进⼊BIOS开启虚拟化⽀持 VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技 ...

  7. 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较

    1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...

  8. 4 云计算系列之Openstack简介与keystone安装

    preface KVM 是openstack虚拟化的基础, 再介绍了kvm虚拟化技术之后,我们介绍下openstack和如何搭建. Openstack组件 openstack架构图如下所示 那么我们就 ...

  9. 云计算之KVM虚拟化实战

    1 基础环境规划 1.1 主机环境规划 系统版本 主机名 IP地址 内存 磁盘 CentOS6.9 kvm-node1 10.0.0.200 2G 20G CentOS6.9 kvm-node2 10 ...

随机推荐

  1. crontab -e 每天定时备份mysql

    contab -e 00 03 * * * mysqldump -u juandx --password=wenbin -d 'juandx$blog' -h host > /home/juan ...

  2. SQL Server Integration Services(SSIS) 包配置与部署

    SSIS配置此处的配置方式,主要针对到正式服务器上要修改服务器名,和连接服务器等配置注意:1. 包配置在windows2008上生成后,在windows2003上mysql的配置无法使用,总是报错连接 ...

  3. Hive基本语法操练

    建表规则如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

  4. sql 日期格式汇总

    SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式 SQL Server中文版的默认的日期字段datetime格式 ...

  5. MYSQL的常用命令和增删改查语句和数据类型

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  6. php环境搭建wampserver、Apache、Mysql和php

    wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b搭建php环境 在win下,下载wampserver2.5-Apache-2.4.9-Mysq ...

  7. Android 中shape的使用(圆角矩形)

    一.在res/drawable文件夹下创建一个名为gradient_box的xml文件: <?xml version="1.0" encoding="utf-8&q ...

  8. Python简单练习

    #coding=UTF-8 a=10; b=2; c=a+b; print (c); score=90; if score>=80: print ("很好"); elif s ...

  9. 基于网格的分割线优化算法(Level Set)

    本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...

  10. Android开发之InstanceState详解

    Android开发之InstanceState详解   本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...