18.04 驱动器已安装到 zfs 池中的目录中,现在池已降级

18.04 驱动器已安装到 zfs 池中的目录中,现在池已降级

首先要说的是,我的所有数据都在其他地方备份了,所以一切都没有丢失(这只是很烦人,我想从错误中吸取教训)。

几个月来,我设置了 2 个驱动器 zfs 镜像池,没有出现任何问题。我最近添加了一个较旧的 2TB 驱动器来录制我的 CCTV 录像。为了避免设置第二个 samba 共享,我想将驱动器安装在现有路径下。

我用 ext4 格式化了 2TB 的驱动器,然后尝试手动将驱动器安装到我想要的位置。一切似乎都很好:原始目录树都在那里,新驱动器的 lost+found 文件夹也出现在新路径中。到目前为止一切顺利!

然后我进入 fstab 以使挂载永久化(第二行):

UUID=e82b3fae-dce5-4b41-bd87-1f7bbd5f8039 /               ext4    errors=remount-ro 0       1
UUID=6b35ec61-13aa-46f9-b6b7-dfd4b264318f      /zpool_primary/Media/CCTV       ext4    defaults        0       0

我重新启动了,服务器恢复了运行,然后我就去睡觉了(我不确定我是否检查了路径/网络共享)。

今天晚上,我发现里面唯一的目录现在是 CCTV 文件夹。

我最初的假设是,当我安装驱动器时,我破坏了池,但是如果你看下面的内容,它报告说其中一个驱动器曾经作为不同的设备安装:

root@gomez:/zpool_primary# zpool status
  pool: zpool_primary
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: none requested
config:

        NAME                      STATE     READ WRITE CKSUM
        zpool_primary             DEGRADED     0     0     0
          mirror-0                DEGRADED     0     0     0
            sdb                   ONLINE       0     0     0
            15142782844563214281  UNAVAIL      0     0     0  was /dev/sdf1

errors: No known data errors

lsblk的结果:

root@gomez:/home/nick# lsblk -l
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda    8:0    0 111.8G  0 disk
sda1   8:1    0 111.8G  0 part /
sdb    8:16   0   7.3T  0 disk
sdb1   8:17   0   7.3T  0 part
sdb9   8:25   0     8M  0 part
sdc    8:32   1   1.8T  0 disk
sdc1   8:33   1   1.8T  0 part /zpool_primary/Media/CCTV
sdd    8:48   1   7.3T  0 disk
sdd1   8:49   1   7.3T  0 part
sdd9   8:57   1     8M  0 part

在我开始四处寻找并让事情变得更糟之前,有人能建议我如何恢复 zfs 池吗?我已经尝试注释掉 fstab 行并重新启动,但我只剩下路径(其中没有任何内容)。

顺便说一句,我印象中即使一个驱动器性能下降,zpool 也应该继续运行(事实并非如此)。

为了方便以后查看,以下是 blkid 的结果:

root@gomez:/zpool_primary# blkid
/dev/sda1: LABEL="OS" UUID="e82b3fae-dce5-4b41-bd87-1f7bbd5f8039" TYPE="ext4" PARTUUID="5805358e-01"
/dev/sdb1: LABEL="zpool_primary" UUID="9579775147971336578" UUID_SUB="6175940412684032547" TYPE="zfs_member" PARTLABEL="zfs-efd142ee34d8cfea" PARTUUID="018883e2-0067-ac4b-8126-a2c02d0cfa45"
/dev/sdc1: LABEL="CCTVPartition" UUID="6b35ec61-13aa-46f9-b6b7-dfd4b264318f" TYPE="ext4" PARTLABEL="primary" PARTUUID="a31f929b-0989-4baa-8faf-082be6fca607"
/dev/sdd1: LABEL="zpool_primary" UUID="9579775147971336578" UUID_SUB="15142782844563214281" TYPE="zfs_member" PARTLABEL="zfs-693944edaab7d9e6" PARTUUID="91203b94-8387-1e4e-8646-5ba2cb6c461f"
/dev/sdb9: PARTUUID="e18a4bf7-b4c9-2149-bcd2-19ab9ba2182c"
/dev/sdd9: PARTUUID="009580ae-4c61-ab4d-a923-b7dc6ba14faa"

fdisk:

root@gomez:/zpool_primary# fdisk -l
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5805358e

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1  *     2048 234440703 234438656 111.8G 83 Linux


Disk /dev/sdb: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
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: 7FB97DF9-6B2B-4D4A-A086-4B53CBA65C6F

Device           Start         End     Sectors  Size Type
/dev/sdb1         2048 15628036095 15628034048  7.3T Solaris /usr & Apple ZFS
/dev/sdb9  15628036096 15628052479       16384    8M Solaris reserved 1


Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 205036C8-9CE4-4C1F-9FC5-0D8BF4B6EBB8

Device     Start        End    Sectors  Size Type
/dev/sdc1   2048 3907028991 3907026944  1.8T Linux filesystem


Disk /dev/sdd: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
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: EA0DD0BF-B55E-4B4E-BA33-C74AAB6922F9

Device           Start         End     Sectors  Size Type
/dev/sdd1         2048 15628036095 15628034048  7.3T Solaris /usr & Apple ZFS
/dev/sdd9  15628036096 15628052479       16384    8M Solaris reserved 1

答案1

因此,看起来 dev id 已经更改。通过导出 zfs 池成功恢复了一半:

zpool export zpool_primary

并再次使用以下方式导入:

zpool import -d /dev/disk/by-id zpool_primary

我还没有设法恢复第二个驱动器,因为我不知道正确的 ID,但根本原因是使用 /dev 而不是唯一 ID 进行设置。

答案2

如果我没记错的话,/etc/fstab是在 zfs 挂载其数据集之前处理的。修复降级驱动器后,如果您仍然无法挂载文件系统,我认为 zfs 很可能会因为其目标不为空(现在其中挂载了一个 ext4 文件系统)而无法挂载。

的输出是什么systemctl --failed

我打赌zfs-mount.service失败了。

简单的解决方案是不在 zfs 系统树内挂载 ext4 系统。您可以删除该行/etc/fstab并删除它可能创建的文件夹结构,以使 zfs 具有干净的挂载点。

如果必须将其安装在那里,您可以尝试zfs-mount.service在行中添加依赖项/etc/fstab,如下所示(下面的部分全部是一行):

UUID=6b35ec61-13aa-46f9-b6b7-dfd4b264318f /zpool_primary/Media/CCTV ext4 defaults,x-systemd.requires=zfs-mount.service 0 0

相关内容