本帖最后由 xioaxu790 于 2014-10-10 08:19 编辑
问题导读
1、你是如何理解虚拟化与云计算的区别?
2、学习云产品openstack,需要有哪些知识?
最近因为工作上需求的原因,需要对线上机器进行虚拟化处理,从而更大的利用线上机器资源,并能够增加系统的可伸缩性,系统资源能够更加灵活的管理配置和监控。
由此需要对云计算和虚拟化领域的知识进行深入的分析和研究。经过一段时间的学习和了解,通过google进行搜索,发现在这个行业上所写的文章大多数都停留在浅显的介绍,安装部署等层面,对于初学,以及对于深入研究缺乏一些指导和实践的意义。因此我将在接下来的时间里,按照我的经验和研究的成功和大家一起交流讨论。
云计算产生的思考和历史背景
在计算机领域里面,有一个著名的摩尔定律:“当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。”,我们这一代人,有幸见证了计算机飞速的发展。伴随着硬件的发展,单机处理的性能越来越高,从CPU到内存、硬盘都在更新换代。在软件方面,互联网的发展,信息化的普及,人们生活已经离不开互联网和计算机。互联网后端服务器的处理能力要求也就越来越高,机器集群的数量越来越大。在软件方面上的发展,并且互联网是一个变化比较高的行业,需求变更特别频繁,这样就需要保证在云端的灵活性。另外,在业务上,将计算处理集中到云端,能够减轻终端用户的更新问题,将计算能力交给服务端,从而能够保证更大的灵活性。
云计算的产生,是随着硬件和软件的发展而产生的,并由社会的需求去驱动发展。
我们可以看到,云计算从google开始在几年前一直主导云计算的概念,推出appengine等产品,到现在很多公司都采用云计算的理念来包装自身的产品和构建云计算系统。
从目前来看,亚马逊目前是最大的云计算企业,我们可以看到salesforce等的云服务营销管理平台,云盘等的产生。。。。。。。,这样的例子有很多很多
国内阿里巴巴、百度、腾讯、新浪都在构建自己的云系统,IBM、华为以及其他的一些软件服务商也采用云的概念来包装自己的产品来营销。
什么是云计算?
美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
这个理解起来有点抽象,我们可以列举一下应用的例子:
目前在移动互联网高速发展的时代,很多人都投身到创业领域,但是需要自己购买物理机器进行提供服务端服务,投入成本比较高,可扩展能力不强。从而可以采用租用的方式购买云端的服务。这种是一种多租户的形式。
要完成这样的服务,从用户的角度来看,用户需要的功能是:
1. 一个能够运行程序的操作系统
2.能够通过远程登录管理,安装部署软件
3.能够对外提供服务
4.对错误能够恢复
。。。。。。
我们可以将云计算的功能归纳为:
1.能够提供虚拟化的功能,将物理资源虚拟化,并完成资源隔离
2.能够提供动态的扩展能力
3.具备资源分配和管理能力
4.提供计费功能
5.提供错误恢复能力
6.提供容错能力
。。。。。。。。。
虚拟化与云计算的区别
对于虚拟化,我们有很多人都不陌生,我们可以看到用vmware可以在操作系统之上再虚拟出一个系统,这样的虚拟化技术对于我们办公带来很多方便。
开源领域有xen和kvm,这两者的区别不在这里描述。
虚拟化作为云的一种实现方式,采用虚拟化能够更好的管理物理资源对资源进行隔离
云计算在虚拟化的基础上,对物理资源更好的进行管理,使得能够灵活的分配各种资源的使用和控制,譬如:对内存、硬盘、cpu、网络IO等的使用。。。。。。。
开源云产品openstack
在开源领域,目前主流的两套云的产品有openstack和cloudstack,相互的差别与联系大家都可以通过网上搜索了解到。
openstack的发展,得到很多大公司和政府机构的支持,目前来说发展的越来越好。
在接下来的文章里,我会从架构和技术实现源码分析的细节和大家一起探讨openstack的实现细节。
在理解openstack的过程中,我们需要对一下知识做一些全面的学习理解:
1.python编程
2.操作系统基础:计算机网络,内存管理,文件系统,进程管理,线程,cpu调度,IO处理等
3.数据库:mysql,mongodb等
4.分布式缓存:memcached,redis等
5.MQ系统:rabbitMQ,zeroq....,AMQP
6.web编程
7.分布式系统:rpc,CAP理论,分布式存储,分布式计算
8.虚拟化技术:KVM,XEN等
9.计算机安全基础:沙箱,SSL,签名等
上一篇:云计算与格子计算的区别
|