← 返回

我的Home-LAB配置记录

前言

什么是Home-LAB?

Home Lab(家用实验室)是指个人或小型团队在自家环境中搭建的实验性计算环境,通常用于学习、实验、开发和测试各种技术、工具和服务。其历史可以追溯到计算机和网络技术的发展以来。

随着计算机硬件软件的快速发展,由于CPU、内存、硬盘等硬件设备的性能不断提升,以及操作系统、应用程序等软件的不断更新,HomeLab的热度逐渐增加。越来越多的的人用家里的PC搭建博客,购置专门的NAS用于存储观影、学习的视频,安装软路由系统实现虚拟上网…可见,Home Lab在如今的应用场景可谓相当广泛。

如何选择Home-LAB设备?

首先需要说明的是,HomeLab实际上只是一个概念,它不是一个具体的设备,而是一个搭建在个人或小型团队环境中的实验性计算环境。

大到一个机架式的服务器集群,小到一台安卓手机或者树莓派,都可以作为Home-LAB的设备。同时,其价格区间也比较灵活,从专业级的服务器设备的动辄几千上万,到洋垃圾的几十几百,都可以根据个人需求和预算进行选择。

Home-LAB的组成

Home‑LAB 通常划分为三个子系统:传输(网络)、存储(数据)与计算(算力)。

传输(网络)

传输子系统主要负责数据的传输和通信,对于单一主机,其内部的数据交换传输是很简单快速的。但对于多主机的情况或者客户端访问,通常会使用网络来进行数据交换和传输。

通常而言,根据不同的需求,需要不同的网络解决方案。

超高网络带宽需求: 如果Home-LAB需要快速处理大量的网络流量,对速率和稳定性有较高要求,那么就需要使用光纤以太网来确保数据传输的快速和可靠。光口传输可以轻松达到10Gbps以上的传输速率,满足超高的网络带宽需求。

2.5Gbps或1Gbps带宽需求: 对于正常家庭而言,由于大多数家庭的外网带宽通常只有1Gbps或者更高的2.5Gbps,因此在Home-LAB中使用1Gbps或2.5Gbps的网络是比较常见的。对于这种需求,电口以太网可以轻松满足。

高覆盖率网络需求: 对于类似手机、pad这类移动设备,由于其移动性和便携性,通常需要使用无线网络来进行连接。当前主流的 Wi‑Fi 技术有 Wi‑Fi 5、Wi‑Fi 6/6E 与 Wi‑Fi 7,它们的核心差异如下:

实际体验取决于环境与链路两端能力(速率由最慢端限制),并受信道干扰、距离与墙体衰减、国家/地区频谱开放(尤其是 6 GHz)等因素影响。

注意,由于网络传输遵循“木桶效应”,即网络传输的速率取决于最慢的链路,因此在Home-LAB中使用1Gbps或2.5Gbps的网络时,需要注意网络中的最慢链路,以确保整体网络的传输速率不会被限制。

存储(数据)

存储子系统主要负责数据的存储和管理。根据不同的需求有多种配置方案。

存储介质

存储的介质大致分为两种:机械硬盘和固态硬盘。

机械硬盘(HDD)基于传统的机械结构,使用旋转的磁盘和磁头来存储数据。可以长期存储数据,但是读写速度较慢。理论上,HDD的读写速度可以达到120MB/s左右。

固态硬盘(SSD)则基于闪存技术,没有机械结构,数据存取速度非常快。SSD的读写速度通常可以达到500MB/s以上,甚至更高。当然,SSD的使用寿命低于HDD。

两者的价格差异很大,SSD的价格通常要高得多,但是读写速度快。因此,根据个人需求和预算,需要选择合适的存储介质。

什么是RAID?

RAID(Redundant Array of Independent Disks,最初为 Inexpensive)是一种将多块硬盘组合为一个逻辑卷,从而在容量、性能和可用性之间进行权衡的技术。其基本手段包括:

常见 RAID 级别(简要):

实现方式:

关键注意:

计算(算力)

计算子系统主要负责数据的处理和计算,对于大多数Home-Lab来说,主要的计算模块是CPU。也是最重要的部分。

现代cpu主要有两种类型:x86和ARM,其中x86是最常用的类型,主要用于个人电脑和服务器。而ARM则主要用于移动设备和嵌入式系统。

选择CPU时,需要考虑以下几个方面:

对于一些特定的数据任务,例如视频转码,机器学习等,则需要考虑GPU。由于AI的快速发展,GPU的价格水涨船高。且由于家庭用户的算力需求一般不高,因此在Home-LAB中使用GPU时,需要考虑成本和性能的平衡。

