Ситуация знакома? Уже не первый раз такое, вероятно криво диск настроен. Внезапно все виртуалки, использующие общий data-диск (например, /mnt/data или LVM-том), перестают работать. В логах хоста — I/O error, файловая система перемонтирована в read-only или вовсе отмонтирована. При этом:
Значит, проблема не в железе, а в том, как Linux обрабатывает задержки диска.
Linux защищает данные. Если диск не отвечает дольше 30 секунд (таймаут по умолчанию), ядро решает: «Лучше отмонтировать, чем испортить данные». Это происходит даже если:
Результат: EXT4-fs error → Remounting filesystem read-only → все VM, зависящие от этого тома, падают.
Выполни на хосте сразу после отвала (до перезагрузки!):
dmesg | grep -i "timeout\|I/O error\|reset\|ata"
Если видишь строки вроде:
[12345.678] sd 2:0:0:0: [sdb] No CDB received; resetting controller [12346.123] EXT4-fs (sdb1): Remounting filesystem read-only
— значит, диск не сломан, он просто не уложился в таймаут.
sdb:
echo 180 > /sys/block/sdb/device/timeoutЧтобы настройка применялась автоматически, создай файл:
/etc/udev/rules.d/99-disk-timeout.rules
ACTION=="add|change", KERNEL=="sd[b-z]", ATTR{device/timeout}="180"
/etc/fstab укажи:
/dev/sdb1 /mnt/data ext4 defaults,noatime,commit=60,data=ordered 0 2Не используй
data=writeback и discard на HDD или старых SSD.
discard из fstab и отключи fstrim.timer.
FAULTED. Решение — те же таймауты + избыточность (mirror/raidz).pvscan после переподключения).Если:
значит, виноват не диск, а защитный механизм ядра.
Не перезагружай — настрой таймауты! Это сэкономит тебе время и нервы.
P.S. Проверяй логи до перезагрузки — так ты точно поймёшь, «умер» диск или просто «зевнул».
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!