如何长时间保存重要数据?

我大学毕业时把所有资料刻录成几张 dvd,才几年就发现读取不了了,而我老爸读大学时候的笔记本,几十年后仍保存完好。我前几年保存在移动硬盘里的照片,因为搬家时摔了一次,完全毁坏了,但是我家里小时候的相册却能几十年没有事情。

所以今天数据存储固然比过去更加方便,但是可靠性却大为降低。硬件坏了你还可以花钱再买,数据丢了,你就再也无力回天了。数据对我来讲是最宝贵的东西,无数血与泪的教训后,让我开始深入思考,怎么样才能让我的数据长期安全的保存几十年甚至终身?

可以用光碟么?

光碟是最廉价最受欢迎的介质,他们本来设计寿命是 10-20 年的,而一般情况你不要指望你光盘上的东西五年后还能正常读出来。即便一些号称长期保存百年以上的光盘,寿命也会由于我们各种不当行为大大降低,比如,没法按要求的条件保存(放桌面上被阳光暴晒变形),不小心刮花光盘,在盘面上留下指纹或者手上的油脂,这些都会促进光盘表面化学成分变质,最终导致你的数据损坏。

可以用机械硬盘么?

这两年 HDD/SSD 技术进步很快,成本越来越低。8T 的 HDD 差不多只 1000 元人名币的成本,1T 的 SSD 也从过去的好几千元降价到 600 多了。HDD/SSD 都能组成阵列,用虚拟逻辑卷的形式跨越物理大小的限制,为你提供超大规模的连续存储空间。

然而当你想要维护更大规模的盘阵时,你基础硬件设施的成本会大幅上升,4路阵列和8路16路的成本完全不一样。同时更新换代快,我过去保存的几块 IDE/SATA 接口的硬盘,今天我已经没有任何可用的设备来读取他们了。

遗憾的是,不管是 HDD 还是 SSD 他们都不能长期可靠的保存数据,每年有 1% 的概率由于磁场变化造成 HDD 数据损坏,这个损坏率会随着硬盘寿命逐年变大。而 SSD 的寿命比 HDD 更短,同时他们还会受到温度的影响,如果长期处在40度以上的工作温度,二者的寿命都会减半。

可以用 raid 么?

Raid 能再你一块硬盘损坏时照样帮你保证数据不丢失,这也是常用方案之一,但是 raid 就万无一失了么?并非如此,因为硬盘设计寿命相同,一起买来的同一个品牌的硬盘,经常要坏就几块一起坏,我就试过两块 raid1 在不到 24小时的时间里先后坏掉。

同时民用电源各种不稳定,烧电器的经历大家都有过吧?由于 raid 下面几块盘都是接在一起,如果碰到电源问题,一个击穿,就全部都坏掉了。

可以用云存储么?

云存储是成本最高的选项,最便宜的百度云 1TB 的大小每年要 200元。然而把数据交给云服务商是风险最大的事情,百度会随意扫描你的照片,我同事曾经传了个身份证扫描件到百度盘上,然后马上删除了,结果第二天百度盘就给他推荐 “证件钱包”服务。我另外一个同事好几 T 的视频放在百度上,全部被替换成“净网公告”:

再者网龄稍微长点的人都有共识,网络服务是不可靠的,不管是过去的各种免费空间还是几年前的各种网盘,说关闭就关闭了,有的给你备份一下,有的连备份机会都没有,一纸通知,说关就关。你很可能一段时间没登陆网盘,没留意到通知,而再登陆时就发现数据没了。

所以网盘只适合保存一些,临时的,非关键数据,比如电影这些,看完一遍丢了也就丢了,而关键数据想要长期保存的话,网盘是风险最大的地方。

可以用大容量 U 盘么?

U盘或者移动硬盘的出现让我们比过去方便很多,但一般 U 盘都是有擦写寿命的,寿命往往比 HDD/SSD 更短,同时容易携带也就意味着容易损坏,物理损坏,或者因为太小了,放在哪里就忘记了,“丢U盘”想必大家都试过。家里有小孩更是,我的几张 SD 卡,被我儿子当积木玩了两天,就再也读不出来了。

除去物理损坏外,各种使用不小心(比如频繁插拔,忘记安全弹出),也容易造成 U 盘/移动硬盘的损害。尽管你很小心的用你的u盘,结果拿给家人搞点啥,几下可能就用坏了。

有无办法终身保护好自己的数据呢?

各种办法尝试了好多年以后,我开始思考,一些国家档案馆动辄保存上百年的资料,他们是如何做到的呢?再这些过程中,物理纸张可能老化,损坏,丢失,连墨迹也都可能淡化。他们的保存方法有什么值得借鉴的地方么?

然后我花了一个多星期的时间调研传统档案管理的各种:方法,制度,原则。研究完后受到了不少启发。。。。

