Мониторинг дисков в Windows Server и VMware ESXi: аналоги утилит df и du под Windows | AdminWiki

Мониторинг дисков в Windows Server и VMware ESXi: аналоги утилит df и du под Windows

24 июля 2026 10 мин. чтения

Администраторы Linux привыкли к связке df -h и du -sh для мгновенной оценки дискового пространства. В экосистеме Windows Server и виртуализации VMware ESXi эти утилиты отсутствуют, но задачи остаются теми же: быстро узнать, сколько места занято, кто его занял и как освободить хранилище до того, как закончится свободное пространство. Этот материал даёт готовый набор команд и инструментов, которые заменяют df и du в гибридной среде.

Для Windows Server основным инструментом выступает PowerShell с командлетами Get-PSDrive и Get-WmiObject Win32_LogicalDisk. Визуальный анализ файловой структуры выполняет WinDirStat - прямой аналог du с графическим интерфейсом. На стороне VMware ESXi мониторинг ведётся через vSphere Web Client, а массовый сбор данных и очистка снэпшотов автоматизируются через PowerCLI. Все примеры проверены на Windows Server 2019/2022 и VMware ESXi 7.0/8.0.

Введение: зачем нужны аналоги df и du в Windows

Системный администратор, работающий в гибридной инфраструктуре, сталкивается с двумя типовыми сценариями. Первый: на сервере Windows заканчивается место, нужно за минуту понять общую картину по всем томам. Второй: после выяснения, что диск C заполнен на 95%, требуется найти конкретную папку или файл, который разросся. В Linux эти сценарии закрываются парой команд. В Windows Server 2022 и более ранних версиях встроенный проводник не даёт сводной картины, а стандартная оснастка «Управление дисками» показывает только геометрию разделов, но не занятое пространство в динамике.

Статья охватывает оба уровня: мониторинг на уровне операционной системы гостевых ВМ и мониторинг на уровне гипервизора VMware ESXi. Вы получите команды, которые можно копировать и вставлять в консоль, а также методику интерпретации результатов.

Быстрый анализ дискового пространства в Windows Server через PowerShell

PowerShell - штатный инструмент, доступный во всех поддерживаемых версиях Windows Server. Для задач мониторинга дисков используются два командлета: Get-PSDrive для быстрого снимка и Get-WmiObject Win32_LogicalDisk для детальной информации. Оба не требуют установки дополнительных модулей.

Get-PSDrive: быстрый снимок всех дисков

Командлет Get-PSDrive показывает все диски, зарегистрированные в сессии PowerShell, включая сетевые и съёмные. Для фильтрации только файловых систем используется параметр -PSProvider FileSystem. Базовая команда для получения читаемой сводки выглядит так:

Get-PSDrive -PSProvider FileSystem | Select-Object Name, Used, Free, @{n='Size(GB)';e={[math]::Round(($_.Used + $_.Free)/1GB, 2)}}, @{n='Free(GB)';e={[math]::Round($_.Free/1GB, 2)}} | Format-Table -AutoSize

Разберём вывод. Колонка Name содержит букву диска или точку монтирования. Used и Free - занятое и свободное пространство в байтах. Вычисляемые свойства Size(GB) и Free(GB) конвертируют байты в гигабайты с округлением до двух знаков. Команда даёт мгновенный снимок, аналогичный выводу df -h в Linux.

Для фильтрации только локальных дисков и исключения сетевых шар можно добавить условие:

Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Root -match '^[A-Z]:\\' } | Select-Object Name, @{n='Used(GB)';e={[math]::Round($_.Used/1GB, 2)}}, @{n='Free(GB)';e={[math]::Round($_.Free/1GB, 2)}}

Этот вариант удобен для серверов с подключёнными сетевыми дисками, где интересует только локальное хранилище.

Get-WmiObject Win32_LogicalDisk: детальная информация о логических дисках

Get-WmiObject Win32_LogicalDisk (или его современный аналог Get-CimInstance Win32_LogicalDisk) предоставляет расширенную информацию: тип файловой системы, серийный номер тома, тип диска. Команда для базовой сводки:

