cluster vs Grid vs Cloud

8
有两个问题:
1) 集群和网格之间有什么区别 2) 云是什么
我不是在寻找概念性定义,我通过谷歌找到了很多,但问题是我仍然不能理解它。 因此,我相信我所寻找的答案是不同的。从我能够在线上搜索的内容来看, 许多试图解释这个问题的文章作者要么自己并没有深入理解,要么就是无法为像我这样的普通人解释他们的知识(这是非常技术性人员的普遍问题)。
只是想让你知道我的水平:我是一名计算机程序员,精通.NET和LAMP,在Linux和Windows上都可以进行基本的管理, 我有Hyper-V的实践经验,现在正在研究Xen和XCP,以便在两台计算机上设置一个基于云的测试环境,以便进行学习。
以下信息您无需阅读,这只是我对集群、网格和云的当前了解,只是为了支持我的两个问题,因为我认为这有助于理解 我目前的困惑和我正在寻找的答案。
谢谢。
---
我的陈述中使用的两台计算机是“A”和“B”。
A的规格:2个内核Intel CPU,8GB内存,500GB磁盘
B的规格:2个内核Intel CPU,8GB内存,500GB磁盘
---
现在我想从集群、网格和云的角度来看A和B的角色。
集群和云之间的共同定义:
1) 集群或网格是两台或更多计算机相互连接,硬件层面上它们通过网络卡连接, 在软件层面上,使用某种实现消息传递接口的程序,使得在节点之间发送命令成为可能。
2) 集群或网格不会合并节点之间的CPU和内存,意味着在这个模拟中,在A上运行的FireFox浏览器仍然只有一个2个内核CPU、8GB内存和500GB可用。
网格和云之间的区别:
1) 集群只提供故障转移部分,如果A节点在运行FireFox时出现故障,集群软件将重新启动B节点上的FireFox进程。
2) 网格能够同时在多个节点上并行运行编写Mpi的软件,并可以按需在任何节点上运行任何软件(即使它没有为MPI编写)。
3) 网格还能够将不同类型的节点,如Linux服务器、Windows XP、Xbox和Playstation结合在一起形成一个网格。
云的定义:
1) 云根本不是一个技术术语,它只是一个方便的简短词汇来描述拥有无限资源的计算机,也可以被称为超级计算机、野兽、海洋或宇宙,但有人首先使用了“云”,于是我们在这里。

2) 云可以基于网格或集群。

3) 从技术角度来看,云是将硬件资源组合成一个软件的一种方式,这意味着如果我在网格或集群上安装云软件,它将结合A和B,然后我将得到这样一个云:4核CPU、16GB内存和1000GB磁盘。

编辑时间:2013.04.02 第3点是完全无意义的,云不会将许多节点的资源组合成一个巨大的资源,因此在这种情况下不会有4核CPU、16GB内存和1000GB云。


可能是重复问题。此外,我对“网格”这个术语并不是很了解,但你描述的网格更像是一个集群。集群完全可以运行基于MPI的程序。我认为网格只是一个更基于互联网的集群。 - Apples
谢谢,链接也很好,我喜欢来自伯克利大学的文章,Andy Isherwood的这句话让我从一开始就喜欢它: “很多人都跳上了[云]的列车,但我没有听到两个人对此有相同的看法。关于“云”的定义有多种。” - Peter
Matt,我不得不反驳一下,也许可以结合不同的问题/答案,但如果之前的问题在讨论中没有得到真正的回答,那么它就不能再被问了吗?嗯,在https://dev59.com/-W7Xa4cB1Zd3GeqPpWUm#15286488上你有一个非常好的答案,实际上适用于我的问题,我想感谢你!太棒了,清晰明了,非常感谢! - Peter
4个回答

