硬件方案回顾

方案 典型案例 优势 劣势
成品NAS 威联通、群晖 etc. 1. 简单,开箱即用
2. 软件服务支持完善,有成熟的客户端
1. 高价低配,PC的价格,手机的性能
2. 没法上虚拟化,只能跑Docker
3. 定制程度高,没有自由度
成品服务器 HPE Microserver Gen 8/9/10+ 1. 企业级整机服务器,稳定性杠杠的 1. 企业级整机服务器,价格也杠杠的
2. 配置自定义程度一般,性能高一点钱包就吐血
服务器硬件自组 永擎/超威 服务器主板 + 自组硬件 1. 服务器级硬件,稳定性值得信赖
2. 自定义程度高,配置灵活
1. 服务器级硬件整一套还是不便宜
2. 电费也不便宜
消费级硬件自组 捡垃圾 1. 极其灵活
2. 成本灵活
1. 稳定性靠3分的打拼和97分的天注定

HomeLab Ver 1 搭建

时间:2018 ~ 2020

配置的具体型号已经不是很清楚了,大概几个重要的参数列在下面

硬件 型号/参数
主板 工地散装Intel主板
CPU 主板自带Intel J1900
内存 工地散装DDR3 4G
系统盘 工地散装SSD 8G
网卡 主板自带1G网卡
数据盘 希捷 3TB HDD
电源 工地散装1U 180W电源

其实就是标准的星际蜗牛矿难机。学生嘛,啥都有,就是没钱,整机连机箱带硬件200块捡垃圾捡回来的

还别说,虽然从内而外透露出一股子不靠谱的气息,但是还挺好用的。毕竟俗话说得好,8000块的电脑宕机了,肯定是电脑辣鸡。800块的电脑宕机了,肯定是我辣鸡。

配置其实也还行,在上面直接安装了CentOS 7,手开了Samba + NFS服务,然后Docker跑网盘(NextCloud) + 视频墙(Jellyfin) + BT下载(Transmission),也能跑的一溜一溜的

可能是期望比较低(基本没有期望),硬件意外的稳定。设备丢宿舍7 * 24H工作,人去实验室或者去外面,基本都能访问到。

也确实会有宕机,但是也不是那种看心情的宕机(机魂不悦)。而是有明确复现路径:

  • 运行的Jellyfin服务,使用显卡硬解视频的时候,大概率宕机。
  • 但是软解一点毛病没有。

所以估摸着,就是核显有点毛病。不过200块,要啥自行车

总而言之,这套200块捡回来的机器,从研究生阶段顶到了工作,实在是属于远远超出预期

HomeLab Ver 2 搭建

时间:2021 ~ 至今

这套属于工作后搭建的了。毕竟捡回来的洋垃圾,跑了仨服务,就已经被榨干了。干脆就执行了整机大升级

硬件 型号/参数
主板 AMD B460 ITX主板
CPU AMD Ryzon 5 4650GE Pro
内存 光威 DDR4 32G
系统盘 Asgard 256G NVME SSD
数据盘1 希捷 3TB HDD
数据盘2 西数 8TB HDD
数据盘3 光威 512GB SATA SSD
网卡 主板自带1G + 主板自带WiFi + Intel 2.5G x2
电源 台达 1U 256W电源
UPS APC BK650

主要考虑点:

  • CPU:
    • 节能的前提下,性能尽可能高:毕竟7x24h开机,能耗高了电用不起
    • 最好支持ECC内存:ZFS搭RAID需要,不然容易损坏数据(事实证明这条没啥用,内存买不起,也不用上RAID)
    • 带核显:总不能整独显吧
  • 内存:
    • 虚拟化可以超卖CPU,但是没法超卖内存
    • 支持国货,让三星的仓库不再有洪水火灾
    • 开发机 8GB(Clang内存大户) + Docker主机 8GB(GitLab内存大户) + NAS 8GB(硬盘数据缓存),这就24GB打底了,还不上个32GB?
  • 系统盘:
    • 需要装Host OS,以及放Guest OS的系统盘,所以在控制成本的情况下可以适当整大一点
  • SSD 数据盘:
    • 后来加的
    • 因为HDD的iops实在拉胯,用来做开发机的Home目录时,VIM配置这样的超多小文件读取,可以卡一万年
    • 所以还是需要一块SSD来存这些meta数据,低频访问的大文件就进HDD
  • 网卡
    • 2.5G网卡,刚好可以跑满单HDD的连续读写
    • 自带Wifi,还能直通给OpenWRT虚拟机,无缝科学上网
  • 电源:
    • 你也不想你的电脑物理意义上的爆炸吧?
  • UPS:
    • 你也不想你的数据物理意义上的爆炸吧?

