Ubuntu ne TRIM SSD-ove po defaultu Zašto ne i kako to omogućiti sami
Ubuntu želi omogućiti TRIM za SSD-ove po defaultu u Ubuntu 14.04. Drugim riječima, Ubuntu već ne koristi TRIM, pa se SSD s vremenom usporava. Ali zašto Ubuntu već ne koristi TRIM?
Ova će vijest vjerojatno biti iznenađenje za mnoge ljude koji su pretpostavili da Ubuntu i druge Linux distribucije već koriste TRIM. TRIM sprječava usporavanje SSD-ova tijekom vremena i nužan je dio održavanja SSD-a.
Zašto je TRIM važan
Preispitali smo zašto je TRIM prije važan. Kada izbrišete datoteku na starom magnetskom tvrdom disku, računalo jednostavno označava tu datoteku kao izbrisanu. Podatci se nalaze na tvrdom disku - zato se izbrisane datoteke mogu vratiti. Računalo će na kraju prebrisati izbrisane datoteke kada prepiše svoje sektore novim podacima.
SSD pogoni rade drugačije. Kad god pišete datoteku na SSD, računalo prvo mora izbrisati sve podatke u sektorima u koje piše podatke. Ona ne može jednostavno "prepisati" sektore u jednoj operaciji - prvo ih mora izbrisati, a zatim zapisati u prazne sektore.
To znači da će SSD s vremenom usporiti. Pisanje u sektorima SSD-a bit će brzo prvi put. Nakon što izbrišete neke datoteke i ponovno pokušate pisati, bit će potrebno dulje vrijeme. To je veliki dio razloga što je Googleov originalni Nexus 7 toliko usporio tijekom vremena. Google je to riješio implementacijom TRIM-a u Android 4.3. (Android također koristi Linux kernel.)
Kada je TRIM omogućen, operativni sustav javlja SSD-u svaki put kada izbriše datoteku. Pogon tada može izbrisati sektore koji sadrže sadržaj datoteke, tako da će pisanje u sektore biti brzo u budućnosti.
Drugim riječima, ako ne koristite TRIM, vaš SSD će se s vremenom usporiti. Zato moderni operativni sustavi, uključujući Windows 7+, Mac OS X 10.6.8+ i Android 4.3+, koriste TRIM. TRIM je implementiran u Linuxu još u prosincu 2008., ali ga Ubuntu ne koristi po defaultu.
Zašto ne Ubuntu TRIM po defaultu?
Pravi razlog zašto Ubuntu ne TRIM SSD-ove po defaultu je zato što je implementacija TRIM-a u Linux kernelu spora i rezultira lošom izvedbom u normalnoj upotrebi.
Na sustavima Windows 7 i 8, Windows šalje naredbu TRIM svaki put kada izbriše datoteku, govoreći pogonu da odmah izbriše bitove datoteke. Linux to podržava kada su datotečni sustavi montirani s opcijom "discard". Međutim, Ubuntu - i druge distribucije - to ne čine prema zadanim postavkama zbog performansi.
OpenSUSEov wiki sadrži neke detaljne informacije od razvojnog programera koji je bolje upoznat s Linux kernelom nego što smo mi. Malo je datirano, ali je vjerojatno još uvijek istinito kada je riječ o izvedbi:
“Implementacija kernela stvarnog vremena u 11.2, 11.3 i 11.4 nije optimizirana. Specifikacije poziva na trim koji podržava vektorski popis raspona opreme, ali od trim kernela 3.0 kernel se poziva samo s jednim rasponom odbacivanja / uklanjanja i sa trenutnim SSD-ovima iz sredine 2011. to se pokazalo da uzrokuje smanjenje performansi umjesto povećanja performansi. Postoji nekoliko razloga za korištenje jezgre podrške u realnom vremenu s kernelima pre-3.1. Nije poznato kada će funkcionalnost odbacivanja kernela biti optimizirana za rad s trenutnim generacijskim SSD-ovima. ”[Izvor]
Drugim riječima, Linux kernel upravlja takvim TRIM naredbama u realnom vremenu na spor, neoptimiziran način. Omogućavanje TRIM-a slično načinu na koji Windows radi - to jest, upotrebom opcije "odbaci" - rezultira time da sustav zapravo postaje sporiji nego ako se TRIM uopće ne koristi. Ubuntu i druge distribucije Linuxa ne omogućuju "odbacivanje" prema zadanim postavkama za vaše datotečne sustave, a ni vi ne biste trebali.
Postoji još jedan način
Budući da TRIM operacija u realnom vremenu u Linuxu nije uspješna, većina Linux distribucija - uključujući Ubuntu - ne koristi TRIM automatski. Android također nije koristio TRIM do Androida 4.3.
Ali postoji još jedan način korištenja TRIM-a. Umjesto jednostavnog izdavanja TRIM naredbe svaki put kad se datoteka izbriše, može se koristiti značajka FITRIM. To se događa preko naredbe fstrim. Zapravo, naredba fstrim analizira sustav datoteka i informira pogon koji blokovi više nisu potrebni, tako da ih disk može odbaciti. Time se TRIM pretvara iz operacije u realnom vremenu u planirani zadatak. Drugim riječima, fstrim može izvoditi TRIM kao cron posao. Nema razloga za to. Neće ništa usporiti; to je samo još jedan zadatak čišćenja koji sustav mora obaviti po rasporedu.
Zapravo, to je pristup koji je Google uzeo s Androidom 4.3. Android jednostavno pokreće fstrim zadatak povremeno za TRIM datotečni sustav, popravljajući problem koji je usporio sve one originalne Nexus 7s.
Ubuntu također pokušava automatski omogućiti TRIM tako da sustav redovito pokreće fstrim. Ovo će, nadamo se, biti dio Ubuntu 14.04 tako da korisnici Ubuntua neće biti prisiljeni suočiti se sa propadanjem performansi SSD-a ili pokrenuti fstrim sami.
Kako omogućiti TRIM
Ne preporučujemo montiranje sustava datoteka s operacijom "odbacivanje", jer će to vjerojatno rezultirati sporijim performansama u normalnoj uporabi. Međutim, sami TRIM možete koristiti tako da povremeno pokrenete fstrim naredbu ili kreirate vlastiti cronjob koji pokreće fstrim na rasporedu.
TRIM svoj SSD na Ubuntu, jednostavno otvorite terminal i pokrenite sljedeću naredbu:
sudo fstrim -v /
Gornju naredbu možete pokrenuti povremeno kako biste spriječili pogoršanje performansi na SSD-ovima. Koliko često trebate pokretati ovisi o tome koliko često se datoteke brišu s SSD-a. Vidjet ćete pogrešku ako pokušate pokrenuti naredbu s pogonom koji ne podržava TRIM.
Ako želite redovito pokretati TRIM, možete jednostavno stvoriti cronjob koji pokreće naredbu fstrim za vas. Evo kako napraviti barebones cron posao koji će to učiniti automatski.
Najprije pokrenite sljedeću naredbu za otvaranje nano teksta s root dopuštenjima:
sudo nano /etc/cron.daily/fstrim
Upišite sljedeći kôd u datoteku:
#! / Bin / sh
fstrim /
Spremite datoteku pritiskom na Ctrl + O i pritisnite Enter za potvrdu. Pritisnite Ctrl + X da biste zatvorili nano nakon spremanja datoteke.
Posljednje, pokrenite sljedeću naredbu kako bi skripta bila izvršna:
sudo chmod + x /etc/cron.daily/fstrim
Ubuntu će sada izvoditi fstrim po rasporedu, baš kao i druge zadatke održavanja sustava.
Imajte na umu da je TRIM podržan samo na modernim datotečnim sustavima, tako da ćete trebati nešto poput ext4, a ne ext3 ili ext2. Ako ne znate koji datotečni sustav koristite, ne brinite - ext4 je odabran prema zadanim postavkama.
Velik dio ovih savjeta vrijedi i za druge Linux distribucije. Iako je Linux već davno implementirao TRIM podršku u kernelu, čini se da TRIM podrška nikada nije bila omogućena po defaultu za tipične korisnike u Linux distribucijama.
Kredit za slike: Mace Ojala na Flickru (izrezan)