Featured image of post 我折腾 NAS 的历程(四):一些升级

我折腾 NAS 的历程(四):一些升级

之前的事情:

本文以上一篇的自组 NAS 为基础,升级了一些配置,就性价比而言感觉这钱花得不算太值。

硬件部分

品牌型号参数购买价
CPUIntelE5-2690 v414 核 2.6GHz 规格表¥134(洋垃圾)
内存SamsungM386A4G40DM0-CPBDDR4 2133 MHz 32GB 规格表¥155(洋垃圾)
接口扩展(主控)Marvell88SE9215PCIe2.0x1 转 SATAx4 规格表¥75
总计¥364

CPU

同样是按照之前的设置,使用sysbench粗测的对比如下:

CPU主频TDPEvents/sAvg. Latency
E5-2660 v42.0 GHz105 W17251.861.62 ms
E5-2690 v42.6 GHz (+30%)135 W (+28.6%)22860.48 (+32.5%)1.22 ms (-24.7%)

考虑到这两块 CPU 除了主频和功耗外几乎一致,性能成比例地提升确实是预料之中。也就是说我为了 30% 的性能提升多花了 157.7% 的钱,性价比不算高, 不过主频的提升对于一些多线程优化不好的任务(例如 Minecraft 服务器)还是有用的。

此外我买到的似乎是这个商家的最后一块 E5-2690 v4,我下单后回到详情页就发现这个型号缺货了。

内存

我本来认为这个 32GB 的内存条和之前购买的 16GB 内存条是兼容的,因为我在我的笔记本上用的就是 8GB+32GB 的非对称双通道的配置。 内存条到货之后才发现,虽然这两条单独安装都是能正常启动的(说明两条都没坏),但是两者同时安装的时候,无论放在哪两个插槽,NAS 都无法开机。 这让我感觉很奇怪,奈何也找不到解决方法,只好当作是主板/CPU 不支持,并闲置原来的 16GB 内存条。

PCIE转SATA扩展卡

这个是在淘宝上随便找的一个。因为我需要接的也都是机械硬盘,传输瓶颈还是在机械硬盘的读写上,所以我对速率没什么要求,能跑满机械硬盘的读速就可以。

至于它是不是真的值 75 元就不得而知了。

扩展完 SATA 口之后,机箱内一共有 7 个 SATA 接口,但是只有4个硬盘位,我想下一步应该是购买硬盘支架了。

软件部分

Gitea

Gitea 是开源的代码托管平台。 自己有时候写了一些工具项目,不想向 Github 上传的时候(担心隐私问题,以及大陆地区访问 Github 有时连接不畅),就会传到自建的 Gitea 上。

虽然名字和 Gitee 只差一个字母,但是它们应该没有任何关系。 类似的自建代码托管平台还有 GitLabGogs等。 不用 GitLab 是因为 GitLab 的资源占用太大了,并且我也基本用不到它的 CI/CD 功能。

Gitea 可以直接使用 docker 镜像部署,具体参照 Gitea 官方文档

Immich

Immich 是开源自建的相册服务,类似于谷歌相册,提供了图片管理、人脸识别、地图和智能搜索等功能,并且在 IOS、Android 和网页端都有官方的客户端。

这个项目各方面都挺不错的,缺点是版本更新有点太快了,最快的时候一周能发三四个版本。当然对于项目而言这是好事,是项目活跃的证明,但是对于使用体验而言就不那么好了。 它更新的时候可能会引入 breaking changes,这就要求每次更新前都要到其 github 的发布页查看升级前的注意事项,然后才能用 docker compose 拉镜像。 拉镜像的过程也有些折磨,因为镜像实在太大了。

官方文档里给出了使用 docker compose 部署 Immich 的方法。

LANraragi

LANraragi 是用 Perl 语言编写的自建漫画库和漫画阅读器。 优势是通过浏览器访问,且支持直接从 zip、tar.gz 等压缩文件/归档文件读取图片,而不用手动解压。

缺点是它对 unicode 的支持不太好,我觉得 Lanraragi 在管理漫画方面的功能也比较欠缺,不算特别好用。 可以先找找它的替代品,找不到的话不妨有空自己动手用 golang 实现一个。

官方文档给出了使用docker部署的方法。

主页(homer)

NAS上运行的服务多了,每次访问服务都要输地址(无论是 ip + 端口还是内网域名)会很麻烦,于是用 homer 搭建了 NAS 的入口页。

由于是纯静态的网页(改完配置也不需要重新编译之类的),部署的时候进项目的 release 页下载编译好的 zip 文件解压,然后直接在 nginx 里添一个 server 就行,也可以改 default,让它成为路由无匹配时的默认页面。配置时只要改assets/config.yml,在浏览器里刷新页面(可能需要在开发者工具的 networks 里 Disable Cache)就能看到更改了。

百度网盘客户端

之前在复习备考的时候,有很多考研资料是通过百度网盘流传的。 又因为百度网盘的限速,和它的一些操作让我不是很想在本机安装它的客户端,催生了我在 NAS 上部署其客户端的需求。 一搜果然有大佬做好了百度网盘客户端的 docker 镜像,其中之一是 gshang2017 做的

把指令转换成docker-compose.yaml文件,然后docker compose up -d,不出意外用浏览器访问 NAS 的 5800 端口就能看到登录界面了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
services:
  baidunetdisk:
    image: johngong/baidunetdisk:latest
    volumes:
      - ./config:/config
      - <path to downloads>:/config/baidunetdiskdownload
    container_name: baidunetdisk
    ports:
      - 5800:5800 # web
      - 5900:5900 # vnc
    restart: unless-stopped
    environment:
      - VNC_PASSWORD=12345678
      - USER_ID=1000
      - GROUP_ID=1000
      - NOVNC_LANGUAGE="zh_Hans"

因为这个镜像是以官方的 linux 客户端为基础制作的,功能基本上与之相同。除了广告点不开(这是好事)之外我在使用过程中没有遇到什么问题。

饥荒服务器

我的舍友想要联机玩饥荒(Don’t Starve (Together)),于是拜托我在 NAS 上搭了一个饥荒服务器(不过我自己没什么兴趣就是啦)。

我在 Docker 上没找到下载量较多的镜像,于是按照知乎Fandom wiki 的教程搭建了环境(配置起来还挺麻烦),然后写了dnst.service让它作为 systemd 服务运行和自启动:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Unit]
Description=DoNotStarveTogether Server
After=network.target

[Service]
User=steam
Group=steam
Type=simple
WorkingDirectory=/home/steam
ExecStart=/home/steam/rundst.sh
TimeoutStopSec=2min
Restart=always

[Install]
WantedBy=multi-user.target

虚拟化(KVM)

关于虚拟机,我之前只用过图形界面的 VirtualBox,这是我第一次接触 Linux 服务器上常用的 Kernel-based Virtual Machine(KVM)。 我是按照这篇教程在服务器上安装的KVM,按照这篇教程在本机(Arch Linux)安装了Virtual Machine Manager。

目前只是在虚拟机里装好了 Ubuntu 系统,还没有深入折腾。

使用 Hugo 构建
主题 StackJimmy 设计