存储 频道

深入了解集群存储系统的相关知识

  【IT168 技术】集群存储系统早就已经开始统治大宗数据的存储领域。目前随着数据越来越多,超大的存储量就需要一个好的集群存储系统或者将以前的系统进行技术升级。我们在选择集群存储系统的时候也需要进行严格的论证才能选择到一个好的集群存储系统。

  建立集群存储系统和使用率高的数据存储解决方案有很多选择,但是要想弄清每种选择的优劣则要花点时间进行研究。集群存储系统架构和文件系统的选择至关重要,因为大部分的存储解决方案都有严格的限制条件,需要仔细设计工作环境。

  有些读者也许希望装配一组可以并行访问同一个文件系统的服务器,而另一些读者可能想复制存储器并提供并行访问和冗余。有两种方法可以实现多服务器访问同一个磁盘,一种方法是让那些服务器都可以看到那个磁盘,另一种方法则是通过复制。

  共享磁盘结构在光纤通道SAN和iSCSI领域是最常见的结构。配置存储系统相当简单,这样多个服务器就可以看到同一个逻辑块设备或LUN,但是如果没有群集文件系统,那么当多个服务器同时想使用那个逻辑块设备时就会出现混乱。 这个问题与使用群集文件系统有关,我们将在下文中详细介绍。

  一般而言,集群存储系统统有个弱点,那就是存储系统。但是情况也并非总是如此,因为利用现在的技术是很难理解共享盘的概念的。 SAN、NAS设备和基于Linux系统的商品硬件可以将所有的基础磁盘实时复制到另一个存储节点,从而提供一个模拟共享盘环境。基础模块设备被复制之后,那些节点就可以访问相同的数据,也可以运行同一个群集文件系统了,但是这种复制超出了传统共享盘的定义。

  相反,不共享才是共享盘的问题所在。连接着不同存储设备的节点会在每个模块被写入数据时将变化通知给主服务器。 现在,不共享架构仍存在于Hadoop那样的文件系统之中,那些文件系统可以在许多节点故意建立多个数据副本,从而提高性能和冗余。而且,在不同存储设备或节点之间利用自己的存储设备进行复制的群集也可以做到不共享。

  正如我们所说的,你不能通过多个服务器访问同一个模块设备。你听说过文件系统锁定,因此普通的文件系统并不能实现这一点就有些奇怪了。

  在文件系统级别上,文件系统本身会将文件锁定以保证数据不会出错。但是在操作系统级别上,文件系统启动程序完全可以访问基础模块设备,它们可以在基层模块设备之间自由的漫游。大部分文件系统都会认为它们被分配了一个模块设备,而且那个模块设备也只是它们自己所有。

  为了解决这个问题,集群存储系统采用了一种并行控制机制。有些集群存储系统将把元数据保存在共享设备的一个分区里,另一些集群存储系统则会使用集中式元数据服务器来保存元数据。 不管采用哪种方案,集群存储系统中的所有节点都可以看到文件系统的状态,从而保证安全的并行访问。然而,如果你想保证系统的高利用率和消除单点故障问题,那么采用集中式元数据服务器的解决方案就要略逊一筹了。

  另一个注意事项:集群存储系统要求在节点发生故障时迅速做出反应。如果某个节点写入错误数据或由于某种原因停止关于元数据变化的通信,其他节点必须能够将它隔离出去。隔离可以通过多种方式来实现,最常用的方法是利用断电管理来实现。健康的节点可以在发现问题时第一时间关闭另一个节点电源(STONITH)以保全数据。

  有太多选择并不是坏事。你可以根据执行目标选择使用合适的集群存储系统或分布式文件系统以及存储架构。 只要有计划地使用,所有这些文件系统都可以发挥出应有的作用。

0
相关文章