星际蜗牛矿渣折腾记

Table of Contents

1 引——剁手的心路历程

自上了大学,我老早就想搞一台 NAS 服务器来折腾折腾。特别是当我上了 btrfs 这贼船之后(笑),天天听别人说这不稳定,容易丢数据,被迫养成了天天拍快照,半个月来一次 btrfs send/receive 备份到移动硬盘上的好习惯(不过我用了两百多天也没遇到啥问题啊)。月月这么折腾,心里就痒痒——你说搞一台 NAS 来备份数据,再挂个学校的 PT 刷上传量、魔力值,岂不美哉?这几天正巧赶上学校能报销,不买白不买啊!这不是催着我花钱吗?赶紧淘宝刷刷刷下单,搞了台星际蜗牛 B 款双网卡的矿渣来玩玩,于是就有了这篇流水帐博文。

2 硬件篇

矿渣嘛,硬件上当然是各种缩水,尤其是这电源、风扇和 SSD。风扇用的是 2pin 的电源线,不能根据负载自动调节转速。不过这好说,随便一个十来块的 12cm 风扇就行,SSD 随便来个60G 的 mini-sata 的。电源就麻烦了——上网查了查,这货好像需要服务器的电源……服务器电源我不了解啊,每个型号尺寸似乎都不一样,也不好买。纠结了半个晚上,看中了一个 atx dc 直流电源,不过只有一个 24pin 主板电源口和两个 sata 电源口,星际蜗牛需要两个大 D 口供电,sata 口是没用的。那也好解决淘宝买两个 sata 转大 D 口的转接头完事。 注意:看清楚公母,别买反了,血(钱)的教训啊!

买回来该拆拆,该装装,不会的看看视频,都不是个事~

3 系统篇

上文提到了,我搞这 NAS 的主要目的之一就是用来备份我 btrfs 格式的分区,所以我只选择支持 btrfs 格式的 NAS 系统。群晖就不考虑了,不够折腾没意思;FreeNAS 嘛,zfs 是不错,但是吃内存折腾不起……找来找去,有个 OpenMediaVault 还算可以,基于 debian stable,默认使用 backport 的内核(4.19),那就装它吧。

3.1 系统安装

色魔三大妈(呸,什么值得买)上有星际蜗牛装 OpenMediaVault 的教程,我就不赘述了。反正和 debian 的 tui 安装器差不多,NAS 连上键盘、显示器,敲敲打打就装好了,还是非常方便的。

装好系统之后,我们可以直接用浏览器访问 NAS 的 IP 地址,就能登上 NAS 的 web 控制台,默认用户名:admin,密码:openmediavault。先去「常规设置」把默认密码改了,再去「日期和时间」把时区调对,再去「更新管理」把系统更新一下~

3.2 链路聚合

硬盘还没买,就先把移动硬盘接上 USB 口凑合用吧。添加一个共享文件夹,然后把 nfs 服务开起来。回 arch 主系统挂载上,下载个文件测试一下速度——惨不忍睹啊不到 10M/s……咋回事啊不是说好了改了 1000M 吗?这分明就是 100M 的速率啊!难不成遇到奸商了?先不急着冤枉人家,我印象中我这个一百不到捡回来的垃圾路由的有线网口就只有 100M 的速率来着?ssh上 NAS 服务器,装个 ethtool 看看 NAS 的网口信息吧。

root@rasp-OMV:~# ethtool enp1s0
-------------------------------
Settings for enp1s0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

诶有一个1000baseT/full,应该是支持千兆全双工吧的,到 archlinux-cn 群里找大佬一问,好像还真是。我又在我的笔记本上装了这软件测试了一下,也是这个结果,看来真是这破烂路由器的锅了。

那怎么办?换个路由器?买了这破玩意,报销还没批下来,这个月生活费都花完了,哪有法再搞个千兆的路由啊……我灵机一动,咱不是买了个双网口的 NAS 吗!那直接上个链路聚合呗,200M 也勉强能用,还要啥自行车啊?

OMV-network.png

没学过网络,也不知道链路汇聚怎么做。好在 OMV 已经帮我们做好了工作,只需要登录 web 控制台,到「网络」-「接口」设置,先删除enpXsY的以太网连接(这时候会提醒你设置改变,是否立即应用,千万别确认啊!虽然我没试过,但是我估计点了你就连不上web 控制台了)。Anyway,选择「添加」-「汇聚」,该填的信息填了,把两个网口都勾选上,模式选择balance-rr,再根据自己实际情况设置 ip。保存之后稍微等待一下,顺利建立了bond0网卡,看来是成功了。再挂上 nfs 一测,速度有 16、17M/s 了,这就代表成功啦~

3.3 安装 OMV-Extra 插件

OMV 本身带的插件不多,但是好在有个 OMV-Extra 提供了很多的插件。ssh 连接上 NAS 服务器,按照 OMV-Extra 的官方教程装上,我们会发现 apt 在update、install、upgrade 的时候 /usr/lib/python3.5/weakref.py 会报一个错,当然这无伤大雅并不影响使用,但是看着就是不爽,可以按照 github 上的方法修好。

装好之后刷新 web 控制台,回到「插件」选项,眼睛不瞎都能发现多了很多可选的插件,装上自己需要的,比如 transmissonbt、remotedesktop 啥的,都是一键傻瓜式安装,无需多言。

3.4 折腾 BT&共享文件夹

OMV 有一点让我很不爽,咱必须在「共享文件夹」中添加共享的文件夹,而且必须是非系统磁盘。那我 60G 的SSD 买来干啥用啊?

算了,人家也是为了系统盘的安全考虑,万一把系统玩崩了那就不好了。

OMV 3.x 时代有两个 bt 下载插件可选,分别是 transmission 和 deluge,到了 4.x 时代就只能用 transmission 了。transmission 没有 rss 插件,使用体验远不如 qbittorrent、 ktorrent 之类的 bt 下载软件。于是我想能不能不通过 OMV 的插件系统,而是像使用普通的 debian 系统一样装个 deluge、qbittorrent,然后开 web-ui 呢?

说干咱就干吧,之前装的远程桌面插件就派上用场了,rdesktop <NAS ip> 就能连上 NAS 的 xfce 桌面。apt 一把梭,刷刷两下 deluge 就装好了……虽然这货有个 rss 插件,但是不能直接使用 web-ui 添加 feed,使用体验呢,实在是太差了,还不如直接用 transmission 呢。至于别的 bt 客户端,因为校 PT 硬性规定可使用的客户端,linux 上基本只有 transmission 和deluge 可用……如果有菊苣知道 ktorrent 或者 qbittorrent 怎么伪造客户端信息的话,请务必通过 telegram 私信或者邮件告诉我!!

可 rss 也算个硬需求(不然咱看番还要手动去下,太累),有没有 workaround 呢?上 google 查了查,有个 flexget 可以做 rss 订阅器。我通过 flexget 下载种子到某个特定目录,然后 transmission 可以监视某个目录,自动下载该目录下的种子,这两者一结合不就是成了吗?

flexget 的安装有点麻烦,请自行参照官方教程安装,个人推荐使用 virtualenv(直接 apt 装2.7 版的就行,别折腾自己 QAQ),OMV 用户的自动启动使用 Conjobs 就行(折腾了半天systemd unit 就是跑不起来,肯定是 debian 的锅,逃)。需要注意的是,在启动 flexget 前,我们需要手写一份它的配置文件。这里给出我的配置(注意文件拓展名为 .yml,不是.yaml):

root@rasp-OMV:~# cat ~/.config/flexget/config.yml 
-------------------------------------------------
web_server:
        bind: 0.0.0.0
        port: 9000
        web_ui: yes
        base_url: /
        run_v2: yes

schedules:
    - tasks: [Nobunaga-sensei no Osanazuma, Bokutachi wa Benkyou ga Dekinai, Midara na Ao-chan wa Benkyou ga Dekinai,
              Nande Koko ni Sensei ga]
      schedule:
        minute: "*/30" #每 30 分抓取

tasks:
        Nobunaga-sensei no Osanazuma:
            rss: https://bangumi.moe/rss/tags/548ee2ce4ab7379536f56358+548ee0ea4ab7379536f56354+5ca206b3d8405d2d2e62b95f
            accept_all: yes
            download: /srv/dev-disk-by-id-usb-ST1000LX_015-1U7172_000000123ADA-0-0-part2/bt/watch
        Bokutachi wa Benkyou ga Dekinai:
            rss: https://bangumi.moe/rss/tags/548ee2ce4ab7379536f56358+548ee0ea4ab7379536f56354+5ca206b0d8405d2d2e62b957+58a9c1e6f5dc363606ab42ed
            accept_all: yes
            download: /srv/dev-disk-by-id-usb-ST1000LX_015-1U7172_000000123ADA-0-0-part2/bt/watch
        Midara na Ao-chan wa Benkyou ga Dekinai:
            rss: https://bangumi.moe/rss/tags/5ca206a9d8405d2d2e62b949+548ee2ce4ab7379536f56358+548ee0ea4ab7379536f56354+57a034ee5cc0696f1ce1a1b2
            accept_all: yes
            download: /srv/dev-disk-by-id-usb-ST1000LX_015-1U7172_000000123ADA-0-0-part2/bt/watch
        Nande Koko ni Sensei ga:
            rss: https://bangumi.moe/rss/tags/5ca206b9d8405d2d2e62b96d+548ee0ea4ab7379536f56354+548ee2ce4ab7379536f56358+57a034ee5cc0696f1ce1a1b2
            accept_all: yes
            download: /srv/dev-disk-by-id-usb-ST1000LX_015-1U7172_000000123ADA-0-0-part2/bt/watch

先修改 web 控制台的密码,启动守护进程之后就能登录 web 控制台啦~其他设置都搞定之后,我们再回到 OMV 的 web 控制台,设置 transmission 的监视文件夹。

4 路由篇

众所周知,浙江大学是世界三流学校,其网络基础设施建设水平更是世界 114514 流水平。不过使用有线网络只需要登录一个 l2tp VPN 就行,不需要用什么电信闪讯就已经阿弥陀佛了(笑

所以上文我提到的路由器就是刷了老毛子系统(没记错是这个名吧?),能够在路由器上直接登录 l2tp VPN。不过它默认会让所有的 IP 都走 VPN,而我想让内网 10.*.*.* 的 IP 都直接走内网,这就需要我手动修改路由表了……

修改过程略,最后改成这样就好啦:

/home/root # ip -4 r
--------------------
0.0.0.0/1 via 10.0.2.73 dev ppp5 
deault via 10.171.32.1 dev eth2.2  metric 1 
10.0.0.0/8 via 10.171.32.1 dev eth2.2 
10.0.2.73 via 10.171.32.1 dev eth2.2 
10.0.2.73 dev ppp5  proto kernel  scope link  src 222.205.61.123 
10.171.32.0/20 dev eth2.2  proto kernel  scope link  src 10.171.33.2 
58.206.192.0/19 via 10.171.32.1 dev eth2.2 
127.0.0.0/8 dev lo  scope link 
128.0.0.0/1 via 10.0.2.73 dev ppp5 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
210.32.0.0/20 via 10.171.32.1 dev eth2.2 
210.32.128.0/18 via 10.171.32.1 dev eth2.2 
222.205.0.0/16 via 10.171.32.1 dev eth2.2

5 总结

折腾了这么两天,遇到了不少的大小问题,在折腾的过程中,我脑海中无数次冒出「不然我给它装个 Arch 吧」的念头(果然是入了邪教吗,笑)。也不是说 OMV 很难用,只是可能它不大适合我。虽然经过一些调教之后,它也能很出色地满足我的使用需求,但是用起来就总是感觉不大爽。

不过我对 nfs 服务器啥的配置也不大了解,OMV 目前也能满足我的需求,加上临近期末各种 deadline,所以近期也不会付诸实践。也许暑假的某一天我会试着给它装个 Arch(或者大蜥蜴也不错,不然装个 rhel 8 也行,我还有一个 developer license 没用呢),先占个坑吧(咕)~

最后再上一张图~因为 sata 转大 D 口买错了,所以机箱是虚掩着没盖上……

J1900.jpg

(完)

Created: 2019-05-28 二 11:16

Validate