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

Реанимация NVMe диска в Linux

NVMe

Имеется сервер с операционной системой Oracle Linux. В сервере два NVME диска Samsung, которые объединены в зеркальный RAID1 массив.

Samsung SSD 12.8TB PCIe MZPLL12THMLA-00005

Один из NVMe дисков на сервере перестал работать. Диск пропал из ОС и из RAID, но после перезагрузки стал виден. Посмотреть информацию об NVMe дисках можно с помощью утилиты nvme из пакета nvme-cli:

yum install nvme-cli
или
apt install nvme-cli

nvme list -o json

nvme

Информация о диске выводится, это уже хорошо, значит, контроллер диска ещё работает. Но все партиции пропали, диск недоступен для записи.

При попытке считать SMART лог получаем ошибку:

nvme smart-log /dev/nvme0n1
NVME Status:NS_NOT_READY: The namespace is not ready to be accessed as a result of a condition other than a condition that is reported as an Asymmetric Namespace Access condition

nvme

Понятно, что при обращении к namespace диска произошла какая-то ошибка. При этом SMART лог второго такого же диска прекрасно читается:

nvme smart-log /dev/nvme1n1

nvme

Пробую получить информацию о namespace проблемного диска:

nvme id-ns /dev/nvme0n1

nvme

Информация выводится корректно. Получается, что контроллер диска работает, namespace есть, но почему-то не работает. Попробуем отформатировать NVMe диск. Речь идёт не о форматировании файловой системы, а о форматировании пространства (namespace).

Синтаксис команды:

nvme format <device> [--namespace-id=<nsid> | -n <nsid>]
                     [--lbaf=<lbaf> | -l <lbaf>]
                     [--ses=<ses> | -s <ses>]
                     [--pil=<pil> | -p <pil>]
                     [--pi=<pi> | -i <pi>]
                     [--ms=<ms> | -m <ms>]
                     [--reset | -r ]
                     [--timeout=<timeout> | -t <timeout> ]

Форматирую пространство с параметрами по умолчанию:

nvme format /dev/nvme0n1

nvme

Отлично:

Success formatting namespace:1

Снова пробую считать SMART лог проблемного диска:

nvme smart-log /dev/nvme0n1

nvme

Теперь лог читается. Диск успешно реанимирован, правда, он пуст.

Нужно заново создать раздел и добавить его в RAID1 массив как SPARE диск. RAID массив начнёт восстанавливаться.

nvme

Через 1031 минуту целостность массива была восстановлена. Оба NVMe диска в строю.

P.S. Размышления...

Если вы видите NVMe диск в Linux как /dev/nvme0n1, то это уже кое о чём говорит. Первая часть названия диска "nvme0..." это нулевой контроллер, вторая часть названия "...n1" это первый namespace. Так что уже из названия диска было понятно, что контроллер жив и пространство существует. Можно было сходу форматнуть.

Ссылки

Реанимация NVMe диска в Linux — 2

Реанимация NVMe диска в Linux — 3

Теги

 

Похожие материалы

Windows 10 — генерация DKIM ключей с помощью подсистемы Linux

Воспользуемся подсистемой Linux и сгенерируем DKIM ключи в ОС Windows 10. DomainKeys Identified Mail (DKIM) — метод e-mail аутентификации, разработанный для обнаружения подделывания сообщений, пересылаемых по email. Метод дает возможность получателю проверить, что письмо действительно было отправлено с заявленного домена.