Als u in een Windows-omgeving vaak grote datasets verwijdert en opnieuw maakt (bijvoorbeeld: Back-up op schijf), kan een voorgaande verwijderingsactie resulteren in een groot aantal UNMAP-opdrachten op de array. Als u dezelfde schijfruimte herschrijft, kunnen uw schrijfprestaties achteruit gaan, omdat de binnenkomende schrijfbewerkingen wachten tot de UNMAP's zijn verwerkt, retourneren UNMAP's schijfruimte-elementen naar de schijfgroep aan de arrayzijde.
Het mechanisme van het besturingssysteem dat deze logica voor storage-efficiëntie aanstuurt, wordt "TRIM" genoemd. Als TRIM actief is en als u een blok op het bestandssysteem verwijdert, genereert het bestandssysteem (NTFS) metadata over de vrije ruimte en slaagt het in de I/O-stack. Op schijfniveau in de I/O-stack wordt besloten of de doelschijf ISA-aangesloten is. In dat geval wordt een ATA TRIM-opdracht verzonden naar het object van de fysieke schijf. Als de schijf een SCSI-schijf is, wordt de TRIM geconverteerd naar een SCSI UNMAP.
Als u dezelfde datasectie verwijdert en opnieuw herschrijft, is het efficiëntie-aspect van de storage van dit return-to-pool-mechanisme beperkt. Onder deze omstandigheden hebt u er mogelijk voor gekozen om TRIM uit te schakelen op NTFS-niveau gedurende de duur voor de respectieve productietaak, of TRIM helemaal uit te schakelen.
De daaruit voortvloeiende vraag is hoe u kunt garanderen dat de schijven op de lange termijn nog steeds ruimte-efficiënt zijn?
Om retrim op een apparaat te activeren, voert u meestal de defrag-opdracht uit met de optie /L. Wanneer u TRIM hebt uitgeschakeld met "fsutil behavior set disabledeletenotify 1", krijgt u mogelijk de indruk dat de trim of unmap alleen is uitgeschakeld bij verwijderen en dat de retrim werkt zoals verwacht. Dit is niet het geval. De retrim-actie in defrag is een mechanisme dat een leeg dun bestand toewijst en vervolgens FSCTL_MOVE_FILE aanroept om de data te verplaatsen. Zie "Windows Internals 7", "Deel II", p. 644 ff voor meer informatie. Het resulterende gedrag duidt op een verwijderingsactie onder de motorkap. Als disabledeletenotify helaas "1" is, lukt de opdracht retrim nog steeds. Dit resulteert niet in unmaps.
Als gevolg hiervan moet de volgorde voor het terugvorderen van de storage een stap bevatten om TRIM te activeren voordat de defrag wordt uitgevoerd.
Als u TRIM op het systeem globaal hebt uitgeschakeld, activeer het, defrag en deactiveer het opnieuw, kan het deactiveringsproces samenvallen met onvolledige retrim-opdrachtuitvoering, hoewel de opdracht is geretourneerd naar de prompt. Toen we dit in het lab testten in Windows 2019, moesten we een paar seconden wachten voordat we disabledeletenotify opnieuw op "1" zetten. Wij zijn van mening dat dit het gevolg is van een interactie tussen de defrag-opdracht en de optimizer-service op de achtergrond.
Als u de TRIM plant met Drive Optimizer, vereist het standaard Explorer-menu een geplande taak genaamd "ScheduledDefrag" (/Microsoft/Windows/Defrag) in Taakplanner. Als u de taak wijzigt, detecteert de Schijfoptimalisering dit feit en wordt u gevraagd om de standaardwaarden te herstellen voordat u verder kunt gaan. Als u de taak uitschakelt, kunt u de defrag-opdrachten nog steeds handmatig uitvoeren, maar u kunt ze niet plannen.
Deze taak "ScheduledDefrag" wordt ook wel Systeemonderhoud genoemd (Configuratiescherm\Alle Configuratieschermitems\Beveiliging en onderhoud\Automatisch onderhoud).
Als gevolg hiervan raden we u aan deze standaardinstellingen van het systeem te laten staan en in plaats daarvan te overwegen een nieuwe taak te maken in de taakplanner, die:
De time-outwaarde in stap 3 is een overzicht van labtests. We hadden nooit langer dan 10 seconden nodig om de defrag te laten slagen en geloven dat de 60 seconden een redelijk beginpunt zijn. Als u merkt dat discrepanties tussen de aan de array toegewezen capaciteitswaarden en het gemelde bestandssysteem gebruikte capaciteitswaarden opbouwen, probeer dan een grotere waarde te gebruiken, zoals 300 seconden (5 minuten).
Hieronder bieden we een sjabloon voor u om te importeren in een taakplanner die u als basis kunt gebruiken. Kopieer en plak de onderstaande XML-code in een bestand, plaats het bestand binnen bereik van het serversysteem dat u wilt configureren en gebruik de taakimportactie om de taak te importeren. De onderstaande taaksjabloon heet DellSanDiskMaintenance. Het voert de bovenstaande vier stappen wekelijks uit, op een zaterdag om 20.00 uur (20.00 uur) en wordt geplaatst in de hoofdmap van de scheduler, bijvoorbeeld:
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