我有一台安装了 3 个硬盘的服务器,总容量为 6 个。我们计划将其发挥到最大,但我们的顾问还建议使用第二个 RAID 控制器“用于冗余”以支持新驱动器。对我来说,这没有多大意义。即使第二个 RAID 控制器运行一半的磁盘,如果其中一个控制器坏了,我们仍然只能使用一半的磁盘/程序/数据(这比没有控制器运行好不了多少)。我们在服务器上安装了 vmware,他含糊地提到了一些高级容错/故障转移功能,但如果由于控制器故障而无法访问磁盘,它应该如何工作?
只考虑裁员原因,不考虑绩效,为什么我要在我的服务器上安装第二个 RAID 控制器?
答案1
在“单机高可用性”设计中,是的,您需要第二个控制器,最好也在第二条总线上。但这种方法已经让位于基于集群的更便宜的设计,其中一个机箱故障不会停止服务。因此,这取决于您是计划使用集群环境还是依赖单个机箱。即使您的答案是后者,拥有双控制器也可能被视为增加了额外的复杂性,甚至可能有点过度。
编辑 - 根据你在另一个问题上关于使用 ESXi 的评论,我不得不说它的集群是极好,我们有许多运行出色的 32 路集群。
答案2
第二个 RAID 控制器被积极使用,但并非为了冗余。只有当它是一个冷备用控制器时,当第一个控制器坏掉时,你才能将所有磁盘切换到这个控制器。然后你就有了冗余(对于控制器而言)。但要小心这样做,正如发布的那样这里。
因此,RAID 是为了磁盘冗余,导致控制器出现单点故障。拥有第二个(未使用的)控制器可能解决这个问题可以将所有磁盘切换到新磁盘。这是否有效取决于其他因素……
我不是英语母语者,但对我来说,“容错”与“冗余”是不同的。有英语人士能帮我解答一下吗?
答案3
在一个盒子上,你实际上需要二RAID 控制器连接到两个不同的 PCI-E 根复合体,具有完整的 I/O 子系统冗余。这可以通过两种不同的配置实现:
- 使用昂贵的双端口 SAS 磁盘,每个 SAS 链路连接到不同的控制器。这样,每个控制器都连接到每个磁盘。显然,两个控制器不能同时对磁盘进行操作;需要某种形式的锁定/隔离来协调对磁盘的访问。SCSI 有一些特殊的规定来提供必要的隔离机制,但这些必须由适当的软件协调。换句话说,您不能简单地将磁盘连接到两个控制器并称之为一天;相反,您需要适当的软件配置才能让它正常工作;
- 使用普通且更便宜的单链路 SAS/SATA 磁盘,将其中一半连接到每个控制器。例如,如果有 6 个磁盘,则需要将 3 个磁盘连接到一个控制器,将 3 个磁盘连接到另一个控制器。在每个控制器上,根据需要配置 RAID 阵列(例如:RAID 5 或 RAID1)。然后,在操作系统级别,您可以在两个磁盘阵列之间配置软件 RAID,实现全阵列冗余。虽然更便宜,但此解决方案还有一个缺点,即有效地将存储容量减半(由于软件 RAID1 级别)。
这两种方法的一个关键问题是您没有完整的系统冗余:主板/CPU 问题可能会导致整个系统崩溃,无论您有多少控制器/磁盘。
出于这个原因,这种盒装冗余最近很少使用(除了中/高端 SAN 部署);相反,集群/网络镜像正在获得广泛的关注。使用集群(或网络镜像),您可以获得完整的系统冗余,因为单个故障系统无法否定数据访问。显然,集群有其自身的缺陷,因此它不是灵丹妙药/简单的解决方案,但在某些情况下,它的优势不容忽视。此外,您还可以使用异步网络镜像在地理位置不同的位置实现近乎实时的数据冗余,这样单个灾难事件就不会对您的数据造成严重破坏。
答案4
您需要双端口 SAS 驱动器才能在多个控制器上提供实际的故障转移。虽然这些确实存在,但绝对不便宜 - 不在只有内部存储的单个服务器的价格范围内。
这些技术通常用于 SAN 系统,而控制器死亡是一个真正存在的问题。
对于没有其他故障转移功能的单个服务器,第二个控制器不会获得任何好处 - 它只会花费更多的钱并为顾问带来更多的利润。