PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Il ritorno di XFS su Linux

Se stai utilizzando Linux, e in particolare se stai eseguendo un database su Linux, negli ultimi anni è stato difficile consigliare qualsiasi filesystem diverso dal vecchio ext3. Alcune delle alternative che sembravano interessanti a un certo punto - jfs, ReiserFS - sono completamente abbandonate a questo punto. Quello che è stato quasi fattibile per un po' di tempo è XFS, originariamente un progetto SGI. E questa settimana torna ad essere sotto i riflettori.

XFS aveva sofferto di una serie di problemi in passato. Dal momento che è stato progettato per hardware stabile, all'inizio non era così robusto sull'hardware standard per PC economico; un bel po' è stato ripulito solo due anni fa. Aveva questo strano problema con i file azzerati che spaventava alcune persone. È stato trattato come un cittadino di seconda classe nelle distribuzioni Linux orientate al business come RedHat, che richiedevano di compilare il proprio kernel; anche su CentOS meno restrittivo, è stato necessario eseguire alcuni passaggi di configurazione dall'aspetto strano per aggiungere il supporto XFS e il risultato è stato ovviamente non supportato. E poiché uno dei primi filesystem ad attivare e utilizzare in modo aggressivo le barriere di scrittura, le distribuzioni erano vulnerabili alle unità e ai controller che non svuotavano la cache quando veniva loro richiesto, un problema che non si riscontra più spesso sull'hardware moderno se si configura giusto (tranne per gli SSD, ma questa è un'altra storia).

Allora perché preoccuparsi? Bene, le prestazioni sono una delle ragioni principali. Mi sono ritrovato a lavorare di nuovo con XFS quando ho lavorato di recente con il software gratuito Single Node Edition di Greenplum. Greenplum mi ha detto chiaramente che non consigliavano nient'altro che XFS per installazioni ad alte prestazioni e, date le somiglianze sottostanti con la community PostgreSQL, ho ritenuto che valesse la pena indagare sul perché fosse ancora un po'.

Il tempismo si è rivelato perfetto. Una delle altre limitazioni di ext3 è che su hardware comune supporterà solo 16 TB di spazio di archiviazione. Dal momento che ora puoi mettere così tanto spazio di archiviazione in un rack di dischi di medie dimensioni, chiaramente non è abbastanza per i sistemi di fascia alta al giorno d'oggi, tanto meno tra qualche anno. Rendendosi conto di ciò, RedHat ha seriamente rianimato il supporto per XFS nella distribuzione di Linux. RHEL 5.4, rilasciato alcuni mesi fa, lo ha aggiunto di nuovo come modulo opzionale per alcuni clienti. Non era ancora possibile eseguire l'installazione su XFS e anche la versione CentOS non supportava le installazioni a 32 bit, ma stava chiaramente facendo di nuovo passi verso il mainstream.

Ieri è stata rilasciata la prima beta pubblica di RHEL6 e XFS è tornato ad essere proprio nel set di funzionalità principali. Si trova accanto a ext4 nell'elenco dei filesystem supportati, sottolineando in particolare la sua idoneità per installazioni di grandi dimensioni. Quindi ora posso dire alle persone che hanno il supporto XFS disponibile in una forma alquanto approssimativa in RHEL/CentOS 5.4, con l'aspettativa che sia un filesystem supportato di prima classe poiché i sistemi verranno aggiornati a RHEL6 e ai suoi derivati ​​in futuro, e ho qualche speranza che sarà affidabile.

Con il supporto per Linux aziendale e di conseguenza il lato della stabilità percepita del codice XFS finalmente di nuovo sotto controllo, che ne dici delle prestazioni? Bene, si scopre che Greenplum aveva ragione sul fatto che XFS valesse la pena di iniziare a funzionare. Ho preso il mio server di prova e ho riformattato una delle sue unità moderatamente veloci con tre diverse combinazioni di filesystem/montaggio: ext3 ordinato, ext3 journal e xfs. Dopo tre esecuzioni di bonnie++ 1.96 con ciascun filesystem, i risultati che ho visto si sono interrotti in questo modo:

  • ext3 ordinato: 39-58 MB/s in scrittura, 44-72 MB/s in lettura
  • Diario ext3: 25-30 MB/s in scrittura, 49-67 MB/s in lettura
  • xfs: 68-72 MB/s in scrittura, 72-77 MB/s in lettura

Mentre il migliore dei risultati di lettura di ext3 si avvicinava a livelli simili a quelli di cui era capace xfs, in media ha fatto molto meglio. E i risultati di scrittura erano almeno il 25% migliori in tutti i casi. Mi è piaciuto anche il throughput più stretto e prevedibile; le prestazioni incoerenti sono qualcosa con cui spesso combatto su ext3.

Normalmente non sono uno dei primi ad adottare le nuove versioni di Linux, ma la versione beta di RHEL6 con supporto XFS completo ha sostituito la nuova deludente versione di Ubuntu in cima alla mia lista di sistemi operativi da installare successivamente. Non capita spesso di vedere la tecnologia del filesystem avere una seconda possibilità di impressionare, ma XFS sembra aver fatto una transizione inaspettata per tornare di nuovo completamente rilevante, per ora. Non sono sicuro per quanto tempo sarà vero, con ext4 già disponibile e btrfs che si avvicinano alla qualità di produzione raggiungendo di recente un formato del disco stabile. Sarà interessante vedere come andrà a finire questa serie rinvigorita di scelte di filesystem su Linux.