sql >> Database >  >> RDS >> PostgreSQL

De terugkeer van XFS op Linux

Als je Linux gebruikt, en vooral als je een database op Linux gebruikt, was het de afgelopen jaren moeilijk om een ​​ander bestandssysteem aan te bevelen dan gewoon oud ext3. Sommige van de alternatieven die er op een gegeven moment interessant uitzagen - jfs, ReiserFS - zijn op dit moment volledig verlaten. Degene die al een tijdje bijna levensvatbaar is, is XFS, oorspronkelijk een SGI-project. En deze week staat hij weer in de schijnwerpers.

XFS had in het verleden te kampen met een aantal problemen. Omdat het was ontworpen voor stabiele hardware, was het aanvankelijk niet zo robuust op standaard goedkope pc-hardware; nogal wat daarvan is net twee jaar geleden opgeruimd. Het had een vreemd probleem met op nul gezet bestanden dat sommige mensen afschrikte. Het werd behandeld als een tweederangs burger in zakelijk georiënteerde Linux-distributies zoals RedHat, waarbij je je eigen kernel moest compileren; zelfs op de minder beperkende CentOS moest je een aantal vreemd uitziende installatiestappen uitvoeren om XFS-ondersteuning toe te voegen, en het resultaat was duidelijk niet ondersteund. En als een van de eerste bestandssystemen die schrijfbarrières inschakelden en agressief gebruikten, waren implementaties kwetsbaar voor schijven en controllers die hun caches niet leegmaakten wanneer dit werd gevraagd, een probleem dat je niet zo vaak aantreft op moderne hardware als je configureert klopt (behalve SSD's, maar dat is een ander verhaal).

Dus waarom moeite doen? Welnu, prestaties zijn een belangrijke reden. Ik merkte dat ik weer met XFS werkte toen ik onlangs met de gratis Single Node Edition-software van Greenplum werkte. Greenplum vertelde me ronduit dat ze niets anders dan XFS aanraadden voor krachtige installaties, en gezien de onderliggende overeenkomsten met community PostgreSQL vond ik dat het de moeite waard was om te onderzoeken waarom dat wat meer was.

De timing daarvoor bleek perfect te zijn. Een van de andere beperkingen van ext3 is dat het op gewone hardware slechts 16 TB aan opslagruimte ondersteunt. Aangezien je nu zoveel opslagruimte in een medium disk rack kunt stoppen, is dat tegenwoordig duidelijk niet genoeg voor high-end systemen, laat staan ​​over een paar jaar. RedHat realiseerde zich dat en heeft hun ondersteuning voor XFS serieus nieuw leven ingeblazen in hun distributie van Linux. RHEL 5.4, een paar maanden geleden uitgebracht, heeft het voor sommige klanten weer toegevoegd als optionele module. Je kon nog steeds niet installeren op XFS, en zelfs de CentOS-versie ondersteunde geen 32-bits installaties, maar het maakte duidelijk weer stappen richting mainstream.

Gisteren is de eerste openbare bèta van RHEL6 uitgebracht en XFS is weer terug in de belangrijkste functieset. Het staat naast ext4 op de lijst met ondersteunde bestandssystemen, wat vooral aangeeft dat het geschikt is voor grote installaties. Dus ik kan mensen nu vertellen dat ze XFS-ondersteuning beschikbaar hebben in enigszins ruwe vorm in RHEL/CentOS 5.4, met de verwachting dat het een eersteklas ondersteund bestandssysteem is, aangezien systemen in de toekomst worden geüpgraded naar RHEL6 en zijn derivaten, en ik heb enige hoop dat betrouwbaar zal zijn.

Met de enterprise Linux-ondersteuning en daarmee de waargenomen stabiliteitskant van de XFS-code eindelijk weer onder controle, hoe zit het met de prestaties? Welnu, het blijkt dat Greenplum gelijk had dat XFS de moeite waard was om aan de slag te gaan. Ik nam mijn testserver en formatteerde een van de redelijk snelle schijven opnieuw met drie verschillende bestandssysteem/mount-combinaties:ext3 besteld, ext3 journal en xfs. Na drie bonnie++ 1.96 runs met elk bestandssysteem, waren de resultaten die ik zag als volgt verdeeld:

  • ext3 besteld:  39-58 MB/s schrijven, 44-72 MB/s lezen
  • ext3-journaal:  25-30 MB/s schrijven, 49-67 MB/s lezen
  • xfs:  68-72 MB/s schrijven, 72-77 MB/s lezen

Hoewel de beste van de ext3-leesresultaten vergelijkbare niveaus benaderden als waar xfs toe in staat was, deed het gemiddeld veel beter. En de schrijfresultaten waren in alle gevallen minstens 25% beter. Ik hield ook van de strakkere, meer voorspelbare doorvoer; inconsistente prestaties is iets waar ik vaak mee worstel op ext3.

Normaal gesproken ben ik geen early adopter van nieuwe Linux-releases, maar de RHEL6-bèta met volledige XFS-ondersteuning heeft de grondig teleurstellende nieuwe Ubuntu-release vervangen die bovenaan mijn lijst met besturingssystemen staat die als volgende moeten worden geïnstalleerd. Het komt niet vaak voor dat bestandssysteemtechnologie een tweede kans krijgt om indruk te maken, maar XFS lijkt een onverwachte overgang terug te hebben gemaakt naar volledig relevant, voor nu. Ik weet niet zeker hoe lang dat waar zal zijn, aangezien zowel ext4 al beschikbaar is als btrfs dichter bij de productiekwaliteit komt door onlangs een stabiel schijfformaat te bereiken. Het zal interessant zijn om te zien hoe deze vernieuwde reeks bestandssysteemkeuzes op Linux zich uitpakt.


  1. PostgreSQL Split-Brain elimineren in multi-clouddatabases

  2. Null-waarden sorteren na alle andere, behalve speciaal

  3. Databasefailover voor WordPress-websites

  4. SQL Server-databasereplicatie