这套下来差不多5000大洋,但是这个预算下,性价比确实不错(AMD YES!),稳定性也没啥问题,连续几个月开机工作,至今没有卒过。

HPE的MicroServer这个价格,就只能抱着2核奔腾回家了。或者群晖也就是上个J1900的进阶版本 – 还是弱鸡,哪里比得上我AMD Zen2的APU

总之,这套到现在都还在稳定运行,性能也没有拖过后腿,感觉还能再战20年

折腾之路

一个热爱程序的码农,总会想要自己的一个牛逼服务器,解决自己一些(臆想中)的牛逼问题。

研究生阶段一个偶然的机会,趁着矿难低价捡垃圾捡回来一台小蜗牛,从此开始了第一个丐版的HomeLab。到参加工作之后,硬件大升级,也踩了一堆的坑,故记录一下折腾之路。

这篇短文作为第一篇,先记录一下当前的状态,之后有空的时候,再分Topic逐篇详解。

需求分析

  • 为啥要自己搭建:
    • 不想被莫名其妙和谐数据,无论墙内外
需求方向 需求内容 需求原因 优先级
必备 科学上网 程序员的自我修养 P0
生活 Win游戏机 程序员的自我修养 P0
生活 NAS存储 需要存储大容量的视频&图片,多设备可以便捷访问 P1
生活 私有网盘 同步移动设备的数据,拍完照就可以存档到存储中 P2
生活 密钥管理 不用再去想密码 P2
生活 PT下载 下载电影 P3
生活 视频服务 需要带有视频墙,管理PT下的电影 P3
开发 Linux开发机 程序员的自我修养 P1
开发 VPN 墙内使用,可以随时在外安全地访问家中服务 P2
开发 Blog 假装自己很喜欢做总结 P2
开发 Git服务 方便管理自己产出的狗屎 P2
开发 ChatGPT代理 懒得在搜索引擎里屎里淘金 P2

软件架构

服务选型

  • 选型原则:
    • 够用
    • 省心
    • 能Hold住

业务服务选型

需求 选型 选择原因
科学上网 V2Ray 主流技术,部署和配置方便,入站出站的代理类型支持丰富
NAS存储 OMV 1. Base On Debian,自己能Hold住
2. 功能完善,符合需求
私有网盘 NextCloud 主流开源服务,方便搭建
密钥管理 Vaultwarden 1. 支持Bitwarden客户端
2. 最多3人用,没必要上重型的Bitwarden Server
PT下载 Transmission 功能够用且省心,各个PT站都支持
视频服务 Jellyfin 主流开源服务,方便搭建
VPN OpenVPN 开源易搭建,Client多
Blog Hexo + NexT 静态博客,省心还好看
Git服务 GitLab 功能完善,用习惯了
ChatGPT代理 go-chatgpt-api + chatgpt-web 目前看部署比较省心,功能较为完善

技术服务选型

  • 虚拟化还是容器?
    • 都得要:
      • NAS方案是一个完整的OS,且业务稳定性的要求比其他的服务要高(挂了PC就访问不到数据了,)
      • Linux开发机自己会尝试各种玩意,玩炸的可能性很大,得隔离开不能影响其他服务
      • 其他服务资源需求不高,单独VM隔离太浪费
    • 因此:
      • NAS和Linux开发机,需要VM级别单独隔离开
      • 其他服务容器隔离就行
需求 选型 原因
虚拟化方案 PVE 1. Base On Debian,自己能Hold住
2. 虚拟化特性和硬件支持完整
容器方案 Docker Standalone 业务服务之间也没啥联系,没必要上K8S之类的分布式方案
容器管理 Portainer UI友好,能上docker-compose的Stack,功能够用且方便

网络架构

硬件架构

方案选型

方案 典型案例 优势 劣势
成品NAS 威联通、群晖 etc. 1. 简单,开箱即用
2. 软件服务支持完善,有成熟的客户端
1. 高价低配,PC的价格,手机的性能
2. 没法上虚拟化,只能跑Docker
3. 定制程度高,没有自由度
成品服务器 HPE Microserver Gen 8/9/10+ 1. 企业级整机服务器,稳定性杠杠的 1. 企业级整机服务器,价格也杠杠的
2. 配置自定义程度一般,性能高一点钱包就吐血
服务器硬件自组 永擎/超威 服务器主板 + 自组硬件 1. 服务器级硬件,稳定性值得信赖
2. 自定义程度高,配置灵活
1. 服务器级硬件整一套还是不便宜
2. 电费也不便宜
消费级硬件自组 捡垃圾 1. 极其灵活
2. 成本灵活
1. 稳定性靠3分的打拼和97分的天注定

