如何设置SSD RAID和TRIM支持?


9

我正在寻找一个新的服务器。我只能使用Intel 520系列240gb MLC固态硬盘或标准Seagate 7200rpm磁盘。
这些是不可谈判的选择。

自然地,因为它将运行MySQL,其主要任务是MySQL服务器。由于最大的性能瓶颈是磁盘I / O,因此我更愿意使用SSD。

我需要有接近1TB的磁盘空间。现在,RAID5不能提供最佳性能,并且有传言说它不适用于SSD,因此我正在研究Raid 10(1 + 0)设置,该设置将为我提供720gb(240gb * 3)

我需要知道如何使用软件raid在Ubuntu 12.04.01 LTS上进行设置,并确保为raid配置启用了TRIM支持(在Linux中称为Discard)。

有人没有成功吗?任何需要注意的howto信息和内容,以及基本上要使用的工具等等都将提供很大的帮助。

理想情况下,我还需要能够启动SSD RAID阵列。

谁能指出我正确的方向?

谢谢。


1
最近在RAID的SSD上使用TRIM时遇到了大麻烦。错误使TRIM随机将活动文件归零。据说只有三星固态硬盘会受到影响,但是AFAIK是因为只有三星固态硬盘经过了测试。为此,我强烈建议您考虑使用BTRFS RAID10代替mdadmLVM。
Barafu Albino

Answers:


4

答案是“取决于情况”,您应该在断言这种僵硬的立场之前真正了解TRIM的所作所为。

http://www.spinics.net/lists/raid/msg39641.html

MD RAID需要特定的支持来转发DISCARD请求,直到3.6才提出,因此支持将不在精确的内核中。我只是看着,它不在那儿。

https://lkml.org/lkml/2012/3/11/261

SSD固然不错,但与高RPM磁存储结合使用时,最具成本效益。例如,在文件系统由包含15K磁盘的RAID 10支持的情况下,使用RAID 1 SSD阵列来容纳文件系统日志。

http://insights.oetiker.ch/linux/external-journal-on-ssd/

RPMS越高,最坏的寻道时间越短,随机IO负载将从RPM高支持存储中受益最大。SQL可能需要大量写入,因此任何奇偶校验计算都是一个坏主意,例如RAID 4和5。

RAID和文件系统的组织与后备存储同样重要。

您始终可以手动对磁盘进行TRIM操作,每周一次都可以启动,在更频繁地运行磁盘之前,应该先观察一下性能影响。哦,它们会耗尽,因此,最好估算一下您的SSD具有多少写入/删除周期并一次为RAID 1服务。

https://wiki.archlinux.org/index.php/Solid_State_Drives#Apply_TRIM_via_cron


4

我知道我是这个问题的最新来者,但我想看看我是否可以为任何搜索者提供一些启发。

首先,@ ppetraki的答案非常好。

对“我可以RAID SSD并从中引导”的简短回答是“是!”。以下是 14.04的说明。在12.04.x上进行RAID配置的说明是相同的,但是使用9.10的本教程中有图片。以下是一些重要的陷阱和细节,我必须通过个人经验来发现困难的方法:

我在MD RAID0配置和对SSD友好的Btrfs文件系统上运行3.8内核的Ubuntu 12.04.5。我每周做一次fstrim。

我从fstab获得的额外Btrfs挂载选项

defaults,ssd,ssd_spread,space_cache,compress=no,noatime

如果要compress=no用作Btrfs挂载选项,则需要3.8内核;对于使用,还可能需要3.8内核fstrim,用于计划修剪的manual trim命令。

在引导到安装程序之前,还必须在SSD上手动对齐 SSD上的分区(无论是否有任何多分区设置,是否进行突袭),因为根据SSD的页面大小,只有第一个分区才能正确对齐(这花了我一段时间赶上它),这会严重影响驱动器的使用寿命。在尝试安装之前,可以从安装程序中的命令提示符下或通过实时USB /光盘执行此操作。警告:自己做数学。Fdisk将说谎对齐。

进一步阅读:我认为Btrfs甚至可以创建自己的raid数组

关于TRIM:

由于配置过多,可以说这是不必要的

14.04是第一个开箱即用地启用 TRIM支持的版本,但是如果您使用的是内核2.6.33+,那么在以前的发行版中启用它就很简单了。

根据您选择的文件系统,可以通过编辑fstab并设置适当的安装选项来启用修整/丢弃。执行此操作与通过cron运行它之间的区别在于,第一个将即时进行修剪/丢弃,第二个将按计划一次执行。我用第二个。

有关系吗?据说,在线丢弃(使用mount选项)的实现不是很好,而且速度很慢,因此“不推荐”。我可以告诉您,每周执行cron作业时,我的“ hdd”(呵呵)指示灯熄灭10至20分钟,但操作系统响应能力几乎完全不受影响。

从阵列引导

尽管在快速阅读ubuntu 14.04指令时看不到这一点,但是我不得不创建一个额外的主分区,该分区不属于我的RAID阵列。磁盘0具有ext3fs的500mb主分区。在安装过程中,我告诉安装程序将其安装在“ / boot”位置,然后设置可启动标志。然后,将引导加载程序安装在此处,以便操作系统可以启动然后安装RAID。剩余的磁盘0空间被划分为2个分区,这些分区随后用于成为“ /”和“ / swap”的MD阵列。磁盘1具有相同的磁盘,但没有启动分区。另外,我仅在某些时候需要交换并且btrfs不支持交换文件的情况下创建了交换。该分区永远不会挂载;安装后,我在fstab中将其注释掉。

原谅所有修改,只是想尽一切办法。


感谢您提供的有见地的信息。我将在下一个系统部署中尝试一下
Steed 2015年
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.