大概6年前写了一些自己DIY NAS的文档,发表在newsmth.net上面。

过了好多年再修改一下之前的文档,发布在这里,供大家参考。


自己弄家用存储方面的东西算下来也有几年了。于是现在写点东西总结一下,也方便对这方面有兴趣的网友参考。希望大家看了之后能够少走弯路,造个适合自己的NAS。

基本有如下的内容:

  1. 什么类型的存储适合我?
  2. 硬体选型
  3. OS安装
  4. 基本配置
  5. 性能调整
  6. 总结与展望

1. 什么类型的存储适合我?

单机硬碟存储本来比较简单,但是随著家里设备的增多,各个设备间的文件共享需求就非常迫切,因此需要有一个能共享的存储设备。NAS这个概念就出来了。

NAS其实不是什么特定的东西,它只是一个通用名词,Net Attached Storage:通过网路进行访问的共享存储设备。你自己装个Windows共享一个目录,在网路上其他机器看来,你就是一台NAS。基本现在是台机器就能做共享,也就是能当NAS使用。

现在有很多提供成品的NAS,只要花钱买了,简单设置一下,就可以使用,那为何还需要自己打造NAS? 要解释这个问题并不是那么容易,NAS要考虑到存储容量,长时间运行,数据安全,功耗,性价比等等问题,另外日后的升级,维护也要考虑在内。要先将这些问题弄明白,才能免得以后出问题无法对应。

那有没有花钱就能简单搞定的方案?很遗憾,对于刚才说的那些成品NAS,那些设备初期入门可能很简单,但是一旦出现问题,你可能从此和你心爱的数据拜拜了。比如苍老师的全集可能就没了,这是多么悲催的事情!不过还好,苍老师全集大家都有共享,大不了自己再花时间下载,只要有链接,X雷的离线还是很给力,应该很快可以恢复这方面的数据。但是对于自己生产的数据,比如照片,文档,那就比较杯具了。

针对刚才提到的容量/及数据安全问题,多说几句。容量问题貌似比较好搞定,一旦容量不足了,解决方法大概如下几种:

  1. 添加购买新硬碟。
  2. 大容量硬碟替换小容量硬碟(机器的硬碟位有限)
  3. 删除数据

大家一般都会选择第一或第二个办法,至于第三个嘛,难道要我将自己辛辛苦苦混论坛努力回文才下载到的苍老师全集全部都shift+del? 那是办不到的!

因此,碰到容量问题时,就是买硬碟,添加或者替换。那实际上怎么操作呢?大家可以想像一下这个问题。

大家可能觉得问这个问题有点可笑,这不和将大象如何装入冰箱问题一样么?买硬碟,插到机器上,格式化,转移数据,拆掉老硬碟,GAME OVER。

可是... 你上面做的操作并不是原子操作,而是一系列操作,一旦出问题,往往很难回退到初始状态重新来一遍。比如,拷贝过程断电,或者以为中止,你需要重新来一遍。但是你不知道哪些拷贝完了。比如,拷贝完成后新硬碟跑几天后出问题,而老硬碟又删掉数据了,或者已经卖掉了...拷贝后发现数据读不出来有问题等等。是不是很烦?我估计现实大家也能碰到类似的情况。

至于数据安全问题问题,分为两层。一个是硬体层,一个是应用层。我们只考虑硬体中的硬碟问题,其他硬体问题不考虑。硬碟坏了,怎么办?比较简单就是两个或多个硬碟放冗余数据,也就是现在比较流行的RAID概念。一个硬碟坏了,可以通过替换硬碟恢复数据。貌似很不错的样子。

传统RAID的方案各种各样,比如下面几种:

  1. 软体RAID, 也就是通过OS层面实现的,比如Windows自己就有这个功能。在系统上看起来像是一个Raid设备,但是通过驱动实现Raid功能。
  2. 硬Raid, 纯硬体实现Raid,带电池的Raid, 就像raid,也有各种,Raid0, 1, 5, 6, 10等等。

想要弄明白这些东西的差别也很头疼。

这些Raid系统经过多年迭代,进化了好多年,现在很多伺服器都在使用这种方案,因此性能及安全性都应该没啥问题。问题在于企业伺服器是运行在机房中,有著稳定的供电,企业级的Raid硬体,固定的维护人员等等来保证这些数据安全。而我们个人用户往往不具备这些条件,所以简单的Raid方案可能就是日后数据丢失的根源。Google一下就会发现很多人出现数据丢失问题。以至于现在很多人怕了,还是坚持单盘保存数据,自己管理数据。

至于为何Raid容易导致数据损坏,简单来说,对于Raid5, 有一个Raid5 write hole。可以看wikipedia的解释。

en.wikipedia.org/wiki/R

看看zfs的开发者解释为何选raidz, 里面有说raid的问题。RAID-Z

总结一句,就是非企业级Raid,不用比用还长命百岁。

至于应用层备份,就是我们普通的一个数据放两个地方,防止硬体全坏了,或者人为误操作删除。至于我以后介绍的ZFS怎么带给你全新的数据管理,可以接著往下看。简单一句就是随时的Snapshot保证人为误操作。不过对于整体硬体损坏,比如火灾水灾,这个还需要考虑异地备份,这些不细说。

9102年了,我们需要有个自动化的东西帮我们解决这些麻烦问题。而不是事事靠自己人工来打点。


推荐阅读:
相关文章