↩️ На главную

Proxmox сам отмонтировал data-диск? Причина не в железе, а в таймаутах

22.12.2025 | Статья из категории: Linux

Proxmox сам отмонтировал data-диск? Причина не в железе, а в таймаутах

Ситуация знакома? Уже не первый раз такое, вероятно криво диск настроен. Внезапно все виртуалки, использующие общий data-диск (например, /mnt/data или LVM-том), перестают работать. В логах хоста — I/O error, файловая система перемонтирована в read-only или вовсе отмонтирована. При этом:

  • Диски не умирают — SMART в порядке,
  • После простой перезагрузки — всё снова работает.

Значит, проблема не в железе, а в том, как Linux обрабатывает задержки диска.

Почему ядро само отключает «живой» диск?

Linux защищает данные. Если диск не отвечает дольше 30 секунд (таймаут по умолчанию), ядро решает: «Лучше отмонтировать, чем испортить данные». Это происходит даже если:

  • Диск перегружен (много VM читают/пишут одновременно),
  • Происходит TRIM на SSD,
  • Диск «проснулся» после простоя и отвечает медленно,
  • Или просто — дешёвый HDD с плохой прошивкой.

Результат: EXT4-fs errorRemounting 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

— значит, диск не сломан, он просто не уложился в таймаут.

Как починить (и не перезагружать каждый раз)

1. Увеличь таймаут диска на хосте
Для диска 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"
  
2. Настрой монтирование правильно (для ext4)
В /etc/fstab укажи:
/dev/sdb1 /mnt/data ext4 defaults,noatime,commit=60,data=ordered 0 2
  
Не используй data=writeback и discard на HDD или старых SSD.
3. Проверь, не мешает ли TRIM
Если не используешь SSD или TRIM не нужен — убери опцию discard из fstab и отключи fstrim.timer.

А как насчёт ZFS или LVM?

  • ZFS: очень чувствителен к таймаутам. Даже кратковременная задержка → диск помечается как FAULTED. Решение — те же таймауты + избыточность (mirror/raidz).
  • LVM: если PV недоступен — все LV исчезают. Убедись, что диск стабильно определяется (pvscan после переподключения).

Итог

Если:

  • диск жив,
  • SMART чист,
  • и после перезагрузки всё работает —

значит, виноват не диск, а защитный механизм ядра.
Не перезагружай — настрой таймауты! Это сэкономит тебе время и нервы.

P.S. Проверяй логи до перезагрузки — так ты точно поймёшь, «умер» диск или просто «зевнул».




Категории:

Категории

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге | карта блога

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA