Archiv für Januar 2019

Fileserver für Gluster & co.

Die bisherigen Fileserver basieren meist auf SAN und NFS: Die Server haben mehrere ZPools über SAN und reichen die enthaltenen ZFS per NFS und Samba wieder raus. Sowohl die Größe als auch die Geschwindigkeit könnte natürlich immer gerne grösser und besser sein. Aus diesem Grund wurden 4 Maschinen beschafft und auf diesen soll nun ein verteiltes Dateisystem.

Details zu den 4 Maschinen:

  1. Dell R730 mit 768GB RAM,6 x 8TB HDD, 2 x 120GB SSD, Perc H730P Mini
  2. Dell R740 mit 768GB RAM,6 x 8TB HDD, 2 x 240GB SSD, Perc H740P Mini
  3. 2 x Dell R740xd mit 768GB RAM,6 x 8TB HDD, 2 x 240GB SSD, Perc H740P Mini

Auf allen läuft ein Ubuntu 18.04.

Die SSD werden einzeln ans das Linux gegeben (nicht als Hardware-Raid) und dort unterteilt:

  • 500MB (/boot)
  • 30GB LVM mit 20GB root-fs (SW-Raid1 zwischen beiden SSDs)
  • Rest wird als SW-Raid0 genutzt

Für die HDDs wurden folgende Konfigurationen getestet:

  1. Hardware-Raid50 mit dem Perc und XFS
  2. Software-Raid50 (md) und XFS
  3. ZFS

Die SSD wurden auch als Cache verwenden. Bei XFS lag dazu ein LVM zwischen Raid und XFS.

Das HW-Raid brachte bei den Tests mit fio die besten Ergebnisse (Lesen(seq): 700-800MB/s; Schreiben(seq):  600-700MB/s). Zwischen den Maschinen gibt es teilw. große Unterschiede. Der Cache brachte nichts. der Cache war mit teilw. nur 400MB/s (Lesen) einfach zu langsam. Da der RAM größer als der SSD-Cache ist, ist der fehlende SSD-Cache in dieser Konfiguration zu verschmerzen.

Die Maschinen erhielten die Namen „dfs[1-4]“ (Distributed Filesystem).Auf allen Maschinen wurde dann die Pakete

  • glusterfs-server
  • glusterfs-client

installiert. Ein „glusterfs peer probe dfs2; glusterfs peer probe dfs3; glusterfs peer probe dfs4“ auf dfs1 und schon waren alle verbunden. Auf dfs wurde dann ein FS angelegt, gestartet und gemountet:

  1. gluster volume create distributed dfs1:/home/tmp/glusterfs/brick/ dfs2:/home/tmp/glusterfs/brick/ dfs3:/home/tmp/glusterfs/brick/ dfs4:/home/tmp/glusterfs/brick/
  2. gluster volume start distributed
  3. root@dfs1> mount -t glusterfs dfs1:distributed /mnt

Ein Test mit fio lieferte folgendes Ergebnis:

  • Seq-Read: ~200MB/s
  • Rand-Read: ~300MB/s
  • Seq-Write: ~125MB/s
  • Rand-Write: ~317MB/s

Das Rand-Read besser ist, liegt vermutlich daran, dass durch das Seq-Rand die Daten bei der Quell-Maschine schon im RAM lagen und beim darauf folgendem Rand-Read schneller ausgeliefert werden konnten. Für die Unterschiede beim Schreiben habe ich noch keine Erklärung.

Die Test müssen auch nochmal in systematische Form durchgeführt werden (inkl. Wiederholungen). Es bleibt also spannend…

 

 

10. Januar 2019 | Veröffentlicht von Robert Sombrutzki | Kein Kommentar »
Veröffentlicht unter Allgemein