AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 652277
Accepted
Beep beep
Beep beep
Asked: 2014-12-13 16:29:22 +0800 CST2014-12-13 16:29:22 +0800 CST 2014-12-13 16:29:22 +0800 CST

带有几个 SSD 驱动器或许多老式 HDD 的 SAN?

  • 772

我的公司正试图弄清楚要购买哪种类型的 SAN。这专门针对受到 IO 限制的数据库服务器(存储现在是 DAS,但我们正在达到单个服务器的限制,我们也想添加集群)。

我们需要一个能够长期产生大约 3000 IOPS 的解决方案(我们目前的峰值约为 1000 IOPS)。我们的大多数数据库操作都是小读/写。根据与 HP 工程师和其他在线人员的讨论,在 RAID 10 配置中配备 24 个 SAS HD 的 HP P2000 将以大约 2 万美元的价格提供略低于该速度的速度。添加控制器和其他项目来构建 SAN 使我们的最高预算接近 3 万美元。

但是在网上,我看到许多 SAS SSD 提供 80,000 IOPS+ 的速度。这是现实的期望吗?如果是这样,获得 P2000 或类似的入门级 SAN 并在其中放置一些 SSD 是否现实?我们的数据库很小,总共只有几 TB。如果我们这样做,我们将有剩余的钱购买第二个 SAN 用于镜像/故障转移,这似乎是谨慎的。

hp
  • 4 4 个回答
  • 5848 Views

