Содержание
Замена сбойного диска в корне ZFS
Вводные понятия
Данный документ является руководством для администраторов и лиц, обладающих определенным уровнем знаний о вычислительных аппаратных платформах и концепциях хранения данных, таких как RAID. Если вы уже имеете представление об общем процессе отказа, то можете перейти к разделам, посвященным замене диска и восстановлению пула.
Степени многословия
При отказе диска или возникновении ошибок SmartOS записывает в журнал большое количество информации. Чтобы выяснить причину отказа диска, необходимо более детальное изучение информации. Ниже приведены команды в порядке убывания их сложности:
Команда 'zpool status' предоставляет обзор состояния пула.
Команда iostat предоставляет нам данные о количестве ошибок на высоком уровне, а также специфическую информацию об устройствах.
Команда fmadm faulty поможет более точно определить причину отказа диска. fmadm также способен устранять временные сбои;
Команда fmdump позволяет получить журнал событий сбоев за последние {n} дней. Помимо замены неисправных дисков, эта информация может быть очень полезна для выявления основной причины проблемы, если проблема более сложная, чем простой отказ диска.
Общий процесс отказа
В системе, когда происходит отказ диска, ZFS не является первым компонентом, который обнаруживает его и реагирует на него. Вместо этого происходит следующий общий порядок событий:
1. FMA (Fault Management Architecture) обнаруживает и регистрирует сбойный диск. FMA отслеживает и управляет аппаратными сбоями в системе.
2. После того как FMA обнаруживает сбойный диск, операционная система принимает меры и удаляет диск из системы.
3. Затем об изменении состояния диска узнает ZFS, которая является надежной и масштабируемой файловой системой. ZFS обнаруживает, что диск был удален, и реагирует на это отказом устройства. Отказ устройства означает, что ZFS помечает диск как неисправный и принимает необходимые меры для поддержания целостности и доступности данных.
Этот общий процесс устранения неисправностей гарантирует, что любые отказы дисков в системе будут своевременно обнаружены, зарегистрированы и отреагированы соответствующими компонентами. Сначала FMA идентифицирует сбойный диск, затем операционная система удаляет его, и, наконец, ZFS реагирует на изменение состояния путем устранения неисправности устройства. Соблюдение такого порядка событий позволяет системе эффективно справляться с отказами дисков и поддерживать общую стабильность и надежность инфраструктуры хранения данных.
Обратите внимание, что это общее описание процесса отказа, и оно может отличаться в зависимости от конкретной реализации и конфигурации системы.
Как заменить диск
Пошаговое руководство по замене вышедшего из строя диска в корне ZFS
Допустим, у сервера 2 диска: /dev/sda и /dev/sdb
Один из дисков вышел из строя, например, это /dev/sdb
Поврежденный диск нужно заменить.
Для начала определим наш пул командой:
Перед заменой диска желательно убрать диск из массива:
Далее выключаем сервер, если у вас нет возможности горячей замены дисков, а так все ниже описанное можно проделать, не останавливая сервер – если есть контроллер и hotswap
Производим физическую замену сбойного диска.
Определение таблицы разделов (GPT или MBR) и ее перенос на новый диск
После замены поврежденного диска нужно определить тип таблицы разделов: GPT или MBR.
Для этого используется gdisk. Установите gdisk:
Выполните команду:
Где /dev/sda — исправный диск, находящийся в RAID.
Для MBR в выводе будет примерно следующее:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
Для GPT примерно следующее:
MBR: protective
BSD: not present
APM: not present
GPT: present
Перед добавлением диска в массив на нем нужно создать разделы в точности такие же, как и на исправном диске sda.
В зависимости от разметки диска это делается по-разному.
Копирование разметки для GPT
Для копирования разметки GPT выполните команду:
Обратите внимание!
Первым пишется диск, на который копируется разметка, а вторым — с которого копируют.
Если перепутать их местами, то разметка на изначально исправном диске будет уничтожена.
Присвойте диску новый случайный UUID:
Копирование разметки для MBR
Для копирования разметки MBR:
Обратите внимание!
Здесь первым пишется диск, с которого переносим разметку, а вторым — на который переносим.
Если разделы не видны в системе, то можно перечитать таблицу разделов командой:
Установка загрузчика
После разметки диска нужно установить на него загрузчик:
Добавление диска
Указываем какой диск мы собираемся заменить (в нашем случае это /dev/sdb3):
Добавляем диск в рейд:
Ждем окончания синхронизации массива: