Am următoarele dispozitive cu Linux Mint 18.1 pe laptopuri și GNU / Linux Debian 9 pe server.

(Toate sunt pe 64 de biți și cu desktop Cinnamon.)

Toate dispozitivele de unitate sunt formatate cu sistem de fișiere ext4 ; RAID 1 se realizează utilizând mdadm .

  1. Laptop cu 1 SSHD (nu trebuie confundat cu HDD).

  2. Laptop cu 3 unități: 2 x HDD-uri de consum în RAID 1 și 1 x SSD.

  3. Server cu 5 unități: 4 x HDD-uri de întreprindere în două ori RAID 1 și 1 x SSD.

Am sistemul pe aceste SSD-uri și nu aș defragmenta niciodată un SSD.

Întrebarea este despre HHD-uri și SSHD-uri.

Am găsit un PDF vechi care prezintă alte câteva caracteristici pentru e4defrag .

  1. De ce trebuie montat sistemul de fișiere, conform acestui mesaj de eroare atunci când se încearcă defragmentarea unui sistem de fișiere nemontat? Vreau să înțeleg de ce este:

    Filesystem is not mounted 
  2. Aș dori să am implementat defragmentarea spațiului liber. AFAIK este acum în curs de examinare. Este posibil pentru mine de ex. compilați e4defrag din sursă cu aceste opțiuni disponibile sau oricum?

    e4defrag -f /deviceOrDirectory 
  3. doresc, de asemenea, să folosesc funcția de date relevante:

    e4defrag -r /deviceOrDirectory 

Am multe motive relevante pentru a crede că fragmentarea acestor mașini încetinește viteza de citire, exemplu:

  1. Luată de pe server cu HDD-uri RAID 1 :

    [2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ] 
  2. Luat de pe laptop cu RAID 1 HDD-uri:

    [29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ] 

După cum puteți vedea, defragmentarea nu a reușit nici măcar să pună fișierul de 31 de blocuri într-o singură bucată. Desigur, ați putea susține că este un fișier de film, deci nu contează. Adevărat, dar numai în acest caz.

Comanda pe care o folosesc pentru a începe defragmentarea:

  1. Pe server:

    sudo e4defrag -v /dev/md1 
  2. Pe laptop:

    sudo e4defrag -v /raid1/ 

Nu nu pare să conteze, fie că invoc comanda folosind numele dispozitivului sau un director.

Puteți să mă îndreptați spre direcția corectă?

Comentarii

  • Aveți rezultate ale măsurătorilor care indică defragmentarea ca sursă de acces lent? Dacă da, care? În majoritatea cazurilor, nu ‘ nu trebuie să faceți defragmentarea manuală pe sistemele de fișiere ext4, atâta timp cât există ‘ spațiu liber pentru ca algoritmul de alocare să îl defragmenteze automat în timpul funcționării normale.
  • @dirkt Nu au fost efectuate măsurători până acum. Nu ‘ nu argumentez, dacă este sau nu eficient pentru defragmentarea ext4 sistem de fișiere. Întrebările sunt clare: Cum se face e4defrag -r și e4defrag -f.

Răspuns

e4defrag are nevoie ca sistemul de fișiere să fie montat deoarece solicită driverului sistemului de fișiere al nucleului să efectueze defragmentarea, nu nu o faceți singură.

În ceea ce privește defragmentarea spațiului liber și defragmentarea relevantă a fișierelor, patch-urile nu au fost niciodată finalizate; ultima mențiune din lista de corespondență relevantă datează din 2014 :

e4defrag se află în e2fsprogs, iar codul este în continuare menținut și îmbunătățit. Dmitry Monakhov a adăugat în special o mulțime de „teste de tortură” și a găsit o serie de condiții de rasă în codul nucleului de bază. Recent, el a trimis un refactor de cod al codului kernel care l-a îmbunătățit semnificativ și (a micșorat dimensiunea ext4 cu 550 de linii de cod).

Acestea fiind spuse, nu a existat nicio dezvoltare reală e4defrag într-un timp destul de îndelungat. Au existat discuții despre ce ar putea fi API-urile kernel pentru a sprijini această caracteristică, dar nu a existat niciodată o propunere API finalizată, darămite o implementare.

Așa că mă îndoiesc că există ceva care merită testat în prezent.

Comentarii

  • Există informații despre cea mai bună practică de defragare actuală (2020) pe ext4 – sau o recomandare de a nu folosi niciun instrument existent din cauza fiabilității? e4defrag --version spune e4defrag 1.45.5 (07-Jan-2020).
  • Situația nu s-a schimbat prea mult.A apărut un fir nu după mult timp după ce am scris răspunsul de mai sus, care include un rezumat al relevanței e4defrag la timpul. Este încă o parte complet acceptată a Ext4, dar nu este utilizabilă în toate cazurile (sistemele de fișiere cu bigalloc nu pot fi defraggate, jurnalizarea datelor este incompatibilă cu defragmentarea, iar inodurile DAX și fișierele criptate nu pot fi mutate).
  • Mulțumesc, Stephen. Înseamnă că comanda este sigură în sensul că va fi salvată înainte de o acțiune posibil dăunătoare, astfel încât să o pot folosi fără riscuri pentru datele mele? (Practic, tocmai am eliminat 750000 de fișiere și m-am întrebat dacă discul ar putea fi acum fragmentat (presupun că este) și dacă îl curăț sau lăsați.)
  • Ca orice operațiune a sistemului de fișiere, este potențial periculos, deci utilizați-l numai dacă aveți copii de rezervă (sau datele sunt de unică folosință). Cu toate acestea, comanda este sigură, din câte știu dezvoltatorii săi; dacă întâmpină situații, nu se poate descurca, se oprește în siguranță.
  • Noroc. Există încă 3 TB de date pe disc, fără backup. Voi aștepta până voi avea o zi în care mă simt suficient de îndrăzneț să încerc 🙂

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *