我正在更新/扩展我的磁盘集,但不太清楚要获取什么样的磁盘,caching方式。
比如说,1 / 1.5 / 2TB SATA磁盘容量在16/32 / 64MB磁盘caching量上有什么区别呢? 这些磁盘将被用于webapp服务器和媒体工作站,Linux的软件存储在raid-1 / raid-5configuration中。 请注意,这两个目的纯粹是为了一个爱好,十几个磁盘的价格是一个大问题。
caching和RAID有一个有趣的关系。
昂贵的RAID控制器具有内置caching,并closures(通常)驱动器caching。 原因是RAID通常被devise为确保您的数据安全并提高性能。 高速caching以牺牲可靠性为代价来提高性能,因为如果电源死了,即使软件认为它是安全的,caching也会消失。 这导致软件中存在真正需要知道数据的坏事。 像数据库的东西。
在电池支持arrays的情况下,电池可用于将数据写入NVRAM,如果是控制器,则将数据写入物理磁盘。
软件RAID并不是真的有这样的select。 如果驱动器说“好,我们已经得到了数据”,然后电源在数据仍然在caching中死亡,这是一个问题。 没有NVRAM保存数据,并且由于备用电池的原因,磁盘不能保持旋转(无论如何,可以使用其他软件来实现这一点)。
我会阅读软件RAID HOWTO中的“安装注意事项”中的问题9: http : //www.linuxjunkies.org/html/Software-RAID-0.4x-HOWTO.html#s3
这些问题有一些有趣的阅读:
正确处理写入caching的SATA磁盘?
LVM镜像VS RAID1
无论如何,回应你的问题…更多的驱动器caching给驱动器更多的空间“玩”。 换句话说,就时间而言,实际上把东西放在磁盘上是很昂贵的。 将东西存储在内存中确实很便宜。
性能将取决于您放在磁盘上的负载以及瓶颈所在。 每个磁盘的主轴都有一个统计信息,称为IOPS(I / O操作每秒 – http://adamstechblog.com/2009/02/10/how-to-calculate-iops-ios-per-second/ ),它决定了如何快可以把它放在旋转的盘片上。 如果您向硬盘驱动器提供的数据多于可以放在磁盘上的数据,则会使用caching。 如果你继续敲击它,它会继续喂入caching。 在caching填满时,计算机会等待磁盘清除“脏”数据(需要写入的数据)。
因此,对于RAID系统,您有多个正在馈送的磁盘,从而增加了IOPS。 在添加足够的主轴后,磁盘不再是瓶颈,而成为数组的过渡(您还不在,不用担心)。
从本质上讲,更多的caching给你更多的摆动空间,当涉及到磁盘上的大量数据倾倒。 如果你特别是IO驱动,你会看到一个改进。
另一方面,如果你,你的软件,或者你的(现在不存在的)RAIDarrays都禁用了驱动器caching,那么你付出了很多的代价。
最后,如果你有一个select,得到一个较低的caching有利于较高的旋转速度。