我对数据库还不太熟悉。我读过RAID 存储似乎大家一致认为 RAID 10
就性能和冗余度而言,RAID 10 是最好的
然而在文章的最后,作者继续说道
如果应用程序知道如何在多个卷之间均匀分布数据,那么独立的 RAID 1 对优于 RAID 10
作者:George Ou分析 证明为什么独立的 RAID 1 对优于 RAID 10,尽管我无法真正理解,因为我对数据库还很陌生
然而另一位作者:罗宾做了他自己的分析并反驳了George Ou的分析。
我对所有这些超出我理解范围的分析感到困惑。
这些都是我的问题
如果应用程序知道如何在多个卷之间均匀分布数据,那么 RAID 1 的独立对是否真的优于 RAID 10?
实际上,创建一个能够跨多个卷分发数据的应用程序很容易,如何做到这一点?
有人能对以上两点提供一个简单的解释吗?
答案1
是的,因为 Raid 对故障仅意味着部分数据丢失。在 Raid 10 中,Raid 对故障意味着所有数据都无法读取。也就是说,访问数据的速度也会变慢。
不一定。基本上你必须在应用程序中执行此操作,这取决于应用程序的复杂程度 - 这是编程问题,而不是管理问题。这可能很容易,也可能很难 - 这完全取决于应用程序。在许多情况下,丢失部分数据意味着无论如何都要停止一切并重新加载备份。
还有什么比这更容易的呢?(我认为这对于管理员来说再简单不过了 - 如果你不在这个级别,那么应该在 superuser.com 上重新提问)。
答案2
在驱动器上分发数据的应用程序总是优于 RAID,因为它有更多的信息用于优化决策。MS SQL 就是一个很好的例子,因为它在裸机上表现出比在其组合(RAID0)上运行更好的性能(就您的情况而言,RAID10 是 RAID1 的 RAID0 组合)。
但实际上并不是那么明显:
首先,George Ou 探索了主板集成 RAID。使用专用电源 RAID 卡,他的结果可能会有很大不同。
其次,使用 RAID10,您可以使用所有磁盘。如果您让应用程序管理磁盘,则需要为系统留出一些空间。例如,在 8 驱动器服务器中,您可能需要在 8 驱动器 RAID10 和 RAID1(用于 susyetm)以及 3*RAID1(用于应用程序)之间进行选择。在这种情况下,RAID10 可能会产生更好的结果。
第三,RAID10 具有灵活性,这通常比性能略有提高更可取。卷管理、空间重新分配、快照、块级复制和其他很酷的功能都是值得牺牲的,因为应用程序可以自行管理驱动器。