我的HomeLab-其一
前言
我此前因为欠下领导一些人情,需要借用VITS和RVMPE跑一些GAN的训练与推理。大部分是对人声的提取,当然也有一部分是对白噪音的提取和音效制作的实验性探索。这也使我有了动机去建造一个HomeLab。除开领导的需求外,我也需要有一些自己的项目对吧?例如游戏开发需要Stable Diffusion做背景的风格统一,或者是本地经过RAG微调的LLM用于辅助游戏内文本创作。这些都需要一套允许我跑机器学习的平台,支撑我去行动。
根据冯诺伊曼的理论,计算机事实上可以简化为计算、输入、输出三个部分。从计算机组成原理来说,IO性能成为了制约处理器...
扯远了扯远了。来说说具体需求吧。
存储空间,存储训练数据与模型数据,顺带存储个人资料库(照片、视频、音乐等等)
计算设备,用于做具体的计算与部署。
网络设备,便于配置且易于使用的网络环境,包括防火墙等安全策略。
安全设备,寝室以及后续租房所需要的网络录像机
终端设备,便于使用,以我个人偏好而言是全UNIX的环境。
以上基础上,保持后续的可扩展性
基于上面的这五个大点,我今天先讨论我的思路。具体的折腾日记,以后再做讨论。
存储
大纲
存储空间我一开始设计时分为热数据、冷数据、热备份和冷备份。
热数据是即时即用的数据,IO密集。大部分情况下是模型转储和样本裁切的临时数据。也包括虚拟机运行的镜像。
冷数据则是最近一周内会用到但并不频繁读取的数据,比如iPhone的照片备份,或者是类似OneDrive这样的日常文件同步。这样的数据并不占用过高的IO,但依然需要一定的空间去存储。
热备份则是一块定时写入,平时偶尔读取的存储池,对性能要求相对更低。
冷备份则是长时间存储,并不读取或写入。
解决方案
热数据
我打算购买闲鱼上的DIY 2.5寸NAS,配合Intel的企业级老SSD组RAID-Z1,六盘位,通过万兆网络连接到核心交换机。
不过这个方案很贵,硬盘应该要1600左右,NAS本身也需要1200元。遂放弃。但后续升级又很可能加上这样的选择。
那如果开启一下幻想时间,我会如何选择?
我想我会后续给这六个盘位塞入960GB的企业级固态,并给予16GB的运行内存用于内容缓存。虚拟机、AI训练均运行在这台NAS之中。
冷数据
我选购了一台DS220j。
群晖系统在高可用性做的很好,一颗小小的Arm处理器基本上能够满足大部分的需求。从数据存取到多媒体服务,基本上都能满足。搭配群晖专用的客户端与Quick Connect,直接省去了同步文件的烦恼。
我购买的是一台二手群晖,只花了600块。如果对性能要求不高,可以买更老也更便宜的j后缀版本。
存储池方面我选择RAID-1,以实现冗余。当然,数据本身会通过rsync同步至热备份的存储服务器上,以保证数据可用性。
热备份
热备份因为对性能要求不高,用的是一块j1800主板+蜗牛星际的解决方案。C款,前面板很好看。
操作系统选择了Unraid,我希望后续有更灵活的硬盘配置的选择。
原机主给这台机器上了群晖还洗了白,不过我不吃群晖这一套,也就没去折腾了。
这台机器平时是关机的,我在ikuai里设置了远程唤醒,这样在需要的时候,就可以WOL了。也许有一天我会写进脚本里,让CI需要这台机器时WOL?
冷备份
冷备份我购买了一台准系统,Quick PC+H110主板,电源200w。
硬件上给这台机器配备了SAS直通卡,LTO5磁带机以及蓝光刻录机。软件上安装了Windows Server 2022 Datacenter版。
这台机器平时也是关机的。我只在需要的时候启动它。同样的,通过WOL进行唤醒。
我把过去的音乐创作的工程全都存进了LTO5磁带中,并且寄回了老家。希望过个二十年,这些数据还能保存完好。
不过就目前来看,这台机器偶尔开启的原因是我想听CD,而又懒得去够Mac mini的光驱...
计算
大纲
计算的话,肯定是用机架式服务器了。可惜目前我并没有这么多米,于是将之前的那台AiO安装上Esxi,就继续用了起来。
后续的话,我打算上一批Arm服务器。Ampere的Arm工作站都有比较丰富的PCI扩展,且成本远低于x86方案。对于NVIDIA显卡而言,Arm也有良好的驱动支持。
再之后就是参考大部分已有的炼丹农场的做法,但目前而言并没有这样的条件。所以下面着重讨论我目前的方案。
解决方案
AiO的硬件
CPU:QTJ2,Comet Lake架构,6C12T。
内存:DDR4,2666Mhz,双16,总共32G。
为什么只有CPU和内存呢?因为存储按理说应该放置在NAS上,通过万兆网卡存取。但可惜的是,目前并没有这个资金升级到万兆网络。
后续升级,也不会再使用QTJ2这样的CPU。QTJ2的内存控制器不稳定,内存条不能在一个较高的频率运行。QTJ2的PCI通道数量也不够用。毕竟是LGA1151针脚,PCI全靠主板南桥拆分。
AiO的软件
之前一直用PVE。后续因为硬件直通上出了问题,我改用了VMware的方案。
事实证明我是对的。VMware的兼容性好了不止一点半点。除了板载网卡无法被识别外,其他都不是问题。
有趣的是,这台机器有一套博通的PCI网卡。我也因此没有被板载网卡的问题所困扰。
VMware的NFS也有一定问题。我还需要多研究研究。
其他计算设备
网站
我换下来一台MacBook Air 2015,正好可以用于搭建网站。
我给那台笔电安装了Linux Mint,然后禁用桌面环境。之后再安装需要的Web服务就好了
我偷懒用了宝塔面板破解版。因为也怕破解版面板有后门,于是在后续的网络设备里额外加了一层防火墙。
顺带一提,我除了Halo外,暂时还没有部署其他动态站的计划。也许某天会部署CubeGarden的?这个后续我也会单独拿一篇文章讨论。
这台MacBook平时是合盖的状态,我后续有空也会专门出一期文章来讨论如何部署。此外,这台机器还肩负了打印机服务器的任务。
WAF与安全
就本站开张才4天,已经有不少的扫描器光临本站了。
我专门买了一台J1800机器,配备了8GB的运行内存。这台机器主要运行的就是雷池防火墙与JumpServer。
网络
路由与防火墙
正如上文所言,我担心这些破解版面板带有后门,于是我在原有的路由器基础上,增加了一层防火墙。
先说说原有的路由吧。
路由器
闲鱼上买的一台J1900小机器,双网口,安装了iKuai路由系统。这台路由器管理内网,并负责基础的行为监控。
但iKuai的云防火墙对配置要求高,且一些功能需要付费使用。如果我需要查看详细的网络通信状况,还是离不开一个更专业的防火墙系统。
J1900机器只有两个网口。我买了两台云管理交换机,以扩展其他设备。
寝室内其他室友偶尔也要来蹭网,拒绝又不太好意思。对于这种情况,我选择给他们单独划分一个vlan。这时一台这样的交换机的优势就显现出来了。
防火墙
防火墙则是1037u的双网口工控机。搭载OPNsense系统。
这台机器我目前仍在使用中。等后面我有了一个完整的体验,我会单独出一篇文来讨论。
OPNsense下游是iKuai路由,上游则是鲲鹏的CPE,C8-660
监控与安全
这一块比较简单。一台海康威视的录像机,4通道。再加上两台水星的网络摄像头,走的Wi-Fi连接。
硬盘我找了一块压箱底的日立1TB机械盘。
本来还想让海康威视录像机挂载NAS的iSCSI作为备份,但考虑到这条千兆线还要跑其他NAS,我就放弃了。
终端
Mac
我有两台Mac,一台Mac mini,一台MacBook。
Mac mini用来做日常维护的工作。MacBook则是办公。
但事实上两台机器的性能差别不大。Mac mini唯一优势便是有1TB的外接硬盘存储,而MacBook没有。
因此对我而言,Mac mini更多时候是一台CD播放机+双口交换机+转储NAS。也许这样一台机器作为NAS也能算合格。
MacBook则渐渐成为了我的主力机。
PC
我有一台搭载了Vega56的Windows电脑。游戏机而已。
不过我最近越来越少打游戏了,因此也就放在桌面上,显得我是个游戏玩家。
事实上我玩的一大部分游戏,Mac也能玩。因此这个问题也就变得可有可无。
部署
后续每一台机器的部署思路与实操,我都会单独拿出文章讨论。
因此这篇文章只是作为大纲,介绍一下目前的情况。还请关注后续更新。