Как отключить автоматический Chkdsk в отказоустойчивом кластере Windows
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разбирали как распознать сигналы BIOS, которые вам подает ваш пищащий ноутбук или компьютер. Ладно идем далее и сегодня я хочу вас научить производить автоматическую проверку целостности диска в отказоустойчивом кластере Windows. Да представьте иногда это приходится делать, чтобы бизнес мог продолжить работать, а вы молились чтобы ничего не посыпалось до момента, когда все можно починить😀.
Для чего может потребоваться автоматическое отключение проверки диска Chkdsk
Не так давно у меня на отказоустойчивом файловом кластере Windows один из кластерных дисков находился в состоянии «Online Pending». Все было бы ничего, но он весил 30 ТБ, на котором лежало куча данных пользователей и сам раздел в системе был недоступен, так как при его открытии вам сообщали, что нет прав. Данный диск по мнению файлового кластеры был поврежден. Это привело к тому, что том был помечен для chkdsk через грязный бит тома.
Из предыдущего опыта мы знаем, что это займет около 1,5 часа, но тут зависит от скорости ваших дисков, например я видел случаи, что 15 ТБ проверялось около 30 часов. Сомневаюсь, что отсутствие важных данных 30 часов будет позитивно воспринято пользователями и бизнесом. Поскольку том является ресурсом в роли отказоустойчивого кластера, chkdsk автоматически запускается всякий раз, когда роль перемещается на другой узел кластера. Эту задачу можно убить через что-то вроде ProcessExplorer, выполнив поиск процесса rundll, связанного с chkdsk, и уничтожив его. Это переведет том в оперативный режим, однако более аккуратное решение состоит в том, чтобы изменить автоматический параметр chkdsk, чтобы предотвратить его запуск, а затем запланировать работу на согласованное отключение.
Как узнать текущую настройку проверки диска
Сначала давайте проверим значения на дисках кластера, тут будут два разных командлета, так как типы дисков могут быть разные. Запустите PowerShell в режиме администратора.
- ✅Запросить статус политики проверки диска у физического типа (Physical Disk), для этого выполните:
- ✅Запросить статус политики проверки диска у CSV дисков:
Описание значений 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.
Изменить значение параметра DiskRunChkDsk для всех томов с типом "Physical Disk", размещенных в этом отказоустойчивом кластере, на значение 4 (0x4)
Помните, что это не отменяет проверку целостности файловой структуры
Само собой разумеется, что нельзя игнорировать требование 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/