想要长期保存数据,其实是一个成本问题,你愿意花多少钱和精力来做这件事情,决定预算以后,你不能依靠某一种单独的媒介来想着存进去就一劳永逸,而应该设计属于你自己的备份流程,靠流程来保证数据安全,比如下面几个点供你选择参考:

第一:明确可靠性等级,即数据分级,核心数据,重要数据,普通数据,可丢失数据。不同层次的数据对可靠性的要求是不一样的,对应的方法也不一样。

第二:格式转存,特别对于媒体数据,有损图片:JPG->BPG 基本能够清晰度不变但是尺寸变为原来 1/3,无损图片:PNG->FLIF,基本又能减少一半,如果你是 BMP/TGA 等老格式,直接转为 FLIF/BPG,马上让你空间缩小十倍。音视频数据也可以用更先进的编码器进行转存,这样你的空间占用至少能省一半出来。但是不要用一些太偏门的格式,避免几年后没有合适的程序读取。

第三:使用好一点的介质,都是 DVD-R,便宜的有 1-2 元一张,贵的有 80-100 元一张,区别就是质量,硬盘也分监控盘,企业盘还是消费盘。如果手头不是那么紧张,尽量使用质量好点的介质来保存你的数据。

第四:定期转存,不管放什么介质里,都需要定期检查,修复,活动介质可以靠一些自动脚本来转存,非活动介质需要手动进行。

第五:重要数据至少存三分,热数据(工作集),备份,备份的备份。

第六:备份方案根据数据重要度进行区分,哪些数据只需要 raid 备份,哪些数据除了raid外,还需要定时冷备到另外一块物理硬盘?哪些数据还需要定期刻录光碟?

第七:尽量地理上多地冗余,即便家里地震了也可以从异地恢复出来。

第八:尽量把文件直接放在文件系统上面,而不是再弄一个打包文件把一堆文件打了包再存,当介质发生故障时,打包文件很难恢复,而直接放在文件系统上的文件相对容易恢复一些。

。。。。

补充:

关于磁带,主要个人玩家玩起来门槛有点高,同时磁带照样会受磁场变化影响损坏数据,而且磁带和磁盘一样容易“掉磁”,所以长期用磁带保存数据一般都要放在防磁柜里。门槛太高了,以前用了好几年磁盘,不管是 2.5寸 还是 3.5寸,三天两头就坏掉一张,让我对“磁”的东西真的没多大信心。

关于 DVD/BD ,有机/无机刻录盘,档案盘,千年盘(M-DISC)和硬盘的专业比较:

硬盘和光盘的存储数据寿命哪个更长、更可靠?

还有一篇超详细的介质比较,连任天堂卡带都拿出来分析了:

Data storage lifespans: How long will media really last? – StorageCraft

Loading

About skywind

Putty 本无树,MinGW 亦非台
This entry was posted in 随笔 and tagged . Bookmark the permalink.

