您的位置:首页 > 大数据 > 云计算

云计算是什么

2017-11-12 17:28 267 查看

云计算是什么

参考学习链接

一、传统的电脑

当你启动一台个人电脑(PC机)时,电脑所做的事情就是把硬盘上的操作系统(OS,本文以微软的Windows 8 为例,但是也可以是Unix,Linux等等)的一些基本的控制程序调入电脑的内存中去。一旦这个过程完成,这台电脑就完全由windows控制了。所谓的电脑,其实就是你在上面工作的Windows。

对Windows而言,它所赖以运行的,只有电脑的处理器(CPU),内存,和存储设备(硬盘)这三个要素(或者说三项资源)。电脑还有机箱,但那只是起着封装,固定,再加供电的作用,电脑还有主板,但那只是起着电脑内各主要部件通信连接的作用。当然,你可能还需要网络连接,但那只是一项外在资源,不是Windows本身所必须的。作为PC机,你还需要键盘和显示器等外部设备来直接在机器上工作。如果是服务器,则不需要键盘和显示器,一切都是可以远程登陆访问。

所以一台电脑实质上是在CPU,内存,和硬盘上运行的Windows。当打开Windows的任务管理器,你就会发现,CPU和内存大部分是闲置的。特别是CPU,其利用率不到10%。Windows在硬盘上占有的空间一般是几个GB。也就是说,一个Windows独占了电脑的全部资源,而这大部分资源又都是闲置的。



那么,有没有这种可能,不让一个Windows单独控制一台机器,而是在一台机器上安装多个操作系统,并且让他们能同时的运行?

有,做好的方案就是虚拟化

二、虚拟化

当安装一台电脑的时候,你不再是安装普通的Windows,而是安装一个资源调度程序,也叫“监控程序”(Hypervisor)。这个监控程序很小。取决于哪个厂家的产品,小的只有100多兆字节,大的也只有几个G的字节。监控程序安装完成之后,会得到一个工作界面,你通过这个界面设置一个网络连接(IP地址)。这个界面很简单,多数情况下你可以通过浏览器从别的机器上访问这个界面。

前面说了,一个Windows机器,实质上是由CPU,内存,硬盘组成的一个组合体。通过监控程序的界面,你可以建立多个组合体。每个这种组合体,就是一台仿真的电脑。当监控程序创建一个仿真的电脑时,他实际上只是创建了两个文件:一个是关于这个组合体的配置信息(被分配了多少CPU,多大内存,多大硬盘);另一个文件,这个仿真电脑的“硬盘”,这
4000
个仿真的“硬盘”实际上就是一个封装的文件(在有些情况下,也可以是几个文件)。

当你点击“开机”来启动这个仿真的电脑的时候,监控程序开始为它分配CPU和内存,并且启动它。当然,这套“仿真的电脑在第一次启动的时候,是没有安装任何操作系统的“裸机”,那个封装的文件也是空的,这时你可以进行正常的系统安装(比如安装Windows)”

对于Windows而言,它不知道真假,它反正能得到所需要的CPU,内存,硬盘就可以正常运行了,一切和真的机器一样。对于监控程序而言,这个Windows不是直接和硬盘打交道的,一切资源都需要监控程序来调度和分配,所以这台“Windows机器(组合体)就是一台虚拟的机器,简称VM”。

这种通过监控程序把硬件的机器,同操作系统分开的过程,就是虚拟化。

当监控程序创建一个VM时,它就给VM配置资源的大小,比如2个1GHz的CPU,2GB内存,和100GB硬盘。这样VM(Windows)就以为自己拥有了双核的1GHZ CPU,2GB内存,100GB硬盘。但这只是Windows所能使用资源的上限。Windows在实际运行中并不需要消耗那么多,监控程序只是给它按需分配实际消耗的资源,比如0.1GHZ CPU ,0.5GB内存 ,和20GB硬盘。表现在实际的硬件消耗上,着20GB的存储量,就是实际硬盘上的那个20GB大小的封装文件。

一台电脑,可以通过监控程序创建几个,几十个,甚至上百个VMS。比如,一台拥有16GB内存的PC机,你可以创建10个VMS,给每个VM分配4GB内存。看似总共分配了40GB的内存,但是PC机的实际内存只有16GB.

通过虚拟化,一个单台的硬件器可以同时运行多个虚拟的机器(VMS);更重要的是,虽然一个虚拟的Windows的系统盘(C盘)上有成千上万个系统文件,但是他表现在硬件的存储设备上,只是一个或几个打包的大文件。当你把这一个或几个大文件移到被的地方,整个VM就移走了。



三、配载调配合平衡

如果虚拟化的不只是一台机器,而是A,B两台,并且两台机器都共享一个大的存储设备(硬件阵列,或硬件库),那会怎样?

