Во многих выделенных серверах установлены NVMe-накопители. Они быстрее SATA-SSD, но требуют того же внимания к износу, ошибкам и резервным копиям. Ниже — как посмотреть состояние диска, какие показатели важны, как включить TRIM и что сделать до обращения в поддержку за заменой.
Имена устройств
NVMe называются иначе, чем SATA: контроллер /dev/nvme0, пространство имён /dev/nvme0n1, разделы /dev/nvme0n1p1, /dev/nvme0n1p2. Второй диск — nvme1n1. Порядок нумерации может меняться после перезагрузки, поэтому в fstab используйте UUID, а при установке через installimage сверяйте имена в lsblk.
lsblk -o NAME,MODEL,SERIAL,SIZE,TYPE
nvme list
Проверка состояния через nvme-cli
sudo apt install -y nvme-cli smartmontools
sudo nvme smart-log /dev/nvme0n1
| Поле | О чём говорит |
|---|---|
critical_warning | Должно быть 0. Ненулевое значение — флаги проблем: мало резервных блоков, перегрев, режим только для чтения |
percentage_used | Расчётный износ ресурса записи в процентах от заявленного производителем; может превышать 100 |
available_spare и available_spare_threshold | Остаток резервных блоков и порог тревоги |
media_errors | Неисправимые ошибки носителя; рост — повод для замены |
data_units_written | Объём записанных данных (единица равна 512 000 байт) |
temperature | Температура; смотрите на длительные перегревы под нагрузкой |
Полный отчёт: sudo smartctl -a /dev/nvme0. Серийные номера дисков понадобятся при обращении в поддержку: см. справку Серийные номера и информация о неисправных дисках. Периодически запускайте самотест и смотрите журнал ошибок:
sudo nvme device-self-test /dev/nvme0 -s 1 # короткий тест
sudo nvme self-test-log /dev/nvme0
sudo nvme error-log /dev/nvme0 | head
TRIM
TRIM сообщает накопителю, какие блоки свободны, и помогает поддерживать скорость записи. В современных дистрибутивах достаточно включить таймер:
sudo systemctl enable --now fstrim.timer
sudo fstrim -av
Постоянная опция монтирования discard нагружает диск и обычно не рекомендуется. Поверх mdadm RAID1 и LVM смотрите, что fstrim действительно освобождает блоки, по его выводу.
Мониторинг износа
- Добавьте проверку
percentage_usedиmedia_errorsв мониторинг (Zabbix, Prometheus, простой cron-скрипт). - Настройте оповещение при ненулевом
critical_warning, перегреве и ростеmedia_errors. - Диски одной модели и возраста в RAID1 изнашиваются почти одновременно: держите внешние бэкапы (Резервное копирование).
Замена диска в RAID
- Убедитесь, что массив работает на втором диске:
cat /proc/mdstat. - Сохраните вывод
nvme smart-logи серийный номер. - Откройте обращение в поддержку и укажите серийный номер проблемного диска.
- После замены скопируйте таблицу разделов с исправного диска на новый и добавьте разделы в массив (имена проверьте дважды — команда
sgdisk -Rперезаписывает таблицу целевого диска):
Здесьsgdisk -R /dev/nvme1n1 /dev/nvme0n1 && sgdisk -G /dev/nvme1n1 mdadm --add /dev/md0 /dev/nvme1n1p1nvme0n1— исправный диск,nvme1n1— новый. - Следите за ресинхронизацией (
cat /proc/mdstat) и установите загрузчик на новый диск.
Подробный порядок описан в справках Замена жёстких дисков в программном RAID и Программный RAID Linux.
Частые вопросы
Насколько критичен percentage_used выше 80%?
Это расчётная оценка ресурса, а не гарантия отказа; но выше 80–90% стоит планировать замену и проверять бэкапы.
Нужно ли выравнивать разделы на NVMe?
Современные утилиты разметки делают это сами; принципы описаны в справке Выравнивание разделов.
Можно ли загружаться с NVMe?
Да, если это поддерживает прошивка; для UEFI нужен раздел ESP (UEFI и Legacy BIOS).