返回

Homelab功能概览

人活着就是为了折腾

起因

认真的 流水账式的记录:

在数月内接连两次把所有服务(除了zfs pool)推倒重来之后我终于意识到仅仅凭借两张白纸,一个啥也没有的txt文件和我微弱到可以忽略不计的脑力是不可能记住之前一次次更改的所有细节的。不过正好,既然自己已经有了一个博客页面就索性把大概的服务啥的都放在博客上面就完事了 – 也正是因为这个我萌生了写一篇东西记录折腾经历的想法。

想法很好,下次别想了

主机配置

硬件

主节点 Ryzmox:

  1. 大概30🔪淘到的先马 im01
  2. ebay 3900x
  3. ebay 包浆 1080ti
  4. 打折买到的 EVGA 750W sfx
  5. 朋友换下来的msi b550 迫击炮
  6. 128G DDR4 3200
    (开始魔幻)
  7. pcie x1 转换器 + 2x intel 千兆口
  8. pcie x1 4口 sata 转接
  9. pcie x4 6口 sata 转接
    (然后)
  10. 1T nvme ssd
  11. 2x 2t raid0 2.5’’ hdd
  12. 3x 8t raidz1 3.5’’ hdd
  13. 5x 1t raidz1 sata ssd
  14. 3x 512 - 1t 大小不定的sata ssd

最后加上路由器,交换机,还有一台有4口i225的工控机运行hyper-v和pfsense (有两个节点暂时不用了)

至于为啥一定要用i225,还是有问题的N5105,问就是我还是太年轻了

proxmox,EXSi都试过了,原生Debian啥的也试过了,但是只有在hyper-v里跑的虚拟机才不会忽然崩溃

什么?为啥不直接bare metal 跑pfsense算了?

这不是怕到时候牵一发而动全身吗 因为懒

软件

还有啥好说的,基本就是Proxmox和hyper-v。EXSi也用过但是总感觉完全浪费掉一个iGPU用来显示卵用没有的黄黑管理页果然还是太奢侈了 (贫穷)

服务

关系图大概是这样:

  1. 粉红色的是独立硬件,绿色的是VM,橙色的是容器,黄色的是池,蓝色的是实体/虚拟网卡
  2. 主节点内部,虚拟机外部两个虚拟设备主要负责VM/Container的网络连接以及除个别(两带GPU windows虚拟机,测试pfsense及truenas本身)服务外的定期快照及备份
  3. 存储基本上是分为三个,一个是host本身及测试用pfsense,windows(无GPU),加上truenas; 一个是truenas本身提供,所有vm的储存池,备份池,smb的共享文件夹等; 最后一个是带GPU windows 虚拟机自己的系统盘和数据盘(这个windows所有的磁盘都是物理磁盘)

      PS:懒得找 没找到vm和应用的图标,凑合看吧

你们一定要信我啊

网络

总的来说,上图的网络大概就是大概是这样:

--- title: 好像也没有多复杂是吧 --- classDiagram direction LR class Campus-WAN{ DHCP } class quad-i225-box { WAN : DHCP LAN : 10.200.2.x/24 Server: 10.200.0.x/24 PC : 10.200.3.x/24 } class Ryzmox{ vmbr0: 10.200.0.3 vmbr1: 10.200.1.1 vmbr10: DHCP vmbr11: 10.200.11.1 } class Managed-Switch{ } class Switch{ } class Router{ } class iso-Router{ } class IoT-Devices{ smart plug smart home etc } class Wireless-Devices{ phone tablet } class Downstream-Device{ laptops Rpis } class TrueNAS{ vtnet0: 10.200.0.2 vtnet1: 10.200.1.2 } class VM{ } class test-VM{ } class ads-filter{ void: 10.10.10.1 } class Tailscale{ } Campus-WAN -- Switch iso-Router -- IoT-Devices Switch -- "WAN" quad-i225-box quad-i225-box "VPN" -- Tailscale quad-i225-box "pfBlockerNG" -- ads-filter quad-i225-box "PC" -- PC quad-i225-box "Switch" -- Managed-Switch quad-i225-box "Server" -- Ryzmox Switch -- iso-Router Ryzmox "vmbr1" -- "vtnet1" TrueNAS Switch -- "vmbr10" Ryzmox Ryzmox "vmbr0" -- "vtnet0" TrueNAS Ryzmox "vmbr0" -- VM Ryzmox "vmbr11" -- test-VM Managed-Switch -- Downstream-Device Managed-Switch -- Router Router -- Wireless-Devices

然后就如图所示,VPN是用在工控机的pfsense里配置的,广告过滤也是用了pfsense的pfblockng – 最开始的时候我也用过用树莓派跑pihole,但是自从正儿八经换了主节点之后就打算直接让工控机解决所有过滤了。 反正pihole这么直观的图表给我我也不会天天去查  主要是懒

对了作为对比这是我室友的:

classDiagram direction LR class Campus-WAN{ DHCP } class PC{ } Campus-WAN -- PC

数据存储

主节点的关系图大概是这样:

--- title: 我感觉我这辈子都画不好图了 --- classDiagram direction LR class TrueNAS{ } class Ryzmox{ } class local{ } class fast{ --5x 1T raidz1 } class sshare{ --1x 512G stripe } class hgst{ --3x 8T raidz1 } class zero{ --2x 2T raid0 } class pi-NFS{ Rpi OS } class SMB{ datasets: jack, movies, music, doc, image, etc } class unprotected{ } class backup{ proxmox VMs snapshots and backups } class VMS{ proxmox VM storage } class iso{ proxmox iso storage } class win-boot{ C: } class win-data{ D: } class Win-with-GPU{ } class win-efi{ } class other-VMs{ } Ryzmox --o "Hosts" TrueNAS Ryzmox -- "OS storage" local Ryzmox "Backup to" --o "Backup dataset" hgst Win-with-GPU -- win-efi Win-with-GPU -- win-boot Win-with-GPU -- win-data TrueNAS -- fast TrueNAS -- sshare TrueNAS -- hgst TrueNAS -- zero VMS "stores" -- other-VMs VMS "stores" -- win-efi Ryzmox "Hosts" -- Win-with-GPU fast "Provides" --o VMS sshare "Net Boot" --o pi-NFS hgst "Provides" --o "Multiple" SMB hgst "Provides" --o iso hgst "Provides" --o backup zero --o unprotected VMS "NFS" o-- "VM storage" Ryzmox backup "NFS" o-- "Scheduled backup" Ryzmox iso "NFS" o-- "iso storage" Ryzmox

同样的,这是我室友的数据存储

classDiagram direction LR class PC{ C D E } PC

代码存储

代码存储就直接用了Gitlab CE,加上另外一个专门用来跑Runner的VM。 之前学cloud computing的时候也弄过docker registry实例,但是后来发现没什么卵用就删掉了

不过我必须说一句,tailscale加上自建的Gitlab实例是真的不错,好多东西不想放公用的直接放自己的实例里面然后share给别人就行  单纯是想折腾

容器

容器就有意思了,我最开始搞的时候所有的东西都是乱七八糟的放在2-3个VM里面,然后统一用portainer (swarm?) 进行管理

但是后来觉得实在是脱裤子放屁多此一举,都放在一个机器上面了HA还有什么用?于是就全部装到了一个VM上,看着省心管着也省心

感觉我总会干出什么一拍脑门的事情,就好像这个:

这么一堆里面最主要的除了用来管理的portainer外也就是Heimdall (landing page) 还有guacamole (远程桌面)。其余的基本上都是上次服务器配置的历史遗留,比如用来测试的librespeed,配置了一半的pterodactyl,从来没有配置好的guafana,uptime-kuma,写了两行代码就放弃的vscode,和基本就没怎么开过的思源笔记

哦,还有一个学长安利的dashy。就是我感觉还是heimdall用的顺手就没换

话说我之前还把两个树莓派装了portainer agent来统一管理来着,但是后来看到这两个东西除了在边上耗电之外我啥用也派不上就拿掉了

树莓派价格居高不下的时候我就应该卖掉的,血亏一个亿啊啊啊啊啊

说到底还是因为人太懒

客户OS

客户机就有意思了,主节点里面主要还是两个windows10 VM,一个带GPU一个不带,然后带GPU的用parsec,不带的用guacamole rdp连接

哦,还有parsec要在显卡屁股后面插一个欺骗器。我买的时候DP的卖完了就买了个HDMI的。如果不用的话其实问题也不大,但是可能就会和我一样花俩小时像个智障一样一边抓头发一边奇怪为啥驱动什么设备都不显示(实测)

至于用处,之前用来玩玩stable diffusion,现在的话就变成专门用来写代码的机器 – 原因还是我发现安卓平板加上parsec连这玩意儿就好像自己坐在电脑前面一样,方便的很,还不用带我那武林高手专用笔记本 – 就是字小了点

然后另外一台VM就纯粹沦为了 下载机 – 用来下载一些B站,youtube视频和 正经 Linux ISO之类,绝对不是因为我全走VPN的VLAN没设置好导致不能用transmission

折腾专用环境

暂时没有,但是之前图里面主节点内部的第二个pfsense实例就是干这个的,我pass了连到pcie 1x扩展器上面的双千兆卡进去,这样的花一个千兆口可以用作WAN,一个可以用作LAN,折腾一下网络的东西而不用担心把自己主pfsense节点搞崩了之后没网可用

远程访问

如上所述,主要还是用的这几个:

  1. Tailscale – 用来访问路由器后面的服务和子网设备
  2. guacamole – 用来访问vnc,rdp,ssh
  3. parsec – 低延迟远程桌面,需要GPU,访问带显卡虚拟机
  4. PIA – 主要用的VPN客户端,pfsense里面好像也有配置但是我有点记不清了 懒得找了

引用

好像也没什么好引用的。。。

总之万分感谢开源社区和各大佬在网上无私分享的资源

让我这个菜得扣脚的家伙也能弄这些东西出来

尾巴

总结就是反正学校宿舍电不要钱~

环保人士震怒



© Licensed Under CC BY-NC-SA 4.0
访问量 -    访客数 - 
>