我的虚拟机中有休闲的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
设备不可用,但永远不会被备用设备代替。有没有办法让我的用例工作?
首先,对于在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
。
这是我尝试过的解决方案的列表,得到的结果是:
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
很好,但是要实现热备用的功能,我认为这不是必需的。我无法通过手册页来确认这一点,因为我无法获得剩余的工作空间。
ZED.rc:后来我在github上的对话中发现需要在中设置ZED_SPARE_ON_CHECKSUM_ERRORS
和ZED_SPARE_ON_IO_ERRORS
标志zed.rc
。正如@ user121391在对这篇帖子的回答中所说,zed服务/守护程序是确定池状态的内容,以及根据该状态需要执行的操作。您可以通过运行在工作中看到zed.d zpool events
。有关Linux上zed.d的更多信息,请点击这里。设置完标志后,重新启动,然后重新配置新的池,以防万一,我对热备用的测试再次呈负数。
ZED.d脚本:在@MichaelKjörling的评论中,他提到了一些与ZED打包在一起的脚本,这些脚本是为帮助热备用方案而编写的。我确实确实找到了位于中的脚本/etc/zfs/zed.d
。您可以在GitHub的页面上查看这些脚本在这里。根据我对zed.d的理解,触发事件时,ZED守护程序会根据其状态运行这些脚本之一。话虽这么说,但我确实尝试过手动运行io-spare.sh
和checksum-spare.sh
,并根据它们执行的时间以及池的未更改状态来判断它们似乎无法正常运行。也许这是问题的潜在根源。
就ZFS的Ubuntu 16.04用户而言,据我所知,当前似乎无法解决此问题。我计划根据测试中获得的性能继续将ZFS与amirrored
或raidz
(RAID5)一起使用。(镜像速度会更快,但我想看看速度如何raidz
)热备用会增加这两个配置的冗余性但不幸的是,我们将不得不等到该zfsonlinux
项目的进一步开发。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句