Eisen's Blog

© 2022. All rights reserved.

解决 TrueNAS Scale HDD 硬盘莫名读写的问题

2022 December-15

最近攒了一台机器作为家里的 NAS,操作系统选择了 TrueNAS Scale ,之所以用这个系统原因有两个:

  1. 它是基于 Debian 的,对我来说比较熟悉,FreeBSD 什么的实在是有点陌生,并且据说那边的驱动跟进也不是很好(当然是据说,我没实操过)
  2. TrueNAS Scale 里面的 App Store 是基于 helm charts 的,TrueNAS Scale 在开启 Apps 这个功能后会跑了一个 k3s 来管理这些 apps 这个操作着实有点激进,不过我还是愿意尝试一下的,也是因为我对这些东西比较熟悉

screenshot of truenas scale applications

基本环境准备好了之后把由 5 块 HDD 组成的 RaidZ1 作为了主存储池就开始使用了。用了一段时间发现系统有一个小小的问题:这些 HDD 差不多每几秒就会卡卡响两下,不是什么异常的声音,就是正常的读写的声音,可我当时并没有使用它做什么事情,而且这种有节奏的噪音让我也有点难受。看了下监控,io 模式就是这个样子:

truenas scale hdd idle read write

首先我就去 google 了,搜来搜去,用关键词「truenas scale idle read write」找到了 TrueNas Scale constant writes while idle 这个问题,下面的回复基本就就是清楚了原因,我这里简单复述下:

TrueNAS 会默认把你建立的第一个 data pool 设定为 System Dataset 然后会在这里塞日志等乱七八糟的东西,尤其是系统日志这种东西它就会持续的对系统进行写入。

既然 HDD 读写声音很讨厌,那我就还是再加一个 nvme 的盘做成存储池来用吧,幸好我的主板 m.2 的插槽管够。插上 nvme 硬盘并设置一个新的存储池后,通过「System Settings」-「Advanced」-「System Dataset Pool」把它修改成心态添加的 nvme 存储即可。

config system dataset

如果要使用上文提到的 Apps 的话,TrueNAS Scale 也会要求你指定存储的位置,考虑到性能和噪声也要把它指向 nvme 的存储。

所以对于 TrueNAS Scale 来说,最好要准备三个部分的存储:

  1. 系统盘,16 GB 就够了(此处应该有傲腾 M10):TrueNAS 就是把系统放这里,其他乱七八糟的东西统统要放到额外的存储池里
  2. 主存储,就是放数据的地方,要做好冗余方案:我这里依然选择了老土 HDD,当然还是考虑到价格比较便宜
  3. 应用存储,可以认为是工作空间:把系统日志,Apps 的一些配置什么的都扔这里,对我来说这些数据不是那么重要,我直接就放了一个 m.2 的 nvme。由于这个空间会因为 Apps 的各种操作和系统日志而频繁读写,使用 ssd 很有必要

在 EasePi ARS2 安装 OpenClash

2022 December-13

最近家里的 EasePi ARS2 系统盘满了,想了想没什么重要的东西直接做了系统重制,作为旁路由第一步就是重装代理,这里简单记录下。

下载 openclash

OpenClash 下载 OpenWrt 的客户端,在 Release 也面也包含了安装的依赖。

openclash release page

下载之后本来打算用 scp 拷贝过去,但感觉 openwrt 里的这个 ssh 有点不太一样,scp 会失败,最终还是要从页面的「系统」-「文件传输」把下载的安装包传过去。

upload file in asr2

安装 openclash

首先安装相应的依赖,然后执行命令 opkg xxx.ipk 就可以了。安装成功之后重新登录 ARS2 的管理页面在左侧导航栏的「服务」下面就会多了「OpenClash」了。下一步按照 OpenClash 版本更新 介绍的更新流程,去「OpenClash」-「全局设置」-「版本更新」这个页面(有点难找),点击下面的「更新内核」,自动下载 clash 内核。

update clash core

添加配置并启动

下一步就要去「配置文件订阅」更新订阅的代理源了,这里我没办法说的更多了,懂得都懂。最后在「运行状态」标签页滑到最下面点击「启动 OPENCLASH」。

测试

ssh 进去,curl google.com 感受下效果。

后面就可以按照 使用 EasePi ARS2 做旁路由 的流程把这个设备设置成旁路由使用了。


使用 EasePi ARS2 做旁路由

2022 December-10

最近折腾了下那个一直放在家里的 EasePi ARS2 ,把它做成了家里的一个旁路由,这里记录一下。

ars2

首先这个东西就是一个非常正统的「软路由」了,搞这个东西的基本用法应该就是把它当个路由器直接接管家里网络的三个方面:

  1. 接入 ISP 的光猫,拨号上网
  2. 作为默认网关,成为家里所有设备的默认网络出口
  3. 支持 dhcp 和 dns 服务,可以为家里的其他设备分配 ip 设置默认 dns

当然,用这个东西而不用自己买的路由器有如下两个好处:

  1. 通常这个东西的性能会更好,在设备很多的时候也不至于出现性能问题,成为网络瓶颈
  2. 大部分人用这个东西都是为了在这台设备上安装一些代理,然后所有的内网的设备就可以访问各种网站了,这样就省的每个设备都设置代理了,毕竟每个设备各种操作系统设置代理也很麻烦的,尤其是有些设备在安装阶段都需要链接外网,根本没有机会在本机设置代理

不过这并不代表原来的路由器可以扔了,毕竟 ARS2 不是个无线路由器,无法支持 wifi 的,原来的路由器还是要当 AP 继续发挥作用的。

为什么作为旁路由

不过直接把这种软路由做成主路由器有三个问题:

  1. 原来的路由器要修改成 AP 模式,还要额外的设置...麻烦
  2. 这台机器其实还有其他的功能,比如可以安装点乱七八糟的插件把它做成个小 NAS,那如果稍有不慎把它搞坏了,那全屋子的网就没了
  3. 这个东西主要是作为代理用的,但众所周知现在的代理由于种种原因都没有那么稳定,且配置那种规则也有一定风险,让所有的设备都翻墙其实也夹带着让所有设备都断网的风险,尤其是如果家里的网络使用者很多,且不是所有人都有使用代理的需求,全屋过代理出力不讨好

所以做成旁路由,不开通 DHCP 只是支持流量转发和 DNS 服务即可,这样子全屋设备默认依然连接主路由器,即使软路由玩坏了也不耽误其他设备正常使用,需要翻墙的设备主动修改默认网关到软路由就可以了。

怎么设置

官方有文档和视频教程 https://doc.linkease.com/zh/guide/easepi/common.html#%E6%97%81%E8%B7%AF%E7%94%B1%E6%A8%A1%E5%BC%8F 按照这个设置就可以了。

怎么修改默认网关

side router

这里就以 mac 为例做个记录:

「配置 IPV4」选择为「手动」,然后「路由器」更改为软路由的 IP。

wifi tcp ip page

点击左侧的「DNS」把这里的 DNS 服务器也修改成软路由的 IP。

wifi dns

目前我的 truenas scale 就修改了默认网关指向了软路由,这样可以让 truenas scale 里的 k3s 无需额外的设置就能拉到各种镜像了,非常的省心。但如果是笔记本之类的便携设备,这么做会导致你在更换设备使用的地方后无法上网(别问我怎么知道的),一定要记得切换回来。