Администрируем
Oracle, SQL Server, PostgreSQL

Анализ проблем с дисками

Проблемы с дисками могут грозить любому современному бизнесу потерей критически важной информации или угрожать работе баз данных. При этом сталкивался с ними, кажется, любой. Современные СХД безусловно решают большую часть проблем с безопасностью данных и скоростью операций ввода-вывода, но без тщательного контроля и они не спасут от проблем. Кроме того, важно постоянно мониторить свободное дисковое пространство, переполнение которого — не меньшая опасность.
В этой публикации мы решили поделиться несколькими профессиональными советами, которые помогут вам с описанными проблемами.

Зачем проверять разделы и диски на ошибки?

В самом простом случае ошибки на разделе/диске грозят снижением его производительности или же появлением проблем с файлами СУБД (например, невозможность расширить файл данных или журнал транзакций). Если важные процессы будут завязаны на проблемный раздел/диск, это угрожает снижением эффективности всей работы предприятия или компании вплоть до полной остановки. Поэтому регулярно проверяйте состояние своих дисков и систем хранения данных!

Какие могут быть ошибки на разделе/диске? Из-за чего они могут возникать?

Обычно выделяется два вида ошибок на жёстком диске: физические и логические.
  • Физические проблемы — это, собственно, физическая поломка диска. HDD диски имеют механические части, которые могут попросту износиться, да и SSD не защищён от внешнего повреждения или уничтожения во время аварии. Удар, перегрев, естественный износ — всё это может повредить данные. Как правило, безвозвратно, хотя иногда отдельные секторы получается вытащить.
  • Логические проблемы, как правило, вызваны программным обеспечением и редко носят необратимый характер. Они встречаются гораздо чаще, но отдельные секторы диска могут оказаться непригодными для работы. Сбои ПО, ошибки форматирования, переполнение диска — обычные источники логических проблем с диском.
Физические проблемы мы рассматривать не будем: если вашему оборудованию не угрожает пожар, авария или физическое вторжение, то вы с ними, скорее всего, никогда не столкнётесь.

Мониторинг свободного дискового пространства

Свободное место - то , что должно быть в любом, даже самом начальном мониторинге, но если иногда требуется оценить его вручную и более детально. Проще всего определить количество свободного пространства на дисках локально, через проводник или же через SSMS специальными скриптами. Однако это не всегда удобно делать именно такими способами — особенно если диски заведены в системе как директории, а не как логические диски. В этом нам помогает система мониторинга Zabbix.
Также для оценки свободного места можно использовать скрипты PowerShell, а если нужно быстро и наглядно оценить, что в выбранной директории занимает место, можно использовать специальную утилиту, например, TreeSizeFree.

Не допускайте переполнения диска!

Чтобы не искать потом как исправить проблемы с диском, нужно тщательно следить за тем, чтобы он не переполнился. Если это произойдёт, то, в зависимости от исполняемых им функций, проблемы с жёстким диском могут проявиться следующие:
  1. Системный диск — зависания сервера, падение системы в синий экран.
  2. Диск с журналами транзакций — база перестает принимать новые транзакции и в приложении будут возникать ошибки. Если переполнение произошло в процессе одной большой транзакции, то она упадёт и пойдёт в откат.
  3. Диск с TempDB — СУБД может зависнуть. Если шла одна большая транзакция, которая использовала TempDB, то она упадёт и пойдёт в откат (место должно высвободиться быстро).
  4. Диск с файлами данных — БД начнёт делать записи новых страниц поверх старых. Часто это быстро приводит к тому, что БД повреждается и становится нерабочей. Этот сценарий ни в коем случае нельзя допускать! (Если на каком-то диске место кончилось, но у БД есть файлы, которые могут расти на другом диске, то это ситуация безопасная. Но возможны ошибки в логах вследствие некоторых операций обслуживания.)
  5. Диск с пользовательскими файлами — возникают проблемы в работе приложений.
Если всё же возникла такая проблема с жестким диском, что делать?
  • Новые файлы БД нужно размещать на имеющихся других свободных дисках.
  • Соседние файлы на переполненных дисках — сжать или перенести.
  • Процессы, приведшие к переполнению, нужно остановить.

Пропавшие диски

Это достаточно частый всплывающий алерт. У него может быть множество причин:
  • диск отключили,
  • диск был переименован,
  • на диске произошел сбой и мониторинг не может собрать по нему данные.
Для проверки статуса всех дисков можно использовать встроенную утилиту менеджера дисков (можно запустить командой diskmgmt.msc или правой кнопкой мыши по меню ПУСК).
Утилита показывает физические диски, их статус и разделы. Здесь также можно переназначить разделу букву.
Проблемных ситуаций, возникающих с жёсткими дисками, может быть гораздо больше. Умение предотвращать их и решать задачи, связанные с анализом проблем с дисковыми подсистемами, приходит с опытом — а его в избытке хватает у инженеров «ДБ-сервис». Обратившись к нам вы можете быть уверены, что ваша инфраструктура находится в надёжных руках и её не ждут сбои и поломки.

Эксперт ДБ-сервис