我的Home-LAB配置

我个人的HomeLab配置由两台主机组成,其中一台安装了群晖系统,主要用于文件的备份和存储。另外一台主机则运行了PVE系统,通过多个虚拟机和容器来实现All In One。

群晖

我使用了一台早年的联想笔记本作为我的群晖主机。该笔记本的配置如下:

这台笔记本寿命已经有接近12年了,在性能不足以运行Windows 10的情况下,我选择了将其改造为NAS,添加了一块3.6TB的机械硬盘,并在其上运行了大量的服务。

但由于其性能水平放在当下真是过于垃圾,在高负载情况下,系统稳定性大大降低,甚至出现多次突然掉线崩溃的情况。因此,在我配置好新服务器之后,我将群晖上的所有服务迁移到了新服务器上,且仅保留了原有的442G的HDD,将3.6TB的机械硬盘迁移到了新服务器。现在这台主机仅作为相册和重要文件的定期备份服务器使用。

PVE服务器

我的新服务器依然使用了一台旧笔记本,但要比群晖主机的配置要高得多。该笔记本的配置如下:

这台笔记本的性能水平在当前依然可以满足大多数的使用需求,所以我选择了将其作为我的PVE服务器。

在这台服务器上,我运行了多个虚拟机和容器,来实现All In One的功能。具体配置如下:

服务类型配置说明
Ubuntulxc容器用于运行一些项目,如PanSou、nginx、DDNS等,同时也是唯一的网络出口
iStoreOS虚拟机用作旁路由,提供网络代理、广告屏蔽等功能
fnOS虚拟机主要的存储服务器,直通两块HDD,且划分了64G的SSD作为缓存
Windows11虚拟机备用Windows系统,用于一些需要使用Windows的软件,显卡直通

Ubuntu

Ubuntu容器是主要的服务容器,运行了很多项目和服务。且作为git服务器,储存并管理我的所有项目代码。

部署的项目和服务有:

同时,此容器也作为内网的唯一网络出口,通过ddns-go实现将公网ip暴露到域名aaa.bbb.com上,然后通过edgeone cdn和cloudflare cdn回源到此域名,将多个网页服务进行反代,提供公网访问。

这样操作之后,通过设置回源防火墙,仅允许来自cloudflare cdn的流量回源,从而保护了我的服务不被恶意攻击。

iStoreOS

iStoreOS作为旁路由,主要负责提供网络代理、广告屏蔽、虚拟组网等功能。

网络代理使用OpenClash实现,配合sub store,实现聚合多个机场订阅,并提供完美无泄露的分流规则,实现完美的上网体验。

广告屏蔽使用AdGuard Home实现,配合自定义的广告屏蔽规则,实现全网广告屏蔽。

虚拟组网使用Tailscale实现,借助子网路由功能,只需要在旁路由上配置一次,就可以实现所有设备之间的内网通信。出门在外,只需要通过tailscale组网,并配合网络出口功能,就可以实现与家庭内网的通信和科学上网的功能。

此外,iStoreOS上还部署了一个内网测速服务,用于测试内网的网络速度。

fnOS

fnOS作为主要的存储服务器,直通了两块机械硬盘,并划分了64G的SSD作为缓存。

在fnOS上,也部署了多个服务,如下:

网络

为了获取公网ipv6,我将光猫桥接,使用中兴的AX3000pro巡天版作为主路由,全千兆网口,wifi6支持。可以基本满足网络需求。在主路由下,直接连接了群晖主机。

此外,为了实现网络全覆盖,我在书房部署了一个中兴的运营商定制小方糖路由器,全千兆网卡,wifi5,可以实现最高866Mbps的网络速率,同时,其可以和中兴路由器mesh组网,实现全屋wifi覆盖。同时其价格也很划算,50元2个。由于我的手机(iPhone14ProMax)的最高无线速率也就千兆出头,所以wifi5也完全够用。而需要高速网络的PC和PVE服务器则通过网线连接,实现全千兆速率。

由于开启了ipv6,在绝大多数情况下都可以成功打洞使用p2p直连,所以外网的访问延迟也很可观。我现在所在的城市是山西省孝义市,在太原测试网络延迟甚至可以达到30ms以内。

通过itdog测试的网络延迟

使用itdog测试全国延迟,可以发现,基本都可以保持在50ms以内。

本文采用 CC BY-NC 4.0 许可协议,转载请注明出处并保持非商业用途。