Если в среде Windows часто удаляются и повторно создаются большие наборы данных (например, Резервное копирование на диск— предыдущее действие удаления может привести к появлению высокого количества команд UNMAP в массиве. При перезаписи того же дискового пространства производительность записи может понижаться, так как входящие операции записи ждут обработки UNMAPs, unMAPs возвращает элементы дискового пространства в дисковый пул на стороне массива.
Механизм операционной системы, фиксирующий эту логику эффективности хранения данных, называется TRIM. Если команда TRIM активна и если удалить блок в файловой системе, файловая система (NTFS) генерирует метаданные о свободном пространстве и передает его в стек ввода-вывода. На уровне диска в стеке ввода-вывода принимается решение о том, подключен ли целевой диск к ATA. В этом случае команда ATA TRIM отправляется объекту физического диска. Если диск является диском SCSI, команда TRIM преобразуется в SCSI UNMAP.
Если удалить и перезаписать тот же раздел данных еще раз, эффективность хранения этого механизма возврата в пул будет ограничена. В этих условиях можно отключить TRIM на уровне NTFS на время выполнения соответствующего производственного задания или полностью отключить TRIM.
В результате возникает вопрос, как обеспечить эффективное использование дисков в долгосрочной перспективе?
Чтобы запустить повторную проверку на устройстве, обычно выполняется команда дефрагментации с параметром /L. Если команда TRIM отключена с помощью команды «fsutil behavior set disabledeletenotify 1», может возникнуть впечатление, что рамка или отмена сопоставления отключены только при удалении и повторная репликация работает должным образом. Это не так. Действие повторной репликации в дефрагментации представляет собой механизм, который выделяет пустой разреженный файл, а затем FSCTL_MOVE_FILE для перемещения данных. Дополнительные сведения см. в разделах Windows Internals 7, Part II, p. 644 ff. Итоговая функция подразумевает действие удаления под капотом. К сожалению, если disabledeletenotify имеет значение «1», команда retrim по-прежнему выполняется успешно. Это не приводит к отмене сопоставлений.
В результате последовательность повторного выделения ресурсов хранения должна включать шаг для активации TRIM перед запуском дефрагментации.
Кроме того, если вы глобально отключите TRIM в системе, активируйте его, дефрагментируйте и снова деактивируйте, процесс деактивации может столкнуться с неполным выполнением команды retrim, хотя команда возвращается в командную строку. При лабораторном тестировании в Windows 2019 мы обнаружили, что нам пришлось подождать несколько секунд, прежде чем снова установить значение disabledeletenotify на «1». Мы считаем, что это результат взаимодействия между командой дефрагментации и сервисом оптимизации в фоновом режиме.
Если вы запланировать trim с помощью Drive Optimizer, в меню Проводника по умолчанию в планировщике задач требуется запланированная задача ScheduledDefrag (/Microsoft/Windows/Defrag). Если вы измените задачу, Drive Optimizer обнаружит этот факт и предложит восстановить значения по умолчанию, прежде чем продолжить. Если отключить задачу, команды дефрагментации по-прежнему можно выполнять вручную, но не можете запланировать их.
Эта задача «ScheduledDefrag» также называется «Обслуживание системы» (Панель управления\Все элементы панели управления\Безопасность и обслуживание\Автоматическое обслуживание).
Поэтому рекомендуется оставить эти системные настройки по умолчанию в том виде, в котором они есть, и вместо этого рассмотрите возможность создания новой задачи в планировщике задач, что:
Значение тайм-аута в шаге 3 — это интерполяцией лабораторных тестов. Для успешной дефрагментации нам никогда не нужно было больше 10 секунд, и мы считаем, что 60 секунд являются разумной отправной точкой. Если между выделенными значениями емкости на стороне массива и файловой системой были выявлены расхождения между значениями используемой емкости, попробуйте использовать большее значение, например 300 секунд (5 минут).
Далее мы предоставляем шаблон для импорта в планировщик задач, который вы сможете использовать в качестве основы. Скопируйте и вставьте в файл указанный ниже XML-код, поместите файл в пределах доступа к серверной системе, которую необходимо настроить, и используйте действие импорта задачи для импорта задачи. Приведенный ниже шаблон задачи называется DellSanDiskMaintenance. Указанные выше четыре шага еженедельно выполняются в суббота в 20:00 (20:00) и помещаются в корневой каталог планировщика, например:
Dell Technologies 2023-07-07T09:21:50.4883878 Dell Technologies This task is an example of how to optimize thin SAN drives, if TRIM is globally disabled on the system. \DellSanDiskMaintenance D:AI(A;;FA;;;BA)(A;;FA;;;SY)(A;;FRFX;;;LS)(A;;FR;;;AU) 2023-07-01T20:00:00 PT2H true 1 S-1-5-18 HighestAvailable IgnoreNew true true true false false false false true true false false false true P1D P4D false false PT4H 7 %windir%\system32\fsutil.exe behavior set disabledeletenotify 0 %windir%\system32\defrag.exe /C /L /U timeout /t 60 %windir%\system32\fsutil.exe behavior set disabledeletenotify 1