Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:user:ruiin

Hi, um mich einmal vorzustellen:

  • Ich bin von '91
  • Noch Schüler mit den Schwerpunkten Kunst und Chemie
  • zur Unix-Welt bin ich über Ubuntu-Linux gekommen (Erst als Desktop, dann als Server)
  • Inzwischen betreibe ich einen Home/Daten-Server mit FreeBSD und ZFS
  • Mein Desktop ist ein Mac (Macbook Air 2010), klein, leicht, gute Qualität, viel Akku und am wichtigsten Unix.
  • Mein letzter und erfolgreichster Kontakt zu Programmiersprachen war Python, nutze ich eher zum scripten, richtig programmiert habe ich aus mangel einer zu lösenden Aufgabe eigentlich nie richtig.
  • Hobbys: Fotografieren, Podcasts hören (Pritlove&so), Basteln, kreativ werden (Kochen, Schreiben, Kunst % Co)
Benutze OS:
FreeBSDMacOS

Twitter: @Ruiin


ZFS

ZFS ist eine neuartiges Dateisystem der Firma Sun Microsystems, nähere Informationen zur Entwicklung und Funktionsweise kann man der Wikipedia entnehmen. Es kombiniert vor allem verschiedene Funktionsweisen in kurze Kommandos, was die Handhabung vieler Platten mit RAID-Funktionalität sehr einfach macht. Die Handhabung unterscheidet sich merklich von althergebrachten Filesystems. FreeBSD 8.2 unterstützt momentan ZFS Version 15.

ZFS benötigt in allen seinen Kommandos root-Rechte. Es ist daher ratsam mit der root-shell zu arbeiten.

Vokabular

Um das Verständnis zu erleichtern verwendet dieser Artikel ein Standartvokabular:

  • Pools sind Zusammenschlüsse von Festplatten. Sie sind die Basis jedes ZFS und müssen als erstes mit zpool create erstellt werden. Erfordert eine Syntax einen Poolnamen wird das mit [Pool] angezeigt.
  • Dataset ist die Verallgemeinerung für: Snapshots, Filesystems, Clones und Volumes. Erscheint in einem angegebenen Befehl [Dataset] kann man den Befehl für alle vier Arten verwenden.
  • Snapshots sind Abbilder eines Dateisystems. Sie dienen der Datensicherung, legt man einen Snapshot an so wird das ganze benannte Filesystem in seinem Moment-zustand festgehalten. Dabei verbraucht ein ZFS-Snapshot erst einmal keinen weiteren Speicherplatz, da der Ist-Zustand auf den Festplatten nicht angetastet wird. Erst wenn Daten verändert werden, werden diese Veränderungen separat abgespeichert und verbrauchen weiteren Speicherplatz. Ein Snapshot bleibt so immer unverändert. Einen Snapshot kann man nicht beschreiben, man hat nur Lesezugriff. Mit dem Befehl zfs rollback führt man ein Filesystem wieder zu seinem Stand zum Zeitpunkt des Snapshots zurück. Ein ZFS-Snapshot wird immer mit einem @ eingeleitet, daher die Variable [@Snapshot].
  • Volumes sind Datasets die für das System aussehen wie Blockdevices. Daraus folgt das man dieses Volume mit jedem anderen Filesystem wie UFS bespielen kann. Das aufsitzende UFS profitiert dabei von den Vorzügen des ZFS, wie Checksummen oder RaidZ. Und auch Volumes haben, wie man sich denken könnte, die Variable [Volume].

Installation

zpool

Zpool ist eines der beiden Kommandozeilentools für ZFS. Es verwaltet primär die Pools, also die Zusammenschlüsse der Festplatten, und deren Konfiguration, wie ein RaidZ.

create, oder "So erstelle ich einen Pool"

Mit zpool create erstellt man seine Pools. Ein Pool kann aus Festplatten, Partitionen oder Files bestehen. Fügt einen Pool ohne eine Option zusammen wird ZFS die Daten schreiben und lesen wie ein RAID-Level 0 es macht, Stichwort Striping. Dadurch erhöht sich die Lese- und Schreibrate, da das System die Last auf alle beteiligten Platten verteilt. Der Nachteil an dieser Methode: Wenn eine Platte ausfällt sind alle Daten verloren. Abhilfe schafft da der mirror-Modus und das RaidZ. Mirror bedeutet das der Datenbestand auf allen beteiligten Platten gespiegelt wird. RaidZ ist vergleichbar mit dem RAID-Level 5, es kann eine Platte von mindestens 3 Platten ausfallen ohne Datenverlust. Neben RaidZ gibt es noch RaidZ2, vergleichbar mit RAID-Level 6, und RaidZ2 (Ab Version 17), bei dem bis zu 3 Platten ausfallen können.

Syntax

# zpool create [Pool] [Modus] [Device1] [Device2] [DeviceX]

Für [Pool] gilt:

  • erstes Zeichen muss ein Buchstabe (a-z,A-Z) sein. Folgende Zeichenfolgen sind reserviert: log, mirror, raidz, raidz1, raidz2, raidz3, spare und „c“ gefolgt von einer Nummer 0 bis 9.

Für [Modus] gibt es die Optionen

  • Leer lassen! (RAID 0)
  • mirror (RAID 1) – Spiegelung des Inhalts
  • raidz (RAID 5) – Eine Platte kann ausfallen ohne Datenverlust.
  • raidz2 (RAID 6) – Zwei Platten können ausfallen ohne Datenverlust.
  • raidz3 – Drei Platten können ausfallen ohne Datenverlust. (Ab Version 17)

Devices gruppieren

Mit ZFS kann man in einem Pool mehrere Devices gruppieren, wie in diesem Beispiel:

#zpool create testpool raidz /zfst/disk5 /zfst/disk0 /zfst/disk1 raidz /zfst/disk2 /zfst/disk3 /zfst/disk4
#zpool status testpool
  pool: testpool
 state: ONLINE
 scrub: none requested
config:

	NAME             STATE     READ WRITE CKSUM
	testpool         ONLINE       0     0     0
	  raidz1         ONLINE       0     0     0
	    /zfst/disk5  ONLINE       0     0     0
	    /zfst/disk0  ONLINE       0     0     0
	    /zfst/disk1  ONLINE       0     0     0
	  raidz1         ONLINE       0     0     0
	    /zfst/disk2  ONLINE       0     0     0
	    /zfst/disk3  ONLINE       0     0     0
	    /zfst/disk4  ONLINE       0     0     0

Dabei leitet jedes [Modus] eine Reihe von Devices ein die mit der darauf folgenden Reihe von Devices gestriped wird, also in ein RAID-0 gestellt wird.

Eine einfache Möglichkeit ZFS zu testen ist mit mkfile -nv [Größe] [Ort/Name] ein paar Datein zu erstellen die man mit ZFS zu seinem ersten Pool zusammenfügt.
wiki/user/ruiin.txt · Zuletzt geändert: 2011/08/23 15:45 von ruiin