У hetzner держу маленький тестовый vps (для тестирования и изучения операционок), в пятницу (04.05.2012) зайдя через SSH дебиан выдал, что я подключился в режиме только чтения. Сначала подумал, что место закончилось, но занято было всего 15% и при сканировании было куча ошибок, что файл нельзя прочитать.
При подключении через виртуальную консоль заметил сообщение, что на винте есть плохие сектора, при ребуте вообще ось слетела.
Связи с этим возник вопрос, какими тулзами лучше проверять состояние диска?
Хотелось бы поставить проверку на крон и отчет высылать на емейл.
(как человек, знающий откуда это «read only» вылазит)
В R/O файловая система сваливается из-за сбоев диска. Обычно это таймаут операции записи/чтения (для виртуальной среды). Обычно это происходит по одной из двух причин:
* таймаут iscsi инициатора у хостера
* свой собственный таймаут внутри операционной системы (около 2м)
Что делать?
а) уточнить у саппорта, можно ли перезагружать машину. В некоторых случаях это крайне нежелательно (например, если в этот момент запущен скрипт хостера на перезапуск, может случиться казус с ребутом во время fsck).
б) ребутнуться.
Если сбой был мягкий (т.е. просто остановка в обслуживании), то лёгкий fsck и всё хорошо. Если нет — по обстоятельствам. Соглашаться с всем напролом с fsck (без предварительного бэкапа) не стоит.
Совет выше насчёт smartmon'а не актуален — у виртуальных дисков нет смарта.
В будущем, возможно, может помочь опция panic в опции монирования. В этом случае при дисковых ошибках система уйдёт в панику (т.е. в ребут).
>Совет выше насчёт smartmon'а не актуален — у виртуальных дисков нет смарта.
Не все VPS работают на виртуальных дисках. Но в конкретном случае конечно правильно, скорее всего.
Я бы очень хотел посмотреть на VPS, которому прокинут AHCI/SAS контроллер по PCI. Другого метода дать прямой доступ к диску я не знаю. Даже если целиком диск отдаётся как phy, то он отдаётся как xenblk, то есть виртуальное устройство через кольцевой буффер. (Насчёт других систем виртуализации не знаю, но вероятнее всего, примерно так же).
Если же речь про контейнер класса LC/OpenVZ, то там нет никаких дисков, так как файловая система предоставляется из ресурсов хоста (уже как файловая система) и никто не даст пользователю контейнера возможность посылать что-либо в блочное устройство напрямую.
Ребут с консоли не проходил.
При попытки просчитать сколько какая папка занимает (первая мысль, была «нет свободного места») вываливались сообщения, что не смог прочитать файл.
А есть ли вариант для VPS сразу проверить работоспособность диска? Проверить на беды?
Можно конечно забить место под завязку и проверить читается ли файл мне не особо нравится :(
Readonly мог быть по причинам вызванным Вашей системой, и при проблемах с системой хранения у хостера. Вы должны были описать эту ситуацию службе поддержки, и не заниматься самодеятельностью если два этих варианта не можете различить. Тем более не стоит давать дурацкий, в общем-то, совет проверить диски.
Для проверки состояние диска есть smartmontools, smart-notifier. Но в случае с VPS надо ещё понять имеет ли это смысл. Скорее всего нет, только лишнюю нагрузку будет создавать.
В суппорт конечно написал, но суппорт hetzner в это время уже не работал, так что жду от них ответа.
Ну совет, то я дал простой «проверьтесь» :) если бы владел как поступать в данных случаях, то не задавал бы вопросов.