NAS系列 配置OpenMediaVault的ZFS阵列和共享服务
本文最后更新于 41 天前,如有失效请评论区留言。

本博客由ZGOCLOUD大力赞助!如何更快地访问本站?有需要可加电报群获得更多帮助。本博客用什么VPS?创作不易,请支持苯苯!推荐购买本博客的VIP喔,10元/年即可畅享所有VIP专属内容!

前言

经过《NAS系列 安装OpenMediaVault虚拟机》的学习,我们已经完成OpenMediaVaut(OMV)这一NAS系统的安装。本文的主要内容是一步步完成OMV的基本配置,包含新建一个简单的ZFS阵列和配置SMB服务。如果某些项目没有被提到,则使用默认设置即可。

另外,OMV的设置更改完后一般都会弹出一个提示窗口咨询你是否应用;如果确定要应用新配置,则手动保存并应用即可。这种保护机制我是挺喜欢的,因为总有不小心手欠的时候 (ฅ´ω`ฅ)

废话不多说,直接开整!

系统

工作台

这里主要是设置OMV的http/https访问:

msedge_e63Cvhgcae

一般来说,可以用http://局域网ip:80(此时80端口可以省略,即http://局域网ip)。当然,也可以利用Nginx Proxy Manager设置https,这个看我博客的小伙伴应该都知道的,不再赘述。

日期和时间

中国大陆的小伙伴选北京东八区(亚洲/上海)即可:

msedge_biCFB3ZQBu

通知

重点内容

这是非常重要的一个设置,建议大家都安排上。这样,如果NAS状态有什么变化(比如ZFS阵列出问题、或者有侵入者),可以及时预警。具体设置如下,其实就是一个SMTP发件服务:

msedge_H4eZOylky2

事件类型按喜好选择即可:

msedge_2wWy9r7lgm

计划任务

这里我添加了一个监测ZFS阵列状态的任务,但你现在不需要添加这个。后面讲到ZFS时会再讲怎么设置:

msedge_PkVf9ZGkZb

创建的过程也挺简单:

msedge_bfDIAgKdEM

其实就是个Cron任务:

msedge_KSjAujhapZ

因此,你也可以直接编辑/etc/crontab来实现类似的功能;这与其它Linux发行版区别不大。我就经常直接在OMV的/etc/crontab里添加任务,比如下面这些:

# Run nextcloud cron task every 5 min
*/5 * * * * root docker exec -u 33 nextcloud3-app-1 php -f /var/www/html/cron.php 2>&1 /dev/null

# Create a snapshot in 3:00 am
0 3 * * * root openmediavault_zfs.sh snapshot >/dev/null 2>&1

# Destroy a snapshot in 5:00 am
0 5 * * * root openmediavault_zfs.sh destroy 15 >/dev/null 2>&1

# Clean system logs
* * */10 * * root /usr/bin/clean_system_log >/dev/null 2>&1

# Clean docker logs every 10-day
* * */10 * * root /usr/bin/clean_docker_log >/dev/null 2>&1

很多命令后面有>/dev/null 2>&1的代码段,是因为我不想某任务在运行时产生日志信息,从而触发OMV的邮件提醒(毕竟清理系统日志并不是什么值得关心的事)。

其它说明

尽管PVE.OMV GUI界面提供了一些选项用于更新OMV,不过我还是建议在PVE.OMV Shell里使用命令:

omv-upgrade

这是最方便、最高效、最安全的OMV更新方法

Linux内核记得选PVE内核,这样才可以使用ZFS;这在《NAS系列 安装OpenMediaVault虚拟机》中也提到过:

msedge_AEyAGzQ01y

要安装什么插件,就直接搜索安装就行。挺简单。我个人平时用得插件不多。

omv-extras里面有DockerPortainerYacht等选项,但我们只要按以前使用VPS/Linux的习惯管理Docker即可。

总之,更新管理插件内核omv-extras等选项我平时一般都不怎么使用。

网络

设置静态局域网IPv4地址对于NAS的稳定运行是十分重要的。我在《NAS系列 安装OpenMediaVault虚拟机》里也介绍过了。如果你搞懂了《了解IP地址》的内容,设置是十分简单的。使用安装系统时的默认值或自定义修改都行:

msedge_9HeU4IJkw8

ZFS阵列

虽然OMV提供了一个界面对ZFS阵列进行管理,但我们一般不直接在上面管理,而是直接通过PVE.OMV Shell的ZFS命令进行设置。我一般只用GUI界面简单地查看ZFS状态:

msedge_KNgyENAMYt

测试环境

我目前所用的ZFS版本为:

zfs --version
# zfs-2.1.9-pve1
# zfs-kmod-2.1.9-pve1

据我观察,ZFS的基本命令很少变化。因此,如果你使用了更高的ZFS版本,不妨尝试一下本教程中的命令。只要阵列还没有正式使用,就可以随意折腾的 (ฅ´ω`ฅ)

