AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[zfs](unix)

Martin Hope
elbarna
Asked: 2025-01-03 07:14:36 +0800 CST

Openzfs、Linux 和 nfsv4 acl

  • 5

在 Linux 上,zfs 似乎支持 nfsv4acl

zfs set acltype=nfsv4 rpool/ROOT/nas
echo $?
0

我创建了一个 fs

zfs create -o mountpoint=/var/pub rpool/pub

并且...什么都没起作用

nfs4_setfacl -e /var/pub
Failed to instantiate ACL.

nfs4_setfacl -a A:fd:OWNER@:rwaDdxtTnNy,A:GROUP@:rwaDdxtTnNy,D:fd:EVERYONE@:rwaDdxtTnNy /var/pub
Failed to instantiate ACL.

我不知道还有其他任何实用程序可以管理 nfsv4acl。我错过了什么?

zfs 似乎已正确配置为使用 nfs4acl

rpool                      acltype                nfsv4                     local
rpool/ROOT                 acltype                nfsv4                     local
rpool/ROOT/nas             acltype                nfsv4                     local
rpool/ROOT/nas@26-12-2024  acltype                nfsv4                     inherited from rpool/ROOT/nas
rpool/pub                  acltype                nfsv4                     local
rpool/root                 acltype                nfsv4                     inherited from rpool
rpool/tmp                  acltype                nfsv4                     inherited from rpool

编辑:这个应用程序可能有效https://github.com/truenas/nfs4xdr-acl-tools问题是无法在 Slackware 15 上编译,所以我无法测试它

