本文介绍了一套以 Mac Mini 为中枢、自研备份工具 gyCOS 为核心的个人数据管理方案。通过“移动硬盘直连 + 增量去重备份”的组合,解决了磁盘格式不兼容、网络传输缓慢、备份冗余等痛点,实现低成本、高效率的数据掌控。
前言 #
当个人数据量增长到一定规模时,我们往往会陷入“既要便捷访问,又要安全备份”的两难境地,为此NAS 成为了解决方案,但这一方案存在以下痛点:
-
兼容性痛点:Mac 与 NAS 磁盘格式的“水土不服” NAS 通常基于 EXT4、BTRFS 等磁盘格式,这些磁盘在 Mac 上通常难以读写(或仅能读取无法修改),一旦 NAS 硬件故障,数据恢复极其麻烦。此外,即便NAS采用了万兆网络,海量小文件的访问速度仍无法媲美硬盘直连。
-
空间焦虑:重复文件与版本管理的混乱 目录结构调整、文件重命名,在传统备份工具眼中往往被视为“新文件”重新备份,多设备间的重复数据被多次存储。这不仅浪费空间,更让人产生“不敢随意备份”的心理负担。
-
运维噩梦:多设备分散备份 当数据源分散在 MacBook、Windows PC、Linux Server、飞牛 NAS 等多个设备上时,维护一套完整的“本地+异地”备份体系极其繁琐。同时,海量小文件让网盘备份变得困难。
-
进阶需求:版本回溯与节能
- 时光机级回溯:需要支持单文件/目录的多版本历史回溯。
- 静音与节能:存储设备需长期运行,要能够低功耗。
解决方案:Mac Mini + gyCOS #
针对以上痛点,我搞了一套以 Mac Mini 为存储中枢、自研的 gyCOS 备份工具为核心的数据管理方案,拓扑结构如下:
硬件选型 #
| 设备 | 角色 | 核心职责 |
|---|---|---|
| Mac Mini | 数据存储中枢 | 外接存储热\冷数据的硬盘;负责运行 gyCOS 备份程序。 |
| N100 小主机 | 功能补充节点 | 安装飞牛 OS,挂载 Mac Mini 磁盘,提供外网访问与 APP 适配。 |
最近得知飞牛OS 出了ARM版本,将飞牛直接运行在Mac Mini上或许是更好的选择,少了一个设备。
方案亮点 #
1. Mac Mini 中枢:解决格式兼容与加密安全 #
Mac Mini通过挂载移动硬盘并开启Samba文件共享,使其自身成为一台NAS设备,解决了磁盘格式兼容问题,此外还能实现:
- 极速访问:移动硬盘可以拔下来、直连电脑进行文件管理,完美解决加载大量图片、前端代码依赖(如node_modules)等对速度敏感的场景,享受满速体验。
- 原生加密保障:硬盘采用苹果原生 “APFS (加密)” 格式,避免磁盘丢失导致的数据泄露。
2. gyCOS 备份服务:智能去重与高效传输 #
[!info] 开源项目:gyCOS 🚀 GitHub 地址:https://github.com/my-yy/gyCOS
这是一个受 Linux Time Machine 和 MinIO 对象存储启发而写的备份工具,主要解决数据冗余与网络传输效率问题。(原名叫PyCOS,不过发现与pip包重名,所以改了名)
核心设计理念 #
-
内容去重: 利用 MongoDB 记录文件 MD5。备份时如果文件内容(MD5)已存在,直接跳过物理存储,仅记录元数据,极大节省空间。
-
块存储: 针对网络备份场景优化,根据文件大小采用差异化备份存储策略:
- 大文件 (>200M):直接拷贝到冷备份磁盘。
- 小文件 (<200M):聚合打包为 1GB 左右的数据块,显著提升网盘备份时的传输效率。
实操案例 #
为简化管理,我的设备上(电脑、NAS、移动硬盘)会建立统一的同步目录(下图中的 1_Sync),里面存储了需要备份的数据,在备份时选择这个目录即可:

1. 备份本地挂载的磁盘 #
备份 Mac Mini 挂载的 SSD 到冷备盘:
# 语法:python main.py backup <源路径>
python main.py backup /Volumes/2TB/1_Sync
运行效果:
程序扫描了 8109 个文件(1.20TB),发现 863 个重复文件直接跳过,节省了存储空间。

2. 备份NAS 数据 #
我的数据主要存储在 Mac Mini 挂载的移动硬盘上,但飞牛 NAS 上也有少量数据需要备份。通过 Mac Mini 网络挂载飞牛磁盘进行备份:
# --device-name 参数用于区分不同的数据来源
python main.py backup /Volumes/1_Sync --device-name="fnOS_u2"
运行效果:
扫描 43421 个文件,其中 10444 个文件已存在(去重),大幅减少了网络写入量。

3. 可视化管理与恢复 #
gyCOS 提供了一个简单的 Web 界面来管理备份:
-
项目概览:清晰展示不同设备、不同路径的备份状态。

-
时光机回溯:点击项目,即可查看历次备份的时间点、文件变化量。

-
文件恢复:浏览任意历史版本的文件列表,支持单文件下载恢复。(这里缺失一个“批量恢复“的功能,等需要全盘恢复时再搞😈)

4. 灾备机制:gyCOS 自我备份 #
gyCOS 的元数据(MongoDB 库 + 文件索引)是系统的“大脑”,存储在Mac Mini上,缺失这些数据将导致备份无法还原。为此系统内置了一键备份功能,将核心数据库定期快照到冷备磁盘。
总结 #
这套方案通过 “Mac Mini + gyCOS 备份” 的组合,解决了数据管理的四大痛点:
- 兼容性:Mac Mini + APFS 格式,保证了在苹果生态下的极致兼容与速度。
- 抗冗余:MD5 全局去重,让备份空间利用率最大化,无惧目录结构调整。
- 低运维:统一的冷备入口,简化了多设备的复杂度。
- 灵活性:既有 NAS 的网络共享能力,又有直连硬盘的高速读写体验。