Bir Windows ortamında, büyük veri kümelerini sık sık silir ve yeniden oluştursanız (örneğin: Diske yedekleme), önceki bir silme eylemi dizide yüksek sayıda UNMAP komutuna neden olabilir. Aynı disk alanını yeniden yazarsanız, gelen yazma işlemleri UNMAP'ların işlenmesini bekleyin ve UNMAP'ler disk alanı öğelerini dizi tarafındaki disk havuzuna geri verdiğinden yazma performansınız zarar görmüş olabilir.
Bu depolama verimliliği mantığını destekleyen işletim sistemi mekanizmasına "TRIM" denir. TRIM etkinse ve dosya sistemindeki bir blok silildiğinde dosya sistemi (NTFS), boş alan hakkında meta veriler oluşturur ve bunu G/Ç yığınından geçer. G/Ç yığınındaki disk düzeyinde, hedef diskin ATA ile bağlı olup olmadığının karara varılır. Bu durumda, fiziksel disk nesnesine bir ATA TRIM komutu gönderilir. Disk bir SCSI diski ise TRIM, SCSI UNMAP'e dönüştürülür.
Aynı veri bölümünü tekrar sildiğinde ve yeniden yazarak bu havuza geri dön mekanizmasının depolama verimliliği en iyi yönü sınırlıdır. Bu koşullar altında ilgili üretim işi boyunca TRIM'i NTFS düzeyinde devre dışı bırakmayı veya TRIM'i tamamen devre dışı bırakmayı tercih etmiş olabilirsiniz.
Ortaya çıkan soru, disklerin uzun vadede hala alan açısından verimli olduğundan nasıl emin olabilirsiniz?
Bir aygıt üzerinde yeniden deneme işlemini tetiklemek için genellikle /L seçeneğiyle birleştirme komutunu çalıştırırsanız. TRIM'i "fsutil behavior set disabledeletenotify 1" (fsutil behavior set disabledeletenotify 1) kullanarak devre dışı bıraksanız çerçeve veya eşlemenin yalnızca silme sırasında devre dışı bırakıldığında ve yeniden denemenin beklendiği gibi çalıştığına karar veriyor olabilir. Böyle bir durum yok. Birleştirmedeki yeniden deneme eylemi, boş bir yedek dosya ayıran ve ardından verileri taşımak için FSCTL_MOVE_FILE olarak çağrılan bir mekanizmadır. Daha fazla ayrıntı için "Windows Internals 7", "Part II", p. 644 ff (Windows Dahili 7," "Bölüm II", s. 644 ff) sayfasına bakın. Ortaya çıkan davranış, başlığın altındaki silme eylemi anlamına gelir. Maalesef devre dışı bırakma " 1" ise yeniden deneme komutu yine de başarılı olur. Eşlemelerin unmaps ile sonuçlanmamıştır.
Sonuç olarak, depolamayı geri almak için sıra, birleştirme çalıştırılamadan önce TRIM'i etkinleştirmek için bir adım içermelidir.
Ayrıca, trim'i sistemde genel olarak devre dışı bırakırsanız etkinleştirin, birleştirin ve ardından tekrar devre dışı bırakın. Devre dışı bırakma işlemi, komut istem üzerine geri döndürülse de tamamlanmamış yeniden deneme komutu yürütmesiyle harmanlanabilir. Windows 2019'da bunu laboratuvarda test etme işlemi sırasında devre dışı bırakma ayarını tekrar "1" olarak ayarlamadan önce birkaç saniye beklememız gerekirdi. Bunun, birleştirme komutu ile arka planda optimize edici hizmeti arasındaki bir etkileşimin sonucu olduğunu inanıyoruz.
Sürücü Optimize Edici'yi kullanarak TRIM'i zamanlarsanız varsayılan Explorer menüsü, Görev Zamanlayıcı'da "ScheduledDefrag" (/Microsoft/Windows/Defrag) adlı zamanlanmış bir görev gerektirir. Görevi değiştirirseniz Drive Optimizer bu olguyu algılar ve devam etmek için önce varsayılanları geri yüklemenizi sorar. Görevi devre dışı bırakırsanız birleştirme komutlarını manuel olarak çalıştırabilirsiniz ancak bunları zamanlayabilirsiniz.
Bu "ScheduledDefrag" görevi, Sistem Bakımı (Denetim Masası\Tüm Denetim Masası Öğeleri\Güvenlik ve Bakım\Otomatik Bakım) olarak da bilinir.
Sonuç olarak, bu sistem varsayılan ayarlarını olduğu gibi bırakmanızı ve bunun yerine görev zamanlayıcıda yeni bir görev oluşturmayı düşünmenizi tavsiye ederiz:
3. adımdaki zaman aşımı değeri, laboratuvar testlerini bir arada çalıştırmadır. Birleştirmenin başarılı olması için asla 10 saniyeden uzun süreye gerek yoktur ve 60 saniyenin makul bir başlangıç noktası olduğuna inanıyoruz. Dizi tarafı tahsis edilmiş kapasite değerleri ile kullanılan kapasite değerlerinin bir arada raporlanan dosya sistemi arasındaki tutarsızlıkları fark ederseniz 300 saniye (5 dakika) gibi daha büyük bir değer uygulamayı deneyin.
Aşağıda, temel olarak kullanmak üzere görev zamanlayıcıya içe aktarma için bir şablon sağlaruz. Aşağıdaki xml kodunu kopyalayıp bir dosyaya yapıştırın, dosyayı yapılandırmak istediğiniz sunucu sisteminin erişimine yerleştirin ve görevi içe aktarma eylemini kullanarak görevi içe aktarın. Aşağıdaki görev şablonuna DellSanDiskMaintenance adı verilmiştir. Yukarıdaki dört adımı haftada bir, Cumartesi 20:00'de (20:00) çalıştırır ve zamanlayıcının köküne yerleştirilir, örneğin:
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