John Dyer Asked: 2009-05-02 06:12:41 +0800 CST2009-05-02 06:12:41 +0800 CST 2009-05-02 06:12:41 +0800 CST 向开发人员和其他用户解释存储问题的最佳方式是什么 772 当服务器存储变得低时,开发人员都开始抱怨,“我可以在沃尔玛花 100 美元买到 1 TB 的驱动器,有什么问题”。 如何向开发人员解释存储的复杂性,以便他们了解为什么沃尔玛的 1 TB 驱动器不起作用。 ps 我是开发人员,也想知道:) storage 8 个回答 Voted ConcernedOfTunbridgeWells 2009-05-02T07:07:39+08:002009-05-02T07:07:39+08:00 关于存储的一些基本事实,或者为什么企业存储如此昂贵? 消费类硬盘提供大量空间,因此即使*咳嗽*流媒体*咳嗽*最挑剔的用户也可以购买足够存储数 TB 的集合。事实上,几十年来,磁盘容量的增长速度已经超过了硅上晶体管的数量。 “企业”存储是一个更复杂的问题,因为数据具有性能和完整性要求,这决定了一种更重量级的方法。在发生硬件故障时,数据必须有一定的可用性保证,并且可能必须与大量用户共享,这将产生比单个用户更多的读/写请求。 这个问题的技术解决方案每 GB 的成本可能比消费级存储解决方案贵很多很多倍。它们还需要物理维护;必须进行备份并经常将其存储在异地,以免火灾破坏数据。这个过程增加了持续的成本。 表现 在您的 1TB 消费者甚至企业近线驱动器上,您只有一个头。磁盘以 7200 RPM 或每秒 120 转的速度旋转。这意味着理论上您每秒最多可以获得 120 次随机访问 I/O 操作*,而在实践中则更少。因此,在单个 1TB 卷上复制大文件相对较慢。 在具有 14 个 72GB 磁盘的磁盘阵列上,磁盘上有 14 个磁头,速度(比如)15,000 RPM 或大约 250 转/秒。这为您提供了理论上最大每秒 3,500 次随机 I/O 操作*(同样,在实践中稍微少一些)。在所有其他条件相同的情况下,文件副本会快很多很多倍。 *如果读取的几何形状允许驱动器移动磁头并读取恰好在磁盘一圈内可用的扇区,则磁盘每转一圈可以获得不止一次的随机访问。如果磁盘访问分布广泛,您可能平均不到一个。在以条带(见下文)布局格式化的磁盘阵列中,在大多数情况下,磁盘每转一圈最多可以读取一个条带,并且(取决于 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 英镑。 Portman 2009-05-02T06:15:02+08:002009-05-02T06:15:02+08:00 只需说:“是的,我可以以 5 美元/小时的价格聘请一名离岸 Java 程序员。” AJ. 2009-05-02T06:45:22+08:002009-05-02T06:45:22+08:00 也许问他们一些关于他们在沃尔玛开车的问题: 平均失败时间是多少? 如果它灾难性地失败会发生什么? 多久备份一次? 12 个月的备份需要多少存储空间? 如何在异地备份? 怎么可能恢复?(整体?一个文件?几个目录?) 存储备份需要多少费用? 他将如何保证备份的安全?安全的? 他有什么保险来弥补重要数据的丢失? ... 将这些答案与在管理良好的数据中心中作为 RAID 5 阵列的一部分运行的驱动器进行比较。 (披露:我也是一名开发人员——我只是在猜测!) Peter Stuer 2009-06-04T23:34:00+08:002009-06-04T23:34:00+08:00 也许您应该考虑差异化存储。 您的开发人员可能需要更多空间,但他所追求的可能不是“企业级”驱动空间。也许他只需要有一个存储 .vhd 的地方,如果磁盘崩溃,可以从 MSDN 再次下载 ISO。也许测试运行需要大量的瞬态空间需求,只需要在测试运行期间存在。对于所有这些,50 美元的 Wallmart 驱动器可能是一个有效的解决方案。 Mark S. Rasmussen 2009-05-02T06:14:35+08:002009-05-02T06:14:35+08:00 关于存储,人们需要意识到的第一件事是容量和 IOPS 之间存在很大差异。诸如耐用性之类的事情通常没有实际意义,它几乎总是归结为 IOPS 与容量。 Jared 2009-05-02T06:35:27+08:002009-05-02T06:35:27+08:00 这取决于那里询问的服务器类型。对于基本的开发或测试服务器来说,Wallmart 的 1 TB 驱动器可能就足够了。如果您正在处理不使用现成组件的高端服务器,请询问他们是否会制造赛车并从汽车零部件商店购买轮胎以节省几美元。 Thomas Denton 2009-05-15T15:07:12+08:002009-05-15T15:07:12+08:00 我解释它的方式是这样的。如果你的老板会在购买上签字。我会在沃尔玛的驱动器上放一个牌子,上面写着.. “系统广告被指示违背他的意愿和直觉把它放在这里。” 当驱动器死机时,我会将驱动器和笔记交给开发人员,并询问他们这次如何完成我的工作.. 我同意波特曼的观点……相信球队,或者离开。 user1804 2009-05-05T16:59:32+08:002009-05-05T16:59:32+08:00 一个简单的单行答案:1TB 驱动器通常是 SATA,但您的服务器是 SCSI。(即使服务器不是 SCSI,这也可能会停止查询……暂时。) 一个 300GB 的 SCSI 驱动器通常是 4 倍的价格,然后是备份现有数据、安排停机时间、进行安装、可能出现问题、加班等等。总而言之,一个简单的存储升级可以导致所有各种痛苦 - 开发人员不直接负责。说您可以购买满足当前需求的现成驱动器是非常简单化的。 但是您知道,当您购买这些该死的服务器时,您应该在该死的服务器中放置更大的驱动器,而您现在正在踢自己!但是您希望安装服务器,它们会增加前期成本,并且可能需要额外一轮批准...欢迎来到系统管理员的痛苦世界...
关于存储的一些基本事实,或者为什么企业存储如此昂贵?
消费类硬盘提供大量空间,因此即使*咳嗽*流媒体*咳嗽*最挑剔的用户也可以购买足够存储数 TB 的集合。事实上,几十年来,磁盘容量的增长速度已经超过了硅上晶体管的数量。
“企业”存储是一个更复杂的问题,因为数据具有性能和完整性要求,这决定了一种更重量级的方法。在发生硬件故障时,数据必须有一定的可用性保证,并且可能必须与大量用户共享,这将产生比单个用户更多的读/写请求。
这个问题的技术解决方案每 GB 的成本可能比消费级存储解决方案贵很多很多倍。它们还需要物理维护;必须进行备份并经常将其存储在异地,以免火灾破坏数据。这个过程增加了持续的成本。
表现
在您的 1TB 消费者甚至企业近线驱动器上,您只有一个头。磁盘以 7200 RPM 或每秒 120 转的速度旋转。这意味着理论上您每秒最多可以获得 120 次随机访问 I/O 操作*,而在实践中则更少。因此,在单个 1TB 卷上复制大文件相对较慢。
在具有 14 个 72GB 磁盘的磁盘阵列上,磁盘上有 14 个磁头,速度(比如)15,000 RPM 或大约 250 转/秒。这为您提供了理论上最大每秒 3,500 次随机 I/O 操作*(同样,在实践中稍微少一些)。在所有其他条件相同的情况下,文件副本会快很多很多倍。
*
如果读取的几何形状允许驱动器移动磁头并读取恰好在磁盘一圈内可用的扇区,则磁盘每转一圈可以获得不止一次的随机访问。如果磁盘访问分布广泛,您可能平均不到一个。在以条带(见下文)布局格式化的磁盘阵列中,在大多数情况下,磁盘每转一圈最多可以读取一个条带,并且(取决于 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 英镑。
只需说:“是的,我可以以 5 美元/小时的价格聘请一名离岸 Java 程序员。”
也许问他们一些关于他们在沃尔玛开车的问题:
... 将这些答案与在管理良好的数据中心中作为 RAID 5 阵列的一部分运行的驱动器进行比较。
(披露:我也是一名开发人员——我只是在猜测!)
也许您应该考虑差异化存储。
您的开发人员可能需要更多空间,但他所追求的可能不是“企业级”驱动空间。也许他只需要有一个存储 .vhd 的地方,如果磁盘崩溃,可以从 MSDN 再次下载 ISO。也许测试运行需要大量的瞬态空间需求,只需要在测试运行期间存在。对于所有这些,50 美元的 Wallmart 驱动器可能是一个有效的解决方案。
关于存储,人们需要意识到的第一件事是容量和 IOPS 之间存在很大差异。诸如耐用性之类的事情通常没有实际意义,它几乎总是归结为 IOPS 与容量。
这取决于那里询问的服务器类型。对于基本的开发或测试服务器来说,Wallmart 的 1 TB 驱动器可能就足够了。如果您正在处理不使用现成组件的高端服务器,请询问他们是否会制造赛车并从汽车零部件商店购买轮胎以节省几美元。
我解释它的方式是这样的。如果你的老板会在购买上签字。我会在沃尔玛的驱动器上放一个牌子,上面写着..
“系统广告被指示违背他的意愿和直觉把它放在这里。” 当驱动器死机时,我会将驱动器和笔记交给开发人员,并询问他们这次如何完成我的工作..
我同意波特曼的观点……相信球队,或者离开。
一个简单的单行答案:1TB 驱动器通常是 SATA,但您的服务器是 SCSI。(即使服务器不是 SCSI,这也可能会停止查询……暂时。)
一个 300GB 的 SCSI 驱动器通常是 4 倍的价格,然后是备份现有数据、安排停机时间、进行安装、可能出现问题、加班等等。总而言之,一个简单的存储升级可以导致所有各种痛苦 - 开发人员不直接负责。说您可以购买满足当前需求的现成驱动器是非常简单化的。
但是您知道,当您购买这些该死的服务器时,您应该在该死的服务器中放置更大的驱动器,而您现在正在踢自己!但是您希望安装服务器,它们会增加前期成本,并且可能需要额外一轮批准...欢迎来到系统管理员的痛苦世界...