Sun Solaris 10 ZFS mit atemberaubender Leistung

Das neue Sun ZFS schaffte einen vorher nie gesehenen Durchbruch in Sachen Leistung und Management bei Dateisystemen. Sämtliche HELIOS UB Produkte und Tools haben die Leistungs- und Zuverlässigkeitstests mit dem neuen Dateisystem Sun ZFS erfolgreich bestanden. Wichtige Aufgaben, wie beispielsweise das Arbeiten mit vielen kleinen Dateien oder das Neuindizieren der HELIOS Desktopdatenbank gehen viel schneller vonstatten als das mit dem Standard-UFS-Dateisystem der Fall wäre. Darüber hinaus bietet ZFS Funktionen hinsichtlich Plattenspeicher, Dateisystem und Zuverlässigkeit, die es in anderen Standard-Serverbetriebssystemen nicht gibt. Unsere Entwickler sind begeistert und wir glauben, dass die neuesten Optionen von Sun, wie AMD-CPUs, OpenSolaris auf mehreren Plattformen – und besonders das neue ZFS – Anwendern unübertroffene Leistungsvorteile bescheren.

Leistung von ZFS

Für diesen Testlauf (es werden 3 Millionen Dateien getestet) wird ein Verzeichnisbaum angelegt, neu aufgebaut und dann wieder entfernt. Detaillierte Testergebnisse können Sie hier sehen.

Aufgabe

ZFS [Min.]

UFS [Min.]

Vergleich ZFS:UFS

Anlegen

3,75

93,75

25x schneller

HELIOS Desktop neu aufbauen

25,30

116,75

4,6x schneller

Entfernen

16,75

217,30

13x schneller

 [Min.] = Minuten

ZFS-Funktionen
128-bit Dateisystem(e); praktisch keine Größenbegrenzung

  • Transaktionales Verhalten (wie „Journaling-Dateisystem“, Plattenspeicher ist immer konsistent)
  • Dynamisches Speichermanagement
    • erlaubt eine Vergrößerung von Dateisystemen
    • erlaubt das Hinzufügen von weiterem Plattenspeicher
    • erlaubt „Striping“ und „Mirroring“
    • erfordert kein Reservieren von Speicherplatz für ein dediziertes Dateisystem, z. B. können zwei Dateisysteme so lange vergrößert werden, bis der ZFS-Pool voll ist
  • Schnappschüsse von Dateisystemen
    • erlauben eine Datensicherung des „eingefrorenen“ Systems ohne Unterbrechung der Dienste
    • erlauben die Datensicherung von mehreren Schnappschüssen und ermöglicht so einen leichteren Zugriff auf ältere Dateien, z. B. je einen Schnappschuss um 10:00 Uhr, 12:00 Uhr, 14:00 Uhr., 16:00 Uhr usw.
    • erlauben das Kopieren eines ZFS-Schnappschusses (z. B. auf einen entfernten Plattenspeicher oder Server)
    • erlauben die Wiederherstellung des Dateisystems auf eine ältere Schnappschussversion
  • Auf einen geklonten Schnappschuss kann lesend und schreibend zugegriffen werden
  • Prüfsumme der Blöcke auf dem Plattenspeicher erkennt mögliche Datenfehler
  • Blöcke auf dem Plattenspeicher können komprimiert werden
  • Kompatibilität von ZFS-Festplatten zwischen verschiedenen Plattformen (SPARC / AMD)

ZFS-Systemanforderungen

  • Sun SPARC / x86 (wir empfehlen 64-bit!)
  • Solaris 10 (Ausgabe 11/06) oder neuer; frühere Versionen von Solaris 10 ZFS laufen nicht zuverlässig
  • 512 MB RAM (mehr Speicher bedeutet bessere Leistung!)
  • Beliebiges Plattenspeicher- oder RAID-System
  • HELIOS UB (Arch.: „sol4“ und „solx86“)
  • Achtung: Vor der Verwendung von ZFS mit Datenbankanwendungen, lesen Sie bitte erst TechInfo #106

Wo liegt der Leistungsvorteil von HELIOS Fileservern auf ZFS?

HELIOS Fileserver verwenden AFP 3 (EtherShare UB) für Mac-Dateien und SMB/CIFS (PCShare UB) für Windows-Dateien. Mac-Dateien bestehen aus einem Datenzweig und einem Ressourcenzweig, Windows-Dateien können Metadaten und Filestreams enthalten. Das heißt, dass jede Datei im Dateisystem aus mehreren Zweigen bestehen kann. Die HELIOS Fileserver profitieren davon, dass ZFS viele kleine Dateien um ein Vielfaches schneller verarbeiten kann als UFS.

