OMV硬件和软件升级

此前用废旧笔记本刷上OMV改了一个NAS,但总因为散热问题,当心着火(实际上温度一直不高)。因此,最近对家里的NAS做了一次软硬件的升级。

硬件升级

硬件做的改造主要是:

  1. 从笔记本换成了台式机;

  2. 将原本AIO的openwrt拆分出来,单独用一个小主机做openwrt的硬件设置;

  3. 客厅多媒体设备使用千兆交换机直连;

笔记本换台式机

从笔记本换台式机的需求之一是,尽可能的减少成本,在好朋友@qhw0的帮助下,定制了以下的台式机设备:

硬件价格备注
七彩虹CQ1900M主板110.00咸鱼,包含4GB内存
台达NX350电源70.00咸鱼,不包含电源线
先马M2机箱89.80京东自营
金士顿240GB SSD168.98京东自营,笔记本拆机,但是买了不到两个月,算作原价
西数1TB 机械0.00五六年前买的,读写很少,平均成本算作0
SATA硬盘线0.00两三年前的剩余材料,平均成本算作0
电饭煲线0.00用作电源线,厨房有其他线可以给电饭煲使用

以上总计:438.78元

在保证硬件性能不降低的情况下,以上设备可能不太好再降低预算了。(机箱可以换成鞋盒,但是又陷入了我当心的着火问题。)

七彩虹CQ1900M主板的特性有:

  1. 集成赛扬J1900(四核四线程)CPU
  2. TDP功耗15w
  3. 提供1个千兆有线网口
  4. 支持2个内存插槽(DDR3 1066/1333MHZ)
  5. 支持2个SATA 2.0接口
  6. 提供1个PCIE2.0 X16插槽,2个PCIE X1插槽
  7. 180mm*215mm mATX规格

我主要是看中千兆网口,这是必须条件,需要注意,有些类似规格的主板或者mini主机不提供千兆网口。对于家庭NAS目的来说,2个内存插槽扩充到8GB内存也是完全足够使用的,目前4GB的容量也足够我使用。该主板只有2个SATA接口,除去一个系统盘,那么只剩下一个存储盘了,但是可以使用PCIE转SATA卡,用以提供更多的SATA接口。

我目前配置了一块SSD做系统盘,一块1TB机械做存储盘。没有配备CPU风扇或机箱风扇,没有遇到明显的发热问题。不过我这快机械盘的噪声有点大,会和机箱共振(机箱摆放在电视柜上),目前做法是在机箱的垫脚上垫了海绵以降低和电视柜的共振。

台达NX350是朋友推荐的,主要特性是输出功率稳定。该电源提供的SATA供电线只有三个,如果后期需要扩充硬盘的话,需要再接4Pin转SATA供电。不过目前的机箱只有2个3.5寸机械硬盘位,所以SATA电源线是足够使用的。

电饭煲线和机箱不太搭,一个白色的,一个黑色的,但是没必要再去买根线了。使用非原装电源线需要注意线材的负载,不过一般电饭煲电源线的负载是足够的(基本是2000w)。

openwrt硬件

在更换硬件之前,我使用的是All in One的方案,在OMV中使用docker运行openwrt,这样的问题有两个:

  1. host和docker通信不太会调,导致host不可以走代理,使用再增加一个macvlan的中转方案也没能解决这个问题;

  2. 网口限制,虽然局域网设备直连,但因为是AIO,所以共用网口和线路的最大速率,因此当心会有一些极端情况出现,继而影响家庭网络;

参考了一些电视盒子,性价比都不太理想,最后采用的是J1800方案。在咸鱼上淘了一个二手盖网魔盒,135元,J1800集成主板,一个千兆网口,2.4G无线网卡,带2GB内存、16GB固态。

千兆交换机

使用交换机主要是为了提高内网访问速率。因为是租的房子,埋的网线猜测是100M的(设备直连测速大概是200Mbps),不使用交换机的话,家庭的物理线路就会成为网络访问的最大瓶颈。在使用交换机之前的网络拓扑大致如下:

https://bu.dusays.com/2022/12/14/6399ce78bd12e.png
使用交换机之前

因为家里是300Mbps的单宽带,又因为路由器<-->openwrt的通路也认为可以达到300Mbps(一些小损失就忽略了),因此这时候可以认为访问外网不受影响。但是这时候内网访问nas的速率也最多只能到300Mbps,而且一般是无法持续维持的,并且又要“和外网共用线路”(参考上文的说法),这就不太合理了。(为什么不使用无线网络?一是无论使用mesh方案或者升级无线网卡都需要增加不少成本,二是实际体验不好,稳定性不足。(mesh方案没试验过,没钱))所以,此次改造的核心目的是提高nas和内网设备之间的物理线路的速度。

那么,在使用交换机+分离openwrt之后,家庭网络拓扑如下:

https://bu.dusays.com/2022/12/14/6399ce78bd254.png
使用交换机+分离openwrt之后

可以看到,nas和电脑/游戏机/电视之间可以通过千兆线路直连,对使用体验有明显提升,测试速度大概在800Mbps左右。当然,手机和nas之间的体验暂时还是想到又便宜又好的方案,不过手机对nas的访问比较少,目前也不需要大带宽。

以上,改造前后都在openwrt设备上标记了一个lan口,是为了说明使用的是单臂路由的方案,又因为是全双工,所以影响不是很大。

软件升级

软件升级主要有:

  1. OMV5升级到OMV6;

  2. 重新设计用户权限和共享目录权限;

  3. 重新设定docker bind目录;

  4. 添加了code-server;

  5. openwrt使用官方镜像;

OMV5升级到OMV6只是因为换了设备,原来的系统复制到新设备上总有些问题,因此就索性刷了最新的OMV6,不过我个人认为UI还是好看了很多的,这是现在的仪表盘页面。

https://bu.dusays.com/2022/12/14/6399d69aaa7cd.png
OMV6

用户权限、共享目录

修改用户权限和控制共享目录主要是为了控制个人隐私,比如未来家里来了访客,是可以访问public权限的目录,这里只存放一些可以被所有人共享的内容,但是无法访问其他目录(比如存放媒体文件的一些目录)。那么,我的设计如下:

  1. 两组用户:bing(我)具备最高权限,可以访问任意路径;public(访客)被我控制,只能访问部分路径;
  2. 共享目录一:Documents目录,SMB协议且公开,public用户具有递归的wrx权限,配置SMB时也要设置允许访客读写。我现在认为,在nas配置了多媒体服务的情况下,媒体文件就可以由这些服务管理(比如jellyfin、transmission),不再需要一个一个像文件一样被人手动管理(比如通过拷贝、复制、移动之类),因此,理应将这些文件隐藏起来,一般只允许通过多媒体服务来访问,那么对我来说,nas剩下的主要用途就是备份电脑文件和家庭照片,这时候就将可以通过映射将Documents目录当作电脑的普通硬盘用来备份即可;当然,照片也可以由nextcloud等服务管理,但是之前使用感受不算惊艳,因此目前没有继续配置该服务。
  3. 共享目录二:Meidas目录,不公开,给来jellyfin、transmission等挂载使用,由bing创建,权限可以是700,电影等文件就存放在该目录下。

通过以上设置,就可以有以下使用场景:

  1. 通过给jellyfin不同账号配置不同的媒体权限,因此实现分级制度,并且被管理的用户是确实看不到不被许可的内容的;

  2. Documents可以随意访问,可以不设置密码;(仅内网)

code-server

在之前的方案中就使用过code-server,但是因为host不能走docker openwrt的代理,因此没有继续使用了。在现在的方案中,这个问题不存在了,因此继续添加了这个服务。参考docker hub的配置还是很简单的,因此这里就简单贴一下我的配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
---
version: "2.1"
services:
  code-server:
    image: linuxserver/code-server:latest
    container_name: vscode
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - SUDO_PASSWORD=2
    volumes:
      - /srv/xxxxxxxxxxxxxxx/config/vscode:/config
    ports:
      - 8443:8443
      - 1313:1313
    restart: unless-stopped

主要区别之处是绑定了1313:1313端口,这样就可以在code-server上运行hugo server,然后内网访问,以便测试了。本文就是在该code-server上写的,在家庭网络中,我可以在台式机上写,也可以在笔记本上写(有三台笔记本),达到了局域网下多设备同步的目的。相较于codespace,缺少了外网访问的功能,但是访问速度上是完胜,目前没有丝毫卡顿。(现在大爱这个功能!!!)

openwrt镜像

在AOI方案中,我是用的是lean的镜像,功能很多,但是很多都用不上。我使用openwrt只是为了全局代理,因此,在更换硬件设备后,就使用了官方镜像,然后按需安装插件。不过该镜像的问题是写死了分区大小,导致16GB的硬盘实际只能使用不到1GB,该问题我目前还没去折腾,因为不影响使用。

小结

以上,主要修改还是硬件部分。因为硬件的修改,带来了软件使用体验的提升。这次折腾的主要收获还是了解到了一些网络设备,比如单臂路由、软路由等,也学会了简单分析家庭网络的物理瓶颈,比如通过绘制本文的网络拓扑图,又加深了我对现在家庭网络的认知。