在 SAN 上将数据库日志和数据隔离在不同卷(同一 RAID 阵列)上是否具有性能优势?

在 SAN 上将数据库日志和数据隔离在不同卷(同一 RAID 阵列)上是否具有性能优势?

在我的旧服务器上,我将它们分成不同的 RAID 阵列以提高性能。使用 SAN 对我来说是新事物,所以我不确定最佳配置。

SAN:48 个驱动器。10K 600GB SAS。RAID 50。4 Gbps 连接。

更新信息:

所有 48 个驱动器都是同一 RAID 阵列的一部分。我想知道将数据和日志放在不同的卷中是否有任何好处。我知道如果我将 SAN 分开,可能会有一些好处,具体取决于具体情况。向我们出售 SAN 的戴尔代表说,将所有 48 个磁盘放在一个阵列中并使用单独的卷(“LUNS”?)可以获得最佳性能。如果我的问题不清楚,请原谅。

答案1

将日志文件放在单独的卷上(即使它位于同一个 RAID 上)应该比将数据和日志放在同一个卷上具有更好的性能。在大多数存储系统上,每个卷一次只能通过一个路径访问。这意味着您的日志和数据将共享相同的控制器端口、控制器缓存、队列深度和 FC 交换机资源。其中任何一个都可能成为瓶颈,将日志放入尽可能少共享这些资源的另一个卷中可能会提高性能。

话虽如此,但出于性能和可靠性的考虑,将日志和数据放在单独的磁盘上是必要的,前提是您使用的不是那种新奇的“宽条带化”机器,这种机器会同时使用阵列中的所有主轴。每次您执行数据库写入操作时,都会记录下来,并且每个日志都会进行写入(在实际修改之上)。

  • 如果您丢失了包含日志和数据的整个 raid(这种情况很少见,但确实会发生),除非您的日志被复制,否则您将面临真正的数据丢失的风险。并非所有数据库都支持日志传送。
  • 在正常运行期间,如果你的日志和数据存储在同一个小的主轴组,您可能会面临因磁盘级性能瓶颈而限制实际数据库生产的风险。

您使用的是 raid 50。这通常表明您将数据条带化到远多于 8 个或 16 个磁盘上。如果是这种情况,通常您也会为每种磁盘类型(您有一个)设置至少两个 raid-50。最适合您的情况的解决方案是将数据放在速度最快(即最大)的 raid 上,将日志放在另一个 raid 上。

答案2

答案3

一般来说,为了最大限度地减少要求苛刻的数据库的写入延迟,您需要将日志和数据拆分到不同 RAID 组上的不同卷,这样 RAID 组时间内日志和数据之间就不会发生资源争用。

听起来您已经将驱动器配置到 RAID 组中,因此您可能只想查看从不同组和架中配置不同的卷。

答案4

这实际上取决于品牌。Compellent SAN 可以配置为自动优化 san 读取和写入。如果您开始将主轴专用于某些应用程序,HP EVA sans 实际上会受到整体性能的影响。您可以将缓存专用于某些全球名称吗?无论 SQL 是在 san 上还是在本地存储上,都适用相同的规则,因此如果您熟悉服务器上的 IO 优化,那么只需了解您拥有的 san 的功能并了解如何最好地利用它们即可。

相关内容