如何为CentOS 6配置24 x 1.2 TB驱动器的RAID 5,尤其是条带大小?


8

对于具有24个1.2TB磁盘(和1TB RAM)的Dell R920,我希望为快速IO设置RAID 5配置。该服务器将用于托管KVM VM,该KVM VM将读取/写入各种大小的文件,包括非常大的文件。我对数据安全性并不特别感兴趣,因为如果服务器由于任何原因发生故障,我们将在更换发生故障的部件后从裸机重新配置服务器。 因此,性能是主要问题。 我们之所以考虑使用RAID 5,是因为它允许我们在多个主轴上分配数据,因此可以提供更好的性能,尽管不是我们的主要关注点,但是它也可以为我们提供一些数据保护。我们的NIC是双10Gbps。

我将这个问题限制为RAID 5仅是因为我们认为这将提供最佳性能。只有当有令人信服的性能原因时,我们才会考虑其他因素。但是,我想我更喜欢与RAID 5配置有关的答案。

好的,根据以上所述,这是我们当前的配置思想:

  • 24个硬盘:RMCP3:1.2TB,10K,2.5“ 6Gbps
  • RAID控制器:H730P,12Gbps SAS支持,2GB NV缓存
  • 1个热备用(如果驱动器确实发生故障,只是为了给我们更长的使用寿命)
  • 23个数据驱动器(其中1个作为奇偶校验,剩余22个用于数据)
  • 条带大小:1MB(1MB / 22个数据驱动器=每个磁盘〜46.5KB,或者,我是否误解了条带大小)?
  • 读取策略:自适应预读
  • 写策略:写回
  • 磁盘缓存策略:已启用

如果数据驱动器上的条带大小为TOTAL,那么我认为每个驱动器〜46.5KB将为我们提供非常好的吞吐量。如果条带大小是每个主轴的,那么我就错了。

条带大小是否也占用单个文件的大小?例如,如果有一个2KB的文件,那么选择1MB的条带大小是否意味着我们要浪费几乎整个兆字节?还是一个条带中可以存在多个文件?

最后,当我们安装CentOS 6.5(或最新版本)时,是否需要做一些特别的事情来确保文件系统最佳地使用RAID?例如,mkfs.ext4具有-E跨度选项,我被告知应对应于RAID配置。但是,在安装CentOS期间,有什么方法可以做到这一点?

非常感谢您为快速IO配置RAID 5的想法。


4
RAID 5是您希望使用的性能,它的写入速度可能非常糟糕。
内森·C

1
您能否提供有关此存储解决方案的读/写工作负载和应用程序的一些上下文?
ewwhite 2014年

1
如果您想获得性能,请不要使用HDD。您可以通过一个好的SSD存储系统甚至PCIe存储解决方案来获得更高的性能。如果您不在乎数据是否丢失,请使用SSD或PCIe存储解决方案。
丹尼斯·诺尔特

2
@Tonny我验证了这一点。该控制器最多可容纳16个磁盘。
ewwhite 2014年

7
大家,请记住您不是天生的专家,每个人都在某个时候学习。对那些比你了解少的人要好。
克里斯S

Answers:


12

请在控制器和驱动器设置中使用RAID 1 + 0。如果您需要更多的容量,比如RAID 50/60嵌套的RAID级别可以正常工作。您可以在少量企业SAS磁盘(8个驱动器或更少)上使用RAID 5,因为重建时间还不错。但是,24个驱动器是一个严重的错误。(哦,并禁用单个磁盘缓存功能...很危险)

I / O和本地存储性能有很多方面。每秒有I / O操作,有吞吐量,有存储延迟。RAID 1 + 0是两者之间的良好平衡。积极的方面是您正在使用企业磁盘,功能强大的硬件控制器和大量磁盘。您需要多少容量?

您可能会在虚拟磁盘组中使用的驱动器数量受到限制。传统上,PERC / LSI控制器将其限制为用于单个RAID级别和RAID 1 + 0的16个驱动器。用户指南对此进行了确认您将无法在单个RAID 5或单个RAID 1 + 0组中使用所有24个磁盘。

根据您的工作负载,需要考虑的另一个方面是,您可以在某些PERC控制器上使用LSI Cachecade功能来利用SSD缓存。它可能对此不可用,但是了解您的I / O模式将有助于定制存储解决方案。


至于ext4文件系统创建选项,其中的大部分将由您的硬件RAID控制器抽象。您应该能够在这里没有任何特殊选项的情况下创建文件系统。您所引用的参数将对软件RAID解决方案产生更大的影响。


这里有一些非常有用的信息。我们首先要寻找性能,其次是总磁盘空间。因此,我们之所以不考虑RAID 10,是因为我们损失了24TB​​可用磁盘空间的一半。我们的需求是非常繁重的数据,因此我们很容易就可以遍历TB的数据。由于服务器故障的后果对我们来说是低优先级的(因为在修复不良硬件之后,我们可以从头开始重新构建服务器-也就是说,数据安全不是我们最重要的考虑因素),因此我们希望最大化磁盘IO(本地和NFS /另一个故事)和整体处理速度。
史蒂夫·阿默里奇

@SteveAmerige您需要多少磁盘空间?您不能在一个RAID组中使用24个磁盘,因此您的环境还有一些其他设计注意事项。您能告诉我们此系统在做什么,涉及什么类型的数据以及实际的性能要求是什么?
ewwhite 2014年

1
@SteveAmerige更多细节!RAID 5不能启动。您只是不应该在2014年使用它。这是什么类型的数据?虚拟化技术将是什么?KVM?VMware?我认为这里的设计确实需要改进,尤其是在投资大量硬件之前……您知道每个VM的“工作集”数据的大小是多少?在该值已知的情况下,您可以对此进行缓存和优化。分层存储。固态硬盘。工作负载是读偏向还是写偏向?
ewwhite 2014年

