所以我正在ZFS上玩什么最终将成为一个文件服务器,我设法让自己进入这个状态:
pool: storage state: DEGRADED status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://zfsonlinux.org/msg/ZFS-8000-9P scan: scrub in progress since Wed Oct 18 17:55:08 2017 272G scanned out of 665G at 512M/s, 0h13m to go 8K repaired, 40.92% done config: NAME STATE READ WRITE CKSUM storage DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 ata-Hitachi_HUA723020ALA641_YFH0ZXHA ONLINE 0 0 0 ata-Hitachi_HUA723020ALA641_YFH2808B ONLINE 0 0 0 ata-Hitachi_HUA723020ALA641_YGGLAUJA ONLINE 0 0 0 ata-Hitachi_HUA723020ALA641_YGGN6B7A ONLINE 0 0 0 sdf OFFLINE 0 0 2 (repairing) errors: No known data errors
我通过构build一个5驱动器raidz2池,然后故意损坏其中一个磁盘,然后以某种方式删除/replace它。 但我认为在某些时候我使用sdX标签添加磁盘而不是我想要的,这是“by-id”标签。
数组在这种状态下工作,但如果是生产,我宁愿命名一致,在某种程度上我只是试图更好地理解它。
什么是可能的方法来“重命名”这最后一个设备? (除了彻底摧毁游泳池!)
所以我不知道我是否正确或者最好的方式,但是我唯一可以做到这一点的方法是用不同的磁盘replace磁盘,然后用原来的磁盘replace它,使用新名称/我想要的ID。 我99%确定这是因为ZFS不允许你replace标记为正在使用的磁盘,以及上面“sdf”的UUID在ZFS数据库中作为活动设备。 所以即使清零标签/元数据也没有帮助,因为当您尝试添加/replace该磁盘时,仍然存在于数据库中。
如果将此磁盘replace为具有不同ID的磁盘,则在replace完成后,它将清除zdb中的ID。 那么你可以用原来的“重新replace”磁盘(因为不再有冲突)。
我相当肯定,如果你可以手动编辑ZFS数据库,你可能只是解决这个问题,但我还没有得到那么多…