家庭NAS方案-硬件篇

家庭内部是否需要一个服务器是一个因人而异的问题。如果是一个摄影爱好者,喜欢看电影,手机不离身,电脑来回换,就需要一个能够集中安放这些媒体文件,离线自动下载同步的服务器了。在本文中,我将详细的介绍一下自己DIY这个家庭服务器的主要过程。由于硬件直接使用了惠普的GEN8服务器,软件相关的内容将在下一篇中详细介绍。

我的家庭需要就是一个网络存储设备(NAS),主要用于离线下载,用于连接媒体播放器(树莓派+OpenELEC),几台电脑数据集中存放和同步(包含苹果电脑的时光机同步),若干个移动设备,提供科学上网服务等。

正如标题所说,这里说的是家用网络存储服务器,所以我们在本文中探讨的内容也只会涵盖家庭用户(不是办公室那种可靠性要求的客户)。对于重要的数据(比如我有两百多G的照片)并不是放在这个服务器上就万事大吉了,重要的事情说三遍:多多备份,多多备份,多多备份!千万不要迷信服务器是绝对安全的,唯一安全的方法就是在多个地点,不同的硬盘里面把重要的数据都保存几份。

服务器的选择

曾经在万能的马云家花费不到200块买了一个迈拓的MSS第一代,里面那块三星的160G硬盘在服役8年后依然还在7*24的运转着。通过这几年对MSS的使用,也使我更加明确了我所需要的家庭NAS可能面对的主要问题

  1. 硬盘容量,原有的160G硬盘对于现在动辄几个G的电影来说实在是捉襟见肘。对于家庭用户,需要对家庭所有NAS的潜在用户所需要的硬盘容量进行一下简单的统计然后才能规划所需的硬盘容量。
  2. 硬件性能和操作系统的支持,人工增加内存的MSS1也只有128M的内存。CPU是一个博通的内置MIPS指令集的处理器。能够在这硬件和内存上稳定操作系统只有OpenWRT了。这样就严重的影响了能够使用的软件数量,以及同时能够运行的进程数量。
  3. 稳定和能耗,家庭用户基本上希望NAS是在角落天天运转而无需操心的一个黑盒子。市面上其实来有还能找到很多二手的服务器,非常的便宜,同时也满足前面几条要求,唯一不满足的就是能耗(其实来还有噪音)。找一个7X24运行,而且比较省电的服务器是必要的。
迈拓的MSS
DIY迈拓的MSS曾经也是一种乐趣

告别了不到了两百块的MSS,我们现在能在市场上找到更多更好的NAS硬件解决方案。在性价比和灵活性之间拿捏是一个很困难的事情。如果动手能力还不错,可以选择和我一样使用CHH上最为热门的惠普GEN8服务器。

HP ProLiant MicroServer Gen8
HP ProLiant MicroServer Gen8

通过德国网站在促销的时候海淘,基本上通过花1450块人民币你就可以得到了这样一个基本上满足我所有硬件需要的服务器了:

  • 为7X24小时运行而设计的专业服务器,ECC内存,双千兆网线接口,体积小巧,而且是HP的牌子,最重要的是外观实在是讨人喜欢啊,自己DIY真是也做不出这么好看又逼格的服务器来。
  • 支持4个硬盘,自己还可以在光驱的位置上加一个硬盘。对于家庭用户余量充足。GEN8还内置了B120i的磁盘阵列控制器,支持RAID0和RAID1模式,如果真的有需求就算是赚到了。
  • 有iLO远程管理,很多人说这个有啥用?没有管过服务器的人真是没有感觉啊,像是NAS这类服务器基本是不会去接显示器,键盘的,那你准备怎么安装操作系统,出了问题怎么查看?iLo可以帮你在一台电脑浏览器上直接操作和查看服务器,就像是直接操作服务器硬件一样。
目前只用了两块硬盘,其他的两个硬盘位等待以后扩展
目前只用了两块硬盘,其他的两个硬盘位等待以后扩展

不过乞丐版的GEN8的缺点也是显而易见的

  • CPU只是赛扬G1610T(双核,主频2.3G),对于负载的运算和数据加工时有些 不堪重任。不过对于NAS来说,主要的任务就是下载,上传文件,无需进行太多的媒体文件加工,这个配置对我而言还是足够的。
  • 内存默认只有2G的确是很让人困扰的,如果要运行GUI的系统,如果要安装虚拟操作系统,起步至少8G。不过,我为了提高自己对服务器操作经验(其实来就是没钱),还是选择了不升级内存,只用终端操作,不搞虚拟操作系统。

如此而来我能得到的一个硬件基础就是:一台稳定的电脑,但只支持安装一个Linux,剩下的花样就要靠软件来解决了。不过目前看来我的服务器负荷率通常都在百分数,即便是所有NAS功能全开,几个电脑进行拷贝同步操作,CPU负荷也不会超过60%,内存更是只需要不到500M,大部分内存通常都在做系统缓存。

服务器架构和操作的安装

应为定位是一个服务器,稳定就要压倒一切,在GEN8服务器上安装操作系统对我而言只有一个选择CentOS,原因是这个是Redhat的官方复刻版,基本上除了官方的服务,一切功能,稳定性,可靠的更新都是一样的。这也是惠普网站推荐的操作系统之一。如果对Ubuntu比较熟悉,也可以尝试Ubuntu server版本,不知这款服务器对这个操作系统的支持如何。不过如果看过这篇文章的后续-服务器软件篇,就知道操作系统真是没有太大的关系了,现代的Linux系统真是太灵活了,我们可以汲取各个发型版本的优点来为我所用。

安装操作系统的可以参考iLo安装操作系统的介绍。注意:在这个服务器的安装中,我没有使用GEN8内置的RAID功能,因为不论0模式,还是1模式,对于家庭NAS来说都是有点极端的。

正确设置STATA控制器是安装Linux的必须步骤
正确设置STATA控制器是安装Linux的必须步骤

请通过iLO在BIOS中使能AHCI,否则是无法成功安装操作系统的。据说使用AHCI方式后主板无法检测硬盘温度,会造成GEN8风扇转速升高,进而噪声巨大。网上的经验是升级iLO4的固件。不过经我本人验证,倒没有出现这个问题,而且机器是放在客厅角落的,白天更本听不见,晚上能感觉到一点声音不过和硬盘本身的噪声,以及其他设备的声响比较起来也不是很突出。

为了充分利用GEN8 的四个硬盘位,在操作系统安装中,我才用了如下的硬盘分区规划

Boot root swap Home Media
500M -Disk1 80G – Disk1 2G – Disk1 500G – Disk1 其他

也就是说除了主要目录分了第一块硬盘大概600G容量,其他的容量和第二块硬盘全部空间,都通过LVM(逻辑虚拟卷)变成了一个分区。LVM可以实现跨物理硬盘来管理一个逻辑分区,而且这个分区是可以调整大小,更换其中的物理硬盘。也就是说如果以后添加或者更换硬盘,就可以通过LVM来灵活的复制,扩充这个分区,而不用影响系统程序安装的分区了。另外,LVM也让多块硬盘在系统中成为一个连续的空间,无论文件或者目录大小都不会出现一个分区被占满,别的分区却空着的情况了。如果以后添加硬盘,只需将新硬盘制作成物理卷,然后加入到虚拟卷中。

除了LVM之外,还有一个选择就是ZFS-号称终极文件格式系统,这种文件格式系统也可以实现跨硬盘的文件管理,而且这种逻辑卷的管理和文件格式管理是一个整体的,不像LVM那么分裂。非常出名的NAS操作系统FreeNAS系统就是用ZFS来实现的多磁盘管理。不过需要注意这个文件系统的支持在主要Linux发行版本中都是测试性质的,稳定性有待商榷。

另外需要注意的是CentOS默认使用XFS来格式化分区,在安装系统之前,我现在虚拟机上演练LVM时发生过XFS无法解决的问题,但Ext4则没有问题。所以在此次安装NAS的时候,我毅然决然的选择了Ext4格式。虽然网上对两者的性能对比非常多,不过对家庭NAS来说,这些微小的区别基本上是可以忽略不计的。

操作系统安装完毕后,和硬件相关的内容就可以暂时先搁一下了。我会在接下来的一篇中详细介绍一下如下的内容

  • 操作系统的设置和优化
  • NAS主要软件和架构
  • 通过Docker来虚拟化

发表评论

电子邮件地址不会被公开。 必填项已用*标注