1 个逻辑驱动器与 1 个 RAID 控制器上的 2 个逻辑驱动器如何将数据与日志文件分离?

1 个逻辑驱动器与 1 个 RAID 控制器上的 2 个逻辑驱动器如何将数据与日志文件分离?

我正在配置一台新服务器:它有 1 个 RAID 控制器和 8 个 146 Gb 磁盘。系统当前配置为 RAID 1+0,但只有 1 个逻辑驱动器,这不是最理想的,因为数据和日志文件应该放在单独的磁盘上?

重新配置系统以使用以下内容是否有意义:

  • 2 个磁盘作为 raid-1 逻辑磁盘,用于 OS+日志
  • 6 个磁盘作为 raid-10 逻辑磁盘用于数据

所有磁盘仍然在同一个 raid 控制器上,所以我不知道这是否会给我带来性能优势?

感谢您的建议!

答案1

这取决于您的数据库是否主要是读取、主要是写入,或者是未知的混合。

如果数据库主要是读取(SELECT),那么将所有八个驱动器放在同一个 RAID 10 中。

如果数据库主要是写入(插入/更新/删除),那么您甚至可能需要考虑两个 4 驱动器 RAID 10 阵列 - 特别是如果您的数据库将进行频繁的事务日志备份、数据库镜像或日志传送。

如果您不知道,如果服务器将来有空间添加额外的硬盘,我会选择 2+6。这样,如果您决定以后需要数据或日志阵列的更多性能,通常可以热添加驱动器对并重新划分条带而不会中断。如果您发布 RAID 卡型号,我们可以确认。

如果您不知道,并且没有空间添加额外的驱动器,那么我会选择单个 8 驱动器阵列,以便于管理。您不必担心日志驱动器上的空间不足。

无论你选择哪种方式,都要将日志文件放在与操作系统不同的逻辑驱动器上。如果你突然有大量交易量,并且日志文件填满了操作系统的逻辑驱动器 (C),你的服务器可能会严重瘫痪。

答案2

这是我之前在这个网站上提出的一个问题:

SQL Server 的推荐磁盘/分区设置

听起来它可能对您当前的情况有帮助。

基本上尝试将您的操作系统放在 RAID 1 上,将数据放在 RAID 10 上(我目前使用 RAID 5),并将日志放在 RAID 1 上。主题中的帖子很好地描述了您为什么要这样做。

我建议不要将日志文件放在与操作系统相同的驱动器上。日志文件有一种令人讨厌的趋势,即不断增大,这可能会填满您的操作系统驱动器,这不是好事。如果日志文件放在自己的驱动器上,则只有在驱动器填满时才会影响 SQL。

答案3

在 1 和 0+1 RAID 中,您都会读取单一部门从一个磁盘读取,然后将其写入两个磁盘。

如果你有 RAID 5,情况就不同了,因为n物理磁盘,你从中读取n-1并写下n

在您的设置中,两种情况之间的唯一区别是,如果一个 raidset 严重失效,您仍然有另一个 raidset,这很有价值。

答案4

我会重新配置为拥有 2 个逻辑驱动器。首先,将操作系统放在与数据不同的主轴上是一种很好的做法,因为这样可以更轻松地进行恢复。此外,虽然我不知道 RAID 控制器的详细信息,但一般来说,将操作系统拆分到不同的驱动器组上会提高性能,因为它会减少驱动器上的争用,并减少所谓的 IO 抖动(即磁盘花费太多时间寻道而没有足够的读取/写入)。

相关内容