池的最大 ZFS 代码库:zfs-linux (0.7.5-1ubuntu16.11)
想象一下,通过在物理磁盘容量方面添加更大的镜像,一个池意外增长。备件被拖走了。新镜子,新备用。HBA 上的 SAS 企业级。镜像 0 小于 1,1 小于 2。每个镜像都有一个适当大小的备用。
pool: glue
state: ONLINE
scan: scrub repaired 0B in 27h55m with 0 errors on Mon Jul 12 04:19:14 2021
config:
NAME STATE READ WRITE CKSUM
glue ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
wwn-0x5000cca2a501f240 ONLINE 0 0 0
wwn-0x5000cca2975af090 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
wwn-0x5000cca271340e4c ONLINE 0 0 0
wwn-0x5000cca27134c71c ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
wwn-0x5000cca2972cce94 ONLINE 0 0 0
wwn-0x5000cca298192df4 ONLINE 0 0 0
spares
wwn-0x5000cca2558480fc AVAIL
wwn-0x5000cca2972be67c AVAIL
wwn-0x5000c50083bbae43 AVAIL
errors: No known data errors
这就是它的样子。如果使用自动备件autoreplace
并且一个小的备件尝试镜像一个比它大的磁盘,池是否会损坏,或者是否有我们可以扫描的错误?
还是会autoreplace
进行检查以确保备件加入相同或更小尺寸的镜子?在这种情况下,最大的备用是否可以加入最小的镜像?
如果你能指出我,我很乐意看一下代码。更重要的是,我很想给你一个赞成票和支票。
Autoreplace 用于更换同一物理位置的驱动器,它与热/冷备用无关。
但看起来 zfs 会按顺序尝试所有备件,直到找到一个成功的备件。我认为这是相关的源代码:GitHub