前言

前些天心血来潮,出了一期OpenMediaVault 7的教程系列视频。考虑到视频多以操作演示为主,不便于刚入门的小伙伴们理解,遂配文以作补充说明。

关于OpenMediaVault 7

先介绍一下OpenMediaVault(以下简称OMV)。按照官网的说法,OMV是一个基于Debian的开源网络附加存储(NAS)解决方案。该方案主要面向家庭和小型局域网用户,旨在通过模块化设计实现便捷易用的功能。简单来说,OMV就是一个带网页管理界面的Debian系统, 不过,其网页管理界面专门为NAS的相关功能而设计开发。

目前,最新版的OMV 7基于Debian 12构建。

一、系统安装与初始配置

OMV就像一个毛坯房,要想住着舒服,还得投入很多精力进行装修……

相信体验过OMV的小伙伴们,多少还是有些认同这句话的。所以,打算上手的新朋友请做好折腾的准备。准备好了,咱们就跟随本视频开启OMV 7的入门之旅。

相关下载链接:

OMV系统镜像: https://www.openmediavault.org/download.html

Etcher: https://etcher.balena.io/#download-etcher

百度网盘

SHA256: ee20ddab3e42b320972cf3446b413ac698b4e5b85d1482ec52c8fdf247ffb28e

其他说明

  • 制作U盘启动盘如遇报错无法解决,可以更换烧录软件:UltraISO、Rufus、 Win32DiskImager、Ventory、UNetbootin等,任选一个你熟悉的即可。
  • 因清华大学镜像源帮助页面更新,视频中非OMV部分镜像源的替换命令需要访问对应页面才能查看。如有需要可以直接复制运行以下命令:
1
2
3
4
5
6
7
8
9
10
omv-env set OMV_APT_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/OpenMediaVault/public" 
omv-env set OMV_APT_ALT_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/OpenMediaVault/packages"
omv-env set OMV_APT_KERNEL_BACKPORTS_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/debian"
omv-env set OMV_APT_SECURITY_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/debian-security"
# 如果你有安装 omv-extras 则需要运行如下命令更改源
omv-env set OMV_EXTRAS_APT_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/OpenMediaVault/openmediavault-plugin-developers"
omv-env set OMV_DOCKER_APT_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian"
omv-env set OMV_PROXMOX_APT_REPOSITORY_URL"https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian"
# 使得环境变量更改生效
omv-salt stage run all
  • omv-extras安装命令如下,如果因为网络问题一直卡住,可以在终端中连续按两次Ctrl + CCommand-C退出,改用手动下载.deb包进行安装。
1
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
  • SSH和网页管理界面的用户名和初始密码不同,登录时需注意:

    SSH:root/安装时设置的密码

    网页端:admin/openmediavault

  • GPG公钥缺失或验证失败,可以运行以下命令:

1
2
3
4
# OMV-extras 
wget --quiet --output-document=- https://mirrors.tuna.tsinghua.edu.cn/OpenMediaVault/openmediavault-plugin-developers/omvextras2026.asc | gpg --dearmor --yes --output "/usr/share/keyrings/omvextras.gpg"
# Docker
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
  • 配置网络静态IP地址时,需要在高级设置中配置DNS服务器,具体可以直接输入路由器的IP地址。

如果遇到这里尚未列出的问题,可以观看问题解答QA的视频。

二、快速入门

其他说明

  • 视频中尚未演示**S.M.A.R.T.**监测的设置,小伙伴们可以点击存储器->**S.M.A.R.T.**进行配置。
  • 配置邮件通知功能时,请先查看邮件服务商的SMTP服务配置指南。
  • 虽然OMV支持NTFS格式的文件系统,但是请尽量避免在NTFS分区上进行写入操作。术业有专攻,如果确有需求,请选择Windows。

NFS注册表路径

NFS注册表路径

三、存储池相关

与常见的NAS系统不同,OMV并未强调存储池这一概念。相反,开发人员直接给出了相对更底层的功能插件供用户自行配置。这里先演示最常用的两个——LVM和ZFS

LVM篇

