如何区分分布式集群并行文件系统?

如何区分分布式集群并行文件系统?,第1张

分布式文件系统集群文件系统、并行文件系统,这三种概念很容易混淆,实际中大家也经常不加区分地使用。总是有人问起这三者的区别和联系,其实它们之间在概念上的确有交叉重叠的地方,但是也存在显著不同之处。 
分布式文件系统
自然地,“分布式”是重点,它是相对与本地文件系统而言的。分布式文件系统通常指C/S架构或网络文件系统,用户数据没有直接连接到本地主机,而是存储在远程存储服务器上。NFS/CIFS是最为常见的分布式文件系统,这就是我们说的NAS系统。分布式文件系统中,存储服务器的节点数可能是1个(如传统NAS),也可以有多个(如集群NAS)。对于单个节点的分布式文件系统来说,存在单点故障和性能瓶颈问题。除了NAS以外,典型的分布式文件系统还有AFS,以及下面将要介绍的集群文件系统(如Lustre, GlusterFS, PVFS2等)。 
集群文件系统
“集群”主要分为高性能集群HPC(High Performance Cluster)、高可用集群HAC(High Availablity Cluster)和负载均衡集群LBC(Load Balancing Cluster)。集群文件系统是指协同多个节点提供高性能、高可用或负载均衡的文件系统,它是分布式文件系统的一个子集,消除了单点故障和性能瓶问题。对于客户端来说集群是透明的,它看到是一个单一的全局命名空间,用户文件访问请求被分散到所有集群上进行处理。此外,可扩展性(包括Scale-Up和Scale-Out)、可靠性、易管理等也是集群文件系统追求的目标。在元数据管理方面,可以采用专用的服务器,也可以采用服务器集群,或者采用完全对等分布的无专用元数据服务器架构。目前典型的集群文件系统有SONAS, ISILON, IBRIX, NetAPP-GX, Lustre, PVFS2, GlusterFS, Google File System, LoongStore, CZSS等。 
并行文件系统
这种文件系统能够支持并行应用,比如MPI。在并行文件系统环境下,所有客户端可以在同一时间并发读写同一个文件。并发读,大部分文件系统都能够实现。并发写实现起来要复杂许多,既要保证数据一致性,又要最大限度提高并行性,因此在锁机制方面需要特别设计,如细粒度的字节锁。通常SAN共享文件系统都是并行文件系统,如GPFS、StorNext、GFS、BWFS,集群文件系统大多也是并行文件系统,如Lustre, Panasas等。
如何区分?
区分这三者的重点是“分布式”、“集群”、“并行”三个前缀关键字。简单来说,非本地直连的、通过网络连接的,这种为分布式文件系统;分布式文件系统中,服务器节点由多个组成的,这种为集群文件系统;支持并行应用(如MPI)的,这种为并行文件系统。在上面所举的例子中也可以看出,这三个概念之间具有重叠之处,比如Lustre,它既是分布式文件系统,也是集群和并行文件系统。但是,它们也有不同之处。集群文件系统是分布式文件系统,但反之则不成立,比如NAS、AFS。SAN文件系统是并行文件系统,但可能不是集群文件系统,如StorNext。GFS、HDFS之类,它们是集群文件系统,但可能不是并行文件系统。实际中,三者概念搞理清后,分析清楚文件系统的特征,应该还是容易正确地为其划分类别的。

集群、负载均衡与分布式的区别:

1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)(下面只介绍负载均衡集群)


负载均衡集群(Load Balance Cluster)


负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。


负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。


2、负载均衡系统: 负载均衡又有DNS负载均衡(比较常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一台的机器宕了,都不会影响其他机器的运行,当用户来一个请求,有负载均衡器的算法决定由哪台机器来处理,假如你的算法是采用round算法,有用户a、b、c,那么分别由服务器A、B、C来处理;


3、分布式是指将不同的业务分布在不同的地方。


而集群指的是将几台服务器集中在一起,实现同一业务。 
分布式中的每一个节点,都可以做集群。 
而集群并不一定就是分布式的。


举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。


而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。


分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

其实也可以理解成一样,目的都是为了实现数据库的负载均衡,高可用性。
之间的不同要看怎么设计了,分布式一般是各分布节点根据哈希算法或其他算法分散存储数据,意思就是所有节点的数据加起来才算是整体数据。从应用端传过来的请求只 *** 作涉及到的某个节点或部分节点就可完成一次请求。
数据库集群很多设计的都是所有节点服务器之间的数据是完全同步的。当一个应用发出请求,首先发给负载服务器,根据应用系统提供的负载均衡算法或是数据库本身的负载均衡算法,选择一个负载最小节点来执行请求并返回数据,同时集群中还有一个同步服务器来保证各节点中的数据一致。

总结:可以理解成一样,而且分布式与集群设计的时候也可以一起用

分布式:不同的多台服务器上面部署不同的服务模块,他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。
集群: 不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。

集群就是很多的服务器来实现一种功能,向mysql,很多的服务器都安装mysql,负载均衡就是用来调节的,比方说有很多的用户都在访问读取数据,可是读取a服务器的mysql多,而读取别的服务器的mysql就少,负载均衡把访问a的用户转给b一部分,防止a由于访问量过大造成宕机什么的。分布式就是有很多把服务器的相同功能分别部署在很多太计算机上,然后每个地方放上几台,这几台负责提供本地的服务,并且和总的服务器连接,保持数据传递。

分布式 ,所谓的分布式,其实是一种部署方式。

两个特点,将服务A和服务B放在两台不同的服务器上,共同来完成同一个业务逻辑,这个就叫分布式。

集群 ,所谓的集群,其实就是一整套完整的业务逻辑部署在不同的服务器上。

分布式VS集群

分布式的每个节点都可以来做集群。

比如说:服务A用了两台服务器,服务B用了一台服务器,那么这个服务A就是集群,同时,这也是分布式部署。

集群不一定是分布式。

比如说:我在两台服务器上各自安装上tomcat运行这同一个jar包,这就是集群。再比如说,MySQL的主从也是一种集群方式。
分布式的亲戚,微服务

微服务是一种设计架构,分布式是一种部署方式。

分布式一定属于微服务,但是,微服务不一定属于分布式。

怎么说呢?微服务就是比分布式粒度更小的拆分,降低耦合的同时,运维部署也更难了。

区别,微服务其实和分布式没啥大区别,最主要的是,微服务可以应用可以部署在同一台服务器上。

打个比方,服务A和服务B都部署在一台服务器上,通过RPC远程调用,那么这个项目就是微服务,但是,他的部署方式,不是分布式的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13335424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存