S现在的技术发展实在太快,很多人还没弄清SATA到底有什么好,SATA II又来了。在传统的IDE、潮流的SATA与前卫的SATA II硬盘之间,到底有着什么样的区别?几种不同的硬盘各自价格等方面又是怎么样?相信很多朋友都想知道。 在深入了解新标准之前,有必要回顾一下原有的技术。长期以来,硬盘技术的进步,都着重于传输速度和容量两个方面。基本上认识电脑以来,大家就一直在使用Ultra ATA。这种延用已久的接口技术,有好些方面都显得过时而需要改进了: 大家都知道,数据线太粗,安装不方便,严重影响机箱内空气流通,不利于机箱散热,是传统IDE接口即Ultra ATA硬盘的至命缺点。不过,IDE硬盘还有很多其它方面的局限性,大概就不是很多人都清楚了。 主从盘相互影响 普遍情况下,一块主板只有两个IDE接口,每个接口可以挂两个IDE设备。但同一个接口的两个设备是共用带宽的,对速度的影响非常大。所以稍有常识的人,都会把硬盘和光驱分开两条IDE线连接到主板上 这样,IDE有个很大的问题,就是虽然一块主板可以连接4个设备,但事实上只要超过两个,速度就大大下降。 更大的问题是,同一条线上两个设备要严格按主/从设置才能正常运行。象图中这种西数WD400 JB,主硬盘还有两种不同设置,一条IDE线只接这块硬盘的时候按右边的设置,带从盘的时候则要按中间的设置方式。据亲身经验,如果没带从盘而按中间的方式设了,会出现五花八门百思不得其解的问题——有时可以启动,有时报告找不到硬盘,有时启动过程中报告硬盘错误之类——每次启动可能出现不同的问题。 不支持热拔插 并行ATA在支持设备热插拔方面能力有限,这一点对服务器方面的应用非常重要。因为服务器通常采用RAID的方式,任何一块硬盘坏了都可以热拔插更换,而不影响数据的完整性,确保服务器任何情况下都正常开着。具有热插拔支持功能的SCSI和光纤通道占据了企业级应用的几乎全部市场,并行ATA空有价格优势而不能获得一席之地,主要原因就是它不支持热拔插。 不够完善的错误检验技术 Ultra DMA引入了基于CRC的数据包出错检测,该技术是ATA-3标准的组成部分。但是,没有任何一种并行ATA标准提供命令和状态包的出错检测。尽管命令和状态包出错的范围和几率都小,但它们出错的可能性也不容忽略。 使用过时的5伏电压 处理器核心从几个方面要求向低电压过渡。较低电压允许更快的信号陡变,这对提高速度、降低热耗至关重要。现在的CPU核心电压基本上都小于2伏,为保持与系统主板上其它芯片的互操作性,通常使用3.3伏的外部电压分离出来,5伏电压成为过时的标准。虽然大部分目前的 ATA/ATAPI-6标准为并行ATA设备指定的直流电压供应为3.3V (± 8%),但一些模式的接收器大于4伏,所以要使用过时的5伏电压。 接口速度的可升级性差 另外,Ultra ATA是受并行总线特性的限制,带宽容易受到限制,经过多次升级,目前最高传输率也只是133M字节/秒。 SATA比IDE优越在哪些地方? SATA不再使用过时的并行总线接口,转用串行总线,整个风格完全改变。 SATA与原来的IDE相比有很多优越性,最明显的就是数据线从80 pin变成了7 pin,而且IDE线的长度不能超过0.4米,而SATA线可以长达1米,安装更方便,利于机箱散热。除此之外,它还有很多优点: 一对一连接,没有主从盘的烦恼 每个设备都直接与主板相连,独享150M字节/秒带宽,设备间的速度不会互相影响。 支持热拔插 热拔插对于普通家庭用户来说可能作用不大,但对于服务器却是至关重要。事实上,SATA在低端服务器应用上取得的成功,远比在普通家庭应用中的影响力大。 数据传输更加可靠 SATA提高了错误检查的能力,除了对CRC对数据检错之外,还会对命令和状态包进行检错,因此和并行ATA相比提高了接入的整体精确度,使串行ATA在企业RAID和外部存储应用中具有更大的吸引力。 低电压信号 SATA的信号电压最高只有0.5伏,低电压一方面能更好地适应新平台强调3.3伏的电源趋势,另一方面有利于速度的提高。 带宽升级潜力大 SATA不依赖于系统总线的带宽,而是内置时钟。刚推出的这一代SATA内置1500MHz时钟,可以达到150M字节/秒的接口带宽
一个磁盘损坏,也就是说不能对任何读写命令做出响应,需要更换。raid 5能从保存的对等数据中恢复所有数据,重建缺陷磁盘。
磁盘组本身没问题,但其中一个磁盘上出现了坏块(即不能读取的块),造成某些数据不能恢复。
请注意,从数学角度说,每个磁盘的平均无故障时间 (mtbf) 大约为 50 万至 150 万小时(也就是每 50~150 年发生一次硬盘损坏)。实际往往不能达到这种理想的情况,在大多数散热和机械条件下,都会造成硬盘正常工作的时间大幅减少。考虑到每个磁盘的寿命不同,阵列中的任何磁盘都可能出现问题,从统计学角度说,阵列中 n 个磁盘发生故障的机率比单个磁盘发生故障的机率要大 n 倍。结合上述因素,如果阵列中的磁盘数量合理,且这些磁盘的平均无故障时间 (mtbf) 较短,那么在磁盘阵列的预期使用寿命过程中,就很有可能发生磁盘故障(比方说每几个月或每隔几年就会发生一次故障)。
两块磁盘同时损坏的几率有多大呢(“同时”就是指一块磁盘尚未完全修复时另一块磁盘也坏掉了)?如果说 raid 5 阵列的mtbf相当于mtbf^2,那么这种几率为每隔10^15个小时发生一次(也就是1万多年才出现一次),因此不管工作条件如何,发生这种情况的概率是极低的。从数学理论角度来说,是有这种概率,但在现实情况中我们并不用考虑这一问题。不过有时却是会发生两块磁盘同时损坏的情况,我们不能完全忽略这种可能性,实际两块磁盘同时损坏的原因与mtbf基本没有任何关系。
读取错误(不能恢复的ecc读取错误)从统计角度来说也比较少见,一般来说是指读取多少位后会出现一次读取错误。就 scsi/ fc/ sas 磁盘(sas 是本文的重点,但同样的量化说明适用于所有这三种技术)来说,发生读取错误的几率为每读取10^15位(也就是约100tb)到10^16位(约 1000tb 或 1pb),会出现一次错误。我们把这一几率称作误码率 (ber)。
不过,sata磁盘的错误率要大一些,其ber比其它类型的磁盘要高出一两个数量级(即其ber为每读取10^14到10^15位出现一次错误,或者说每读取10/100tb 出现一次错误,具体取决于磁盘设计)。如果 sata 磁盘容量为1tb,完整读取磁盘十次,就会发现新的故障块(假定这里的 ber 为每读取10^14位出错一次)。存储相同数据的相应两个块同时出现问题几乎是不可能的,几率为每读取 10^30 位发生一次。
然而,如果一个问题由于mtbf引起,另一个问题由于读取错误引起,这样两个错误同时发生的几率有多大?假设我们有 10 个 sas 磁盘组成的阵列,每个磁盘容量为 300gb,ber为每读取10^-15 位出错一次,那么我们在重建磁盘时发生读取错误的可能性有多大?
计算方法如下: 10^15(位)x 1/8 (字节/位)x 1/10 (磁盘)x 1/300gb,从而得到每 50 次重建就会出现一次。这种几率还是比较大的,但并不足以让人震惊,要是磁盘阵列在使用寿命中要发生50次故障的话,那才真成了问题!不过,上述几率在统计学上还是有意义的,我们可以换一种方式来理解,也就是说,如果我们出售50款与上述配置一样的阵列,那么至少其中一个会出现上述严重问题。这种几率也不算高,但要是客户安装上百个阵列的话,问题就比较严重了。不过,有的sas磁盘的ber比我们这里假定的情况要好上10倍,因此问题可以大大化解。
如果使用sata会有什么情况呢?磁盘容量越大,问题就越严重!
磁盘的ber会较差,造成问题的严重性。假定同样有上述10个磁盘组成阵列,但每个磁盘容量为500gb,ber为读取10^-14位出错一次,那么计算如下:10^14 x 1/8 x 1/10 x 1/500gb,得出每 2.5 次重建就会出一次严重问题,这就要引起我们的高度重视了。我们这里所谈的是5tb容量的阵列,尽管这种阵列还不太常见,但完全是当前技术可以达到的水平。这就是说,这种容量大小的阵列每 2.5 个中,就有一个阵列会出现每次重建就发生块损坏的问题,用户会看到“read error at lba = 0xf43e1ac9”这类报错信息,着实让人头痛。用户怎么会明白0xf43e1ac9 到底指什么?是说空间为空?还是说内核数据下次重启会发生蓝屏错误?是仅涉及没人会用得到的数据库?还是包含着银行帐户信息?实际上看到这种错误信息我们根本无所做出判断,唯一的办法就是从备份中恢复数据,这会花大量时间,而且还要考虑到从 5tb 容量的磁带中恢复数据会面临多大的读取错误几率。这种读取错误的几率要大大高于磁盘,因此用户会遇到无穷尽的问题。
说到底,我们要在价格与风险之间进行权衡,sas和高端驱动器的平均无故障时间 (mtbf) 更长/ber性能更高,因而出问题的可能性也就少得多(尽管不是不可能出问题),而低端sata 有助于大幅节约购买设备的资本投入,却会面临较高的双重故障几率。在此情况下,raid6 市场便应运而生。
需要指出的是,上述涉及的某些风险可通过其它技术加以规避减轻,如定期扫描磁盘以避免坏块的巡读 (patrol read),确保不会因为另一块磁盘的故障造成同一条带上的数据发生双重故障。就目前而言,raid 6 似乎是针对 sata 驱动器的更合适的解决方案,也是我们更加需要的解决方案。不过随着市场预期的发展,磁盘容量和阵列规模不断上升,这种技术在 sas 磁盘领域的应用也可能颇有商机。
Hadoop|
Apache Pig|
Apache Kafka|
Apache Storm|
Impala|
Zookeeper|
SAS|
TensorFlow|
人工智能基础|
Apache Kylin|
Openstack|
Flink|
MapReduce|
大数据|
云计算|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....