Перейти к основному содержанию
 

День, когда я менял диски... местами

Мастерская

Ещё один день с админом.

Сегодня по плану я еду в ЦОД менять диски местами. Два NVMe диска в одном сервере поменяются местами с двумя дисками другого сервера, тип, брэнд и объёмы дисков одинаковые. Вы спросите зачем? Вот и я думал, что не придётся, а пришлось. Поехали.

Теория проблемы

Есть у нас несколько высоконагруженных серверов HP ProLiant девятого и десятого поколения, нагрузка на чтение-запись дисков. В качестве массива используются программные RAID массивы из PCIe NVMe дисков.

Один из серверов начал зависать раз в две недели. Ошибок в логах нет, в iLO тоже ничего нет. А потом и второй аналогичный сервер в другом ЦОДе тоже завис. Модель серверов HP ProLiant DL360 Gen9, операционные системы одинаковые, Oracle Linux, другое железо одинаковое. На обоих серверах собран программный mdamd массив RAID5 из трёх NVMe дисков. Но есть небольшой ньюанс, — в одном массиве разные модели дисков.

nvme

Два диска MZPLL12THMLA-00005 и один диск MZPLJ12THALA-00007.

Samsung SSD 12.8TB PCIe MZPLL12THMLA-00005

Samsung SSD MZPLJ12THALA-00007 — NVMe 12.8 ТБ

ssd

nvme

Есть и другие сервера, в которых установлены такие диски, но они прекрасно работают. Проблема наблюдалась только на двух серверах с массивами, состоящими из разных моделей. Возникло предположение, что виной всему или различие в интерфейсах дисков (PCIe Gen3 x8 против PCIe Gen4 x8) или разная скорость чтения-записи.

Для проверки теории нет ничего лучше практики. Нам нужно сделать так, чтобы все три диска были одинаковые. Находим сервер (поближе к пациенту) с массивом RAID1 из двух дисков MZPLJ12THALA-00007:

nvme

План прост, меняем диски местами:

nvme

После этого будем месяц ждать, если падения прекратятся, то теория подтвердится, и я больше никогда не установлю разные NVMe диски в один программный RAID массив.

Подготовка к замене дисков

Можно провести замену дисков без потери данных. Сначала меняем местами первую пару дисков, ждём восстановления массивов, после чего меняем местами вторую пару дисков. В этом случае потребуется две поездки в ЦОД. Зато простой минимальный: две перезагрузки серверов и время на замену дисков.

Но мы ленивые админы, нам лень ехать два раза. И запасливые, у нас есть откуда взять копию данных. Но и простой дольше: одна перезагрузка серверов, время на замену дисков и время на копирование данных. Действуем по этому варианту.

Итак, оба RAID массива решено удалить. Делаю это уже из ЦОДа, чтобы снизить время простоя. Выводим сервера из эксплуатации, делаем резервную копию данных, удаляем RAID массивы:

mdadm — удаление массива

Выключаем сервера.

Замена дисков

Теперь нужно поработать руками. Обесточиваю сервера, снимаю кроссировку, выдвигаю из стойки, снимаю крышки. Сильно повезло, что сервера расположены рядом, операцию по замене можно провести одновременно. В процессе участвуют две модели сервера: HP ProLiant DL360 Gen9 и HPE ProLiant DL580 Gen10.

nvme

Извлекаю диски из HPE ProLiant DL580 Gen10. Для того, чтобы добраться до PCIe NVMe плат, нужно достать корзину. В корзине также находится подключенный RAID- контроллер, он не участвует в программном массиве, но формирует отдельный RAID для системных дисков. По инструкции кабели RAID контроллера положено отключить, но делать это не обязательно.

nvme

Отключаю защёлку.

nvme

Поднимаю ручку.

nvme

Извлекаю корзину.

nvme

Здесь стоят два диска MZPLJ12THALA-00007, снимаю их. Понадобится отвёртка. Замечу, что на дисках установлена полноразмерная планка.

nvme

Извлекаю диски из HP ProLiant DL360 Gen9. Один из дисков установлен в первом райзере, который легко снимается вместе с дисками. Снимаю только MZPLL12THMLA-00005 из второго слота — синенький, на нём установлена короткая планка. Чёрный диск останется на месте.

nvme

Второй диск MZPLL12THMLA-00005 находится в третьем слоте, снимаю его. Он тоже с короткой планкой.

nvme

Все диски сняты. Меняю местами планки дисков. Удачно, что у разных моделей планки ничем не отличаются.

nvme

Диски готовы.

nvme

А теперь в обратном порядке вставляю диски в сервера. Сначала устанавливаю два диска MZPLJ12THALA-00007 в сервер HP ProLiant DL360 Gen9.

nvme

Затем устанавливаю два диска MZPLL12THMLA-00005 в сервер HPE ProLiant DL580 Gen10.

nvme

Собираю сервера, закрываю крышки, кроссирую, включаю.

Сборка программных массивов

Проверяю диски. Три одинаковых диска на одном сервере:

nvme

Два одинаковых диска на другом сервере:

nvme

Из трёх дисков снова собираю RAID5:

mdadm — создаём RAID5 массив

Из двух дисков собираю RAID1:

mdadm — создаём RAID1 массив

Пока новые массивы инициализируются, накатываю файловую систему, монтирую директории и отдаю на откуп своим коллегам, которые удалённо начнут восстанавливать данные. До окончания инициализации данные будут не защищены, стоит это помнить.

Через сутки инициализация закончится и первый этап эксперимента будет завершён. Впереди месяц ожидания. А пока я — домой.

P.S.

5 дней — полёт нормальный.

Теги