一、起因
我是个怀旧的人,随着照片越来越多,Google photos的免费容量已经不够了,早就提醒要清理一些空间了,前两年土耳其货币贬值的时候就想着干脆开个Google one得了,我一直都是Google的脑残粉,但是疫情期间美国有一则新闻因为小孩子腹股沟炎症,孩子爸爸拍照片发给了医生,但是同步到了Google相册,结果账号被封了,用了N年的账号永久被禁,数据全丢。这让我非常担心,把以往对于这些巨型网络公司很高的信任感降低了不少,赶快把所有照片全部下载到本地硬盘备份,但是这个事情一直没有得到解决。
在这期间,折腾了不少方案,最终发现了两款非常不错的开源软件,PhotoPrism和Immich,因为不光是储存,还需要实现家人同时备份以及随时查看,那只有网络了,但是手头的VPS空间也不够大,并且数据风险可能比Google还要高,依然还是需要及时备份。
NAS是个不错的选择,前些年NAS的价格还比较贵,并且我的需求仅仅只是备份照片,电脑一样可以胜任,网络和本地各自备份,但是做不到新增照片及时备份,只能不定时的手动备份,一直拖到容量不够。
本来想自己DIY一台高性能NAS/服务器,看了不少大佬的方案,类似于加钱买火箭的感觉。干脆看看二手吧,偶然看到一个捡垃圾系列,对啊,搞个电脑不就行了?马上给一个在老家开电脑店的朋友打电话,问有没有二手电脑,结果无巧不成书,朋友刚从某单位收了一批淘汰的联想品牌机,除了硬盘,其他配件齐全还包括显示器。马上让他给我留一台主机,等我回家去拿。
二、折腾
拿到手后机箱脏兮兮的,清理了一下发现成色还很不错,竟然还有个DVD光驱,电脑型号是联想扬天A4600T,H61主板,奔腾G645,朋友已经把原装的2G内存条拔了,找来内存硬盘装上,装个系统,开机。嘿,竟然还不错。满足日常办公应该问题不大,不过咱又不是用来办公的,开始折腾吧。先装了Debian 12,部署一个Immich,上传一些照片测试了一下发现CPU能力严重不足,特别是在打开了人脸识别等功能后,那简直是要累死电脑。得,先升级一下硬件吧。
1、硬件升级
根据主板型号H61,问了一下GPT,都支持哪些CPU,发现这个主板还挺奇葩,属于第二代、第三代中间的产物,最高可以支持Intel三代CPU,最有性价比的就是i3-3470,本来准备购买,突然想起来至强系列,查询后发现竟然支持E3系列,哈哈哈哈,那岂不是可以选用E3-1230?OK,下单。接着就遇到一个又一个的坑。
坑1:买回来后直接装上,突然想起来E3-1230没有核显,好吧,先把电脑上的GTX1060插上跑起来,反正本来也用不到。结果差点悲剧,插上以后发现这台垃圾的电源没有显卡供电口,我去,那先拔下来吧,结果由于1060太长,导致压着卡扣完全解不开,也就是说,这块显卡被H61锁死了,我靠。费了九牛二虎之力,终于拔下来了,期间还把指甲盖弄伤了,真的是蠢哭了。但还是要解决显卡问题啊,翻箱倒柜找到一个GTX970,这个不需要独立供电。
坑2:内存2个插槽,肯定要插满的啊,8×2应该够了,咸鱼本地找了一个,又等卖家周末才有空,周五的时候看到一个国产DDR3内存特价,8G还不到20块钱,还是全新。算了,本着契约精神,说好了等卖家周末休息去拿的。结果,一共买了3根,卖家给了2根都是低电压的ECC服务器内存条,退又不给退,恼火直接买了全新国产,又耽误了三天。
坑3:由于H61时期的特殊性,虽然支持第三代CPU,但是需要升级BIOS,原以为这个直接去官网下载就可以了。结果,高看联想了,找遍官网竟然没有提供,并且网络上也非常少有提供下载,CSDN倒是有,但是需要开通VIP,我去!功夫不负有心人,找了一下午,终于让我找到了BIOS升级文件,赶快升级BIOS来支持第三代CPU。
2、ESXi还是PVE?
以前虽然听过,但是从来没有接触过,先找一些大佬们的分享学习一下,结合GPT给出的建议,决定选择PVE。
首先还是找一些大佬分享的经验来学习一下,下载镜像,制作安装U盘,开装。结果死活装不上,总是卡死。好吧,寻找了半天资料发现可以先安装Debian,然后在Debian的基础上安装PVE,继续折腾。安装过程又遇到网络问题无法下载,国内镜像源又不提供,我明明在软路由里设置好了的啊,不知为何总是DNS错误,可以ping通IP,但是ping不通域名,无法解析。后来发现直接装PVE失败的原因是竟然是BIOS里没有开启虚拟化!明明记得开启了啊,真的是乌龙,又被自己蠢哭了。期间由于折腾DNS,还把软路由给设置错误导致系统损坏,又重新刷软路由,结果光猫桥接不知道怎么回事失效了,又找方法重新破解了一下。好吧,既然Debian基础上安装失败暂时无法解决,那就直装吧。
坑。他又来了!直接装还是卡死,进BIOS查看,确定已经开了虚拟化,为什么还是不行呢?经过查找各种资料,终于又被我找到了。
由于图形驱动程序的原因,在非常旧或非常新的硬件上都可能出现问题。如果安装在启动过程中挂起,可以尝试添加 nomodeset 参数。这将阻止 Linux 内核加载任何图形驱动程序,并迫使它继续使用 BIOS/UEFI 提供的帧缓冲器。
在 Proxmox VE 引导加载器菜单上,导航至安装 Proxmox VE(终端用户界面),按 e 编辑条目。使用箭头键导航至以 linux 开头的一行,将光标移至该行末尾并添加参数 nomodeset,与先前存在的最后一个参数用空格隔开。
然后按 Ctrl-X 或 F10 键启动配置。
其实这个方法是写在PVE官方手册中的,可是,手册一般都很长,总是习惯性的找一点经验就开始行动,没有完全看手册。
3、数据焦虑
折腾十多天,从2024年折腾到2025年,终于要接近目标了。在此期间从最初的备份照片+随时查看的需求,经过这些天的折腾,看的资料越来越多,发现即使把照片存储到本地,数据可能还不如存在Google相册安全,虽然这两者的风险不同。发现其实我早就已经有了数据焦虑,只是之前不知道如何定义这种感觉,这次折腾期间才发现我的需求其实源自于数据安全,换句话说就是数据焦虑。跟一个朋友交流发现,NAS也不是最好的解决办法,NAS互相备份的话,成本太高。4、终极解决方案
经过不懈的寻找和沟通,终于找到了终极解决方案,不但可以实现原有的需求,还能解决数据焦虑,并且成本很低。一台主服务器,运行任务,做主力。跑各种需要的服务,比如Immich。
通过Syncthing多节点互相备份。
R2S,J1900工控机,玩客云,以及各开发板,凡是可以刷Debian或者Armbian系统的,甚至OpenWrt都可以安装Syncthing。经过实验,Syncthing是最好用的,其他软件会因为网络问题以及各种其他问题,不如Syncthing更方便。如果手头没有更多设备,玩客云现在的价格是最合适的,30元以内基本可以搞定。在确定方案的过程中,还发现了CasaOS这个宝藏,可以省很多事儿。
5、实施阶段
- 服务器安装PVE,开虚拟机,装CasaOS部署Immich和Syncthing。作为A。
- R2S作为软路由,OpenWrt装Syncthing挂硬盘。作为B。
- J1900工控机刷Debian或其他系统,装Syncthing挂硬盘。作为C。
- 玩客云刷CasaOS装Syncthing挂硬盘。作为D。
- K3路由器刷OpenWrt装Syncthing挂硬盘。作为E。
好了,ABCDE共5个节点互相同步。硬盘不够没关系,随便去淘宝咸鱼买个二手1T机械盘,存储照片是足够了。只要5个节点的硬盘不同时损坏,数据就足够安全。甚至,这些设备相对都比较小,家里三个,办公室一个,老家一个,多地点分布。
完美!
如果你跟我有同样的需求,可以参照此方案。