/usr/bin/libtool --mode=link gcc -o nfs4xdr_torture   nfs4xdr_torture.o   ../libnfs4acl/libnfs4acl.la -lattr  
libtool: link: gcc -o nfs4xdr_torture nfs4xdr_torture.o  ../libnfs4acl/.libs/libnfs4acl.a -lbsd -ljansson -lattr
/usr/bin/ld: ../libnfs4acl/.libs/libnfs4acl.a(nfs4_json_to_acl.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:54: multiple definition of `flags2txt'; ../libnfs4acl/.libs/libnfs4acl.a(nfs4_ace_to_json.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:54: first defined here
/usr/bin/ld: ../libnfs4acl/.libs/libnfs4acl.a(nfs4_json_to_acl.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:67: multiple definition of `perms2txt'; ../libnfs4acl/.libs/libnfs4acl.a(nfs4_ace_to_json.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:67: first defined here
/usr/bin/ld: ../libnfs4acl/.libs/libnfs4acl.a(nfs4_json_to_acl.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:87: multiple definition of `type2txt'; ../libnfs4acl/.libs/libnfs4acl.a(nfs4_ace_to_json.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:87: first defined here
/usr/bin/ld: ../libnfs4acl/.libs/libnfs4acl.a(nfs4_json_to_acl.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:98: multiple definition of `aclflags2txt'; ../libnfs4acl/.libs/libnfs4acl.a(nfs4_ace_to_json.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:98: first defined here
/usr/bin/ld: ../libnfs4acl/.libs/libnfs4acl.a(nfs4_json_to_acl.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:107: multiple definition of `basicperms2txt'; ../libnfs4acl/.libs/libnfs4acl.a(nfs4_ace_to_json.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:107: first defined here
/usr/bin/ld: ../libnfs4acl/.libs/libnfs4acl.a(nfs4_json_to_acl.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:117: multiple definition of `basicflags2txt'; ../libnfs4acl/.libs/libnfs4acl.a(nfs4_ace_to_json.o):/root/nfs4xdr-acl-tools/libnfs4acl/../include/nfs4_json.h:117: first defined here
collect2: error: ld returned 1 exit status
gmake[1]: *** [../include/buildrules:47: nfs4xdr_torture] Error 1
make: *** [Makefile:53: default] Error 2
zfs
  • 1 个回答
  • 27 Views
Martin Hope
EvilWeebl
Asked: 2024-04-10 18:11:24 +0800 CST

如何访问/导入/挂载 zfs 文件

  • 6
这个问题是从服务器故障迁移过来的,因为它可以在 Unix & Linux Stack Exchange 上得到回答。 2天前迁移 。

当我希望将网站迁移到其他地方时,我已要求我的 WordPress 托管提供商为我提供服务器的快照。我得到的是一个 .zfs 文件。

今天之前我完全不知道zfs是什么。我读过一些文档,每次 google 搜索都会返回 zfs 池和卷。我想我需要将此文件安装为池或卷,但在尝试创建 zpool 并在文件中使用 zpool import -d 后,它仍然表示找不到任何池。

简而言之,我已经超出了我的能力范围。我想做的就是从这个东西中获取一些文件。我可以启动一个临时的 Ubuntu 或 Windows 虚拟机来完成工作,因此任何关于哪一个更容易使用的指导以及我浏览这个东西所需的工具/命令/流程将不胜感激,谢谢。

zfs
  • 1 个回答
  • 34 Views
Martin Hope
Programster
Asked: 2024-03-18 02:11:16 +0800 CST

Incus - 设置有状态快照的migration.stateful

  • 5

我正在尝试掌握Incus,因为它看起来像是 Canonical 的 LXD 的一个分支,我可以使用 deb 包在 Debian 12 上相当轻松地运行它,而不是使用 snap。

我将其全部设置在 KVM 上的虚拟机中,并使用基于基本目录的存储池和 zfs 存储池运行。我已经启动了一个名为test我想要拍摄状态快照的测试容器,但它告诉我:

要创建有状态快照,实例需要将 migration.stateful 配置设置为 true

在此输入图像描述

在阅读有关配置实例选项的文档后,我尝试运行这些不同的命令(第一个是我认为最有可能正确的命令):

incus config set test migration.stateful=true
incus config set test config.migration.stateful=true
incus config set test.migration.stateful=true
incus config set migration.stateful=true

...但我总是收到类似于以下内容的关于未知配置密钥的错误消息:

错误:无效配置:未知配置密钥:migration.stateful

我还尝试通过 YAML 配置设置该选项,如下所示:

在此输入图像描述

...但它只是卡在“正在处理...”上

在此输入图像描述

如何启用 incus Linux 容器的状态快照?也许这是不可能的,因为我是在虚拟机而不是物理机内运行?

zfs
  • 1 个回答
  • 40 Views
Martin Hope
frieder
Asked: 2023-12-10 05:49:13 +0800 CST

ZFS:使用加密数据集一次重组多个池的最佳实践

  • 5

高级描述

因此,我目前有一个复杂的 ZFS 设置,并希望对其进行重组,重用一些现有的硬件。

我知道做这样的事情的推荐方法是备份所有数据,销毁旧池,创建新池并恢复数据,问题是如何最好地做到这一点

设置和细节

我当前的设置由 3×1TB 和 3×4TB 驱动器组成,按以下方式设置其中两个 4TB 驱动器分别格式化为一个 1TB 和一个 3TB 分区。

  • media_pool是一个由 5×1TB 磁盘/分区组成的 raidz1 池(-> 4TB 可用,已用 3.26TB)
  • three_t_pool是由 2 个 3TB 分区组成的镜像(-> 3TB 可用,1.93TB 已使用)
  • non_redundant是一个仅包含一个 4TB 驱动器的池(已使用 1.07TB)

这些池中的每一个都只有一个跨越整个池的加密数据集。 media_pool/media_encrypted,three_t_pool/backups, 和non_redundant/nr_encrypted。


我未来的设置将淘汰 1TB 驱动器并添加 12TB 驱动器,如下所示:

  • media_and_backups一个 raidz1 池,由 3 个 4TB 驱动器和 12TB 驱动器的 4TB 分区组成((4-1)×4TB = 12TB 可用)
  • non_redundant_foo大驱动器的剩余 8TB。

以及加密数据集 media_and_backups/media_encrypted、media_and_backups/backups、 和non_redundant_foo/nr_encrypted。

(尽管将媒体和备份数据集分开并不是必须的,因为这会使事情变得复杂)


现在我的迁移过程可能如下所示(所有 7 个驱动器都连接到同一台计算机):

  • 在所需的 4 TB 和 8 TB 分区中格式化 12 TB 驱动器
  • 将现有池/数据集的数据备份到8TB分区
  • 销毁旧的三个池,创建media_and_backups池和相应的数据集(media_and_backups/media_encrypted,media_and_backups/backups),从备份中恢复它们
  • [甚至可以选择将nr_encrypted数据移动到media_and_backups,销毁 8TB 分区上的文件系统,在那里创建一个新池并将nr_encrypted数据集恢复到那里]

但就像我上面提到的,我不确定的部分是备份和恢复进度

  • 我能想到的一种简单方法是仅使用 rsync,为每个数据集创建一个文件夹,同步所有数据,创建我想要的池和数据集,然后 rsync 回这些数据集。
    • 一个明显的缺点是数据将在备份时被解密并在恢复时重新加密
    • 只是感觉不对,例如我如何识别传输中的数据损坏
  • zfs send似乎zfs receive是要走的路。但是...我实际上该怎么做呢?
    • 我阅读了ZFS send/recv full snapshot的答案,但我的设置和他们的设置之间存在一些关键差异:
      • 他们直接在新服务器上创建新池我想首先存储备份,然后在同一服务器上恢复它
      • 我有来自三个不同池的三个数据集,我想存储在同一个池中
    • 还有关于可用存储的问题:8TB (= 7.28TiB) 应该足以容纳 3.26+1.93+1.07=6.26TiB 的已用数据,但当然 8TB 池无法托管 4+3+价值 4TB 的数据集
  • 因此,我认为我应该将zfs send当前数据集分别放入 8TB 池上的一个大文件(或以某种方式将其拆分为块),然后在完成后销毁旧池并创建新池,然后zfs recv从文件到池

这是执行此操作的最佳方法,还是有更好/推荐的方法?或者使用zfs send/的任何最佳实践zfs receive。如果我这样做的话,有什么需要注意的地方吗?

zfs
  • 1 个回答
  • 31 Views
Martin Hope
elbarna
Asked: 2023-02-22 02:52:38 +0800 CST

对 raid-z 和添加的新磁盘感到困惑

  • 6

在 Solaris-CBE 上使用 raid-z 进行实验时,我得到了这个

我创建了一个 raid-z 池

zpool create pool1 raidz c4t3d0 c4t5d0 c4t4d0

那我要加盘

zpool add pool1 c5t0d0

返回错误(pool1 是 raid-z,vdev 是磁盘,使用 -f..)

我使用 -f(强制)

zpool add -f pool1  c5t0d0

有用!

zpool status pool1
  pool: pool1
    ID: 8550511546950241199
 state: ONLINE


        NAME        STATE      READ WRITE CKSUM
        pool1       ONLINE        0     0     0
          raidz1-0  ONLINE        0     0     0
            c4t3d0  ONLINE        0     0     0
            c4t5d0  ONLINE        0     0     0
            c4t4d0  ONLINE        0     0     0
          c5t0d0    ONLINE        0     0     0

我的问题是:这是什么样的配置?c5t0d0 是 pool1 的子镜像还是其他?

zfs
  • 1 个回答
  • 17 Views
Martin Hope
elbarna
Asked: 2023-01-08 12:18:19 +0800 CST

Linux 上的 zfs:如果您不知道必须在哪里安装密钥,如何导入加密池?

  • 5

我在带 zfs 的 livecd 上。我想导入一个加密池,它有一个密钥文件作为“密码”

首先我用密钥文件安装USB加密狗

mkdir /tmpusb
mount /dev/disk/by-uuid/uuidofdongle... /tmpusb

然后我导入池

zpool import -l -d /dev/disk/by-partlabel/ROOTPOOL1 -d /dev/disk/by-partlabel/ROOTPOOL2 -o altroot=/mnt rpool
1 / 1 keys successfully loaded

一切正常!问题是什么?

如果我忘记了正确的目录,在哪里安装加密狗?

zfs 给我正确的答案,但必须先打开池!

zfs get all rpool|grep -i kyloc
rpool  keylocation           file:///tmpusb/cifry  local

问题是:有没有办法让这个属性关闭游泳池?

zfs
  • 1 个回答
  • 20 Views
Martin Hope
Kendrick
Asked: 2022-06-21 07:21:32 +0800 CST

在 zfs 池中发生故障后定位特定驱动器

  • 0

我有一个驱动器发生故障的池,zfs 对此很愚蠢。我添加了一个最终进入 /dev/sdl 的磁盘,我使用该磁盘按 id 将其添加进去,由于在另一个驱动器在重新启动期间或之前发生故障之后,我得到以下行。


5642991870772164099 不可用 0 0 0 是 /dev/sdl1
知道如何获取信息以找到 5642991870772164099 的序列号是什么吗?
disk zfs
  • 1 个回答
  • 62 Views
Martin Hope
Harv
Asked: 2022-06-14 23:11:13 +0800 CST

zfs 池元数据损坏

  • 1

我是一个白痴。我已经在我的清单上设置了我的异地备份并且..你猜对了,在这发生之前我没有解决它。我实际上以为我已经正确设置了本地备份,但事实证明不,我没有。反正:

我是 ZFS 的新手。我正在运行 Proxmox,并在 HDA 卡上的 9 个驱动器上启用了直通到池的 TrueNAS VM。我有两个 NVMe 驱动器,但我认为我只设置了一个用于缓存,一个 SSD 用于 Proxmox。由于我不清楚的原因,我的 zpool 昨天损坏了。我的 Proxmox 主机似乎知道池,这对我来说很奇怪,因为我在 TrueNAS 来宾中创建了池。

我尝试过zpool import使用-f -F -FX和-fFX标志运行。我不确定是否应该在主机或来宾上运行这些命令。我也尝试过--readonly=onand (在主机上)我尝试过设置echo 0 > /sys/module/zfs/parameters/spa_load_verify_metadata,尽管在尝试在客户机上导入 zpool 之前我没有尝试过这样做,因为坦率地说,我有点害怕主机和客人似乎可以使用游泳池,我不确定这不会导致问题。

我得到的错误是元数据已损坏。 我不知道这是否相关,但这发生在我试图安装 GPU 并在 Proxmox 中为该设备启用 PCIe/GPU 直通的时候。

Proxmox:

root@proxmox:~# zpool import
   pool: Seabreeze
     id: 821564149027342835
  state: FAULTED
status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-72
 config:

        Seabreeze   FAULTED  corrupted data
          raidz2-0  FAULTED  corrupted data
            sdf2    ONLINE
            sdh2    ONLINE
            sdc2    ONLINE
            sde2    ONLINE
            sdj2    ONLINE
            sdb2    ONLINE
            sdg2    ONLINE
            sdd2    ONLINE
            sdi2    ONLINE
root@proxmox:~#

真NAS:

truenas% sudo zpool import
   pool: Seabreeze
     id: 821564149027342835
  state: FAULTED
status: The pool was last accessed by another system.
 action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

        Seabreeze                                       FAULTED  corrupted data
          raidz2-0                                      FAULTED  corrupted data
            gptid/bb911e9d-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbb5c9f6-c067-11ec-b393-734570047b00  ONLINE
            gptid/bba92ac5-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbbf0f87-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbda0fa2-c067-11ec-b393-734570047b00  ONLINE
            gptid/bc03effa-c067-11ec-b393-734570047b00  ONLINE
            gptid/bc114e59-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbd0f901-c067-11ec-b393-734570047b00  ONLINE
            gptid/bc18eaf4-c067-11ec-b393-734570047b00  ONLINE
truenas%

我的数据可以恢复吗?

zfs
  • 1 个回答
  • 233 Views
Martin Hope
Tudvari
Asked: 2022-05-25 04:16:21 +0800 CST

使用 zpool add 扩展镜像 ZFS 池中的可用空间?

  • 0

我的Debian上有一个带有两个设备( )的镜像池。sda, sdb

现在我插入了两个额外的设备( sdc, sdd),所以我可以将目录中的可用空间增加一倍。/mnt/data/

是由just完成的sudo zpool add backup-pool mirror sdc sdd吗?

我有点害怕,所以我想确认一下。对不起菜鸟问题。

以下是我的游泳池的详细信息:

须藤 zfs 列表

NAME               USED  AVAIL     REFER  MOUNTPOINT
backup-pool       1.47T  1.17T       96K  /backup-pool
backup-pool/data  1.47T  1.17T     1.47T  /mnt/data

须藤 zpool 列表

NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
backup-pool  2.72T  1.47T  1.25T        -         -    11%    53%  1.00x    ONLINE  -

须藤 fdisk -l

Disk /dev/sdc: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdd: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdb: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: ABB57994-974B-734A-A2A9-2BA616368A52

Device          Start        End    Sectors  Size Type
/dev/sdb1        2048 5860515839 5860513792  2.7T Solaris /usr & Apple ZFS
/dev/sdb9  5860515840 5860532223      16384    8M Solaris reserved 1


Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: DCDDA5ED-CB54-C042-9AF6-076F07F44E96

Device          Start        End    Sectors  Size Type
/dev/sda1        2048 5860515839 5860513792  2.7T Solaris /usr & Apple ZFS
/dev/sda9  5860515840 5860532223      16384    8M Solaris reserved 1

谢谢!

zfs
  • 1 个回答
  • 289 Views
Martin Hope
Simon Baldwin
Asked: 2022-05-06 03:01:59 +0800 CST

如何在 FreeBSD 中挂载 ZFS 卷以进行克隆

  • 0

我正在尝试将 FreeBSD 安装克隆到新硬盘驱动器上,需要挂载它,然后找到挂载点才能继续进行克隆过程。

我要克隆到的内部驱动器当前具有 Windows 10 安装和我想要克隆的不太优化的 FreeBSD 安装。

我很高兴为 FreeBSD 使用当前的 UFS 分区方案。

我将从一个实时的 FreeBSD USB 记忆棒启动,以便运行适当的命令。我遇到的问题是我要从中克隆的磁盘是使用 ZFS 分区的,我无法弄清楚如何挂载它以及如何找到挂载点。该磁盘使用 USB-SATA 适配器连接到我的计算机。

freebsd zfs
  • 1 个回答
  • 813 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve