+++
author = "FlintyLemming"
title = "龙芯 3A6000 手搓 NAS 记录与平台体验"
slug = "0772500cd11f4f35b78b108337f7d176"
date = "2023-11-05"
description = "体验不错，未来可期"
categories = ["HomeLab", "Linux"]
tags = ["Loongson", "NAS"]
image = "https://img.mitsea.com/blog/posts/2023/10/%E9%BE%99%E8%8A%AF%203A6000%20%E6%89%8B%E6%90%93%20NAS%20%E8%AE%B0%E5%BD%95%E4%B8%8E%E5%B9%B3%E5%8F%B0%E4%BD%93%E9%AA%8C/eberhard-grossgasteiger-W7l2qAUKWcs-unsplash.jpg?x-oss-process=style/ImageCompress"
+++

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

![CPU 照片](https://img.mitsea.com/blog/posts/2023/10/%E9%BE%99%E8%8A%AF%203A6000%20%E6%89%8B%E6%90%93%20NAS%20%E8%AE%B0%E5%BD%95%E4%B8%8E%E5%B9%B3%E5%8F%B0%E4%BD%93%E9%AA%8C/IMG_4370.jpeg?x-oss-process=style/ImageCompress)

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

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

## 简单测试

### 下述软件包运行情况

![](https://img.mitsea.com/blog/posts/2023/10/%E9%BE%99%E8%8A%AF%203A6000%20%E6%89%8B%E6%90%93%20NAS%20%E8%AE%B0%E5%BD%95%E4%B8%8E%E5%B9%B3%E5%8F%B0%E4%BD%93%E9%AA%8C/Untitled.png?x-oss-process=style/ImageCompress)

### qBittorrent 高强度下载测试

![](https://img.mitsea.com/blog/posts/2023/10/%E9%BE%99%E8%8A%AF%203A6000%20%E6%89%8B%E6%90%93%20NAS%20%E8%AE%B0%E5%BD%95%E4%B8%8E%E5%B9%B3%E5%8F%B0%E4%BD%93%E9%AA%8C/Untitled%201.png?x-oss-process=style/ImageCompress)

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

### 网络性能测试

![](https://img.mitsea.com/blog/posts/2023/10/%E9%BE%99%E8%8A%AF%203A6000%20%E6%89%8B%E6%90%93%20NAS%20%E8%AE%B0%E5%BD%95%E4%B8%8E%E5%B9%B3%E5%8F%B0%E4%BD%93%E9%AA%8C/Untitled%202.png?x-oss-process=style/ImageCompress)

1500 MTU 单线程跑满 10Gbps

## 选择发行版

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

[旧世界与新世界 | 咱龙了吗？](https://areweloongyet.com/docs/old-and-new-worlds/)

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

### Arch Linux

[下载地址](https://mirrors.wsyu.edu.cn/loongarch/archlinux/iso/)

**pros**

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

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

**cons**

万兆网卡 lspci 能识别到但是 ip link 里看不到，直接就用不了。这个问题先发了论坛[帖子](https://bbs.loongarch.org/d/313-intel-x710)等修

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

### Debian

Debian 据说官方已经支持 loongarch64，但我官网没找到 ISO 包，所以我是直接下的 pve，四舍五入也是 Debian。[下载地址](https://mirrors.apqa.cn/proxmox/isos/) [发布地址](https://foxi.buduanwang.vip/virtualization/pve/2924.html/)

**pros**

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

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

PCIe 硬件使用都正常

**cons**

zfs 不能用

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

### AOSC

[发行地址](https://aosc.io)

**pros**

社区活跃，开发者积极

PCIe 硬件用起来也都正常

**cons**

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

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

## scrutiny 监控硬盘 SMART

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

安装 `golang-go` 和 `make` 后，从 [GitHub 仓库](https://github.com/AnalogJ/scrutiny/releases)下载源码直接 `make binary-collector` 就可以把二进制文件 `scrutiny-collector-metrics` 编译出来，之后编辑计划任务定时跑就行。

在 [https://disks.mitsea.com](https://disks.mitsea.com) 可以看到我的所有硬盘

## mdadm 创建阵列并挂载

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

1. 清理硬盘，删除硬盘上所有分区，然后每个磁盘创建一个普通 ext4 分区
2. 使用 mdadm 创建 raid5 阵列，命令 be like

    ```bash
    sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
    ```

3. 等待阵列创建完毕，一定要等待创建完再进行下面的步骤，不然会卡 I/O。可以通过下面的命令查看进度

    ```bash
    cat /proc/mdstat
    sudo mdadm --detail /dev/md0
    ```

4. 格式化

    ```bash
    sudo mkfs.ext4 /dev/md0
    ```

5. 挂载

    ```bash
    sudo mkdir /mnt/raid5
    sudo mount /dev/md0 /mnt/raid5
    ```

## 配置 Samba

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

1. 备份原始配置文件：

    ```bash
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
    ```

2. 编辑 Samba 的配置文件来添加分享：

    ```bash
    sudo nano /etc/samba/smb.conf
    ```

    在文件的底部添加：

    ```config
    [NAS]
    path = /mnt/raid5
    writeable = yes
    browseable = yes
    create mask = 0777
    directory mask = 0777
    public = no
    ```

3. 创建 samba 用户，如果是 root 就使用 `adduser your_username` 创建一个新用户后再执行

    ```bash
    sudo smbpasswd -a your_username
    ```

4. 如果用户的用户组权限不够的话，可以改一下文件夹权限

    ```bash
    sudo chown your_username:your_username /path/to/your/directory
    sudo chmod 0700 /path/to/your/directory
    ```

5. 重启 Samba 服务：

    ```bash
    sudo service smbd restart
    ```

## 配置 Rsync 服务端

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

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

    ```config
    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

    ```plain text
    flintylemming:xxxx
    ```

3. 启动 rsync

    ```bash
    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](https://unsplash.com/@eberhardgross?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/W7l2qAUKWcs?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)
