Как отключить автоматический Chkdsk в отказоустойчивом кластере Windows

Обновлено 02.05.2023

disable-automatic-chkdsk-on-windows-failover-cluster

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разбирали как распознать сигналы BIOS, которые вам подает ваш пищащий ноутбук или компьютер. Ладно идем далее и сегодня я хочу вас научить производить автоматическую проверку целостности диска в отказоустойчивом кластере Windows. Да представьте иногда это приходится делать, чтобы бизнес мог продолжить работать, а вы молились чтобы ничего не посыпалось до момента, когда все можно починить😀.

Для чего может потребоваться автоматическое отключение проверки диска Chkdsk

Не так давно у меня на отказоустойчивом файловом кластере Windows один из кластерных дисков находился в состоянии «Online Pending». Все было бы ничего, но он весил 30 ТБ, на котором лежало куча данных пользователей и сам раздел в системе был недоступен, так как при его открытии вам сообщали, что нет прав. Данный диск по мнению файлового кластеры был поврежден. Это привело к тому, что том был помечен для chkdsk через грязный бит тома.

Volume dirty bit (Грязный бит) – это бит, который отвечает за то, были ли изменения в файловой системе на диске. Он используется для определения, нужно ли проводить операцию проверки целостности файловой системы при запуске компьютера или при подключении диска. Если volume dirty bit установлен в значение 1, то это означает, что файловая система была изменена и требуется провести проверку на ошибки. Если значение равно 0, то проверка не требуется. Volume dirty bit автоматически устанавливается при изменении файловой системы, например, при создании, удалении или перемещении файлов.

Из предыдущего опыта мы знаем, что это займет около 1,5 часа, но тут зависит от скорости ваших дисков, например я видел случаи, что 15 ТБ проверялось около 30 часов. Сомневаюсь, что отсутствие важных данных 30 часов будет позитивно воспринято пользователями и бизнесом. Поскольку том является ресурсом в роли отказоустойчивого кластера, chkdsk автоматически запускается всякий раз, когда роль перемещается на другой узел кластера. Эту задачу можно убить через что-то вроде ProcessExplorer, выполнив поиск процесса rundll, связанного с chkdsk, и уничтожив его. Это переведет том в оперативный режим, однако более аккуратное решение состоит в том, чтобы изменить автоматический параметр chkdsk, чтобы предотвратить его запуск, а затем запланировать работу на согласованное отключение.

Как узнать текущую настройку проверки диска

Сначала давайте проверим значения на дисках кластера, тут будут два разных командлета, так как типы дисков могут быть разные. Запустите PowerShell в режиме администратора.

  • ✅Запросить статус политики проверки диска у физического типа (Physical Disk), для этого выполните:

Get-ClusterResource | where {$_.ResourceType -eq "Physical Disk"} | Get-ClusterParameter -Name DiskRunChkDsk

  • ✅Запросить статус политики проверки диска у CSV дисков:

Get-ClusterSharedVolume | Get-ClusterParameter -Name DiskRunChkDsk

Как узнать текущую настройку проверки диска

Описание значений DiskRunChkDsk

DiskRunChkDsk - Определяет, запускает ли операционная система chkdsk на физическом диске перед попыткой монтирования диска:

  • ✅0x0 ("0") - Это параметр по умолчанию для всех отказоустойчивых кластеров. Эта политика проверит том, чтобы увидеть, установлен ли грязный бит, и выполнит обычную проверку файловой системы. Обычная проверка аналогична запуску команды DIR в корневом каталоге. Если установлен грязный бит или нормальная проверка возвращает STATUS_FILE_CORRUPT_ERROR или STATUS_DISK_CORRUPT_ERROR, CHKDSK запускается в подробном режиме (Chkdsk /x /f).
  • ✅0x1 ("1") - Этот параметр проверяет объем, чтобы увидеть, установлен ли грязный бит, и выполняет подробную проверку. Подробная проверка сканирует том, переходя от корня тома и проверяя все файлы файловой системы. Если установлен грязный бит или если проверка Verbose возвращает STATUS_FILE_CORRUPT_ERROR, CHKDSK, то запускается в обычном режиме (Chkdsk /x /f).
  • ✅0x2 ("2") - Этот параметр будет запускать CHKDSK в подробном режиме (Chkdsk /x /f) на томе каждый раз, когда он монтируется.
  • ✅0x3 ("3") - Этот параметр проверяет том, чтобы увидеть, установлен ли грязный бит, и выполняет обычную проверку файловой системы. Обычная проверка аналогична запуску команды DIR в корневом каталоге. Если установлен грязный бит или если нормальная проверка возвращает STATUS_DISK_CORRUPT_ERROR, CHKDSK будет запущен в подробном режиме (Chkdsk /x /f), в противном случае CHKDSK будет запущен в режиме только для чтения (Chkdsk без каких-либо переключателей).
  • ✅0x4 ("4") - Не выполняет никаких проверок.
  • ✅0x5 ("5") - Этот параметр проверяет том, чтобы увидеть, установлен ли грязный бит, и выполняет подробную проверку (сканирование тома путем перехода от корня тома и проверки всех файлов) файловой системы. Если проблема обнаружена, CHKDSK не запустится и том не будет переведен в оперативный режим.

Как изменить значение параметра DiskRunChkDsk

Давайте поменяем для физических дисков данный параметр и отключим автоматическую проверку диска. Для примера я это сделаю на отдельном диске 2.

Get-ClusterResource -Name "Cluster Disk 2" | Set-ClusterParameter -Name DiskRunChkDsk -Value 4 -Verbose

Изменить значение параметра DiskRunChkDsk для всех томов с типом "Physical Disk", размещенных в этом отказоустойчивом кластере, на значение 4 (0x4)

Get-ClusterResource | where {$_.ResourceType -eq "Physical Disk"} | Set-ClusterParameter -Name DiskRunChkDsk -Value 4 -Verbose

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

Помните, что это не отменяет проверку целостности файловой структуры

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

Дополнительно

  • https://learn.microsoft.com/ru-ru/previous-versions/windows/desktop/mscs/diskrunchkdsk
  • https://learn.microsoft.com/en-us/powershell/module/failoverclusters/get-clusterresource?view=windowsserver2022-ps
  • https://www.bytesizedalex.com/disable-automatic-chkdsk-on-windows-failover-cluster/
Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *