我们正在考虑使用Linux和RAID(5或10)设置来构build一个实时回放机器。 目前的设置如下所示:
我曾经运行过Bonnie ++和iozone做不同的RAID设置(5和10),不同的fstypes(ext4和xfs)以及不同的条带大小。 不幸的是,我似乎无法获得我想要的速度(始终<200MB / s)。
我做的另一个testing是直接在回放软件(RV – http://www.tweaksoftware.com/products/rv ),但不能让它发挥更快的速度超过20帧(寻找24帧/秒)更多比3个序列。
这些播放细节是有点无用,我只是想知道什么是最好的设置,以获得像〜700MB / s的读取性能? 可能吗?
我一直在阅读相当多,看起来像一个硬件控制器可能会更好。 另外我猜7200rpm是不够的。 10或15k可能会更好? SSD怎么样?
我对这个项目有另一个限制,这台机器将存储所有项目的所有序列,所以密度(我敢打赌,获得与SSD驱动器相同的存储量与标准的10k rpm驱动器相比将花费更多的成本)。
任何build议或技巧将不胜感激,以获得最佳的读取速度/存储量。
谢谢!
编辑:只要偶然发现这个http://www.fusionio.com/products/iodrive/ 。 任何人都有使用此卡的经验?
如果你需要处理videostream,那么你必须得到比你指定的更好的东西。 即使你有足够的SATA驱动器来获得700MB / s的期望带宽(在今天的消费级硬件上应该很容易实现),你也许会遇到严重的延迟问题。
如果你的存储解决scheme能达到1GB / s,但每个IO需要500ms左右才能完成,那么你的存储解决scheme有什么用处? 你在说video,所以你想要的东西,可以提供足够的IO,以便您的帧的最大延迟40毫秒(25fps)检索你的照顾。
您可能还想看看videostream应用程序的专用文件系统。 例如,日立数据系统公司(HDS)也出售一款XFS,它具有为媒体应用开发的实时扩展function。
如果你需要能够支持几个一致的数据stream,你需要一堆真正快速的驱动器(15k)或者一些Fusion IO卡或者其他企业级SSD。 驱动器越快越好,因为即使是磁盘上的每个video文件都是顺序的,只要开始stream式传输2个或更多,现在是随机工作负载,这对于硬盘驱动器来说是非常难以处理的。 特别是一旦你有3个或更多。
硬件raid将会看到raid1比raid5有更多的读取好处,但是IIRC软件raid不会看到读取好处。 有人纠正我,如果我的mdadm的知识是过时的。
寻找像EMC,IBM甚至戴尔这样的大存储厂商。 他们将在他们的网站上提供有关存储解决scheme的大小的文章,有时甚至还有简单的networking应用程序。 显然,他们想卖给你的东西,但你可以使用他们的大小页面来确定多less驱动器以他们build议的速度build议获得你想要的吞吐量。
相同数量和types的硬盘驱动器的最佳整体读取性能将没有任何arrays,但您的软件应该知道这种configuration。
单个7200转硬盘可提供80-120MB / s的顺序IO。
在你的情况下达到700 MB / s,你将需要700/80 =(8.75)= 9硬盘为了增加冗余,你需要18个硬盘在RAID10configuration。 使用磁盘架和控制器将花费大约4000美元。
有了SSD,单个SATA驱动器可以达到200-300MB / s。 要获得700您将需要6个SATA SSD的RAID10。 价格将约为3000美元(但是与硬盘相比,磁盘空间更less)
FusionIO卡能够达到700MB / s,但只有当你有多个IO线程时。 单线程将根据基准得到140-150MB / s。