改造玩客云作家用 NAS - 基于OpenMediaVault

 

本来想寒假里继续探究学校内网, 可惜一不小心玩脱了把学校内网机器玩掉线了…

懒得去学校修了, 所以就放弃了.

后来转而规划暑假之后组 All-in-One 的配置, 硬件选好了在纠结软件选择.

目前暂定打算用 UnRaid 系统和黑群晖虚拟机.

但硬件还没到手, 只能先研究研究软件, 但也没有多余的机器来实验 UnRaid 系统.

就先来尝试体验一下能安装在玩客云上的 OpenMediaVault, 顺便熟悉一下 NAS 相关的配置.(虽说最后的成品不打算用 OMV 就是了…)

0x00 玩客云刷入 Debian 系统

本来是自己编译了一次玩客云的固件的. 后来又有人编译了内核更加新的支持 Docker 的固件, 看起来维护的比我好就直接用了. (其实还是有不完美的地方: 玩客云版本很多, 这个固件在我的这个版本的玩客云上有一个 USB 接口不能用, 试了半天没找到解决办法, 就算了…)

Armbian_20.12_Aml-s812_buster_current_5.9.0-rc7.img SHA256:A73ECB7B8D79AC54E39E97A35B89E8E81913EA5D43B7C666FBA8654D43CC7E00

下载地址: https://www.right.com.cn/forum/thread-4057492-1-1.html.

其实只要是任何可以安装 Debian 的机器都可以安装 OMV 并按照下面的方式配置 NAS.

刷机过程不同的机器也不相同, 恩山上也有很多, 就不赘述了.

踩坑: 开始装了 Ubuntu, 后来发现 OMV 和 Debian 是深度集成的, 不能装在 Ubuntu 上… 被迫重刷系统.

0x01 安装&配置 OMV

装完系统首先是安装一下中文支持, 改一下时区, 设置一下固定 IP, 升级一下软件包, 再加上一些个性化设置blabla, 就准备开始安装 OMV 了.

官方源下载还是有点慢的, 添加了北外的国内源.

deb https://mirrors.bfsu.edu.cn/OpenMediaVault/public/ usul main

还需要添加 GPG Key.

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7E7A6C592EF35D13 24863F0C716B980B

然后就是 apt updateapt install openmediavault

安装完成之后直接访问 http://玩客云IP/ 就能进入 OpenMediaVault 的 WebUI.

默认用户名admin, 默认密码openmediavault

OMVWebUIOMVWebUI

(正如上面提到的, 装好的 OMV 和 Debian 是高度集成的, 很多系统设置都能在 WebUI 中修改.)

踩坑: 不知道为什么安装 OMV 之后在 /etc/network/interfaces 中设置的 DNS 服务器就不生效了… 只能自己手动在/etc/resolv.conf 中设置 DNS 服务器.

还要装一个 OMV 常用的插件 OMV-Extras, 只需要从官网下载安装包后通过 WebUI 安装或是连接 SSH 安装都可以.

0x02 配置储存

本来想试一下组 Raid, 但是因为只有一个 USB 接口能用, 就打算用一张 32G 的 SD 卡和 一个 32G 的 U 盘来组 Raid0 作为实验. 但默认 OMV 不能使用 USB 连接的设备组 Raid, 使用 lvm2 骗过系统组 Raid 也会报错… 后来放弃了. 最终决定使用 ufs.

从 WebUI 的 系统 - 插件 一栏中可以安装 unionfilesystem 插件, 这种文件管理方式就类似 UnRaid 了.
是基于分区而不是整块硬盘的一种类似于 Raid 的储存方案. 不同之处是 ufs 将**多个文件系统(而不是整块硬盘)合并成一个, 将所有的完整的文件(而不是文件的片段)**按照创建策略分散到两个不同的文件系统中.

ufs 的坏处是写入性能不及 Raid0, 但硬盘损坏时只会失去存在那块盘上的数据, 而不会丢失所有数据.(虽说我觉得剩下一部分文件好像也没什么用…) 而且不需要格式化, 可以在现有的硬盘上创建 ufs 文件系统保留原有数据.

设置过程:

  1. 将 U 盘和 SD 卡分好区并格式化(最好格式化成 ext4), 插入 U 盘和 SD 卡, 在储存器 - 文件系统中挂载分区.
  2. 在储存器 - 联合文件系统中点击添加, 选择所有已经挂载的分区, 起个名字, 选择创建策略(具体可 Google, 参考论坛的这个帖子), 设置完成后就得到了一个新的文件系统, 效果上就是把两个小 U 盘合并成了一个新的大 U 盘.
  3. 测了一下写入和读取速度, 大概都和单盘的读写速度相同.

unionfs设置unionfs设置

合并的文件系统会挂载在 /srv 下.

0x03 设置 SMB

  1. 在左侧菜单中的共享文件夹一栏中添加共享文件夹, 设置权限.

  2. 在 SMB 菜单中启动 SMB, 并添加共享文件夹.

  3. 在左侧用户菜单中添加用户, 并将用户加入 sambashare 用户组, 就可以用这个用户登录 samba 共享了.

踩坑: 默认的 FTP 中文会乱码, 改设置不太方便, 就用了 SMB.

0x04 安装可道云

OMV 不像群晖自带群晖套件, 只用 SMB 共享功能还是有限, 还需要安装一些私有云盘服务才比较像是 NAS, 操作起来才比较方便.

Nextcloud 占用资源较大, Seafile 文件不能直接用 SMB 读取, 后来就装了也相对符合国人习惯的可道云. 网页端访问起来还行, 手机客户端用起来也比较方便.

安装过程:

  1. 官网下载网站源码, 解压到/var/www/kod

  2. 添加 Nginx 设置: 在 /etc/nginx/sites-enabled/ 下添加配置文件, 可直接复制一份 omv 配置修改. 给出我的配置作为参考.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
server_name kod;
root /var/www/kod;
index index.php;
sendfile on;

error_log /var/log/nginx/kod.log error;
access_log /var/log/nginx/kod.log combined;

location ~ \.php(.*)$ {
fastcgi_pass unix:/run/php/php7.3-fpm-openmediavault-webgui.sock;
fastcgi_index index.php;

fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;

include fastcgi.conf;
}
listen [::]:8080 default_server ipv6only=off;
}

  1. 其他优化: 参见可道云文档

小小缺陷: 32位的 php 安装的可道云不能上传/下载 2G 以上文件, 只能通过 SMB 操作.

0x05 远程下载

虽说可道云自带了离线下载功能, 但是 32 位的玩客云安装的可道云处理 2G 以上的文件会出现问题…

所以还是设置一下 aria2 的远程下载.

配置十分简单, 直接在插件菜单中安装 downloader 插件即可, 在 omv WebUI 的菜单就可以控制远程下载.

0x06 Rclone 备份

作为 NAS 当然要有数据备份了, 打算直接备份到 Onedrive 网盘.

某宝上有 5T 的国外区 onedrive 帐号, 只要 3-4r.(的确有可能翻车…)

插一句: Onedrive 的数据可以用 mover.io 在多个网盘账号之间复制, 起到相互作为备份的效果. 可以大大降低翻车概率.

Rclone 的具体配置网上教程很多, 如这个, 也不详细展开了.

配置好 Rclone 就可以在 crontab 中增加一个定时任务, 每天凌晨将本地目录中的文件同步到 Onedrive 网盘.

0x07 安装 Docker & Portainer

便于后期安装其他软件.

直接在 OMV WebUI 的 OMV-Extras 中 Docker 菜单中即可一键安装 Docker.

顺便推荐一个好用的国内源: 阿里 Docker 镜像.

登入 SSH 更换国内源后再在 WebUI 中一键安装 Portainer 会更快.

0x08 安装 Cockpit

也是在 OMV WebUI 的 OMV-Extras 中可以一键安装 Cockpit.

可以用于在网页上监控服务器状态, 还附赠了 Web 的终端可以方便地连接 SSH.

当然其实 OMV WebUI 左侧的系统信息一栏中也可以查看系统信息. 如果不需要 Cockpit 也可以不安装…

也推荐 Netdata, 可以部署在 Docker 中用于监控系统, 信息更加详细.

0x09 设置导航页

为了更方便的访问各个服务, 设置一个导航页.

按照上面部署的服务, 提供一份网页模板. 大家也可以上网搜索其他导航页模板.

效果效果

Nginx 设置只需要设置最简单的一个静态 http 服务器即可, 与设置可道云类似. 不再赘述.

0x0A 总结

总而言之也只是一次小小的尝试吧.

但尝试过程中经历了好多好多坎坷 QAQ.

重装系统就重装了好多次… 第一次装了 Ubuntu, 第二次调 usb 的时候改了 dtb 文件没法进系统, 第三次装了一个莫名其妙的 Docker 的 WebDAV 镜像直接改了根目录权限, sudo 权限都被覆盖掉了, SSH都进不去… 这个玩客云被我拆拆装装就折腾了不下十回… 中间犹豫是装 Nextcloud 还是 KodBox, 是 FTP 还是 SMB 还是 WebDAV, 是 Netdata 还是 Cockpit… 都摸索和纠结了很久. 加起来配置所花的时间应该不下 10 个小时了.

现在回过来看看.

如果真的要作为 NAS, 直接在 CloudFlare 上搭建一个 OneIndex 作为网盘可以达到相近的效果. 还更加稳定, 速度相对来说也不太差.(毕竟玩客云只有 USB 2.0 接口…内网也快不到哪里去…)

如果更多的是要作为 Linux 服务器, 直接安装 Debian 后安装 Docker 即可.

但设置过程中也学到了很多 Linux 的知识, 积累了很多经验, 也体验了配置 NAS 的过程.

就算作我的 All-in-One 计划的一次前导试验吧~

(接下来高考前不碰电脑的几个月也顺便靠它勉强撑着用了…)

本文采用 CC BY-NC-SA 4.0 许可协议发布.

作者: lyc8503, 文章链接: https://blog.lyc8503.net/post/wanke-nas/
如果本文给你带来了帮助或让你觉得有趣, 可以考虑赞助我¬_¬