家庭数据管理方案

结果:


目录


基本需求


评分

对以上需求生成一个评分标准和权重 (w),用于评估方案。分数越高越好。

数据持久性 (w=4)

  1. 每个文件 1 份副本
  2. 每个文件多份副本,在同一个物理地点
  3. 每个文件多份副本,不全在同一个物理地点,并能限制基本的人为误操作造成的数据损失

安全性 (w=4)

  1. 公网传输过程中缺少加密或双向认证,移动存储介质无加密
  2. 公网传输有双向认证和加密,用户名+密码认证
  3. 公网传输需要基于硬件的用户认证,本地存储介质加密

照片视频管理 (w=3)

  1. 没有针对照片视频管理的功能,纯文件存储
  2. 支持显示和基本的管理(例如编辑/相册)
  3. 有一定的智能管理功能(例如人脸/物体识别,地点搜索)

易用程度 (w=2)

  1. 需要专业知识,会使用 Linux 命令行等
  2. 经过简单学习可以掌握
  3. 符合一般用户使用习惯,不需要学习即可使用

访问灵活程度 (w=2)

  1. 只能使用电脑 + 配置过的环境/软件,手机访问不方便
  2. 电脑和手机经过简单配置后可以访问
  3. 电脑和手机登录即可使用,并且可以给家庭内和公网上的任何人分享文件并设置读写权限

运维工作 (w=2)

  1. 需要一定的专业知识搭建和维护
  2. 需要根据家庭网络和软件环境进行简单的配置
  3. 基本不需要配置和维护

噪音 (w=2)

  1. 不同房间/楼层可听到噪音
  2. 不同房间内听不到噪音
  3. 放置在同一房间内也可以睡觉

待机功耗 (w=1)

  1. >= 200w
  2. >= 50w
  3. <= 20w

体积 (w=1)

  1. ATX 机箱,机架式设备
  2. ITX 小型机箱
  3. NUC

可定制/DIY/扩展 (w=1)

  1. 没有定制/扩展能力
  2. 可通过安装各种插件扩展功能
  3. 可自由安装各种软件,甚至定制功能

评分结果

根据我们的需求和主观印象进行的评分结果:

  移动硬盘 商业 NAS 产品 云存储 云存储 + 本地服务器
数据持久性 (w=4) 1 2 2 3
安全性 (w=4) 1-3 1-3 1-3 1-3
照片视频管理 (w=3) 1 2-3 1-3 1-3
易用程度 (w=2) 3 2 3 3
访问灵活程度 (w=2) 1 2 3 3
运维工作 (w=2) 3 2 3 1-2
噪音 (w=2) 3 2-3 3 1-3
待机功耗 (w=1) 3 2-3 3 1-3
体积 (w=1) 3 1-3 3 1-3
可定制/DIY/扩展 (w=1) 1 2-3 2 1-3
总分 38-46 39-56 47-61 38-64

购买商业 NAS 还是自建服务器

现有的 NAS 产品功能强大,外观酷炫,配置简单。但我选择自建服务器的原因主要有:

从上表看,云存储 + 自建本地服务器有不错的潜力。下面分别介绍云存储和本地部分的设置。


云存储

这里考虑的云端存储需求主要是文件+照片视频。

云存储的安全性

基本要求是使用的云存储服务必须在传输过程和存储时都加密,并支持基于硬件的二次认证。 但云存储的厂商仍然有能力读取你的数据。对此我们的解决办法是将数据进行分级管理,对可能发生的未授权访问情况进行分析。 对于高度敏感的数据会在本地 PGP 加密之后再上传。


在离线系统上生成 PGP 密钥并存储在 Yubikey 和硬件加密的U盘中

文件

文件存储有很多选择,例如 Google Drive, iCloud Drive, OneDrive, Dropbox, 百度网盘。

需求:

由于 iCloud 的第三方访问比较困难,只能排除。百度网盘因为距离远 + 用户体验一般,也排除。

照片视频

需求:

在大概了解了几个服务之后,选择基本就只有 Google Photos 和 iCloud Photos。 虽然 iCloud 不支持第三方访问,但还是纳入考虑范围。

它们之间的一些区别:

综上,选择了 Google Photos。

Google Workspace

使用 Google Drive 和 Google Photos 的同时,还订阅了 Google 的企业服务。 Google Workspace 允许 Gmail 账号使用自己域名下的邮箱地址、一个账号绑定多个地址、统一账户管理和详细的安全设置等非常多的功能.. 这里不详细介绍。 但企业版也有一些限制,例如某些 Google 的服务无法使用 (Stadia)。


自定义域名邮箱


账户管理


安全事件通知规则


本地服务器

硬件

硬件选择对功耗、噪音、维护工作量都有很大的影响。

无风扇系统

作为湾区贫困人口,我们的一房一厅公寓面积很小,噪音需要控制在即使放在卧室也能睡觉的程度。 另外由于机器 24 小时持续运行,长时间运行的系统中风扇经常是容易坏或需要维护的部件。 无风扇系统几乎不会积累任何灰尘,几年后干净如新,可以极大减少维护工作量。

选取的硬件配置如下:

这些可以放进一个小型机箱。因为家里有机架,使用了一个 2U 机箱。


本地服务器

软件

服务器软件环境基于 Ubuntu Server。使用 Ansible 管理配置。 在系统上只直接安装少量软件,较复杂的服务(例如 Unifi Controller 等)用 Docker 部署。

数据同步

Rclone 备份云端数据到本地。这个软件类似 rsync, 但支持各种云存储服务。

本地数据加密

本地服务器的安全目标是即使服务器被物理访问(假设整台机器被偷走),数据也不会泄露。设置如下:

这样的设置在一旦断电/重启后,系统中就没有足够的信息来解密存储的数据(解密密钥必须人工由外部提供)。


block devices

本地数据备份

没有使用 RAID 来做冗余,主要原因是不能有效应对用户操作失误(例如误删文件等)。 服务器上设置了一个定期的 rsync 任务把第一块硬盘里的数据同步到第二块硬盘(镜像)。 这样在误操作发生后,通常还有时间从镜像盘中提取数据。 另外因为服务器的数据同步安排确保了同一时间只有一块硬盘在写入,这样在操作过程中断电可以降低数据损坏的概率。