Hvis du i et Windows-miljø ofte sletter og opretter store datasæt igen (f.eks.: Sikkerhedskopier til disk), og en tidligere sletningshandling kan resultere i et stort antal UNMAP-kommandoer på systemet. Hvis du omskriver den samme diskplads, kan skriveydeevnen blive forringet, fordi de indgående skrivninger venter på, at UNMAP'erne bliver behandlet, og UNMAPs returnerer diskpladselementer til diskpuljen på systemsiden.
Operativsystemets mekanisme, der drev denne lagereffektivitetslogik, kaldes "TRIM". Hvis TRIM er aktiv, og hvis du sletter en blok på filsystemet, genererer filsystemet (NTFS) metadata om den frierede plads og overfører dem til I/O-stakken. På diskniveau i I/O-stakken tages der en beslutning om, hvorvidt destinationsdisken er ATA-tilsluttet. I så fald sendes en ATA TRIM-kommando til det fysiske diskobjekt. Hvis disken er en SCSI-disk, konverteres TRIM til en SCSI UNMAP.
Hvis du sletter og omskriver det samme dataafsnit igen, er lagereffektivitetsmediet ved denne return-to-pool-mekanisme begrænset. Under disse omstændigheder kan du enten have valgt at deaktivere TRIM på NTFS-niveau for varigheden for det pågældende produktionsjob eller deaktivere TRIM helt.
Det deraf følgende spørgsmål er, hvordan du kan sikre, at diskene stadig er pladseffektive på lang sigt?
For at udløse retrim på en enhed kører du normalt defragmenteringskommandoen med indstillingen /L. Når du har deaktiveret TRIM ved hjælp af "fsutil behavior set disabledeletenotify 1", kan du være under enheden, at trim eller fjernelse af tilknytning kun er deaktiveret ved sletning , og at retrim fungerer som forventet. Dette er ikke tilfældet. Retrim-handlingen i defragmentering er en mekanisme, der allokerer en tom sparse-fil og derefter kalder FSCTL_MOVE_FILE for at flytte dataene. Se "Windows Internals 7", "Del II", s. 644 ff for yderligere oplysninger. Den resulterende adfærd kræver en sletningshandling under skærmen. Desværre lykkes kommandoen retrim stadig, hvis disabledeletenotify er "1". Det resulterer ikke i fjernelse af tilknytninger.
Derfor skal sekvensen for at frigøre lageret indeholde et trin til at aktivere TRIM, før defragmentering køres.
Hvis du har deaktiveret TRIM på systemet globalt, skal du aktivere det, defragmentere og derefter deaktivere det igen, så deaktiveringsprocessen kan afbrydes med ufuldstændig udførelse af retrim-kommando, selvom kommandoen er vendt tilbage til prompten. Når vi tester dette på Windows 2019, fandt vi ud af, at vi var nødt til at vente i et par sekunder, før du kunne indstille disabledeletenotify til "1" igen. Vi mener, at dette er et resultat af en interaktion mellem defragmenteringskommandoen og optimeringsservicen i baggrunden.
Hvis du planlægger TRIM ved hjælp af Drive Optimizer, kræver standard Explorer-menuen en planlagt opgave kaldet "ScheduledDefrag" (/Microsoft/Windows/Defrag) i Opgavestyring. Hvis du ændrer opgaven, registrerer Drevoptimering dette og anmoder dig om at gendanne standardindstillingerne, før du kan fortsætte. Hvis du deaktiverer opgaven, kan du stadig køre defragmenteringskommandoerne manuelt, men du kan ikke planlægge dem.
Denne "ScheduledDefrag"-opgave kaldes også Systemvedligeholdelse (Kontrolpanel\Alle kontrolpanelelementer\Sikkerhed og vedligeholdelse\Automatisk vedligeholdelse).
Derfor anbefaler vi, at du efterlader disse systemstandardindstillinger, som de er, og i stedet overvejer at oprette en ny opgave i Opgavestyring, som:
Timeoutværdien i trin 3 er en godkendelse af testene. Vi har aldrig brug for mere end 10 sekunder til, at defragmentering kan lykkes, og vi mener, at de 60 sekunder er et rimeligt udgangspunkt. Hvis du oplever, at uoverensstemmelser mellem de tildelte kapacitetsværdier på systemsiden og filsystemet har rapporteret ophobning af anvendte kapacitetsværdier, kan du prøve at bruge en større værdi, f.eks. 300 sekunder (5 minutter).
Nedenfor finder du en skabelon, som du kan importere til en opgavestyring, som du kan bruge som udgangspunkt. Kopier og indsæt nedenstående XML-kode i en fil, og placer filen inden for rækkevidde af det serversystem, du vil konfigurere, og brug opgavens importhandling til at importere opgaven. Nedenstående opgaveskabelon hedder DellSanDiskMaintenance. Den kører ovenstående fire trin ugentligt, en lørdag kl. 20.00 (20.00) og placeres i roden af planlæggeren, for eksempel:
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