23 Responses to 如何长时间保存重要数据?

  1. wndleo says:

    现阶段最稳的感觉还是千年盘(M-DISC)

  2. temple says:

    有没有考虑过用CEPH,MINIO, IPFS 等方式存储?
    让机器去管理流程?
    或者用区块链, 使部分数据产生价值, 来驱动让更我人存储更多有价值的数据放在他们的存储空间中?

    • skywind says:

      IPFS 的经济模型有缺陷,节点会倾向于为访问量高的数据提供服务,因为这样收入更高,必然会导致一些访问量低的,甚至零访问量的数据没有节点愿意搭理,这个问题 IPFS 是很难解决的。再就是,IPFS 这一套经济模型访问数据要花钱(它的建议是向别人提供服务抵消这个费用),这是有问题的,现在到处都是免费访问的数据,个人完全没有足够动力去花钱找 ipfs 看数据。所以 IPFS 这类东西还是谨慎的观察吧。CEPH/MINIO
      从用户角度和大型磁盘阵列差不多。我这篇文章核心不是推荐大家一个什么一劳永逸的存储方法,因为没有任何一种存储方式是可以让你高枕无忧的,所以要靠可靠的流程来保证数据安全。

  3. skywind says:

    @wndleo
    严格的讲 M-DISC 作为档案级光盘还是不错的,不使用化学涂料来存储数据,但是需要注意的是蓝光的 M-DISC 曾经出现过同一批次的碟片在两三年后,同时坏掉的情况,你看我上面引述的文章。

  4. 假一罚十 says:

    真的很麻烦,我想用一句英语表达我看完之后的感受
    WCNMGB

  5. 王奥 says:

    因为`awesome-cheatsheets`追根溯源到Blog,首先感谢你创建的Repo,已Star。关于这篇文章比较具有普适性,我想简单分享下自己的看法。

    1. 讨论的主题要区分是`个人`还是`企业`
    2. 成本预算是多少

    针对个人我的总结就是一句话,培养良好的备份习惯,其次是不断提升认知理解备份对自己的价值
    – 1级数据,我会通过Dropbox,Evernote,Google等做实时云同步
    – 2级数据,使用移动硬盘,百度网盘等
    – 家庭NAS,云存储,区块链,无论以后技术怎么更新,敏感数据记得加密后再备份

    企业备份也没有太多好介绍的,大部分流程应该还是这样
    1. 按照业务级别设计,做到实时同步,异步同步,分布式存储,同城异地灾备
    2. NBU等软件或软硬一体机作为核心备份架构,也可以上云如Amazon S3/Google Cloud Storage
    3. 备份介质按磁盘,磁带,光盘等划分
    4. 定期验证备份数据的有效性(重要)

  6. eyesfrog says:

    韦老师的 wordpress 用了哪些插件啊,为什么加载这么快?

  7. skywind says:

    @eyesfrog
    就用了个:WP Fastest Cache

  8. 123 says:

    很认同这个观点:没有任何一种可靠的存储方式,要靠可靠的流程来保证数据安全。本人是做业务安全的,很看重流程,想从这点上谈一下,既然没有任何一种可靠的存储方式,也就是说你不能保证数据所在的介质永远安全,那么这其中会存在一个问题:如何保证原始母数据的完整性?就是用来操作的源头数据,介质一下损坏了还好,直接把备份数据拿过来,只损失一点,假如遇到坏道、掉电等那种悄无声息的部分损坏,时间一长备份里也都覆盖了则为时已晚,仔细想想这种概率还是蛮高的,Raid不能保证误操作,也不能确定其它来源等,所以需要一个闭环的操作流程来尽量保证原始数据的完整性,我想应该这样:重要数据先批量做个HASH,每次变动前先校验一次,没有问题的话再操作,变动结束后也要校验一次,确定变动的只是那几个目标文件,然后紧接着再做个HASH,之后根据自己习惯将文件连同HASH文件一并备份到另外的介质上,最好多个备份、多个时间点、多个地点,最后在不同介质上做一次校验,虽然麻烦但每个步骤都很有必要,这样做可靠性会提高很多,也无关乎存储介质的稳定性了。Windows下可以用http://code.kliu.org/hashcheck/,macOS/Linux下两行脚本就能搞定。

    另外我从KCP了解到你的,觉得思路很赞,希望能和你多多交流。

  9. Stephen says:

    三体中给出的解决办法是刻在石头上

  10. nius says:

    购买云服务器+多云,可以解决私有和可靠问题
    1. 直接从亚马逊、阿里云、百度云、华为云等地方购买OSS这种静态存储(而非网盘产品),只要不做公开服务,理论上云厂商不能访问你的数据,或者至少不能修改
    2. 多云解决单一云服务关闭的情况,以及云服务本身的可靠性
    不过这也仍然是一个成本问题。最近也在想着这个问题,例如搞一套开源客户端出来,用户自己去买类OSS服务,填写key之后自动同步或者上传

  11. timeLock says:

    直接搭建一个私人hadoop集群,集群机器有一部分放一定,通过网络连接。校验,自动迁移,分片,异地全在里面了。多省事儿 ~ ~

  12. timeLock says:

    Hadoop – hdfs,是一个分布式文件系统,数据在里面是多份存放的(可以设置份数),集群间机器通过网络连接,你可以把你的机器放在一个地方,也可以放在多个地方,只要有网络,这个集群就是一个整体。自带校验,数据块坏了会自动迁移修复,不需要人为管理校验,物理机只要不一起挂掉,也没有关系。现在企业基本都用这套系统存储海量数据。

  13. mints says:

    三体不是说了嘛。。。靠石头雕刻啊。。。

  14. 淘花 says:

    磁带备份路过

  15. dc1998 says:

    很牛掰

  16. coolzoom says:

    感觉可以考虑将一大部分东西开源存放到github,重要的东西就云盘和本地盘同步

  17. zhoulujun says:

    个人建议,备份到百度网盘,微信企业盘,这些都有5T的空间,一般足够用了。然后,自己买个监控一盘,分文件,tar zip 备份。又快又好。

  18. zjhken says:

    那么, 似乎使用固态硬盘定时通电就能实现永久储存了

  19. Alan says:

    @zjhken
    每次通电时间多久呢?

  20. magictomagic says:

    苏美尔石板?

  21. magictomagic says:

    @magictomagic

    也可以存到引力波里

  22. lihua says:

    本地+同步盘。本地设备定期开机与同步盘,比如 Dropbox OneDrive 之类的同步盘进行同步,同时出现本地磁盘损坏与同步盘停止服务的概率还是比较小。

Leave a Reply

Your email address will not be published. Required fields are marked *