看了看自己的需求,发现:

  • 就自己用,稳定性要求没那么高,停机个几天也不是个事
  • 关键数据走冷备,其他的丢了问题也不大

就还是消费级硬件自组得了吧

自从研究生以来,已经很少写东西了。作为一个开头,还是需要写一点东西出来,记录一下自己的生活,也给自己更多的反思机会吧。

百阿

说穿了,就是阿里一个员工培训的活动。但是感觉收获最大的,一个是认识了更多的优秀的人,每个人都有自己的闪光点,甚至觉得自己就是个废物。而且这东西也是真的累。

在参加活动的过程中,也学到了很多东西。其实感觉这个活动就是一个war game,熟悉了很多做事的套路,不同岗位的人所体现出来的思维逻辑,确实是很不一样的。工作多年的产品,就是比程序员更能说,更能排出安排。

而且从行事方式上,看到的不同的思维方式,感觉对于工作中也有很多的触动。

认识的人

说实话,参加这个鬼东西,最大的收获不是看到了业务,也不是什么文化价值观的新理解,而是认识了很多不同的,各有特色的人。从他们身上,看到了自己很多需要改进的地方,以及未来努力的方向。

  1. 首先影响最大的就是博士。百技的时候也是博士当的组长,而且为人真的和善,也很真诚,虽然看出来是喝了酒才说的,但是也是直接点出了我时常逻辑混乱的点,说明不止我自己觉得自己思路不是很好。整个培训过程中,博士给我带来了两次很大的触动。

    首先就是,一起采访的时候,和店主打好关系,侃侃而谈,采访的思路也非常的清晰。他和小店主的交流就可以看出,其绝非只会读书的人,其社会经验就高出一大截,不仅有技术,还会和人相处交流。一般而言,小店主们的市侩性是最强的,很难突破他们的防备,获得他们的信任,从而听到他们的真话。自己遭的白眼也可以侧面反映出有多难。但是博士做到了,还做的很漂亮。这方面触动是很大的,虽然也没想好怎么去完善自己。

    第二点主要是,他对于批判性思维和逻辑思维的训练,简直就是醍醐灌顶。从工作以来就一直觉得,自己的逻辑思维能力不知为啥退化很多,思维非常发散,容易跑偏。包括现在写的时候也是,时常脑子里就蹦出其他的东西,然后原来的思维逻辑就被打断,然后就不知道往哪里偏过去了。然后虽然思维开始发散,但是也找不到发散的角度和规律,无法找到多个角度看待一个时期,导致思维混乱,缺乏逻辑。

  2. 三哥也是,整天笑嘻嘻的,给人感觉就是很有亲和力,如沐春风。虽然也不知道这种气质是如何培养的,但是不得不说,确实是感受到了领导力。而且做事的条理性也非常清晰,当小弟的时候,安全感和目标感特别强。这也是需要学习的一个地方。

  3. 还有两个最后夜谈的时候认识的小伙伴以及一个组但是很少交流的小伙伴。前者由于不是同一个组,其实一开始确实不是很熟悉,后者由于两个人都挺闷的,也很少交流。但是没想到最后给了这么真诚的建议,确实是非常的感动,有人理解,也有人担忧。

行事方式

怎么又当了不和谐的那个人

首先复盘一下,自己最后的时候的冲动。以前也有过冲动,和老师对着干,最后也确实没有拿到多少好结果,算是吃了一个闷亏。事后自己复盘,也是觉得,没有必要冲动,该怂就怂,圆滑一点。职场毕竟不比学校,真正的社会,不知道有多少暗坑等着,更应该把自己隐藏起来,不和大部分人,或者说权威对抗,留下把柄。

但是今天确实又冲动了一次,现在想想,最可能的后遗症,就是主管和HRG知道了并且产生了看法。这个确实是这样,挺有风险,不应该说,而且这个也只是自己的观点,肯定不是全部事实,只是部分的事实。毕竟,解决问题最简单的方法,就是解决提出问题的人。

但是就是有点忍不住。也不给自己找太多借口,就是还剩下一点热血,想对于自己看不惯的事情发出一点声音。我不想自己的时间被浪费在表演或者装作前途光明上面。还是没挨过社会的毒打。

现在回想一下,这么干的主要动机,主要是:看不惯睁眼说瞎话,不想使用二重思想,不想随波逐流。这么干主要的问题在于:事实不一定完整,盲人摸象,可能我刚好摸到了最难受的地方,忽视了其他角度,后面也确实有客满团队的小伙伴;方式不合适,或者说过于尖锐,也是小伙伴说的,需要使用更委婉的方式;过于袒露自己,其实可以看出来,老家伙们其实都完全看不透想法,也包括其中几个妹子,表象的行动和行为可能一个样子,但是另外一些事情上,可以看出背后的真实想法有可能完全不一样。自己还是太年轻,一眼就能看到底,这点非常不好。

只是,知道要有城府,和是否想有城府,完全是两码事。这种事情上的心态调整,不是那么容易。

工作规划制定

首先,先整理一下自己的问题。现在主要面对的问题,就是自己做事的时候,初上手一个课题/项目,容易混乱,找不着方向下手进行规划,如何找出关键问题节点,如何切分整个项目,化为一系列子问题。在碰到一些不确定性的问题时,就卡住无法继续整理下去,难以取舍,无法做出决策。

方法论其实都知道,按重要和紧急两个维度,对于事情进行切分。然后上手项目时,怎么规划工作,虽然之前也照着师兄的计划照猫画虎,但是这次看了三哥是怎么切分和规划的事情,感觉有些不一样的感触。

复盘整个项目,在整理规划的时候,其实最先确定的,就是展现形式。扪心自问,如果是自己站在那个位置,这个时候就会开始犹豫,是否两个形式都需要,是否需要其他形式,然后产生一次拖延。然后再确定形式之后,确定内容的时候又会开始犹豫,需要哪些东西进行内容的填充,如何安排主线。这个地方也确实产生了争论,但是也是很快敲定了方案。之后就是安排工作。

总结起来,其实就是在一个时间段内,对问题进行不断的切分。自己的问题就是在与,进行切分时,由于缺少对其利弊影响的分析,导致无法下结论。

因此,之后指定工作计划的时候,碰到可以产生分叉的地方,首先应该做的,就是罗列想到的方案,然后逐个考虑方案的影响面,获得决策依据,然后做出决策。因此,这里就牵涉到了自己的逻辑思维能力。

思维能力

这个部分主要就是博士所强调的东西,还推荐了一本书,《Thinking Fast and Slow》。

逻辑思维

虽然之前一直是以自己的逻辑能力为傲,但是现在越来越发现,自己的逻辑思维能力有问题。主要体现两点:说话时思维逻辑性不强,容易颠三倒四,所想无法顺利表达;事情做计划时,容易卡住,得不到一个迅速的决策。

这个事情,主要还是一直缺少对自己的训练,平时都是随便看看随便想想,观点看得多,而对于基础事实和内在逻辑链条看的比较少,因此自己的思维就浅了。用进废退,平时再看一些东西,需要多想一步,先从文字上的逻辑思维开始,在想事情的时候,将自己的思路画出来或者写出来,变成在手上看得到的逻辑。在落纸上的逻辑和思路开始在较少修改次数就可以到完备的时候,再尝试脱离纸面,直接将自己的思路通过语言表达出来。

批判性思维

逻辑思维还可以说是用得少退化了,但是批判性思维就是一直缺乏的。从博士的话看来,主要就是从定义出发,将一句话的语素进行划分,找出其“观点”和“事实”。其实从实践中,感觉这个划分本身,就是一次批判,需要将其中伪装成“事实”的观点找出来,考虑每一个语素的定义,将定义放置在各种可能的场景中,再推敲其定义是否成立。

其实感觉,就和自己的方案被怼一模一样,程序的边界case,就是需要考虑到每一行可能会运行在不同case中的代码,会有一些什么表现和影响,其表现是否依旧复合预期。

Summary

首先是认识了很多人,见到了他们身上不同的闪光点,照出了自己身上很多的不足。

然后是对于自己规划事情的方法论缺失有了新的认知,很多时候就是缺失每个方案的影响分析,导致无法决策,导致无法推荐规划。之后试试“问题解析 -> 初步方案提出 -> 方案影响面分析 -> 方案决策 -> 划分子问题”的循环。

最后认知到对于自己逻辑思维能力和批判性思维缺失。这个需要进行日常的练习,手动整理思路,也日常进行课题的批判,锻炼自己对于问题的批判能力,有理有据抬杠。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

graph TD
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
0%