Ещё один день с админом.
Сегодня по плану я еду в ЦОД менять диски местами. Два NVMe диска в одном сервере поменяются местами с двумя дисками другого сервера, тип, брэнд и объёмы дисков одинаковые. Вы спросите зачем? Вот и я думал, что не придётся, а пришлось. Поехали.
Теория проблемы
Есть у нас несколько высоконагруженных серверов HP ProLiant девятого и десятого поколения, нагрузка на чтение-запись дисков. В качестве массива используются программные RAID массивы из PCIe NVMe дисков.
Один из серверов начал зависать раз в две недели. Ошибок в логах нет, в iLO тоже ничего нет. А потом и второй аналогичный сервер в другом ЦОДе тоже завис. Модель серверов HP ProLiant DL360 Gen9, операционные системы одинаковые, Oracle Linux, другое железо одинаковое. На обоих серверах собран программный mdamd массив RAID5 из трёх NVMe дисков. Но есть небольшой ньюанс, — в одном массиве разные модели дисков.
Два диска MZPLL12THMLA-00005 и один диск MZPLJ12THALA-00007.
Samsung SSD 12.8TB PCIe MZPLL12THMLA-00005
Samsung SSD MZPLJ12THALA-00007 — NVMe 12.8 ТБ
Есть и другие сервера, в которых установлены такие диски, но они прекрасно работают. Проблема наблюдалась только на двух серверах с массивами, состоящими из разных моделей. Возникло предположение, что виной всему или различие в интерфейсах дисков (PCIe Gen3 x8 против PCIe Gen4 x8) или разная скорость чтения-записи.
Для проверки теории нет ничего лучше практики. Нам нужно сделать так, чтобы все три диска были одинаковые. Находим сервер (поближе к пациенту) с массивом RAID1 из двух дисков MZPLJ12THALA-00007:
План прост, меняем диски местами:
После этого будем месяц ждать, если падения прекратятся, то теория подтвердится, и я больше никогда не установлю разные NVMe диски в один программный RAID массив.
Подготовка к замене дисков
Можно провести замену дисков без потери данных. Сначала меняем местами первую пару дисков, ждём восстановления массивов, после чего меняем местами вторую пару дисков. В этом случае потребуется две поездки в ЦОД. Зато простой минимальный: две перезагрузки серверов и время на замену дисков.
Но мы ленивые админы, нам лень ехать два раза. И запасливые, у нас есть откуда взять копию данных. Но и простой дольше: одна перезагрузка серверов, время на замену дисков и время на копирование данных. Действуем по этому варианту.
Итак, оба RAID массива решено удалить. Делаю это уже из ЦОДа, чтобы снизить время простоя. Выводим сервера из эксплуатации, делаем резервную копию данных, удаляем RAID массивы:
Выключаем сервера.
Замена дисков
Теперь нужно поработать руками. Обесточиваю сервера, снимаю кроссировку, выдвигаю из стойки, снимаю крышки. Сильно повезло, что сервера расположены рядом, операцию по замене можно провести одновременно. В процессе участвуют две модели сервера: HP ProLiant DL360 Gen9 и HPE ProLiant DL580 Gen10.
Извлекаю диски из HPE ProLiant DL580 Gen10. Для того, чтобы добраться до PCIe NVMe плат, нужно достать корзину. В корзине также находится подключенный RAID- контроллер, он не участвует в программном массиве, но формирует отдельный RAID для системных дисков. По инструкции кабели RAID контроллера положено отключить, но делать это не обязательно.
Отключаю защёлку.
Поднимаю ручку.
Извлекаю корзину.
Здесь стоят два диска MZPLJ12THALA-00007, снимаю их. Понадобится отвёртка. Замечу, что на дисках установлена полноразмерная планка.
Извлекаю диски из HP ProLiant DL360 Gen9. Один из дисков установлен в первом райзере, который легко снимается вместе с дисками. Снимаю только MZPLL12THMLA-00005 из второго слота — синенький, на нём установлена короткая планка. Чёрный диск останется на месте.
Второй диск MZPLL12THMLA-00005 находится в третьем слоте, снимаю его. Он тоже с короткой планкой.
Все диски сняты. Меняю местами планки дисков. Удачно, что у разных моделей планки ничем не отличаются.
Диски готовы.
А теперь в обратном порядке вставляю диски в сервера. Сначала устанавливаю два диска MZPLJ12THALA-00007 в сервер HP ProLiant DL360 Gen9.
Затем устанавливаю два диска MZPLL12THMLA-00005 в сервер HPE ProLiant DL580 Gen10.
Собираю сервера, закрываю крышки, кроссирую, включаю.
Сборка программных массивов
Проверяю диски. Три одинаковых диска на одном сервере:
Два одинаковых диска на другом сервере:
Из трёх дисков снова собираю RAID5:
Из двух дисков собираю RAID1:
Пока новые массивы инициализируются, накатываю файловую систему, монтирую директории и отдаю на откуп своим коллегам, которые удалённо начнут восстанавливать данные. До окончания инициализации данные будут не защищены, стоит это помнить.
Через сутки инициализация закончится и первый этап эксперимента будет завершён. Впереди месяц ожидания. А пока я — домой.
P.S.
5 дней — полёт нормальный.