Anzeige:
Ergebnis 1 bis 1 von 1

Thema: RAID1 auf Rootservern abschalten

  1. #1
    aka adlerweb
    Registriert seit
    Jul 2004
    Ort
    bei Koblenz
    Beiträge
    71

    RAID1 auf Rootservern abschalten

    Rootserver erfreuen sich in letzter Zeit immer größerer Beliebtheit. Neuestes Lockmittel der Anbieter sind Server mit gespiegelten Festplatten - einem RAID1. Einige Anbieter setzen hierbei auf Softwarelösungen, die man problemlos modifizieren kann.

    Warnung: Einige der hier genannten Schritte können bei falscher Anwendung zu Datenverlust führen, daher sollten sie ein Backup sowie entsprechende Grundkenntnisse besizten. (Absolutes Minimum: Was ist ein RAID1, wie gehe ich mit fdisk um, mounten, fstab, ...)

    Warum?

    Ein RAID1 hat einen entscheidenden Vorteil: Sollte eine Festplatte ausfallen kann der Server ohne Datenverlust oder Ausfall weiterarbeiten. Die Kehrseite: Der Verfügbare Festplattenplatz wird halbiert. In meinem Fall ging es darum die zweite Festplatte für manuelle Sicherungen zu verwenden. Zwar ist der Server so nicht mehr gegen einen Festplattenausfall geschützt, aber ich erhalte durch diese eigenhändige Sicherung die Möglichkeit versehentlich bzw durch einen Angriff gelöschte oder modifizierte Dateien wiederherzustellen. Natürlich kann man den neu gewonnenen Speicher auch anderweitig nutzen, aber man sollte unter keinen Umständen ganz auf Backups verzichten - sollte sich ja von selber verstehen.

    Funktioniert es?

    Die erste Frage, welche sich stellt: Verwendet der Server ein Softwareraid. Ich habe das ganze auf einem Server der Firma Server4You durchgeführt (Opteron, 2x80GB). Ob ein Softwareraid im Einsatz ist lässt sich mit folgdendem Befehl ermitteln:
    Code:
    cat /proc/mdstat
    Sollte die Datei nicht gefunden werden oder leer sein ist vermutlich ein Hardware-RAID im Einsatz - in diesem Fall können sie die Spiegelung nicht selber aufheben. In meinem Fall lautete die Ausgabe:
    Code:
    Personalities : [raid1]
    md0 : active raid1 sdb1[0] sda1[1]
          97536 blocks [2/2] [UU]
    
    md1 : active raid1 sdb3[2] sda3[1]
          73455936 blocks [2/2] [UU]
    Wir sehen 2 RAID-Geräte:
    md0, ~100MB (blöcke/1000), bestehend aus sdb1 und sda1
    md1, ~73GB, bestehend aus sdb3 und sda3

    Zweite Platte entfernen
    Da RAID1 eine exakte 1:1-Kopie darstellt kann man eine Festplatte ohne Neukonfiguration entfernen. Hierbei ist zu beachten, dass der Bootloader meist auf die erste Festplatte (in diesem Fall sda) zurückgreift - diese sollte man natürlich nicht löschen. Also werde ich die Partitionen auf sdb entfernen.

    Code:
    mdadm /dev/md0 -f /dev/sdb1 -r /dev/sdb1
    markiert im ersten Schritt die Partition sdb1 des Gerätes md0 als fehlerhaft. Der RAID-Treiber greift ab sofort nur noch auf die übrig gebliebene Partition zu. Anschließend wird sie komplett aus dem RAID entfernt. Gleiches müssen wir für das zweite RAID-Gerät (wenn vorhanden) durchführen:
    Code:
    mdadm /dev/md1 -f /dev/sdb3 -r /dev/sdb3
    Neu Partitionieren

    Da nun beide RAID-Partitionen nicht mehr verwendet werden wird es Zeit diese anderweitig zu nutzen. Partitionieren funktioniert nur zuverlässig, wenn keine Partition der Platte verwendet wird. Dies erreicht man entweder durch ein Recoverysystem oder das unmounten aller Partitionen. Da ich Restarts nicht mag werde ich kurz das Unmounten erklären - sollten sie das Recoverysystem nutzen einfach den nächsten Abschnitt überspringen.

    Als erstest verschafften wir uns einen Überblick über den Aufbau der Festplatte. Dies geht am besten mit fdisk -l /dev/sdb. Meine Ausgabe:

    Code:
      Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1          13       97656   fd  Linux raid autodetect
    Partition 1 does not end on cylinder boundary.
    /dev/sdb2              13         134      976562+  82  Linux swap / Solaris
    Partition 2 does not end on cylinder boundary.
    /dev/sdb3             134        9279    73456054+  fd  Linux raid autodetect
    sdb1 und sdb3 haben wir ja bereits abgeschaltet, bleibt noch die SWAP-Partition sdb2 welche einfach mit swapoff /dev/sdb2 abgewürgt wird.

    Weiter geht es mit dem eigentlichen Partitionieren: fdisk /dev/sdb hilft uns dabei. Ich entschied mich alle Partitionen zu löschen (d) und ein neues Layout (n) zu erstellen. Ergebnis: 512MB SWAP (Typ 82) auf /dev/sdb1 und der Rest als normale Partition (Typ 83) auf /dev/sdb2. Mit w wird das ganze geschrieben und fdisk beendet. Die Ausgabe sollte so aussehen:
    Code:
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    Sollte ein Hinweis kommen, dass der Kernel noch die alte Partitionstabelle nutzt habt ihr nicht alle Partitionen ausgehängt - in diesem Fall am besten sofort ins Recoverysystem und prüfen wie die RAIDs und Partitionen aussehen um sicher zu stellen, dass kein Datenverlust entsteht. Nützhliche Tools könnten z.B. mdadm --detail /dev/mdX und testdisk sein. Aber gehn wir davon aus, dass ihr alles richtig gemacht habt.

    Der neue Speicher

    Nun können wir die Partitionen normal formatieren - im meinem Fall also:
    Code:
    mkswap /dev/sdb1
    mkfs.ext3 /dev/sdb2
    ein "swapon /dev/sdb1" sowie mkdir "/mnt/backup && mount /dev/sdb2 /mnt/backup" hängen alles ein und die Zeilen
    Code:
    /dev/sdb2              /mnt/backup               ext3            defaults 0 1
    /dev/sdb1               none            swap            sw              0 0
    in der /etc/fstab sorgen dafür, dass nach einem Reboot wieder alles an seinem Platz ist.

    Tipps und Kommentare

    /dev/mdX vs. /dev/sda

    Im Beispiel habe ich das System weiter auf /dev/md0 bzw /dev/md1 gelassen. Man könnte auch durch Anpassungen am Bootloader und der fstab einfach /dev/sda1 und sda3 verwenden und so das komplette RAID-System abschalten. Da aber der RAID1-Treiber auch mit einer Platte ohne Murren funktioniert und ich so die Möglichkeit behalte die Spiegelung mit wenigen Handgriffen wieder einzurichten habe ich darauf verzichtet.

    Backupsysteme

    Da ich von manuellem Backup geredet habe kam die Frage auf, welche Software zum Einsatz kommt. In meinem Fall sind es 2:
    a) ein simples tar cjf
    b) ein inkrementelles Backup mit der Möglichkeit alte Dateien zu retten per rdiff-backup
    Zu Beiden sollten sich diverse Howtos finden lassen

    Spiegelung wieder einrichten

    Um die Spiegelung wieder einzurichten muss man auf der geänderten Platte wieder Partitionen anlegen, welche der Größe der Originalen entsprechen (kann man z.B. auf der intakten Platte nachschauen). Als Typ wird fd verwendet. Mit mdadm /dev/md1 -a /dev/sdb3 wird die Partition wieder aktiv, per cat /proc/mdstat kann man die neue (Erst-)Spiegelung verfolgen

    Code:
    md1 : active raid1 sdb3[2] sda3[1]
          73455936 blocks [2/1] [_U]
          [>....................]  recovery =  1.2% (886336/73455936) finish=27.2min speed=44316K/sec
    Weitere Fragen
    Bitte per PM oder im IRC (Nick: adlerweb)
    Geändert von ewe (09.01.07 um 16:07 Uhr) Grund: Typos

Ähnliche Themen

  1. Installation auf SATA Raid1
    Von basstscho im Forum System installieren und konfigurieren
    Antworten: 1
    Letzter Beitrag: 27.08.06, 21:17
  2. Einführung in das Concurrent Versions System (CVS)
    Von stokedfish im Forum Tipps und Tricks
    Antworten: 3
    Letzter Beitrag: 15.08.04, 14:30
  3. In was fuer einem Staat leben wir eigentlich...
    Von HEMIcuda im Forum Meldungen und Mitglieder
    Antworten: 75
    Letzter Beitrag: 01.12.03, 02:32
  4. rootkit im eprom
    Von howbye im Forum stationäre Hardware
    Antworten: 6
    Letzter Beitrag: 03.11.02, 12:56
  5. Problem mit / auf Raid1
    Von Tommy_20 im Forum System installieren und konfigurieren
    Antworten: 1
    Letzter Beitrag: 29.04.02, 18:45

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •