我们的数据存在固态硬盘上安全吗?
随着SSD应用的越来越广,我们的台式机、笔记本甚至服务器都被SSD占领。你有没有想过一个很细思极恐的问题:红旗到底能打多久——SSD硬盘能用多久?我们的数据安全吗?
生命周期
根据我们前文杂谈闪存二:NOR和NAND Flash
我们知道NAND Flash单元的寿命是由擦写(P/E)次数决定的,而目前大部分的SSD都是由MLC颗粒组成,一般的MLC只有3000次擦写寿命。如下图:
幸亏我们有FTL,提供了写平衡,整体SSD的寿命才没有仅仅3000次写操作。那么究竟我们写入多少数据才会把SSD写坏呢?
这个实际上和很多因素有关:容量的大小,OP的大小,主控的算法等等。很多SSD产品在出厂说明中都有标有品保的最大写入量,如Intel的 240GB 335系列,标称的最大写入量是22TB。据统计,平均硬盘写入量年均1500GB~2000GB, 我们做个简单的计算就可以知道可以用多久:22/2= 11年,似乎还不错。
Wait a Minute! 如果你把SSD硬盘用来做BT下载,假设我们以10MB/s的速度下载,一天就会下载10 × 60 × 60 × 24 / 1024 = 843GB,22 × 1024 / 843 = 26 天,还不到一个月!如果你是个勤奋的程序员,在进行安卓手机开发,为了build快点,你把程序放到SSD上并每过一个小时做一次clean build同时产生10G临时文件,那么你的SSD可以用 22 × 1024 / 240 = 94天!太糟糕了!当然,这些都是理论最差情况,实际情况是这样吗?
TechReport上有一期文章(The SSD Endurance Experiment: They're all dead) 作者找了5块市面上常见的SSD,它们是Corsair Neutron GTX 240GB, Intel 335 Series 240GB, KingstonHyperX 3K 240GB, Samsung 840 Series 250GB, and Samsung 840 Pro 256GB。
作者通过诙谐的文笔,详细描述了通过持续不断的写入数据,实际测试SSD硬盘的可靠性,推荐读者详细阅读。
我们这里就描述一下结论。首先要提的是所有的SSD都可以写入数百TB。在写入100TB数据以后,它们都安然无恙,这是一件了不起的事情,要知道,这远远超过它们所标称的写入量。
测试结果如下图:
写入200TB后,最先出问题的是三星的840系列,它已经出现可以记录的坏块。这和它是唯一的TLC(1000次P/E)是分不开的。在300TB后出现不可修正错误,严重影响了数据可靠性,应该被立刻换下。如果继续,在900TB就彻底挂掉了。
Intel的335表现比较平稳,在600TB出现问题后,在700TB后,SMART信息就发出了失败警告,但是使用起来仍然一切正常,闪存单元也几乎都是完整的。继续写入,仅仅只过了50TB,也就是到达750TB,最终就崩溃了。金士顿的HyperX 3K,在写入近800TB死掉,而海盗船则表现异常优秀,在1.1PB前都表现平稳。只有在1.2PB才由SMART报告大量错误,在重启后,就不认盘了。
我们以Intel 335为例再来算一下,BT用户可以用600TB × 1024 / 843 = 728天,程序员可用 600TB × 1024 / 240 = 2560天=7.11年,普通用户可以用600TB/2 = 300年!情况十分乐观!
数据持久性
NAND的数据存储是把电子禁锢在Gate里,这个可怜的囚徒会不会在无人监管时逃出来呢?就是说,我们把SSD断电放在柜子里,数据会不会丢失呢?
这个并不是多虑,实际上,温度越高,电子越活跃,越有可能跑掉一部分,当很多电子跑掉后,数据就有可能丢失。实际上JEDEC组织早已对SSD定下了标准,如下图:
即消费品在掉电情况下,在30度室温中需要保证1年数据不丢失。它的来源是一份Intel的研究报告:
在30度情况下,数据经过52周即有可能出现数据丢失。如果我们把温度提高到55度,2周数据就有可能丢失!多么可怕的数字。
当然这是最低标准,而且要求很破旧的SSD都要遵守的原则。实际情况会好的多,但是也为我们敲响了警钟:SSD放着不动,数据可能会丢失的!
结论
看了这么多的数字,我们能得出什么结论呢?
1. SSD作为一般用途不需要担心使用寿命的问题,但是千万不要把它当作BT等下载盘!
2. SSD不适合作为冷数据备份用途,还是磁带/硬盘等比较合适,毕竟SSD这么贵,经济上也划不来。还有不要把SSD放在暴晒的汽车内置之不理,数据可是无价的。
3. 如果妥善使用SSD,SSD还是十分可靠的。
4. SSD挂掉之前会有很多坏块产生,我们需要在发生坏块的时候就开始进行数据迁移。不要等不认盘的时候,就后悔晚矣。
关于烧卡、云存储的一些科普、问题解答
关于摄像机烧卡的问题,无论是论坛还是其他渠道,一直是一个高频的反馈问题,甚至也有很多误解,认为我们故意搞坏内存卡,为的就是卖云存储收费,本篇文章针对几个核心的问题,做正面的技术、逻辑探讨,也针对后续内存卡相关的一些方案做下同步。为什么会烧卡? 什么是TF卡的寿命?[/i]烧卡的核心问题还是卡的寿命问题,很多人会疑问,我卡在手机上好好的,用了很长时间都不坏,为什么到摄像机里没多久就坏了?在回答这个问题之前,我们首先看一下卡的寿命是什么?内存卡和现在的固态硬盘类似,用的都是NAND FLASH,NAND FLASH又分为SLC、MLC、TLC,最新的还有QLC的版本,具体的差异见下图,区别就是单位容量价格越来越低,但是支持的写入次数越来越少。早期的内存卡、固态硬盘都是MLC的,目前主流的都是TLC甚至QLC的了。
图摘自知乎:固态硬盘和U盘里的slc、mlc、tlc、qlc颗粒有什么区别? - 知乎从上表可以看到,理论擦写次数TLC在500-1000次,这个擦写是指完整从头到尾写入的次数。而且是理论值,很多TF卡鱼龙混杂,有些低价的TF用的是大厂流出来的B规颗粒,实际寿命还会减少,下方这款西部数据出的专用TF卡,写入就是用的3D-TLC技术,理论擦写次数500次,这个容量西数官方测试是支持592天的高清视频持续录制。如果是低容量甚至更差一点的卡,实际寿命可想而知。所以影响TF卡寿命的核心是擦写次数,目前主流的TLC存储卡理论寿命在500次左右,实际很多卡的寿命更低。
为什么摄像机总会烧卡?[/i]有了TF卡寿命的概念之后,结合使用场景看下烧卡的原因,目前我们的摄像机普遍采用H264(老款)H265(新款)的压缩编码方式。对于一个新款的200万像素,H265编码的摄像机一天24小时不间断录像的文件大小21GB左右,如果插入的是一张16GB的TF卡,一天就能完整写入一次多,如果是老款的H264压缩的摄像机,一天的数据量能够达到40GB,一天就能够来回擦写两次以上。结合上面我说的即使是西数专用的紫盘TF卡,写入次数在500次,可以算算如果是16G的卡,H265的新款摄像机,一年不到就能写入三四百次,如果是H264的老款摄像机,半年就能写个三四百次,基本上就能够达到TF卡的寿命上限。
为什么我的卡在其他设备上不烧?[/i]回答这个问题,还是先区分一下使用场景,360行车记录仪也有反馈烧卡的情况,但是整体的比例比摄像机少很多,我们行车记录仪很多还是前后双录,两路流同时写入,数据量更大,但是因为不会一天24小时开车,一天即使开车4个小时,寿命也是同条件下摄像机的6倍,用个三年以上都没问题,所以虽然也有反馈,但是由于使用场景的差异,比例小很多。记录仪和摄像机类似的都是高写入的场景,而放到手机等其他场景,更是多数是读取,很少是写入,而影响寿命的恰恰是写入,手机存储卡可能使用几年下来都不会完整的写入几次,所以这种使用场景并不会影响卡的寿命。目前最新的QLC固态硬盘更是如此,量大、便宜,虽然只有一两百次的写入寿命,但是用作系统盘,多数场景是系统启动时系统文件的读取,大的容量也并不会完整写入多少次,所以虽然看着一两百次的寿命短,实际上在电脑的使用场景下,这个寿命仍然是足够的。所以结论,TF卡在其他设备上不容易烧的原因是因为这类设备不是摄像机这种来回循环擦写的高写入场景,不会触碰到卡的写入寿命瓶颈。 怎样避免烧卡? 用正规的大品牌的卡、大容量的卡[/i]TF卡的市场水很深,市面上能做NAND FLASH颗粒、DIE的就那几家大厂,有些不良的或者低规的颗粒流出来,就会被一些品牌封装成低价的卡,所以现在买固态硬盘都会看是不是原厂颗粒,有些的颗粒会被打磨、二次打标,变成其他品牌等,TF卡的存储单元和固态硬盘一样都是NAND FLASH,逻辑是一样。所以买闪迪、三星、金士顿等大品牌(还得是正品,大品牌假货也多)的卡,寿命更有保证。另外就是容量越大,支持存储的天数越多,循环擦写一次用时也就越长,如200W的 H265如果是16G的卡一天就能写完一个循环,32G的卡寿命就会翻倍。对于新买的卡,目前主流容量64G性价比已经比较高了,可以考虑64G起步。当然,我相信很多人和我一样,手里可能有些老的如16G、甚至8G的闲置卡,没地儿用,就顺手插在摄像机里,这样几个月烧张卡就很正常了,所以建议如果有这种小容量的老卡,还是放在故事机或者门铃里去用,别插摄像机里了,确实有点浪费。(不推荐)选MLC的卡[/i]我的汽车是自带行车记录仪,按照上面的逻辑,应该不会烧卡那么严重,但是因为有前后左右四路摄像头,四路会同时写入,所以数据量很大,连续烧了我多个U盘,最新的系统更新后,要求必须使用64G以上的U盘,我也在网上买了这个车型专用的MLC U盘,特点就是擦写次数高,这才避免了我之前循环烧U盘的问题。但是目前U盘一般不在标注类型,而且MLC的价格也要贵很多,所以不推荐,有这个价钱不如买个更大容量的划算。你们就没啥优化方案么? 难道只能我们换卡了,你们就没有啥优化方案了么?有,优化方案一直有做,但是还是先对齐下认知,避免阴谋论,接下来说几个优化方案的取舍。方案一:支持事件卡录[/i]这个是最简单直接的方案,把24小时不间断的录,改为有画面变化才录,因为不会持续录,寿命自然延长,按照我们的统计数据,如果改为画面变化就录像,平均一天录制6-8个小时,那么卡的寿命能够延长3-4倍。那么为什么没做?凡是有利有弊,论坛里也有反馈云存漏录的情况,因为画面变化触发录像有一套规则,如果规则严格了,就会出现了画面变化了但是没有录下来,如果规则比较松,则录了大量的误报,既给用户造成了干扰,也达不到减少录制时间,延长卡寿命的效果。所以之前对卡录的定位就是对云录的补充,不放过任何一个时间段,方便事后查证,保证不丢数据,传统安防使用硬盘录像机(NVR)就是这种逻辑,卡录就是在这个需求场景下的功能实现。后续新型号会陆续提供可选项,允许用户根据自己的场景选择事件录像还是持续录像,老设备由于型号较多,需要根据排期情况逐步更新。所以这块的结论是,会做事件卡录选项,把选择权交给用户。方案二:支持存储空间预分配[/i]NAND FLASH以页为最小单位写,写之前要以块为最小单位擦除,本身底层包含一套比较复杂的算法,出现坏块还需要做坏块的管理。而频繁的擦写容易产生碎片和坏块,存储空间预分配就是先以整块的方式将空间预分配,然后再逐块写入,避免频繁操作的碎片化问题,降低坏块出现概率。但是这个方案也有一个缺点,把卡拔出来插入到电脑上没办法看到一个个独立的视频文件,必须在手机上或者通过专用的视频转换工具才可以查看视频。不过虽然有这个缺点,但是提升也是比较明显,后续会逐步在新品种落地,我们会提供相对完善的工具方便视频查看、导出。方案三:换更适合TF卡的文件系统[/i]文件系统包含对底层存储硬件的管理,这部分较为复杂就不做详细展开,有一些更适合NAND FLASH的文件系统,但是弊端也很明显,不像FAT文件系统那样通用,插电脑上就能识别,方案二是能识别文件,需要通过工具才能导出视频,这个方案如果做,卡查到电脑上连文件系统都不识别了。所以这块针对TF卡我们不折腾,维持FAT32文件系统,后续再内置的NAND FLASH中会使用。上面挑了一些我们讨论并尝试的一些方案,还有些过于技术化的内容不在这里展开,实际上针对TF卡的优化操作还有很多尝试,如果有好的建议也可以提出讨论。最后关于一些问题的回应 频繁烧卡就是为了卖云存?[/i]论坛包括一些社交渠道见过比较多的这种说法,所实话,可以理解,但是确实过于阴谋论了。一个正常的商业公司,不可能不知道不能“竭泽而渔”的道理。只有给用户提供一个良好的用户体验,做大用户基数,才能有更多的增值服务转化。而不会傻到去烧用户的卡,逼着用户买云存。即使抛开商业道德不谈,从商业利益角度也不会这么去做。退一万步说,只要卡的硬件电路设计正常,想要在软件层面去烧一张卡也不容易啊,要频繁产生大量的垃圾数据靠不停的擦写去搞坏一张卡,如果有这种“阴谋”做法,藏不住的,很容易被抓出来,早就被锤了。所以,频繁烧卡为了卖云存,过于阴谋论,于商业利益、于商业风险,都不可能去做。云存和卡录也不是一码事,两者不是替代关系[/i]目前用户购买最多的是7天事件云存,这个场景和卡录不是替代关系。一个是事件触发存储,为了平衡误报和漏录的平衡,两种情况都有可能。 之前做的不间断卡录就是为了不丢录像,两个场景触发条件不一样。一个存储7天,而一个128G的卡,一般只能存5天左右,小卡时间更短,一长一短,记录天数不一样。很多用户家里被偷,摄像机往往也被偷了,录像的卡也被一起拿走了,云录不存在这个问题,几秒钟一个片段就会传到云端,这种被盗的极限场景不会丢数据,这个不一样。APP启动时,云录像直接从服务器加载,而且我们会做预加载,视频加载更快,切换体验更好,随点、随看(广告:新的APP 360智慧生活 兼容老的摄像机,云存查看更快),卡录像默认不上云,查看的时候要建立APP到摄像机的P2P连接,加载数据,查看速度会慢一点,使用体验不一样。所以,无论是功能特点还是我们对两个功能的定位上,卡录和云录不是替代关系,也没有强推云录,替代卡录的意愿。而且云录和云盘不一样,成本更高,不是相同的一个电影,10个人存储,实际存的是一部电影,服务端存一份就可以,摄像机的云录,每个设备的视频文件都是独一无二的,都需要单独存储,各位可以自行算一下,如果平均每天寸8个小时,存7天,存储和带宽成本大概多少钱。而有些竞品默认是不赠送免费的云存储,需要付费购买的。有些竞品虽然赠送,但是默认上传的视频分辨率只有800*480分辨率,手里有其他品牌产品的用户,可以保存下他们的视频,查下视频属性,对比一下,这里就不展开了。最后,最后,就事论事,理性沟通,我们积极听取用户反馈,也以此为鞭策积极改进,让产品体验越来越好。
相关问答
flash擦写次数 怎么算的?如果Flash的擦写次数是10000次,那么当前的方式可以使用25*4*10000=100万次当然如果还嫌小,可以多加几页,如果用10页25*10*10000=250万次也可以减小数....
固态硬盘所谓的 擦写次数 是什么意思-ZOL问答就是写入和抹除的次数,一般固态硬盘的芯片有SLC、MLC、TLC三种:SLC=Single-LevelCell,即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格),约1...
u盘 擦写次数 怎么算?u盘读写次数是有限制的,它不是无限的,因此你的u盘也是有寿命。大部分u盘的读写次数是在10万次左右,也许有些朋友就担心那我读写了10万次u盘不就报废了吗?其实...
什么是U盘的 擦写次数 ,怎么样才算擦写一次?U盘使用的是Flash闪存芯片,每个存储单元与内存动态存储RAM相似但多了一个能通过控制电压来控制电子流入流出的浮动栅,栅内有电子代表二进制中的0,没有则为1,...
内存卡可以重复 擦写 多少次?手内存卡是基于flash闪存技术制作的,理论上可以擦写10万次,这个擦写次数是指把存储器存满,然后再全部删除,这才算一次完整的擦写次数。不过,格式化一次就相...
请问51单片机的 擦写次数 是多少?-ZOL问答并且,虽然ROM在烧录(下载)过程中可以更改内容,但是更改的次数有限制,也就是烧录(下载)的次数有限制,一般最大次数是10万次,当然这里所说ROM是指FLASH的单片机...
什么是硬盘的 擦写次数 ?就是写入和抹除的次数。一般固态硬盘的芯片有SLC、MLC、TLC三种:1、SLC=Single-LevelCell,即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格)...
闪存( FLASH )可以反复用多少次?可以格式化多少次就不能用了? ...根据Flash生产厂商,理论上闪存盘可擦写1,000,000次,折合正常使用次数计算,闪存盘里数据可保存约10年左右。优盘在使用一段时间后,再次格式化,其容量...
FLASH 和EEPROM的区别?1、擦写方式不同FLASH在写新的数据前必须先擦除,而且经常是只允许整页擦除,没有办法擦除一个字节,换句话说,只能成块的读写,特别是写。EEPROM写之前不需要...
闪存( FLASH )可以反复用多少次?可以格式化多少次就不能用了? ...根据Flash生产厂商,理论上闪存盘可擦写1,000,000次,折合正常使用次数计算,闪存盘里数据可保存约10年左右。优盘在使用一段时间后,再次格式化,其容量...