相关命令:

1
2
3
lvcreate --type cache-pool -L 缓存池逻辑卷大小 -n 缓存池逻辑卷名 卷组名 固态硬盘设备节点 
lvconvert --type cache --cache-pool 缓存池逻辑卷名 卷组名/需要添加缓存的逻辑卷名
lvconvert --uncache 卷组名/需要取消缓存的逻辑卷名

其他说明

网页端默认以线性方式创建逻辑卷。条带卷、RAID卷以及精简卷只能通过命令行创建。

ZFS篇

删除zfs的池/数据集

1
2
3
zpool destroy poolname

zfs destroy poolname/dataset

列出所有 ZFS 数据集

1
zfs list

存储池定时快照命令:

1
zfs snapshot pool@$(date +%Y-%m-%d_%H-%M-%S)   # 将pool替换为需要创建快照的存储池名称

四、文件共享服务

SMB/CIFS、NFS服务

其他说明

NFS注册表路径

NFS注册表路径

FTP、TFTP、SFTP、WebDAV服务

WebDAV文件大小限制的问题,以下两种方法任选其一:

  1. 修改/etc/nginx/sites-available/openmediavault-webgui/etc/nginx/openmediavault-webgui.d/openmediavault-webdav.conf
  2. 直接在WebDAV的扩展选项中设置client_max_body_size的值。

ISCSI存储

五、Docker

使用官方源安装 Docker

以下操作需要在 root 用户下完成,请使用 sudo -isu root 切换到 root 用户进行操作。

首先,安装一些必要的软件包:

1
2
3
apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

然后加入 Docker 的 GPG 公钥和 apt 源:

1
2
curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

国内机器可以用清华 TUNA 的国内源:

1
2
curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

然后更新系统后即可安装 Docker CE 和 Docker Compose 插件:

1
2
apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

此时可以使用 docker version 命令检查是否安装成功:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@debian ~ # docker version
Client: Docker Engine - Community
Version: 26.1.4
API version: 1.45
Go version: go1.21.11
Git commit: 5650f9b
Built: Wed Jun 5 11:29:22 2024
OS/Arch: linux/amd64
Context: default

Server: Docker Engine - Community
Engine:
Version: 26.1.4
API version: 1.45 (minimum version 1.24)
Go version: go1.21.11
Git commit: de5c9cf
Built: Wed Jun 5 11:29:22 2024
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: 1.6.33
GitCommit: d2d58213f83a351ca8f528a95fbd145f5654e957
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0

如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 www-data 用户加进去:

1
2
apt install docker-ce-rootless-extras
sudo usermod -aG docker www-data

安装 Docker Compose

因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose

1
2
root@debian ~ # docker compose version
Docker Compose version v2.27.1

如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:

我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

1
2
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

此时可以使用 docker-compose version 命令检查是否安装成功:

1
2
root@debian ~ # docker-compose version
Docker Compose version v2.27.1

修改 Docker 配置

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):

1
2
3
4
5
6
7
8
9
10
11
12
13
cat > /etc/docker/daemon.json << EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF

然后重启 Docker 服务:

1
systemctl restart docker

好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

Docker目录迁移命令:

1
rsync -avz /var/lib/docker/*   目标目录

如需使用Btrfs或ZFS作为Docker根目录的文件系统,可以将Compose设置中的Docker存储留空后,创建并修改/etc/docker/daemon.json

六、KVM虚拟机

其他说明

如需创建OpenWRT VM,应当先在网络中创建桥接接口后,再到KVM中配置网络接口(LXC方式同理)。

七、UPS

其他说明

模式中的网络版和单机版可根据自身情况选择,至于其他设置,二者没有区别:

  • 单机版——OMV与UPS通过通信接口连接。
  • 网络版——局域网内有NUT服务器,OMV不接入UPS通信接口。

八、问题解答QA

截至本文发出,共更新以上十期视频。

希望这篇指北教程能够帮到你!欢迎大家在评论区中分享你的OMV 7使用体验!如有问题,可私信交流。 (Cont’d)

参考链接