Постоянная ошибка Zpool для рейдаz2
Проблема: Zpool показывает «ошибки: обнаружены постоянные ошибки в следующих файлах: Tank/vms/fileserver:<0x0>».
Сервер имеет шесть дисков по 12 ТБ в RAIDZ2. Это вращающиеся диски. Zpool показывает, что все диски находятся в сети. Ошибок чтения, записи или cksum нет. ОС: Ubuntu 20.04.3 и zfsutils-linux 0.8.3-1ubuntu12.13.
Я никогда раньше не видел постоянных ошибок и не понимаю, как это исправить. Насколько я понимаю, при использовании RAIDZ2 на машине может выйти из строя до двух дисков без выхода из строя. Если уйдет третий, то zpool исчезнет. Это верно? В этой ситуации ни один диск не показывает неисправность, и отображается только постоянная ошибка. При отсутствии неисправных дисков разве zfs не сможет восстановить или перестроить файл из других исправных копий на RAIDZ2?Там путем удаления постоянной ошибки. Или нам нужно зайти в рейдз3?
В данном случае это наш резервный сервер. Если на этом компьютере работала виртуальная машина файлового сервера, когда произошла эта постоянная ошибка, будет ли виртуальная машина уничтожена?
Судя по тому, что мне удалось найти, мое сообщение об ошибке связано с повреждением данных объекта. Я заметил это сообщение только потому, что репликация zfs, идущая с нашего основного сервера на этот резервный сервер, зависла при попытке синхронизировать файловый сервер. Чтобы это исправить, я прочитал, что мне нужно удалить соответствующий файл. Будет ли тогда zfs отмечать эти блоки как плохие и восстанавливать файл из хорошей копии в другой области диска?
Вот несколько мест, которые я уже прочитал:
Восстановление поврежденных данных
Что означает постоянная ошибка ZFS?
С уважением, Пендер
1 ответ
Насколько я понимаю, при использовании RAIDZ2 на машине может выйти из строя до двух дисков без выхода из строя. Если уйдет третий, то zpool исчезнет. Это верно?
Нет. Массив может иметь до двух дисков без отключения. Это не имеет ничего общего с подъемом или опусканием машины.
В этой ситуации ни один диск не показывает неисправность, и отображается только постоянная ошибка.
Он показывает постоянную ошибку в файле. Насколько я понимаю, в уже удаленном файле (но в исходном вопросе все еще нет вывода, у нас есть только ваша потенциально ошибочная интерпретация). Возможности самовосстановления Zfs не являются волшебными: файловая система способна восстанавливаться после ошибок до определенного порога, но затем обычно случаются плохие вещи. Как и ваши постоянные ошибки. Самый распространенный случай — это несколько ошибок контрольной суммы на нескольких дисках, пересекающихся в каком-то файле. Безzpool status
трудно угадать.
При отсутствии неисправных дисков разве 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, база пользователей zfs у FreeBSD намного больше, чем у Linux.