近期回国,要在国内呆一段时间。在国内期间虽然有一个常驻地,但一方面很多计算和网络设备在行李里,一方面也会在不同的地区到处跑跑,还有刚回国期间的超长隔离,需要搭建一个 homelab 环境来满足移动时最简单的网络需求和一些软件需求。
网络需求包括:
在软件上的需求如下:
可能最为方便的解决方案是一个 all-in-one 的小主机。如果采纳这个方案,则首要使用 ESXi 搭建多台 linux 虚拟机,在其中布置多个服务。预计需要虚拟 2-4 台机器:一台 openwrt 。一台 linux 作为 Rstudio server ,一台 linux 作为 code-server 和 python 环境,一台 Linux 跑其他 docker 环境。Rstudio 和 code server 也可以考虑以 docker 容器的方式运行。现在比较合适的机器是使用 N6005 处理器的 PN41 或者 NUC11ATKPE 。
这个选择的优势在于:
但是也有不少劣势:
最后选择了利用手头的设备做了一个分离式的方案,这个方案硬件上由以下部分组成:
其中有三件是既有设备,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 实例。但是最后还是选择了三个分开的方案,除了爱折腾外,原因有三:
相较之下,R4S 在原生运行 openwrt ,在相似的网络负载的情况下,CPU 尽管性能弱于 Raspberry Pi 4B ,占用只有 5%左右。从这个意义上来说,完全可以用更便宜的 R2S 来代替,体积还会更小一些。
这套系统组装之后,肯定没有 all-in-one 的解决方案优雅,但有以下优势 /胜在折腾:
另外,买了一个 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 了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.