改变硬盘ID

这不是使用ZFS阵列的必要操作,但我强烈推荐你做这一步。我们在PVE.OMV Shell中输入下列命令了解一下硬盘的原来ID长啥样:

ll /dev/disk/by-id/ata* -ltr

输出类似于:

lrwxrwxrwx 1 root root  9 Mar 29 21:30 /dev/disk/by-id/ata-WDC_WD40EFZX-68AWUN0_WD-WXA2DA14XTAN -> ../../sdb
lrwxrwxrwx 1 root root  9 Mar 29 21:30 /dev/disk/by-id/ata-WDC_WD40EFRX-68N32N0_WD-WCC7K3NRV01Z -> ../../sdc
...(后面还有一堆信息)

这里的ata-WDC_WD40EFZX-68AWUN0_WD-WXA2DA14XTANata-WDC_WD40EFRX-68N32N0_WD-WCC7K3NRV01Z就是硬盘的原始ID。后面的-> ../../sdb字样提示了硬盘挂载的文件系统。

硬盘的原始ID有几个明显的缺陷:

  • 比较复杂,不够直观;
  • 如果硬盘改动了在硬盘笼中的位置,硬盘ID与文件系统的对应关系可能会发生变化;
  • 如果要替换旧的损坏硬盘,该名字会发生变化(因为每个硬盘都不一样)

因此,一般建议给阵列硬盘使用自定义名。比如,我的ZFS阵列中硬盘名长这样:

MobaXterm1_CHS_87hyFshgdr

这里,4t代表该硬盘的大小为4T-01就代表1号硬盘。这样记既简单又有条理,逻辑上也更加有效。下面咱们就来讲讲如何实现ZFS阵列硬盘的ID修改。

此隐藏内容仅限VIP查看。包年VIP仅10元,建议升级。VIP可享有哪些特权

创建新的ZFS Pool

小伙伴们也可以先看司波图的视频《玩转Freenas系统02——浅谈ZFS,Vdev,池,阵列(催眠警告)_哔哩哔哩_bilibili》了解一些ZFS的入门知识。创建ZFS阵列是有讲究的,小伙伴们不要乱来哈!

这里先简单介绍我是怎么做的。至于ZFS阵列有哪些不同我为什么选mirror而不选raid-z1/raid-z2更多硬盘(比如12个甚至是96个硬盘)应该怎么建ZFS阵列等问题我以后再细说。老实说,这个坑也是挺大的!

我直接创建一个基于mirror的新zfs阵列:

# sudo zpool create nas2 mirror <硬盘1> <硬盘2> mirror <硬盘3> <硬盘4>
zpool create nas2 mirror 4t-01 4t-02 mirror 4t-03 4t-04

具体命令解释如下:

此隐藏内容仅限VIP查看。包年VIP仅10元,建议升级。VIP可享有哪些特权

如果有警告信息(磁盘之前有旧的ZFS阵列或者旧数据时容易出现该警告):

invalid vdev specification
use '-f' to override the following errors:
/dev/disk/by-vdev/4t-01-part1 is part of potentially active pool 'nas'
/dev/disk/by-vdev/4t-02-part1 is part of potentially active pool 'nas'
/dev/disk/by-vdev/4t-03-part1 is part of potentially active pool 'nas'
/dev/disk/by-vdev/4t-04-part1 is part of potentially active pool 'nas'

添加-f强制覆盖即可:

zpool create -f nas2 mirror 4t-01 4t-02 mirror 4t-03 4t-04

在未来,如果你要增加新硬盘,除了新建一个pool外,还可以直接在原来的pool上添加更多的vdev来扩容。从整体上看,这些硬盘都属于nas2这个pool;添加新硬盘的效果是nas2被“扩容”了,但原有文件的路径是不会被改变的。这也是磁盘阵列的优势之一。

根据测试文章https://www.servethehome.com/the-case-for-using-zfs-compression的结果,我准备使用lz4压缩。命令如下:

sudo zfs set compression=lz4 nas2

可以查看zfs阵列的压缩率:

zfs get compressratio nas2

输出内容大致如下:

NAME  PROPERTY       VALUE  SOURCE
nas2  compressratio  1.12x  -

值得注意的是,如果你的阵列是新建不久,里面还没有多少文件时,一般这个值是1。压缩率与文件类型有很大的关系。比如,lz4对视频格式的压缩程度是不高的;但文本类的压缩率可以处于较高水平(下面这两个文件夹的内容是完全一样的):

MobaXterm1_CHS_ZFRpippcCD

下面,我们来看看该zfs阵列的状态:

zpool status

输出类似于:

  pool: nas2
 state: ONLINE
  scan: scrub repaired 0B in 03:07:20 with 0 errors on Sun Mar 12 03:31:21 2023
config:

        NAME        STATE     READ WRITE CKSUM
        nas2        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            4t-01   ONLINE       0     0     0
            4t-02   ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            4t-03   ONLINE       0     0     0
            4t-04   ONLINE       0     0     0

errors: No known data errors

ONLINE就代表ZFS阵列正常工作。如果是其它状态,有可能是scrub状态,也有可能是阵列有问题。这个以后再细讲。下面,我们再观察一下ZFS阵列的挂载状态:

df -h

结果类似于:

Filesystem      Size  Used Avail Use% Mounted on
udev             12G     0   12G   0% /dev
... (忽略中间内容)
nas2            7.2T  128K  7.2T   1% /nas2 # 这个就是zfs阵列

这里,nas2阵列(Filesystem)已经挂载到/nas2文件夹(Mounted on)了。

此外,我发现一个特别情况:

msedge_ogTxuARbHY

两个非zfs阵列硬盘的温度要远高于zfs阵列硬盘。这不太可能是由于硬盘位置的问题,因为有1个zfs硬盘与8t硬盘是放同一个硬盘笼的。难道这意味着zfs的效率比普通情况下的直通要更好?原因暂时不知,有空查(也有可能是8t硬盘的功耗本来就比较高)。

最后,一定要记得:登陆OMV GUI应用配置使新建pool生效

msedge_oD97wNdifV

只有这样,文件系统里才正式将nas2这个pool挂载到OMV GUI里:

msedge_9NkUDEUhWt

否则,该pool的生成可能是暂时的,此时添加的数据可能会在重启后丢失!切记,切记,切记!

ZFS基本命令

我一般是通过PVE.OMV Shell直接管理zfs阵列。常用命令有:

  • 观察vdev的情况
zpool list -v

输出类似:

msedge_xJog1b827o

  • 观察zpool状态
#  zpool status -v <pool name>
zpool status -v nas2 # 或 zpool status

输出类似:

msedge_YJr9UHJLvd

  • 添加监测代码:新建一个shell脚本
vim /root/disk_warning.sh

加入以下内容:

#!/bin/bash

result=`zpool status -x`;

if [[ $result != 'all pools are healthy' ]]; then
    echo "Something is wrong."
    zpool status -v
fi

新建一个cron任务:

echo -e "\n# Check zfs every 1 hours\n0 */1 * * * root /usr/bin/bash /root/disk_warning.sh" >> /etc/crontab

当然,您也可以在PVE.OMV Shell里进行设置:

msedge_1xsh45ZVoM

应用配置生效。这样,系统会每小时检测一次ZFS状态。如果有异常状况,会发邮件通知。不过,一些比较严重的问题系统也会发邮件的(前提是你在系统——通知中已经允许了ZFS通知)。

  • 其它常用命令
# 查看快照
zfs list -t snapshot -o name | /bin/grep nas2@AutoD- | /usr/bin/sort -r 

# 查看存储池当前状态和 I/O 状况
zpool status
zpool status -v nas2

# 确定两个快照之间的差异(似乎不管用,原因暂不明确)
sudo zfs diff nas2@AutoD-2023-04-02 nas2@AutoD-2023-03-20
# Unable to obtain diffs:
#   Not an earlier snapshot from the same fs

# scrub检查文件完整性。我个人平时并没有专门定期运行
sudo zpool scrub nas2

# 停止scrub
sudo zpool scrub -s nas2

# 偶尔会有些报错(可能与非ECC内存的应用有关)。 scrub后可以用clear清除
sudo zpool clear nas2

# 升级pool。系统提示可以升级的时候再升级。
sudo zpool upgrade nas2

# 删除全部snapshot。使用root用户运行。
zfs list -H -o name -t snapshot | xargs -n1 zfs destroy -R & # 耗时

# 删除快照
sudo zfs destroy -r nas2@AutoD-2022-01-13

# 使用zpool add在原来的pool上添加一个新的vdev
zpool status <pool_name> # 确认硬盘阵列内容及状态。确认无误后:
sudo zpool add <pool_name> mirror <disk1> <disk2>  # mirror
sudo zpool add <pool_name> raidz <disk1> <disk2> <disk3> <disk4> # raidz

# 回滚 (不知在docker运行的时候是否可以成功。以后应该在新设备里进行测试)
sudo zfs rollback nas2@AutoD-2022-01-05

ZFS的自动化快照功能

ZFS支持Snapshot(快照)功能。快照可以帮助我们回滚到ZFS文件系统之前某个时间点的状态,这是使用ZFS的优势之一喔!

值得注意的是,强烈不建议将docker软件的根目录挂载到ZFS Pool中。否则,ZFS备份时会有很多overlay相关的snapshot,这可能会影响备份的回滚(我没测试过是否影响,只是推测)。再者,Docker根目录一般并不包含重要的个人文件,因此放至默认的系统盘位置是最合理的,没必要专门搞到ZFS的文件夹中。

我自己写过一个小脚本——huangwb8/openmediavault_zfs,它可以定期进行Snapshot(快照)的生成和删除:

msedge_5m41QpxXJm

我们进入PVE.OMV的root用户的Home目录:

cd ~

直接在PVE.OMV Shell中运行下列命令:

git clone https://github.com/huangwb8/openmediavault_zfs.git && \
chmod +770 $(pwd)/openmediavault_zfs/openmediavault_zfs.sh && \
ln -s $(pwd)/openmediavault_zfs/openmediavault_zfs.sh /sbin/openmediavault_zfs.sh && \
echo -e "\n# Create a snapshot in 3:00 am\n0 3 * * * root openmediavault_zfs.sh snapshot >/dev/null 2>&1" >> /etc/crontab && \
echo -e "\n# Destroy a snapshot in 5:00 am\n0 5 * * * root openmediavault_zfs.sh destroy 15 >/dev/null 2>&1" >> /etc/crontab

这样会在每天3:00生成一个快照,而每天5:00删除一个15天前的快照。更多自定义内容自己看仓库README。

