![故障转移群集中可以有多个存储服务器吗?](https://linux22.com/image/690701/%E6%95%85%E9%9A%9C%E8%BD%AC%E7%A7%BB%E7%BE%A4%E9%9B%86%E4%B8%AD%E5%8F%AF%E4%BB%A5%E6%9C%89%E5%A4%9A%E4%B8%AA%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%97%EF%BC%9F.png)
我熟悉如何设置 RAID 阵列,并且在我的家庭环境中运行了一些阵列。
我想知道在故障转移配置中是否可以拥有多个存储服务器。
我希望通过这种方式实现这些服务器具有一定的冗余性。当一台服务器发生故障时,可以将其完全替换而不会丢失数据。我指的不仅仅是磁盘故障,而是更严重的问题。可能是 BIOS 损坏。我以前也遇到过这种情况……情况不太妙。
实现这一目标的最佳方法是什么以及我该如何设置它?
答案1
是的,有很多解决方案。但是,您还没有说明您打算使用什么操作系统,或者将以何种规模运行,或者这些数据将如何使用。这些都是最重要的问题。
您指的是复制文件系统或块设备。在几乎所有情况下,至少需要两个节点才能做到这一点,出于仲裁原因,建议至少使用三个节点(当节点投票决定文件是否损坏或节点是否关闭时,我们需要一个决胜局。多数规则,因此节点总数必须为三个或更多才能做到这一点。)仲裁和隔离是几乎任何类型的集群的核心概念,三个节点(或更多)集群是可行的方法(尤其是当我们谈论存储集群时)。
Linux 对此有一些很好的解决方案。DRDB 是一个复制块系统,可用于将一个或多个分区或磁盘从一个节点同步到多个节点,或从多个节点同步到一个节点。DRDB 更适合故障转移情况,而不是同时进行节点访问,因为它与其节点具有主/从关系。
在同步并向您呈现这些块设备后,DRDB 不会假设您将如何处理它们。如果您尝试挂载无法集群的文件系统,它不会在意,因此请小心。像 OCFS2 这样的文件系统将允许您同时访问 DRDB 设备,但在大多数情况下,人们在故障转移容量中使用 DRDB,一次仅在一个节点上挂载非集群文件系统(例如 EXT4 文件系统)。这样做有很好的理由。最大的原因是,如果我们不必在写入数据后立即复制数据,我们可以获得更好的性能,就像在共享挂载场景中(例如使用 OCFS2)那样。有关 DRDB 的更多信息,请访问此处:https://www.drbd.org
对于可以同时访问的复制和分布式“云”模型,GlusterFS 是一个很好的解决方案,并且设置起来非常简单。它最适合用于云环境,例如存储阵列群集和 VM 主机群集,这些环境需要所有节点之间共享文件系统。
使用 Gluster,我们可以在节点上一起复制文件系统,当与 NAS 交互时,它更像是文件共享(但有一个重要的区别 - 您的服务器是许多节点,而不仅仅是一个大型存储阵列)。这对于运行和支持 Linux 系统的高可用性存储阵列来说非常棒,并且在规模上具有非凡的性能。它没有主/从概念,所有节点都平等地同时参与。添加更多节点通常意味着在合理的配置下性能更高。Gluster 高度模块化且可配置。
当您开始将 Windows 系统连接到 Gluster 时,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,如果你愿意的话。它的性能不如 Gluster,功能也不那么丰富,但对于小规模来说,它可以快速完成工作(并且在 Windows 服务器上设置起来非常容易)。与上述解决方案不同,Windows 客户端可以本地连接到它。
这些技术都与 RAID 无关。如果您希望在存储集群中的组成节点上拥有 RAID 阵列,您可以这样做。但是,许多大型云文件系统的部署只担心节点级别的冗余,选择根本不使用 RAID。当节点的磁盘出现故障时,使节点脱机并更换磁盘。使节点联机并重新同步整个节点。无论如何,这就是想法。在较小的规模下,RAID 仍然有意义。
总体来说,是的。你问的是有可能的。
答案2
答案3
这称为故障转移集群。有多种方法可以实现这一点。有些方法在文件系统级别上工作,例如 GlusterFS 或 ZFS 复制。有些方法在硬件级别上工作,例如使用多个主机驱动 HDD 托盘。通常,您需要同时执行这两种操作才能实现地理和硬件冗余。
主机基本上就是文件服务器,硬盘托架只是装满硬盘的哑单元,连接到主机。主机完成所有工作。通常您可以将这些主机配对在一起,这样如果一个主机发生故障,另一个主机就会透明地接管。甚至一些入门级 NAS 也支持故障转移。
除此之外,您可能确实希望与不同的地理位置同步。这通常在 FS 级别完成,但根据使用情况和网络连接情况可能会出现问题。