PowerShell для управления хранилищем и файловой системой (часть 1)

Опубликовано: 19 Марта, 2023

  • PowerShell для управления хранилищем и файловой системой (часть 3)
  • PowerShell для управления хранилищем и файловой системой (часть 4)
  • PowerShell для управления хранилищем и файловой системой (часть 5)
  • PowerShell для управления хранилищем и файловой системой (часть 6)
  • PowerShell для управления хранилищем и файловой системой (часть 7)
  • PowerShell для управления хранилищем и файловой системой (часть 11)

В последнее время я трачу довольно много времени на работу с хранилищем Windows Server. При этом я обнаружил, что PowerShell работает на удивление хорошо как для управления хранилищем, так и для управления файловой системой. В таком случае я подумал, что было бы интересно написать серию статей, в которой обсуждались бы некоторые из множества задач, связанных с хранением данных, которые можно выполнять с помощью PowerShell.

Итак, с учетом сказанного, давайте начнем с чего-то простого. Давайте проверим работоспособность наших физических дисков.

Существует несколько различных способов проверки работоспособности диска. Самый простой способ заключается в использовании этой команды:

Получить-физический диск | Select-Object FriendlyName, HealthStatus

Изображение 4726
Рисунок A: Мы получили информацию о работоспособности диска.

Как вы можете видеть на рисунке A, эта команда позволяет легко определить, исправны ли диски на вашем сервере. Теперь очевидно, что это отличное начало, но, если быть предельно честным, то команда, показанная выше, имеет ограниченную ценность по нескольким различным причинам.

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

Еще одна проблема с командой, показанной выше, заключается в том, что вывод несколько расплывчатый. Хорошо, наши диски здоровы. Замечательно. Но что, если бы это было не так? Что, если выходные данные команды сообщат нам, что PhysicalDisk2 неисправен?

В такой ситуации у нас, вероятно, было бы больше вопросов, чем ответов. Что вообще означает статус нездорового? Диск вышел из строя или ему просто нужно какое-то корректирующее действие? Если диск вышел из строя, то где он находится? В конце концов, имя PhysicalDisk2 относительно бессмысленно.

Я хочу сказать, что, хотя хорошо иметь возможность обнаруживать проблемы с хранилищем, еще важнее иметь возможность собирать содержательную информацию о проблеме. К счастью, PowerShell может предоставить нам намного больше информации о дисках на нашем сервере.

Чтобы дать вам лучшее представление о типах информации, которую мы можем собирать, я хочу показать вам две команды. Первая команда очень похожа на команду, которую вы уже видели. Эта команда:

Получить-физический диск | Где FriendlyName –eq PhysicalDisk0 | Выбрать объект *

Эта команда, которую вы видите на рис. B, предназначена для отображения всех различных объектов, которые могут отображаться для физического диска. Я использовал команду Where FriendlyName – EQ PhysicalDisk0, чтобы ограничить результаты одним диском. Причина, по которой я это сделал, заключается в том, что все диски имеют одинаковые имена объектов, и я не хотел, чтобы вывод команды стал длинным и повторяющимся.

Изображение 4727
Рисунок B. Это имена объектов, связанных с физическими дисками.

Взглянув на рисунок выше, вы увидите, что PowerShell предоставляет ряд различных объектов для каждого виртуального жесткого диска. Если нас интересует конкретно состояние диска, то наиболее полезными объектами являются OperationalStatus и HealthStatus.

Опять же, эти два объекта на самом деле не дают нам очень много информации. Тем не менее, есть некоторые другие вещи, которые мы можем сделать. Предположим на мгновение, что состояние работоспособности диска вернулось как неработоспособное. Если бы мы определили, что диск полностью мертв, было бы полезно знать, где физически находится диск. Мы могли бы получить эту информацию, используя такие объекты, как EnclosureNumber, SlotNumber, Manufacturer, Model и SerialNumber. Конечно, если вы посмотрите на предыдущий рисунок, вы заметите, что эти конкретные объекты пусты. Причина этого в том, что я работаю в лабораторной среде и не использую настоящие диски серверного класса. Однако обычно эти объекты содержат информацию, которая поможет вам найти физический диск.

Я упомянул минуту назад, что есть еще одна команда, которая может помочь нам получить информацию о состоянии физического диска. Это команда Get-StorageReliabilityCounter.

Если вы попытаетесь запустить командлет Get-StorageReliabilityCounter сам по себе, вы получите сообщение об ошибке. Чтобы использовать эту команду, вам нужно будет сначала ввести команду Get-PhysicalDisk. Например, если бы я хотел увидеть информацию о надежности хранилища для физического диска 2, я мог бы ввести следующую команду:

Получить-физический диск | Где FriendlyName –EQ PhysicalDisk2 | Get-StorageReliabilityCounter | Выбрать объект *

Просто чтобы немного разобрать команду, первая часть (Get-PhysicalDisk) извлекает список физических дисков. Вторая часть команды (где FriendlyName –EQ PhysicalDisk2) фильтрует результаты таким образом, чтобы информация отображалась только для PhysicalDisk2. Третья часть команды (Get-StorageReliabilityCounter) извлекает данные о надежности для диска, а последняя часть команды (Select-Object *) заставляет PowerShell отображать каждый доступный объект надежности. Вы можете увидеть эти объекты на рисунке C.

Изображение 4728
Рисунок C. Это объекты счетчика надежности хранилища.

Взглянув на рисунок выше, вы увидите, что есть некоторая информация о надежности, которая относительно бессмысленна. Тем не менее, есть также очень удобная статистика использования. Например, мы можем видеть ошибки чтения и записи с точки зрения общего количества ошибок, исправленных ошибок и неисправленных ошибок. Мы также можем видеть температуру диска и степень износа диска. Мы даже можем увидеть максимальную задержку чтения и записи, а также количество часов, в течение которых диск использовался.

Итак, как мы можем заставить эти данные работать? Что ж, одним из вариантов было бы создать базовый отчет о состоянии работоспособности, а затем, если какой-либо из дисков считается неработоспособным, создать отчет, который показывает различные статистические данные о диске, а также его местоположение. Это, безусловно, один из вариантов. На самом деле, я собираюсь показать вам, как это сделать, в следующей статье этой серии.

Другой вариант — активно следить за состоянием диска. В начале этой статьи я показал вам простую команду, которая сообщает, исправен ли каждый диск или неисправен. Однако мы можем смотреть на вещи, отличные от состояния работоспособности диска (или в дополнение к нему). Возможно, мы хотели бы получать уведомления, если на диске возникает чрезмерное количество ошибок чтения. Возможно, мы хотим знать, что есть проблема, если диск становится слишком горячим. Дело в том, что мы можем использовать PowerShell для проверки любых условий, которые мы хотим, и мы также можем автоматизировать сценарий и даже встроить административные предупреждения.

Вывод

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

  • PowerShell для управления хранилищем и файловой системой (часть 3)
  • PowerShell для управления хранилищем и файловой системой (часть 4)
  • PowerShell для управления хранилищем и файловой системой (часть 5)
  • PowerShell для управления хранилищем и файловой системой (часть 6)
  • PowerShell для управления хранилищем и файловой системой (часть 7)
  • PowerShell для управления хранилищем и файловой системой (часть 11)