+++ author = "FlintyLemming" title = "龙芯 3A6000 手搓 NAS 记录与平台体验" slug = "0772500cd11f4f35b78b108337f7d176" date = "2023-11-05" description = "体验不错,未来可期" categories = ["HomeLab", "Linux"] tags = ["Loongson", "NAS"] image = "https://hf-public-source.mitsea.com:8840/images/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.avif" +++ 最近到收了个龙芯 3A6000 的平台,简单测了下,首先由于是自主架构,所以 Windows 肯定是不行。然后内置 GPU 只能亮机,试了 Arch、UOS、AOSC 在安装或者启动时都不同程度遇到显示问题,桌面基本上是不可用。不过考虑到 loongarch64 Linux 内核已经并入主线,所以硬件支持和基本 Linux 软件还是没问题,拿来做 NAS 似乎还不错。 ![](https://hf-public-source.mitsea.com:8840/images/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.avif) 由于我已经有一个群晖 DS1621+,所以这台机器的定位就是取代我当前使用 unraid 作为 HyperBackup 备份 NAS 的角色。梳理了一下他主要承担如下几个作用:smb 共享、rsync 服务端做备份、qBittorrent pt下载和保种。 普通 Linux 做简单 NAS 很简单,按照 ChatGPT 的指导操作就行,我主要记录下龙芯平台目前遇到的坑。介绍前先放 NAS 场景的部分测试。 ## 简单测试 ### 下述软件包运行情况 ![](https://hf-public-source.mitsea.com:8840/images/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.avif) ### qBittorrent 高强度下载测试 ![](https://hf-public-source.mitsea.com:8840/images/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.avif) 下载速度 259MB/s 连接用户 575 完全不卡,性能完全够用。这个速度我在 AMD V1500B 上用 Docker 跑 WebUI 就完全打不开了。 ### 网络性能测试 ![](https://hf-public-source.mitsea.com:8840/images/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.avif) 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)