我的nas集群

来源:互联网 发布:什么手机支持4g十网络 编辑:程序博客网 时间:2024/05/16 03:12

       头一次写博客,要是语义不通,次序胡乱还请原谅。

最近看了一本《大话存储》的书,并且结合我参与最近设计一个nas集群的功能。趁现在记录一下,以后好翻阅,同时如果有网友看到也可以指正一下。


nas:nas就是基于网络协实现数据传输。我个人觉得,其实就是应用程序写或者读数据时,会通过网络协议到服务器上的文件系统,再有文件系统到内存通信等等最后到物理磁盘上读取信息的过程(理解可能有误)。

集群:就是将多台服务器集合起来共同协作,以提高可用性、负载均衡、和高性能为目的。

设计一个相对狭义的nas集群:通过tcp/ip(网络)将不同服务器上的文件系统连接成一个整体。使得这些文件系统可以协同工作。

设计方案时思考,将高可用性放在了首位,即如果有一个或者多个服务器故障了,其它正常的服务器依然能接替坏掉的服务器的工作,使得业务能正常运行。

设计方案:1、设计4个master(master用于保存文件的元数据且每个master的元数据完全相同,真正的数据存于data中)和两个slave(存放文件真实数据).其中4个master处于平等地位共同连接到网络中。其中无论哪个接受到数据(如创建文件),都首先在本端创建文件元数据,然后再创建两个data file。其中两个data file数据完全一样,其中一个作为备份存于不同文件服务器上,以达到保护数据的作用。当在本端建立好元数据节点后通知其它服务器,也建立相同的节点,4个master的data指针均指向相同位置。

缺点:该方案由于将4个master处于相同的地位,因此当4个master业务均繁忙时,其逻辑判断相当复杂,稍微不注意便可能出错。因此放弃了这一方案。


方案二:因为放弃了上一种4个master节点地位相同的方案。故采取相对保守的方案,即在4个master中选择一个作为优先级最高的主master,其余的一次设置优先级。当主master故障后,能在另外3个中选择一个正常的master来接替故障master的工作。从而使得业务能够继续正常运行。同样,这一个nas集群中任何一个接收到数据都要将其传输给主master,由主master完成创建、读写等其他工作。完成了后将主master的元数据信息发送给其他3个master,让他们将主master发来的元数据也备存一份。这样,当一个服务器故障可以完全不影响业务的运行。


注意:这里一个文件的元数据除了文件属性还包括每个master节点的信息位置,以及两个data节点的信息位置,这样就保证了无论哪台master都可以找到另外的master和data数据。

0 0
原创粉丝点击