采用Raspberry 5搭建

Quick Start

目前已安装服务:

Key Features

一套廉价解决方案。架构如下:

graph TD
    subgraph 家庭内网
        NAS((NAS中控))
        存储{存储单元}
        Windows内网["Win"]
        Mac内网["Mac"]
    end
    
	中继服务器((中继服务器))
	
    subgraph 外网
        Windows外网["Win"]
        Mac外网["Mac"]
        安卓["安卓"]
        iOS["iOS"]
    end

    Windows内网 <-- "smb3" --> NAS
    linkStyle 0 stroke-width:3px,stroke:green;
    Mac内网 <-- "smb3" --> NAS
    linkStyle 1 stroke-width:3px,stroke:green;
    
    NAS <-- "frp" --> 中继服务器
    linkStyle 2 stroke-width:3px,stroke:green;

    Windows外网 <-- "RaiDrive" --> 中继服务器
    linkStyle 3 stroke-width:3px,stroke:green;
    Mac外网 <-- "Mountain Duck" --> 中继服务器
    linkStyle 4 stroke-width:3px,stroke:green;
    安卓 <-- "FolderSync" --> 中继服务器
    linkStyle 5 stroke-width:3px,stroke:blue;
    
    NAS <-- "直连" --> 存储

开销结算:

  • NAS中控:0~几百
    • 树莓派
    • 淘汰下来的旧电脑
  • 存储单元:0~数千
    • 带阵列硬盘柜
    • 普通硬盘柜(NAS中控使用软件组阵列)
    • 淘汰下来的旧U盘等存储设备

架构

  • 管理:树莓派
  • 硬盘柜:?
  • 阵列模式:2盘位 raid1装系统,3盘位raid5装数据?

远程

内网:wayvnc + RealVNC 外网:

视频

内网:DLNA

音频

^4aca41 Navidrome

代码托管

使用Gitea搭建

测试

先测树莓派+硬盘柜速度,如果超过125m/s,则将路由器和网线换千兆以上

为了测试硬盘柜和树莓派系统各个阶段的数据传输速度,我们可以分为几个步骤来逐步测量和分析每一个环节的性能,包括硬盘柜的读写速度、树莓派通过 Samba 3 分发硬盘柜数据的速度,以及其他主机从树莓派获取数据的速度。以下是详细的测试方案: 1. 测试硬盘柜的读写速度 这一步主要是测试硬盘柜通过 USB 3.0 接口连接到树莓派时的读写速度,可以直接在树莓派上进行。 • 工具:hdparm 和 dd 命令在 Linux 系统上可以测试磁盘的读写速度。 • 测试读取速度: 使用 hdparm 命令可以测试硬盘的缓存读速度: sudo hdparm -Tt /dev/sda (这里假设硬盘柜的硬盘在树莓派上显示为 /dev/sda,可以使用 lsblk 或 df -h 来确认硬盘名称) 也可以使用 dd 命令进行连续读取测试: dd if=/dev/sda of=/dev/null bs=1M count=1024 这条命令将从硬盘读取 1 GB 数据并丢弃输出,用于测量读取速度。 • 测试写入速度: 使用 dd 命令测试写入速度: dd if=/dev/zero of=/mnt/usb/testfile bs=1M count=1024 oflag=direct 这条命令会写入 1 GB 的数据到硬盘柜中挂载的路径 /mnt/usb,并测量写入速度。记得在测试完成后删除测试文件: rm /mnt/usb/testfile 解释:hdparm 测试的是缓存性能,dd 更适合测量实际的读写速度。注意 dd 结果中的 MB/s 表示硬盘的顺序读写速度。 2. 测试树莓派通过 Samba 3 分发数据的速度 这一阶段是测试树莓派通过 Samba 3 共享硬盘柜数据时的网络传输速度。需要在树莓派和主机之间测量文件传输速率。 • 测试方法:在树莓派和另一台主机之间传输大文件(如 1 GB 或更大的文件),使用 time 和 rsync 或 scp 命令来测试传输时间。 • 将文件从树莓派上的 Samba 共享目录传输到另一台主机上: time rsync -av —progress /mnt/usb/testfile user@remote_ip:/destination_folder 这里 /mnt/usb/testfile 是共享文件的路径,user 和 remote_ip 是另一台主机的登录信息,/destination_folder 是目标路径。 • 从主机上拉取文件:在其他主机上测试从树莓派上下载文件的速度: time rsync -av —progress user@raspberry_pi_ip:/mnt/usb/testfile /local_destination 测量传输所需时间后,结果中会显示每秒的传输速度。 • 传输速度计算:rsync 和 scp 会显示传输速率(如 MB/s),也可以通过传输时间和文件大小手动计算传输速率。使用命令 time 可以精确测量传输过程的耗时。 3. 测试主机从树莓派获取数据的实际速度测量 Samba 的实际读写速度: 在主机上通过挂载 Samba 共享文件夹,并在共享文件夹内使用 dd 命令测试读写速度。例如,假设你已经在主机上挂载了树莓派的共享文件夹到 /mnt/samba_share。 • 测试读取速度(从树莓派到主机): dd if=/mnt/samba_share/testfile of=/dev/null bs=1M count=1024 这条命令测试主机从树莓派上的共享文件夹读取 1 GB 数据的速度。 • 测试写入速度(从主机到树莓派): dd if=/dev/zero of=/mnt/samba_share/testfile bs=1M count=1024 oflag=direct 这条命令测试主机向树莓派的共享文件夹写入 1 GB 数据的速度。 • 注意:测试完成后记得删除测试文件,避免浪费存储空间: rm /mnt/samba_share/testfile

解释:这些测试可以帮助你了解主机通过 Samba 访问树莓派的硬盘柜时的实际传输性能。通过读取和写入测试,你可以判断实际的网络传输速率和可能存在的瓶颈。

4. 对测试结果的分析

硬盘柜的读写性能:通过第一步的测试,你可以了解硬盘柜的物理性能。如果读写速度远高于网络传输速度,那么瓶颈可能在网络部分。

Samba 传输速度与硬盘柜速度对比:第二步测试可以帮助你了解树莓派通过 Samba 共享数据时的网络传输效率。如果实际传输速度接近千兆网络的理论值(约 100-110 MB/s),说明传输路径优化得比较好。

主机上的实际体验:第三步的测试最贴近实际使用情况,它可以让你直观地看到从主机通过 Samba 访问视频素材时的速度表现。

5. 可能的性能瓶颈与优化

硬盘柜速度限制:如果硬盘柜的速度低于网络带宽,可能需要升级硬盘或调整硬盘柜的配置(如使用更快的 SSD)。

树莓派网络限制:如果树莓派的 USB 3.0 和网络接口没有充分发挥,可以尝试优化树莓派的 Samba 配置,或者确保路由器和网线的质量。

Samba 配置优化:调整树莓派上的 Samba 配置文件 /etc/samba/smb.conf,比如增加 TCP 缓冲区大小等,可以提高传输速度。

通过这些步骤,你可以逐步测试并优化硬盘柜和树莓派在不同使用场景下的传输性能,并根据测试结果调整配置以获得更好的使用体验。

Advance

License

Releases