另外,你最好检测一下脚本是否正常生效。我们在PVE.OMV Shell中输入命令:

openmediavault_zfs.sh test

如果输出类似:

Pool: XXX
-rwxrwxrwx
0 3 * * * root openmediavault_zfs.sh snapshot >/dev/null 2>&1
0 5 * * * root openmediavault_zfs.sh destroy 15 >/dev/null 2>&1
...

则表明脚本有效。

我回滚版本的需求很小,可能这与我比较好的文件保存和使用习惯有关——如果我感觉自己要对某文件做重大修改,我往往会新建一个备份在上面操作。我也很少随便删除文档。所以,openmediavault_zfs写得也比较简单,并没有什么很强的功能。如果你进行Snapshot的时间更频繁(比如每小时1次),那么destroy对你而言可能并不是很有效。不过,高级用户可以在这个基础上微调源代码。也欢迎小伙伴贡献自己的代码喔!

测试ZFS阵列的读写速度

我们先测试写入速度。直接在PVE.OMV Shell中输入命令:

time dd if=/dev/zero of=/nas2/tempfile bs=64k

该命令会自动生成一个/nas2/tempfile的临时文件。稍等片刻后按Ctrl+c停止,此时输出类似:

1979152+0 records in
1979152+0 records out
129705705472 bytes (130 GB, 121 GiB) copied, 69.6504 s, 1.9 GB/s
dd if=/dev/zero of=/nas2/tempfile bs=64k  1.99s user 60.30s system 89% cpu 1:09.66 total

可以看到该ZFS阵列的写入速度为1.9 GB/s(注意,不是Gbps),这个速度我还是挺满意的。

我们再测试读取速度

time dd if=/nas2/tempfile of=/dev/null bs=64k

输出类似于:

598277+0 records in
598276+0 records out
39208615936 bytes (39 GB, 37 GiB) copied, 22.3351 s, 1.8 GB/s
dd if=/nas2/tempfile of=/dev/null bs=64k  0.40s user 21.93s system 99% cpu 22.337 total

速度差不多。这就是使用磁盘阵列的好处之一,即获得超越个体磁盘本身的较高IO性能!另外,使用 dd 测试写入速度时,千万要注意 of 后接的文件必须是一个不存在的文件;如果你指定了一个已存在的文件,则可能造成该文件的数据丢失!使用 dd 测试读取速度时, if 后需要接上一个命令生成的文件。

参数解读如下:

  • time 有计时作用,dd 用于复制,从 if 读出,写到 of;
  • if=/dev/zero 不产生 IO,因此可以用来测试纯写速度;
  • 同理 of=/dev/null 不产生 IO,可以用来测试纯读速度;
  • bs 是每次读或写的大小,即一个块的大小,count 是读写块的数量。

感兴趣的小伙伴也可以试试hdparm等软件,我就不作演示了。最后,记得删除临时文件/nas2/tempfile,它只是测试用,并没有实际用途。

极端环境测试

依次测试重启、停止容器、重启PVE系统、断电。只有全部通过考验,该ZFS pool才可以正式投入使用。

存储器

硬盘

这里的设置我都是默认的:

msedge_0P3Coj59ye

S.M.A.R.T.

据说,如果硬盘经常性“停转-再转”,会增加硬盘损耗,缩短寿命。因此,我并没有为了省电而设置某种电源模式。至于温度监测,印象中也是默认值:

msedge_c4bTawe7E3

我对6个西数硬盘都启用了S.M.A.R.T.监测,但系统盘(LVM-Thin)没有:

msedge_SWbAMMva0v

在详细信息中可以看一些状态信息:

msedge_5l4ciN3bt3

但我很少看。非阵列硬盘并不被PT下载器使用,没有频繁读写操作,一般出不了什么岔子;我主要关注ZFS阵列的稳定情况。当然,关于良好的频繁读写性能还有赖于transmission/qBitorrent等PT下载器的正确设置,以后会详细介绍,这里按下不表。