Get-WmiObject Win32_LogicalDisk | Select-Object DeviceID, DriveType, FileSystem, @{n='Size(GB)';e={[math]::Round($_.Size/1GB, 2)}}, @{n='Free(GB)';e={[math]::Round($_.FreeSpace/1GB, 2)}} | Format-Table -AutoSize

Поле DriveType кодирует тип накопителя: значение 3 соответствует локальному жёсткому диску, 2 - съёмному, 4 - сетевому. Это позволяет быстро отфильтровать только локальные тома:

Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" | Select-Object DeviceID, FileSystem, @{n='Size(GB)';e={[math]::Round($_.Size/1GB, 2)}}, @{n='Free(GB)';e={[math]::Round($_.FreeSpace/1GB, 2)}}

Для серверов с большим количеством дисков полезно добавить расчёт процента занятого пространства:

Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" | Select-Object DeviceID, FileSystem, @{n='Size(GB)';e={[math]::Round($_.Size/1GB, 2)}}, @{n='Free(GB)';e={[math]::Round($_.FreeSpace/1GB, 2)}}, @{n='Used%';e={[math]::Round(($_.Size - $_.FreeSpace)/$_.Size * 100, 1)}}

Этот вывод прямо указывает на диски, приближающиеся к заполнению. Порог в 85-90% - сигнал к немедленному анализу содержимого.

Визуализация занятого места: WinDirStat как аналог du

Когда PowerShell показал, что диск заполнен, следующий шаг - найти, какие папки и файлы занимают пространство. В Linux эту задачу решает du -sh * | sort -h. В Windows аналогом выступает WinDirStat (Windows Directory Statistics) - бесплатная утилита с открытым исходным кодом, строящая древовидную карту (treemap) файловой системы. Она показывает относительный размер каждого файла и папки цветными прямоугольниками, что ускоряет обнаружение аномалий в десятки раз по сравнению с ручным просмотром свойств папок.

Установка и первый запуск WinDirStat на Windows Server

WinDirStat распространяется через официальный сайт windirstat.net. Для серверов без графического интерфейса (Server Core) этот инструмент неприменим - используйте PowerShell-альтернативы, описанные в разделе ниже. На серверах с GUI порядок действий:

  1. Скачайте установщик или portable-версию. Portable-версия не требует прав администратора для установки и может быть запущена из любой папки.
  2. Запустите от имени администратора. Это необходимо для доступа к скрытым и системным папкам, включая C:\System Volume Information.
  3. Выберите диск для сканирования и нажмите OK. Процесс сканирования занимает от 30 секунд до нескольких минут в зависимости от объёма и скорости дисковой подсистемы.

После завершения сканирования открывается трёхпанельный интерфейс: дерево каталогов слева вверху, список расширений справа вверху и древовидная карта внизу.

Интерпретация результатов: treemap и список файлов

Treemap - главный инструмент быстрого поиска. Каждый прямоугольник представляет файл. Площадь прямоугольника пропорциональна размеру файла. Цвет кодирует тип файла: например, синий - исполняемые файлы, жёлтый - архивы, зелёный - изображения. Крупные одноцветные области сразу привлекают внимание.

Типичный сценарий: диск C заполнен, treemap показывает огромный синий прямоугольник. Клик по нему выделяет файл в дереве каталогов. Выясняется, что это C:\Windows\Temp\cab_XXXXX.tmp размером 15 ГБ, оставшийся после неудачного обновления. Удаление такого файла восстанавливает пространство за секунды.

Список расширений в правом верхнем углу сортирует типы файлов по суммарному объёму. Это помогает обнаружить, что 40% диска занято файлами .log или .dmp. Для администратора это сигнал проверить настройки логирования приложений и очистку дампов памяти. Если вы работаете с восстановлением данных после подобных инцидентов, пригодится руководство по восстановлению удалённых файлов с USB-накопителей и внешних дисков - методы анализа сигнатур применимы и к внутренним дискам серверов.

