从一个U盘到一座“塔”:我的折腾始末
你们问我,这个叫《践踏之塔》的破烂玩意儿,最新版本到底是多少?实话跟你们说,我真说不清楚,它自己都不知道自己是哪个版本。我当初着手搞这个东西的时候,只是想找个地方存点老婆孩子的照片,结果它自己长成了一个吃电怪兽,还动不动就闹脾气。
这个“塔”的名字,就是这么来的。因为它每一次升级,都是对我过去努力的“践踏”。
刚开始,我只是抓来了一个旧的迷你主机,插进一块2TB的硬盘,跑了个最简单的Samba服务。这就是v1.0,单纯的文件共享,清清爽爽。我当时还夸自己简单高效。
好景不长,老婆说手机内存不够用,能不能把照片自动同步过来?行,我研究了半个月,搞定了Nextcloud。为了让它跑得稳,我迁移了系统到更稳定的Linux发行版,v2.0完成。
没过多久,老丈人住院,医院拍的片子太大,传输费劲,能不能直接在线看?我咬牙上了Plex和Jellyfin。这时候硬盘不够了,我又买了四块8TB的盘,组建了一个简陋的RAID,为了避免硬件冲突,我不得不把系统从LXC容器搬出来,塞进KVM虚拟机里跑。v3.0基本成型,但已经开始臃肿了。
最要命的是,我为了在外网也能安全访问,折腾了半年,才弄明白什么叫反向代理、什么叫DDNS,证书过期一次,我就得通宵抢救一回。我开始编写大量定制化的脚本去监控硬盘健康和网络状态。每增加一个功能,就必须打补丁去堵住之前版本留下的安全漏洞。它早就不是当初那个简单存照片的盒子了,而是一个随时可能炸开的马蜂窝。
当我今天说最新版本是多少的时候,我的前台访问界面可能显示的是v4.1,但负责文件校验的后端服务,我前两周为了修复一个BUG,又回滚了一个老版本的功能模块,它还停留在v3.5的逻辑里。监控脚本是我昨天晚上刚刚修改的,那个叫v5.0。你问我整体版本?那就是一场混沌。
为什么我要亲手建起这座混乱的塔?
很多人问我,你这么费劲,花那么多电费和时间,买个现成的NAS或者直接用商业云存储不行吗?
我要是能用,我至于每天晚上爬起来听听机箱的风扇是不是转得对劲吗?
我之所以陷入这种自己给自己挖坑的折腾里,是因为我被逼到了墙角。
那是前几年,我还在一家做电商的公司管着仓储物流。公司内部搞了一套“数字化”流程,要求所有进出货记录全部走云端。后来公司跟一个大供货商闹翻了,扯皮打官司。我的部门是核心证据提供方。结果就在法院介入的前一天,供货商那边不知道使了什么幺蛾子,直接把我在某大厂的云端账号给封了,说我泄露商业机密,把数据锁得死死的。
那一瞬间,我慌了。那是我的工作数据,也是我几年的心血。为了证明自己的清白,我跑断了腿,找了各种关系去解锁数据,花了快一个月才恢复,差点丢了饭碗。
这件事让我明白了一个道理:只要你的数据在别人手里,你就没有安全可言。他们可以随时拔掉你的网线,关掉你的入口,甚至篡改你的记录。
那次事件之后,我彻底觉悟了。我辞职了,跑回来老家,拿出所有积蓄,着手打造这个完全由自己掌控的“践踏之塔”。我宁愿每天花时间去维护这个破烂,也不愿意把我的数字资产再交到别人手里。每一次失败,每一次重装,都是我为数据主权付出的代价。
这个塔里跑着我设计的备用系统,它虽然混乱,但至少听我的。前几天,我的老东家还打来电话,问我能不能回去帮他们“优化”一下供应链系统,说新招的年轻人搞不定那些旧逻辑。我当时就笑了,告诉他们我正忙着清理我自己的“践踏之塔”的缓存,没空回去给他们擦屁股。他们内部的混乱,比我这堆破烂加起来还厉害得多。
- 我用旧代码支撑着新的框架。
- 我用过时的硬件跑着最新的虚拟机。
- 我用不完整的日志证明系统是健全的。
这就是《践踏之塔》,一个在混乱中寻求秩序,在反复折腾中保持独立的小小数据中心。