我熟悉设置 RAID 阵列,并且在我的家庭环境中运行了一些。
我想知道是否可以在故障转移配置中拥有多个存储服务器。
我希望以此实现的是与这些服务器有一定的冗余。当一台服务器出现故障时,可以完全更换它而不会丢失数据。我的意思不仅仅是磁盘故障,而是更严重的事情。可能是 BIOS 损坏。我以前吃过那些……不漂亮。
实现这一目标的最佳方法是什么,我将如何设置它?
我熟悉设置 RAID 阵列,并且在我的家庭环境中运行了一些。
我想知道是否可以在故障转移配置中拥有多个存储服务器。
我希望以此实现的是与这些服务器有一定的冗余。当一台服务器出现故障时,可以完全更换它而不会丢失数据。我的意思不仅仅是磁盘故障,而是更严重的事情。可能是 BIOS 损坏。我以前吃过那些……不漂亮。
实现这一目标的最佳方法是什么,我将如何设置它?
是的,有很多解决方案。但是,您还没有说明您打算使用什么操作系统,或者它将以什么规模运行,或者如何使用这些数据。这些是一些最重要的问题。
您指的是复制的文件系统或块设备。在几乎所有情况下,至少需要两个节点来执行此操作,出于仲裁原因推荐至少三个节点(当节点投票时,如果文件坏或节点关闭,我们需要一个决胜局。多数规则,所以节点总数必须是三个或更高才能这样做。)仲裁和围栏是几乎任何类型集群的核心概念,三个节点(或更多)集群是要走的路(特别是当我们谈论存储集群时)。
Linux 对此有一些很好的解决方案。DRDB 是一种复制块系统,可用于将一个或多个分区或磁盘从一个节点同步到可能的多个节点,以及从多个节点同步到一个节点。DRDB 更适合故障转移情况而不是同时节点访问,因为它与其节点具有主/从关系。
DRDB 不会假设您将在同步并呈现给您之后使用这些块设备做什么。如果您尝试挂载无法集群的文件系统,IT 并不关心,所以要小心。像 OCFS2 这样的文件系统将允许您同时访问 DRDB 设备,但在大多数情况下,人们使用 DRDB 进行故障转移,一次仅在一个节点上安装非集群文件系统(例如 EXT4 文件系统)。这样做有很好的理由。最大的一个问题是,如果我们不必在写入数据后立即复制数据,我们可以获得更好的性能,就像我们在共享挂载场景中必须做的那样(例如使用 OCFS2)。更多关于 DRDB 的信息:https ://www.drbd.org
对于您可以同时访问的复制和分布式“云”模型,GlusterFS 是一个很好的解决方案,设置起来非常简单。它最适用于需要在所有节点之间共享文件系统的云环境,例如存储阵列集群和 VM 主机集群。
使用 Gluster,我们将文件系统一起复制到节点上,当与 NAS 接口时,它更像是与 NAS 进行文件共享(有一个重要区别 - 您的服务器是许多节点,而不仅仅是一个大型存储阵列)。这对于运行和支持 Linux 系统的高可用性存储阵列来说非常棒,并且在规模上具有非凡的性能。它没有主/从的概念,所有节点平等地同时参与。添加更多节点通常意味着合理配置下的更高性能。Gluster 是高度模块化和可配置的。
当您开始将 Windows 系统连接到 Gluster 时,它会更加复杂,因为 Windows 无法直接连接到 Gluster(相反,它必须通过 Samba 与 CIFS“共享”文件系统 - 而 Samab 可能会变得复杂)。然而,对于 Linux - Linux 共享,Gluster 非常容易部署和管理。更多信息在这里:https ://www.gluster.org/
在类似于 Gluster 的概念中,您可以查看 ceph。这是一个分布式对象存储,可以在其前面运行块和文件系统转换器。它在 Openstack 云中非常常用——目前甚至超过 Gluster。它具有文件系统功能,以及对象存储和块存储。它比 Gluster 更复杂,但目前功能更丰富。http://docs.ceph.com/docs/jewel/
最后,对于 Windows,我们有 XtremeFS,它可以为您提供复制的块存储(有点像 ceph)和 DFS。
DFS 在小规模上的表现可以接受,并且可用于同步许多同时节点上的文件系统。如果你愿意的话,它类似于 Gluster。它的性能不太好,功能也不丰富,但对于小规模来说,它可以快速完成工作(并且很容易在 Windows 服务器上设置)。与上述解决方案不同,Windows 客户端可以本地连接到它。
这些技术都与 RAID 无关。如果您希望在存储集群中的组成节点上有一个 RAID 阵列,您可以。然而,许多大型云文件系统的部署只担心节点级别的冗余,选择根本不使用 RAID。当某个节点的磁盘出现故障时,使该节点下线并更换磁盘。使节点联机并重新同步整个节点。反正就是这个想法。在较小的规模上,RAID 仍然有意义。
一般来说,是的。你问的是可能的。
看看这个很酷的项目:CEPH Project。它还支持具有良好性能的完全分布式存储池。
如果您想继续使用旧式解决方案,DRBD是服务器之间的块到块同步,RAID1 样式。但它是资源消耗型的。
这称为故障转移群集。有多种方法可以实现这一目标。有些工作在文件系统级别,例如 GlusterFS 或 ZFS 复制。有些工作在硬件级别,例如驱动具有多个头单元的 HDD 托盘。通常,您希望同时实现地理和硬件冗余。
头部单元基本上是文件服务器,硬盘托盘只是装满硬盘的哑单元,连接到头部。主机完成所有工作。通常您可以将这些主机配对在一起,这样如果一个失败,另一个会透明地接管。甚至一些入门级 NAS 也支持故障转移。
除此之外,您可能确实希望与不同的地理位置同步。这通常在 FS 级别上完成,但根据网络连接的使用情况可能会出现问题。