Мониторинг дисков в VMware ESXi через vSphere Web Client

На уровне гипервизора проблема нехватки места проявляется иначе. Гостевая ВМ может сообщать о свободном месте внутри диска, но на уровне datastore пространство уже исчерпано из-за снэпшотов, тонких дисков или других ВМ. Мониторинг через vSphere Web Client даёт сквозную картину от физического хранилища до конкретной виртуальной машины.

Просмотр использования datastore и поиск проблемных ВМ

Алгоритм ежедневной проверки:

  1. Войдите в vSphere Web Client, перейдите в раздел Storage, выберите целевой datastore.
  2. На вкладке Monitor → Storage отображается график использования и список виртуальных машин, размещённых на этом хранилище, с указанием занимаемого пространства.
  3. Отсортируйте список по колонке Used Space. ВМ с аномально большим потреблением - первые кандидаты для анализа.
  4. Для каждой подозрительной ВМ проверьте наличие снапшотов: выделите ВМ, перейдите на вкладку Snapshots. Каждый снапшот - это дельта-файл, который растёт со временем. Снапшот возрастом более 3 дней и размером более 10 ГБ требует немедленного внимания.

Снапшоты создаются для временной точки восстановления перед обновлениями или изменениями конфигурации. Забытый снапшот растёт пропорционально объёму записи на диск ВМ и способен занять весь datastore, вызвав остановку всех ВМ на нём. В критических случаях может потребоваться восстановление данных из резервных копий - методики для VMware, Hyper-V и KVM разобраны в материале по восстановлению данных из виртуальных машин.

Обнаружение тонких дисков (thin provisioning) и их риски

Thin provisioning - механизм, при котором виртуальный диск выделяет физическое пространство на datastore не сразу, а по мере записи данных внутрь гостевой ОС. Это позволяет заказать диск 500 ГБ для ВМ, физически заняв всего 50 ГБ. Проблема возникает, когда суммарный объём тонких дисков всех ВМ превышает физическую ёмкость datastore. При активной записи пространство может закончиться внезапно.

Проверка типа диска в vSphere Web Client: выделите ВМ, откройте Edit Settings, найдите виртуальный диск. В строке Provisioning указано Thick Provisioned (Lazy Zeroed, Eager Zeroed) или Thin Provisioned. Для всех ВМ с тонкими дисками необходимо контролировать не только выделенное пространство (Provisioned Space), но и фактически используемое (Used Space) на уровне datastore. Разрыв между этими значениями - это потенциальный риск переподписки.

Для углублённого мониторинга производительности дисковой подсистемы в виртуальных средах используйте метрики, описанные в руководстве по мониторингу производительности сервера. Показатели дисковой latency и IOPS помогут отличить проблему нехватки места от проблем производительности хранилища.

Автоматизация мониторинга VMware с помощью PowerCLI

Ручной просмотр через веб-интерфейс приемлем для 5-10 ВМ. При парке из сотен машин и десятков datastore требуется автоматизация. PowerCLI - модуль PowerShell для управления VMware, устанавливаемый одной командой:

Install-Module -Name VMware.PowerCLI -Scope CurrentUser

После установки подключитесь к vCenter Server:

Connect-VIServer -Server vcenter.example.com -Credential (Get-Credential)

PowerCLI принимает учётные данные интерактивно или через сохранённый объект PSCredential, что позволяет использовать скрипты в планировщике задач без ручного ввода пароля.

Получение сводки по всем datastore одной командой

Команда для быстрого снимка, аналогичная df -h на уровне гипервизора:

Get-Datastore | Select-Object Name, @{N='CapacityGB';E={[math]::Round($_.CapacityMB/1024, 2)}}, @{N='FreeGB';E={[math]::Round($_.FreeSpaceMB/1024, 2)}}, @{N='UsedGB';E={[math]::Round(($_.CapacityMB - $_.FreeSpaceMB)/1024, 2)}}, @{N='Used%';E={[math]::Round(($_.CapacityMB - $_.FreeSpaceMB)/$_.CapacityMB * 100, 1)}} | Format-Table -AutoSize

Вывод показывает имя хранилища, общую ёмкость, свободное и занятое пространство в гигабайтах, а также процент использования. Datastore с Used% выше 85% выделяются сразу. Для экспорта в CSV и последующего анализа в Excel добавьте | Export-Csv -Path datastore_report.csv -NoTypeInformation.

Для регулярного мониторинга сохраните этот код в файл .ps1 и настройте выполнение через Task Scheduler с действием «Запустить программу» powershell.exe -File C:\Scripts\datastore_check.ps1. Периодичность - ежедневно утром, до начала рабочего дня.

Поиск и удаление старых снапшотов через PowerCLI и smproxy

Снапшоты старше трёх дней - кандидаты на удаление. Поиск таких снапшотов по всем ВМ:

Get-VM | Get-Snapshot | Where-Object {$_.Created -lt (Get-Date).AddDays(-3)} | Select-Object VM, Name, Created, @{N='SizeGB';E={[math]::Round($_.SizeMB/1024, 2)}} | Format-Table -AutoSize

Перед удалением убедитесь, что снапшот не является частью цепочки резервного копирования. Некоторые системы бэкапа создают временные снапшоты и удаляют их автоматически. Удаление выполняется командой:

Get-VM -Name "ProblemVM" | Get-Snapshot -Name "SnapshotName" | Remove-Snapshot -Confirm:$false

Параметр -Confirm:$false отключает запрос подтверждения. Удаление снапшота запускает операцию консолидации дисков: все изменения из дельта-файла применяются к базовому VMDK. На медленных хранилищах и для больших снапшотов этот процесс может занять часы и создаёт дополнительную нагрузку на дисковую подсистему. Рекомендуется выполнять такие операции в нерабочее время.

На уровне хоста ESXi для консолидации снапшотов используется агент smproxy. Проверить список снапшотов на хосте можно командой:

esxcli storage vmfs snapshot list

Если снапшот был удалён через vSphere, но файлы дельты остались на datastore из-за сбоя консолидации, smproxy выполняет принудительную очистку. Это крайняя мера, применяемая только после подтверждения, что ВМ выключена и резервная копия актуальна.

Заключение: построение единой системы мониторинга дисков

Инструментарий для мониторинга дисков в гибридной среде Windows Server и VMware ESXi сводится к четырём компонентам. PowerShell с Get-PSDrive и Get-WmiObject Win32_LogicalDisk закрывает потребность в быстрой сводке на уровне гостевой ОС - это прямой аналог df. WinDirStat визуализирует файловую структуру и заменяет du для поиска «пожирателей» пространства. vSphere Web Client даёт обзор хранилищ и выявляет проблемные ВМ с тонкими дисками и забытыми снапшотами. PowerCLI автоматизирует сбор данных и очистку, превращая разовые проверки в регулярный процесс.

Практическая рекомендация: настройте еженедельный отчёт по всем четырём уровням. PowerShell-скрипт на каждом Windows Server собирает данные о дисках и отправляет в централизованную систему мониторинга. PowerCLI-скрипт на управляющей станции ежедневно проверяет datastore и снапшоты, формируя CSV-отчёт. При интеграции с Zabbix или Prometheus настройте триггеры на порог 85% заполнения для любого диска или datastore. Это предотвратит аварийные остановки сервисов из-за нехватки места.

Для администраторов, обслуживающих специфические отраслевые решения, например медицинские информационные системы, критичен мониторинг не только дисков, но и метрик производительности ВМ. В материале по мониторингу ВМ с медицинским ПО разобраны пороги алертов для vCPU Ready и дисковой latency, применимые и в других отраслях с жёсткими требованиями к отказоустойчивости.

Если ваша инфраструктура требует масштабирования хранилищ под виртуальные машины, обратите внимание на облачную инфраструктуру Timeweb Cloud - она предоставляет серверы, VDS и хранилища с возможностью гибкого изменения ресурсов без перерыва в работе сервисов.

Поделиться:
Сохранить гайд? В закладки браузера