1
RAID 5 would give us some data safety at the expense of effectively 1 hard drive per group, right? 不,不对。使用如此大小的驱动器以及一个组中的许多磁盘,RAID 5有效地为您提供了0数据安全性。也可以将磁盘放入两个12磁盘RAID 0阵列中。
HopelessN00b 2014年

1
最后,我对24个物理驱动器进行了以下配置:磁盘组0,RAID 10(4个驱动器):VD 0:BOOT 100GB;VD 1:ROOT 2134.5GB。磁盘组1,RAID 0(10个驱动器):VD 2:DATA1,11172.5GB。磁盘组2,RAID 0(10个驱动器):VD 3:DATA2,11172.5GB。我可能不需要拥有单独的VD 0 BOOT和VD 1 ROOT虚拟磁盘。我这样做是为了确保启动盘可以执行标准(非UEFI)启动。后来我使用LVM,所以我拥有/专门使用VD 0和VD 1;和使用VD 2和VD 3的/ data。非常感谢所有注释!
史蒂夫·阿梅里奇

5

不要在24个1TB磁盘上使用单个RAID 5阵列!我不太在乎您希望将答案局限于什么,这是一个坏主意,您应该考虑其他选择。

磁盘故障的几率随每个磁盘而增加。重建所需的时间也是如此。当驱动器发生故障并进行更换时,它将在所有磁盘上使用尽可能多的IO,以为新磁盘构建数据。在此过程中,剩余的23个良好磁盘中的一个很可能会发生故障,从而迫使您从备份中还原服务器。您说谁不在乎...但是您愿意每月接受一次吗?每周一次?随着磁盘的老化,它可能会变得很糟糕。

此外,如果您想要性能,RAID5会带您走错方向。在许多情况下,RAID5的性能比其他选项差,因为它必须为每次写入计算奇偶校验,然后再将其写入驱动器。RAID5不是为性能而设计的。

如果您真的不在乎数据,请使用RAID0。但是即使如此,也要创建几个单独的阵列,而不是一个巨型24磁盘RAID 0。

如果需要性能和某些完整性,请使用RAID10。您会损失一些磁盘空间,但性能会大大提高。

或者,您可以查看ZFS之类的东西,它们是从头开始设计的,可以处理磁盘上的大量数据。


1
仅供参考,我是一名软件开发人员,负责管理我们部门的服务器。那意味着我在知识上有很多空白。但是,我已经相当成功地做了几年了。这是我第一次构建如此大的服务器,非常感谢您的反馈。非常感谢您对RAID 5限制的评论。我们想要的是性能和总可用磁盘空间,但是我们愿意考虑一些RAID配置,这些配置为我们提供了一些数据安全性(我们的最后优先权)。
史蒂夫·阿默里奇

1

您的选择:

  • RAID 0:这会将您的所有磁盘变成一个没有冗余的单元。这具有最高的读写性能和所有选项中最可用的空间,但是丢失单个磁盘意味着丢失所有数据。

  • RAID 1 + 0:这会将您的所有磁盘变成一个单元,并且所有数据都存在于两个磁盘中。读取速度与RAID 0大约相同,写入速度减半(因为您需要两次写入每个数据),并且只有一半的可用空间。单个磁盘的丢失对数据可用性没有影响,对读/写速度的影响也很小。

  • RAID 5:这会将您的所有磁盘变成一个单元,并在一个磁盘上具有奇偶校验值。读取速度略低于RAID 0,写入速度要慢得多,可能比单个非RAID磁盘的写入速度要慢(每次写入都需要至少两个磁盘上的读取-修改-写入周期),并且您丢失一个磁盘的奇偶校验信息空间。丢失单个磁盘可能会导致读取速度大大降低(重建存储在磁盘上的数据需要从所有其他磁盘读取数据),但不会影响数据可用性。

  • RAID 6:它基本上具有RAID 5的所有优点和缺点,除了它可以存储奇偶校验计算之外的校验和之外,还可以处理两个磁盘的丢失而不会丢失数据。

如果数据安全性确实无关紧要(包括从原始源恢复数据所花费的时间(可能要花费数天,并且重新进行中断的计算会浪费时间)),则建议使用RAID0。否则,如果您的工作量几乎是零如果要专门阅读,并且想要提高可靠性,我建议您使用RAID 6(但请注意,从故障磁盘恢复性能会受到影响)。如果您有读写工作负载,建议您使用RAID 1 + 0。

根据工作负载的确切性质(即,如果给定任务访问磁盘空间的明确定义的子集),则可以设置多个独立的RAID阵列,这样一个阵列的故障不会影响其他阵列。 。

RAID 5没有任何好处。与RAID 0相比,它会降低性能(尤其是写入性能),并且随着您拥有的磁盘数量的增加,几乎可以确定第二个磁盘在恢复过程中会发生故障,因此没有数据安全性的好处。


1

好的,只是一个明确的问题-条带大小。除非您的RAID笨拙,始终将整个数据条作为最小的I / O块进行读写,否则条带大小越大越好。

为什么?-小条带大小意味着将多个磁盘包含在任何冗长的I / O中,用一个逻辑I / O加载多个磁盘的机会就越少。大条带化意味着将一个(或几个)磁盘包含到I / O中的机会更大。这似乎是不足的原因,与多个磁盘相比没有任何增加,但是随后几乎是随机的负载跃入,您意识到负载将或多或少均匀地分布在所有磁盘上。

可以在这里找到更多背后的理论:http : //www.vinumvm.org/vinum/Performance-issues.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.