您现在的位置:融合网首页 > 云计算 >

云计算技术解析 Amazon EC2 的幕后

来源:博客 作者:佚名 责任编辑:admin 发表时间:2012-07-25 15:48 
核心提示:OpenStack 被视作是 Amazon EC2 的开源版。OpenStack 自称是“用来搭建云计算平台的开源软件”。如果追问一句,用 OpenStack 搭建好了云计算平台以后,能提供什么服务?答案是,如同 Amazon EC2 一样,提供虚拟机租赁服务。

今天新闻里报导说,VMWare 拆资 10 亿 5 千万美元,收购 Nicira [0]。Nicira 是一家创业公司,专注于网络虚拟化,主打产品是 vSwitch。云计算产业是技术密集型产业,涉及的技术众多。要了解云计算产业格局,就必须了解各家企业主打产品,所提供的核心价值。从而理解各家企业,在整个云计算产业链中所处的位置,以及与上下游企业的相互关系。

这个文章系列的后续章节,将详细讨论网络虚拟化的问题。Nicira 公司在网络虚拟化方面,引领全球技术前沿。看来我们这个文章系列的写作进度,得提提速了。

我们在上一节,讨论了四种云计算的服务方式,出租裸机、出租虚拟机、出租网站、出租行业服务。Amazon EC2 提供的云计算服务,就是其中第二种方式,出租虚拟机。

OpenStack 被视作是 Amazon EC2 的开源版。OpenStack 自称是“用来搭建云计算平台的开源软件”。如果追问一句,用 OpenStack 搭建好了云计算平台以后,能提供什么服务?答案是,如同 Amazon EC2 一样,提供虚拟机租赁服务。

VMWare 公司的产品,虽然名目繁多,但是也是围绕搭建云计算平台,提供虚拟机租赁服务这个总目标。

所谓提供虚拟机租赁服务,更明确的解释方式是,用户提交什么输入,云计算系统返回什么输出。

输入:用户在任何电脑的浏览器上,通过访问云计算中心的网页,先注册,确定登录姓名和密码。然后输入希望租赁的虚拟机的操作系统及其版本,还有虚拟机的 CPU 的内核个数、内存空间、硬盘空间、实时带宽、以及流量限额。

输出:云计算中心根据用户的需求,生成相应配置的虚拟机,然后把虚拟机的域名或 IP 地址,返回给用户。用户得到这些信息后,可以通过 SSH、远程桌面或者 VNC [1] 这样的远程访问(Remote Access)工具,远程登录并使用运行在云计算中心的虚拟机。

Amazon EC2、OpenStack 和 VMWare 是如何实现这个功能的呢?别着急看答案,先想想,假如我们是 Amazon EC2、OpenStack 和 VMWare 的系统设计师,我们该如何设计后台系统?

我们自己先 DIY (Do It Yourself),然后把我们自己的设计,与 Amazon EC2、OpenStack 和 VMWare 的系统架构,做横向对比,就容易领悟 Amazon EC2、OpenStack 和 VMWare 的系统设计的高妙之处。

当然,任何系统的设计,都会有不足之处。分析缺陷的一个有效方法,也是横向对比。

我们在自行设计 Amazon EC2 那样的系统之前,先想想,假如没有全自动的后台系统,而是靠人工完成,该怎么做?换句话说,当云计算中心的系统管理员,收到用户提交的请求时,他该执行哪些操作?

在云计算中心开始为用户提供服务之前,系统管理员需要预先做一些准备工作。当云计算中心购置了服务器裸机以后,系统管理员需要给这些裸机,安装虚拟化系统。

安装虚拟化系统包括以下三步。

1. 选择虚拟化系统。

虚拟化系统是一个软件系统,目前常用的虚拟化系统有三种,VMWare、Xen、和 KVM。各种虚拟化系统的比较,可参考 [2]。

其中 KVM 是开源软件,不仅操作简单,而且系统运行效率较高。更难得的是,KVM 系统结构十分精巧、代码量小。

2. 安装虚拟化系统。

以 KVM 为例,在裸机上安装 KVM,只需要做两步。1. 安装 Linux OS,2. 在 Linux 上安装 KVM,参考安装手册 [3]。

3. 设置网络。

运行在 KVM 之上的虚拟机实例,与外界网络的数据传输,必须经过物理网卡。所以,需要做相应的系统设置,使虚拟机实例与物理网卡通信。设置网络的操作步骤并不复杂,也参见安装手册[3]。

这里有个疑问,为什么在第二步“安装虚拟化系统”的时候,不一步到位,把网络也设置好?其实,的确是可以两步并一步,在“安装虚拟化系统”时,顺带完成网络的设置。

安装手册 [3] 把网络设置单列出来,或许是基于以下考虑。虚拟机实例与物理网卡的通信,需要用到 vSwitch 技术,但是 vSwitch 的实现方式有多种,包括 Linux Bridge 和 Open vSwitch 等等 [4]。

对于大多数情况,Linux Bridge 基本上能够满足需要,所以安装手册 [3] 只介绍了 Linux Bridge 的配置方法。但是也有观点认为,在某些场合下,例如当虚拟机跨机房迁移时,需要更强大的 vSwitch 的技术实现,例如 Open vSwitch [5]。

关于 vSwitch,以及 Open vSwitch、OpenFlow 等等话题,我们将在后续有关虚拟网络的文章中,详细讨论。

当云计算中心,添置了服务器裸机之后,系统管理员需要执行上述三步操作。这些操作完成以后,新添的服务器就可以为用户,提供虚拟机租赁业务了。

1. 当系统管理员接收到用户提交的需求后,他根据用户指定的操作系统及其版本,把相应的操作系统安装光盘,插入服务器光驱。

或者,系统管理员先把操作系统安装光盘里的所有内容,导出成为一个 ISO 镜像文件。这个 ISO 镜像文件,不仅包含安装光盘上的所有内容数据,而且记录着每一段内容数据,存储在光盘里的哪一个扇区(Sector)。然后,他把这个 ISO 文件拷贝到服务器本地文件系统中。

2. 系统管理员根据用户提交的,虚拟机所需配置的 CPU 内核个数、内存空间、硬盘空间、以及实时带宽,通过调用 Linux 相应工具,启动虚拟机。操作步骤不复杂,也参见操作手册 [3]。

这里有两个问题。

1. 假如开启一个虚拟机实例后,用户在这个虚拟机实例里,下载并保存了某个内容文件,例如一段视频。并且,他安装了某个应用软件,例如 Apache Web Server。然后他让 Apache 运行了一段时间,产生了一些状态文件,例如日志文件。再然后,虚拟机实例被关闭,或许是被用户或系统管理员主动关闭的,也可能是因为故障而宕机的。

问题是,这个虚拟机实例能够被重启吗?虚拟机实例被重启后,用户先前保存的视频等等内容文件、安装的 Apache Web Server 等等应用软件、以及应用软件运行中产生的日志等等状态文件,有没有被保存?

答案是,可以重启这个虚拟机实例,并且用户先前保存的所有内容文件、安装的所有应用软件,以及在应用软件运行过程中,产生的所有状态文件,通通被保存,可以重新使用。

原理是,在用户提交的申请租赁虚拟机实例的请求中,有一个参数是该虚拟机实例占用的硬盘空间的大小。当系统管理员在某一台物理服务器上,调用系统指令,让 KVM 虚拟化系统,为用户创建虚拟机实例时,KVM 虚拟化系统在该物理服务器的本地硬盘中,创建了一个文件,作为这个虚拟机实例的镜像文件(Image)。

这个镜像文件的大小,基本上等于用户指定的虚拟机实例占用的硬盘空间的大小。在虚拟机实例看来,这个镜像文件,就相当于自己的硬盘,所以镜像文件又被称为虚拟硬盘。在这个镜像文件或者虚拟硬盘中,虚拟机实例可以设立不同的虚拟硬盘分区,分区中可以设立文件夹,文件夹中可以再设立子文件夹,或者存放文件。

当先前的虚拟机实例被关闭以后,可以在同一台物理服务器上,根据虚拟机实例的名称,重启该虚拟机实例。这时新的虚拟机实例,将会找到先前那个虚拟机实例所使用的虚拟硬盘,也就是镜像文件。

于是,当新的虚拟机实例开启以后,将会看到先前虚拟机实例,它保存的所有内容文件、安装的所有应用软件、以及应用软件在运行过程中产生的所有状态文件。

2. 问题二,假如先前的虚拟机实例被关闭以后,能不能在另外一台物理服务器上,重启该虚拟机实例?

答案是,可以在其它物理服务器上,重启虚拟机实例。但是有两个前提,1. 这两台物理服务器,必须安装相同的虚拟机系统,例如某版本的 KVM。2. 必须把先前那个虚拟机实例的镜像文件,也就是它的虚拟硬盘,从第一台物理服务器的文件系统,拷贝或者挂载到(mount)到第二台物理服务器的文件系统中去。

原理是,假如我们有两台电脑,当我们把第一台电脑的硬盘,拆下并安装到第二台电脑上去。然后开启第二台电脑,我们将会看到与第一台电脑一模一样的操作系统、文件、还有应用软件。镜像文件对于虚拟机实例来说,就是它的硬盘。迁移虚拟机实例,可以通过迁移它的虚拟硬盘,也就是镜像文件来实现。

我们之所以不厌其烦地介绍手工设置虚拟化系统、并运行虚拟机实例的步骤,是因为 Amazon EC2、OpenStack、以及 VMWare 等等系统,它们的主要功能,是让软件系统替代人工,自动化地去完成这些操作。

类似于 Amazon EC2 的自动化系统并不难设计。事实上,前述的准备工作,也就是安装虚拟化系统的三个步骤,是在添置物理服务器时完成的,是一次性的操作,所以手工完成这些准备工作,无妨大雅。

真正需要实现自动化的,仅仅限于提供虚拟机租赁业务的两个步骤,1. 提供操作系统安装光盘,或相应的 ISO 文件,2. 根据用户提交的虚拟机资源配置,创建虚拟机实例。

我们在下一节,将自行设计这样一套系统,然后把它与 Amazon EC2、OpenStack 等等横向对比。大家会惊奇地发现,我们自行设计的系统,在总体上,与 Amazon EC2、OpenStack 等等系统非常相似。

(责任编辑:admin)
    • “扫一扫”关注融合网微信号

    免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。

    第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。

    根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。

    第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。

    个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。

    融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net

    对免责声明的解释、修改及更新权均属于融合网所有。

    今日头条

    更多>>

    热门关键字

    关于我们 - 融合文化 - 媒体报道 - 在线咨询 - 网站地图 - TAG标签 - 联系我们
    Copyright © 2010-2020 融合网|DWRH.net 版权所有 联系邮箱:dwrh@dwrh.net 京公网安备 11011202002094号 京ICP备11014553号