如何从 ZFS 中删除池?

如何从 ZFS 中删除池?

我的 Ubuntu 12.04 系统有两个 zpools:rpool(包含根文件系统)和 rdata(包含所有其他数据)。rdata 最初是 2 x 1TB 磁盘镜像。

因为我无法将 rdata 升级到 3TB 磁盘(错误的 ashift),我不得不从新的 3TB 磁盘创建一个新的 zpool:最初称为 datapool。然后我 rsync 了所有数据,导出了 rdata,将 datapool 导入为 rdata 和 Bob's your Uncle。然后我关闭电源并移除旧磁盘。但是...

当我重新打开电源时,zpool 状态显示

  pool: rdata
 state: UNAVAIL
status: One or more devices could not be used because the label is missing 
    or invalid.  There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
    a backup source.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
  scan: none requested
config:

NAME                                                 STATE     READ WRITE CKSUM
rdata                                                UNAVAIL      0     0     0         insufficient replicas
  mirror-0                                           UNAVAIL      0     0     0  insufficient replicas
    scsi-SATA_WDC_WD10EADS-00_WD-WCAU47275172-part1  UNAVAIL      0     0     0
    scsi-SATA_WDC_WD10EADS-00_WD-WCAU47283913-part1  UNAVAIL      0     0     0

  pool: rpool
 state: ONLINE
  scan: scrub repaired 0 in 0h23m with 0 errors on Tue Jun  4 11:33:29 2013
config:

NAME                                 STATE     READ WRITE CKSUM
rpool                                ONLINE       0     0     0
  ata-Maxtor_6Y120L0_Y31J3CLE-part2  ONLINE       0     0     0

errors: No known data errors

如您所见,zpool status 仍然显示旧的 rdata;不可用。

zpool import 显示

   pool: rdata
     id: 7033445233439275442
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

rdata                                   ONLINE
  mirror-0                              ONLINE
    scsi-SATA_ST3000DM001-1CH_W1F1EE1G  ONLINE
    scsi-SATA_ST3000DM001-1CH_W1F25SE2  ONLINE

这是正确的 rdata

问题:如何让 Ubuntu 忘记所有旧的 zpool?

答案1

sudo zpool destroy rdata

将破坏旧池(可能需要 -f 来强制)。

sudo zpool export rdata

将断开池的连接。

sudo zpool import 7033445233439275442

将导入新池。您需要使用 ID 号,因为有两个“rdata”池。

当您使用 ZFS 根运行时,剩下要做的就是重建 initramfs 来更新池:

sudo update-initramfs -c -k all
sudo update-grub

重新启动,一切正常。:)

答案2

您只需一个命令即可销毁池。

sudo zpool destroy <poolname>

检查池的状态

sudo zpool status <poolname>

相关内容