( Raynes | 2020. 06. 06., szo - 23:29 )

Sehol. Meg lehet köszönni a zárt forráskódnak. A MS azt mond erről, amit akar. Ennek ellenére hozzám ez úgy jutott el a Blikkből, hogy MS Windows 7 óta az összes Windowsban offline és online TRIM is van. A Windows kernel fájl/mappatörlésekkor is küld ki TRIM-et (hacsak nincs ez letiltva a disabledeletenotify-jal), meg ütemezett offline TRIM is be van ütemezve default heti egyszer (ezt a Windows Defrag service végzi, de nem defragol ilyenkor, hanem optimalizációnak hívva TRIM-et hajt végre). Persze a kettő együtt feleslegesnek tűnik, inkább csak biztos, ami biztos alapon van, mert attól, hogy online is TRIM-ezve van, attól még a user használhatja ugyanazt az NTFS partíciót más olyan OS alatt, vagy más gépben, ahol meg nem megy a TRIM, vagy mert nem támogatott, vagy mert ki van kapcsolva, ezt az offline TRIM van hivatva pótolni.

De ez mind csak urban legend, amíg a forráskódot nem látjuk. Már pedig nem fogjuk, majd 2299. február 31-án talán kinyitja a MS, mint most a GW-BASIC-et, meg a DOS 1-2.x-et.

Linuxok alatt is kétféle TRIM kapcsolható be, egyszer mountoláskor már a fájlrendszerben bekapcsolható online/continuous TRIM, a legtöbb fájlrendszernél a discard mount paramétert kell hívni hozzá. Illetve lehet használni offline/periodic TRIM-et is, ezt az fstrim parancs végzi, ami általában egy systemd service-ként van beütemezve heti egyszeri futásra. De ez disztrónként változik, hogy melyik megoldást alkalmazzák, discard vagy fstrim, ha fstrim, akkor hogyan van beütemezve, init által kezelt service, cron job, vagy valami más. Általában csak az egyik szokott lenni default bekapcsolva, de a default átállításával bekapcsolható akármelyik, akár egyszerre, akármilyen ütemezéssel.

Debian-Ubuntu-Red Hat alapú disztrókon általában systemd által ütemezett fstrim service van, az Arch-vonal meg a discard paramétert tette meg defaulttá a fstab-ban. Ez sokszor szakmai vita tárgya, hogy melyik a jobb megoldás, általában attól függ melyik a default, hogy ki mire esküszik. Van, amikor nem is választás kérdése, mert vannak olyan fájlrendszerek, amik az egyik megoldással nem támogatják a TRIM-et, csak a másikkal. Pl. az ext3, NTFS-3g csak fstrim-et támogat. Régen még többféle kivétel volt, pl. az F2FS és VFAT sokáig csak a discard TRIM-et támogatta, az fstrim-et nem, de utólag ezt javították. A ZFS nem támogatott fstrim által. LVM, LUKS köteteken külön be kell kapcsolni, átengedik rajtuk a TRIM-et.

NVMe SSD-knél az egész nem érdekes, mert azokon nincs semmilyen TRIM parancs már. Ott az NVMe protokoll működése van úgy kialakítva, hogy végrehajtódjon minden vonatkozó utasítás keretében (Dataset Management, ami egy NVMe utasítás) egy olyan részművelet (deallocate), ami a TRIM-nek megfelelő műveletről gondoskodik, ezt ki sem lehet kapcsolni. De emiatt nem kell külön TRIM vagy UNMAP parancsot kiküldözgetni az NVMe SSD-nek. Ez az egész TRIM (SCSI, SAS, stb. SSD-nél az UNMAP) csak PATA/SATA/AHCI SSD-knél fontos, mert az ATA/AHCI protokoll még HDD-khez lett kitalálva, és utólag dobtak bele SSD-hez szükséges utasításokat. NVMe viszont már kezdettől fogva SSD-khez lett kitalálva, és nem kellett utólag kiküldendő extra utasításokat később belehekkelni.