In diesem Abschnitt finden Sie eine Beschreibung der neuen ZFS-Leistungsmerkmale in Developer 1/08.
Verwendung von Cache-Speicher im ZFS-Speicherpool – In dieser Solaris-Version können Sie Pool- und Cache-Geräte definieren, die zum Speichern von Speicherpooldaten in einem Cache-Speicher dienen.
Cache-Speicher·bietet zwischen Hauptspeicher und Festplatte eine zusätzliche Schicht zur Datenspeicherung. Die Verwendung von Cache-Speicher bietet für die Speicherung meist statischer Daten mithilfe von wahlfreiem Zugriff die größte Leistungsverbesserung.
Beim Erstellen eines Speicherpools können eines oder meherer Cache-Speichergeräte angegeben werden. Beispiel:
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors |
Nach dem Erstellen von Cache-Speichergeräten werden diese nach und nach mit Daten aus dem Hauptspeicher gefüllt. Je nach Größe eines definierten Cache-Speichergeräts kann es bis zu über eine Stunde lang dauern, bis es voll ist. Die Kapazität und Lesevorgänge können mithilfe des Befehls zpool iostat wie folgt überwacht werden:
# zpool iostat -v pool 5 |
Nach der Erstellung eines Pools können zu ihm Cache-Speichergeräte hinzugefügt und wieder entfernt werden.
Weitere Informationen finden Sie auf der Manpage zpool(1M) und im ZFS Administration Guide .
Erweiterungen des Befehls „zfs send“ – In dieser Version wurde der Befehl zfs send wie folgt erweitert.
Senden aller inkrementellen Streams von einem Snapshot zu einem kumulativen Snapshot. Beispiel:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo |
Alle inkrementellen Snapshots zwischen fs@snapA und fs@snapD werden nach fs@combo gesendet.
Senden eines inkrementellen Streams vom ursprünglichen Snapshot, um einen Klon zu erstellen. Der ursprüngliche Snapshot muss auf der Empfangsseite bereits vorhanden sein, damit der inkrementelle Stream angenomme werden kann. Beispiel:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I |
Senden eines Replikationsstreams aller abhängigen Dateisysteme zu den benannten Snapshots. Nach dem Empfang werden alle Eigenschaften, Snapshots, abhängigen Dateisysteme und Klone beibehalten. Beispiel:
zfs send -R pool/fs@snap > snaps/fs-R |
Ein ausführliches Beispiel finden Sie unter Senden und Empfangen komplexer ZFS-Snapshotstreams im ZFS-Administrationshandbuch.
Senden eines inkrementellen Replikationsstreams.
zfs send -R -[iI] @snapA pool/fs@snapD |
Ein ausführliches Beispiel finden Sie unter Senden und Empfangen komplexer ZFS-Snapshotstreams im ZFS-Administrationshandbuch.
Weitere Informationen finden Sie unter Sichern und Wiederherstellen von ZFS-Daten im ZFS Administration Guide .
ZFS-Quoten und -Reservierungen nur für Dateisystemdaten – Zusätzlich zu den vorhandenen ZFS-Funktionen für Quoten und Reservierungen enthält diese Version in der Speicherplatzanzeige auch Dataset-Quoten und -Reservierungen ohne abhängige Entitäten wie z. B. Snapshots oder Klone.
Die Eigenschaft refquota beschränkt den Speicherplatz, den ein Dataset belegen kann. Sie erzwingt einen absoluten Grenzwert des belegbaren Speicherplatzes. Dieser absolute Grenzwert berücksichtigt jedoch nicht den von abhängigen Entitäten wie z. Snapshots oder Klonen belegten Speicherplatz.
Die Eigenschaft refreservation legt den für einen Dataset minimal garantierten Speicherplatz (ohne Speicherplatz für abhängige Entitäten) fest.
So können Sie beispielsweise in refquota für studentA einen Wert von 10 GB festlegen, der für den von diesem Benutzer belegten Speicherplatz einen absoluten Grenzwert von 10 GB festlegt. Zum Erreichen einer zusätzlichen Flexibilität können Sie ein 20 GB-Quotum einstellen, mit dessen Hilfe Sie die Snapshots von studentA verwalten können.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA |
Weitere Informationen finden Sie unter ZFS-Quoten und Reservierungen im ZFS-Administrationshandbuch.
ZFS-Dateisystemeigenschaften für den Solaris-Dienst CIFS – Diese Version unterstützt den Solaris-Dienst TM Common Internet File System (CIFS). Mithilfe dieses Dienstes können Dateien zwischen den Betriebssystemen Solaris, Windows und MacOS ausgetauscht werden.
Zur Erleichterung des Dateiaustausches zwischen diesen Betriebssystemen mithilfe des Solaris-Dienstes CFIS gibt es die folgenden neuen ZFS-Eigenschaften:
Erkennung von Groß- und Kleinschreibung (casesensitivity)
nicht blockierende obligatorische Sperren (nbmand)
Unterstützung für SMB-Share (sharesmb)
Untersützung von Unicode-Normalisierung (normalization)
Unterstützung für den Zeichensatz UTF-8 (utf8only)
Neben den neuen ZFS-Eigenschaften zur Unterstützung des Solaris-Dienstes CIFS gibt es jetzt die Eigenschaft vscan zum Absuchen von ZFS-Dateien, wenn auf Ihrem System ein Antivirusprogramm eines Drittanbieters installiert ist.
Weitere Informationen zur Verwendung dieser Eigenschaften finden Sie unter Verwalten von ZFS-Eigenschaften im ZFS-Administrationshandbuch.
Weitere Informationen zum Solaris-Dienst CIFS finden Sie im Solaris CIFS Administration Guide .
Eigenschaften von ZFS-Speicherpools – Diese Version enthält Informationen zu Eigenschaften von ZFS-Speicherpools. Beispiel:
# zpool get all users NAME PROPERTY VALUE SOURCE users size 16.8G - users used 217M - users available 16.5G - users capacity 1% - users altroot - default users health ONLINE - users guid 11063207170669925585 - users version 8 default users bootfs - default users delegation on default users autoreplace off default users temporary on local |
Eigenschaft cachefile – Diese Version enthält die neue Eigenschaft cachefile die festlegt, wo Informationen zur Poolkonfiguration im Cache-Speicher abgelegt werden. Alle Pools im Cache werden beim Booten des Systems automatisch importiert. Es kann jedoch sein, dass Installations- und Cluster-Umgebungen diese Informationen an verschiedenen Stellen im Cache-Speicher ablegen müssen, sodass Pools nicht automatisch importiert werden.
Sie können diese Eigenschaft so einstellen, dass Poolkonfigurationen an einer anderen Stelle im Cache-Speicher abgelegt werden und später mithilfe des Befehls zpool import c importiert werden können. Für die meisten ZFS-Konfigurationen wird diese Eigenschaft nicht verwendet.
Die Eigenschaft cachefile ist nicht beständig und wird nicht auf Festplatte gespeichert. Diese Eigenschaft löst die Eigenschaft temporary ab, die in früheren Solaris-Versionen anzeigte, dass Poolinformationen nicht im Cache gespeichert werden sollten.
Eigenschaft failmode property – Diese Version enthält die Eigenschaft failmode, mit der festgelegt wird, wie sich das System im Falle eines äußerst schwerwiegenden·Poolausfalls aufgrund von Unterbrechungen in der Gerätekonnektivität bzw. dem gleichzeitigen Ausfall aller Speichergeräte im Pool verhalten soll. Die Eigenschaft failmode kann auf die Werte wait, continue oder panic gesetzt werden. Der Standardwert ist wait. Dies bedeutet, dass Sie das ausgefallene Gerät neu in das Pool integrieren oder auswechseln und den Fehler danach mit dem Befehl zpool clear löschen müssen.
Die Eigenschaft failmode wird wie andere einstellbare ZFS-Eigenschaften auch gesetzt. Dies kann vor oder nach dem Erstellen eines Pools geschehen. Beispiel:
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local |
# zpool create -o failmode=continue |
Eine Beschreibung aller Eigenschaften von ZFS-Speicherpools finden Sie unter Verwalten von ZFS-Eigenschaften im ZFS-Administrationshandbuch.
Einhängepunkte für die Datenspiegelung in ZFS und Dateisystemen – Diese Solaris-Version enthält Erweiterungen für NFSv4-Einhängepunkte, damit der Zugriff auf ZFS-Dateisysteme für NFS-Clients problemloser vonstatten geht.
Bei der Erstellung von Dateisystemen auf einem NFS-Server kann der NFS-Client diese neu erstellten Dateisysteme innerhalb ihres vorhandenen Einhängepunktes im übergeordneten Dateisystem automatisch erkennen.
Wenn der Server neo beispielsweise bereits das Dateisystem tank freigegeben hat und dieses von Client zee eingehängt wurde, ist das Verzeichnis /tank/baz nach dessen Erstellung auf dem Server für den Client automatisch sichtbar.
zee# mount neo:/tank /mnt zee# ls /mnt baa bar neo# zfs create tank/baz zee% ls /mnt baa bar baz zee% ls /mnt/baz file1 file2 |
Informationen zu verwandten ZFS-Leistungsmerkmalen finden Sie in den folgenden Abschnitten über Neuerungen.