为什么要用家用NAS
去年年底,我搭建了一台家用NAS服务器。我用它来存放视频漫画等数据资料, 创建一些空间消耗大的虚拟机,备份笔记本电脑系统。 有了NAS,资料可以给家里面所有设备使用(比如多台iPad,手机), 可以跑一些消耗大量时间和空间的应用(比如虚拟机和下载), 生活工作方便许多。
NAS硬件选购
我选购的是N54L,主要是考虑到性价比。 设备买回来之后,发现做工不错,拓展性也很好。
我把内存加到12G,对于服务器来说,内存越大越好,尤其我这种希望使用虚拟机的情况。
硬盘选择的是:一个SSD,一个服务器硬盘。 SSD用来安装系统,用来保证系统执行速度。其他资料和动态数据目录都放在服务器硬盘上面。
N54L有4个硬盘位,方便拓展,到时候我会选择用RAID5方式, 因为在保证资料安全性的同时,能够有比较大的空间利用率。
系统平台
考虑了一系列操作系统,包括FreeNAS,群辉等,我最后还是选择了Ubuntu Server, 因为这是我最熟悉的系统,并且我会装好多实验工具,有一个专业的服务器平台更好一些。
系统设置了自动更新,我写了一个脚本,当需要重启的时候发消息通知我。
分区我考虑了一下, 最后还是用lvm和btrfs结合的方案,没有搞懂zfs如何和lvm一起工作。
服务搭建
外网访问
首先需要让外网可以知道自己家的IP地址,我用noip来自动更新域名。
外网访问家里的内网,需要给NAS装一个VPN系统。l2tp和pptp都对网络有要求(IP层允许ESP,PPP协议), 安装的时候调试了好久,最后还是选择了softether,看起来比较简单一些, 并且可以外网配置。 VPN访问自身服务器有问题,不能同一个网卡出入,最后我还是购买了另外的一块网卡,用来提供给VPN使用。
防火墙
因为家里无线路由的开放性,服务器提供的服务都设置了密码,并且用防火墙ufw限制了开启的端口。
下载
考虑各种下载方案,最后我选择用webui-aria2,结合迅雷离线, 迅雷离线插件ThunderLixianExporter。
如果是电影等通用资源,用迅雷离线快速下载,然后用迅雷插件通知aria2下载回本地。 非常见资源直接丢链接给webui-aria2慢慢下。
timemachine备份
因为OSX的timemachine会占用全部的磁盘资源,我专门做了一个分区。 按照这里的教程搭起来服务就好了。 有的时候备份会提示已经占用磁盘,需要重启一下netatalk服务。
文件服务器
考虑了http,ftp,net,dlna,各种第三方的media server,最后发现还是samba好用, 渲染视频音频的操作还是交给客户端来做吧。
格式转换
网上下载下来的东西格式比较多,手机上面看不是很方便,我用avconv来统一把视频转换成mp4的格式(视频h264,音频aac)。同时为了方便预览,我写了脚本,自动给所有视频创建一个gif的预览,然后做一个网页,可以快速查看它们。
监控
我直接给服务器装了New Relic,它会自动通知我磁盘空间使用率,以及宕机状况。我也装了munin,但是用不太到。
虚拟机
我对VirtualBox比较熟悉,安装了命令行工具,然后再装上web前端phpVirtualBox。
创建了虚拟机之后,我可以设置端口映射访问虚拟机,或者用VirtualBox的远程桌面功能。
web安全
所有通过http访问的服务,我全部都改成了https,保证传输安全性。采用自授权, 自授权需要写host域名,我自己定义了一个nas的域名(比如local-nas-server.pc),然后增加到自己电脑的/etc/hosts,地址就是nas的内网地址。
备份
NAS的重要资料我都备份到云平台上面,不重要又大的资料(比如电影)就不管了。系统的配置一定要写脚本定期备份,不然丢了就好难找回来。
待实现
以后有时间可以买一个摄像头,实时监控家里或者门口的情况。