向开发人员和其他用户解释存储问题的最佳方式是什么

Joh*_*yer 40 storage

当服务器存储容量变低时,开发人员都开始抱怨:“我可以在 Walmart 花 100 美元买到 1 TB 的驱动器,这有什么问题”。

如何向开发人员解释存储的复杂性,以便他们理解为什么 Walmart 的 1 TB 驱动器不起作用。

ps 我是一名开发人员,也想知道:)

Con*_*lls 53

关于存储的一些家庭真相,或者为什么企业存储如此昂贵?

消费硬盘驱动器提供大量空间,因此即使是*咳*流媒体*咳*最挑剔的用户也可以购买足够存储数TB的集合。事实上,几十年来,磁盘容量的增长速度一直超过晶体管在硅上的数量。

“企业”存储是一个更复杂的问题,因为数据具有性能和完整性要求,这决定了一种更重量级的方法。如果发生硬件故障,数据必须有一定的可用性保证,并且可能必须与大量用户共享,这将比单个用户产生更多的读/写请求。

此问题的技术解决方案每 GB 的成本可能比消费者存储解决方案贵很多很多倍。它们还需要物理维护;必须进行备份并经常在异地存储,以便火灾不会破坏数据。此过程会增加持续成本。

表现

在您的 1TB 消费者甚至企业近线驱动器上,您只有一个头。磁盘以 7200 RPM 或每秒 120 转的速度旋转。这意味着理论上每秒最多可以获得 120 次随机访问 I/O 操作*,而在实践中会少一些。因此,在单个 1TB 卷上复制大文件相对较慢。

在具有 14 个 72GB 磁盘的磁盘阵列上,您有 14 个磁头以(例如)15,000 RPM 或大约每秒 250 转的速度运行。这为您提供了每秒 3,500 次随机 I/O 操作的理论最大值*(同样,在实践中会少一些)。所有其他事情都等于文件副本将快很多很多倍。

*如果读取的几何形状允许驱动器移动磁头并读取恰好在磁盘旋转一圈内可用的扇区,则磁盘每转一圈您可以获得多次随机访问。如果磁盘访问分布广泛,则您的平均访问次数可能少于 1。在以条带(见下文)布局格式化的磁盘阵列的情况下,在大多数情况下,磁盘每转一圈最多可以获得一个条带读取,并且(取决于 RAID 控制器)平均可能少于一个。

7200 RPM 1TB 驱动器在顺序 I/O 上可能相当快。以条带方案(RAID-0、RAID-5、RAID-10 等)格式化的磁盘阵列通常在磁盘每转一圈时最多可读取一个条带。使用 64K 条带,我们可以每秒从 15,000 RPM 磁盘读取 64Kx250 = 16MB 左右的数据。这在 14 个磁盘的阵列上提供了大约每秒 220MB 的连续吞吐量,这在纸面上并不比现代 1TB SATA 磁盘所引用的 150MB/秒左右快多少。

对于视频流(例如),RAID-0 中具有大条带大小的 4 个 SATA 磁盘阵列(某些 RAID 控制器将支持高达 1MB 的条带大小)具有相当多的顺序吞吐量。这个例子理论上可以流式传输大约 480MB/秒,这足以进行实时未压缩的高清视频编辑。因此,Mac Pro 和类似硬件的所有者可以执行高清视频合成任务,而这在几年前还需要配备直连光纤阵列的机器。

磁盘阵列的真正好处在于数据库工作,其特点是大量小的、分散的 I/O 请求。在这种类型的工作负载上,性能受到磁盘中来回移动的金属位的物理延迟的限制。此指标称为 IOPS(每秒 I/O 操作数)。您拥有的物理磁盘越多 - 无论容量如何 - 理论上您可以执行的 IOPS 越多。更多的 IOPS 意味着每秒更多的事务。

数据的完整性

此外,大多数 RAID 配置为您提供了一些数据冗余——根据定义,这需要多个物理磁盘。具有这种冗余的存储方案和大量驱动器的组合使系统能够可靠地服务于大型事务性工作负载。

磁盘阵列(在更极端的情况下是 SAN)的基础设施并不完全是大众市场项目。此外,它是真正、真的不能失败的位之一。这种构建标准和较小市场容量的结合并不便宜。

包括备份在内的总存储成本

实际上,维护 1TB 数据的最大成本可能是备份和恢复。一个磁带驱动器和 34 套 SDLT 或 ultrium 磁带用于备份和恢复的完整祖父周期可能比 1TB 磁盘阵列花费更多。加上异地存储的成本和单个磁带猴子的薪水,突然间您的 1TB 数据就不那么便宜了。

磁盘的成本通常是占主导地位的存储成本层次结构的公平方式。在一家银行,我有机会为 SAN 存储工作,开发系统的成本为 900 英镑/GB,生产服务器上的磁盘成本为 5,000 英镑/GB。即使按照企业供应商的价格,磁盘的物理成本也只是其中的一小部分。我所知道的另一个例子有一个(相对)配置适度的 IBM Shark SAN,它的成本超过了 100 万英镑。仅此上的物理存储费用约为 9 英镑/千兆字节,或者相当于 1TB 消费级硬盘的空间约为 9,000 英镑。


Por*_*man 41

只需说:“是的,我可以以 5 美元/小时的价格聘请离岸 Java 程序员。”

  • 我认为这是一个有效的回应。关键是,我们每个人都有自己的专业领域,团队成员需要相互信任。像这样将问题转回给开发人员将有助于他们意识到试图相互猜测是多么没有意义。 (11认同)
  • 现在好了! (8认同)
  • 这是一个非常机智的评论,但我似乎无法赞成它,因为它实际上并没有回答这个问题,我很想找到答案 (3认同)
  • 另一个有效的回应是 Geek Squad 的那个人可能会想出如何去做,做得更便宜,并且对做这件事有更好的态度。说真的,为什么这是这个问题的最高投票答案?阅读时我确实笑了起来,但如果这将是网站成员对幼稚问题的回应方式,我会坚持使用 Google 和 Experts Exchange。 (2认同)

AJ.*_*AJ. 14

也许问他们几个关于他们的沃尔玛驱动器的问题:

  • 它的平均失败时间是多少?
  • 如果它灾难性地失败会发生什么?
  • 多久备份一次?
  • 12 个月的备份需要多少存储空间?
  • 如何进行异地备份?
  • 怎么可能恢复?(整体?单个文件?几个目录?)
  • 存储备份的成本是多少?
  • 他将如何保证备份的安全?安全的?
  • 他有什么保险来弥补重要数据的丢失?

... 将这些答案与在管理良好的数据中心中作为 RAID 5 阵列的一部分运行的驱动器进行比较。

(披露:我也是一名开发人员 - 我只是猜测!)


Mar*_*sen 3

关于存储,人们需要认识到的第一件事是容量和 IOPS 之间存在很大差异。诸如耐用性等问题通常没有实际意义,它几乎总是归结为 IOPS 与容量。

  • IOPS:每秒输入/输出操作数 (4认同)