ZFS Beispiele mit HELIOS

In diesem Beispiel wird eine komplette Festplatte („c0t3d0“) verwendet, später wird eine weitere Festplatte, „c0t4d0“, für den ZFS-Pool „testpool“ hinzugenommen. Für diesen Pool wird ein Container „myprojects“ angelegt, dessen Eigenschaften von „project1“ und „project2“ geerbt werden.
  1. Legen Sie einen ZFS-Pool an:
    Format: zpool create poolname storage*
    zpool create testpool c0t3d0
    * kann der Name eines Plattenspeichers (c0t3d0), der Partitionsname(c0td0s5) oder der Dateipfad(/data/bigfile)sein
  2. Legen Sie zwei Dateisysteme, „project1“ und „project2“, in diesem Pool an:
    Format: zfs create poolname / filesystemname
    Legen Sie zuerst eine Hierarchie für das Dateisystem fest, die als Container für die einzelnen Dateisysteme, die später angelegt werden, dient und setzen Sie die erforderlichen Eigenschaften:
    # zfs create testpool/myprojects
    # zfs set mountpoint=/export/myprojects testpool/myprojects


    Legen Sie dann Ihre individuellen Projekt-Dateisysteme an:
    # zfs create testpool/myprojects/project1
    # zfs create testpool/myprojects/project2


    Die beiden Dateisysteme „project1“ und „project2“ werden automatisch unter „/export/myprojects“ gemountet.

    Hinweis: HELIOS Volumes müssen mindestens eine Ebene unter dem Mountpoint des Dateisystems definiert werden!

    Beispiel: Für das Dateisystem „/export/myprojects/project1“ könnte  „/export/myprojects/project1/project1_volume“ als Mountpoint dienen, darf sich aber NICHT im Verzeichnis „project1“ selbst befinden. Dies liegt an der Art, wie ZFS seine Schnappschussinformationen von einem ZFS-Dateisystem speichert.

    Zusätzlicher Plattenspeicher kann wie folgt hinzugefügt werden:
    Format: zpool add poolname storage

    Einen weiteren Plattenspeicher hinzufügen „c0t4d0“:
    # zpool add testpool c0t4d0
  3. Fertigen Sie einen Schnappschuss des Dateisystems „project“ an:
    Format: zfs snapshot <poolname>/<filesystemname>@snapshotname
    # zfs snapshot testpool/myprojects/project1@snap
  4. Legen Sie ein geklontes Dateisystem des Schnappschusses mit Schreib- und Leserechten an:
    Format: zfs clone <poolname>/<filesystemname>@snapshotname <poolname>/<filesystemname>
    # zfs clone testpool/myprojects/project1@snap testpool/myprojects/clone_p1
    Der Klon von „project1“ ist unter „/export/myprojects/clone_p1“ verfügbar.
  5. Alle ZFS-Dateisysteme auflisten:
    # zfs list

    NAME

    USED

    AVAIL

    REFER

    MOUNTPOINT

    test/…/project1

    29.2M

    53.8G

    28.7M

    /exp/…/project1

    test/…/project2

    329.2M

    53.8G

    328.8M

    /exp/…/project2

    test/…/project1@snap

    505K

    28.7M

    test/…/clone_p1

    806K

    53.8G

    28.7M

    /exp/…/clone_p1


  6. Entfernen Sie den Klon sowie den Schnappschuss:
    Format: zfs destroy <poolname>/<filesystemname>
    ODER zfs destroy <poolname>/<filesystemname>@snapshotname
    # zfs destroy testpool/myprojects/clone_p1
    # zfs destroy testpool/myprojects/project1@snap
  7. Sichern Sie den Schnappschuss vom ZFS-Dateisystem in einer Datei auf dem Plattenspeicher:
    Format: zfs send <poolname>/<filesystemname>@<snapshotname> > filepath
    # zfs send testpool/myprojects/project1@snap > /backup/project1_snap.bkp
  8. Entfernte HTTP-basierte Verwaltung von ZFS:
    „https://hostname:6789/zfs“

I/O Statistiken abrufen

Mit dem Befehl zpool iostat lassen sich die I/O-Statistiken Ihres Pools anzeigen, mit der Option „-v“ auch getrennt für die einzelnen Plattenspeicher.

# zpool iostat -v

CAPACITY

OPERATION

BANDWITH

POOL

