网络寻租

Programmer, Gamer, Hacker

家用服务器整体策略思考

| Comments

很多重要资料因为性能,经济程度,私密性的原因,不适合存在云端网盘,因此需要做一个家庭内部的存储解决方案,同时也有很多应用需要本地跑,我整理了一下各种情况下的解决方案。

首先是需求类型:

  • 存储看剧
  • 视频下载
  • 存储和访问家庭照片和视频
  • 科学上网
  • 外面连回家里
  • 全屋无线网络
  • 视频监控
  • 智能家居
  • 跑各种网络,应用实验,虚拟机

为了满足这些需求,需要选择对应的设备。

路由

首先是路由类需求。因为网络需要很稳定,设备应该根据稳定需求分割开。 一般来说是这样:

1
2
3
4
5
主路由 - 光猫 - 外网出口
主路由 - 无线核心路由ac/ap
主路由 - 旁路软路由
主路由 - 高速路由 - 电脑,服务器
主路由 - 监控路由 - 监控主机,摄像头
  • 主路由负责汇总所有网络,需要保证稳定性,其它工作交给其他设备。拨号上网也可以主路由来做。
  • 无线系统另外设计,汇总到主路由。
  • 科学上网方案很复杂,最好一个单独的设备来做,可以用软路由,也可以家庭服务器的虚拟机。
  • 大多数应用并不需要很高的速度,1G就差不多了,只有少部分可能需要10G/2.5G,比如视频或者数据编辑拷贝。可以另外用一个高速路由+SFP光纤的解决方案。
  • 监控系统独立性比较高,可以另外设置一个监控路由,连上所有的摄像头。
  • 如果连接网口过多,主路由也可以拆分成多层层级。
  • 部分子系统,比如监控,访客无线网络,保证安全性和性能,可以划分LAN来进行分割。

存储和运算

然后是存储和运算系统。我觉得需求可以划分到以下几类:

低功耗服务器:性能要求不高,但是需要24小时跑,比如一些定时触发的任务,本地的一些小服务,音乐系统什么的。可以选择树莓派或者最新制程的笔记本。

机器的功耗往往是根据制程来,CPU的TDP只是用来算最高功率的。所以对功耗有要求的机器要选择最新制程的。 树莓派功耗低一些,但是性能差很多,体积上是优势。如果是一些小应用,笔记本太大了。

高性能服务器:跑虚拟机,运算,解码什么的。可以需要的时候开机,平时关掉。直接主流CPU就可以了,不需要去考虑买二手服务器,服务器优化的方向是保证性能的同时长时间运行的稳定性,和家用的需求(长时间低功耗,或者短时间高功耗)是不一样的。

nas存储:存储大量的数据。因为对稳定性要求很高,最好单独做一台设备出来。

存储对应的运算,比如电影解码服务系统emby,虚拟机,可以放到另外的机器里面,因为nas和运算或者解码对机器的要求是不一样的。网络带宽也足够支持存储和运算分离。

游戏主机:玩游戏。游戏需要针对性优化硬件,显卡专门针对游戏,功耗也高,我建议单独做一台机器。

如果机器比较多,可能还需要一个KVM系统来切换显示,成品ipkvm太贵了,可以用树莓派pikvm来代替。对于高带宽需求的显示,视频可以访问远端文件本地播放,游戏可以用steam link或者nvidia shield moonlight来进行远端串流,性能也还可以。

机器按照待机功耗分类(包含了整流的全系统功耗):

  • 嵌入式 0.1w
  • 树莓派 2w
  • 低功耗CPU:J5005, J1800 6w
  • 最新制程CPU笔记本:10w
  • 最新制程CPU台式机:35w

应用

硬件选择好了之后,就是需要跑的各种应用了,我现在的解决方案:

  • 远程连进家里:wireguard和ssh,外网路由器端口转发,ddns获得dns地址
  • NAS存储:truenas,优点是性能好,系统稳定,缺点是基于freebsd,不能跑虚拟机,只能另外用机器了。设置好samba文件共享,存储方案用raid0镜像存储,比较安全。另外需要找台旧机器也装truenas进行zfs镜像备份,放在别的地方,定时开机。
  • 低功耗服务器和高性能服务器:根据应用需要看看用proxmox虚拟机或者docker。
  • 视频系统:jellyfin,emby要钱还是用免费的jellyfin,我用的不多付费不是很划算。
  • 本地音乐:airsonic
  • 家庭照片和视频:photoprism
  • 下载:qbittorrent,百度云
  • 科学上网

家庭服务器的架构搭好了之后,使用上没啥特别的感觉,就是想要做什么的时候就可以用对应的系统,不需要很操心。

Comments