Archiv

Archiv für die Kategorie ‘Solaris’

ZFS auf Partitionen/Slices oder der ganzen Disk?

5. Mai 2009

Beim Anlegen von ZFS-Speicherpools stellt sich die Frage, ob man ZPOOL die gesamte(n) Disk(s) verwalten lässt (durch Angabe von z.B. c0t0d1 unter Solaris oder /dev/sdb unter Linux) oder den Pool aus einzelnen Partitionen aufbaut (ggf. mit ZFS als einziger Partition auf der Platte).
In letzterem Fall stellt sich außerdem die Frage, welchen Typ von Partitionstabelle man verwenden soll (MBR/DOS-Partitionstabelle, GUID Partition Table (GPT)/EFI Disklabel oder Solaris VTOC).

Insbesondere die zweite Frage ist dann von Bedeutung, wenn man den ZFS-Pool unter verschiedenen Betriebssystemen (z.B. Solaris, Linux und Mac OS X) verwenden möchte.

Diesen beiden Fragen möchte ich im Folgenden versuchen, auf den Grund zu gehen.

  • Generell wird empfohlen, die Disks jeweils komplett für ZFS zu verwenden (d.h. man übergibt ZFS entweder das „RAW-Device” oder weist dem ZFS eine Partition zu, die sich über die gesamte Festplatte erstreckt).
  • Lässt man zpool das gesamte Gerät verwalten, legt ZFS dort ein GPT-Disklabel an (siehe auch meinen Kommentar)
    (Allerdings entspricht dieses wohl nicht ganz dem, was z.B. Linux erwartet; siehe hier bzw. hier)
  • Bei großen Festplatten scheiden DOS-Partitionstabellen und Solaris VTOCs aus:
    • DOS-Partitionstabellen erlauben Partitionen von max. 2 TB Größe
    • Solaris VTOCs unterstützen Festplatten von max. 1 TB Größe

Zu dem Thema habe ich im Folgenden noch etwas „Belegmaterial” zusammengestellt:

Mehr…

Linux, Mac OS X, Solaris , , , , , , ,

DTrace und ZFS: Automatische Snapshots beim Löschen von Dateien

1. Mai 2009

Chris Gerhard hat DTrace und ZFS-Snapshots so verbunden, dass bei jedem Unlink-Vorgang (für nicht UNIXer: Datei löschen) ein Snapshot erstellt wird.

Das passende Skript gibt es im Artikel „snapshot on unlink?” in seinem Blog auf blogs.sun.com zu sehen.

Wie er selbst schreibt, ist das Skript nicht für den ständigen Produktiveinsatz gedacht, aber es zeigt gut, was alles möglich ist.

Computer, Solaris , , , , , ,

Eine Datei (z.B. Thumbs.db) unter GNU/Linux/UNIX in allen Unterverzeichnissen löschen

8. April 2009

Der folgende Befehl durchkämmt unter Linux/UNIX das Verzeichnis /home/user rekursiv und löscht alle vorkommenden Dateien mit dem Namen Thumbs.db:

find /home/user -name Thumbs.db -exec rm -f {} \;

Achtung! Vorher wird der Benutzer nicht zu einer Bestätigung aufgefordert (wegen des -f im rm-Befehl)!

Allgemeines, Computer, Linux, Solaris , ,

ZFS-Unterstützung für Ubuntu GNU/Linux

27. März 2009

Da ich mich nach wie vor nur schlecht für ein bestimmtes Betriebssystem entscheiden kann, habe ich beschlossen, mich wenigstens auf ein Dateisystem festzulegen ;-).

Meine Wahl ist nun also auf ZFS gefallen, da ich dieses neben (Open)Solaris sowohl unter Linux (mit ZFS-FUSE) als auch unter Mac OS X lesen kann (vielleicht wird mein nächster “PC” ja ein Mac)

ZFS-FUSE in Ubuntu 8.10

Der Eintrag zu ZFS im Ubuntu-Wiki beschreibt die Installation von ZFS-Fuse unter Ubuntu Linux. Diese beschränkt sich hauptsächlich auf das Eintragen der Paketquellen in /etc/apt/sources.list sowie ein apt-get update sowie apt-get install zfs-fuse. Bestehende ZFS-Dateisysteme werden daraufhin automatisch gemountet.

Anlegen des ZFS unter OpenSolaris

Leider habe ich für die Erstellung des ZFS-Pools nur zwei Platten frei. Eine dritte Platte wird erst frei, wenn ich meine Daten von dieser auf den ZFS-Pool verschoben habe.

Von einer OpenSolaris 2008.11 Live-CD erstelle ich den RAID-Z-Pool, der eigentlich aus mindestens drei Disks bestehen müsste, aus zwei Platten und einem genauso großen Sparse-File auf der Festplatte:


jack@opensolaris:~$ pfexec mkfile -nv 1000202305536 /tmp/tera
tera 1000202305536 bytes

jack@opensolaris:~$ pfexec zpool create -f timo raidz c6d0 c6d1 /tmp/tera

jack@opensolaris:~$ pfexec zfs create /timo/daten
jack@opensolaris:~$ pfexec zfs create /timo/musik

jack@opensolaris:~$ zpool status
 pool: timo
 state: ONLINE
 scrub: none requested
config:

	NAME                  STATE     READ WRITE CKSUM
	timo                  ONLINE       0     0     0
	  raidz1              ONLINE       0     0     0
	    c6d0              ONLINE       0     0     0
	    c6d1              ONLINE       0     0     0
	    /tmp/tera         ONLINE       0     0     0

errors: No known data errors

Nach dem Anlegen des Dateisystems nehme ich diese Datei /tmp/tera wieder aus dem Pool heraus (entweder per zpool offline bzw. in diesem Fall per Neustart).

Umkopieren der Daten unter GNU/Linux

Von einer Ubuntu-Installations-Live-CD aus kann ich nun (nach oben beschriebener Installation von ZFS-FUSE) die Dateien vom XFS-Dateisystem auf das neue ZFS umziehen. Der ZFS-Pool hat solange allerdings den Status „DEGRADED”. Später kann ich dann das fehlende /tmp/tera durch die bisherige Datenfestplatte ersetzen:

ubuntu@ubuntu:~$ sudo zpool status
  pool: timo
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
	the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: none requested
config:

	NAME                     STATE     READ WRITE CKSUM
	timo                     DEGRADED     0     0     0
	  raidz1                 DEGRADED     0     0     0
	    sdb1                 ONLINE       0     0     0
	    sdc1                 ONLINE       0     0     0
	    7106139258821418871  UNAVAIL      0     0     0  was /tmp/tera

errors: No known data errors
ubuntu@ubuntu:~$ 


Links

Computer, Linux, Mac OS X, Solaris , , , , , ,