Content
- Вводные понятия
- Степени многословия
- Общий процесс отказа
- Как заменить диск
- Пошаговое руководство по замене сбойного диска в корне ZFS
- Определение таблицы разделов (GPT или MBR) и перенос ее на новый диск
- Копирование разметки для GPT
- Копирование разметки MBR
- Установка загрузчика
- Добавление диска
- Заключение
Замена отказавшего диска в корневой части 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
Примечание: Прежде чем приступить к замене диска, убедитесь, что вы правильно определили сбойный диск. Также убедитесь, что у вас есть запасной диск для замены.
Пошаговое руководство по замене сбойного диска в корне ZFS
Предположим, на сервере есть 2 диска: /dev/sda и /dev/sdb.
Один из дисков вышел из строя, например /dev/sdb.
Необходимо заменить поврежденный диск.
Сначала определим наш пул с помощью команды:
zpool list
Перед заменой диска рекомендуется извлечь его из массива:
zpool detach rpool /dev/sdb
Далее выключите сервер, если у вас нет возможности горячей замены дисков, но все, что описано ниже, можно сделать и без остановки сервера - если у вас есть контроллер и горячая замена
poweroff
Физически замените сбойный диск.
Определение таблицы разделов (GPT или MBR) и перенос ее на новый диск
После замены поврежденного диска необходимо определить, какая таблица разделов используется - GPT или MBR.
Для этого воспользуйтесь программой gdisk. Установите gdisk:
apt-get install gdisk -y
Выполните команду:
gdisk -l /dev/sda
Где /dev/sda - правильный диск в RAID-массиве.
Для MBR результат будет примерно следующим:
Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present
Для GPT он будет примерно следующим:
Partition table scan: MBR: protective BSD: not present APM: not present GPT: present
Перед добавлением диска в массив его нужно разбить на разделы, как хороший диск sda. Это делается по-разному в зависимости от разбиения диска.
Копирование разметки для GPT
Чтобы скопировать разметку GPT, выполните следующие действия:
Примечание!Первый диск - это диск, на который копируется разметка, а второй - диск, с которого копируется разметка. Если вы их перепутаете, разметка на изначально исправном диске будет уничтожена.
sgdisk -R /dev/sdb /dev/sda
Присвойте диску новый случайный UUID:
sgdisk -G /dev/sdb
Копирование разметки MBR
Чтобы скопировать разметку MBR:
Примечание!
Здесь сначала пишется диск, с которого переносится разметка, а затем диск, на который она переносится.
sfdisk -d /dev/sda | sfdisk /dev/sdb
Если разделы не видны в системе, можно перечитать таблицу разделов с помощью команды:
sfdisk -R /dev/sdb
Установка загрузчика
После разметки диска необходимо установить на него загрузчик:
grub-install /dev/sdb
Добавление диска
Укажите, какой диск мы собираемся заменить (в нашем случае это /dev/sdb3):
zpool replace rpool /dev/sdb3
Добавление диска в рейд:
zpool online rpool /dev/sdb3
Дождитесь окончания синхронизации массива:
zpool status
Заключение
Следуя этим инструкциям, вы сможете успешно заменить вышедший из строя диск в корневом массиве ZFS, не нарушая целостности данных. Важно принять меры предосторожности и выполнить шаги по резервному копированию и проверке, чтобы избежать возможной потери данных и обеспечить бесперебойную работу.