当服务器存储量减less的时候,所有的开发人员都开始呻吟起来:“我可以在沃尔玛购买1TB的硬盘,花费100美元,这有什么问题呢”。
如何向开发人员解释存储的复杂性,以便他们理解为什么沃尔玛的1TB硬盘无法正常工作。
PS我是一个开发人员,也想知道:)
消费者硬盘驱动器提供了大量的空间,因此,即使是最敏锐的*咳嗽*stream媒体*咳嗽*的用户可以购买足够的数量,以存储几个兆兆字节的集合。 实际上,现在磁盘容量的增长速度已经比硅片上的晶体pipe数量快了几十年。
“企业”存储是一个稍微复杂的问题,因为数据具有性能和完整性要求,决定了更重量级的方法。 在发生硬件故障时,数据必须有一定的可用性保证,并且必须与大量的用户共享,这将比单个用户产生更多的读/写请求。
这个问题的技术解决scheme可能比消费者存储解决scheme贵很多倍,每千兆字节昂贵得多。 他们还需要物理维护; 必须采取备份,并经常存储在异地,使火灾不会破坏数据。 这个过程增加了持续成本。
性能
在你的1TB消费者甚至企业的近线驱动器上,你只有一个头。 磁盘以7200RPM或120转/秒的速度旋转。 这意味着您可以在理论上每秒获得最多120次随机访问I / O操作*,实践中则更less。 因此,在单个1TB卷上复制大文件相对较慢。
在具有14x 72GB磁盘的磁盘arrays上,有14个磁头在15,000RPM或大约250转每秒的磁盘上运行。 这给你一个理论上的最大每秒3500次随机I / O操作*(再次,在实践中稍微less一点)。 所有其他的东西都是相同的文件副本将会快很多很多倍。
*
如果读取的几何结构允许驱动器移动磁头并读取在磁盘的一次旋转中碰巧可用的扇区,则可以获得磁盘每转一次以上的随机访问。 如果磁盘访问被广泛分散,你可能平均不到一个。 如果磁盘arrays以带区格式(见下文)格式化,那么在大多数情况下(取决于RAID控制器),磁盘每旋转一圈,最多可以读取一个条带读取数据,平均可能less于一个。
7200 RPM 1TB硬盘在顺序I / O上可能会相当快。 以条带化scheme(RAID-0,RAID-5,RAID-10等)格式化的磁盘arrays通常一次最多可读取一个磁盘的一个条带。 使用64K条带,我们可以从15,000 RPM磁盘每秒读取64Kx250 = 16MB左右的数据。 这使得14个磁盘arrays的吞吐量达到每秒220MB左右,与现代1TB SATA磁盘所引用的150MB /秒相比,速度并不快。
对于videostream(例如),RAID-0中的4个SATA磁盘arrays具有较大的条带大小(某些RAID控制器将支持最大1MB的条带大小)具有相当多的连续吞吐量。 这个例子在理论上可以以大约480MB /秒的速率stream动,这对于进行实时无压缩的高清video编辑来说足够舒服。 因此,Mac Pros和类似硬件的拥有者可以做高清video合成任务,而这些任务在几年前还需要一台带有直连光纤arrays的机器。
磁盘arrays的真正好处在于数据库工作,其特点是大量的小散布I / O请求。 在这种types的工作负载上,性能受到磁盘中的金属部分的物理延迟周而复始地来回的限制。 这个指标被称为IOPS(每秒I / O操作)。 您拥有的物理磁盘越多 – 无论容量如何 – 理论上可以执行的IOPS越多。 更多的IOPS意味着每秒更多的事务。
数据的完整性
另外,大多数RAIDconfiguration为您提供了一些数据冗余 – 根据定义,这需要多个物理磁盘。 具有这种冗余的存储scheme和大量驱动器的组合给系统提供了可靠地服务于大事务工作量的能力。
磁盘arrays(和极端情况下的SAN)的基础设施不完全是大众市场项目。 另外它是真正的,真的不能失败的一个点。 build立标准和较小的市场容量的这种组合并不便宜。
总存储成本包括备份
实际上,维护1TB数据的最大成本很可能是备份和恢复。 一个磁带驱动器和34套SDLT或ultrium磁带,用于完整的祖先备份和恢复周期,可能会比1TB的磁盘arrays花费更多。 加上非现场存储的成本和即使是一个单一的磁带猴子的工资,突然你的1TB的数据是不是很便宜。
磁盘的成本往往是主导存储成本层次的一个公平的方式。 在一家银行,我有机会为SAN存储工作,开发系统的成本为900英镑/ GB,生产服务器上的磁盘成本为5000英镑/ GB。 即使在企业供应商的价格下,磁盘的物理成本也只是其中的一小部分。 另一个我知道的例子是(相对)适度configuration的IBM Shark SAN,其成本超过了100万英镑。 只是在这个物理存储收费约9英镑/千兆字节,或约9000英镑的空间相当于您的1TB消费硬盘。
只要说:“是的,我可以以每小时5美元的价格获得Java程序员的离岸费用。”
也许问他们几个有关沃尔玛驱动器的问题:
…将这些答案与在pipe理良好的数据中心中作为RAID 5arrays一部分运行的驱动器进行比较。
(披露:我也是一名开发人员 – 我只是猜测!)
也许你应该考虑差异化存储。
你的开发人员可能需要更多的空间,但也许这不是他所追求的“企业级”驱动空间。 也许他只需要有一个存储.vhd和ISO的地方,这是一个磁盘崩溃的情况下,可以再次从MSDN下载。 也许testing运行需要很大的瞬态空间要求,只需要在testing运行期间在那里。 对于所有这些,50美元的Wallmart驱动器可以成为一个有效的解决scheme。
人们需要意识到存储的第一件事是,容量和IOPS之间存在很大的差异。 像耐用性等通常是没有意义的,它几乎总是归结为IOPS与容量。
这取决于在那里询问什么样的服务器。 对于一个基本的开发或testing服务器,来自Wallmart的一台tb驱动器可能已经够用了。 如果你正在处理一个没有使用现货零部件的高端服务器,那就问问他们是否打造一辆赛车,并从汽车配件商店购买轮胎以节省一些钱。
我解释的方式是这样的。 如果你的老板将签署购买。 我会在沃尔玛的驱动器上写上一个标志。
“系统广告被指示在这里把他的意志和直觉。” 而当驱动器死亡,然后我会把驱动器,并注意到开发,并要求他们这个时候如何做我的工作..
我同意波特曼…相信球队,或者离开。
一个简单的答案:1TB硬盘通常是SATA,但是你的服务器是SCSI。 (即使服务器不是SCSI,现在也可能停止查询。
一个300GB的SCSI驱动器通常是价格的4倍,然后是备份现有的数据,组织停机,安装,可能出错,加class等等。总而言之,一个简单的存储升级可能会导致所有种种痛苦 – 这些都不是开发者直接负责的。 说你可以购买满足当前需求的现成的驱动器是绝望的简单化。
但是你知道,当你购买这些服务器时,你应该把更大的驱动器放在该死的服务器上,而现在你正在踢自己! 但是,你想要安装服务器,他们会增加前期成本,可能不得不多加批准…欢迎来到系统pipe理员的痛苦世界…