前面说了,一个VM就是一个(或几个)大文件。如果这个大文件放在共享的存储设备上,A,B两台机器上的监控程序都能看到这个VM。那么这个VM就既可以在A机器上运行,也可以在B机器上运行。所谓在哪台机器上运行,就是通过那台机器上的监控程序,把Window启动到其分配的虚拟内存就是了。

假设VM1到VM10 等10个VMs在A上运行,VM11到VM20 等10个VMs在B上运行。现在要对A进行关机维护,那么它上面的10个VMs就可以在线移动到B上,而且所有10个Windows都保持不间断,用户根本意识不到变化,因为所移动的东西,只不过是内存中的数据而已。

这个移动不是由A或B指挥的,而是由装在另一个C机器上的专门的数据中心管理软件指挥的。

这个数据中心管理服务器C,可以监控A和B的运行状态,一旦出现资源紧张,它可以自动触发在线迁移,把一个或多个VM移到对方的机器上运行。当然,这里需要一个事先设定的阙值标准。

如果是创建新的VM,C可以自动决定把新的VM放在哪台机器上。

这里只是假设A,B两台机器。实际上,C可以管理几十,几百,上千台机器。共享的存储设备也不止一套,可以是多套(VMS也可以在不同的存储设备间移动,只是移动的时间比较长而已)。

C通过个机器上的监控程序,间接管理所有的资源。



至此,云的雏形初现了,但还不是云。因为,所有的这些管理和控制,都是数据中心自己的职责。用户还无法对所需要的资源进行自主管理。

四、云最后的形成

数据中心服务器C可以不止一个,可以有多个。他们创建和管理的VMS也许可以供外界用户访问(比如网站),但是用户无法直接管理VMS,更无法管理C提供的服务,或资源。



1.资源池

现在,再加上一个更上层的服务器D,由它来管理一个或多个C,这个D,就是云服务器了。

C把各自管理的资源提交给D,比如,一个或者几个C总共向D提供了5000GHZ CPU ,3TB内存,3PB存储空间。D再把所有资源组成一个大池子,叫做‘资源池’

这个池子的大小是可以动态变化的。当C控制的资源增加了,升级了,C可以动态向这个池子贡献资源,这个庞大的资源也就随之增长得更大。

2. 二次虚拟

为了便于分配和管理,D把庞大的资源池划分为多个子集(小组),这每个子集就相当于一个虚拟的数据中心(或叫“计算中心”)。

D再从各个“计算中心”里提取计算资源,创建一个个用户环境。每个用户环境就相当于一个“机房”,这个“机房”包括CPU,内存,存储等资源。

D同时还给用户提供登陆访问的接口。用户通常用浏览器来登陆这个接口。

作为用户,当你用浏览器连接到D提供的访问界面,就可以建立一个账户,并且输入你的信用卡号。这时,云服务器D就可以根据你的要求,提供所需要的“机房”。

这个“机房”的大小,完全根据用户的需求而定,比如可以包括50GHZ CPU ,100GB内存,2TB硬盘。这些“机房”的资源,都是由云服务器D从他的那些虚拟的“计算中心”里抓给你的。

通过层层抽象和虚拟,在每个“机房”里,你看不到,也不用去关心计算资源实际来自哪里。

所谓的虚拟化,只不过是对资源整合,分配的过程,只是我们看不见这个过程的运行。

3.用户的自主管理

当你作为一个用户拥有了一个“机房”,你就可以随意干你所需要的事:

建立多台虚拟的机器(VMS)。云商在你的机房里已经提供了很多现成的VM模板,有各种Windows,有各种Linux等等,你可以随意拷贝过来,定制自己的配置,启动,就可以了。当然,你也可以自己从初始安装。

4.连接到网络

在本文的开头提到,网络也是计算资源。在谈及单个VM的时候可以暂时不谈网络,但是在连接VM的时候就需要了。云在给你提供一个“机房”的时候,它已经就按需求给你提供了虚拟的交换机,路由器,IP地址池等等。这些网络资源,同样也是由数据中心服务器C提供给云服务器D的;C则是从管理的各个监控程序得到;各监控程序管理着实际的硬件网卡。

从用户的角度,各个“机房”是完全独立的,彼此是不可见的。你在自己的“机房”里干任何事都干扰不了别人的“机房”,别的“机房”也干扰不了你。

这就是云。下面还要介绍一些分类。

这里再回顾一个云“机房”的来源:

机房 <<<<<< 云服务器D所管理的虚拟的“计算中心” <<<<<< 数据中心服务器C提供给D的资源池 <<<<<< C动态管理A,B两台(或多台)机器所连接的计算资源 <<<<<< A,B两台(或多台)电脑通过监控程序的虚拟化 <<<<<< PC机

在实际配置中,PC机一般为企业级的服务器所取代,比如联想的System X 服务器,但这些服务器和PC机没有本质区别,性能和可靠性不同而已。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: