0%

openmediavault

omv 系统会单独占用一块磁盘,所以为了更有效地利用手头的存储资源,计划将 omv 安装到旧 u 盘上。

试验发现,U 盘启动频繁连不上无线网;有线网未测试。

先放弃 PVE,专注 OMV 的使用。

避免去理解、试验 LVM 逻辑卷等概念

初步规划:

  • 1t 磁盘用于家庭相册、个人文件等;500g 磁盘用于家庭娱乐、安装包等
  • 使用 rsync 服务同步到 1t 磁盘或移动硬盘上(二选一待定),暂时不考虑使用 RAID
  • 折腾磁盘休眠
  • 安装 Docker 后,试用 nextcloud \ syncthing
  • 手机软件 FolderSync \ PhotoSync \ Syncthing \ PhotoPrism

设备发现

NetBIOS、LLMNR、Bonjour 和 mDNS 都是局域网中用于设备发现名称解析的协议。

  • NetBIOS、LLMNR 是 Windows 的,已经淘汰;
  • mDNS 是去中心化的多播 DNS 协议,是现代主流操作系统(如 macOS、Linux、Android、Windows 11)的标准配置;
  • Bonjour 是苹果公司开发的一套完整的技术栈,mDNS 是其核心组件之一。

在 Windows 11 系统上,ping nasping nas.local 都是走 mDNS 服务:

  • 使用 wireshark 可以看到 mdns 请求报文
  • 如果目标设备在线,也能看到 mdns 的响应报文

Linux 的 mDNS(Multicast DNS)服务主要通过 Avahi 实现,它允许设备在局域网内通过 .local 域名相互发现和解析,无需复杂的 DNS 配置。

局域网域名

在局域网中,.lan.local.internal 是最常用的私有顶级域名后缀。

它们能将难以记忆的 IP 地址(如 192.168.1.100)转换为易读的域名,避免与真实的互联网域名冲突。

常见局域网域名解析

  • .lan: 最直观的局域网(Local Area Network)标识符,通常在路由器(比如 OpenWrt)后台或自建DNS中配置。
  • .local: 专用于 mDNS(多播DNS)的保留域名(如 Apple 的 Bonjour 协议)。设备无需中心 DNS 服务器即可自动发现彼此。
  • .internal: 常用于企业内部网或 Docker 容器网络,用于完全隔离外部互联网的独立系统。

对比与使用场景

域名后缀 使用机制 适用场景 注意事项
.lan 单播 DNS 服务器解析 家庭/小型办公网络、NAS 访问 非互联网标准,偶尔可能与特定 ISP 的 DNS 冲突。
.local 自动广播 (mDNS) 智能家居设备、局域网打印机、Apple 设备 不能与需要大型集中式 DNS 服务器的复杂网络混用。
.internal 自建 DNS 或 /etc/hosts 开发/测试环境、企业内网系统、云原生应用 通常只在完全封闭的内部网络中生效。

配置代理

配置 https 代理时,需要显示指定为 http://ip ,不能只写 ip ,否则会被记录成 https_proxy=https://ip

而局域网内的 v2rayN 代理支持 http 协议,并不支持 https 。

docker 代理

不读取用户的 Shell 环境变量,因此必须通过专用的守护进程配置文件来为其指定代理服务器。

修改 vim /etc/systemd/system/docker.service.d/http-proxy.conf

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://192.168.1.50:7890"
Environment="HTTPS_PROXY=http://192.168.1.50:7890"
Environment="NO_PROXY=localhost,127.0.0.1,localaddress,.localhome.loc"

omv-extras

从 OMV7 开始,omv-extras 就已经彻底废弃了过去的 Portainer / Docker 独立安装按钮,转向了统一的 openmediavault-compose 插件。

在 OpenMediaVault 8 (OMV8) 以及最新的 omv-extras 生态中,官方核心推荐和集成的依然是 Docker(特别是通过 Docker Compose),而不是原生切换到 Podman。

  1. 在使用 Compose 之前先阅读 Docker in OMV 8
  2. (Docker) Compose Plugin For OMV8

磁盘待机

手动待机,以及验证方式 smartctl -i -n standby /dev/sdb | grep mode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@openmediavault:~# hdparm -y /dev/sdb  # Put drive in standby mode

/dev/sdb:
issuing standby command
root@openmediavault:~# hdparm -C /dev/sdb # Check drive power mode status

/dev/sdb:
drive state is: standby
root@openmediavault:~# smartctl -a -n standby /dev/sdb
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.16.0-0.bpo.4-amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in STANDBY mode, exit(2)
root@openmediavault:~#

通过访问磁盘上的共享目录,就会重新激活磁盘。

配置 OMV-APM 使磁盘进入待机模式,或手动执行

1
2
3
4
root@openmediavault:~# hdparm -S 60 /dev/sdb  # Set standby (spindown) timeout

/dev/sdb:
setting standby to 60 (5 minutes)

当登录 OMV Workbench 时似乎会激活所有磁盘(无法使磁盘待机),带来干扰。

自建仓库 gitea

Gitlab 吃内存,吃资源,并且使用的磁盘无法进入待机状态

  • 定时开关 gitlab 容器,以便磁盘能够进入待机状态
  • 调整配置,降低资源占用
  • 寻找替代品

使用 gitea

克隆仓库时,使用 http 地址无法使用令牌,必须输入账户密码。我哪里配置错了吗?

能否访问某个端口的时候再启动 docker 的容器?