6
网格计算旨在将大型工作负载分配给许多参与的网格成员——通过每个成员上的软件,该软件期望听到关于计算或数据的请求,并以其整体拼图的小块进行回复。应用程序必须专门为这种问题解决方法编写。它可以是异构的,因为操作系统并不重要,而是等待问题解决请求的软件。
集群的期望是它可以在任何成员节点上运行相同的可执行映像——任何节点都可以执行该代码——这就推动了它对同质性的要求。您可以编写集群感知代码,将工作负载分布到整个集群中,但是您必须编写您的代码以了解集群才能利用集群除冗余功能外的其他功能。由于大多数应用程序供应商不编写集群感知代码,因此通常仅使用简单的冗余功能来部署集群,但这并不限制架构。集群可以共享资源,并能同时协作完成任务。
云计算并不完全是以上两者,但也不排除它们。云计算假定能够在没有对其基础操作系统的高级知识甚至控制该操作系统的情况下部署应用程序,并能够扩展或减少可用于该应用程序的处理和内存占用,而无需销毁和重新创建该环境——所有这些都在足够的隔离下完成,使应用程序不会知道或无法知道其共享基础设施上可能安装或运行哪些其他应用程序,除非两个应用程序管理者都批准访问。

0

我来试试。自2002年以来,我一直在收集和保存我的笔记、脚本和程序。这是我多年来的总结。以下是一个易于记忆的列表:

  1. 网格是硬件和硬件规格。

    a. 您将其插入路由器或交换机并设置IP地址和顶级域名,通过互联网(也称为ICANN)。

    b. 这就像OSI的1、2和3层。

  2. 集群是内核(软件环0或1,如果是虚拟类型的事情)。

    a. 内核被配置(编译)以运行可以处理会话、权限和帐户身份验证的网络堆栈。

    b. 通常在TCP/IP上设置端口到端口通信(如在OSI模型中)。

    c. 您设置iptables、pf、arp和其他操作系统级别的应用程序或共享对象。

    d. 您可以设置ssh、kerberos、ldap或其他PKI数据库和协议套接字组合。

    e. 这就像OSI的4、5和6层。

  3. 云是用户空间应用程序。

    a. 应用程序进程与集群中的其他应用程序进程进行通信。

    b. 您通过文件、cgroups和/或用户组设置进程级别的权限。

    c. 您设置mysql、redis、riak、消息代理、hadoop、apache、nginx、cron、java、haskell、erlang等。

    d. 这就像OSI的第7层。

云漂浮在从网格上生长出的集群上方。实际上可以想象成,云在空中,集群在树上,网格在地上。我们这些创意型人士(制造所有这些技术的人)大多数是能够用数学数据和代码来支持自己的视觉思考者。因此,总是尝试回答谜题,将技术类比与我们在地球上的物理世界相关联。

引言

网格、集群和云是标志着它们所处时代的三个不同词汇。它们的定义有相互交叉的特点,现代可以互换使用。例如,我曾经和一些年长的医生谈论云计算,他们想知道云具体是什么。于是我告诉他们,云是通过互联网租用的计算机集群。没想到,他们在10秒钟内就明白了这个概念。

我会按照时间顺序使用一些历史来叙述。

网格

网格这个术语最初用于表示在陆地或空间上重复出现的一个资源。该术语经常在电报分发过程中使用,其中必须在每个N个半径(半径的复数)的杆子上放置中继器以放大信号。另一个例子是托马斯·爱迪生和尼古拉·特斯拉竞争性地开始在地球上推广的电网。 计算机变得非常流行,很快就在整个网格中扩展,以取代人类电报(和电话)操作员。 网格现在是一堆可以连接和终止通信通道的计算机。 网格是一种基础设施,用于运行汇编(或二进制)代码的计算机。

集群

随着计算机的强大和实际见证计算机赢得战争(图灵机),DARPA(或美国军方的ARPA)介入了。 DARPA开始委托大学和学院利用网格进行多路复用通信方法(使用波特率和协议)。大学和学院开始制定协议,以分离他们想要通过网格执行的不同任务并针对计算机。这就开启了现代互联网。 实验室建立了内部测试集群来模拟网格。 集群非常适合编排。一个作业可以在集群中的所有或一些从属节点上进行子划分。军方利用了大学和学院的研究成果,并将软件应用于网格。集群存在一些问题:

  1. 必须是相同(或接近相同)的硬件
  2. 必须具有相同的操作系统
