1. 为什么选择树莓派搭建NAS?

去年我帮朋友组装了一台传统NAS,花费近3000元。后来偶然用闲置的树莓派4B试做NAS,成本不到800元就实现了基础功能。这种性价比差异让我开始深入研究树莓派NAS方案。

树莓派作为NAS核心有三大不可替代的优势:

  • 硬件成本可控 :树莓派5单板仅400元左右,加上硬盘盒和旧硬盘就能组成基础存储系统
  • 能耗经济性突出 :实测树莓派5带2TB机械硬盘待机功耗仅5W,年电费约25元
  • 扩展性强 :GPIO接口可连接温湿度传感器监控存储环境,USB3.0接口支持高速外接阵列

但需要注意两个性能瓶颈:

  1. 千兆网口理论传输速度125MB/s,实际受限于USB3.0控制器共享带宽
  2. 处理加密传输时CPU占用率可能达到70%以上

实测数据:树莓派5通过SMB协议传输10GB视频文件包,平均速度稳定在90MB/s,完全能满足4K视频流需求

2. 硬件选型与系统准备

2.1 硬件配置方案

根据存储需求推荐两种配置:

  • 基础版 (<4TB):

    • 树莓派5(4GB内存版足够)
    • 2.5英寸机械硬盘+USB3.0硬盘盒
    • 32GB TF卡(系统盘)
    • 金属外壳(改善散热)
  • 进阶版 (≥4TB):

    • 树莓派5+主动散热风扇
    • 3.5英寸硬盘+带电源硬盘盒
    • 64GB TF卡
    • USB千兆网卡(解决带宽共享问题)

避坑提示:避免使用劣质硬盘盒,我遇到过供电不足导致硬盘频繁掉线的情况。推荐ORICO 2588U3型号,带独立12V电源接口。

2.2 系统安装要点

使用官方Raspberry Pi Imager时特别注意:

  1. 在高级设置中(齿轮图标):

    • 开启SSH服务
    • 配置WiFi连接(即使计划用有线网络)
    • 设置时区为Asia/Shanghai
  2. 首次启动后务必执行:

sudo apt update && sudo apt full-upgrade -y
sudo raspi-config

在配置界面中:

  • 选择"Advanced Options"→"Expand Filesystem"
  • 设置GPU内存为16MB(足够NAS使用)

3. 存储配置实战

3.1 硬盘初始化最佳实践

连接硬盘后按以下流程操作:

  1. 查看设备标识:
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT

典型输出:

sda           4.5T       # 新硬盘
mmcblk0      29.8G /     # 系统卡
  1. 使用parted工具分区(比fdisk更适合大容量硬盘):
sudo parted /dev/sda
(parted) mklabel gpt       # 创建GPT分区表
(parted) mkpart primary 0% 100%  # 全盘单分区
(parted) quit
  1. 推荐使用btrfs文件系统:
sudo mkfs.btrfs -L NAS_Storage /dev/sda1

优势:

  • 支持数据校验和自动修复
  • 可实现快照备份
  • 透明压缩节省空间

3.2 智能挂载配置

修改/etc/fstab时建议添加这些参数:

/dev/sda1  /mnt/nas  btrfs  defaults,noatime,compress=zstd:3,autodefrag  0  2

参数解析:

  • compress=zstd:3:启用ZSTD压缩(级别3)
  • noatime:减少写操作
  • autodefrag:自动碎片整理

创建共享目录时建议的权限方案:

sudo mkdir -p /mnt/nas/{public,private}
sudo chown -R pi:pi /mnt/nas/public
sudo chmod 1777 /mnt/nas/public  # 类似/tmp的粘滞位

4. 网络服务配置进阶

4.1 Samba调优方案

编辑/etc/samba/smb.conf时在[global]段添加:

[global]
   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
   min receivefile size = 16384
   write cache size = 524288
   getwd cache = yes
   max xmit = 65536

共享配置示例:

[Media]
   path = /mnt/nas/public
   valid users = @smbusers
   browseable = yes
   writable = yes
   create mask = 0664
   directory mask = 0775
   veto files = /.DS_Store/.Trashes/
   delete veto files = yes

4.2 安全加固措施

  1. 防火墙设置:
sudo apt install ufw
sudo ufw allow from 192.168.1.0/24 to any port 445
sudo ufw enable
  1. 创建专用用户组:
sudo groupadd smbusers
sudo usermod -aG smbusers pi
sudo smbpasswd -a pi
  1. 定期更新检查脚本:
#!/bin/bash
apt update && apt list --upgradable
samba-tool dbcheck

5. 实用功能扩展

5.1 自动化备份方案

使用rsync+systemd定时备份:

  1. 创建备份服务文件/etc/systemd/system/nas-backup.service:
[Unit]
Description=NAS Backup Service

[Service]
Type=oneshot
ExecStart=/usr/bin/rsync -avz --delete /home/pi/important /mnt/nas/backups
  1. 创建定时器/etc/systemd/system/nas-backup.timer:
[Unit]
Description=Daily Backup

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target
  1. 启用服务:
sudo systemctl enable nas-backup.timer
sudo systemctl start nas-backup.timer

5.2 状态监控方案

安装Grafana+Prometheus监控:

docker run -d -p 3000:3000 --name grafana grafana/grafana
docker run -d -p 9090:9090 --name prometheus prom/prometheus

配置prometheus.yml监控项:

scrape_configs:
  - job_name: 'raspberry'
    static_configs:
      - targets: ['localhost:9100']

使用node_exporter采集数据:

wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-armv7.tar.gz
tar xvf node_exporter-*.tar.gz
./node_exporter-*/node_exporter &

6. 性能优化实测

通过实际测试对比不同配置效果:

配置方案 连续写入速度 随机4K读取 CPU占用率
机械硬盘默认 85MB/s 0.8MB/s 45%
机械硬盘调优 92MB/s 1.2MB/s 38%
SSD默认 105MB/s 28MB/s 32%
SSD调优 118MB/s 35MB/s 25%

调优方法:

  1. 在/etc/sysctl.conf添加:
vm.swappiness=10
vm.vfs_cache_pressure=50
  1. 为Samba增加写缓存:
echo $((16*1024*1024)) > /proc/sys/vm/dirty_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_background_bytes

这套配置已经稳定运行8个月,经历过三次断电意外,得益于btrfs文件系统的稳定性,数据完整性检查全部通过。对于家庭用户来说,树莓派NAS的性价比和可玩性确实远超传统方案

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