У середовищі Windows, якщо ви часто видаляєте та повторно створюєте великі набори даних (наприклад: Backup to disk), попередня дія видалення може призвести до великої кількості команд UNMAP в масиві. Якщо ви перепишете той самий дисковий простір, ваша продуктивність запису може постраждати, оскільки вхідні записи чекають обробки UNMAP, UNMAP повертають елементи дискового простору в пул дисків на стороні масиву.
Механізм операційної системи, який керує цією логікою ефективності зберігання, називається «TRIM». Якщо функція TRIM активна і якщо ви видаляєте блок у файловій системі, файлова система (NTFS) генерує метадані про звільнений простір і передає їх у стек вводу-виводу. На рівні диска в стеку вводу-виводу приймається рішення, чи підключений цільовий диск до ATA. У цьому випадку команда ATA TRIM надсилається на об'єкт фізичного диска. Якщо диск є диском SCSI, то TRIM перетворюється на SCSI UNMAP.
Якщо ви знову видалите та перепишете той самий розділ даних, аспект ефективності зберігання цього механізму повернення до пулу буде обмежений. За таких обставин ви можете вимкнути функцію TRIM на рівні NTFS на час виконання відповідного виробничого завдання або вимкнути її взагалі.
Виникає питання: як ви можете гарантувати, що диски все ще ефективні в довгостроковій перспективі?
Щоб запустити retrim на пристрої, ви зазвичай запускаєте команду defrag з опцією /L. Коли ви вимкнули функцію TRIM за допомогою функції "fsutil behavior set disabledeletenotify 1", у вас може скластися враження, що обтинання або скасування зіставлення вимкнено лише під час видалення , а ретрим працює належним чином. Це не так. Дія retrim в дефрагментації - це механізм, який виділяє порожній розріджений файл, а потім викликає FSCTL_MOVE_FILE для переміщення даних. Дивіться "Windows Internals 7", "Part II", p. 644 ff для отримання додаткової інформації. Отримане поведінка має на увазі дію видалення під капотом. На жаль, якщо disabledeletenotify має значення "1", команда retrim все одно буде успішною. Це не призводить до розмапування.
Як результат, послідовність відновлення сховища повинна включати крок для активації TRIM перед запуском дефрагментації.
Далі, якщо ви вимкнули TRIM в системі глобально, активуйте його, дефрагментуйте, а потім деактивуйте знову, процес деактивації може зіткнутися з неповним виконанням команди retrim, хоча команда повернулася до рядка. Під час лабораторного тестування цього на Windows 2019 ми виявили, що нам довелося почекати пару секунд, перш ніж знову встановити disabledeletenotify на "1". Ми вважаємо, що це результат взаємодії між командою дефрагментації та службою оптимізатора у фоновому режимі.
Якщо ви плануєте TRIM за допомогою оптимізатора дисків, меню провідника за замовчуванням вимагає запланованого завдання під назвою "ScheduledDefrag" (/Microsoft/Windows/Defrag) у планувальнику завдань. Якщо змінити завдання, оптимізатор дисків виявить цей факт і попросить відновити значення за замовчуванням, перш ніж ви зможете продовжити. Якщо ви вимкнете завдання, ви все одно можете запускати команди дефрагментації вручну, але ви не можете запланувати їх.
Це завдання "ScheduledDefrag" також називається обслуговуванням системи (Панель керування\Усі елементи панелі керування\Безпека й обслуговування\Автоматичне обслуговування).
Тому рекомендуємо залишити ці системні настройки за замовчуванням такими, якими вони є, а замість цього розглянути можливість створення нового завдання в планувальнику завдань, щоб:
Значення тайм-ауту на кроці 3 є інтерполяцією лабораторних тестів. Нам ніколи не потрібно було більше 10 секунд, щоб дефрагментація увінчалася успіхом, і ми віримо, що 60 секунд є розумною відправною точкою. Якщо виявлено розбіжності між значеннями виділеної ємності на стороні масиву та файловою системою, про які повідомлялося про накопичення використаних значень ємності, спробуйте використати більше значення, наприклад 300 секунд (5 хвилин).
Нижче ми надаємо шаблон для імпорту в планувальник завдань, який ви можете використовувати як основу. Скопіюйте та вставте наведений нижче xml-код у файл, помістіть файл у зону досяжності серверної системи, яку потрібно налаштувати, і скористайтеся дією імпорту завдання, щоб імпортувати завдання. Наведений нижче шаблон завдання називається DellSanDiskMaintenance. Він виконує вищезазначені чотири кроки щотижня, в суботу о 20:00 годині (8 вечора), і розміщується в корені планувальника, наприклад:
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