规则非常严格,因为所有指令集都必须通过CPU传递相同。集群通常具有主从关系。集群通常一次只运行一个unic(或unix)作业集群具有作业调度程序。然后,由于硬件制造商开始制造并行芯片架构(在冯·诺伊曼架构之上),集群变得更加复杂。 集群变得更加强大。集群继承了更多的复杂性,人们正在做更多创造性的事情。现在,集群可以执行不同的作业、任务、进程、异步进程、同步进程等许多有趣的事情。一个盒子(或计算机节点)可以运行更多的作业。现在,网格可以用于多种目的。集群上软件更新的速度比实际网格快。集群部署在校园内。集群开始取代网格,因为您可以直接生成一个公共面向堆栈,该堆栈的性能优于(国家)网格。 我的经验 我在1990年代末和2000年代上大学时,“集群”是指由多台计算机组成的物理实验室,可作为一个虚拟计算机使用。集群用于测试。一旦你的软件在集群上运行成功,就可以将其mv(移动)到生产级别的网格中。然后我目睹了网络蠕虫和计算机病毒控制僵尸计算机的情况。这些僵尸计算机的群体可以被用作一个巨大的虚拟集群来运行命令。那么程序员开始DIY(自己动手)协议和软件,如BitTorrent和Napster。
因此,跳入未来,测试集群软件正逐渐被Solaris jails、FreeBSD jails、Linux容器、QEMU、超级监视器、VMWare、VirtualBox、Vagrant和Docker所取代

云计算

云是一个营销术语,用于涵盖不同网格的硬件和这些集群的软件。云是一个广泛使用的词汇,用于为了获得经济利益而宣传、推广和表达所有集群技术。云也是将所有这些技术包装在一个单一的词汇下的努力。云允许多租户进程共享一个巨大的网格。云通过将电力、CPU、RAM、DISK、电力和宽带细分并由消费者共享和支付来最大化效率。副作用是那些消费者订阅和/或支付费率开始产生利润。云还允许多个用户安装多个操作系统,在软件中运行多个进程。因此,我们现在有了像IaaS、PaaS和SasS这样的缩写。 云可以取代曾经非常难以筹集和启动的初始成本。云是测试软件和建立业务消费者基础的好解决方案。

从另一个角度来看,云触发非程序员的大脑以某种方式思考。例如,人力资源部门可以理解并隔离呈现在他们面前的内容。

所以,如果你有钱,那么你可以购买你的云体验份额,并获得轻松的支持。但是,如果你具备技能、时间、快速的知识和在合作位置安装自己的服务器的能力,那么就这样做,因为从长远来看更便宜。

这就是我对网格、集群和云的叙述。


0

在这个问题被关闭之前,我想回答我的问题,因为我相信在集群、网格和云方面找到正确的信息可能非常令人沮丧,我认为这篇文章可以为许多人节省时间。如果有人想挑战它,请这样做,否则我将在1周内将其标记为答案。

1)有很多差异,也没有差异,这实际上取决于技术背景,但通常您可以连接几个节点并称其为网格或群集。我会说网格是具有扩展功能的群集,例如能够连接异构节点。无论是网格还是群集都将同样作为可扩展平台。从网络工程师和程序员的角度来看,如果网格连接异构节点,则实现或编码的差异将非常大。

2)现在第一个问题实际上是第二个问题的序曲,我认为最好由Matt Joyce在这篇文章中回答: https://dev59.com/-W7Xa4cB1Zd3GeqPpWUm#15286488


-1

我认为这个链接很好地比较了集群和网格。

据我所知,在集群的情况下有一些例外。YARN(Yahoo!)试图处理多租户和分布式调度。此外,Corona(Facebook)也具有分布式调度功能。


以后尽量给出更多分析性的答案,并展示答案所需的信息,这样如果链接失效,答案也不会失效。 :) - gsamaras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接