要或不要RAID:SSD和虚拟化


8

我正接近那个时候,由于Windows腐烂,我的主PC速度已经足够慢了,我可能应该重新安装它。与其花一个星期的掰手腕,重新安装,仅在配置发现我忘了备份我的Visual Studio设置的再一次,我要升级。我已经购买了所有零件,并且正在进行基准测试以找到最佳配置。

我购买了两个Crucial M4 120GB SSD(截至12月4日已更新为最新固件00F),并且已经使用CrystalDiskMark运行了一些快速基准测试。结果如下:

单驱动器:

单驱动器性能

RAID 0通过Intel Z77芯片组控制器:

RAID 0

这些基准显然并不详尽,但是我认为它们使我对各种配置之间的期望值有了一个很好的了解。

我的理解是,对于大多数常见的使用模式,即使用Visual Studio进行开发(我的主要用法)4K,即使在构建过程中,读写也要常见得多。RAID 0两者之间没有什么区别。但是与512KSequentialR / W的区别足以引起注意。

关键是,为了避免将来出现问题,而且坦率地说,因为我可以,我将更多地依赖于虚拟化。我的计划是使用VMware Workstation将开发环境的不同部分划分为虚拟机:一个使用Visual Studio和随附工具,另一个使用SQL Server,另一个使用Adobe Design Suite,等等。是创建还是克隆新的副本,我相信我会看到长期可靠性方面的改进(并且只有在需要时才会看到Adobe更新弹出窗口)。

因此,我的问题是,虚拟化是否值得在RAID 0传统设置上使用SSD配置(在我的情况下,在一个SSD上使用OS和裸机应用程序,在另一个SSD上使用VM)?虚拟化能否利用的R / W 512KSequentialR / W优势RAID 0


观察:

我读过一些现代SSD能够自行管理垃圾收集,因此没有TRIM问题就不多了。我不知道如何在我的SSD上启用它,甚至不知道它们是否支持它。


编辑:

关于灾难恢复,该系统还具有用于文件存储的大型标准磁盘驱动器和辅助RAID控制器,我将最终在镜像阵列中使用它们。结合每晚的本地备份,通过Carbonite进行的持续异地备份以及一致的异地源代码管理签入,我已经有了防止数据丢失的足够方法。


1
在没有详尽的灾难恢复计划的情况下,我会避免使用RAID 0,但是虚拟化肯定会利用该配置中SSD带来的更高速度。

好点子。我忘了提一下,我还配备了一些标准驱动器,并且我拥有多头现场和异地备份。因此,如果驱动器发生故障,我并没有完全搞砸,但这是一个好主意,因为我忘记了RAID 0阵列中的一个驱动器是否消失了,所有数据都会丢失。
乍得利维'04

1
另一个可能需要引起注意的问题:运行RAID可能要求所有I / O以特定条带大小为单位。VM可能不会按照这些条带大小进行I / O操作,并且会引起大量的写放大,从而大大缩短驱动器的使用寿命。
afrazier 2012年

Answers:


5

首先,编译代码主要受CPU限制,因此不要指望在那里对单个SSD进行改进。

在您的基准测试中,尽管4k 0队列深度性能没有增加,但是4k 32队列深度(QD32)确实线性增加。海事组织,这一结果将推动您做出决定。

即使工作站不是队列深度一直很大的数据库服务器,在半密集型工作站使用期间,队列深度至少在突发中通常为2-20,在这种情况下,随机IO的确会随着RAID 0的提高而改善。考虑到VM添加了一个并发操作系统活动的另一层(最终您可能最终会使用2个以上并发VM),我认为该指标应该可以改善您的方案。

您可以在Windows的性能监视器(添加计数器...物理磁盘...平均读/写队列深度)中监视当前队列深度的使用情况,以获取帮助。

RAID确实增加了一层复杂性(以及备份/恢复问题),但是拥有更大的240gb分区绝对是IMO的优势。在将RAID与驱动器一起使用之前,请确保对所有TRIM问题进行核实-这可能是个阻碍。


很好的信息,谢谢。关于TRIM支持-我认为TRIM正在运行,或者至少已启用fsutil。如果命令未通过RAID接口传递,Windows是否会启用TRIM?
乍得利维

1
我不太熟悉(这里只有1个SSD。),但我相信,由于RAID控制器不支持TRIM,因此您永远不会在任何地方看到对其的引用。换句话说,TRIM将在技术上被禁用,因此您必须确信SSD的固件在内部进行了不错的垃圾管理(不过请不要在此引用我的意思)。请注意,如果您正在使用Intel RST驱动程序,则有时会在2012年支持RAID TRIM。其他控制器可能会跟随。
mtone 2012年

3

硬盘速度对于整体Visual Studio性能很重要。斯科特·格思里(Scott Guthrie)在这篇文章中对此进行了很好的论述:

过去几年中,计算机上的多核CPU的速度已经足够快,以至于在大多数常见的应用场景中,您通常不会最终阻塞计算机中可用的处理器容量。

使用Visual Studio进行开发时,最终会读取/写入大量文件,并花费大量时间进行磁盘I / O活动。大型项目和解决方案可能具有数百(或数千)个源文件(包括图像,css,页面,用户控件等)。当您打开一个项目时,Visual Studio需要读取并解析其中的所有源文件,以便提供智能感知。当您加入源代码管理并签出文件时,您正在更新磁盘上的文件和时间戳。编译解决方案时,Visual Studio将从多个磁盘路径位置检查更新的程序集,在编译完成后将多个新程序集写到磁盘上,并将.pdb调试器符号文件与它们一起持久化在磁盘上(全部作为单独的文件保存操作)。

以我个人的经验,使用SSD很有帮助,但是鉴于大量的磁盘I / O可能很小,因此随机读取RAID 0可能不会带来很大的改善。您可能会发现的另一件事是虚拟磁盘I / O吞噬了您的部分收益。


3

英特尔Z77支持带RAID的Trim,并且是首批支持RAID的低预算芯片组之一。但是您需要在存储设置中指定正在使用SSD。

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.