我们之前介绍过 Toby Chui 的项目《用树莓派制造一台像样的 NAS》,受到不少 Maker 的关注。时隔五年,Toby Chui 推出了该项目的升级版,在功能和构造细节方面都有所提升。
原本 NUC 只有一个 2.5 英寸硬盘插槽,但使用多年之后,它已经开始没有空间。我想趁此次机会,寻找一个低成本的解决方案,在提升它的功能的同时对外形做了小型化。
特点:
1、更小的外形尺寸,尽量利用好设备内部的每一寸空间。
2、成本低,尽量使用低成本的组件,实现设备的最佳性能。
3、兼容性高,部件可以方便购买。
4、依赖性低,对单个制造商的依赖小。
5、可接受的速度,满足为 1-2 人播放 1080p 的视频,上升/下降速度至少 100Mbps。
aroz_nas_psu.zip
[113133 Bytes at 2023-02-05, 68 次下载]
stl-files.zip
[591719 Bytes at 2023-02-05, 79 次下载]
使用香橙派 Zero 和 USB 转 SATA 适配器的用户,可以直接跳至 3D 打印那一步。
如果你使用树莓派或其他 SBC,则需要对模型进行微调。下载 backplate_generic.stl 文件,并将其导入 TinkerCAD 或 aPrint Editor。
根据你选择的主板,在背板模板上创建打孔。
3D 模型调整文件,在项目文件库中下载。
https://make.quwj.com/project/457
如果你使用的是 SATA 转 USB 适配器,模型修改过程可能会稍微复杂一些。如图所示,SATA 转 USB 适配器的安装尺寸。
注意外壳拐角处的四个螺丝孔,它们是用于安装背部的孔。请不要在设计适配器时使用这些螺丝孔,否则你还需要更改后盖设计。
在我的设计中,我利用适配器上的两个螺丝孔将其安装到定制的 3D 打印外壳上。如果你的适配器上也有类似的孔,你可以利用这些孔来安装它。或者你可以设计一个简单的安装臂,并用热胶将它们粘合到位。
模板的挂载的 stl 文件,在项目文件库中下载。
https://make.quwj.com/project/457
3D 打印的部分大约花了两天的时间,我使用 Ender 3 以 0.2mm 的层高和每秒 35mm 的速度打印。
legs.stl:NAS 的腿部支撑。
psu_mount.stl:功率调节 PCB 的安装。
SATA adapter mount:SATA 到 USB 适配器的安装。
wide_case、wide_cover、case_back:NAS 的主体 PC。
front_panel:NAS 的前板,包含状态 LED 的孔。
pull_handle,tray:硬盘托盘组件。
backplate:NAS 背面的防尘罩,包括 6010 风扇支架。
所有文件在项目文件库中下载。
https://make.quwj.com/project/457
你可以在项目文件库中下载 gerber 文件:
https://make.quwj.com/project/457
https://drive.google.com/file/d/1Tmfq3RrY0x8C9qf5TM5jI6WkntdhGjJz/view?usp=sharing
然后从 PCB 打样服务商处订购 PCB 成品。如上图所示,可以在 PCB 上挖一个方形孔(无需额外的服务费),然后将降压-升压转换器焊接到 PCB上。
如图所示,从左到右分别是 HDD1、2 和 SBC 的 12V、12V 和 5V 的电源通道。再焊接了一些小部件,包括用于 SBC 纹波滤波的电容器、5.1v 齐纳二极管(可选,当我的 XL6009 转换器发生故障时,它救了我的 SBC 一次)和电源 LED+ 电阻器。
如果你的预算非常紧张,你可以手动将导线焊接到 HDD/SATA 适配器的转换器上。但如果我需要建造更多的单元,制作 PCB 将使整个项目在未来更具可重复性。
SATA 转 USB 适配器使用 M3x5 螺钉固定到适配器支撑臂上。接下来,在电源转换器板开始布线,HDD 电源线和 USB 信号线。
这个过程取决于你使用的适配器。在此,我只展示我的适配器的使用情况。
1、找到适配器的 USB 端口,将其连接到电源转换板上的 HDD1/2 USB 的端口引脚上。
2、找到适配器的 12V 输入端口,将其连接到 HDD1/2 12V 输出。注意,转换器板的输出有四条线路,承载 12V 或 GND 电源。如果你的磁盘不需要那么多电源,你可以只使用其中的两条,或者你也可以使用所有四条电线供电。
3、将 USB 主机连接到 PC 或 SBC,并测试其是否正常工作。
接线完成后,用四组 M3x10 的螺钉将适配器固定到机箱的背面。
硬盘托盘由两部分组成。
首先,你需要将一个螺纹插入件(通常由铜制成)插入拉手,并在另一侧用两组 M3x5 螺钉固定。完成后,你再使用六组 M3x6 的螺钉将硬盘拧入到托盘。
完成后,将两个硬盘插入机箱并用力推动,使 SATA 端口与背面的适配器连接。
如图所示,我 3D 打印了一个侧面通明的特殊版本,以显示插入的方向。
3D 打印或使用任何你想要创建支架的方法,将电源转换板和 SBC 固定到位。将支架粘接到主壳体的内侧。
如果你有任何其他修改,或者希望内置更多硬件(如 ESP32)用于远程管理,也可以将其放置在此处。
1、将电源调节板的 5V 输出连接到 SBC。如果你使用的是树莓派 4B 产品这类耗电型的 SBC,你可能需要使用电源调节板的所有四个输出来获得 5V 电源。否则,你可以使用一对5V/GND 电缆连接状态 LED 或背面的风扇。
2、将 USB 主机引脚连接到 SBC。根据你的 SBC,你可能需要在内部添加 USB 集线器(例如树莓派 zero 2w)。以我为例,我不想直接焊接到 SBC GPIO 引脚(香橙派 Zero 使用GPIO 用于 USB2 和 USB3 的输出,并且只将 USB1 作为物理 USB-A 的端口),我使用了一个预处理板,使它成为一个简单的即插即用适配器,以便于将来的维护和使用。我还添加了一个电容器,以防止启动期间的电流浪涌。
如图所示,可参考 SBC 的连接方式。请注意,如果是树莓派 4B 的主板,可能需要将电路板上下翻转,并将导线直接焊接到底部测试焊盘。
在关闭之前,请将 Armbian(不适用于树莓派)或 Raspberry Pi OS(适用于树莓派)安装到容量为 32GB 或更高容量的 SD 卡上(建议64GB)。
完成以上步骤后,就可以关闭它了。使用 M3x5 螺钉将所有零件拧在一起,现在,它看起来像一个真正专业的 NAS!
接下来就是软件安装的部分。
安装 ArozOS
此次的操作系统是对 2018 版的一次巨大的更新。
我为 NAS 开发的软件名为“ArozOS”。它是一个带 web 桌面的 web 操作系统,可方便在浏览器中为你提供全面的桌面体验。只需要使用网络浏览器,即可访问音乐、视频、照片和文档,所有这些都只需使用一个浏览器窗口。同时它也适用于移动设备。如果你想了解更多关于 ArozOS 的信息,请访问 https://arozos.com 。
对于那些有软件工作经验的人来说,可直接点击 https://github.com/tobychui/arozos 查看。
当然,你也可以选择其他 NAS 操作系统,如 Open Media Vault 或 FreeNAS 与硬件一起使用(考虑兼容性,在我的版本中是兼容的)。当然你也可以试试我的操作系统。
设置 SBC 并安装 Arozos
按照标准步骤使用根帐户和个人帐户设置 linux。对于个人账户,建议使用一个简单易记的名字,比如 “aroz” 或 “pi”,如果你是那种经常忘记账户的人。完成后,你可以从官方页面下载 arozos。以下命令可以让你快速入门。
提示:如果你担心将来会丢失你的帐户,你可以在备忘录纸上写下你的管理帐户和密码,并将其粘贴在 NAS 机箱上。
首先,在主目录中为 arozos 创建一个文件夹。
cd ~/
mkdir arozos
cd arozos
接下来,转到 arozos Github 发布页面,下载适合 SBC 的最新 arozos 二进制文件。以下是一些示例:https://github.com/tobychui/arozos/releases
香橙派使用 H3/H5 CPU,pick:arozos_linux_arm
香橙派使用 H616 CPU、树莓派 4B 或其他 arm64 SBC,pick:arozos_linux_arm64
目前最新版本是 1.124。因此,从 github 复制链接并运行以下命令。但如果你发现 v2.0xx 已过时,我建议改用最新版本。
wget https://github.com/tobychui/arozos/releases/download/v1.124/arozos_linux_arm
wget https://github.com/tobychui/arozos/releases/download/v1.124/web.tar.gz
mv arozos_linux_arm arozos
注意:v2.0即将推出。
下载完成后,安装所需的依赖项。
sudo apt-get update
sudo apt-get install ffmpeg samba -y
给予它运行 ArozOS 的许可。如果你不在乎权限,不在乎是否你是唯一一个可以登录到此服务器的人,只要一切正常,你可以使用以下命令。
sudo chmod 777 -R ./
我通常推荐 775 或 755,可根据你的需要更改。
最后使用 sudo 执行 arozos(如果不需要硬件、电源和 WiFi 管理,请跳过sudo)。
sudo ./arozos
解压缩关键文件并启动系统需要一段时间。如果 SSH 窗口停留了一段时间,请不要按Ctrl+C 或关闭 SSH 窗口。
使 arozos 在启动时启动并向启动器添加 OTA Update 功能,你可以选择下载启动器并将 arozos 启动服务添加到 systemd。
如果你想在 ArozOS 系统中安装 OTA 更新功能,你可以选择安装启动器,并在启动时使用启动器启动 ArozOS。
https://github.com/aroz-online/launcher
安装启动器,只需将启动器二进制文件放在 arozos 二进制文件旁边,并将 start 命令指向启动器,而不是 arozos 的二进制文件。例如,如果你的 SBC 使用的是 H3 处理器,该处理器是 armv7 处理器,则可以使用以下命令下载并启动 arozos。
wget https://github.com/aroz-online/launcher/releases/download/v1.120/launcher_linux_arm
mv launcher_linux_arm launcher
./launcher -port 8080 -tls=true -hostname="My NAS"
# Or pass any startup paramter to it, it will relay to arozos binary
成功设置并启动启动程序后,你将发现 System Setting 中有一个名为 “Updatess” 的新选项卡。从那里,你可以一键更新 arozos NAS 系统。是不是很酷呢!
如果你的 Linux 发行版正在使用 systemd(现在大多数都使用),你可以将其添加到 systemd 中,以便在开机时使用 NAS 启动 arozos。如果你知道如何使用 nano,命令很简单。
cd /etc/systemd/system/
sudo systemctl enable systemd-networkd.service systemd-networkd-wait-online.service
sudo nano arozos.service
并将以下内容添加到文件中(假设用户名:pi)
[Unit]
Description=ArozOS Cloud Service
After=systemd-networkd-wait-online.service
Wants=systemd-networkd-wait-online.service
[Service]
Type=simple
ExecStartPre=/bin/sleep 10
WorkingDirectory=/home/pi/arozos/
ExecStart=/bin/bash /home/pi/arozos/start.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
如果用户名不是 “pi”,请更改 WorkingDirectory 和 ExecStart 参数中的路径。
接下来,使用以下启动参数在~/arozos下创建 start.sh
#!/bin/bash
sudo ./arozos -hostname="My NAS" -port 8080
最后启动 systemd 服务。
sudo systemctl start arozos.service
sudo systemctl enable arozos.service
现在,你的 arozos 系统应该可以在启动 NAS 时启动。
arozos 系统运行后(要检查,请使用“sudo systemctl status arozos”),打开 web 浏览器并导航到。
http://{your_pi_IP_Addr}:8080
然后,你将看到此用户注册页面。输入你首选的用户名和密码作为 root 管理员帐户。
提交后,你将被重定向到登录界面。如果一切正常,登录后你将看到一个桌面界面。你可以通过右键单击并选择内置主题或在“个性化”设置中设置自定义路径来更改墙纸。
重要注意事项
1、用户名中只能使用英文,最好不要空格。
2、如果不是以英语为母语的国家,请不要打开浏览器翻译功能,因为这会导致根帐户设置阶段出现一些奇怪的错误。(在 v2.010 或更高版本中修复)
在此阶段,你将无法看到磁盘。你需要将它们安装到 arozos 上,以便 arozos 可以为磁盘提供沙盒层来保护你的数据。
要设置你的磁盘,首先你需要知道磁盘在哪里,以及其中的分区。如果你不知道磁盘格式或分区,并且其中没有重要数据,可以使用 fdisk 命令对其进行完全格式化。
https://linuxhint.com/use-fdisk-format-partition/
格式化并创建文件系统(例如 ext4 或 ntfs)后,你将看到 /dev/sda1 或 /dev/sdb1 下的新设备文件。
假设每个磁盘只有一个 EXT4 格式的分区,并且检测为 /dev/sda1 和 /dev/sdb1。现在,你可以通过在 /mediaroot 中创建两个文件夹来为它们创建装载点。
mkdir /media/storage1
mkdir /media/storage2
然后转到 ArozOS 的 System Settings > Disk & Storage > Storage Pools,并按如下方式进行设置(请参阅随附的示例配置)。
在示例配置中,我们使用 sda1 作为 disk1,使用 sdb1 作为 disk2。
你可能会注意到,除了磁盘名称、ID、设备路径和装载点不同,“存储层次结构”也不同。
“存储层次结构”如果设置为“公共访问文件夹”,则表示每个用户都可以通过“共享磁盘”访问磁盘。任何有权访问磁盘的用户都可以查看、写入和删除上载到磁盘的任何内容。
“存储层次结构”如果设置为“独立用户文件夹”,则表示每个用户在磁盘上都有自己的专用空间,用户无法查看其他人的文件。但是,用户仍然可以通过系统中的“共享”功能共享其文件,并为其他用户提供文件共享链接。
上图显示均来自 v2.010 版。
现在,你已经拥有了一个完整的开源、低成本的 NAS 系统,可以支持多达两个 4TB 的硬盘。
未来,当你需要更多存储时,你可以简单地构建更多存储,因为 ArozOS 提供集群和交叉安装功能(即将所有低功耗 ARM NAS 作为“网络驱动器”安装到一个强大的网关节点中,由Intel/AMD CPU 供电,并通过你的专用域进行访问)
目前,我还正在研究一个替代版本(最后一张照片),用于旧的二手旧硬盘,其中磁盘更容易更换/热插拔。该版本仍处于原型阶段,未来也会开源这个版本。想动手拥有自己的 NAS ,就赶紧试试吧!