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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 967091
Accepted
Programster
Programster
Asked: 2017-10-21 22:55:15 +0800 CST2017-10-21 22:55:15 +0800 CST 2017-10-21 22:55:15 +0800 CST

插入驱动器时 Zpool 降级

  • 772

为了测试将 ZFS 日志设备添加到 ZFS 阵列会产生什么影响,我决定创建一个 zpool 并执行一些基准测试,然后再插入 SSD 作为 ZIL。

不幸的是,每当我在创建 zpool 后插入 SSD,或在创建池后拔下 SSD(在创建池后导致驱动器号发生变化的任何事情),然后重新启动,我的池将尽可能降级通过运行显示sudo zpool status

  pool: zpool1
 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
    zpool1                   DEGRADED     0     0     0
      mirror-0               DEGRADED     0     0     0
        sda                  ONLINE       0     0     0
        1875547483567261808  UNAVAIL      0     0     0  was /dev/sdc1

我怀疑问题源于我使用驱动器号创建池的事实,如下所示:

sudo zpool create -f zpool1 mirror /dev/sdb /dev/sdc

问题

对我来说幸运的是,这只是一个测试,没有丢失数据的风险,但是如果这发生在现实世界的场景中,从这个问题中恢复的最佳方法是什么?显然,驱动器仍然存在并准备就绪。

有没有更好的方法来创建 zpool 而不使用驱动器号/dev/sda来避免将来出现这个问题?我注意到Ubuntu 文档声明以与我相同的方式创建 zpool。

额外信息

  • 操作系统:Ubuntu 16.04 服务器 4.10
  • 从安装zfsutils-linux包安装 zfs
zfs
  • 1 1 个回答
  • 2181 Views

1 个回答

  • Voted
  1. Best Answer
    Programster
    2017-10-22T08:01:34+08:002017-10-22T08:01:34+08:00

    在Level 1/dev/disk/by-id/... techs forum 获得 Dexter_Kane 的帮助后,答案是在创建池时使用路径。

    例如

    sudo zpool create zpool1 mirror \
    /dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 \
    /dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H
    

    转换和修复现有池

    好消息是您可以将现有的 ZFS RAID 阵列“转换”为使用这些标签,以防止将来发生这种情况,如果这种情况已经发生在您身上,甚至可以解决降级的阵列。

    sudo zpool export [pool name]
    sudo zpool import -d /dev/disk/by-id [pool name]
    

    您只需确保池数据集未在使用中。例如,不要在池中执行命令,并确保它们没有通过 NFS 等共享。

    执行转换后,输出sudo zpool status应类似于:

      pool: zpool1
     state: ONLINE
      scan: none requested
    config:
    
            NAME                                          STATE     READ WRITE CKSUM
            zpool1                                        ONLINE       0     0     0
              mirror-0                                    ONLINE       0     0     0
                ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7  ONLINE       0     0     0
                ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H  ONLINE       0     0     0
    

    进行的测试

    我确保测试:

    • 使用 by-id 路径确实可以防止问题发生。
    • 在池处于降级状态时写入一些数据后,执行导出/导入后我仍然可以读取所有文件,并且sudo zpool status没有报告错误。
    • 5

相关问题

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve