我正在规划用于日志管理目的的硬件。我们计划在硬件上运行的软件支持分层,计划采用以下三个层级:
- 层将采用 SSD,由直接连接到服务器机箱的磁盘构建,并将用于前 7 天的数据
- 层将采用旋转磁盘,由直接连接到服务器机箱的磁盘构建,并将用于前 180-7 天的数据。
- 层将采用旋转磁盘,并将由位于单独的 SAS 直连存储上的磁盘构建。
底层操作系统是 Ubuntu Server 16.04.4,不幸的是我无法影响这个决定。
我们计划使用的服务器机箱是戴尔 R740xd,其布局如下:
- 2 个 300 GB 15K SAS 硬盘
- 2 个 1.6 TB SAS SSD
- 18 个 2.4 TB 10K SAS 硬盘
对于操作系统和应用程序,我计划使用由两个 300 GB 磁盘构建的一个镜像 vdev 组成的 zpool。
对于第一层存储,我计划使用由两个 SSD 磁盘构建的镜像 vdev 组成的 zpool。
对于第二层,我计划使用由三个 6 驱动器 RAID-Z2 vdev 组成的 zpool。
如果我想更改 OS+应用程序 zpool 和第一层 zpool 的操作,这两个空闲插槽给我留下了一些选择。
此外,我相信,使用 3x6 zpool(第 2 层),我将获得最佳结果,同时考虑可用存储和容错能力。
然而,问题真正出现在外部直连存储上。只有第一层(SSD)会不断受到新日志写入的影响,而第二层和第三层每天只会看到一次日志传入和传出,当应用程序检查日志是否超出当前所在层的保留时间时。如果 DAS 由 RAID-Z2 vdev 构建,那么更大的磁盘(比如 4TB 甚至更大)会成为问题吗?或者使用镜像 vdev 会更好吗?我了解到,与 RAIDZ-2 相比,镜像的重新镀银麻烦更少。
对于 DAS,我的选择似乎是 Dell MD1420 或 MD1400。后者将为我提供更多更大(且更慢/更便宜)磁盘的选择,而前者将我的选择限制在 2.5 英寸磁盘。我猜理论上我也可以选择在服务器机箱本身中使用 3.5 英寸磁盘,如果有可以安装 12x3.5 英寸磁盘 + 4x2.5 英寸磁盘的选项。再次,第二层(SSD 是第一层)不会看到连续写入或读取,但在需要检索超过 7 天的日志时,在工作时间内仍可以经常看到读取。但是,我没有足够的知识来决定比 10K 驱动器更便宜的东西是否足以满足第二层的要求。
答案1
如果 DAS 由 RAID-Z2 vdev 构建,那么更大的磁盘(比如 4TB 甚至更大)会成为问题吗?或者使用镜像 vdev 会更好吗?
除了重新镀银时间之外,使用镜像的唯一原因是 IOPS,因为它们应该随着镜像设置中的磁盘数量而扩展,并且等于 RAIDZ 中的单个磁盘。
我怀疑这在这里并不重要。您谈论的是“检索”,即复制数据,因此它主要是顺序读取工作负载。等待几百毫秒的时间(在最坏的情况下,当数百个并行访问正在等待时)应该仍然足够好。它不是数据库服务器,它更像是 NAS。
但是如果您有硬件,只需运行一些测试。
此外,如果只有日志文件,请确保打开压缩,如果您主要进行连续读/写,甚至可以考虑将记录大小提高到 1mb 以获得更好的压缩。