上周五 NAS 系统盘挂掉后一个周末都没有过好,一边忙着备份数据,一边要忙着整理系统应用和配置。早以前除了云端同步数据曾经出现过一两次数据丢失的情况,本地保存的数据还没有出现过管理的问题,系统会用 Clonezilla 全量备份,笔电数据则辅以同步工具 Dropbox 和自建的 NextCloud,平时丢数据的可能倒是比较小,但唯一疏漏的 NAS,因为硬盘不是一次性买全而是分了几次,所以从一开始就没有规划好存储与备份,而系统的酷狼 4T 盘可能经过几次家里停电,SMART INFO 出现警告的时候也没有来得及备份,所以造成了从周五开始突然系统盘只读状态,无奈只能立即开启 rsync 手动先将系统盘中的数据备份到其他盘。等到周日把损坏的系统盘送修之后,是时候来思考一下如何管理本地数据了。

经过这一次的“事故”,倒是没有丢到多少数据,但是却是一件非常闹心的事情,去年花了一年的时间渐渐的逃离了云端服务,将照片从 Google Photos 离线到本地,将音乐从网易云音乐离线备份了一份到本地,想想这一切非常美好,没想到发生这么一件事情,所以也渐渐感受到本地 RAID 的重要性,对于重要的数据在本地一定要有一份备份。

数据划分等级

原来我对数据的划分非常模糊,一股脑的备份笔电磁盘中所有数据,当然这种不会出现漏备份某些文件的情况,但这也是成本比较高的一种做法,不仅备份数据量大,并且备份的过程也比较长。而经过这次的事故,渐渐的对需要备份的数据有了一定区分度,由我产生的文件,比如写下的文本(包括笔记,博客,TODO),拍摄的照片视频,代码文件,配置以及数据库文件(当然绝大部分代码都是 git 在另外有备份),不过还有一种非常容易忽略的就是,创建的比如音乐歌单,读书列表,当然大部分情况下都是对应的服务中,网易云音乐就曾经莫名其妙地弄丢我一个歌单,这些”文件”都需要提高备份级别。

数据分类存储

所以简单的来说数据需要分类处理,依据重要程度不同需要备份的方法也可以有对应不同,就目前我个人遇到的情况而言。

备份方法

代码等文本使用 git 备份

对于纯文本的内容,适合 git 来备份,commit && push 就能够至少在两地有备份了。Git 的分布式特性天然的适合文本的存档和备份管理。

适合 git 来备份的有:

  • code
  • dotfiles
  • rime config
  • idea config
  • software config

Dropbox NextCloud

对于云同步工具,适合同步二进制文件,比如文档或者图片

  • 常用的 word, ppt, pdf 等
  • 常用照片
  • 自动脚本备份的网站数据,或者 SQL
  • Joplin 数据
  • 各种二进制导出的配置
  • 日常需要同步的文件

Hard Drive backup

对于需要备份,但是查看次数非频繁的文档,适合单独使用硬盘来备份,比如:

  • 一段时间拍摄的照片,视频等
  • 整理的电子书
  • 音乐
  • 电影,电视剧

对于媒体文件,尤其是较大的电影,电视剧,图片,等等适合使用单独的备份盘来备份。

数据重要程度分级

对于我个人的使用场景而言,有这几类的文件需要重要备份:

  • 系统配置,以及 vim, tmux, zsh 等等配置
  • 个人数据,包括文本的,媒体的
  • 个人整理的笔记
  • 自建的应用数据库

对于不同的数据备份方法照上面提到的方法也不尽相同。

根据作用隔离磁盘

对磁盘的管理,对数据的种类进行划分,对不同的数据进行不同的备份处理。

如果磁盘存放的是个人数据,则要尽量减少磁盘的写入,尽量在备份的时候对磁盘写入,从而延长磁盘的寿命,如果可能这部分个人数据尽量使用 RAID1 或者 RAID5,做到即使有一块磁盘故障时数据不会丢失。

而另外一类场景则是下载电影,当使用 BT 或者 PT 时,磁盘会有大量的读写会大大减少磁盘的寿命,所以我的建议是单独使用一块磁盘作为下载盘,有对磁盘的大量不间断读写时都存放到该磁盘,并周期性对磁盘进行维护,比如使用同步工具定时将数据移动或者拷贝到另外的磁盘中进行保存。

网上有一种说法,说家用 RAID 实际用途并不大,这句话并不完全正确,如果家用 24h 挂机 PT 的话,如果数据是写到 RAID5 中,那么实际上三块磁盘都在工作,无形中就同时降低了三块磁盘的寿命。如果是常年 PT 的话,还是根据个人事情情况来选择最合适的方案。