Portable Homelab - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
deetz
V2EX    宽带症候群

Portable Homelab

  •  
  •   deetz 2022-06-15 15:14:40 +08:00 3023 次点击
    这是一个创建于 1243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求概述

    近期回国,要在国内呆一段时间。在国内期间虽然有一个常驻地,但一方面很多计算和网络设备在行李里,一方面也会在不同的地区到处跑跑,还有刚回国期间的超长隔离,需要搭建一个 homelab 环境来满足移动时最简单的网络需求和一些软件需求。

    网络需求包括:

    1. 能够在有有线网络的情况下提供无线网络接入,或者在没有网络接入的情况下,使用 4G modern 提供无线网络接入。
    2. 使用一些特定的邮件和搜索服务:虽然各家的 app 越来越封闭,但是搜索引擎还是获取信息特别是文信息最重要的渠道。
    3. 连接学校的 VPN 网络获取文献:这个比较诡异,直联 VPN 可以建立连接,但是实际上因为速度太慢,处于不可用的状态。因此,需要在上级设备中进行网络加速。
    4. 提供基本的去广告和防火墙服务。
    5. 能够提供基本的冗余和稳定性,也能够提供给家人使用。

    在软件上的需求如下:

    1. 需要一个 python 环境,可以跑一些简单的自建服务。
    2. 需要提供一个 R 环境,可以跑一些简单的定时代码。
    3. 以上的两个环境最好都能够有一个 web editor, 这样可以通过 ipad 进行编辑,也可以在笔记本在做其他工作的时候进行一些简单的任务。
    4. 能够支持 docker ,快速搭建所需要的服务。

    解决方案

    All-in-one (放弃)

    可能最为方便的解决方案是一个 all-in-one 的小主机。如果采纳这个方案,则首要使用 ESXi 搭建多台 linux 虚拟机,在其中布置多个服务。预计需要虚拟 2-4 台机器:一台 openwrt 。一台 linux 作为 Rstudio server ,一台 linux 作为 code-server 和 python 环境,一台 Linux 跑其他 docker 环境。Rstudio 和 code server 也可以考虑以 docker 容器的方式运行。现在比较合适的机器是使用 N6005 处理器的 PN41 或者 NUC11ATKPE 。

    这个选择的优势在于:

    1. 性能同其他的方案比起来有相对的优势。
    2. 一体化程度非常高,插上电源线即可马上使用。
    3. 我手上有剩余的 16gb 笔记本内存和一个 128gb 的 ssd 硬盘,可以利用。

    但是也有不少劣势:

    1. 价格很贵,至少需要 1000+RMB 购买机器,还需要购买无线网卡。
    2. 虽然性能好,但是 N6005 是 11 代处理器。在 12 代处理器已经发布的时候,并且小核有着非常大的提升,这并不是一个特别好的选择。
    3. 比较折腾,特别是 ESXi 可能对特定硬件需要寻找并安装订制驱动。
    4. 这套系统家属也需要使用,冗余不够(属于伪需求啦)。

    利用手头设备的分离式方案 (现在的方案)

    最后选择了利用手头的设备做了一个分离式的方案,这个方案硬件上由以下部分组成:

    • GL-MT1300 (既有)
    • Raspberry Pi 4B ( 4gb 版本,既有)
    • 华为 4G modern (电信版本,既有)
    • R4S 套装( 4gb 版本,新购入)

    其中有三件是既有设备,R4S 则是新购入的。

    GL-MT1300 是原厂定制化 openwrt ,没有安装任何插件,仅仅作为主网关和 AP ,提供给所有设备使用。Raspberry Pi 4B 使用了新的 Raspberry Pi OS (64-bit) lite ,主要负责跑 docker 容器。R4S 则安装了 openwrt ,并安装了诸多插件,作为旁路网关使用,供有需要的设备使用。华为的 4G modern 则在有需要的时候作为网卡接入 GL-MT1300 。Raspberry Pi 和 R4S 用一个双头 24w 的 USB 电源供电,而 GL-MT1300 使用了自己的电源。

    在整个这套解决方案有些脱裤子放屁的感觉,特别是在网络需求方面。GL-MT1300 本身可以通过修改插件的方式的安装需要的配件。Raspberry Pi 4B 也可以以 docker 容器的方式来运行一个 openwrt 实例。但是最后还是选择了三个分开的方案,除了爱折腾外,原因有三:

    1. 因为 GL-MT1300 性能太差,在安装插件后遇到了很多的问题,网络不稳定。
    2. Raspberry Pi 4B 的 docker 容器运行 openwrt ,没有 openwrt 原生运行稳定和延迟小。
    3. Raspberry Pi 用 docker 容器的方式运行 openwrt 经常出现 CPU 占用达到 50%以上的情况,基本无法顺利地运行负荷较重的其他 docker 应用。

    相较之下,R4S 在原生运行 openwrt ,在相似的网络负载的情况下,CPU 尽管性能弱于 Raspberry Pi 4B ,占用只有 5%左右。从这个意义上来说,完全可以用更便宜的 R2S 来代替,体积还会更小一些。

    这套系统组装之后,肯定没有 all-in-one 的解决方案优雅,但有以下优势 /胜在折腾:

    1. 能够很快分离,给不同的情景使用。比如 Raspberry Pi 可以通过 usb-c 有线连接 iPad ; R4S 可以单独拆出接入家庭网络作为旁路网关使用。
    2. 虽然旁路网关会降低速度,当主要的网络更为稳定。
    3. 在应急情况下所有设备都可以通过 USB 移动电源供电。

    另外,买了一个 20 元左右的软质包,可以将所有的线材和设备进行收纳,方便移动。

    其他

    Raspberry Pi 4B 上没有选择自己编译 R 和 Rstudio server ,而是拉取了一个以 Jetson Nano 中的 R 开发为基础,移植到 Raspberry Pi 的镜像。地址在: https://github.com/pinei/edgyR-pi

    这个环境下的 R 的版本在 4.0.2 ,使用 https://mac.r-project.org/benchmarks/ 的代码进行 benchmark ,单核性能同 14 年前的酷睿处理器接近。所以跑一些简单的代码可以,就不用想着来做主要的 R instance 了。

    8 条回复    2022-06-17 18:00:06 +08:00
    jjxtrotter
        1
    jjxtrotter  
       2022-06-15 18:23:52 +08:00
    标题看成 Por*ub 是不是没救了
    banmuyutian
        2
    banmuyutian  
       2022-06-15 18:25:41 +08:00
    @jjxtrotter #1
    +1 我第一眼也是
    tutugreen
        3
    tutugreen  
       2022-06-16 01:14:48 +08:00 via Android
    ESXi + 大小核,不知道调度如何(

    另一个方案(

    要不上云,性能无忧,推拉包快,用的都是最新硬件,免维护,可以打打快照,出问题概率小。

    不用的时候关机,付个存储费,1000+RMB 其实可以用挺久了。

    本地就做个组网,或者收个便宜的 5G 手机,还能开 WIFI6 热点,Root 后能走 VPN 。
    zer
        4
    zer  
       2022-06-16 10:58:55 +08:00
    R4S 刷 OpenWRT ,用自带的 Docker 的话,是否能满足呢
    Reficul
        5
    Reficul  
       2022-06-16 11:57:36 +08:00
    All In One 倒是一次配置之后就比较简单,搬家过几次只要最前面的 PPPoE 网络拨号密码改下。但是如果各种设备组网,搬来搬去设备间网线插来拔去的就很麻烦。

    BTW:上云最简单
    guanzhangzhang
        6
    guanzhangzhang  
       2022-06-16 12:44:06 +08:00
    上云,你和云上 vpn 打通
    deetz
        7
    deetz  
    OP
       2022-06-17 17:59:33 +08:00
    @zer 不如用树莓派了,性能还更好一些。
    deetz
        8
    deetz  
    OP
       2022-06-17 18:00:06 +08:00
    @guanzhangzhang
    @tutugreen
    是的……但是在计费这块我还是不太放心,自己没有太好的追踪订阅的习惯。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2601 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 07:35 PVG 15:35 LAX 23:35 JFK 02:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86