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.
-
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
-
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
-
Fertigen Sie einen Schnappschuss des Dateisystems „project“ an:
Format: zfs snapshot <poolname>/<filesystemname>@snapshotname
# zfs snapshot testpool/myprojects/project1@snap
-
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.
-
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
|
-
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
-
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
-
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?