4 个回答

  • Voted
  1. Sobrique
    2014-12-16T02:27:31+08:002014-12-16T02:27:31+08:00

    我用于磁盘 IO 的经验法则是:

    • SATA 的每个主轴 75 IOP。

    • FC/SAS 的每个主轴 150 IOP

    • SSD 的每个主轴 1500 IOP。

    除了每个阵列的 IOP 外,还考虑了每 TB 的 IOP。如果使用 SATA + RAID6,每 TB 的 IOP 比率会很差,这种情况并不少见。这听起来可能并不过分,但您经常会发现有人在阵列上发现“可用空间”并想要使用它。人们购买 gigs 而忽略 iops 是很常见的,而在大多数企业系统中,情况恰恰相反。

    然后添加 RAID 的写入惩罚成本:

    • 2 用于 RAID1,RAID1+0
    • 4 个用于 RAID5(或 4 个)
    • 6 用于 RAID6。

    在适当的情况下,可以部分减轻写惩罚。如果您有大量顺序写入 IO(如 DB 日志),则可以显着减少 RAID 5 和 6 上的写入损失。如果你可以写一个完整的条带(例如每个主轴一个块),你就不必读取来计算奇偶校验。

    假设一个 8+2 RAID 6 集。在单个写入 IO 的正常操作中,您需要:

    • 阅读“更新”块。
    • 读取第一个奇偶校验块
    • 读取第二个奇偶校验块
    • 重新计算奇偶校验。
    • 全部写入 3 个。(6 个 IO)。

    使用缓存的完整条带写入 - 例如 RAID 条带大小的 8 个连续“块”,您可以计算整个批次的奇偶校验,而无需读取。因此,您只需要 10 次写入 - 每个数据一次,以及两次奇偶校验。

    这使您的写入惩罚为 1.2。

    您还需要记住,写入 IO 很容易缓存 - 您不需要立即将其放到磁盘上。它在软时间限制下运行 - 只要平均而言您的传入写入不超过主轴速度,它就能够以“缓存速度”运行。

    另一方面,读取 IO 会受到严格的时间限制 - 在获取数据之前,您无法完成读取。读取缓存和缓存加载算法在这一点上变得很重要 - 可以预测和预取可预测的读取模式(例如顺序,如您从备份中获得的那样),但随机读取模式不能。

    对于数据库,我通常建议您假设:

    • 您的大多数“数据库” IO 都是随机读取的。(例如不利于随机访问)。如果你能负担得起开销,RAID1+0 就很好——因为镜像磁盘提供了两个读取源。

    • 您的大部分“日志”IO 都是顺序写入。(例如有利于缓存,与许多 DBA 建议的相反,您可能想要 RAID50 而不是 RAID10)。

    两者的比例很难说。取决于数据库做什么。

    因为随机读取 IO 是缓存的最坏情况,所以 SSD 真正发挥作用的地方 - 许多制造商不会打扰缓存 SSD,因为无论如何它的速度大致相同。因此,特别是对于临时数据库和索引之类的东西,SSD 提供了良好的投资回报。

    • 6
  2. Best Answer
    ewwhite
    2014-12-16T05:05:59+08:002014-12-16T05:05:59+08:00

    我可以谈谈你想要完成的细节。老实说,我不会考虑将入门级 HP P2000/MSA2000 用于您的目的。

    这些设备有很多限制,从 SAN 功能集的角度来看,它们只不过是一盒磁盘。没有分层,没有智能缓存,一个虚拟磁盘组中最多有 16 个磁盘,IOPS 能力低,SSD 支持差(尤其是在您选择的单元上)。

    您需要升级到HP MSA2040才能看到 SSD 的任何性能优势或官方支持。另外,您真的要使用 iSCSI 吗?

    如果您可以容忍本地存储,DAS 可能是您的最佳选择。PCIe 闪存存储将在您的预算之内,但需要仔细规划容量。

    您能否详细说明您的实际服务器的规格?品牌/型号等

    如果集群是必须的,另一种选择是使用 HP MSA2040 单元,但使用 SAS 单元而不是 iSCSI。这比其他型号成本更低,允许您连接 4-8 台服务器,提供低延迟和高吞吐量,并且仍然可以支持 SSD。即使使用光纤或 iSCSI 型号,该单元也可以为您提供比您链接的单元更大的灵活性。

    • 4
  3. sysadmin1138
    2014-12-13T16:35:42+08:002014-12-13T16:35:42+08:00

    你的分析非常正确。

    对大量 GB 使用少量 HDD,对少量 IOps 使用大量 HDD。
    为大量 IOP 使用少量 SSD,为几 GB 使用大量 SSD

    哪个对你更重要?空间是 SSD 解决方案的主要成本驱动因素,因为每 GB 的价格要高得多。如果您谈论的是需要 4K IOP 的 200GB 数据库,那么一对 SSD 将助您一臂之力。或者 15K 驱动器的 24 磁盘阵列,为您留出大量空间用于大容量存储。

    根据存储基础架构,您实际上将从这些 SSD 中获得多少 IOps(ewwhite 将对此进行详细说明),但获得这种速度是合理的。特别是在 Raid10 中,没有计算奇偶校验。

    • 3
  4. cathode
    2014-12-16T09:43:49+08:002014-12-16T09:43:49+08:00

    我最近为我的雇主构建了一对存储服务器,使用戴尔 C2100 机箱,运行 FreeBSD 10.1 和十二个 2TB 7200rpm 西部数据“SE”企业 SATA 驱动器。这些驱动器位于由两个 6 驱动器 RAIDZ-2 虚拟设备 (vdev) 组成的单个 ZFS 池中。连接到池的是一对英特尔 DC S3500 SSD,它们具有超级电容防止断电,它们用作 SLOG 和 L2ARC。通过 iSCSI 对该服务器进行负载测试,我能够达到 7500-8200 IOPS。我们的总成本(包括硬盘驱动器)约为每台服务器 2700 美元。

    在这些基于 BSD 的系统运行期间,我们的一个 HP MSA2012i SAN 单元经历了两次控制器故障,而我们的另一个 MSA2012i 单元损坏了一个大型 NTFS 卷,需要 12 小时的停机时间来修复。

    戴尔和惠普向您出售 10% 的硬件和 90% 的支持承诺,您永远无法使用。

    • 0

相关问题

  • 如何阻止 hpboid.exe 和 hpbpro.exe 在我的服务器上多次运行?

  • 为什么我的 dl380 G3 将风扇摇得这么高(我该如何停止它?)

  • 有没有人设法在 64 位 Windows 上安装 HP All-In-One 打印机

  • HP Media Smart 远程访问 [关闭]

  • PCL XL 错误

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve