历时5个半月,个人NAS服务器从无到有终于基本完成正式投入使用了,本文总结我的NAS记录路线与实现经历。
整体框架 {#整体框架}
第一次尝试自己组建硬件到软件的服务器,经过几个月折腾,服务器框架基本完成,整体框架如下:
graph TD
subgraph NAS Server
subgraph Ubuntu
disk[Disk]
disk -- 硬盘直通 --> omv-disk
subgraph KVM
subgraph OMV
omv-disk[Disk]
docker((Docker))
dataset[Mysql]
nginx[Nginx]
Nextcloud[Nextcloud]
backup_disk[BackupDisk]
rsync[Rsync]
omv[OMV Controller]
ddns[DDNS]
frp[FRP]
data-center((Data Center))
omv-disk --> data-center
data-center --> omv
docker --> dataset
docker --> nginx
docker --> Nextcloud
Nextcloud -- 代理 --> nginx
dataset -- 数据服务 --> Nextcloud
data-center --> Nextcloud
data-center --> rsync
end
end
ssh[SSH]
rsync --> backup_disk
end
access((Access Interface))
ssh --> access
nginx --> access
omv --> access
frp --> access
ddns --> access
end
subgraph PC Client
data-rsync[数据实时同步]
sftp[数据访问]
ssh-client[SSH 远程连接]
controll[后台设置]
access --> data-rsync
access --> sftp
access --> ssh-client
access --> controll
end
subgraph Phone Client
phone-sftp[数据访问]
phone-ssh-client[SSH 远程连接]
access --> phone-sftp
access --> phone-ssh-client
end
`style data-center fill:#9df, stroke-width:2px
style docker fill:#9df, stroke-width:2px
style access fill:#fd9, stroke-width:2px
`
实现功能 {#实现功能}
- 公网 IPv4、 IPv6 SSH 连接
- 公网 IPv4、 IPv6 读写数据
- 数据访问控制
- 互联网终端数据访问
- 手机文件夹数据同步
- PC 文件夹同步
- 数据自动备份
- ipv6 DDNS
硬件采购 {#硬件采购}
- 硬件是一切NAS的基础,需要在采购前调研清除自己的需求,以及花最少的钱配置满足自己需求的设备,这里列出我的一些经验和采购记录
- 相关内容:
| 内容 | 链接 | |------|------------------------------------------------------------------| | 硬件调研 | 硬件调研 | | 采购记录 | 硬件采购记录 |
系统架构 {#系统架构}
- 为了保持灵活、未来扩展和功能解耦,系统架构为物理机安装 Ubuntu 操作系统,使用 KVM 安装 OMV 系统,在 OMV 中创建 Docker 和服务用于外部访问
- 相关内容:
| 内容 | 链接 | |--------|-----------------------------------------------------------------------------------------------------------------------| | NAS 系统 | NAS 系统调研 | | KVM | KVM简介 KVM 硬盘直通操作方法 | | OMV | KVM 安装 OMV 过程记录 | | Docker | docker - 常用命令使用教程 |
NAS系统 {#NAS系统}
- 直接使用了开源的 OMV 系统,好像口碑没有黑群晖好,但是眼下满足我的使用需求了
- OMV 相关内容:
| 内容 | 链接 | |---------------|--------------------------------------------------------------------------------------------| | IPv6 访问 | 移动宽带公网 IPv6 访问 OMV 管理端 | | 强制 https 登录 | 强制 https 登录 | | 安装 omv-extras | OMV 5.6 安装 omv-extras | | SFTP | 搭建并使用公网 SFTP 服务 | | webdav | 配置 webdav 共享文件 |
公网访问 {#公网访问}
刚刚搭建好的 OMV 已经可以为局域网内的设备提供服务了,但是不能公网访问要NAS干嘛呢
- 我的网络是移动家庭宽带,有公网IPv6地址,没有要到IPv4的地址,自己搭建了 IPv6 的公网访问环境,但是并不是所有网络都支持 IPv6,因此买了腾讯云的服务器作为数据中转搭建了 IPv4 公网访问链路,不过速度仅有 8Mbps
- 相关内容:
| 内容 | 链接 | |------|----------------------------------------------------------------------------------------------------------------| | 内网穿透 | frp 使用教程 | | IPv6 | IPv6 理论教程 IPv6 实用教程 | | DDNS | DDNS 动态域名服务 |
私有云盘 {#私有云盘}
-
有了 OMV 事实上已经可以按照我们的需求访问数据了,但是还做不到数据动态同步,不是百度网盘一样的私有云,手机也没有合适的APP
-
Nextcoud 可以满足我大部分的私有云幻想了,问题就是配置有些繁琐,速度不快(可能是我网络的问题)
-
相关内容:
| 内容 | 链接 | |--------------|--------------------------------------------------------------------------------------------------------------| | Nextcloud 安装 | 私人云盘安装配置 | | 挂载外部磁盘 | 挂载外部磁盘 | | 配置访问域名 | 修改合法访问域名 | | 配置数据库 | 连接 MariaDB | | 配置代理接口 | 实现多个 https 反向代理 |
数据备份 {#数据备份}
- 数据安全是 NAS 的重中之重,虽然我做的除了风扇也就是数据备份了,讲道理可以异地备份、加个UPS电源什么的,眼下都没有弄,觉得一份数据放在两块物理磁盘上也算是挺安全的了
- 最初准备上 RAID5,但是害怕同时坏两块磁盘,有可能因此失去所有数据,这是无论如何不能接受的,还是1比1备份最为稳妥,Raid1总觉得也不够直观,出问题的话恢复数据时候操作错了也不是没可能
- Rsync 已经是很好用的数据备份工具了,可以结合 inotify 实现实时数据备份
- 不过想来想去没那么实时的需求,为了鲁棒性最终选用了每日定时任务 Rsync的方式备份数据,每月定时任务删除源端删除的数据的方式备份数据
- 相关内容:
| 内容 | 链接 | |---------------|-----------------------------------------------------------------------| | Rsync | Rsync 数据同步工具 | | python 数据同步脚本 | Python 执行 Rsync 备份磁盘 |
访客账户 {#访客账户}
- 数据有时需要分享,比如设置一个只读权限的账户,给好友使用,但是SFTP等协议登录后可以向上返回到根目录,我们并不希望这样的事发生,那么可以为分享账号建立Jail,将可以分享的内容软链进去
- 相关内容:
| 内容 | 链接 | |----------|------------------------------------------------------------------| | SSH Jail | SSH SFTP Chroot Jail | | Jailkit | Jailkit |
终端访问 {#终端访问}
-
搭建好服务器后可以从终端访问设备,终端如果有 IPv6 就走 IPv6 的链路,没有 IPv6 走慢一些的 IPv4
-
可以访问 OMV 暴露的数据,也可以登录 Nextcloud 访问数据
-
相关内容:
| 内容 | 链接 | |-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FolderSync | Nas 手机数据备份APP ------ FolderSync Pro | | PC挂载远程磁盘 | 挂载 | | Nextcloud 客户端登录 | 客户端登录配置 |
参考资料 {#参考资料}
文章链接:
https://www.zywvvd.com/notes/environment/nas/nas-summary/nas-summary/