Index: head/de_DE.ISO8859-1/books/handbook/disks/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/handbook/disks/chapter.xml (revision 47782) +++ head/de_DE.ISO8859-1/books/handbook/disks/chapter.xml (revision 47783) @@ -1,4017 +1,4025 @@ Speichermedien BerndWarkenÜbersetzt von MartinHeinen Übersicht Dieses Kapitel behandelt die Benutzung von Laufwerken unter &os;. Laufwerke können speichergestützte Laufwerke, Netzwerklaufwerke oder normale SCSI/IDE-Geräte sein. Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes wissen: Die Begriffe, die &os; verwendet, um die Organisation der Daten auf einem physikalischen Laufwerk zu beschreiben. Wie Sie zusätzliche Laufwerke zu einem &os;-System hinzufügen. Wie virtuelle Dateisysteme, zum Beispiel RAM-Disks, eingerichtet werden. Wie Sie mit Quotas die Benutzung von Laufwerken einschränken können. Wie Sie Partitionen verschlüsseln, um Ihre Daten zu schützen. Wie unter &os; CDs und DVDs gebrannt werden. Wie Sie die unter &os; erhältlichen Backup-Programme benutzen. Was Dateisystem-Schnappschüsse sind und wie sie eingesetzt werden. Bevor Sie dieses Kapitel lesen, sollten Sie wissen, wie Sie einen neuen &os;-Kernel konfigurieren und installieren können. Gerätenamen Die folgende Tabelle zeigt die von &os; unterstützten Speichergeräte und deren Gerätenamen. Namenskonventionen von physikalischen Laufwerken Laufwerkstyp Gerätename IDE-Festplatten ad oder ada IDE-CD-ROM-Laufwerke acd oder cd SATA-Festplatten ad oder ada SATA-CD-ROM-Laufwerke acd oder cd SCSI-Festplatten und USB-Speichermedien da SCSI-CD-ROM-Laufwerke cd Verschiedene proprietäre CD-ROM-Laufwerke mcd Mitsumi CD-ROM und scd Sony CD-ROM Diskettenlaufwerke fd SCSI-Bandlaufwerke sa IDE-Bandlaufwerke ast Flash-Laufwerke fla für &diskonchip; Flash-Device RAID-Laufwerke aacd für &adaptec; AdvancedRAID, mlxd und mlyd für &mylex;, amrd für AMI &megaraid;, idad für Compaq Smart RAID, twed für &tm.3ware; RAID.
Hinzufügen von Laufwerken DavidO'BrianIm Original von Laufwerke hinzufügen Dieser Abschnitt beschreibt, wie Sie ein neues SATA-Laufwerk zu einer Maschine hinzufügen, die momentan nur ein Laufwerk hat. Dazu schalten Sie zuerst den Rechner aus und installieren das Laufwerk entsprechend der Anleitungen Ihres Rechners, Ihres Controllers und des Laufwerkherstellers. Starten Sie das System neu und melden Sie sich als Benutzer root an. Kontrollieren Sie /var/run/dmesg.boot, um sicherzustellen, dass das neue Laufwerk gefunden wurde. In diesem Beispiel erscheint das neu hinzugefügte SATA-Laufwerk als ada1. Partitionen gpart In diesem Beispiel wird eine einzige große Partition auf der Festplatte erstellt. Verwendet wird das GPT-Partionsschema, welches gegenüber dem älteren und weniger vielseitigen MBR-Schema bevorzug wird. Wenn die hinzugefügte Festplatte nicht leer ist, können alte Partitionsinformationen mit gpart delete entfernt werden. Details finden Sie in &man.gpart.8;. Zuerst wird das Partitionsschema erstellt und dann eine einzelne Partition angefügt: &prompt.root; gpart create -s GPT ada1 &prompt.root; gpart add -t freebsd-ufs ada1 Je nach Anwendung kann es wünschenswert sein, mehrere kleinere Partitionen zu haben. In &man.gpart.8; finden Sie Optionen zum Erstellen von kleineren Partitionen. Ein Dateisystem wird auf der neuen, leeren Festplatte erstellt: &prompt.root; newfs -U /dev/ada1p1 Ein leeres Verzeichnis wird als Mountpunkt erstellt, also ein Speicherort für die Montage der neuen Festplatte im originalen Dateisystem: &prompt.root; mkdir /newdisk Abschließend wird ein Eintrag in /etc/fstab hinzugefügt, damit die neue Festplatte automatisch beim Start eingehängt wird: /dev/ada1p1 /newdisk ufs rw 2 2 Die neue Festplatte kann manuell montiert werden, ohne das System neu zu starten: &prompt.root; mount /newdisk USB Speichermedien MarcFonvieilleBeigetragen von USB Speichermedien Der Universal Serial Bus (USB) wird heutzutage von vielen externen Speichern benutzt: Festplatten, USB-Thumbdrives oder CD-Brennern, die alle von &os; unterstützt werden. USB-Konfiguration Der Treiber für USB-Massenspeicher, &man.umass.4;, ist im GENERIC-Kernel enthalten und bietet Unterstützung für USB-Speichermedien. Für einen angepassten Kernel müssen die nachstehenden Zeilen in der Kernelkonfigurationsdatei enthalten sein: device scbus device da device pass device uhci device ohci device ehci device usb device umass Da der &man.umass.4;-Treiber das SCSI-Subsystem benutzt um auf USB-Geräte zuzugreifen, werden alle USB-Geräte vom System als SCSI-Geräte erkannt. Abhängig vom Chipsatz Ihrer Systemplatine wird device uhci oder device ohci für die Unterstützung von USB 1.X benutzt. Unterstützung für USB 2.0 Controller wird durch device ehci bereitgestellt. Wenn es sich bei dem USB-Gerät um einen CD- oder DVD-Brenner handelt, muss &man.cd.4; in den Kernel aufgenommen werden: device cd Da der Brenner als SCSI-Laufwerk erkannt wird, sollten Sie den Treiber &man.atapicam.4; nicht benutzen. Die USB-Konfiguration testen Um die USB-Konfiguration zu testen, schließen Sie das USB-Gerät an. In den Systemmeldungen, &man.dmesg.8;, sollte das Gerät wie folgt angezeigt werden: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) Fabrikat, Gerätedatei (da0) und andere Details werden je nach Gerät unterschiedlich sein. Da ein USB-Gerät als SCSI-Gerät erkannt wird, kann camcontrol benutzt werden, um die mit dem System verbundenen USB-Massenspeicher anzuzeigen: &prompt.root; camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) Wenn auf dem Laufwerk ein Dateisystem eingerichtet ist, kann es gemountet werden. beschreibt, wie Sie USB-Laufwerke formatieren und Partitionen einrichten. Aus Sicherheitsgründen sollten Sie Benutzern, denen Sie nicht vertrauen, das Einhängen (z.B. durch die unten beschriebene Aktivierung von vfs.usermount) beliebiger Medien verbieten. Die meisten Dateisysteme in &os; wurden nicht entwickelt, um sich vor böswilligen Geräten zu schützen. Um auch normalen Anwendern das Einhängen des Laufwerks zu gestatten, könnten Sie beispielsweise mit &man.pw.8; alle potentiellen Benutzer dieser Gerätedateien in die Gruppe operator aufnehmen. Außerdem muss sichergestellt werden, dass Mitglieder der Gruppe operator Schreib- und Lesezugriff auf diese Gerätedateien haben. Hierfür werden die folgenden Zeilen in /etc/devfs.rules hinzugefügt: [localrules=5] add path 'da*' mode 0660 group operator Verfügt das System über SCSI-Laufwerke, so verändern Sie die zweite Zeile wie folgt: add path 'da[3-9]*' mode 0660 group operator Dies wird die ersten drei SCSI-Laufwerke (da0 bis da2) davon ausschließen, in die Gruppe operator aufgenommen zu werden. Aktivieren Sie nun die &man.devfs.rules.5;-Regeln in /etc/rc.conf: devfs_system_ruleset="localrules" Als nächstes müssen Sie Ihren Kernel anweisen, auch normalen Benutzern das mounten von Dateisystemen zu erlauben. Am einfachsten geht dies, indem die folgende Zeile in /etc/sysctl.conf hinzugefügt wird: vfs.usermount=1 Da diese Einstellung erst nach einem Neustart wirksam wird, können Sie diese Variable mit &man.sysctl.8; auch direkt setzen. Zuletzt müssen Sie noch ein Verzeichnis anlegen, in das das USB-Laufwerk eingehängt werden soll. Dieses Verzeichnis muss dem Benutzer gehören, der das USB-Laufwerk in den Verzeichnisbaum einhängen will. Dazu legen Sie als root ein Unterverzeichnis /mnt/username an, wobei Sie username durch den Login des jeweiligen Benutzers sowie usergroup durch die primäre Gruppe des Benutzers ersetzen: &prompt.root; mkdir /mnt/username &prompt.root; chown username:usergroup /mnt/username Wenn Sie nun beispielsweise einen USB-Stick anschließen, wird automatisch die Gerätedatei /dev/da0s1 erzeugt. Ist das Gerät mit einem FAT-Dateisystem formatiert, können Sie es mit dem folgenden Befehl in den Verzeichnisbaum einhängen: &prompt.user; mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username Bevor das Gerät entfernt werden kann, muss es abgehängt werden. Nach Entfernen des Geräts zeigen sich in den Systemmeldungen Einträge, ähnlich der folgenden: umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached Weiteres zu USB Neben den Abschnitten Hinzufügen von Laufwerken und Anhängen und Abhängen von Dateisystemen lesen Sie bitte die Hilfeseiten &man.umass.4;, &man.camcontrol.8; für &os; 8.X oder &man.usbdevs.8; bei vorherigen Versionen. Erstellen und Verwenden von CDs MikeMeyerBeigesteuert von CD-ROM brennen Einführung CDs besitzen einige Eigenschaften, die sie von konventionellen Laufwerken unterscheiden. Zuerst konnten sie nicht beschrieben werden. Sie wurden so entworfen, dass sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen zwischen den Spuren, gelesen werden können. Sie können auch leichter zwischen Systemen bewegt werden. CDs besitzen Spuren, aber damit ist der Teil Daten gemeint, der ununterbrochen gelesen wird, und nicht eine physikalische Eigenschaft der CD. Um beispielsweise eine CD mit &os; zu erstellen, werden die Daten jeder Spur der CD in Dateien vorbereitet und dann die Spuren auf die CD geschrieben. ISO 9660 Dateisysteme ISO 9660 Das ISO 9660-Dateisystem wurde entworfen, um mit diesen Unterschieden umzugehen. Um die ursprünglichen Dateisystemgrenzen zu überwinden existiert ein Erweiterungsmechanismus, der es korrekt geschriebenen CDs erlaubt, diese Grenzen zu überschreiten und dennoch auf Systemen zu funktionieren, die diese Erweiterungen nicht unterstützen. sysutils/cdrtools Der Port sysutils/cdrtools enthält das Programm &man.mkisofs.8;, das eine Datei erstellt, die ein ISO 9660-Dateisystem enthält. Das Programm hat Optionen, um verschiedene Erweiterungen zu unterstützen, und wird unten beschrieben. CD-Brenner ATAPI Welches Werkzeug zum Brennen von CDs benutzt wird, hängt davon ab, ob der CD-Brenner ein ATAPI-Gerät ist oder nicht. Mit ATAPI-CD-Brennern wird burncd benutzt, das Teil des Basissystems ist. SCSI- und USB-CD-Brenner werden mit cdrecord aus sysutils/cdrtools benutzt. Zusätzlich ist es möglich, über das Modul ATAPI/CAM SCSI-Werkzeuge wie cdrecord auch für ATAPI-Geräte einzusetzen. Für eine Brennsoftware mit grafischer Benutzeroberfläche benötigen, sollten Sie sich X-CD-Roast oder K3b näher ansehen. Diese Werkzeuge können als Paket oder aus den Ports (sysutils/xcdroast und sysutils/k3b) installiert werden. Mit ATAPI-Hardware benötigt K3b das ATAPI/CAM-Modul. <application>mkisofs</application> Der Port sysutils/cdrtools installiert auch &man.mkisofs.8;, welches ein ISO 9660-Abbild erstellt, das ein Abbild eines Verzeichnisbaumes ist. Die einfachste Anwendung ist: &prompt.root; mkisofs -o imagefile.iso /path/to/tree Dateisysteme ISO 9660 Dieses Kommando erstellt imagefile.iso, die ein ISO 9660-Dateisystem enthält, das eine Kopie des Baumes unter /path/to/tree ist. Dabei werden die Dateinamen auf Namen abgebildet, die den Restriktionen des ISO 9660-Dateisystems entsprechen. Dateien mit Namen, die im ISO 9660-Dateisystem nicht gültig sind, bleiben unberücksichtigt. Dateisysteme HFS Dateisysteme Joliet Es einige Optionen, um diese Beschränkungen zu überwinden. Die unter &unix; Systemen üblichen Rock-Ridge-Erweiterungen werden durch aktiviert, aktiviert die von Microsoft Systemen benutzten Joliet-Erweiterungen und dient dazu, um das von &macos; benutzte HFS zu erstellen. Für CDs, die nur auf &os;-Systemen verwendet werden sollen, kann genutzt werden, um alle Beschränkungen für Dateinamen aufzuheben. Zusammen mit wird ein Abbild des Dateisystems, identisch zu angegebenen &os;-Dateibaum, erstellt, obwohl dies den ISO 9660 Standard verletzen kann. CD-ROM bootbare erstellen Die letzte übliche Option ist . Sie wird benutzt, um den Ort eines Bootimages einer El Torito bootbaren CD anzugeben. Das Argument zu dieser Option ist der Pfad zu einem Bootimage ausgehend von der Wurzel des Baumes, der auf die CD geschrieben werden soll. In der Voreinstellung erzeugt &man.mkisofs.8; ein ISO-Image im Diskettenemulations-Modus. Dabei muss das Image genau 1200, 1440 oder 2880 KB groß sein. Einige Bootloader, darunter der auf den &os;-Disks verwendete, kennen keinen Emulationsmodus. Daher sollten Sie in diesen Fällen verwenden. Wenn /tmp/myboot ein bootbares &os;-System enthält, dessen Bootimage sich in /tmp/myboot/boot/cdboot befindet, können Sie ein Abbild eines ISO 9660-Dateisystems in /tmp/bootable.iso erstellen: &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot Wenn md im Kernel konfiguriert ist, kann das Dateisystem als speicherbasiertes Laufwerk eingehängt werden: &prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 &prompt.root; mount -t cd9660 /dev/md0 /mnt Jetzt können Sie überprüfen, dass /mnt und /tmp/myboot identisch sind. Sie können das Verhalten von &man.mkisofs.8; mit einer Vielzahl von Optionen beeinflussen. Details dazu entnehmen Sie bitte &man.mkisofs.8;. <application>burncd</application> CD-ROM brennen Für ATAPI-CD-Brenner kann burncd benutzt werden, um ein ISO-Image auf CD zu brennen. burncd ist Teil des Basissystems und unter /usr/sbin/burncd installiert. Da es nicht viele Optionen hat, ist es leicht zu benutzen: &prompt.root; burncd -f cddevice data imagefile.iso fixate Dieses Kommando brennt eine Kopie von imagefile.iso auf das Gerät cddevice. In der Grundeinstellung wird das Gerät /dev/acd0 benutzt. &man.burncd.8; beschreibt, wie die Schreibgeschwindigkeit gesetzt wird, die CD ausgeworfen wird und Audiodaten geschrieben werden. <application>cdrecord</application> Für Systeme ohne ATAPI-CD-Brenner kann cdrecord benutzt werden, um CDs zu brennen. cdrecord ist nicht Bestandteil des Basissystems und muss entweder als Paket sysutils/cdrtools oder Port installiert werden. Änderungen im Basissystem können Fehler im binären Programm verursachen und führen möglicherweise dazu, dass Sie einen Untersetzer brennen. Es wird daher empfohlen den Port aktualisieren, wenn das System aktualisiert wird, oder für Benutzer die STABLE verfolgen, den Port zu aktualisieren, wenn es eine neue Version gibt. Obwohl cdrecord viele Optionen besitzt, ist die grundlegende Anwendung einfach. Ein ISO 9660-Image wird wie folgt erstellt: &prompt.root; cdrecord dev=device imagefile.iso Der Knackpunkt in der Benutzung von cdrecord besteht darin, das richtige Argument zu zu finden. Benutzen Sie , der eine ähnliche Ausgabe wie die folgende produziert: CD-ROM brennen &prompt.root; cdrecord -scanbus Cdrecord 1.9 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) * Für die aufgeführten Geräte in der Liste wird das passende Argument zu gegeben. Benutzen Sie die drei durch Kommas separierten Zahlen, die zum CD-Brenner angegeben sind, als Argument für . Im Beispiel ist das CDRW-Gerät 1,5,0, so dass die passende Eingabe dev=1,5,0 ist. Einfachere Wege das Argument anzugeben, sowie Informationen über Audiospuren und das Einstellen der Geschwindigkeit, sind in &man.cdrecord.1; beschrieben. Kopieren von Audio-CDs Um eine Kopie einer Audio-CD zu erstellen, kopieren Sie die Stücke der CD in einzelne Dateien und brennen diese Dateien dann auf eine leere CD. Das genaue Verfahren hängt davon ab, ob Sie ATAPI- oder SCSI-Laufwerke verwenden. SCSI-Laufwerke Kopieren Sie die Audiodaten mit cdda2wav: &prompt.user; cdda2wav -vall -D2,0 -B -Owav Die erzeugten .wav Dateien schreiben Sie mit cdrecord auf eine leere CD: &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Das Argument von gibt das verwendete Gerät an, das wie in ermittelt werden kann. ATAPI-Laufwerke Über das Modul ATAPI/CAM kann cdda2wav auch mit ATAPI-Laufwerken verwendet werden. Diese Methode ist für die meisten Anwender besser geeignet als die im folgenden beschriebenen Methoden (Jitter-Korrektur, Big-/Little-Endian-Probleme und anderes mehr spielen hierbei eine Rolle). Der ATAPI-CD-Treiber stellt die einzelnen Stücke der CD über die Dateien /dev/acddtnn, zur Verfügung. d bezeichnet die Laufwerksnummer und nn ist die Nummer des Stücks. Die Nummer ist immer zweistellig, das heißt es wird, wenn nötig, eine führende Null ausgegeben. Die Datei /dev/acd0t01 ist also das erste Stück des ersten CD-Laufwerks. /dev/acd0t02 ist das zweite Stück und /dev/acd0t03 das dritte. Überprüfen Sie stets, ob die entsprechenden Dateien im Verzeichnis /dev auch angelegt werden. Sind die Einträge nicht vorhanden, weisen Sie Ihr System an, das Medium erneut zu testen: &prompt.root; dd if=/dev/acd0 of=/dev/null count=1 Unter &os; 4.X werden diese Einträge nicht mit dem Wert Null vordefiniert. Falls die entsprechenden Einträge unter /dev nicht vorhanden sind, müssen Sie diese hier von MAKEDEV anlegen lassen: &prompt.root; cd /dev &prompt.root; sh MAKEDEV acd0t99 Die einzelnen Stücke werden mit &man.dd.1; kopiert. Achten Sie darauf, eine Blockgröße anzugeben: &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 &prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352 ... Die kopierten Dateien können Sie dann mit burncd brennen. Geben Sie an, dass es sich um Audio-Daten handelt und dass burncd das Medium am Ende fixieren soll: &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate Kopieren von Daten-CDs Es ist möglich eine Daten-CD in eine Datei zu kopieren, die einem Image entspricht, das mit &man.mkisofs.8; erstellt wurde. Mit Hilfe dieses Images können Sie jede Daten-CD kopieren. Das folgende Beispiel verwendet acd0 für das CD-ROM-Gerät. Wird ein anderes Laufwerk benutzt, muss der Name entsprechend ersetzt werden. &prompt.root; dd if=/dev/acd0 of=file.iso bs=2048 Danach existiert ein Image, das wie oben beschrieben, auf CD gebrannt werden kann. Einhängen von Daten-CDs Es ist möglich, eine Daten-CD zu mounten und die Daten zu lesen. Standardmäßig erwartet &man.mount.8; ein Dateisystem vom Typ ufs. Wenn Sie das folgende Kommando ausführen: &prompt.root; mount /dev/cd0 /mnt erhalten Sie die Fehlermeldung Incorrect super block, und die CD konnte nicht eingehängt werden. Die CD benutzt nicht das UFS-Dateisystem, deshalb schlägt der Versuch fehl, sie als solches einzuhängen. Sie müssen &man.mount.8; durch die Angabe von sagen, dass es sich um ein Dateisystem vom Typ ISO9660 handelt. Wenn Sie also die CD-ROM /dev/cd0 in /mnt einhängen wollen, führen Sie folgenden Befehl aus: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Ersetzen Sie /dev/cd0 durch den Gerätenamen des CD-Gerätes. Die Angabe von führt &man.mount.cd9660.8; aus, was äquivalent zu folgendem Befehl ist: &prompt.root; mount_cd9660 /dev/cd0 /mnt Auf diese Weise können Sie Daten-CDs von jedem Hersteller verwenden. Es kann allerdings zu Problemen mit CDs kommen, die verschiedene ISO9660-Erweiterungen benutzen. So speichern Joliet-CDs alle Dateinamen unter Verwendung von zwei Byte langen Unicode-Zeichen. Zwar unterstützt der &os;-Kernel derzeit noch kein Unicode, der CD9660-Treiber erlaubt es aber, zur Laufzeit eine Konvertierungstabelle zu laden. Tauchen also statt bestimmter Zeichen nur Fragezeichen auf, so müssen Sie über die Option den benötigten Zeichensatz angeben. Weitere Informationen zu diesem Problem finden Sie in der Manualpage &man.mount.cd9660.8;. Damit der Kernel diese Zeichenkonvertierung (festgelegt durch die Option ) erkennt, müssen Sie das Kernelmodul cd9660_iconv.ko laden. Dazu fügen Sie folgende Zeile in loader.conf ein: cd9660_iconv_load="YES" Danach müssen Sie allerdings Ihr System neu starten. Alternativ können Sie das Kernelmodul auch direkt über &man.kldload.8; laden. Manchmal werden Sie die Meldung Device not configured erhalten, wenn Sie versuchen, eine CD-ROM einzuhängen. Für gewöhnlich liegt das daran, dass das Laufwerk meint es sei keine CD eingelegt, oder dass das Laufwerk auf dem Bus nicht erkannt wird. Es kann einige Sekunden dauern, bevor das Laufwerk merkt, dass eine CD eingelegt wurde. Seien Sie also geduldig. Manchmal wird ein SCSI-CD-ROM nicht erkannt, weil es keine Zeit hatte, auf das Zurücksetzen des Busses zu antworten. Wenn Sie ein SCSI-CD-ROM besitzen, sollten Sie die folgende Zeile in Ihre Kernelkonfiguration aufnehmen und einen neuen Kernel bauen: options SCSI_DELAY=15000 Die Zeile bewirkt, dass nach dem Zurücksetzen des SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem CD-ROM-Laufwerk genügend Zeit zu geben, darauf zu antworten. Brennen von rohen CDs Es ist möglich eine Datei auch direkt auf eine CD zu brennen, ohne vorher auf ihr ein ISO 9660-Dateisystem einzurichten. Einige Leute nutzen dies, um Datensicherungen durchzuführen. Diese Vorgehensweise hat den Vorteil, dass sie schneller als das Brennen einer normalen CD ist. &prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate Um die Daten einer solchen CD abzurufen, müssen die Daten direkt von dem rohen Gerät gelesen werden: &prompt.root; tar xzvf /dev/acd1 Eine auf diese Weise gefertigte CD kann nicht in das Dateisystem eingehangen werden. Sie kann auch nicht auf einem anderen Betriebssystem gelesen werden. Wenn Sie die erstellten CDs in das Dateisystem einhängen oder mit anderen Betriebssystemen austauschen wollen, müssen Sie &man.mkisofs.8; wie oben beschrieben benutzen. Der ATAPI/CAM Treiber MarcFonvieilleBeigetragen von CD-Brenner ATAPI/CAM Treiber Mit diesem Treiber kann auf ATAPI-Geräte, wie CD-ROM-, CD-RW- oder DVD-Laufwerke, mithilfe des SCSI-Subsystems zugegriffen werden. Damit können Sie SCSI-Werkzeuge, wie sysutils/cdrdao oder &man.cdrecord.1;, zusammen mit einem ATAPI-Gerät benutzen. Um den Treiber zu benutzen, fügen Sie die folgende Zeile in /boot/loader.conf ein: atapicam_load="YES" Um den Treiber zu aktivieren, muss das System neu gestartet werden. Benutzer, die es vorziehen &man.atapicam.4;-Unterstützung statisch in den Kernel zu komplillieren, sollten diese Zeile in die Kernelkonfigurationsdatei hinzufügen: device atapicam Die folgenden Zeilen werden ebenfalls benötigt, sollten aber schon Teil der Kernelkonfiguration sein: device ata device scbus device cd device pass Übersetzen und installieren Sie den neuen Kernel. Starten Sie anschließend das System neu. Während des Bootvorgangs sollte der CD-Brenner ungefähr so angezeigt werden: acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed Über den Gerätenamen /dev/cd0 kann nun auf das Laufwerk zugegriffen werden. Um beispielsweise eine CD-ROM in /mnt einzuhängen, geben Sie folgendes ein: &prompt.root; mount -t cd9660 /dev /cd0 /mnt Die SCSI-Adresse des Brenners können Sie als root wie folgt ermitteln: &prompt.root; camcontrol devlist <MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) Die SCSI-Adresse 1,0,0 können Sie mit den SCSI-Werkzeugen, zum Beispiel &man.cdrecord.1;, verwenden. Weitere Informationen über das ATAPI/CAM- und das SCSI-System finden Sie in &man.atapicam.4; und &man.cam.4;. DVDs benutzen MarcFonvieilleBeigetragen von AndyPolyakovMit Beiträgen von DVD brennen Einführung Nach der CD ist die DVD die nächste Generation optischer Speichermedien. Auf einer DVD können mehr Daten als auf einer CD gespeichert werden. DVDs werden als Standardmedium für Videos verwendet. Für beschreibbare DVDs existieren fünf Medienformate: DVD-R: Dies war das erste verfügbare Format. Das Format wurde vom DVD-Forum festgelegt. Die Medien sind nur einmal beschreibbar. DVD-RW: Dies ist die wiederbeschreibbare Version des DVD-R Standards. Eine DVD-RW kann ungefähr 1000 Mal beschrieben werden. DVD-RAM: Dies ist ein wiederbeschreibbares Format, das wie ein Wechsellaufwerk betrachtet werden kann. Allerdings sind die Medien nicht kompatibel zu den meisten DVD-ROM-Laufwerken und DVD-Video-Spielern, da das DVD-RAM-Format nur von wenigen Brennern unterstützt wird. Informationen zur Nutzung von DVD-RAM finden Sie in . DVD+RW: Ist ein wiederbeschreibbares Format, das von der DVD+RW Alliance festgelegt wurde. Eine DVD+RW kann ungefähr 1000 Mal beschrieben werden. DVD+R: Dieses Format ist die nur einmal beschreibbare Variante des DVD+RW Formats. Auf einer einfach beschichteten DVD können 4.700.000.000 Bytes gespeichert werden. Das sind 4,38 GB oder 4485 MB (1 Kilobyte sind 1024 Bytes). Die physischen Medien sind unabhängig von der Anwendung. Ein DVD-Video ist eine spezielle Anordnung von Dateien, die auf irgendein Medium, beispielsweise DVD-R, DVD+R oder DVD-RW geschrieben werden kann. Bevor Sie ein Medium auswählen, müssen Sie sicherstellen, dass der Brenner und der DVD-Spieler mit dem Medium umgehen können. Konfiguration Benutzen Sie &man.growisofs.1;, um DVDs zu beschreiben. Das Kommando ist Bestandteil von sysutils/dvd+rw-tools, und kann mit allen DVD-Medien umgehen. Diese Werkzeuge verwenden das SCSI-Subsystem, um auf die Geräte zuzugreifen. Daher muss ATAPI/CAM-Unterstützung geladen, oder statisch in den Kernel kompiliert werden. Sollte der Brenner jedoch die USB-Schnittstelle nutzen, wird diese Unterstützung nicht benötigt. Weitere Informationen zur Konfiguration von USB-Geräten finden Sie in . Für ATAPI-Geräte müssen ebenfalls DMA-Zugriffe aktiviert werden. Dazu wird die folgende Zeile in /boot/loader.conf eingefügt: hw.ata.atapi_dma="1" Bevor Sie dvd+rw-tools benutzen, lesen Sie bitte die Hardware-Informationen auf der Seite Hardware Compatibility Notes. Für eine grafische Oberfläche sollten Sie sich sysutils/k3b ansehen, das eine benutzerfreundliche Schnittstelle zu &man.growisofs.1; und vielen anderen Werkzeugen bietet. Daten-DVDs brennen &man.growisofs.1; erstellt mit dem Programm mkisofs das Dateisystem und brennt anschließend die DVD. Vor dem Brennen braucht daher kein Abbild der Daten zu erstellt werden. Wenn Sie von den Daten im Verzeichnis /path/to/data eine DVD+R oder eine DVD-R brennen wollen, benutzen Sie das nachstehende Kommando: &prompt.root; growisofs -dvd-compat -Z /dev /cd0 -J -R /path/to/data In diesem Beispiel wird an &man.mkisofs.8; durchgereicht und dient zum Erstellen des Dateisystems (hier: ein ISO-9660-Dateisystem mit Joliet- und Rock-Ridge-Erweiterungen). Weiteres entnehmen Sie bitte der Hilfeseite &man.mkisofs.8;. Die Option wird für die erste Aufnahme einer Single- oder Multisession benötigt. Ersetzen Sie /dev/cd0 mit dem Gerätenamen des DVD-Gerätes. Die Nutzung von schließt das Medium, weitere Daten können danach nicht mehr angehängt werden. Dies sollte auch eine eine bessere Kompatibilität mit anderen DVD-ROM-Laufwerken bieten. Um ein vorher erstelltes Abbild der Daten zu brennen, beispielsweise imagefile.iso, verwenden Sie: &prompt.root; growisofs -dvd-compat -Z /dev /cd0=imagefile.iso Die Schreibgeschwindigkeit hängt von den verwendeten Medium sowie dem verwendeten Gerät ab und sollte automatisch gesetzt werden. Um die Schreibgeschwindigkeit vorzugeben, verwenden Sie . Beispiele finden Sie in &man.growisofs.1;. - Um grössere Dateien als 4.38GB zu unterstützen, ist es + Um größere Dateien als 4.38GB zu unterstützen, ist es notwendig ein UDF/ISO-9660 Hybrid-Dateisystem zu erstellen. Dieses Dateisystem muss mit zusätzlichen Parametern bei &man.mkisofs.8; und allen relevanten Programmen, wie beispielsweise &man.growisofs.1;) erzeugt werden. Dies ist nur notwendig, wenn Sie ein ISO-Image erstellen oder direkt auf eine DVD schreiben wollen. DVDs, die in dieser Weise hergestellt worden sind, müssen als UDF-Dateisystem mit &man.mount.udf.8; eingehangen werden. Sie sind nur auf Betriebssystemen, die UDF unterstützen brauchbar, ansonsten sieht es so aus, als ob sie kaputte Dateien enthalten würden. Um diese Art von ISO-Datei zu erstellen: &prompt.user; mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data Um Daten direkt auf eine DVD zu brennen, geben Sie den folgenden Befehl ein: &prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data Wenn ein ISO-Abbild bereits große Dateien enthält, sind keine weiteren Optionen für &man.growisofs.1; notwendig, um das Abbild auf die DVD zu brennen. Achten Sie darauf, eine aktuelle Version von sysutils/cdrtools zu verwenden, welche &man.mkisofs.8; enthält, da ältere Versionen keinen Support für große Dateien enthalten. Falls die neueste Version nicht funktioniert, installieren Sie sysutils/cdrtools-devel und lesen Sie &man.mkisofs.8;. DVD-Videos brennen DVD DVD-Video Ein DVD-Video ist eine spezielle Anordnung von Dateien, die auf den ISO-9660 und den micro-UDF (M-UDF) Spezifikationen beruht. Da DVD-Video auf eine bestimmte Datei-Hierarchie angewiesen ist, müssen DVDs mit speziellen Programmen wie multimedia/dvdauthor erstellt werden. Ist bereits ein Abbild des Dateisystems eines DVD-Videos vorhanden, kann es auf die gleiche Weise wie jedes andere Abbild gebrannt werden. Wenn dvdauthor verwendet wurde, um die DVD zu erstellen und die Resultate in /path/to/video liegen, kann das folgende Kommando verwendet werden, um ein DVD-Video zu brennen: &prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video wird an &man.mkisofs.8; weitergereicht, um die Datei-Hierarchie für ein DVD-Video zu erstellen. Weiterhin bewirkt diese Option, dass &man.growisofs.1; mit aufgerufen wird. DVD+RW-Medien benutzen DVD DVD+RW Im Gegensatz zu CD-RW-Medien müssen DVD+RW-Medien erst formatiert werden, bevor sie benutzt werden können. Es wird empfohlen &man.growisofs.1; einzusetzen, da das Programm Medien automatisch formatiert, wenn es erforderlich ist. Es ist jedoch möglich, auch dvd+rw-format zu nutzen, um die DVD+RW zu formatieren: &prompt.root; dvd+rw-format /dev /cd0 Dieser Vorgang muss nur einmal durchgeführt werden. Denken Sie daran, dass nur neue DVD+RWs formatiert werden müssen. Anschließend können DVD+RWs, wie gewohnt, gebrannt werden. Wenn Sie auf einer DVD+RW ein neues Dateisystem erstellen wollen, brauchen Sie die DVD+RW vorher nicht zu löschen. Überschreiben Sie einfach das vorige Dateisystem indem Sie eine neue Session anlegen: &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdata Das DVD+RW-Format erlaubt es, Daten an eine vorherige Aufnahme anzuhängen. Dazu wird eine neue Session mit der schon bestehenden zusammengeführt. Es wird keine Multi-Session geschrieben, sondern &man.growisofs.1; vergrößert das ISO-9660-Dateisystem auf dem Medium. Das folgende Kommando fügt weitere Daten zu einer vorher erstellten DVD+RW hinzu: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata Wenn Sie eine DVD+RW erweitern, verwenden Sie dieselben &man.mkisofs.8;-Optionen wie beim Erstellen der DVD+RW. Verwenden Sie , um bessere Kompatibilität mit DVD-ROM-Laufwerken zu gewährleisten. Zu einem DVD+RW-Medium können Sie mit dieser Option auch weiterhin Daten hinzufügen. Um das Medium zu löschen, verwenden Sie: &prompt.root; growisofs -Z /dev/ cd0=/dev/zero DVD-RW-Medien benutzen DVD DVD-RW Eine DVD-RW kann mit zwei Methoden beschrieben werden: Sequential-Recording oder Restricted-Overwrite. Voreingestellt ist Sequential-Recording. Eine neue DVD-RW kann direkt beschrieben werden; sie muss nicht vorher formatiert werden. Allerdings muss eine DVD-RW, die mit Sequential-Recording aufgenommen wurde, zuerst gelöscht werden, bevor eine neue Session aufgenommen werden kann. Der folgende Befehl löscht eine DVD-RW im Sequential-Recording-Modus: &prompt.root; dvd+rw-format -blank=full /dev/ cd0 Das vollständige Löschen mit dauert mit einem 1x Medium ungefähr eine Stunde. Wenn die DVD-RW im Disk-At-Once-Modus (DAO) aufgenommen wurde, kann sie mit schneller gelöscht werden. Um eine DVD-RW im DAO-Modus zu brennen, benutzen Sie das folgende Kommando: &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso Die Option sollte nicht erforderlich sein, da &man.growisofs.1; den DAO-Modus automatisch erkennt. Der Restricted-Overwrite-Modus sollte mit jeder DVD-RW verwendet werden, da er flexibler als der voreingestellte Sequential-Recording-Modus ist. Um Daten auf eine DVD-RW im Sequential-Recording-Modus zu schreiben, benutzen Sie dasselbe Kommando wie für die anderen DVD-Formate: &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/data Um weitere Daten zu einer Aufnahme hinzuzufügen, benutzen Sie mit &man.growisofs.1;. Werden die Daten im Sequential-Recording-Modus hinzugefügt, wird eine neue Session erstellt. Das Ergebnis ist ein Multi-Session-Medium. Eine DVD-RW im Restricted-Overwrite-Modus muss nicht gelöscht werden, um eine neue Session aufzunehmen. Das Medium kann einfach mit überschrieben werden. Mit kann das ISO-9660-Dateisystem, wie mit einer DVD+RW, vergrößert werden. Die DVD enthält danach eine Session. Benutzen sie das nachstehende Kommando, um den Restricted-Overwrite-Modus einzustellen: &prompt.root; dvd+rw-format /dev /cd0 Das folgende Kommando stellt den Modus wieder auf Sequential-Recording zurück: &prompt.root; dvd+rw-format -blank=full /dev /cd0 Multi-Session Nur wenige DVD-ROM-Laufwerke unterstützen Multi-Session-DVDs und lesen meist nur die erste Session. Mehrere Sessions werden von DVD+R, DVD-R und DVD-RW im Sequential-Recording-Modus unterstützt. Im Modus Restricted-Overwrite gibt nur eine Session. Wenn das Medium noch nicht geschlossen ist, erstellt das nachstehende Kommando eine neue Session auf einer DVD+R, DVD-R oder DVD-RW im Sequential-Recording-Modus: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata Wird dieses Kommando mit DVD+RW- oder DVD-RW-Medien im Restricted-Overwrite-Modus benutzt, werden die neuen Daten mit den Daten der bestehenden Session zusammengeführt. Das Medium enthält danach eine Session. Nutzen Sie diese Methode, um neue Daten zu einer bestehenden Session hinzuzufügen. Für den Anfang und das Ende einer Session wird auf dem Medium zusätzlicher Platz verbraucht. Um den Speicherplatz auf dem Medium optimal auszunutzen, sollten Sie daher Sessions mit vielen Daten hinzufügen. Auf ein DVD+R-Medium passen maximal 154 Sessions, 2000 Sessions auf ein DVD-R-Medium und 127 Sessions auf eine DVD+R Double Layer. Weiterführendes dvd+rw-mediainfo /dev/cd0 zeigt Informationen über eine im Laufwerk liegende DVD an. Weiteres zu dvd+rw-tools finden Sie in &man.growisofs.1;, auf der dvd+rw-tools Web-Seite und in den Archiven der cdwrite-Mailingliste. Wenn Sie einen Problembericht zur Nutzung der dvd+rw-tools erstellen, fügen Sie immer die Ausgabe von dvd+rw-mediainfo hinzu. DVD-RAM DVD DVD-RAM Konfiguration DVD-RAM-fähige Brenner nutzten die SCSI- oder ATAPI-Schnittstelle. Für ATAPI-Geräte muss der DMA-Modus aktiviert werden, indem die folgende Zeile in /boot/loader.conf hinzugefügt wird: hw.ata.atapi_dma="1" Das Medium vorbereiten Eine DVD-RAM kann mit einer Wechselplatte vergleichen werden. Wie diese, muss auch eine DVD-RAM vor dem ersten Einsatz formatiert werden. In diesem Beispiel wird das gesamte Medium mit dem Standard-UFS2-Dateisystem formatiert: &prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1 &prompt.root; bsdlabel -Bw acd0 &prompt.root; newfs /dev/acd0 Denken Sie dabei daran, dass Sie gegebenenfalls die Gerätedatei (hier acd0) an Ihre Konfiguration anpassen müssen. Das Medium einsetzen Nachdem die DVD-RAM formatiert ist, kann sie wie eine normale Festplatte gemountet werden: &prompt.root; mount /dev/acd0 /mnt Danach kann schreibend und lesend auf das Medium zugegriffen werden. Disketten benutzen Dieser Abschnitt beschreibt die Formatierung von 3,5 Zoll Disketten in &os;. Disketten formatieren Bevor eine Diskette benutzt werden kann, muss sie (low-level) formatiert werden, was normalerweise der Hersteller schon gemacht hat. Sie können die Diskette allerdings noch einmal formatieren, um das Medium zu überprüfen. Benutzen Sie &man.fdformat.1;, um Disketten unter &os; zu formatieren. Achten Sie dabei auf Fehlermeldungen, die schlechte Speichermedien anzeigen. Um eine Diskette zu formatieren, legen Sie eine 3,5 Zoll Diskette in das erste Diskettenlaufwerk ein und führen das folgende Kommando aus: &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 Nach dem Formatieren muss auf der Diskette ein Disklabel erstellt werden, um die Größe und Geometrie der Diskette zu erkennen. Eine Liste der unterstützten Geometrien finden Sie in /etc/disktab. Erstellen Sie nun das Label mit &man.bsdlabel.8;: &prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440 Auf der Diskette kann nun ein Dateisystem erstellt werden (high-level Formatierung). Das Dateisystem der Diskette kann entweder UFS oder FAT sein, wobei FAT für Disketten in der Regel die bessere Wahl ist. Um die Diskette mit FAT zu formatieren, geben Sie folgendes Kommando ein: &prompt.root; /sbin/newfs_msdos /dev/fd0 Die Diskette kann nun benutzt werden. Um die Diskette zu verwenden, kann sie mit &man.mount.msdosfs.8; eingehängt werden. Man kann auch emulators/mtools aus der Ports-Sammlung installieren, um mit der Diskette zu arbeiten. Bandmedien benutzen Bandmedien Bandmedien haben sich mit der Zeit weiterentwickelt, werden jedoch in heutigen Systemen immer weniger verwendet. Moderne Backup-Systeme verwenden Offsite-Backups in Verbindung mit lokalen Wechseldatenträgern. Weiterhin unterstützt &os; SCSI-Bandlaufwerke, wie etwa LTO und die älteren DAT-Laufwerke. Zusätzlich gibt es begrenzte Unterstützung für SATA- und USB-Bandlaufwerke. Serieller Zugriff mit &man.sa.4; Bandlaufwerke &os; nutzt den &man.sa.4; Treiber, der die Schnittstellen /dev/sa0, /dev/nsa0 und /dev/esa0 bereitstellt. Im üblichen Gebrauch wird jedoch meist nur /dev/sa0 benötigt. /dev/nsa0 bezeichnet das selbe pysikalische Laufwerk wie /dev/sa0, aber nach dem Schreiben einer Datei wird das Band nicht zurückgespult, was es erlaubt, mehr als eine Datei auf ein Band zu schreiben. Die Verwendung von /dev/esa0 wirft das Band aus, nachdem das Gerät geschlossen wurde. Steuerung des Bandlaufwerks mit &man.mt.1; Bandmedien mt &man.mt.1; ist das &os; Dienstprogramm für die Steuerung weiterer Optionen des Bandlaufwerks, wie zum Beispiel die Suche nach Dateien auf dem Band, oder um Kontrollmarkierungen auf das Band zu schreiben. Beispielsweise können die ersten drei Dateien auf einem Band erhalten bleiben, indem diese übersprungen werden, bevor eine neue Datei geschrieben wird: &prompt.root; mt -f /dev/nsa0 fsf 3 Benutzung von &man.tar.1; zum Lesen und Schreiben von Bandsicherungen Hier ein Beispiel, wie eine einzelne Datei mittels &man.tar.1; auf ein Band geschrieben wird: &prompt.root; tar cvf /dev/sa0 file Wiederherstellung von Dateien aus dem &man.tar.1;-Archiv von Band in das aktuelle Verzeichnis: &prompt.root; tar xvf /dev/sa0 Die Benutzung von &man.dump.8; und &man.restore.8; zum Erstellen und Wiederherstellen von Sicherungen. Ein einfache Sicherung von /usr mit &man.dump.8;: &prompt.root; dump -0aL -b64 -f /dev/nsa0 /usr Interaktive Wiederherstellung von Dateien aus einer &man.dump.8;-Datei von Band in das aktuelle Verzeichnis: &prompt.root; restore -i -f /dev/nsa0 Weitere Software zur Bandsicherung Es stehen weitere Programme zur Vereinfachung von Bandsicherungen zur Verfügung. Zu den bekanntesten gehören Amanda und Bacula. Diese Programme zielen darauf ab, Sicherungen einfacher und bequemer zu machen, oder um komplexe Sicherungen mehrerer Maschinen zu automatisieren. Die Ports-Sammlung enthält sowohl diese, als auch weitere Programme für die Bandsicherung. Datensicherung Die Planung und Umsetzung einer Backup-Strategie ist unerlässlich, um Daten in bestimmten Situationen wiederherstellen zu können, zum Beispiel bei Plattendefekten, versehentlichem Löschen von Dateien, willkürlicher Korrumpierung von Dateien oder der vollständigen Zerstörung des Systems und der Backups, die am gleichen Ort aufbewahrt werden. Die Art und der Zeitplan des Backups kann variieren, abhängig von der Wichtigkeit der Daten, der benötigten Granularität zur Wiederherstellung von Dateien und der Dauer einer akzeptablen Ausfallzeit. Zu den möglichen Backup-Strategien gehören unter anderem: Die Archivierung des kompletten Systems auf externen Datenträgern. Dieser Ansatz schützt zwar vor allen oben aufgeführten Problemen, ist aber zeitaufwändig und unbequem bei der Wiederherstellung, insbesondere für nicht privilegierte Benutzer. Dateisystem-Snapshots sind nützlich bei der Wiederherstellung von gelöschten Dateien, bzw. früheren Versionen von Dateien. Kopien ganzer Dateisysteme oder Festplatten, die mit einem anderen System im Netzwerk mittels net/rsync synchronisiert werden. Hardware oder Software RAID, was im Falle von Plattendefekten die Ausfallzeit minimiert oder vermeidet. Üblicherweise wird eine Mischung aus verschiedenen Strategien verwendet. Es kann zum Beispiel ein Sicherungsplan erstellt und automatisiert werden, um eine wöchentliche, vollständige Systemsicherung, ergänzt mit stündlichen ZFS-Snapshots, zu erstellen. Darüber hinaus könnte man eine manuelle Sicherung einzelner Verzeichnisse oder Dateien machen, bevor diese bearbeitet oder gelöscht werden. Dieser Abschnitt beschreibt einige Programme, die zur Erstellung und Verwaltung von Sicherungen unter &os; verwendet werden können. Sicherung von Dateisystemen Backup-Software dump / restore - dump + dump - restore + restore - dump und restore - sind die traditionellen Backup-Programme in &unix; Systemen. - Sie betrachten das Laufwerk als eine Ansammlung von Blöcken, - operieren also unterhalb des Abstraktionslevels von Dateien, - Links und Verzeichnissen, die die Grundlage des + Die traditionellen &unix;-Programme zum Sichern und + Wiederherstellen von Dateisystemen sind &man.dump.8; und + &man.restore.8;. Diese Programme arbeiten auf der Block-Ebene + der Festplatte, also unterhalb des Abstraktionslevels von + Dateien, Links und Verzeichnissen, die die Grundlage des Dateisystemkonzepts bilden. Im Gegensatz zu anderen Backup-Programmen sichert dump ein ganzes - Dateisystem auf einem Gerät. Es ist nicht möglich nur einen - Teil des Dateisystems, oder einen Verzeichnisbaum, der mehr - als ein Dateisystem umfasst, zu sichern. - dump schreibt keine Dateien oder - Verzeichnisse, sondern die Blöcke, aus denen Dateien und - Verzeichnisse bestehen. Wenn restore für - das Extrahieren von Daten verwendet wird, werden temporäre - Dateien standardmäßig in /tmp/ abgelegt. - Wenn Sie von einer Platte mit einem kleinen - /tmp-Verzeichnis zurücksichern, setzen - Sie die Umgebungsvariable TMPDIR auf ein - Verzeichnis mit mehr freiem Speicherplatz, damit die - Wiederherstellung gelingt. + Dateisystem und nicht nur einen Teil des Dateisystems, oder + einen Verzeichnisbaum, der mehr als ein Dateisystem umfasst. + Anstatt Dateien oder Verzeichnisse zu schreiben, schreibt + dump die Blöcke, aus denen die Dateien und + Verzeichnisse bestehen. Wird dump benutzt, um das Root-Verzeichnis zu sichern, werden /home, /usr und viele andere Verzeichnisse nicht gesichert, da dies normalerweise Mountpunkte für andere Dateisysteme oder symbolische Links zu diesen Dateisystemen sind. - dump hat einige Eigenarten, die noch aus den - frühen Tagen der Version 6 von AT&T &unix; (ca. 1975) - stammen. Die Parameter - sind für 9-Spur-Bänder (6250 bpi) voreingestellt, - nicht auf die heute üblichen Medien hoher Dichte (bis zu - 62.182 ftpi). Bei der Verwendung der Kapazitäten - moderner Bandlaufwerke muss diese Voreinstellung auf der - Kommandozeile überschrieben werden. + Wenn restore zum Extrahieren von Daten + verwendet wird, werden temporäre Dateien standardmäßig in + /tmp abgelegt. Wenn Sie von einer Platte + mit einem kleinen /tmp-Verzeichnis + zurücksichern, setzen Sie die Umgebungsvariable + TMPDIR auf ein Verzeichnis mit mehr freiem + Speicherplatz, damit die Wiederherstellung gelingt. - .rhosts + Beachten Sie bei der Verwendung von + dump, dass es einige Eigenarten aus den + frühen Tagen der Version 6 von AT&T &unix; (ca. 1975) + beibehalten hat. Die Standardparameter gehen davon aus, dass + auf einem 9-Spur-Band gesichert wird, und nicht auf ein + anderes Medium oder auf Sicherungsbänder mit hoher Dichte. + Diese Standardwerte müssen auf der Kommandozeile überschrieben + werden. - rdump und rrestore - können Daten über Netzwerk auf ein Band, das sich in einem - Laufwerk eines anderen Computers befindet, überspielen. Beide - Programme benutzen die Funktionen &man.rcmd.3; und - &man.ruserok.3; zum Zugriff auf das entfernte Bandlaufwerk. - Daher muss der Anwender, der das Backup durchführt, auf dem - entfernten Rechner in .rhosts eingetragen - sein. Die Argumente zu rdump und - rrestore müssen zur Verwendung auf dem - entfernten Computer geeignet sein. Wenn zum Beispiel mit - rdump von einem &os;-Rechner aus auf ein - Exabyte-Bandlaufwerk mit Namen komodo - zugreifen werden soll, nutzen Sie: + + .rhosts + - &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 + Es ist möglich, das Dateisystem über das Netzwerk auf + einem anderen Rechner zu sichern, oder auf einem Bandlaufwerk + eines anderen Rechners. Obwohl die Programme &man.rdump.8; + und &man.rrestore.8; für diese Zwecke benutzt werden können, + gelten sie als nicht sicher. - Die Authentifizierung über .rhosts - stellt ein Sicherheitsrisiko dar. Nutzen Sie diese Funktion - also mit Vorsicht. + Verwenden Sie stattdessen dump und + restore in einer sichereren Weise über eine + SSH-Verbindung. In diesem Beispiel wird + eine vollständige, komprimierte Sicherung des + /usr Dateisystems erstellt, das + anschließend an einen bestimmten Host über eine + SSH-Verbindung gesendet wird. - Es ist auch möglich, dump und - restore über eine gesicherte Verbindung - mit ssh einzusetzen: - <command>dump</command> mit <application>ssh</application> benutzen &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz - Alternativ kann das integrierte RSH benutzt - werden. + In diesem Beispiel wird RSH gesetzt, um + über eine SSH-Verbindung eine Sicherung auf + ein Bandlaufwerk eines entfernten Systems zu schreiben: <command>dump</command> über <application>ssh</application> mit gesetzter <envar>RSH</envar> benutzen &prompt.root; env RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usr Sicherung von Verzeichnissen Backup-Software tar Einige integrierte Werkzeuge stehen zur Sicherung und Wiederherstellung von bestimmten Dateien und Verzeichnissen bei Bedarf zur Verfügung. - &man.tar.1; stammt ebenfalls aus Version 6 von AT&T - &unix; (ca. 1975). tar arbeitet mit dem - Dateisystem und schreibt Dateien und Verzeichnisse auf das - Band. tar unterstützt zwar nicht alle - Optionen, die bei &man.cpio.1; zur Verfügung stehen, aber - dafür erfordert es auch nicht die ungewöhnliche - Kommando-Pipeline, die von cpio verwendet - wird. + Wenn es um die Sicherung von Dateien in einem Verzeichnis + geht, ist &man.tar.1; eine gute Wahl. Dieses Werkzeug stammt + aus Version 6 von AT&T &unix; und erwartet standardmäßig + eine rekursive Sicherung auf ein lokales Band. Es können + jedoch Optionen angegeben werden, um den Namen einer + Sicherungsdatei zu bestimmen. tar - Um Daten mit tar auf ein - angeschlossenes Exabyte-Bandlaufwerk am Host - komodo zu archivieren: + In diesem Beispiel wird eine komprimierte Sicherung des + aktuellen Verzeichnisses nach + /tmp/mybackup.tgz gespeichert. Achten + Sie bei der Sicherungsdatei darauf, dass sie nicht in dem + Verzeichnis gepeichert wird, welches gesichert werden + soll. - &prompt.root; tar cf - . | rsh komodo dd of=tape- -device obs=20b + + Das aktuelle Verzeichnis mit <command>tar</command> + sichern - Bei der Sicherung über ein unsicheres Netzwerk, sollte - stattdessen ssh benutzt werden. + &prompt.root; tar czvf /tmp/mybackup.tgz . + + Um eine komplette Sicherung wiederherzustellen, wechseln + Sie mit cd in das Verzeichnis, in dem Sie + die Daten wiederherstellen möchten und geben Sie den Namen der + Sicherungsdatei an. Beachten Sie, dass dabei alle Dateien in + dem Verzeichnis überschrieben werden. Im Zweifel sichern Sie + besser in einem temporären Verzeichnis, oder geben Sie den + Verzeichnisnamen bei der Wiederherstellung an. + + + Wiederherstellung mit <command>tar</command> in das + aktuelle Verzeichnis + + &prompt.root; tar xzvf /tmp/mybackup.tgz + + + Es gibt dutzende Optionen, die in &man.tar.1; beschrieben + werden. Das Programm unterstützt auch die Verwendung von + Ausschlußmustern, um bestimmte Dateien von der Sicherung oder + Wiederherstellung von Verzeichnissen auszuschließen. + Backup-Software cpio - - cpio - - &man.cpio.1; ist das ursprüngliche Programm von - &unix; Systemen zum Dateitransfer mit magnetischen Medien. - cpio hat Optionen zum Byte-Swapping, zum - Schreiben einer Anzahl verschiedener Archivformate und zum - Weiterleiten von Daten an andere Programme über eine Pipeline. - Dieses letzte Leistungsmerkmal macht cpio - zu einer ausgezeichneten Wahl für Installationsmedien. - cpio kann jedoch keine Dateibäume - durchlaufen, so dass eine Liste der zu bearbeitenden Dateien - über stdin angegeben werden muss. + Um bestimmte, aufgelistete Dateien und Verzeichnisse zu + sichern, ist &man.cpio.1; eine gute Wahl. Im Gegensatz zu + tar weiß cpio nicht + wie ein Verzeichnisbaum durchlaufen wird. Daher ist es auf + eine Liste von zu sichernden Dateien angewiesen. - - cpio - + So kann beispielsweise eine Liste von Dateien mit + ls oder find erzeugt + werden. Dieses Beispiel erstellt eine rekursive Liste des + aktuellen Verzeichnisses, die dann über eine Pipe an + cpio übergeben wird, um eine Sicherung + namens /tmp/mybackup.cpio zu + erstellen. - cpio unterstützt keine Backups - über das Netzwerk. Man kann aber eine Pipeline und - ssh verwenden, um Daten an ein entferntes - Bandlaufwerk zu senden. + + Rekursive Sicherung des aktuellen Verzeichnisses mit + <command>ls</command> und <command>cpio</command> - &prompt.root; for f in directory_list; do -find $f >> backup.list -done -&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" + &prompt.root; ls -R | cpio -ovF /tmp/mybackup.cpio + - Dabei steht directory_list für - eine Aufzählung der Verzeichnisse, die gesichert werden - sollen. user@host - gibt den Benutzer auf dem Zielrechner an, der die Sicherung - laufen lässt. Der Ort der Sicherung wird durch - backup_device angegeben, - beispielsweise/dev/nsa0. - Backup-Software pax pax POSIX IEEE - &man.pax.1; ist IEEE/&posix; Antwort auf - tar und cpio. Über die - Jahre hinweg sind die verschiedenen Versionen von + &man.pax.1; ist ein Programm, welches versucht die + Funktionen von tar und + cpio zu kombinieren. Über die Jahre + hinweg sind die verschiedenen Versionen von tar und cpio leicht - inkompatibel geworden. Daher hat &posix;, statt eine - Standardisierung zwischen diesen auszufechten, ein neues - Archivprogramm geschaffen. pax versucht - viele der unterschiedlichen cpio- und + inkompatibel geworden. Daher hat &posix; + pax geschaffen, welches versucht viele + der unterschiedlichen cpio- und tar-Formate zu lesen und zu schreiben, - außerdem einige neue, eigene Formate. Die Kommandostruktur - ähnelt eher cpio als - tar. + außerdem einige neue, eigene Formate. + + Für die vorangegangenen Beispiele wäre ein äquivalenter + Aufruf von pax: + + + Das aktuelle Verzeichnis mit <command>pax</command> + sichern + + &prompt.root; pax -wf /tmp/mybackup.pax + <application>Amanda</application> Backup-Software Amanda Amanda Amanda (Advanced Maryland Network Disk Archiver) ist ein Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein Amanda-Server kann auf einem einzigen Bandlaufwerk Datensicherungen von jeder beliebigen Anzahl von Computern speichern, sofern auf diesen jeweils ein Amanda-Client läuft und sie über Netzwerk mit dem Amanda-Server verbunden sind. Ein häufiges Problem bei Standorten mit einer Anzahl großer Festplatten ist, dass das Kopieren der Daten auf Band langsamer vor sich geht als solche Daten anfallen. Amanda löst dieses Problem durch Verwendung einer Holding Disk, einer Festplatte zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme. Für Datensicherungen über einen längeren Zeitraum erzeugt Amanda Archivsets von allen Dateisystemen, die in Amandas Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe von Bändern mit vollen Backups und Reihen von inkrementellen oder differentiellen Backups, die jeweils nur die Unterschiede zum vorigen Backup enthalten. Zur Wiederherstellung von beschädigten Dateisystemen benötigt man Das Letzte volle Backup und alle darauf folgenden inkrementellen Backups. Die Konfigurationsdatei ermöglicht die Feineinstellung der Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum Schreiben der Daten auf das Band jedes der oben beschriebenen Backuprogramme verwenden. Amanda ist nicht Teil des Basissystems, es muss über die Ports-Sammlung oder als Paket installiert werden. Die Wiederherstellung in einem Notfall Vor dem Unglück Es sind vier Vorkehrungen zu treffen, um auf jedes erdenkliche Unglück vorbereitet zu sein. bsdlabel Als erstes drucken Sie das bsdlabel jeder Festplatte mit einem Befehl wie bsdlabel da0 | lpr. Drucken Sie ebenfalls eine Kopie von /etc/fstab) sowie alle Bootmeldungen. Live-CD Zweitens, brennen Sie eine livefs-CD. Diese CD-ROM enthält alle nötigen Programme, um in einen Reperaturmodus zu starten, aus dem heraus Sie unter anderem &man.dump.8;, &man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;, &man.newfs.8; sowie &man.mount.8; starten können. ISO-Abbilder für das livefs-System finden Sie unter ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel.current;-RELEASE-&arch.i386;-livefs.iso. Seit &os; 9.0-RELEASE sind ISO-Abbilder für das livefs-System nicht mehr verfügbar. Neben den ISO-Abbildern für CD-ROM können auch Abbilder für USB-Datenspeicher verwendet werden, um ein System wiederherzustellen. Das memstick-Abbild für &os;/&arch.i386; &rel.current;-RELEASE finden Sie unter ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img. Drittens, machen Sie regelmäßig Backups auf Band. Jede Änderung seit dem letzten Backup kann unwiederbringlich verloren gehen. Versehen Sie die Backup-Bänder mit Schreibschutz. Viertens, testen Sie das erstellte livefs-System sowie die Backups. Dokumentieren Sie diesen Test und bewahren Sie diese Notizen zusammen mit der livefs-CD und den Backups. Diese Notizen können Ihnen im Notfall helfen eine versehentliche Zerstörung des Backups zu verhindern, während Sie unter Druck eine Wiederherstellung durchführen. Als zusätzliche Sicherheitsvorkehrung, kann man jeweils die livefs-CD und Bänder doppelt erstellen. Eine der Kopien sollte an einem entfernten Standort aufbewahrt werden. Ein entfernter Standort ist NICHT der Keller im gleichen Gebäude. Ein entfernter Standort sollte von den Computern und den Festplatten physikalisch durch eine erhebliche Entfernung getrennt sein. Nach dem Unglück Prüfen Sie als Erstes, ob die Hardware überlebt hat. Dank regelmäßigen Offside-Backups besteht kein Grund, sich um die Software Sorgen zu machen. Falls die Hardware beschädigt wurde, ersetzen Sie zuerst die defekten Teile bevor Sie den Computer benutzen. Falls die Hardware funktioniert, legen Sie die livefs-CD ein und starten den Rechner. Das originale Installationsprogramm wird auf dem Bildschirm angezeigt werden. Legen Sie zuerst Ihr Land fest. Danach öffnen Sie das Menü Fixit -- Repair mode with CD-ROM/DVD/floppy or start a shell. und wählen den Eintrag - CD-ROM/DVD -- Use the live filesystem + CD-ROM/DVD -- Use the live file system CD-ROM/DVD aus. restore und die anderen benötigten Programme, befinden sich dann im Verzeichnis /mnt2/rescue. Stellen Sie die Dateisysteme nacheinander wieder her. mount Root-Partition bsdlabel newfs Versuchen Sie mit mount die Root-Partition der ersten Festplatte einzuhängen. Wenn das bsdlabel beschädigt wurde, benutzen Sie bsdlabel um die Platte neu zu partitionieren und zu benennen und zwar so, dass die Festplatte mit dem Label übereinstimmt, welches ausgedruckt und aufbewahrt wurde. Verwenden Sie newfs um die Dateisysteme neu zu erstellen. Hängen Sie mit mount -u -o rw /mnt die Root-Partition der Festplatte mit Schreibzugriff ein. Benutzen Sie die Backups, um die Daten für das jeweilige Dateisystem wieder her zu stellen. Hängen Sie das Dateisystem mit umount /mnt wieder aus. Wiederholen Sie diesen Ablauf für jedes beschädigte Dateisystem. Sobald das System wieder läuft, machen Sie gleich wieder ein vollständiges Backup auf neue Bänder. Denn die Ursache für den Absturz oder den Datenverlust kann wieder zuschlagen. Eine weitere Stunde, die Sie jetzt noch investieren, kann später weiteres Missgeschick ersparen. Netzwerk-, speicher- und dateibasierte Dateisysteme MarcFonvieilleVerbessert und neu strukturiert von Laufwerke virtuelle Neben physikalischen Laufwerken, wie Disketten, CDs und Festplatten, unterstützt &os; auch virtuelle Laufwerke. NFS Coda Laufwerke speicherbasierte Laufwerke RAM-Disks Dazu zählen Netzwerkdateisysteme wie Network Filesystem und Coda, speicher- und dateibasierte Dateisysteme. Abhängig von der verwendeten &os; Version werden speicher- und dateibasierte Dateisysteme mit unterschiedlichen Werkzeugen angelegt. Gerätedateien werden unter &os; automatisch von &man.devfs.5; angelegt. Dateibasierte Laufwerke unter FreeBSD Laufwerke dateibasierte Unter &os; werden virtuelle Laufwerke, &man.md.4;, mit &man.mdconfig.8; erzeugt. Dazu muss das Modul &man.md.4; geladen sein. Bei der Verwendung einer eigenen Kernelkonfiguration, muss diese Zeile enthalten sein: device md &man.mdconfig.8; unterstützt verschiedene Arten von speicherbasierten virtuellen Laufwerken: speicherbasierte Laufwerke, deren Speicher von &man.malloc.9; zur Verfügung gestellt wird, und dateibasierte Laufwerke, deren Speicher von einer Datei oder dem Swap-Bereich zur Verfügung gestellt wird. Eine mögliche Anwendung ist das Einhängen von CD-ROMs. Das Abbild eines Dateisystems wird wie folgt eingehangen: Einhängen eines existierenden Abbildes unter &os; &prompt.root; mdconfig -a -t vnode -f diskimage -u 0 &prompt.root; mount /dev/md0 /mnt Ein neues Dateisystem-Abbild erstellen Sie mit &man.mdconfig.8; wie folgt: Erstellen eines dateibasierten Laufwerks mit <command>mdconfig</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdconfig -a -t vnode -f newimage -u 0 &prompt.root; bsdlabel -w md0 auto &prompt.root; newfs md0a /dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. super-block backups (for fsck -b #) at: 160, 2720, 5280, 7840 &prompt.root; mount /dev/md0a /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0a 4710 4 4330 0% /mnt Wenn keine Gerätenummer mit angegeben ist, wird von &man.md.4; automatisch eine ungenutzte Gerätenummer zugewiesen. Das zugewiesene Gerät wird auf der Standardausgabe ausgegeben (zum Beispiel md4). Weitere Informationen finden Sie in &man.mdconfig.8;. Obwohl &man.mdconfig.8; sehr nützlich ist, benötigt es einige Kommandos, um ein dateibasiertes Dateisystem zu erstellen. &os; enthält auch &man.mdmfs.8;, das die notwendigen Schritte in einem Befehl zusammenfasst. Es konfiguriert mit &man.mdconfig.8; ein &man.md.4;-Laufwerk, erstellt darauf mit &man.newfs.8; ein UFS-Dateisystem und hängt es anschließend mit &man.mount.8; ein. Das virtuelle Laufwerk aus dem obigen Beispiel kann mit den nachstehenden Befehlen erstellt werden: Mit <command>mdmfs</command> ein dateibasiertes Dateisystem erstellen &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdmfs -F newimage -s 5m md0 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4718 4 4338 0% /mnt Wenn ohne Gerätenummer verwendet wird, wählt &man.md.4; automatisch ein ungenutztes Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der Hilfeseite &man.mdmfs.8;. Speicherbasierte Laufwerke unter FreeBSD Laufwerke speicherbasierte Bei einem speicherbasierten Dateisystem sollte swap backing aktiviert werden. Das heißt allerdings nicht, dass das speicherbasierte Laufwerk automatisch auf die Festplatte ausgelagert wird, vielmehr wird der Speicherplatz danach aus einem Speicherpool angefordert, der bei Bedarf auf die Platte ausgelagert werden kann. Zusätzlich ist es möglich, &man.malloc.9;-gestützte speicherbasierte Laufwerke zu erstellen. Das Anlegen solcher Laufwerke kann allerdings zu einer System-Panic führen, wenn der Kernel danach über zu wenig Speicher verfügt. Erstellen eines speicherbasierten Laufwerks mit <command>mdconfig</command> &prompt.root; mdconfig -a -t swap -s 5m -u 1 &prompt.root; newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. with soft updates super-block backups (for fsck -b #) at: 160, 2752, 5344, 7936 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4718 4 4338 0% /mnt Erstellen eines speicherbasierten Laufwerks mit <command>mdmfs</command> &prompt.root; mdmfs -s 5m md2 /mnt &prompt.root; df /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt Virtuelle Laufwerke freigeben Laufwerke Freigabe von virtuellen Laufwerken Wenn ein virtuelles Laufwerk nicht mehr in Gebrauch ist, sollten seine belegten Ressourcen an das System zurückgegeben werden. Zuerst wird das Dateisystem abgehängt und dann die benutzten Ressourcen mit &man.mdconfig.8; freigegeben. Alle von /dev/md4 belegten Ressourcen werden mit dem nachstehenden Kommando freigegeben: &prompt.root; mdconfig -d -u 4 Informationen zu eingerichteten &man.md.4;-Geräten werden mit mdconfig -l angezeigt. Schnappschüsse von Dateisystemen TomRhodesBeigetragen von Schnappschüsse von Dateisystemen Zusammen mit Soft Updates bietet &os; eine weitere Funktion: Schnappschüsse von Dateisystemen. UFS-Schnappschüsse sind Dateien, die ein Abbild eines Dateisystems enthalten und müssen auf dem jeweiligen Dateisystem erstellt werden. Pro Dateisystem darf es maximal 20 Schnappschüsse, die im Superblock vermerkt werden, geben. Schnappschüsse bleiben erhalten, wenn das Dateisystem abgehangen, neu eingehangen oder das System neu gestartet wird. Wenn ein Schnappschuss nicht mehr benötigt wird, kann er mit &man.rm.1; gelöscht werden. Es ist egal, in welcher Reihenfolge Schnappschüsse gelöscht werden. Es kann allerdings vorkommen, dass nicht der gesamte Speicherplatz wieder freigegeben wird, da ein anderer Schnappschuss einen Teil der entfernten Blöcke für sich beanspruchen kann. Das unveränderliche -Dateiflag wird nach der Erstellung des Snaphshots von &man.mksnap.ffs.8; gesetzt. Durch die Verwendung von &man.unlink.1; ist es allerdings möglich, einen Schnappschuss zu löschen. Schnappschüsse werden mit &man.mount.8; erstellt. Das folgende Kommando legt einen Schnappschuss von /var in /var/snapshot/snap ab: &prompt.root; mount -u -o snapshot /var/snapshot/snap /var Alternativ kann der Schnappschuss auch mit &man.mksnap.ffs.8; erstellt werden. &prompt.root; mksnap_ffs /var /var/snapshot/snap Um Schnappschüsse auf einem Dateisystem, beispielsweise /var zu finden, kann man &man.find.1; verwenden: &prompt.root; find /var -flags snapshot Nachdem ein Schnappschuss erstellt wurde, können Sie ihn für verschiedene Zwecke benutzen: Sie können den Schnappschuss für die Datensicherung benutzen und ihn auf eine CD oder ein Band schreiben. Die Intigrität des Schnappschusses kann mit &man.fsck.8; geprüft werden. Wenn das Dateisystem zum Zeitpunkt der Erstellung des Schnappschusses in Ordnung war, sollte &man.fsck.8; immer erfolgreich durchlaufen. Sie können den Schnappschuss mit &man.dump.8; sichern. Sie erhalten dann eine konsistente Sicherung des Dateisystems zu dem Zeitpunkt, der durch den Zeitstempel des Schnappschusses gegeben ist. Der Schalter von &man.dump.8; erstellt für die Sicherung einen Schnappschuss und entfernt diesen am Ende der Sicherung wieder. Sie können einen Schnappschuss in den Verzeichnisbaum einhängen und sich dann den Zustand des Dateisystems zu dem Zeitpunkt ansehen, an dem der Schnappschuss erstellt wurde. Der folgende Befehl hängt den Schnappschuss /var/snapshot/snap ein: &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 &prompt.root; mount -r /dev/md4 /mnt Der eingefrorene Stand des /var-Dateisystems ist nun unterhalb von /mnt verfügbar. Mit Ausnahme der früheren Schnappschüsse, die als leere Dateien auftauchen, wird zu Beginn alles so aussehen, wie zum Zeitpunkt der Erstellung des Schnappschusses. Der Schnappschuss kann wie folgt abgehängt werden: &prompt.root; umount /mnt &prompt.root; mdconfig -d -u 4 Weitere Informationen über Soft Updates und Schnappschüsse von Dateisystemen sowie technische Artikel finden Sie auf der Webseite von Marshall Kirk McKusick. Dateisystem-Quotas Accounting Plattenplatz Disk Quotas Quotas sind eine optionale Funktion des Betriebssystems, die es erlauben, den Plattenplatz und/oder die Anzahl der Dateien eines Benutzers oder der Mitglieder einer Gruppe, auf Dateisystemebene zu beschränken. Oft wird dies auf Timesharing-Systemen (Mehrbenutzersystemen) genutzt, da es dort erwünscht ist, die Ressourcen, die ein Benutzer oder eine Gruppe von Benutzern belegen können, zu limitieren. Das verhindert, dass ein Benutzer oder eine Gruppe von Benutzern den ganzen verfügbaren Plattenplatz belegt. Konfiguration des Systems, um Quotas zu aktivieren Bevor Quotas benutzt werden können, müssen sie im Kernel konfiguriert werden, wozu die folgende Zeile der Kernelkonfiguration hinzugefügt wird: options QUOTA Vor &os; 9.2 ist diese Option in der Regel nicht im GENERIC-Kernel enthalten. sysctl kern.features.ufs_quota kann benutzt werden um zu testen, ob der aktuelle Kernel Quotas unterstützt. Wenn die Option nicht vorhanden ist, muss ein angepasster Kernel erstellt werden. Weitere Informationen zur Kernelkonfiguration finden Sie in . Durch Hinzufügen der folgenden Zeile in /etc/rc.conf wird das Quota-System aktiviert: quota_enable="YES" Disk Quotas überprüfen Um den Start des Quota-Systems zu beeinflussen, steht eine weitere Variable zur Verfügung. Normalerweise wird beim Booten die Integrität der Quotas auf allen Dateisystemen mit &man.quotacheck.8; überprüft. Dieses Programm stellt sicher, dass die Quota-Datenbank mit den Daten auf einem Dateisystem übereinstimmt. Dies ist allerdings ein zeitraubender Prozess, der die Zeit, die das System zum Booten braucht, signifikant beeinflusst. Eine Variable in /etc/rc.config erlaubt es, diesen Schritt zu überspringen: check_quotas="NO" Zuletzt muss noch /etc/fstab bearbeitet werden, um die Plattenquotas auf Dateisystemebene zu aktivieren. Dort können für die Dateisysteme Quotas für Benutzer oder Gruppen aktiviert werden. Um Quotas pro Benutzer für ein Dateisystem zu aktivieren, geben Sie für dieses Dateisystem im Feld Optionen von /etc/fstab an. Beispiel: /dev/da1s2g /home ufs rw,userquota 1 2 Um Quotas für Gruppen einzurichten, verwenden Sie . Um Quotas für Benutzer und Gruppen einzurichten, ändern Sie den Eintrag wie folgt ab: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 Die Quota-Dateien werden standardmäßig im Rootverzeichnis des Dateisystems unter quota.user und quota.group abgelegt. Weitere Informationen finden Sie in &man.fstab.5;. Obwohl die Quota-Dateien an anderer Stelle gespeichert werden können, wird das nicht empfohlen, da es den Anschein hat, dass die verschiedenen Quota-Utilities dies nicht richtig unterstüzten. Sobald die Konfiguration abgeschlossen ist, booten Sie das System mit dem neuen Kernel. /etc/rc wird dann automatisch die richtigen Kommandos aufrufen, die die Quota-Dateien für alle Quotas, die Sie in /etc/fstab definiert haben, anlegen. Es besteht keine Notwendigkeit, leere Quota-Dateien manuell zu erstellen . Normalerweise brauchen die Kommandos &man.quotacheck.8;, &man.quotaon.8; oder &man.quotaoff.8; nicht händisch aufgerufen werden, obwohl man die entsprechenden Seiten im Manual lesen sollte, um sich mit ihnen vertraut zu machen. Setzen von Quota-Limits Disk Quotas Limits Sobald das System konfiguriert wurde, Quotas zu aktivieren, stellen Sie sicher, dass diese auch tatsächlich aktiviert sind: &prompt.root; quota -v Für jedes Dateisystem, auf dem Quotas aktiviert sind, sollte eine Zeile mit der Plattenauslastung und den aktuellen Quota-Limits zu sehen sein. Mit &man.edquota.8; können nun Quota-Limits zugewiesen werden. Mehrere Möglichkeiten stehen zur Verfügung, um Limits für den Plattenplatz, den ein Benutzer oder eine Gruppe verbrauchen kann, oder die Anzahl der Dateien, die angelegt werden dürfen, festzulegen. Die Limits können auf dem Plattenplatz (Block-Quotas), der Anzahl der Dateien (Inode-Quotas) oder einer Kombination von beiden basieren. Jedes Limit wird weiterhin in zwei Kategorien geteilt: Hardlimits und Softlimits. Hardlimit Ein Hardlimit kann nicht überschritten werden. Hat der Benutzer einmal ein Hardlimit erreicht, so kann er auf dem betreffenden Dateisystem keinen weiteren Platz mehr beanspruchen. Hat ein Benutzer beispielsweise ein Hardlimit von 500 Kilobytes auf einem Dateisystem und benutzt davon 490 Kilobyte, so kann er nur noch 10 weitere Kilobytes beanspruchen. Der Versuch, weitere 11 Kilobytes zu beanspruchen, wird fehlschlagen. Softlimit Softlimits können für eine befristete Zeit überschritten werden. Diese Frist beträgt in der Grundeinstellung eine Woche. Hat der Benutzer das Softlimit über die Frist hinaus überschritten, so wird das Softlimit in ein Hardlimit umgewandelt und der Benutzer kann keinen weiteren Platz mehr beanspruchen. Wenn er einmal das Softlimit unterschreitet, wird die Frist wieder zurückgesetzt. Das folgende Beispiel zeigt die Benutzung von &man.edquota.8;. Wenn &man.edquota.8; aufgerufen wird, wird der Editor gestartet, der durch EDITOR gegeben ist oder vi falls EDITOR nicht gesetzt ist. In dem Editor können Sie die Limits eingeben. &prompt.root; edquota -u test Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Für jedes Dateisystem, auf dem Quotas aktiv sind, sind zwei Zeilen zu sehen. Eine repräsentiert die Block-Quotas und die andere die Inode-Quotas. Um ein Limit zu modifizieren, ändern Sie einfach den angezeigten Wert. Um beispielsweise das Blocklimit dieses Benutzers von einem Softlimit von 50 und einem Hardlimit von 75 auf ein Softlimit von 500 und ein Hardlimit von 600 zu erhöhen, ändern Sie die Zeile: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) zu: /usr: kbytes in use: 65, limits (soft = 500, hard = 600) Die neuen Limits sind wirksam, sobald der Editor verlassen wird. Manchmal ist es erwünscht, die Limits für einen Bereich von UIDs zu setzen. Dies kann mit der Option von &man.edquota.8; bewerkstelligt werden. Weisen Sie dazu die Limits einem Benutzer zu und rufen danach edquota -p protouser startuid-enduid auf. Besitzt beispielsweise der Benutzer test die gewünschten Limits, können diese mit dem folgenden Kommando für die UIDs 10.000 bis 19.999 dupliziert werden: &prompt.root; edquota -p test 10000-19999 Weitere Informationen finden Sie in &man.edquota.8;. Überprüfen von Quota-Limits und Plattennutzung Disk Quotas überprüfen &man.quota.1; oder &man.repquota.8; können benutzt werden, um Quota-Limits und Plattennutzung zu überprüfen. Um die Limits oder die Plattennutzung individueller Benutzer und Gruppen zu überprüfen, kann &man.quota.1; benutzt werden. Ein Benutzer kann nur die eigenen Quotas und die Quotas der Gruppe, der er angehört untersuchen. Nur der Superuser darf sich alle Limits ansehen. Mit &man.repquota.8; erhalten Sie eine Zusammenfassung von allen Limits und der Plattenausnutzung für alle Dateisysteme, auf denen Quotas aktiv sind. Das folgende Beispiel zeigt die Ausgabe von quota -v für einen Benutzer, der Quota-Limits auf zwei Dateisystemen besitzt: Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 grace period Im Dateisystem /usr liegt der Benutzer momentan 15 Kilobytes über dem Softlimit von 50 Kilobytes und hat noch 5 Tage seiner Frist übrig. Der Stern * zeigt an, dass der Benutzer sein Limit überschritten hat. In der Ausgabe von &man.quota.1; werden Dateisysteme, auf denen ein Benutzer keinen Platz verbraucht, nicht angezeigt, auch wenn diesem Quotas zugewiesen wurden. Mit werden diese Dateisysteme, wie /usr/var im obigen Beispiel, angezeigt. Quotas über NFS NFS Quotas werden von dem Quota-Subsystem auf dem NFS Server erzwungen. Der &man.rpc.rquotad.8; Daemon stellt &man.quota.1; die Quota Informationen auf dem NFS Client zur Verfügung, so dass Benutzer auf diesen Systemen ihre Quotas abfragen können. Aktivieren Sie rpc.rquotad in /etc/inetd.conf wie folgt: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Anschließend starten Sie inetd neu: &prompt.root; service inetd restart Partitionen verschlüsseln LuckyGreenBeigetragen von
shamrock@cypherpunks.to
Partitionen verschlüsseln &os; bietet ausgezeichnete Möglichkeiten, Daten vor unberechtigten Zugriffen zu schützen. Wenn das Betriebssystem läuft, schützen Zugriffsrechte und vorgeschriebene Zugriffskontrollen (MAC) (siehe ) die Daten. Die Zugriffskontrollen des Betriebssystems schützen allerdings nicht vor einem Angreifer, der Zugriff auf den Rechner hat. Der Angreifer kann eine Festplatte in ein anderes System einbauen und dort die Daten analysieren. Die für &os; verfügbaren kryptografischen Subsysteme, GEOM Based Disk Encryption (gbde) und geli sind in der Lage, Daten auf Dateisystemen auch vor hoch motivierten Angreifern zu schützen, die über erhebliche Mittel verfügen. Dieser Schutz ist unabhängig von der Art und Weise, durch die ein Angreifer Zugang zu einer Festplatte oder zu einem Rechner erlangt hat. Im Gegensatz zu schwerfälligen Systemen, die einzelne Dateien verschlüsseln, verschlüsseln gbde und geli transparent ganze Dateisysteme. Auf der Festplatte werden dabei keine Daten im Klartext gespeichert. Plattenverschlüsselung mit <application>gbde</application> Sie benötigen Superuser-Rechte, um gbde einzurichten. &prompt.user; su - Password: Wird eine angepasste Kernelkonfigurationsdatei verwendet, stellen Sie sicher, dass folgende Zeile enthalten ist: options GEOM_BDE Wenn der Kernel diese Unterstützung bereits enthält, verwenden Sie kldload um &man.gbde.4; zu laden: &prompt.root; kldload geom_bde Einrichten einer verschlüsselten Festplatte Das folgende Beispiel beschreibt, wie eine Partition auf einer neuen Festplatte verschlüsselt wird. Die Partition wird in /private eingehangen. Mit gbde könnten auch /home und /var/mail verschlüsselt werden. Die dazu nötigen Schritte können allerdings in dieser Einführung nicht behandelt werden. Installieren der Festplatte Installieren Sie die Festplatte wie in beschrieben. Im Beispiel verwenden wir die Partition /dev/ad4s1c. Die Gerätedateien /dev/ad0s1* sind Standard-Partitionen des &os;-Systems. &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 Verzeichnis für gbde-Lock-Dateien anlegen &prompt.root; mkdir /etc/gbde Die Lock-Dateien sind für den Zugriff von gbde auf verschlüsselte Partitionen notwendig. Ohne die Lock-Dateien können die Daten nur mit erheblichem manuellen Aufwand wieder entschlüsselt werden (dies wird auch von der Software nicht unterstützt). Jede verschlüsselte Partition benötigt eine gesonderte Lock-Datei. Vorbereiten der gbde-Partition Eine von gbde benutzte Partition muss einmalig vorbereitet werden: &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock &man.gbde.8; öffnet eine Vorlage im Standard-Editor, um verschiedene Optionen einstellen zu können. Setzen Sie sector_size auf 2048, wenn Sie UFS1 oder UFS2 benutzen. # $FreeBSD: src/sbin/gbde/template.txt,v 1.1.36.1 2009/08/03 08:13:06 kensmith Exp $ # # Sector size is the smallest unit of data which can be read or written. # Making it too small decreases performance and decreases available space. # Making it too large may prevent filesystems from working. 512 is the # minimum and always safe. For UFS, use the fragment size # sector_size = 2048 [...] &man.gbde.8; fragt zweimal die Passphrase zum Schutz der Daten ab. Die Passphrase muss beide Mal gleich eingegeben werden. Die Sicherheit der Daten hängt allein von der Qualität der gewählten Passphrase ab. Die Auswahl einer sicheren und leicht zu merkenden Passphrase wird auf der Webseite Diceware Passphrase beschrieben. Mit gbde init wurde im Beispiel auch die Lock-Datei /etc/gbde/ad4s1c.lock angelegt. gbde-Lockdateien müssen die Dateiendung .lock aufweisen, damit sie von /etc/rc.d/gbde, dem Startskript von gbde, erkannt werden. Sichern Sie die Lock-Dateien von gbde immer zusammen mit den verschlüsselten Dateisystemen. Ein entschlossener Angreifer kann die Daten vielleicht auch ohne die Lock-Datei entschlüsseln. Ohne die Lock-Datei können Sie allerdings nicht auf die verschlüsselten Daten zugreifen. Dies ist nur noch mit erheblichem manuellen Aufwand möglich, der nicht &man.gbde.8; wird. Einbinden der verschlüsselten Partition in den Kernel &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock Dieses Kommando fragt die Passphrase ab, die bei der Initialisierung der verschlüsselten Partition eingegeben wurde. Das neue verschlüsselte Gerät erscheint danach in /dev als /dev/device_name.bde: &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde Dateisystem auf dem verschlüsselten Gerät anlegen Nachdem die verschlüsselte Partition im Kernel eingebunden ist, kann mit &man.newfs.8; ein Dateisystem erstellt werden. Dieses Beispiel erstellt ein UFS2-Dateisystem mit aktivierten Soft Updates. &prompt.root; newfs -U -O2 /dev/ad4s1c.bde &man.newfs.8; muss auf einer eingebundenen gbde-Partition ausgeführt werden, welche durch das Suffix *.bde identifiziert wird. Einhängen der verschlüsselten Partition Legen Sie einen Mountpunkt für das verschlüsselte Dateisystem an: &prompt.root; mkdir /private Hängen Sie das verschlüsselte Dateisystem ein: &prompt.root; mount /dev/ad4s1c.bde /private Überprüfen des verschlüsselten Dateisystems Das verschlüsselte Dateisystem sollte jetzt von &man.df.1; erkannt werden und benutzt werden können. &prompt.user; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 1037M 72M 883M 8% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 8.1G 55K 7.5G 0% /home /dev/ad0s1e 1037M 1.1M 953M 0% /tmp /dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr /dev/ad4s1c.bde 150G 4.1K 138G 0% /private Einhängen eines existierenden verschlüsselten Dateisystems Nach jedem Neustart müssen verschlüsselte Dateisysteme dem Kernel wieder bekannt gemacht werden, auf Fehler überprüft werden und eingehangen werden. Die dazu nötigen Befehle müssen als root durchgeführt werden. gbde-Partition im Kernel bekannt geben &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock Dieses Kommando fragt nach der Passphrase, die während der Initialisierung der verschlüsselten gbde-Partition festgelegt wurde. Prüfen des Dateisystems Das verschlüsselte Dateisystem kann noch nicht automatisch über /etc/fstab eingehangen werden. Daher muss es vor dem Einhängen mit &man.fsck.8; geprüft werden: &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde Einhängen des verschlüsselten Dateisystems &prompt.root; mount /dev/ad4s1c.bde /private Das verschlüsselte Dateisystem steht danach zur Verfügung. Verschlüsselte Dateisysteme automatisch einhängen Mit einem Skript können verschlüsselte Dateisysteme automatisch bekannt gegeben, geprüft und eingehangen werden. Wir raten Ihnen allerdings aus Sicherheitsgründen davon ab. Starten Sie das Skript manuell an der Konsole oder in einer &man.ssh.1;-Sitzung. Alternativ existiert ein rc.d-Skript, an das über Einträge in &man.rc.conf.5; Argumente übergeben werden können: gbde_autoattach_all="YES" gbde_devices="ad4s1c" gbde_lockdir="/etc/gbde" Durch diese Argumente muss beim Systemstart die gbde-Passphrase eingegeben werden. Erst nach Eingabe der korrekten Passphrase wird die gbde-verschlüsselte Partition automatisch in den Verzeichnisbaum eingehängt. Dieses Vorgehen ist nützlich, wenn gbde auf einem Laptop eingesetzt wird. Kryptografische Methoden von gbde &man.gbde.8; benutzt den 128-Bit AES im CBC-Modus, um die Daten eines Sektors zu verschlüsseln. Jeder Sektor einer Festplatte wird mit einem unterschiedlichen AES-Schlüssel verschlüsselt. Weitere Informationen, unter anderem wie die Schlüssel für einen Sektor aus der gegebenen Passphrase ermittelt werden, finden Sie in &man.gbde.4;. Kompatibilität &man.sysinstall.8; kann nicht mit verschlüsselten gbde-Geräten umgehen. Vor dem Start von &man.sysinstall.8; sind alle *.bde-Geräte zu deaktivieren, da &man.sysinstall.8; sonst bei der Gerätesuche abstürzt. Das im Beispiel verwendete Gerät wird mit dem folgenden Befehl deaktiviert: &prompt.root; gbde detach /dev/ad4s1c Plattenverschlüsselung mit <command>geli</command> DanielGerzoBeigetragen von Mit geli ist eine alternative kryptografische GEOM-Klasse verfügbar. geli unterscheidet sich von gbde durch unterschiedliche Fähigkeiten und einen unterschiedlichen Ansatz für die Verschlüsselung. Die wichtigsten Merkmale von &man.geli.8; sind: Die Nutzung des &man.crypto.9;-Frameworks. Wenn das System über kryptografische Hardware verfügt, wird diese von geli automatisch verwendet. Die Unterstützung verschiedener kryptografischer Algorithmen, wie beispielsweise AES, Blowfish, und 3DES. Die Möglichkeit, die root-Partition zu verschlüsseln. Um auf die verschlüsselte root-Partition zugreifen zu können, muss beim Systemstart die Passphrase eingegeben werden. geli erlaubt den Einsatz von zwei voneinander unabhängigen Schlüsseln, etwa einem privaten Schlüssel und einem Unternehmens-Schlüssel. geli ist durch einfache Sektor-zu-Sektor-Verschlüsselung sehr schnell. Die Möglichkeit, Master-Keys zu sichern und wiederherzustellen. Wenn ein Benutzer seinen Schlüssel zerstört, kann er über seinen zuvor gesicherten Schlüssel wieder auf seine Daten zugreifen. geli erlaubt es, Platten mit einem zufälligen Einmal-Schlüssel einzusetzen, was für Swap-Partitionen und temporäre Dateisysteme interessant ist. Weitere Merkmale von geli finden Sie in &man.geli.8;. Dieser Abschnitt beschreibt, wie geli im &os;-Kernel aktiviert wird und wie ein geli-Verschlüsselungs-Provider angelegt wird. Da der Kernel angepasst werden muss, werden root-Privilegien benötigt. Aufnahme der <command>geli</command>-Unterstützung in Ihre Kernelkonfigurationsdatei Stellen Sie bei einer angepassten Kernelkonfigurationsdatei sicher, dass diese Zeile enthalten ist: options GEOM_ELI device crypto Alternativ kann auch das geli-Kernelmodul beim Systemstart geladen werden, indem folgende Zeile in /boot/loader.conf eingefügt wird: geom_eli_load="YES" Ab sofort wird &man.geli.8; vom Kernel unterstützt. Erzeugen des Master-Keys Das folgende Beispiel beschreibt, wie eine Schlüsseldatei erzeugt wird, die als Teil des Master-Keys für den Verschlüsselungs-Provider verwendet wird, der unter /private in den Verzeichnisbaum eingehängt wird. Die Schlüsseldatei liefert zufällige Daten, die für die Verschlüsselung des Master-Keys benutzt werden. Zusätzlich wird der Master-Key durch eine Passphrase geschützt. Die Sektorgröße des Providers beträgt 4 KB. Das Beispiel beschreibt, wie Sie einen geli-Provider aktivieren, ein vom ihm verwaltetes Dateisystem erzeugen, es mounten, mit ihm arbeiten und wie Sie es schließlich wieder unmounten und den Provider deaktivieren. Um eine bessere Leistung zu erzielen, wird eine größere Sektorgröße, beispielsweise 4 KB, empfohlen. Der Master-Key wird durch eine Passphrase sowie, den Daten der Schlüsseldatei aus /dev/random geschützt. Die Sektorgröße des Providers /dev/da2.eli beträgt 4 KB. &prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1 &prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2 Enter new passphrase: Reenter new passphrase: Es ist nicht zwingend nötig, sowohl eine Passphrase als auch eine Schlüsseldatei zu verwenden. Die einzelnen Methoden können auch unabhängig voneinander eingesetzt werden. Wird für die Schlüsseldatei - angegeben, wird dafür die Standardeingabe verwendet. Das folgende Beispiel zeigt, dass auch mehr als eine Schlüsseldatei verwendet werden kann: &prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 Aktivieren des Providers mit dem erzeugten Schlüssel &prompt.root; geli attach -k /root/da2.key /dev/da2 Enter passphrase: Dadurch wird die (Normaltext-)Gerätedatei /dev/da2.eli angelegt. &prompt.root; ls /dev/da2* /dev/da2 /dev/da2.eli Das neue Dateisystem erzeugen &prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m &prompt.root; newfs /dev/da2.eli &prompt.root; mount /dev/da2.eli /private Das verschlüsselte Dateisystem wird nun von &man.df.1; angezeigt und kann ab sofort eingesetzt werden. &prompt.root; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 248M 89M 139M 38% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr /dev/ad0s1d 989M 1.5M 909M 0% /tmp /dev/ad0s1e 3.9G 1.3G 2.3G 35% /var /dev/da2.eli 150G 4.1K 138G 0% /private Das Dateisystem unmounten und den Provider deaktivieren Wenn Sie nicht mehr mit dem verschlüsselten Dateisystem arbeiten und die unter /private eingehängte Partition daher nicht mehr benötigen, sollten Sie diese unmounten und den geli-Verschlüsselungs-Provider wieder deaktivieren: &prompt.root; umount /private &prompt.root; geli detach da2.eli Weitere Informationen zum Einsatz von geli finden Sie in &man.geli.8;. Der Einsatz des <filename>geli</filename>- <filename>rc.d</filename>-Skripts geli verfügt über ein rc.d-Skript, das den Einsatz von geli deutlich vereinfacht. Es folgt nun ein Beispiel, in dem geli über die Datei &man.rc.conf.5; konfiguriert wird: geli_devices="da2" geli_da2_flags="-p -k /root/da2.key" Durch diese Einträge wird /dev/da2 als geli-Provider festgelegt. Der Master-Key befindet sich in /root/da2.key. Beim Aktivieren des geli-Providers wird keine Passphrase abgefragt. Beachten Sie, dass dies nur dann möglich ist, wenn geli mit dem Parameter initialisiert wurde. Wird das System heruntergefahren, wird der geli-Provider zuvor deaktiviert. Weitere Informationen zur Konfiguration der rc.d-Skripten finden Sie im Abschnitt rc.d des Handbuchs.
Den Auslagerungsspeicher verschlüsseln ChristianBrüfferGeschrieben von Auslagerungsspeicher verschlüsseln Wie die Verschlüsselung von Partitionen, wird auch der Auslagerungsspeicher verschlüsselt, um sensible Informationen zu schützen. Stellen Sie sich eine Anwendung vor, die mit Passwörtern umgeht. Solange sich diese Passwörter im Arbeitsspeicher befinden, werden sie nicht auf die Festplatte geschrieben und nach einem Neustart gelöscht. Falls &os; jedoch damit beginnt Speicher auszulagern, um Platz für andere Anwendungen zu schaffen, können die Passwörter unverschlüsselt auf die Festplatte geschrieben werden. Die Verschlüsselung des Auslagerungsspeichers kann in solchen Situationen Abhilfe schaffen. Das &man.gbde.8;- oder das &man.geli.8;-Verschlüsselungs-Subsystem kann für die Verschlüsselung des Auslagerungsspeichers eingesetzt werden. Beide Subsysteme nutzen das encswap rc.d-Skript. Für den Rest dieses Abschnitts wird ad0s1b die Swap-Partition darstellen. Swap-Partitionen werden standardmäßig nicht verschlüsselt. Sie sollten daher alle sensiblen Daten im Auslagerungsspeicher löschen, bevor Sie fortfahren. Führen Sie folgenden Befehl aus, um die Swap-Partition mit Zufallsdaten zu überschreiben: &prompt.root; dd if=/dev/random of=/dev /ad0s1b bs=1m Den Auslagerungsspeicher mit &man.gbde.8; verschlüsseln In der Datei /etc/fstab sollte das Suffix .bde an den Gerätenamen der Swap-Partition anhängt werden: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.bde none swap sw 0 0 Den Auslagerungsspeicher mit &man.geli.8; verschlüsseln Die Vorgehensweise für die Verschlüsselung des Auslagerungsspeichers mit &man.geli.8; ist der von &man.gbde.8; sehr ähnlich. Bei der Verwendung von &man.geli.8; in /etc/fstab wird das Suffix .eli an den Gerätenamen der Swap-Partition angehangen: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.eli none swap sw 0 0 In der Voreinstellung verschlüsselt &man.geli.8; den Auslagerungsspeicher mit dem AES-Algorithmus und einer Schlüssellänge von 128 Bit. Diese Voreinstellungen können mittels geli_swap_flags in /etc/rc.conf angepasst werden. Die folgende Zeile weist das rc.d-Skript encswap an, &man.geli.8;-Swap-Partitionen mit dem Blowfish-Algorithmus und einer Schlüssellänge von 128 Bit zu verschlüsseln. Zusätzlich wird die Sektorgröße auf 4 Kilobyte gesetzt und detach on last close aktiviert: geli_swap_flags="-e blowfish -l 128 -s 4096 -d" Eine Auflistung möglicher Optionen für onetime finden Sie in der Manualpage von &man.geli.8;. Überprüfung des verschlüsselten Auslagerungsspeichers Nachdem das System neu gestartet wurde, kann die korrekte Funktion des verschlüsselten Auslagerungsspeichers mit swapinfo geprüft werden. Wenn Sie &man.gbde.8; einsetzen, erhalten Sie eine Meldung ähnlich der folgenden: &prompt.user; swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.bde 542720 0 542720 0% Wenn Sie &man.geli.8; einsetzen, erhalten Sie hingegen eine Ausgabe ähnlich der folgenden: &prompt.user; swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.eli 542720 0 542720 0% Highly Available Storage (HAST) DanielGerzoBeigetragen von FreddieCashMit Beiträgen von Pawel JakubDawidek Michael W.Lucas ViktorPetersson BenedictReuschlingÜbersetzt von HAST high availability Überblick Hochverfügbarkeit ist eine der Hauptanforderungen von ernsthaften Geschäftsanwendungen und hochverfügbarer Speicher ist eine Schlüsselkomponente in solchen Umgebungen. Highly Available STorage, oder HASTHighly Available STorage, wurde von &a.pjd.email; als ein Framework entwickelt, welches die transparente Speicherung der gleichen Daten über mehrere physikalisch getrennte Maschinen ermöglicht, die über ein TCP/IP-Netzwerk verbunden sind. HAST kann als ein netzbasiertes RAID1 (Spiegel) verstanden werden und ist dem DRBD®-Speichersystem der GNU/&linux;-Plattform ähnlich. In Kombination mit anderen Hochverfügbarkeitseigenschaften von &os; wie CARP, ermöglicht es HAST, hochverfügbare Speichercluster zu bauen, die in der Lage sind, Hardwareausfällen zu widerstehen. Nachdem Sie diesen Abschnitt gelesen haben, werden Sie folgendes wissen: Was HAST ist, wie es funktioniert und welche Eigenschaften es besitzt. Wie man HAST auf &os; aufsetzt und verwendet. Wie man CARP und &man.devd.8; kombiniert, um ein robustes Speichersystem zu bauen. Bevor Sie diesen Abschnitt lesen, sollten Sie: die Grundlagen von &unix; und &os; verstanden haben (). wissen, wie man Netzwerkschnittstellen und andere Kernsysteme von &os; konfiguriert (). ein gutes Verständnis der &os;-Netzwerkfunktionalität besitzen (). Das HAST-Projekt wurde von der &os; Foundation mit Unterstützung der OMCnet Internet Service GmbH und TransIP BV gesponsert. HAST-Merkmale Die Hauptmerkmale des HAST-Systems sind: Es kann zur Maskierung von I/O-Fehlern auf lokalen Festplatten eingesetzt werden. Dateisystem-unabhängig, was es erlaubt, jedes von &os; unterstützte Dateisystem zu verwenden. Effiziente und schnelle Resynchronisation: es werden nur die Blöcke synchronisiert, die während der Ausfallzeit eines Knotens geändert wurden. Es kann in einer bereits bestehenden Umgebung eingesetzt werden, um zusätzliche Redundanz zu erreichen. Zusammen mit CARP, Heartbeat, oder anderen Werkzeugen, ist es möglich, ein robustes und dauerhaftes Speichersystem zu bauen. HAST im Einsatz HAST stellt auf Block-Ebene eine synchrone Replikation eines beliebigen Speichermediums auf mehreren Maschinen zur Verfügung. Daher werden mindestens zwei physikalische Maschinen benötigt: der primary, auch bekannt als master Knoten, sowie der secondary, oder slave Knoten. Diese beiden Maschinen zusammen werden als Cluster bezeichnet. HAST ist momentan auf insgesamt zwei Knoten im Cluster beschränkt. Da HAST in einer primär-sekundär-Konfiguration funktioniert, ist immer nur ein Knoten des Clusters zu jeder Zeit aktiv. Der primäre Knoten, auch active genannt, ist derjenige, der alle I/O-Anfragen verarbeitet, die an die HAST-Schnittstelle gesendet werden. Der secondary-Knoten wird automatisch vom primary-Knoten aus synchronisiert. Die physischen Komponenten des HAST-Systems sind: lokale Platte am Primärknoten entfernte Platte am Sekundärknoten HAST arbeitet synchron auf Blockebene, was es für Dateisysteme und Anwendungen transparent macht. HAST stellt gewöhnliche GEOM-Provider in /dev/hast/ für die Verwendung durch andere Werkzeuge oder Anwendungen zur Verfügung. Somit gibt es keinen Unterschied zwischen dem Einsatz von HAST bereitgestellten Geräten und herkömmlichen Platten, Partitionen, etc. Jede Schreib-, Lösch- oder Entleerungsoperation wird an die lokale und über TCP/IP zu der entfernt liegenden Platte gesendet. Jede Leseoperation wird von der lokalen Platte durchgeführt, es sei denn, die lokale Platte ist nicht aktuell oder es tritt ein I/O-Fehler auf. In solchen Fällen wird die Leseoperation an den Sekundärknoten geschickt. Synchronisation und Replikationsmodi HAST versucht, eine schnelle Fehlerbereinigung zu gewährleisten. Aus diesem Grund ist es sehr wichtig, die Synchronisationszeit nach dem Ausfall eines Knotens zu reduzieren. Um eine schnelle Synchronisation zu ermöglichen, verwaltet HAST eine Bitmap von unsauberen Bereichen auf der Platte und synchronisiert nur diese während einer regulären Synchronisation (mit Ausnahme der initialen Synchronisation). Es gibt viele Wege, diese Synchronisation zu behandeln. HAST implementiert mehrere Replikationsarten, um unterschiedliche Methoden der Synchronisation zu realisieren: memsync: meldet Schreiboperationen als vollständig, wenn die lokale Schreiboperation beendet ist und der entfernt liegende Knoten die Ankunft der Daten bestätigt hat, jedoch bevor die Daten wirklich gespeichert wurden. Die Daten werden auf dem entfernt liegenden Knoten direkt nach dem Senden der Bestätigung gespeichert. Dieser Modus ist dafür gedacht, Latenzen zu verringern und zusätzlich eine gute Verlässlichkeit zu bieten. fullsync: meldet Schreiboperationen als vollständig, wenn die lokale Schreiboperation beendet ist und die entfernte Schreiboperation ebenfalls abgeschlossen wurde. Dies ist der sicherste und zugleich der langsamste Replikationsmodus. Er stellt den momentanen Standardmodus dar. async: meldet Schreiboperationen als vollständig, wenn lokale Schreibvorgänge abgeschlossen wurden. Dies ist der schnellste und gefährlichste Replikationsmodus. Er sollte verwendet werden, wenn die Latenz zu einem entfernten Knoten bei einer Replikation zu hoch ist für andere Modi. HAST-Konfiguration HAST benötigt GEOM_GATE-Unterstützung, welche standardmäßig nicht im GENERIC-Kernel enthalten ist. Jedoch ist in der Standardinstallation von &os; geom_gate.ko als ladbares Modul vorhanden. Alternativ lässt sich die GEOM_GATE-Unterstützung in den Kernel statisch einbauen, indem folgende Zeile zur Kernelkonfigurationsdatei hinzugefügt wird: options GEOM_GATE Das HAST-Framework besteht aus Sicht des Betriebssystems aus mehreren Bestandteilen: Dem &man.hastd.8;-Daemon, welcher für Datensynchronisation verantwortlich ist, Dem &man.hastctl.8; Management-Werkzeug, Der Konfigurationsdatei &man.hast.conf.5;. Das folgende Beispiel beschreibt, wie man zwei Knoten als master-slave / primary-secondary mittels HAST konfiguriert, um Daten zwischen diesen beiden auszutauschen. Die Knoten werden als hasta mit der IP-Adresse 172.16.0.1 und hastb mit der IP-Adresse 172.16.0.2 bezeichnet. Beide Knoten besitzen eine dedizierte Festplatte /dev/ad6 mit der gleichen Grösse für den HAST-Betrieb. Der HAST-Pool, manchmal auch Ressource genannt, oder der GEOM-Provider in /dev/hast/ wird als test bezeichnet. Die Konfiguration von HAST wird in /etc/hast.conf vorgenommen. Diese Datei sollte auf beiden Knoten gleich sein. Die denkbar einfachste Konfiguration ist folgende: resource test { on hasta { local /dev/ad6 remote 172.16.0.2 } on hastb { local /dev/ad6 remote 172.16.0.1 } } Fortgeschrittene Konfigurationsmöglichkeiten finden Sie in &man.hast.conf.5;. Es ist ebenfalls möglich, den Hostnamen in den remote-Anweisungen zu verwenden. Stellen Sie in solchen Fällen sicher, dass diese Rechner auch aufgelöst werden können und in /etc/hosts, oder im lokalen DNS definiert sind. Da nun die Konfiguration auf beiden Rechnern vorhanden ist, kann ein HAST-Pool erstellt werden. Lassen Sie diese Kommandos auf beiden Knoten ablaufen, um die initialen Metadaten auf die lokale Platte zu schreiben und starten Sie anschliessend &man.hastd.8;: &prompt.root; hastctl create test &prompt.root; service hastd onestart Es ist nicht möglich, GEOM-Provider mit einem bereits bestehenden Dateisystem zu verwenden, um beispielsweise einen bestehenden Speicher in einen von HAST verwalteten Pool zu konvertieren. Dieses Verfahren muss einige Metadaten auf den Provider schreiben und dafür würde nicht genug freier Platz zur Verfügung stehen. Die Rolle eines HAST Knotens, primary oder secondary, wird vom einem Administrator, oder einer Software wie Heartbeat, mittels &man.hastctl.8; festgelegt. Auf dem primären Knoten hasta geben Sie diesen Befehl ein: &prompt.root; hastctl role primary test Geben Sie folgendes Kommando auf dem sekundären Knoten hastb ein: &prompt.root; hastctl role secondary test Es kann passieren, dass beide Knoten nicht in der Lage sind, miteinander zu kommunizieren und dadurch beide als primäre Knoten konfiguriert sind; die Konsequenz daraus wird als split-brain bezeichnet. Um diese Situation zu bereinigen, folgen Sie den Schritten, die in beschrieben sind. Überprüfen Sie das Ergebnis mit &man.hastctl.8; auf beiden Knoten: &prompt.root; hastctl status test Der wichtigste Teil ist die status-Textzeile, die auf jedem Knoten complete lauten sollte. Falls der Status als degraded zurückgemeldet wird, ist etwas schief gegangen. Zu diesem Zeitpunkt hat die Synchronisation zwischen den beiden Knoten bereits begonnen. Die Synchronisation ist beendet, wenn hastctl status meldet, dass die dirty-Bereiche 0 Bytes betragen. Der nächste Schritt ist, ein Dateisystem auf dem /dev/hast/test GEOM-Provider anzulegen und dieses ins System einzuhängen. Dies muss auf dem primary-Knoten durchgeführt werden, da /dev/hast/test nur auf dem primary-Knoten erscheint. Die Erstellung des Dateisystems kann ein paar Minuten dauern, abhängig von - der Grösse der Festplatte: + der Größe der Festplatte: &prompt.root; newfs -U /dev/hast/test &prompt.root; mkdir /hast/test &prompt.root; mount /dev/hast/test /hast/test Sobald das HAST-Framework richtig konfiguriert wurde, besteht der letzte Schritt nun darin, sicherzustellen, dass HAST während des Systemstarts automatisch gestartet wird. Fügen Sie diese Zeile in /etc/rc.conf hinzu: hastd_enable="YES" Failover-Konfiguration Das Ziel dieses Beispiels ist, ein robustes Speichersystem zu bauen, welches Fehlern auf einem beliebigen Knoten widerstehen kann. Das Szenario besteht darin, dass der primary-Knoten des Clusters ausfällt. Sollte das passieren, ist der secondary-Knoten da, um nahtlos einzuspringen, das Dateisystem zu prüfen, einzuhängen und mit der Arbeit fortzufahren, ohne dass auch nur ein einzelnes Bit an Daten verloren geht. Um diese Aufgabe zu bewerkstelligen, wird eine weitere Eigenschaft von &os; benutzt, CARP, welches ein automatisches Failover auf der IP-Schicht ermöglicht. CARP (Common Address Redundancy Protocol) erlaubt es mehreren Rechnern im gleichen Netzsegment, die gleiche IP-Adresse zu verwenden. Setzen Sie CARP auf beiden Knoten des Clusters anhand der Dokumentation in auf. Nach der Konfiguration wird jeder Knoten seine eigene carp0-Schnittstelle, mit der geteilten IP-Adresse 172.16.0.254 besitzen. Der primäre HAST-Knoten des Clusters muss der CARP-Masterknoten sein. Der HAST-Pool, welcher im vorherigen Abschnitt erstellt wurde, ist nun bereit für den Export über das Netzwerk auf den anderen Rechner. Dies kann durch den Export über NFS oder Samba erreicht werden, indem die geteilte IP-Addresse 172.16.0.254 verwendet wird. Das einzige ungelöste Problem ist der automatische Failover, sollte der primäre Knoten einmal ausfallen. Falls die CARP-Schnittstelle aktiviert oder deaktiviert wird, generiert das &os;-Betriebssystem ein &man.devd.8;-Ereignis, was es ermöglicht, Zustandsänderungen auf den CARP-Schnittstellen zu überwachen. Eine Zustandsänderung auf der CARP-Schnittstelle ist ein Indiz dafür, dass einer der Knoten gerade ausgefallen oder wieder verfügbar ist. Diese Zustandsänderungen machen es möglich, ein Skript zu starten, welches automatisch den HAST-Failover durchführt. Um Zustandsänderungen auf der CARP-Schnittstelle abzufangen, müssen diese Zeilen in /etc/devd.conf auf jedem Knoten hinzugefügt werden: notify 30 { match "system" "IFNET"; match "subsystem" "carp0"; match "type" "LINK_UP"; action "/usr/local/sbin/carp-hast-switch master"; }; notify 30 { match "system" "IFNET"; match "subsystem" "carp0"; match "type" "LINK_DOWN"; action "/usr/local/sbin/carp-hast-switch slave"; }; Starten Sie &man.devd.8; auf beiden Knoten neu, um die neue Konfiguration wirksam werden zu lassen: &prompt.root; service devd restart Wenn die carp0-Schnittstelle aktiviert oder deaktiviert wird, erzeugt das System eine Meldung, was es dem &man.devd.8;-Subsystem ermöglicht, ein beliebiges Skript zu starten, in diesem Fall also /usr/local/sbin/carp-hast-switch. Dieses Skript führt den automatischen Failover durch. Weitere Informationen zu der obigen &man.devd.8;-Konfiguration, finden Sie in &man.devd.conf.5;. Ein Beispiel für ein solches Skript könnte so aussehen: #!/bin/sh # Original script by Freddie Cash <fjwcash@gmail.com> # Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org> # and Viktor Petersson <vpetersson@wireload.net> # The names of the HAST resources, as listed in /etc/hast.conf resources="test" # delay in mounting HAST resource after becoming master # make your best guess delay=3 # logging log="local0.debug" name="carp-hast" # end of user configurable stuff case "$1" in master) logger -p $log -t $name "Switching to primary provider for ${resources}." sleep ${delay} # Wait for any "hastd secondary" processes to stop for disk in ${resources}; do while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do sleep 1 done # Switch role for each disk hastctl role primary ${disk} if [ $? -ne 0 ]; then logger -p $log -t $name "Unable to change role to primary for resource ${disk}." exit 1 fi done # Wait for the /dev/hast/* devices to appear for disk in ${resources}; do for I in $( jot 60 ); do [ -c "/dev/hast/${disk}" ] && break sleep 0.5 done if [ ! -c "/dev/hast/${disk}" ]; then logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear." exit 1 fi done logger -p $log -t $name "Role for HAST resources ${resources} switched to primary." logger -p $log -t $name "Mounting disks." for disk in ${resources}; do mkdir -p /hast/${disk} fsck -p -y -t ufs /dev/hast/${disk} mount /dev/hast/${disk} /hast/${disk} done ;; slave) logger -p $log -t $name "Switching to secondary provider for ${resources}." # Switch roles for the HAST resources for disk in ${resources}; do if ! mount | grep -q "^/dev/hast/${disk} on " then else umount -f /hast/${disk} fi sleep $delay hastctl role secondary ${disk} 2>&1 if [ $? -ne 0 ]; then logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}." exit 1 fi logger -p $log -t $name "Role switched to secondary for resource ${disk}." done ;; esac Im Kern führt das Skript die folgenden Aktionen durch, sobald ein Knoten zum master / primary wird: Es ernennt den HAST-Pool als den primären für einen gegebenen Knoten. Es prüft das Dateisystem, dass auf dem HAST-Pool erstellt wurde. Es hängt die Pools an die richtige Stelle im System ein. Wenn ein Knoten zum backup / secondary ernannt wird: Hängt es den HAST-Pool aus dem Dateisystem aus. Degradiert es den HAST-Pool zum sekundären. Bitte beachten Sie, dass dieses Skript nur ein Beispiel für eine mögliche Lösung darstellt. Es behandelt nicht alle möglichen Szenarien, die auftreten können und sollte erweitert bzw. abgeändert werden, so dass z.B. benötigte Dienste gestartet oder gestoppt werden. Für dieses Beispiel wurde ein Standard-UFS Dateisystem verwendet. Um die Zeit für die Wiederherstellung zu verringern, kann ein UFS mit Journal oder ein ZFS-Dateisystem benutzt werden. Weitere detaillierte Informationen mit zusätzlichen Beispielen können auf der HAST Wiki-Seite abgerufen werden. Fehlerbehebung Allgemeine Tipps zur Fehlerbehebung HAST sollte generell ohne Probleme funktionieren. Jedoch kann es, wie bei jeder anderen Software auch, zu gewissen Zeiten sein, dass sie sich nicht so verhält wie angegeben. Die Quelle dieser Probleme kann unterschiedlich sein, jedoch sollte als Faustregel gewährleistet werden, dass die Zeit für beide Knoten im Cluster synchron läuft. Für die Fehlersuche bei Problemen mit HAST sollte die Anzahl an Debugging-Meldungen von &man.hastd.8; erhöht werden. Dies kann durch das Starten des &man.hastd.8; mit -d erreicht werden. Diese Option kann mehrfach angegeben werden, um die Anzahl an Meldungen weiter zu erhöhen. Auf diese Weise erhalten Sie viele nützliche Informationen. Sie sollten ebenfalls die Verwendung von -F in Erwägung ziehen, die &man.hastd.8; im Vordergrund startet. Auflösung des Split-brain-Zustands split-brain bezeichnet eine Situation, in der beide Knoten des Clusters nicht in der Lage sind, miteinander zu kommunizieren und dadurch beide als primäre Knoten fungieren. Dies ist ein gefährlicher Zustand, weil es beiden Knoten erlaubt ist, Änderungen an den Daten vorzunehmen, die miteinander nicht in Einklang gebracht werden können. Diese Situation muss vom Systemadministrator händisch bereinigt werden. Der Administrator muss entscheiden, welcher Knoten die wichtigsten Änderungen von beiden besitzt (oder diese manuell miteinander vermischen) und anschliessend den HAST-Knoten die volle Synchronisation mit jenem Knoten durchführen zu lassen, welcher die beschädigten Daten besitzt. Um dies zu tun, geben Sie folgende Befehle auf dem Knoten ein, der neu synchronisiert werden soll: &prompt.root; hastctl role init <resource> &prompt.root; hastctl create <resource> &prompt.root; hastctl role secondary <resource>