diff --git a/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml b/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml index 6926fcd162..62818b375d 100644 --- a/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/filesystems/chapter.sgml @@ -1,31 +1,662 @@ + + + + Tom + Rhodes + Geschrieben von + + + + + + Benedict + Reuschling + Übersetzt von + + + Daniel + Seuffert + + + + + Dateisystemunterstützung + + + Übersicht + + File Systems + + File Systems Support + File Systems + + + Dateisysteme sind ein wesentlicher Bestandteil von Betriebssystemen. + Sie erlauben es den Benutzern Dateien zu laden und zu speichern, + ermöglichen den Zugriff auf die Daten und machen Festplatten + überhaupt erst nützlich. Unterschiedliche Betriebssysteme + besitzen normalerweise eine Gemeinsamkeit, nämlich deren + mitgeliefertes Dateisystem. Bei &os; ist dieses Dateisystem bekannt + unter dem Namen Fast File System FFS, das direkt auf + dem Original-Unix™ Dateisystem, UFS genannt, + basiert. Dieses ist das von &os; mitgelieferte Dateisystem, das auf + Festplatten für den Dateizugriff verwendet wird. + + &os; unterstützt auch eine Vielzahl von anderen Dateisystemen, + um auf Daten von anderen Betriebssystemen lokal zuzugreifen, wie z.B. + Daten auf USB-Speichermedien, Flash-Speichern und + Festplatten. Es gibt auch Unterstützung für fremde + Dateisysteme. Dabei handelt es sich um Dateisysteme, die auf anderen + Betriebssystemen entwickelt wurden, wie beispielsweise das &linux; + Extended File System (EXT) und das Z-Dateisystem + (ZFS) von &sun;. + + Es gibt verschiedene Stufen der Unterstützung in &os; + für diese unterschiedlichen Dateisysteme. Manche benötigen ein + geladenes Kernelmodul, andere die Installation bestimmter Werkzeuge. + Dieses Kapitel dient dazu, den Benutzern von &os; dazu helfen, auf andere + Dateisysteme zuzugreifen, beginnend mit &sun;s Z-Dateisystem (ZFS). + + Nachdem Sie dieses Kapitel gelesen haben, werden Sie die folgenden + Dinge wissen: + + + + Den Unterschied zwischen eingebauten und unterstützten + Dateisystemen. + + + + Welche Dateisysteme von &os; unterstützt werden. + + + + Wie man fremde Dateisysteme aktiviert, konfiguriert, darauf + zugreift und diese verwendet. + + + + Bevor Sie dieses Kapitel lesen, sollten Sie: + + + + Grundlagen von &unix; und &os; verstehen + (). + + + + Mit den Grundlagen der Konfiguration und dem Bauen des Kernels + vertraut sein (). + + + + Problemlos Software von Drittherstellern in &os; installieren + können (). + + + + sich ein wenig mit Festplatten, Speicher und Gerätenamen + in &os; auskennen (). + + + + + + Die ZFS-Funktionen sind als experimentell + zu betrachten. Manchen Optionen werden möglicherweise bestimmte + Funktionalitäten fehlen, andere funktionieren eventuell gar + nicht. Mit der Zeit werden diese Eigenschaften als für den + Produktivbetrieb geeignet erachtet werden und dann wird diese + Dokumentation entsprechend geändert, um diesem Zustand + gerecht zu werden. + + + + + Das Z-Dateisystem (ZFS) + + Das Z-Dateisystem ist eine neue von &sun; entwickelte Technologie, + mit dem Konzept einer gepoolten Speichermethodik. Das bedeutet, dass + Speicher nur verwendet wird, wenn dieser als Datenspeicher benutzt wird. + ZFS wurde auch für maximale Datenintegrität entwickelt und + unterstützt dabei mehrfache Kopien, Schnappschüsse und + Prüfsummen für Daten. Ein neues Datenreplikationsmodell, + bekannt als RAID-Z, wurde ebenfalls hinzugefügt. + Das RAID-Z-Modell ist ähnlich zu + RAID5, wurde aber mit dem Ziel entworfen, + Datenverfälschung beim Schreiben zu verhindern. + + + ZFS Einstellungen + + Das ZFS-Teilsystem benötigt viele + Systemressourcen, weshalb gewisse Einstellungen notwendig sind, um + maximale Effizienz während des täglichen Gebrauchs zu + gewährleisten. Da es sich um eine experimentelle Funktion in &os; + handelt, wird sich das in naher Zukunft ändern. Wie dem auch sei, + zum gegenwärtigen Zeitpunkt wird die Anwendung der folgenden + Schritte empfohlen. + + + Hauptspeicher + + Der verfügbare Hauptspeicher im System sollte mindestens + 1 Gigabyte betragen, jedoch werden 2 Gigabyte oder mehr + empfohlen. In allen gezeigten Beispielen in diesem Abschnitt + verwendet das System 1 Gigabyte Hauptspeicher mit mehreren + anderen Einstellungen. + + Manche Nutzer hatten Erfolg bei der Verwendung von weniger + als 1 GB Hauptspeicher, aber mit dieser begrenzten Menge an RAM + ist es sehr wahrscheinlich, dass &os; eine Panic wegen + erschöpftem Hauptspeicher erleiden wird, wenn es hohen + Belastungen ausgesetzt ist. + + + + Kernelkonfiguration + + Es wird vorgeschlagen, nicht benötigte Treiber und Optionen + aus der Kernelkonfigurationsdatei zu entfernen. Da die meisten + Geräte als Module verfügbar sind, können diese einfach + mittels der Datei /boot/loader.conf geladen + werden. + + Nutzer der &i386;-Architektur sollten die folgende Option in + ihrer Kernelkonfigurationsdatei hinzufügen, den Kernel neu + erstellen und anschliessend das System neustarten: + + options KVA_PAGES=512 + + Diese Option wird den Adressraum des Kernels vergrössern, + was es ermöglicht, die Einstellung vm.kvm_size + über die momentan verhängte Grenze von 1 GB + (2 GB für PAE) zu erhöhen. Um den + passenden Wert dieser Option zu ermitteln, teilen Sie den + gewünschten Adressraum in Megabyte durch vier. In diesem Fall + beträgt er 512 für 2 GB. + + + + Einstellungen des Loaders + + Der kmem-Addressraum sollte auf allen + &os;-Architekturen erhöht werden. Die folgende Option, die dem + Testsystem mit einem Gigabyte Hauptspeicher der Datei + /boot/loader.conf hinzugefügt und welches + anschliessend neu gestartet wurde, war erfolgreich: + + vm.kmem_size="330M" +vm.kmem_size_max="330M" +vfs.zfs.arc_max="40M" +vfs.zfs.vdev.cache.size="5M" + + Eine detailliertere Liste von Vorschlägen zu ZFS-verwandten + Einstellungen finden Sie unter . + + + + + Verwenden von <acronym>ZFS</acronym> + + Es existiert ein Startmechanismus, der es &os; erlaubt, + ZFS als Pool während des Systemstarts + zu initialisieren. Um das zu tun, geben Sie die folgenden Befehle + ein: + + &prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf +&prompt.root; /etc/rc.d/zfs start + + Für den Rest dieses Dokuments wird angenommen, dass zwei + SCSI-Platten im System verfügbar sind und + dass deren Gerätenamen + da0 und + da1 lauten. + Benutzer von IDE-Hardware können + ad-Geräte + an Stelle von SCSI-Hardware einsetzen. + + + Pool mit nur einer Platte + + Um ein ZFS auf einer einzelnen Festplatte + zu erstellen, benutzen Sie das + zpool-Kommando: + + &prompt.root; zpool create example /dev/da0 + + Um den neuen Pool anzusehen, überprüfen Sie die + Ausgabe von df: + + &prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235230 1628718 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032846 48737598 2% /usr +example 17547136 0 17547136 0% /example + + Diese Ausgabe zeigt deutlich, dass der + example-Pool nicht nur erstellt, sondern auch + gemountet wurde. Er ist genau wie andere + Dateisysteme verfügbar, Dateien können darin erstellt und + von den Benutzern aufgelistet werden, wie im folgenden Beispiel + gezeigt wird: + + &prompt.root cd /example +&prompt.root; ls +&prompt.root; touch testfile +&prompt.root; ls -al +total 4 +drwxr-xr-x 2 root wheel 3 Aug 29 23:15 . +drwxr-xr-x 21 root wheel 512 Aug 29 23:12 .. +-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile + + Leider verwendet dieser Pool keine der Vorteile der + ZFS-Eigenschaften. Erstellen Sie ein Dateisystem + auf diesem Pool und aktivieren Sie die Komprimierung darauf: + + &prompt.root; zfs create example/compressed +&prompt.root; zfs set compression=gzip example/compressed + + Jetzt ist example/compressed ein von + ZFS komprimiertes Dateisystem. Versuchen Sie, ein + paar grosse Dateien in das Verzeichnis /example/compressed zu kopieren. + + Die Komprimierung kann jetzt deaktiviert werden mittels: + + &prompt.root; zfs set compression=off example/compressed + + Um das Dateisystem aus dem Verzeichnisbaum abzuhängen, geben + Sie den folgenden Befehl ein und vergewissern Sie sich über + df vom Erfolg dieser Aktion: + + &prompt.root; zfs umount example/compressed +&prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235232 1628716 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032864 48737580 2% /usr +example 17547008 0 17547008 0% /example + + Mounten Sie das Dateisystem erneut, um es wieder verfügbar + zu machen und bestätigen Sie mit df: + + &prompt.root; zfs mount example/compressed +&prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235234 1628714 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032864 48737580 2% /usr +example 17547008 0 17547008 0% /example +example/compressed 17547008 0 17547008 0% /example/compressed + + Der Pool und das Dateisystem können genausogut über die + Ausgabe von mount überwacht werden: + + &prompt.root; mount +/dev/ad0s1a on / (ufs, local) +devfs on /dev (devfs, local) +/dev/ad0s1d on /usr (ufs, local, soft-updates) +example on /example (zfs, local) +example/data on /example/data (zfs, local) +example/compressed on /example/compressed (zfs, local) + + Wie zu beobachten ist, können + ZFS-Dateisysteme nach deren Erstellung genauso + wie normale Dateisysteme verwendet werden, jedoch sind auch noch viele + andere Eigenschaften verfügbar. Im folgenden Beispiel wird ein + neues Dateisystem, data, erstellt. Wichtige + Dateien sollen hier gespeichert werden, weshalb das Dateisystem + angewiesen wird, jeweils zwei Kopien jedes Datenblocks zu + unterhalten: + + &prompt.root; zfs create example/data +&prompt.root; zfs set copies=2 example/data + + Es ist nun möglich, den Speicherplatzverbrauch der Daten + mittels df erneut zu betrachten: + + &prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235234 1628714 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032864 48737580 2% /usr +example 17547008 0 17547008 0% /example +example/compressed 17547008 0 17547008 0% /example/compressed +example/data 17547008 0 17547008 0% /example/data + + Beachten Sie, dass jedem Dateisystem des Pools die gleiche Menge + an Speicher zur Verfügung steht. Das ist der Grund für die + Verwendung von df in all diesen Beispielen, da es + zeigt, dass das Dateisystem nur den Speicher belegt, den es auch + benötigt und alles wird von dem gleichen Pool abgezogen. + ZFS macht Konzepte wie Volumen und Partitionen + überflüssig und erlaubt mehrere Dateisysteme auf demselben + Pool. Zerstören Sie die Datensysteme und anschliessend den Pool, + da sie nicht länger gebraucht werden: + + &prompt.root; zfs destroy example/compressed +&prompt.root; zfs destroy example/data +&prompt.root; zpool destroy example + + Festplatten werden mit der Zeit schlechter und fallen aus, eine + unvermeidliche Tatsache. Wenn diese Platte ausfällt, sind die + Daten verloren. Eine Möglichkeit, diesen Datenverlust beim + Plattenausfall zu vermeiden, ist die Verwendung von + RAID. ZFS unterstützt + diese Eigenschaft im Entwurf seiner Pools und wird im nächsten + Abschnitt behandelt. + + + + <acronym>ZFS</acronym> RAID-Z + + Wie zuvor bereits erwähnt, wird in diesem Abschnitt + angenommen, dass zwei SCSI-Geräte vorhanden + sind (da0 und da1). + Um einen RAID-Z Pool zu erstellen, geben Sie das + folgende Kommando ein: + + &prompt.root; zpool create storage raidz da0 da1 + + Der storage-zPool sollte jetzt erstellt worden + sein. Sie können das überprüfen, indem Sie die Befehle + &man.mount.8; und &man.df.1; wie zuvor verwenden. Weitere + Plattenspeicher können an das Ende der oben stehenden Liste + hinzugefügt werden. Erstellen Sie ein neues Dateisystem in dem + Pool, home genannt, in dem später Dateien von + Benutzern platziert werden: + + &prompt.root; zfs create storage/home + + Nun kann die Komprimierung aktiviert und zusätzliche + Kopien der Benutzerverzeichnisse und der darin enthaltenen Dateien + angelegt werden. Dies geschieht über die gleichen Befehle + wie bereits zuvor: + + &prompt.root; zfs set copies=2 storage/home +&prompt.root; zfs set compression=gzip storage/home + + Um dieses Verzeichnis als neues Benutzerverzeichnis zu verwenden, + kopieren Sie die Nutzerdaten dort hin und erstellen Sie die + entsprechenden Symlinks: + + &prompt.root; cp -rp /home/* /storage/home +&prompt.root; rm -rf /home /usr/home +&prompt.root; ln -s /storage/home /home +&prompt.root; ln -s /storage/home /usr/home + + Anwender sollten jetzt ihre Daten in dem neu angelegten /storage/home Dateisystem auffinden. + Prüfen Sie das, indem Sie einen neuen Benutzer hinzufügen + und sich als dieser Benutzer am System anmelden. + + Versuchen Sie, einen Schnappschuss anzulegen, der später + wieder zurückgerollt werden kann: + + &prompt.root; zfs snapshot storage/home@08-30-08 + + Beachten Sie, dass die Schnappschuss-Option nur auf echte + Dateisysteme, jedoch nicht auf Verzeichnisse oder eine Datei + angewendet werden kann. Das @-Zeichen dient als + Begrenzer zwischen dem Dateisystem- oder Volumenamen. Wenn ein + Benutzerverzeichnis zerstört wird, können Sie es über + den folgenden Befehl wieder herstellen: + + &prompt.root; zfs rollback storage/home@08-30-08 + + Um eine Liste von allen verfügbaren Schnappschüssen zu + erhalten, starten Sie das ls-Kommando in + Verzeichnis .zfs/snapshot des entsprechenden + Dateisystems. Beispielsweise können Sie den vorhin angelegten + Schnappschuss mit dem folgenden Befehl auflisten: + + &prompt.root; ls /storage/home/.zfs/snapshot + + Es ist möglich ein Skript zu schreiben, dass monatliche + Schnappschüsse der Nutzerdaten anlegt. Allerdings werden die + Schnappschüsse mit der Zeit eine grosse Menge an Speicherplatz + einnehmen. Den vorherigen Schnappschuss können Sie über + das folgende Kommando löschen: + + &prompt.root; zfs destroy storage/home@08-30-08 + + Nach all diesen Tests gibt es keinen Grund, das Verzeichnis + /storage/home noch länger in seinem + momentanen Zustand zu belassen. Ernennen Sie es zum echten /home-Dateisystem: + + &prompt.root; zfs set mountpoint=/home storage/home + + Die Eingabe der Befehle df und + mount zeigt, dass das System das Dateisystem nun + als das echte /home + behandelt: + + &prompt.root; mount +/dev/ad0s1a on / (ufs, local) +devfs on /dev (devfs, local) +/dev/ad0s1d on /usr (ufs, local, soft-updates) +storage on /storage (zfs, local) +storage/home on /home (zfs, local) +&prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235240 1628708 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032826 48737618 2% /usr +storage 17547008 0 17547008 0% /storage +storage/home 17547008 0 17547008 0% /home + + Damit ist die RAID-Z-Konfiguration + abgeschlossen. Um über den Status des Dateisystems mittels des + nächtlichen &man.periodic.8;-Skripts auf dem Laufenden gehalten + zu werden, geben Sie das folgende Kommando ein: + + &prompt.root; echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf + + + + Wiederherstellung von <acronym>RAID</acronym>-Z + + Jedes Software-RAID besitzt Verfahren, um + dessen Zustand zu überwachen. + ZFS ist da keine Ausnahme. Der Status von + RAID-Z Geräten kann mittels des folgenden + Kommandos betrachtet werden: + + &prompt.root; zpool status -x + + Wenn alle Pools gesund sind und alles normal ist, wird die + folgende Nachricht zurückgegeben: + + all pools are healthy + + Wenn ein Problem existiert (möglicherweise ist eine Platte + ausgefallen), wird der Zustand des Pools ähnlich dem Folgenden + ausgegeben: + + pool: storage + state: DEGRADED +status: One or more devices has been taken offline by the administrator. + Sufficient replicas exist for the pool to continue functioning in a + degraded state. +action: Online the device using 'zpool online' or replace the device with + 'zpool replace'. + scrub: none requested +config: + + NAME STATE READ WRITE CKSUM + storage DEGRADED 0 0 0 + raidz1 DEGRADED 0 0 0 + da0 ONLINE 0 0 0 + da1 OFFLINE 0 0 0 + +errors: No known data errors + + Das bedeutet, dass das Gerät vom Systemadministrator + abgeschaltet wurde. In diesem Fall trifft das zu. Um eine Platte + abzuschalten, wurde das folgende Kommando eingegeben: + + &prompt.root; zpool offline storage da1 + + Es ist jetzt möglich, da1 zu + ersetzen, nachdem das System ausgeschaltet wurde. Wenn das System + wieder läuft, kann der folgende Befehl benutzt werden, um die + Platte zu ersetzen: + + &prompt.root; zpool replace storage da1 + + Von da an kann der Status erneut überprüft werden, + jedoch dieses Mal ohne die Option , um die + Zustandsinformation zu bekommen: + + &prompt.root; zpool status storage + pool: storage + state: ONLINE + scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008 +config: + + NAME STATE READ WRITE CKSUM + storage ONLINE 0 0 0 + raidz1 ONLINE 0 0 0 + da0 ONLINE 0 0 0 + da1 ONLINE 0 0 0 + +errors: No known data errors + + Wie in diesem Beispiel gezeigt, scheint alles wieder normal zu + sein. + + + + Datenüberprüfung + + Wie bereits erwähnt, verwendet ZFS + Prüfsummen, um die Integrität der + gespeicherten Daten zu verifizieren. Die Prüfsummen werden + automatisch beim Erstellen des Dateisystem aktiviert und können + über den folgenden Befehl deaktiviert werden: + + &prompt.root; zfs set checksum=off storage/home + + Das ist jedoch kein schlauer Einfall, da die Prüfsummen nur + ganz wenig Speicherplatz einnehmen und viel nützlicher sind, + wenn Sie aktiviert bleiben. Es scheint auch kein nennenswerter + Ressourcenverbrauch mit deren Aktivierung verbunden zu sein. Wenn die + Prüfsummen aktiv sind, kann ZFS die + Datenintegrität über den Vergleich der Prüfsummen + gewährleisten. Dieser Prozess wird als reinigen + bezeichnet. Um die Datenintegrität des + storage-Pools zu überprüfen, geben Sie + den folgenden Befehl ein: + + &prompt.root; zpool scrub storage + + Dieser Prozess kann einige Zeit in Anspruch nehmen, abhängig + davon, wieviele Daten gespeichert sind. Es handelt sich dabei auch + um eine I/O-intensive Aktion, weshalb auch jeweils + nur eine dieser Operationen durchgeführt werden darf. Nachdem + die Reinigung abgeschlossen ist, wird der Status aktualisiert und + kann über eine Statusabfrage eingesehen werden: + + &prompt.root; zpool status storage + pool: storage + state: ONLINE + scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008 +config: + + NAME STATE READ WRITE CKSUM + storage ONLINE 0 0 0 + raidz1 ONLINE 0 0 0 + da0 ONLINE 0 0 0 + da1 ONLINE 0 0 0 + +errors: No known data errors + + Die Zeit des Abschlusses der Aktion kann in diesem Beispiel direkt + abgelesen werden. Die Prüfsummen helfen dabei, sicherzustellen, + dass die Datenintegrität über einen langen Zeitraum hinaus + erhalten bleibt. + + Es gibt viele weitere Optionen für das Z-Dateisystem, lesen + Sie dazu die Manualpage &man.zfs.8; und &man.zpool.8;. + + + + + + - File Systems Support (noch nicht übersetzt) - Dieses Kapitel ist noch nicht übersetzt. - Lesen Sie bitte - das Original in englischer Sprache. Wenn Sie helfen - wollen, dieses Kapitel zu übersetzen, senden Sie bitte - eine E-Mail an die Mailingliste &a.de.translators;.