Hardware: la parte di un computer che puoi prendere a calci

— Jeff Pesis

Rispondi al commento

Filesystem delle mie brame, chi è il più ...

http://www.stenoweb.it/files/blog/hd2.jpg Alt! Chi pensa ad un articolo autorevole sul miglior filesystem del terzo pianeta del sistema solare sappia che qualunque cosa leggeranno qui potrà essere usata contro di loro. Non si scherza con le partizioni :). Ritornando un po' seri diciamo che esistono un miliardino di articoli che dicono bla bla sul miglior modo di formattare i nostri dischi, e solo su due cose sono tutti d'accordo: NTFS è forse il peggiore di tutti e che … ”DIPENDE”.

Dipende ? Dal tempo ?

Ecco, se c'è una cosa che mi fa incazzare è proprio una risposta/nonrisposta come questa. Ma mi fa incazzare non perché sia sbagliata ma per l'esatto contrario. E' giustissima. Nel fantastiliardo di test che trovate in giro per la rete trovate vincitori diversi che dipendono dal modo in cui si son fatti i test. File grandi, file piccoli, ACL, non ACL, frammentazione, non frammentazione, server, desktop ecc...

Restringiamo il campo

Per fortuna nel mio caso posso restringere agevolmente il campo: la mia indagine riguarda, come oramai da tradizione Small Business, un bel Server Samba con ACL Posix abilitate. Il secondo punto non è da poco: l'abilitazione degli attribuiti estesi, straconsigliato in un file server, fa decisamente pendere il piatto della bilancia lontano da ext3. Ma andiamo con ordine.

Niente esperimenti

Se vi capita di installare Windows Server non avete dubbi amletici: NTFS o ciccia. Ma fatemi spendere due parole su di lui: non sono d'accordo sul fatto che sia il peggior filesystem possibile, è il classico compromesso “adatto a tutte le stagioni”, quindi non può eccellere in nessun campo. Anche se trovo scandaloso il modo in cui si frammenta. Ok, è pure vecchiotto ma dall'altro lato è strarodato, affidabile, ha una ottima gestione granulare dei permessi utente, e, se deframmentato con regolarità, pure buone performance.
Ma noi dobbiamo usare Linux, quindi NTFS non ci viene nemmeno per idea in testa. Ma che stavo dicendo ? A si, niente esperimenti, quindi, sorry, non me ne voglia nessuno ma “nada” ext4, BTRFS e RaiserFS del defunto (anzi, della defunta moglie) Hans.

XFS & JFS

Attenzione! Arriva il momento critico. Mi sono strappato i capelli nel tentativo di capire quale tra XFS o JFS facesse al caso mio. Qualcuno potrebbe pensare che abbia prematuramente scartato il plurirodato affidabile e supportato ext3.
Ext3 funziona benissimo, ma, facendo un parallelo blasfemo con NTFS, è “per tutte le stagioni” e inoltre, abilitando le ACL, viene immediatamente scartato dal gioco. Occhio alla tabellina:

http://www.stenoweb.it/files/blog/fsacl.jpg

Potete vedere le performance in microsecondi di accesso ad un file con e senza ACL abilitate. RaiserFS lo avevamo già scartato, ma attenzione: curiosamente il peggiore risulta essere “XFS-256”. Che significa?
“256” è la dimensione dell' inode, e, con una dimensione di 256 bytes, XFS si comporta come EXT3 (anzi, decisamente peggio), memorizzando le informazioni ACL dei permessi sul file esternamente, in un altro posto del disco insomma. Questo fa aumentare considerevolmente i tempi in quanto ci vogliono più accessi al disco per reperire tutte le informazioni. Con un inode di 512 bytes (XFS-512 nella tabella), le informazioni vengono memorizzate, come per JFS, direttamente sullo stesso, allineando di fatto le prestazioni con/senza ACL.
La cosa buffa è che XFS-256 è il default per questo filesystem. Se non viene specificato “512” in fase di creazione otteniamo quindi il peggior risultato possibile. Questa informazione dovrebbe essere messa in maggior risalto.

JFS

Allora scegliamo JFS! No. Anche se una menzione al merito la ottiene di sicuro. E' il filesystem ufficiale di IBM, ma lo sviluppo della versione per Linux non è molto supportata. Il progetto è abbastanza fermo e non si trovano molte persone che lo usano con Linux. Ma questo non toglie nulla alla sua bontà, e io l'ho usato in altri ambiti.
Quali ambiti? Se vi dico che ha il minor impatto sulla CPU e si comporta in modo eccellente con file di grosse dimensioni voi a cosa pensate?
Esatto! (o no?). E' il mio preferito per formattare la partizione con le VM di, ad esempio, Vmware server. File grossi e poco carico CPU. A parte un Lucano, cosa vogliamo di più ?

XFS

Si, ho scelto lui, ma nel mio caso nella variante XFS-512 ovviamente. XFS è molto ben supportato, solido, con ottimi tools di gestione e si comporta egregiamente in diversi ambiti. In casi specifici non è il migliore, ma nel caso di un server è indubbiamente il miglior compromesso.

Formattiamo

Supponendo che la mia partizione sia /dev/sdb1, ecco il comando:

mkfs -t xfs -f /dev/sdb1 -i size=512 -l size=128m

Notare la dimensione inode a 512 bytes e logsize a 128. Cercate su internet info su quest'ultimo, oppure fidatevi;).

Montiamo

Altra cosina da sistemare son i parametri di mount. Editiamo dunque /etc/fstab e mettiamo questo:

/dev/sdb1 /home xfs noatime,nodiratime,logbufs=8 0

Nel mio caso ho montato la partizione XFS come “home” e, al posto di default, ho specificato in particolare i due parametri noatime e nodiratime.
Questo evita che venga scritta, DURANTE LA LETTURA, la data di creazione/modifica dei files (noatime) o delle directory (nodiratime), cosa che ritengo inutile visto che stiamo appunto leggendo. Non c'è da preoccuparsi, nelle operazioni di scrittura ovviamente questo sarà fatto.

Manutenzione & utilities

Un po' di manutenzione va fatta, anche se XFS cerca di mantenere il più organizzato possibile il disco. A differenza di ext3 che non ha tool “ufficiali” per deframmentare, qui abbiamo una apposita utility per mantenerlo e amministrarlo: xfsdump.
Con esso possiamo controllare il livello di frammentazione ed eventualmente sistemare il disco senza doverlo smontare. Eccellente direi.

Per controllare:

xfs_db -r /dev/sdb1

al prompt “xfs_db> “ digitare:
frag
quit

Se il livello di frammentazione è elevato possiamo procedere alla deframmentazione:
xfs_fsr -v /dev/sdb1

Per finire una carrellata di comandi da approfondire:

  • xfs_check Per controllare se ci sono eventuali errori sul disco
  • xfs_growfs Per espandere la partizione
  • xfs_copy Per clonare il disco
  • xfs_repair Per riparare la partizione

RICORDATE ! Ogni cosa scritta su questo articolo potrebbe essere usata contro di voi!

Bye.

Rispondi

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.