Featured image of post 龙芯 3A6000 手搓 NAS 记录与平台体验

龙芯 3A6000 手搓 NAS 记录与平台体验

体验不错,未来可期

最近到收了个龙芯 3A6000 的平台,简单测了下,首先由于是自主架构,所以 Windows 肯定是不行。然后内置 GPU 只能亮机,试了 Arch、UOS、AOSC 在安装或者启动时都不同程度遇到显示问题,桌面基本上是不可用。不过考虑到 loongarch64 Linux 内核已经并入主线,所以硬件支持和基本 Linux 软件还是没问题,拿来做 NAS 似乎还不错。

CPU 照片

由于我已经有一个群晖 DS1621+,所以这台机器的定位就是取代我当前使用 unraid 作为 HyperBackup 备份 NAS 的角色。梳理了一下他主要承担如下几个作用:smb 共享、rsync 服务端做备份、qBittorrent pt下载和保种。

普通 Linux 做简单 NAS 很简单,按照 ChatGPT 的指导操作就行,我主要记录下龙芯平台目前遇到的坑。介绍前先放 NAS 场景的部分测试。

简单测试

下述软件包运行情况

qBittorrent 高强度下载测试

下载速度 259MB/s 连接用户 575 完全不卡,性能完全够用。这个速度我在 AMD V1500B 上用 Docker 跑 WebUI 就完全打不开了。

网络性能测试

1500 MTU 单线程跑满 10Gbps

选择发行版

龙芯的发行版分为新世界和旧世界,旧世界我直接排除了,选择 Linux 6.x 内核的新世界发行版。

旧世界与新世界 | 咱龙了吗?

新世界我看了下主要有几个发行版:Arch Linux、Debian、AOSC,其他我也试了几个,我主要说一下这三点的体验。我最终选的是 pve。

Arch Linux

下载地址

pros

软件包似乎是最全的 Linux 发行版,常用工具都是开箱即用

维护比较勤快,有专人负责,有论坛社区

cons

万兆网卡 lspci 能识别到但是 ip link 里看不到,直接就用不了。这个问题先发了论坛帖子等修

如果用 GUI 的话,正如开头所说的,内置核显不好使,建议加一块(推荐为)北极星架构的 AMD 显卡

Debian

Debian 据说官方已经支持 loongarch64,但我官网没找到 ISO 包,所以我是直接下的 pve,四舍五入也是 Debian。下载地址 发布地址

pros

软件包也很全,常用工具我看也都有

虚拟机用起来没什么问题,要折腾的话可以考虑先装这个,然后把其他发行版都体验一圈

PCIe 硬件使用都正常

cons

zfs 不能用

ISO 安装包的 EFI 引导文件似乎命名不规范,导致 3A6000 没法直接从安装盘启动,需要在 BIOS 手动创建启动项或者在 UEFI Shell 里手动执行 efi 文件启动

AOSC

发行地址

pros

社区活跃,开发者积极

PCIe 硬件用起来也都正常

cons

官方软件源里的软件包太少,而且有的依赖包版本有点老,导致即便从别的发行版里偷二进制文件来用都不一定好使

如果用 GUI 的话也是跟 Arch 一样,否则开机显示桌面直接黑屏

scrutiny 监控硬盘 SMART

因为我已经安装过 Web 端,所以我只需要在这台机器上定时跑 collector 即可。

安装 golang-gomake 后,从 GitHub 仓库下载源码直接 make binary-collector 就可以把二进制文件 scrutiny-collector-metrics 编译出来,之后编辑计划任务定时跑就行。

https://disks.mitsea.com 可以看到我的所有硬盘

mdadm 创建阵列并挂载

由于我有7个相同容量的 HDD,所以我可以直接用 mdadm 创建一个 raid5 阵列。mdadm 软件包里有,直接 apt install 即可。下面简单介绍下步骤,所有分区操作不详细说明,直接用 cfdisk 很简单。

  1. 清理硬盘,删除硬盘上所有分区,然后每个磁盘创建一个普通 ext4 分区

  2. 使用 mdadm 创建 raid5 阵列,命令 be like

    1
    
    sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
    
  3. 等待阵列创建完毕,一定要等待创建完再进行下面的步骤,不然会卡 I/O。可以通过下面的命令查看进度

    1
    2
    
    cat /proc/mdstat
    sudo mdadm --detail /dev/md0
    
  4. 格式化

    1
    
    sudo mkfs.ext4 /dev/md0
    
  5. 挂载

    1
    2
    
    sudo mkdir /mnt/raid5
    sudo mount /dev/md0 /mnt/raid5
    

配置 Samba

samba 也是可以直接安装,软件包里有

  1. 备份原始配置文件:

    1
    
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
    
  2. 编辑 Samba 的配置文件来添加分享:

    1
    
    sudo nano /etc/samba/smb.conf
    

    在文件的底部添加:

    1
    2
    3
    4
    5
    6
    7
    
    [NAS]
    path = /mnt/raid5
    writeable = yes
    browseable = yes
    create mask = 0777
    directory mask = 0777
    public = no
    
  3. 创建 samba 用户,如果是 root 就使用 adduser your_username 创建一个新用户后再执行

    1
    
    sudo smbpasswd -a your_username
    
  4. 如果用户的用户组权限不够的话,可以改一下文件夹权限

    1
    2
    
    sudo chown your_username:your_username /path/to/your/directory
    sudo chmod 0700 /path/to/your/directory
    
  5. 重启 Samba 服务:

    1
    
    sudo service smbd restart
    

配置 Rsync 服务端

rsync 软件包里也有,直接安装就行

  1. 使用 sudo nano /etc/rsyncd.conf 修改配置文件,内容 be like

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    
    uid = <有权限的用户的uid>
    gid = <有权限的用户的gid>
    use chroot = yes
    max connections = 10
    strict modes = yes
    log file = /var/log/rsync.log
    timeout = 300
    
    [HyperBackup]
    path = /mnt/raid5/HyperBackup
    comment = Backup folder
    read only = no
    list = yes
    auth users = flintylemming
    secrets file = /etc/rsyncd.secrets
    hosts allow = YOUR_ALLOWED_IP_RANGE_OR_ADDRESS
    
  2. 使用 sudo nano /etc/rsyncd.secrets 创建密码文件,内容 be like

    1
    
    flintylemming:xxxx
    
  3. 启动 rsync

    1
    
    sudo rsync --daemon
    

安装 qBittorrent

软件包里也有,直接安装就行。不要 GUI 的话,就安装 qbittorrent-nox

这个没什么好配置的,直接启动后在 WebUI 里配置就行。新建一个 screen 或者创建一个 systemctl 服务直接运行 qbittorrent-nox 即可。建议运行前先执行 export LANG=zh_CN.UTF-8 把当前会话的 shell 语言改成中文,不然下载含有汉字的文件夹资源,汉字都会变成.。

简评

从之前听闻 LoongArch 合并入 Linux 5.19 主线后,到我实际上手 3A6000 以一个垃圾佬的角度测试设备的情况来说,我认为说龙芯平台对于主流硬件支持已经比较好了,驱动基本不缺。而且性能也有主流水平。

软件方面 gcc、go、python 等主流语言框架也都支持,维护比较好的发行版软件源对于常用软件也基本做到了开箱即用,少数不能用的自己编译一下也不太麻烦。

还没有体验过 CPU 规模比较大的龙芯产品,但我觉得只要把软件包这块积极维护好还是未来可期的。

Photo by eberhard 🖐 grossgasteiger on Unsplash