最后,设置计划任务,每天短暂检测1次:

msedge_iHTD2tuTjG

文件系统

这里就是将硬盘挂载到系统里使用:

msedge_bPzQNSYb6v

对于一个全新的未分区的硬盘,也可以手动挂载;注意,这个操作可能会格式化硬盘,对旧硬盘会清空数据(可能是这样,有误请指正):

msedge_CKxzVnVGF0

这里要特别注意,OMV系统强烈不推荐在Shell里直接通过mount或修改某些配置文件来进行硬盘挂载;那些方案只能暂时挂载,重启之后都会失效。

共享文件夹

文件系统搞好后,直接添加文件系统中的某个文件夹即可:

msedge_0P08lgaqB5

这里我个人建议:每个新文件系统里都应该有一个类似share的文件夹作为共享内容的根目录,你要共享的文件(夹)都放里面。这样,你在OMV里只需要添加一条共享share的记录就可以了

比如,我的ZFS阵列挂载到/nas2目录下,它的文件结构类似:

├── [   4]  private
│   ├── [   3]  backup
│   └── [   4]  lucky-huangwb8
└── [  11]  share
    ├── [  11]  docker
    ├── [  20]  dump
    ├── [   2]  images
    ├── [   2]  private
    ├── [   3]  resources
    ├── [   2]  snippets
    ├── [   6]  softwares
    ├── [   4]  template
    └── [   5]  windows

share的子文件夹,比如dumpimagesprivatesnippetstemplate,是后来我添加SMB/CIFS存储时PVE自动生成的,用于保存各种类似的内容(比如虚拟机备份一般在dump):

msedge_7uV2oly8HK

docker是我自己生成的,主要用于托管各个docker stack的根目录:

/nas2/share/docker
$ tree -h -L 1
.
├── [   5]  duplicati
├── [   5]  jackett
├── [   3]  lxc_backup
├── [   4]  mysql
├── [   6]  nas-tool
├── [   8]  nextcloud
├── [   5]  Sync
└── [   8]  transmission

如果你用过Resilio Sync或者transmission等应用,就知道其内容文件都是保存在相应子目录里。这样,只共享share文件夹就可以在日用PC(示例是Windows 10系统)里访问各种重要数据:

explorer_zP3KgecvvK

当然,管理视频文件一般使用nas-tool/jellyfin/emby等专用媒体库管理系统,这个以后会出详细教程,这里按下不表。

文件夹权限暂时也不用设置,等以后讲用户(组)的时候再说。

用户组

我们查看一下/nas2文件夹的情况:

ls -hl / | grep nas2 

输出结果类似:

# drwxr-xr-x   2 root root    2 Feb 14 09:18 nas2

这提示该文件夹为root所有。我建议大家为新zfs pool新建用户组/用户名。举个例子,我准备这样bensz:bensz。方法很容易,以前在《Linux基础 个人VPS安全》中也讲过。

首先,我们查看所有用户/用户组:

sudo less /etc/passwd

新建用户组(这里我以bensz为例,大家改一个自己惯用的且与现有用户组不重复的名字即可):

# 345可有较大的取值范围,自己试试
sudo groupadd -g 345 bensz

新建用户(这里我以bensz为例,大家改一个自己惯用的且与现有用户不重复的名字名字即可):

sudo useradd \
    -m -d /home/bensz `#自动创建用户目录`\
    -s /bin/bash `#设置默认shell`\
    -g bensz `#主组`\
    -G sudo `#副组`\
    bensz

改从属关系:

sudo chown -R bensz:bensz /nas2/

再次查看文件夹归属:

ls -hl / | grep nas2

输出类似:

drwxr-xr-x   2 bensz bensz    2 Feb 14 09:18 nas2

表明已经成功变更!请注意,OMV GUI后台并不需要特别操作

我们可以进一步设置新用户密码:

# 设置密码
sudo passwd bensz # bitwarden的强密码走起!

值得注意的是,这个密码是在Shell、GUI里及相关服务里是共用的。不过,你还需要登陆GUI在用户的界面中设置一样的密码:

msedge_LIa70Cwlb7

这里有些细节以后再慢慢补充。

服务

由于NAS共享主要是给日用PC用的,所以我这里仅以SMB为例。其它服务,比如NFS也是类似的,自己摸索或者Google/ChatGPT一下!

添加SMB共享

首先,我们启用并设置SMB服务:

msedge_6oSknZRg8s

保存并应用变更配置生效。

其次,我们要添加一个共享文件夹(前面步骤已经搞好了共享文件夹),如下图示:

msedge_3dIvv2RROc

保存并应用变更配置生效。

PVE使用SMB共享

当PVE.OMV中的SMB共享设置好后,一个较合理的方法是直接在PVE系统里挂载一个SMB存储,这样其它虚拟机在使用该SMB时十分方便。

如下图,添加一个SMB/CIFS存储:

msedge_8OPnvwUoUI

设置如下:

msedge_IM7WMwj7vY

有时会添加失败:

msedge_QoECuPdQQ7

这个时候你应该去PVE Shell看一下/mnt/pve文件夹是否有从属不明的文件夹。它们一般是之前删除的SMB卷的残留;新添加SMB卷时一般不太可能发生该error。重启PVE,直接删除残余文件夹即可(要先确保里面是空的)。

成功之后界面如下:

msedge_fNYTlPYF0r

SMB存储直通给LXC

这里是在PVE.LXC和PVE中操作,而不是PVE.OMV中。

PVE.LXC Shell里创建文件夹:

mkdir -p /nas2/{transmission,Sync,share}

停止LXC,并在PVE Shell里直通挂载的SMB存储(按自己的实际情况添加即可):

# 新NAS。103改为自己的LXC ID
pct set 103 -mp0 /mnt/pve/nas2-transmission,mp=/nas2/transmission # explicitly configured lxc.apparmor.profile overrides the following settings: features:nesting, features:mount
pct set 103 -mp1 /mnt/pve/nas2-Sync,mp=/nas2/Sync
pct set 103 -mp2 /mnt/pve/nas2-share,mp=/nas2/share

刷新LXC的资源页面,已经成功挂载3个mp点:

msedge_NkyBDC1ii8

这时启动LXC即可正常使用SMB服务。这里给小伙伴们提个小问题:如果我在LXC Shell里使用root用户在SMB空间中生成一个文件,在PVE.OMV Shell中的用户(组)归属情况是怎样的?为什么?

小结

OMV配置的过程细节还挺多的,我之后会慢慢补充。大家要特别注意《NAS系列 安装OpenMediaVault虚拟机》的“存储器和服务”小节的学习,要彻底吃透磁盘、文件系统、共享文件夹和服务的递进联系,这样才可以在使用OMV这种NAS系统中灵活地配置各种权限,知其然也知其所以然。

我之前有过ZFS阵列从旧NAS转到新NAS的经验,以后整理好再分享。ZFS的使用和维护的细节还是挺复杂的!

如果在设置中有什么问题,欢迎评论区留言!

扩展阅读

---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍

感谢ZGOCLOUD友情赞助 (ฅ´ω`ฅ) 本博客基于m2w创作。版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。VIP内容严禁转载!由于可能会成为AI模型(如chatGPT)的训练样本,本博客禁止将AI自动生成内容作为文章上传(特别声明时除外)。如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租请留言 | 博客VPS | 致谢渺软公益CDN |

评论

  1. 5ango
    Windows Chrome 118.0.0.0
    6 月前
    2023-10-15 21:31:19

    为什么我的硬盘已经挂载了,但是在omv的gui比如zfs和snapraid里创建阵列的时候下拉菜单里没东西,是omv的问题嘛?

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