USED

AVAIL

READ

WRITE

READ

WRITE

testpool 21.6G 46.4G 11 25 875K 516K
c0t3d0 21.6G 46.4G 11 25 875K 516K
Mit dem Befehl fsstat <filesystem> lassen sich die I/O-Statistiken pro Dateisystem anzeigen.
# fsstat /export/myprojects/project1

NEW

NAME

NAME

ATTR

ATTR

LOOKUP

RDDIR

READ

READ

WRITE

WRITE

file remov chng get set ops ops ops bytes ops bytes
19.2M 12.3M 43 123M 14.0M 436M 2.63M 28.0M 12.1G 16.8M 15.6G

Getestete Anwendungen

HELIOS Produkte

EtherShare

Hochleistungsserver für Mac-Clients

PCShare

Hochleistungsserver für Windows-Clients

WebShare

Hochleistungsserver für sicheren und schnellen Zugriff auf entfernte Dateisysteme

ImageServer

Serverbasierte Bildverarbeitung und ICC-Farbmanagement

PDF HandShake  

Create PDF Server • PDF-Prüfung • PDF Drucken • PDF OPI

PrintPreview

Lokaler und entfernter Proof von PostScript 3- / PDF-Daten für Monitor und Drucker

Tools 

HELIOS File System Test  

Professionelles Tool zum Testen der Fileserver-Kompatibilität

HELIOS LanTest

Professionelles Tool zum Testen und Messen der Leistungsfähigkeit von AppleShare-Diensten

HELIOS „htar“

„tar“-kompatibles Archivierungsprogramm

HELIOS „dt“-Tools

Zum Arbeiten und Speichern von Client-Dateien auf einem UNIX-Server. Dabei wird gewährleistet, dass Mac-Ressourcen, Windows Filestreams und Metadaten unverändert erhalten bleiben

HELIOS „mkisofs“

HELIOS „winfstest“

„dd“-Leistungstest

Leistungstest

Konfiguration:

  • Sun Fire X4100 Server (zwei AMD CPUs, 4 GB RAM)
  • Zwei 70 GB Plattenspeicher (einer für das OS, der andere für das ZFS)
  • Solaris 10 (Ausgabe 11/06) mit allen installierten Patches (Stand: 15. Januar 2007) 
Anlegen:
Ein Verzeichnisbaum, der 111.000 Ordner umfasst, wird mittels Perl-Skript angelegt, wobei sich in keinem der Ordner mehr als 10 Unterordner befinden. Die Ordner auf der untersten Ebene enthalten jeweils 30 Dateien mit einer Größe von 512 Bytes.
Neuaufbau:
Für diesen Verzeichnisbaum wird mit dem Befehl rebuild -f eine Desktopdatenbank erstellt.
Entfernen:
Zum Entfernen des Verzeichnisbaums geben Sie den Befehl rm -r ein.
UFS:
UFS (UNIX File System) ist über viele Jahre das Standard-UNIX-Dateisystem von Solaris gewesen. Das neue Dateissystem von Solaris heißt ZFS (Zetabyte File System).

Anmerkungen:

ZFS kennt keine Quota für Benutzer und Gruppen, wohl aber für Dateisysteme. Da sich Dateisysteme auf Benutzer- oder Projektbasis sehr einfach einrichten lassen (mit Quota und anderen Eigenschaften), lassen sich Benutzer-Quota über diesen Mechanismus definieren.

HELIOS Programme zeigen den benutzten („Used“) und verfügbaren Speicherplatz („Available“) in ZFS-Dateisystemen korrekt an. In konventionellen Dateisystemen würden sich diese Werte zur Gesamtkapazität des Dateisystems („Capacity“) aufsummieren. Da ZFS-Dateisysteme in Pools organisiert werden, wird für die Gesamtkapazität ein anderer Wert angezeigt, selbst für ZFS-Dateisysteme im selben Pool.
Von einem Snapshot kann nicht direkt in ein HELIOS Volume kopiert werden. Erst muss der Snapshot geklont werden, was jedoch keinen zusätzlichen Speicherplatz erforderlich macht. Nachdem Sie ein HELIOS Volume als Klon-Volume definiert haben, können Sie es über AFP oder SMB mounten.
Im ZFS-Dateisystem wurden Tests mit bis zu 10 Millionen Dateien durchgeführt.
Die Tests wurden mit der HELIOS SQL-Desktopdatenbank durchgeführt.

Weitere Links zum Thema ZFS

ZFS-Dokumentation

Was ist ZFS?