在我的公司,我们正在设置一个新的 SQL Server 2012 机箱。我们有 6 个物理驱动器,每个驱动器有 3,000 GB。我们正在考虑两种不同的 RAID 配置,想知道哪种配置更快:
有 6 个物理驱动器,每个驱动器有 3000 GB:
选项1: 一个大的 RAID 10,有三个分区。一个分区用于操作系统,一个分区用于数据,一个分区用于事务日志(这些分区是为了防止无限制的增长)。
选项 2: 一个 RAID 1 使用两个驱动器,其中一个分区用于操作系统,另一个分区用于事务日志;另一个 RAID 10 使用剩余四个驱动器来存储数据
答案1
假设所有磁盘均为旋转磁盘,没有闪存磁盘,那么传统的“正确”布局将是选项 2,因为它将事务日志的 IOPS 与数据库文件隔离开来。在大多数情况下,这是正确的决定。有些工作负载不会从这种布局中受益,但几乎没有现实世界的工作负载会受到影响。
如果您的 RAID 控制器上有较大的写入缓存(1 GB 或更大)(如果您非常重视性能,就应该这样做),那么布局的影响就更小了。在这种情况下,请选择选项 1。
此外,如果您选择选项 1,请不要为日志和数据创建单独的卷。在同一物理介质上创建单独的卷唯一会给您带来麻烦的是,当您意识到选择了错误的卷大小时,您就会感到头疼,而且现在很难更改。
答案2
理论上,RAID 10 性能更快,因为与 RAID 1 配置相比,单个磁盘的物理读取/写入数据量是 1/3(就您而言)。此外,在 RAID 1 中设置 4 个驱动器没有多大意义。
无论如何,您应该在实验室环境中测试这两种情况,以做出有根据的决定。
答案3
如前所述,传统的 DBA 会尝试将数据库 IO 尽可能远离日志 IO。确切地说,这取决于您的数据库配置(和使用情况)。我建议采用选项 2 - 并且(如果可能)为系统添加一个独立的卷。3t 硬盘不是随机 IO 速度最快的硬盘,因此将系统(和页面文件)远离数据库阵列会更好。