云计算是个概念,而不是具体技术。
虚拟化是一种具体技术,指把硬件资源虚拟化,实现隔离性、可扩展性、安全性、资源可充分利用等特点的产品。
CPU虚拟化的技术:Intel的VT-x,AMD的AMD-V。
虚拟化的软件:VMWare,Hyper-V,Xen,KVM,OpenVZ等
目前云计算,大多是依赖虚拟化,通过把多台服务器实体虚拟化后,构成一个资源池,实现共同计算,共享资源。也就是现在所谓“云计算”,其实这个词提出来之前,过去的“服务器集群”就已经实现这些功能了,只不过没有现在那么先进而已。
作者:tiane12
链接:https://www.zhihu.com/question/22793847/answer/22675720
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
再补充一下自己的认识,云计算通常可能从两个方面理解:
一是将IT作为一种服务的业务模式,如AWS、阿里云,其目标是让IT未来像水和电一样随时随地、简单方便的使用,并按使用量收费;
二是IT自身的一种演进和优化,其目标是提高效率和降低成本,或者说用一种成本可接受的方式解决越来越复杂的业务问题,例如海量数据的存储和分析、超高并发访问(如双11或12306)等。
虚拟化作为一种技术,可以帮助云计算实现以上目标:资源分配更加灵活、资源利用率更高。同时技术成熟、对上层应用也基本不影响,因此被广泛使用,甚至在很多时候虚拟化成为了云计算的代名词。
作者:唐华斌
链接:https://www.zhihu.com/question/22793847/answer/22676556
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
虚拟化技术分为计算虚拟化、网络虚拟化和存储虚拟化。
云计算本质上是服务,这个从底层的基础设施(iaas)到中间层的平台(paas)再到最上面的应用层(saas)。
云计算的最底层iaas是基于虚拟化技术的(至少是计算虚拟化,然而现在网络虚拟化和存储虚拟化也是趋势)。
大数据分两个方面,大数据处理平台和数据分析技术。hadoop属于大数据处理平台技术中的一种,这个处理平台跑在云环境中,可以被看作中间平台层(paas)服务中的一种。事实上大数据处理本身能很好地利用云的弹性伸缩特性,因而一致被称为云计算的好基友。所以,虚拟化技术适用于大数据范畴内的问题。
虚拟化技术并不适用于所有种类的并行计算(如高性能计算场景下的并行计算)。这是因为虚拟化技术的出发点是把一台物理机虚拟成多台来提高资源的利用率,而高性能场景下,没有用不完的问题,只有不够用的问题。
作者:小太阳
链接:https://www.zhihu.com/question/22793847/answer/120959977
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:知乎用户
链接:https://www.zhihu.com/question/22793847/answer/23145808
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
云计算是一种服务;虚拟化和分布式系统都是用来实现云计算的关键技术之一。
目前来讲虚拟化主要常用两个核心技术:服务器虚拟化,与应用虚拟化
目前来讲分布式系统主要用到的两个核心技术:分布式存储,与分布式计算
云计算可以理解为一种租借式的服务,即你可以对IT系统内部的原理什么都不懂,也不需要买到手,但是随时可以使用公共的IT资源为自己服务,比如baidu,比如QQ,比如163邮箱
我认为对虚拟化技术最好的定义就是可以让IT系统的物理拓扑图与逻辑拓扑图无关,即解耦
我们暂时以商用虚拟化系统vmware举例
为了实现拓扑解耦,它做的第一点就是让一台机器可以同时跑多个操作系统,即虚拟机,而且虚拟机还可以在物理机间来回转移,高可用,这样我们的操作系统就从物理机上彻底解放出来了,你可以把同一个虚拟机随时放到其他物理机上,实现了对硬件的高效资源利用,和系统的高度灵活,解除了大量人工劳动,便于实现大规模系统的方便管理,这种就是服务器虚拟化(vSphere)。
光系统分开还不行,你有时还需要各种方式访问虚拟机系统,于是你就会是用远程桌面等方式去访问这些后台的虚拟机,这种就是应用虚拟化(view)。
当然还有网络虚拟化,存储虚拟化等各种其他虚拟化技术正在慢慢成长,不过相对于前两者无论是商用还是开源,都还不太成熟,暂不讨论。
我认为对分布式系统比较合适的定义是把所有IT资源看成为一个整体来使用,而不是去独立的看某个机器某个系统,即资源池
我们暂时以开源Hadoop为例
为实现将IT资源变成整体,它要做到的第一点就是将一个巨大的文件拆开放在多个地方,你可以用一大堆很普通的计算机用网络连在用来存放这一个巨型文件,这样即使很多很小硬盘的机器也可以通过连在一起当成一个很大的存储空间来用,这种就是分布式存储(HDFS)。
光文件存放合在一起不行,计算能力也要合在一起,所以它还要满足一个任务分给多个物理机来处理,这样即便一堆老破电脑,通过这种方式连在一起,只要足够多,也能当超级计算机用,这种就使分布式计算(MapReduce)。
当然Hbase等其他的技术也在逐渐成熟,总的来讲都是为了解决建立巨型资源池需要的技术。
由此可以看出虚拟化主要是把大块拆成小块儿,分布式系统主要是把小块组合成大块儿,IT资源经过这样的揉碎再组合,变成了一个十分灵活的系统,在这几个基本技术的基础上,在通过某种调度和经营,就可以实现云计算的服务模式了。
什么是虚拟化
虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
几种虚拟化软件介绍
RedHat KVM
虚拟化方式:完全虚拟化
架构:寄居架构(linux内核);祼金属架构RHEV-H
特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳性能。
I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了最新的驱动和I/O协议栈的改进。
架构图:
VmWare ESX
虚拟化方式:完全虚拟化
架构:裸金属架构
I/O协议栈:VMware选择性能,但是把I/O协议栈放到了hypervisor里面。不幸的是,VMware kernel是专有的,那就意味着VMware不得不开发和维护整个协议栈,会导致开发速度会减慢,你的硬件可能要等一段时间才会得到VMware的支持。
架构图:
Citrix XenServer
虚拟化方式:半虚拟化(linux安装linux);全虚拟化(linux安装windows),硬件辅助虚拟化
架构:裸金属架构
I/O协议栈:Xen选择了可维护这条道路,它将所有的I/O操作放到了Linux guest里面,也就是所谓的domain-0里面。重用Linux来做I/O, Xen的维护者就不用重写整个I/O协议栈了。但不幸的是,这样就牺牲了性能:每一个中断都必需经过Xen的调度,才能切换到domain 0, 并且所有的东西都不得不经过一个附加层的映射。
架构图:
Microsoft Hyper-V
虚拟化方式:半虚拟化
架构:裸金属架构Hyper-V Server;寄居架构 Windows 2008
特点:父分区(宿主机操作系统)的位置挪到了子分区(虚拟机操作系统)的旁边,宿主机操作系统和虚拟机操作系统是平级的,没有谁依附谁之上的关系。
I/O协议栈:虚拟机看到的所有设备不再都是虚拟出来的,有部分的硬件资源是真实的物理设备。
架构图:
什么是硬件虚拟化
虚拟化:从简单入手
虚拟化是一个广义的术语,是一个为了简化管理,优化资源的解决方案。如同现在空旷、通透的写字楼,整个 楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率。这种把有限的固定的资源根据不同需求进行重 新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。
硬件虚拟化:虚拟化技术的革命
CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有经特别优化过的指令集来控制虚拟过程,通过这些指令集,虚拟机可以很容易提高性能,相比纯软件的虚拟化技术会在很大程度上提高性能。
纯软件的虚拟化技术
在纯软件虚拟化解决方案中,虚拟机中的操作系统其实是真是操作系统下的一个应用程序,因此,虚拟操作系统上的应用程序到实际操作系统就要比通常应用程序多经过一个通信层。
虚拟化技术分类
平台虚拟化(Platform Virtualization)
针对计算机和操作系统的虚拟化。
资源虚拟化(Resource Virtualization)
针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。
应用程序虚拟化(Application Virtualization)
包括仿真、模拟、解释技术等。
我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称 为 Virtual Machine Monitor 或 Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的 计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统 (Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品)。运行虚拟机的真实系统我们称之为 主机系统。
虚拟化的未来
可以想象一下,未来的虚拟化发展将会是多元化的,包括服务器、存储、网络等更多的元素,用户将无法分辨哪些是虚,哪些是实。虚拟化将改变现在的传统IT架 构,而且将互联网中的所有资源全部连在一起,形成一个大的计算中心,而我们却不用关心所有这一切,而只需关心提供给自己的服务是否正常。虽然虚拟化技术前 景看好,但是,这一过程还有很长的路要走,因为还没有哪种技术是不存在潜在缺陷甚至陷阱的。但是相信,虚拟化技术将会成为未来的主要发展方向。