我正在设计datawarehouse解决方案,我是磁盘配置问题的新手,让我来解释一下。
我们的存储分布在6个存储设备上,每个磁盘阵列有5个raid-1磁盘阵列,每个磁盘阵列有2个LUNS,总共有48个LUNS (这遵循了Microsoft针对datawarehouse体系结构的快速通道建议)。
我想对我的数据进行分区,对于我以前工作过的其他项目,我们总是遵循1分区-1文件组规则。在microsoft快速通道推荐中,建议创建一个文件组,然后为该文件组每个lun创建一个数据文件.但我假装有一个星期的等级划分..。如果我应用这个规则,我想我会得到太多的文件和复杂的布局。
我考虑只创建一个文件组(包含48个lun数据文件),但仍然创建分区,因为我希望保留分区切换等分区的好处。不推荐这种情况吗?你有什么建议?
发布于 2011-02-11 21:27:35
要解决这个问题,需要深入到Storage。我提前道歉。
微软提出48个独立分区的原因之一是:最大化I/O的操作系统内并行化。通过拥有48个LUN,操作系统必须保持48个独立的I/O队列,理论上这些队列可以并行服务。如果一个LUN特别慢(它正在执行大量随机写入),它将不会阻止对其他LUN的访问。
在现代硬件上,这是一个小百分比的增益,对于很多存储头痛。除非您知道您将把数据仓库压缩到绝对上限,否则这是不值得的。现代的RAID卡足够快,他们可以为你处理这个问题。有4个LUN可以获得收益。48人可能真的会受伤。
这些天的存储通常以每秒I/O操作(I/O操作)的性能度量为特征。每个驱动器都有自己的随机I/O上限(每个驱动器的范围在90到180之间,取决于RPM和其他一些东西)。当你一起开车时,比如在一个RAID10集合中,这个I/O操作数是相加的。一个12磁盘的RAID10集将具有与6个Raid1对相同的I/O操作能力,并且不会强迫您创建6个单独的DB文件。通过创建单个大型RAID10集,您可以创建一个可以处理大量负载的单个大型DB文件。
回到我在第二段中说过的关于缓慢的LUN不阻碍对其他LUN的访问的话,这就是为什么最大化LUN的I/O操作是有意义的。如果它有足够的I/O操作开销,那么阻塞的可能性就小得多。通过创建一个大型的RAID10数组,并行化被推入RAID卡,而不是操作系统,这使得操作系统可以自由地做其他事情。您仍将获得并行化的优势,并利用专用硬件实现并行化。
对于数据库服务器来说,将数据文件和日志文件I/O保存在不同的轴上是明智的。我将留给Server专家的确切百分比(我不是),很可能是基于您的确切配置和使用模式。由于它是一个数据仓库,您将需要大量的日志空间来处理大容量负载。日志I/O具有明显的顺序性,其中数据I/O具有明显的随机性,因此最好通过将日志放在不同的轴上而不是数据文件来获得最大的日志记录性能。
在你的情况下,你可能可以逃脱2轮。数据文件有一个大的RAID10集,日志文件有较小的RAID10集.
https://serverfault.com/questions/234536
复制相似问题