ZFS热备用无法正常工作

特里斯坦·维吉尔(Tristan Vigil)

我的虚拟机中有休闲的ZFS测试池设置:

    NAME        STATE     READ WRITE CKSUM
    pool        DEGRADED     0     0     0
      mirror-0  DEGRADED     0     0     0
        sdb     ONLINE       0     0     0
        sdc     ONLINE       0     0     0
    spares
      sdd       AVAIL

我试图测试替换zfs池中自动不可用的驱动器的能力例如,如果出于某种原因将驱动器从系统中卸下,则备用潜水可能会在驱动器卸下后立即就位。我已经配置了一个spare驱动器,并且从阅读的内容来看,据我所知,这应该可以实现我的目标。我还设置了autoreplace标志,on以告知zfs如果检测到,请更换任何损坏的驱动器。从虚拟机中删除驱动器时,说sdb一遍并重新检查zfs的状态,看起来像是休假的:

    NAME        STATE     READ WRITE CKSUM
    pool        DEGRADED     0     0     0
      mirror-0  DEGRADED     0     0     0
        sdb     UNAVAIL      0     0     0
        sdc     ONLINE       0     0     0
    spares
      sdd       AVAIL

sdb设备不可用,但永远不会被备用设备代替。有没有办法让我的用例工作?

特里斯坦·维吉尔(Tristan Vigil)

介绍

首先,对于在Ubuntu 16.04上遇到相同问题的任何人,它目前是一个持续存在的错误,据我所知,到目前为止,该错误尚未得到修复。您可以在此处访问github对话以查看我正在引用的错误。其次,我以发烧友和linux中级用户的身份来撰写这篇文章,我不是开发人员,或者目前从事linux工作。话虽如此,我将尽我所能提供有关此问题的信息。

问题:

zfsonlinux软件包中内置的热备用功能当前无法按手册页中所述运行。zpool手册页:

Hot Spares
   ZFS allows devices to be associated with pools as "hot spares".
   These devices are not actively used in the pool, but when an active
   device fails, it is automatically replaced by a hot spare.

注意:冷备用(无法自动替换的备用)功能有效,但仅在由mirrors或任何一个组成的配置中有效raidz's如果您有以下配置,请执行以下操作:

NAME      STATE     READ WRITE CKSUM
pool      ONLINE       0     0     0
  sdb     ONLINE       0     0     0
  sdc     ONLINE       0     0     0
spares
  sdd     AVAIL

驱动器发生故障后,由于错误,您将无法用备用驱动器替换它pool I/O is currently suspended

尝试的解决方案:

这是我尝试过的解决方案的列表,得到的结果是:

  1. ZFS自动替换:事实证明,根据zpool手册页和我对它的理解,该autoreplace功能不是用备用磁盘替换损坏的驱动器,而是用在其位置上找到的任何新设备替换损坏的驱动器本身。zpool手册页:

    If set to "on", any new device, found in the same physical location
    as a device that previously belonged to the pool, is automatically 
    formatted and replaced.
    

    autoreplace很好,但是要实现热备用的功能,我认为这不是必需的。我无法通过手册页来确认这一点,因为我无法获得剩余的工作空间。

  2. ZED.rc:后来我在github的对话中发现需要在中设置ZED_SPARE_ON_CHECKSUM_ERRORSZED_SPARE_ON_IO_ERRORS标志zed.rc正如@ user121391在对这篇帖子的回答中所说,zed服务/守护程序是确定池状态的内容,以及根据该状态需要执行的操作。您可以通过运行在工作中看到zed.d zpool events有关Linux上zed.d的更多信息,请点击这里设置完标志后,重新启动,然后重新配置新的池,以防万一,我对热备用的测试再次呈负数。

  3. ZED.d脚本:在@MichaelKjörling的评论中,他提到了一些与ZED打包在一起的脚本,这些脚本是为帮助热备用方案而编写的。我确实确实找到了位于中的脚本/etc/zfs/zed.d您可以在GitHub的页面上查看这些脚本在这里根据我对zed.d的理解,触发事件时,ZED守护程序会根据其状态运行这些脚本之一。话虽这么说,但我确实尝试过手动运行io-spare.shchecksum-spare.sh,并根据它们执行的时间以及池的未更改状态来判断它们似乎无法正常运行。也许这是问题的潜在根源。

我的计划

就ZFS的Ubuntu 16.04用户而言,据我所知,当前似乎无法解决此问题。我计划根据测试中获得的性能继续将ZFS与amirroredraidz(RAID5)一起使用。(镜像速度会更快,但我想看看速度如何raidz)热备用会增加这两个配置的冗余性但不幸的是,我们将不得不等到该zfsonlinux项目的进一步开发

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jekyll中的热重装无法正常工作

来自分类Dev

jekyll中的热重装无法正常工作

来自分类Dev

webpack-dev-server热重载器无法正常工作

来自分类Dev

闪亮的热图和散点图链接在模块中无法正常工作

来自分类Dev

即使是简单的热图,我也无法使heatmap.js正常工作

来自分类Dev

Docker Create React应用程序热重载无法正常工作

来自分类Dev

Linux下的ZFS,能正常工作吗?

来自分类Dev

如果GRUB2无法在我的PC上正常运行,备用引导加载程序是否可以工作?

来自分类Dev

PC / XAML热重装上的iOS开发可以正常工作,但资产目录图像集中的图像无法显示

来自分类Dev

Eclipse Luna 4.4.1春季启动1.3.0.M4,spring-dev-tools热重装无法正常工作

来自分类Dev

@BeforeSuite无法正常工作

来自分类Dev

BringIntoView无法正常工作

来自分类Dev

Selendroid无法正常工作?

来自分类Dev

无法使URLrewritng正常工作

来自分类Dev

substr()无法正常工作

来自分类Dev

slidetoggle无法正常工作

来自分类Dev

onkeypress无法正常工作

来自分类Dev

Bash IF无法正常工作

来自分类Dev

@AfterThrowing无法正常工作

来自分类Dev

httpPost无法正常工作

来自分类Dev

getrusage无法正常工作

来自分类Dev

NetworkActivityIndicator无法正常工作

来自分类Dev

ReactCSSTransitionGroup无法正常工作

来自分类Dev

didHighlightItemAtIndexPath无法正常工作

来自分类Dev

Scanf无法正常工作

来自分类Dev

无法使Makefile正常工作

来自分类Dev

BitArray无法正常工作

来自分类Dev

glBindAttribLocation无法正常工作

来自分类Dev

右移无法正常工作