从硬盘设计思想到RAID改良之道
监控硬盘的前生今世关于桌面硬盘、企业级近线硬盘(NL-SAS/SATA)和监控硬盘的差别,我们在前文中已经讲得很详细,这里再换一个角度来看看。
“监控硬盘是希捷和西数为视频监控定制的,典型的写多读少,一般读写比例为10:1。假设将读写比例变成1:1,则坏盘速度非常快。(企业级近线硬盘和监控盘的抗振能力)是不一样的,用的RV
Sensor和算法都不一样。”——浙江宇视科技有限公司 数据中心产品部总工 许钟生
这个与监控硬盘的设计思想和定位有关,按照我的理解,是在桌面硬盘的基础上尽量少增加硬件成本的情况下,对固件进行优化,使之在视频监控应用中能够有更好的表现,包括平均无故障时间和抗振能力等。
多年前,希捷只有一款专门定位于视频应用的SV35,就是今天监控硬盘的前身。当时我还曾与硬盘厂商的朋友开玩笑说:“它与桌面硬盘的区别就是写缓存算法吧?”
实际上可能不止于此,我们先来看看官方是怎么说的?
监控优化固件以提升耐用性:● ATA串流指令支持流畅的视频录制和回放,支持从多视频流录制更高分辨率的视频并可以尽可能减少掉帧● 指令完成时间更短,可以提升硬盘吞吐量,支持更多的摄像头、更高的分辨率● 节能模式可以全面减少功耗和发热● 可以在更高的温度下运行,独特的监控搜索配置文件可将发热降至最低● 噪声更低,运行更加安静● 为快速写入而优化的数据高速缓存,支持更多的摄像头且不影响吞吐量和性能
大存储容量:● 存储容量足以应对全天候运行和多摄像头应用● 支持高分辨率视频和存档的监控录像
物理设计改进:● 平衡马达可以将硬盘造成的振动降至最低并且可以降低噪音● 耐用的硬盘元件可以保证写入优化和全天候运行模式下的可靠性
监控存储应用的特点就是流式写入,I/O数据块较大,但不代表就是完全的顺序写入,因为还要考虑多路监控并发写入带来的影响。监控硬盘的最大特点应该是缓存针对写入做最大优化,一旦出现异常断电,丢失个几MB或者几十MB数据对视频监控系统来说没有多大影响。
也就是说,这种硬盘不需要为传统服务器工作负载而考虑;而企业级近线硬盘,需要能适应多种应用场景,会尽可能地保证数据一致性。以前在RAID环境中有专门的缓存保护技术,像数据库等关键应用通常建议关闭硬盘上的写缓存。
在上一篇中,我们提到了“希捷在最新一代Enterprise Capacity 8TB型号上内置了2MB NOR闪存,用于掉电时备份写缓存数据,因此可以打开WCE(Write Cache Enable)提升随机写性能。”这是企业级硬盘为兼顾性能和掉电保护做出的一种改良。
HGST最新的大容量企业级近线充氦硬盘,支持2种写缓存保护机制。除了在SAS接口版本上提供非易失性的NVC Quick Cache之外,还有另一种技术Media Cache——“开辟一小部分磁道作为将随机写I/O变成顺序写入的缓冲区”。
此外还有一个“Rebuild助手”模式。举例来说,在多块硬盘配置RAID+热备盘的情况下,如果故障盘只是某个磁头失效,那么在重建的过程中,其它碟面上的数据就可以从故障盘直接拷贝到热备盘,以减少对整个RAID组中其它硬盘增加的I/O开销,加快Rebuild过程同时减少二次故障风险。据了解,希捷现在也具备类似的技术,该功能需要配合RAID卡/控制器来实现。
监控硬盘显然不愿这样提高成本,加大DRAM写缓存的使用可以减少磁头写操作的次数,在同等硬件条件达到了一定的延长寿命的效果。但事物总是一分为二的,这种优化相应地就会削弱硬盘原本的读缓存,所以如果超出传统监控使用范围,读操作比例增大就会导致坏盘率提高。
所以,监控硬盘的应用场景是限定的,而企业级近线硬盘可胜任更广泛的用途。像噪音更低,实现方式就是降低转速和寻道速度,而性能则是“够用就好”的原则。至于物理设计改进,监控盘使用的组件比企业级近线硬盘还是要降低一个等级的。
传统RAID限制及应变之道这里再引用一段许先生给我们的反馈:“不是监控盘的RAID硬盘个数小于等于16个,即使用企业盘一般单阵列内推荐的硬盘数量也不超过16个(实际不超过15个左右),除了你说的共振之外,最主要的是性能,单RAID阵列从3-15块硬盘递增,性能也是递增的,但是超过十五块盘,性能会开始下降。一般的做法是24盘位阵列:11+12+1,性能最高。”
许先生是监控存储方面的专家,考虑问题以及推荐的一般做法,都是以监控用途为出发点。除了性能之外,传统RAID组中磁盘数量越多,Rebuild时要读取的数据量也是成正比的(前面介绍的硬盘快速Rebuild技术目前应用还不普及),出现第2、3坏盘的概率也会增大。
我的另一位朋友杨小雷也曾在微博里面提到,在RAID卡固定条带大小的情况下,参与硬盘数量越多Rebuild速度也会越慢。
因此在RAID卡和一些设计比较传统的磁盘阵列上,硬盘数多了之后一般需要人为分成多个RAID组,在操作系统的卷管理器层面,再根据需要“拼”或者条带化成逻辑卷。在今天看来这样不是太方便,并且对规划人员也会有要求。那么如果我们在底层不愿意分成多个RAID组,解决之道就是宽条带化。
如上图,左边的“传统存储系统”基于磁盘做RAID,当RAID上的LUN映射给某个前端主机时,它的性能会受限于该RAID组的磁盘数量。而像以戴尔SC(Compellent)等为代表的存储系统,先将磁盘切割为数据块(粒度细化的可达到512KB-4MB),然后在这些数据块/页面之间做RAID。也有人后来给宽条带化RAID起了RAID
1.5、RAID2.0… 的叫法。
由于底层虚拟化打散的原因,宽条带化RAID可以在更大的存储池上,保持理想的数据/冗余校验位比例,比如RAID 5 4+1和RAID
6 8+2等。这样单个LUN就能享受到整个磁盘池的性能,同时还不用面对传统RAID组磁盘数量过多所带来的问题。
宽条带化比传统RAID更加智能,而这只是先进的企业级存储系统相对于使用RAID卡或者软RAID搭建廉价存储服务器的优势之一。尽管许多监控存储在成本控制上要求较高,但是“高投入、高回报”的道理仍然适用。除了存储操作系统、硬盘选择之外,一款设计优秀的双控制器阵列还在更多方面保障设备的可靠性和可用性,包括我们前文谈过的共振考虑,以及冗余模块化组件无单点故障等。
从硬盘设计思想到RAID改良之道的更多相关文章
- 关于硬盘和几种RAID
1 硬盘的基本工作原理 1.1 硬盘部件结构图 1.2 主要参数术语解释 磁头:在与硬盘交换数据的过程 中,读操作远远快于写操作,硬盘厂商开发一种读/写分离磁头. 转速(Rotationl Speed ...
- 转:android异步任务设计思详解(AsyncTask)
这里说有设计思想是我根据查看Android源代码提炼出来的代码逻辑,所以不会跟Google工程师的原始设计思想100%符合(也有可能是0%),但是本文一定可以帮助你理解AsyncTask,也可能有一些 ...
- 浅谈由管理者角色引出的B端产品设计思考点
本文来自网易云社区 作者:任琼瑶 最近一直都在持续跟进云课堂B端的交互设计,在此期间,多多少少遇到了一些不曾遇到过的问题,虽然同是做产品设计,但B端和C端产品的确存在很多不同之处. 首先,当我们在做C ...
- Balanced Lineup 倍增思想到ST表RMQ
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 36864 Accepted: 172 ...
- 读<<领域驱动设计-软件核心复杂性应对之道>>有感
道可道,非常道. 名可名,非常名. 无名天地之始,有名万物之母. ---老子 关于标题 好久没写东西了,动笔的动机是看完了一本书,想写点总结性的东西,一是为了回顾一下梳理知识点,二是为了日后遗忘时能有 ...
- 硬盘-RAID 5组建
没发正文之前本人先声明一下----本文是转载 这篇文章简直是太精彩了,呵呵 ,实在是忍不住了,一定要贴出来,让大家分享! 原作者:唐华 责任编辑:xiexiaojin 我们生活在一个历史记录在硬盘上的 ...
- 【linux相识相知】独立硬盘冗余阵列-RAID
独立硬盘冗余阵列(RAID,Redundant Array of Independant Disks),旧称为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks ...
- 什么是RAID
RAID 维基百科,自由的百科全书 关于与「 RAID 」同名的其他主题,详见「 RAID (消歧义) 」. 独立硬盘冗余阵列 ( RAID , R edundant A rray of I ndep ...
- 独立硬盘冗余阵列与HDFS
http://zh.wikipedia.org/wiki/RAID 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Re ...
随机推荐
- sql NextResult()多个结果集
转自 http://blog.csdn.net/limlimlim/article/details/8626898 注意:当SQL语句中出现两条Select语句,例如:string sql = &q ...
- php正则表达式基本
一.正则表达式的组成 1.分隔符,可以是除了字母,数字,反斜线及空白以外的任何字符,比如/,!,#,%,|,~等;通常有/,!,~ 2.表达式:由一些特殊字符和非特殊字符组成. 3.修饰符:用于开启或 ...
- jquery 插件:chosen
options 文档 https://harvesthq.github.io/chosen/options.html 官网: http://plugins.jquery.com/chosen/
- 为什么 Linux 的 htop 命令完胜 top 命令
在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况.内存消耗情况,以及每个进程情况等.但是,你知道吗?还有另外一个命令行工具 ...
- Burp Suite Intruder的4种攻击类型
位置:Intruder>1(通常为数字)>Positions,Attack Type下拉有四种,分别为 一.Sniper(狙击手模式) 狙击手模式使用一组payload集合,它一次只使用一 ...
- 企业级Nginx服务基础到架构优化详解
1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx ...
- Lua基本函数库 【转】
转自:http://www.cnblogs.com/whiteyun/archive/2009/08/12/1543184.html 基本函数库为Lua内置的函数库,不需要额外装载 assert (v ...
- FPGA开发流程
需求说明:Verilog设计 内容 :FPGA开发基本流程及注意事项 来自 :时间的诗 原文来自:http://www.dzsc.com/data/2015-3-16/1080 ...
- Frogger - poj 2253 (Dijkstra)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28802 Accepted: 9353 Description Fr ...
- erlang 最大公约数
一般面试会遇到问一些算法,什么排序,树,图等等,冷不丁还会问几个蛋疼的问题,我估计生产情况十有八九都用不上,只是题目罢了. 题目:求两个大数的最大公约数. 什么是最大公约数呢? 百度百科的答案这样的: ...