Насколько я понимаю, с raidz2 на машине может выйти из строя до двух дисков, не выходя из строя. Если пойдет третий, то zpool исчезнет. Это верно?
Нет. В массиве может быть до двух дисков без отключения. Это не имеет ничего общего с подъемом или опусканием машины.
В этой ситуации ни один диск не показывает неисправность, и отображается только постоянная ошибка.
Он показывает постоянную ошибку в файле. В уже удаленном файле, насколько я понимаю (но исходный вопрос все еще отсутствует статус пула
вывод, у нас есть только ваша потенциально ошибочная интерпретация). Возможности самовосстановления ZFS не являются волшебными, fs может восстанавливаться после ошибок до определенного порога, но затем, как правило, случаются плохие вещи. Типа ваши постоянные ошибки. Чаще всего это когда у вас есть несколько ошибок контрольной суммы на нескольких дисках, пересекающихся в каком-то файле. Без статус пула
трудно догадаться.
Если нет неисправных дисков, разве zfs не сможет восстановить или восстановить файл из других исправных копий на raidz2?
Это было бы, но не для удаленного файла.
Там, убрав постоянную ошибку.
Итак, вы хотите, чтобы zfs просто молча проглатывал ошибки. В ИТ дела обстоят не так. Часть ядра zfs жалуется на возникающие ошибки, и это хорошо.
Если виртуальная машина файлового сервера работала на этом компьютере, когда произошла эта постоянная ошибка, будет ли виртуальная машина уничтожена?
Зависит от. Если этот поврежденный файл представляет собой том zfs, который виртуальная машина использует для своего диска, то наверняка так и будет.
Пометит ли zfs эти блоки как плохие и перестроит файл из хорошей копии в другом месте на диске?
Вероятно, это уже произошло. Просто почистите пул, и ошибка исчезнет через некоторое время (хотя и не сразу).
И не используйте zfs на Linux в продакшене. Да, эта часть получит десятки минусов, но это суровая правда. Никто не заботится о zfs на Linux в производстве. Бесстрашный лидер Linux открыто отрицает необходимость в нем и ненавидит его кишки, потому что он происходит от его самой ненавистной Sun Microsystems и распространяется под лицензией CDDL. Используйте FreeBSD или Solaris (да, Joyent SmartOS также является возможным выбором, хотя это немного экзотично), по крайней мере, эти две системы намного надежнее, когда речь идет о zfs. Solaris по-прежнему имеет каноническую реализацию zfs (ни Linux, ни FreeBSD не могут использовать ее в качестве свопа (один раз они заявили, что могут, но после некоторых усилий это оказалось просто неправдой), и не может выполнить аварийный сброс на нее, а в Solaris эти два вещи родные). Да, у Linux такая широкая пользовательская база, что FreeBSD кажется статистической ошибкой по сравнению с ней, но дело в том, что когда дело доходит до людей, использующих zfs, пользовательская база FreeBSD zfs намного больше, чем у Linux.