Debian Soft-Raid: Unterschied zwischen den Versionen
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
=Einleitung= | |||
Linux bietet mächtige Tools um ein Software-Raid zu betreiben. Es ist dazu kein besonderer Raid-Controller erforderlich. Es können sämtliche Festplatten verwendet werden, die vom Linux Kernel erkannt werden. Es ist dabei egal, ob diese an IDE, SATA, USB oder Firewire Schnittstellen (auch gemischt) hängen. Auch die Größe und Typ der Festplatten ist unerheblich. Die Größe des Raid-Array wird von der kleinsten zur Verfügung stehenden Partition bestimmt. Es können auch mehrere Array's auf den zur Verfügung stehenden Festplatten eingerichtet werden, z.B. Raid0 für SWAP und Raid5 für Daten. | Linux bietet mächtige Tools um ein Software-Raid zu betreiben. Es ist dazu kein besonderer Raid-Controller erforderlich. Es können sämtliche Festplatten verwendet werden, die vom Linux Kernel erkannt werden. Es ist dabei egal, ob diese an IDE, SATA, USB oder Firewire Schnittstellen (auch gemischt) hängen. Auch die Größe und Typ der Festplatten ist unerheblich. Die Größe des Raid-Array wird von der kleinsten zur Verfügung stehenden Partition bestimmt. Es können auch mehrere Array's auf den zur Verfügung stehenden Festplatten eingerichtet werden, z.B. Raid0 für SWAP und Raid5 für Daten. | ||
Zeile 6: | Zeile 6: | ||
Um Raid-Array's zu verwalten, kommt mdadm zum Einsatz. Damit die Array-Größe und Dateisystem-Größe später problemlos durch hinzufügen einer weiteren Festplatte erweitert werden kann, kommt der Logical Volume Manager (lvm) zum Einsatz. | Um Raid-Array's zu verwalten, kommt mdadm zum Einsatz. Damit die Array-Größe und Dateisystem-Größe später problemlos durch hinzufügen einer weiteren Festplatte erweitert werden kann, kommt der Logical Volume Manager (lvm) zum Einsatz. | ||
Das komplette Vorgehen incl. Ersetzen defekter und Erweiterung um weitere Festplatten ist einmal Kommandozeilen- und einmal [[Debian_Webmin|Webmin]] basiert beschrieben. | |||
=Kommandozeile= | |||
==Installation== | ==Installation== | ||
apt-get install initramfs-tools mdadm lvm2 | apt-get install initramfs-tools mdadm lvm2 | ||
Zeile 12: | Zeile 15: | ||
Nach dem Download startet ein Script. In diesem OK anwählen | Nach dem Download startet ein Script. In diesem OK anwählen | ||
. | . | ||
Arryas: all und Return betätigen | |||
Zeile 193: | Zeile 196: | ||
==Festplatte ersetzen== | ==Festplatte ersetzen== | ||
Falls eine Festplatte ausgefallen ist, muß diese ersetzt werden. | Falls eine Festplatte ausgefallen ist, muß diese ersetzt werden. | ||
Mit dem Befehl | Mit dem Befehl ===LVM Einrichten=== | ||
mdadm --detail /dev/md0 | mdadm --detail /dev/md0 | ||
zunächst ermitteln, welche Festplatte ausgefallen ist. Ausgabe z.B. : | zunächst ermitteln, welche Festplatte ausgefallen ist. Ausgabe z.B. : | ||
Zeile 228: | Zeile 231: | ||
mdadm --assemble --scan | mdadm --assemble --scan | ||
Anschließend die Arrayüberwachung gemäß obiger Anleitung neu einrichten. | Anschließend die Arrayüberwachung gemäß obiger Anleitung neu einrichten. | ||
=Webmin= | |||
Voraussetzung: | |||
[[Debian_Webmin|webmin]] ist installiert | |||
==Installation== | |||
apt-get install hdparm initramfs-tools mdadm lvm2 | |||
Nach dem Download startet ein Script. In diesem OK anwählen | |||
Arrays: all und Return betätigen | |||
===Präparieren der Festplatten=== | |||
===Raid Array anlegen=== | |||
===LVM Einrichten=== | |||
==Array Überwachung== | |||
==Array erweitern== | |||
==Festplatte ersetzen== | |||
==Array neu initialisieren== |
Version vom 26. Juli 2009, 08:00 Uhr
Einleitung
Linux bietet mächtige Tools um ein Software-Raid zu betreiben. Es ist dazu kein besonderer Raid-Controller erforderlich. Es können sämtliche Festplatten verwendet werden, die vom Linux Kernel erkannt werden. Es ist dabei egal, ob diese an IDE, SATA, USB oder Firewire Schnittstellen (auch gemischt) hängen. Auch die Größe und Typ der Festplatten ist unerheblich. Die Größe des Raid-Array wird von der kleinsten zur Verfügung stehenden Partition bestimmt. Es können auch mehrere Array's auf den zur Verfügung stehenden Festplatten eingerichtet werden, z.B. Raid0 für SWAP und Raid5 für Daten.
Im folgenden wird beschrieben wie ein Raid5 einzurichten ist, da dieses wohl am häufigsten für Fileserver verwendet wird.
Um Raid-Array's zu verwalten, kommt mdadm zum Einsatz. Damit die Array-Größe und Dateisystem-Größe später problemlos durch hinzufügen einer weiteren Festplatte erweitert werden kann, kommt der Logical Volume Manager (lvm) zum Einsatz.
Das komplette Vorgehen incl. Ersetzen defekter und Erweiterung um weitere Festplatten ist einmal Kommandozeilen- und einmal Webmin basiert beschrieben.
Kommandozeile
Installation
apt-get install initramfs-tools mdadm lvm2
Nach dem Download startet ein Script. In diesem OK anwählen . Arryas: all und Return betätigen
Präparieren der Festplatten
Annahme: 3 Festplatten /dev/sdb /dev/sdc /dev/sdd
Die Devicenamen (/dev/sdb ...) können mit Hilfe des Befehls ermittelt werden
fdisk -l
Partitionieren der Festplatten (alle Daten gehen verloren)
fdisk /dev/sdb
Fdisk ist über Buchstaben zu bedienen (m für Hilfe)
checken, ob korrekte Fesplatte gewählt wurde
p
Die Partitionen der Festplatte werden aufgelistet
Falls Partitionen bestehen, alle entfernen
d Partitionsnummer die gelöscht werden soll eingeben (z.B. 1) Wiederholen für alle Partitionen, die gelöscht werden sollen
Eine neue Partition anlegen:
n p (primäre Partition) Partitionsnummer (1-4) : 1 Erster Zylinder: enter um Vorgabewert zu übernehmen letzter Zylinder: enter um Vorgabewert zu übernehmen, dh. komplette Festplatte. Bei Bedarf evtl. anpassen
Den Dateisystemtyp festlegen:
t Hexcode (L um Liste anzuzeigen): fd Nochmals p aufrufen, um die neue Partitionstabelle zu prüfen. Wenn OK, dann mit w die Partitionierung auf die Festplatte zu schreiben.
Sämtliche Schritte für die anderen Festplatten (dev/sdc und /dev/sdd) wiederholen.
Raid Array anlegen
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
Eine Auflistung der beteiligten Festplatten erscheint. Wenn alles OK, dann die Frage "continue creating array?" mit y beantworten.
- Es kann passieren, dass beim mdadm-Befehl "Device Busy" oder ähnliche Fehler ausgegeben werden. Dies kann auftreten, wenn Debian versucht auf eine der neu partitionierten Festplatten zuzugreifen, um diese ins Dateisystem einzubinden. Dies ist hier nicht weiter schlimm, es muß dann später lediglich der Rechner neu gebootet werden und obiger mdadm-Befehl wiederholt werden (siehe unten). Damit Debian in Zukunft nicht versucht auf die Einzel-Festplatten, sondern später nur auf das Array zuzugrefen, folgende Schritte ausführen (auch wenn kein Fehler auftrat):
durch den mdadm-Befehl haben alle beteiligten Festplatten den selben Volume Identifier UUID erhalten, sodass es genügt die folgenden Schritte für eine der beteiligten Festplatten (dev/sdb1, /dev/sdc1 oder /dev/sdd1) auszuführen:
vol_id /dev/sdb1
Ausgabe:
ID_FS_USAGE=raid ID_FS_TYPE=linux_raid_member ID_FS_VERSION=0.90.0 ID_FS_UUID=c84cf171:c72b4da5:e368bf24:bd0fce41 ID_FS_UUID_ENC=c84cf171:c72b4da5:e368bf24:bd0fce41 ID_FS_LABEL= ID_FS_LABEL_ENC=
/etc/fstab bearbeiten:
vi /etc/fstab
Folgendes einfügen (UUID mit der UUID des vol_id-Befehls ersetzen):
#No Automount for Raid Devices UUID=ab7e3bf8:ec404b79:e368bf24:bd0fce41 none auto nouser,noauto 0 0
- Die folgenden beiden Schritte sind nur erforderlich, wenn beim ersten mdadm-Befehl ein Fehler auftrat. Ansonsten überspringen.
Rechner rebooten Raid Array anlegen (falls vor dem Reboot ein Fehler auftrat):
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
Eine Auflistung der beteiligten Festplatten erscheint. Wenn alles OK, dann die Frage "continue creating array?" mit y beantworten.
Status des Arrays abfragen
mdadm --detail /dev/md0
Neben der Anzahl der Platten, dem Raid-Level (5) wird der Status angegeben. Dieser ist nach dem anlegen "clean, degraded, recovering". Das Array muß erst komplett initialisiert werden (Recovering). Das Recovery kann je nach Größe und Geschwindigkeit der Platten einige Stunden in Anspruch nehmen.
Während der Regenerierung kann der Fortschritt und die restliche Dauer angezeigt werden:
cat /proc/mdstat
Obwohl das Array degraded ist und während es regeneriert wird, ist es bereits verwendbar.
LVM Einrichten
Auf diesem Raid-Array könnte nun einfach "ganz normal" ein EXT3-Filesystem angelegt werden. Deutlich flexibler ist das Array allerdings, wenn LVM (Logical Volume Management) zum Einsatz kommt. Damit ist es relativ einfach, das Array um eine weitere Platte zu erweitern, ohne das Array neu anlegen zu müssen.
Initialisieren des Arrays für die Verwendung mit LVM:
pvcreate /dev/md0
Volume Group vgraid5 anlegen:
vgcreate vgraid5 /dev/md0
Die tatsächliche Größe des Arrays ermitteln:
vgdisplay vgraid5 | grep Free
Ausgabe von vgdisplay z.B:
Free PE / Size 190775/ 745.21 GB
Anlegen des Volumes (FREE_PE mit eben ermittelten PE-Wert - im Beispiel 190775 - ersetzen):
lvcreate -l FREE_PE vgraid5 -n lvm0
EXT3 Filesystem anlegen:
mkfs.ext3 /dev/vgraid5/lvm0
Mounten des Arrays bzw. lvm Volumes in den Ordner /home/shares. In der Anleitung Samba wird standardmäßgi dieses Verzeichnis benutzt, um Netzwerkfreigaben anzulegen. D.h. die Netzwerkfreigaben werden auf dem Raid5-Array angelegt:
mkdir -p /home/shares mount /dev/vgraid5/lvm0 /home/shares
Mount beim Systemstart:
vi /etc/fstab
Folgende Zeile anhängen:
/dev/mapper/vgraid5-lvm0 /home/shares ext3 rw,noatime 0 0
Array Überwachung
Achtung: Folgende Schritte erst ausführen, nachdem das Raid Array vollständig hergestellt ist. Ansonsten könnte es passieren, dass das Raid-Array als ein degraded Array aus zwei Festplatten und ein Hotspare in die mdadm.conf eingetragen wird. Deshalb unbedingt vor dem Weitermachen mit folgenden Befehl überprüfen, ob das Raid5-Array vollständig (State: clean) aufgebaut wurde:
mdadm --detail /dev/md0
Wenn Array komplett hergestellt:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
dpkg-reconfigure mdadm
Folgende Fragen beantworten:
OK anwählen MD-Arrays nötig für root Filesystem: no Monatliche Redundanzprüfung: Ja Überwachungsdämon starten: ja Email-Empfänger für Emailbenachrichtigungen: Email-Adresse eingeben z.B. root@domain.org
Überwachungsdämon neu starten:
/etc/init.d/mdadm restart
Array erweitern
Ein laufendes Array kann folgendermaßen um eine Festplatte erweitert werden, um die Kapazität zu erhöhen. Das Array und Dateisystem bleibt dabei komplett intakt.
Neue Festplatte (/dev/sde) einbauen und Rechner einschalten. neue Festplatte partitionieren:
fdisk /dev/sde
Neue Raid-Partition entsprechend obiger Anleitung anlegen
Neue Festplatte dem Array hinzufügen:
mdadm --add /dev/md0 /dev/sde1
Staus abfragen:
mdadm --detail /dev/md0
Ausgabe:
... Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sdb1 1 8 17 1 active sync /dev/sdc1 2 8 33 2 active sync /dev/sdd1 3 8 49 - spare /dev/sde1
Die neue Festplatte wurde als Hot Spare ins Array eingebunden. D.h. wenn nun eine Festplatte ausfallen würde, würde die Hot Spare Festplatte sofort automatisch ins Array eingebunden und neu initialisiert. Es soll aber hier die Kapazität des Array's erweitert werden. Dies erfolgt mit folgendem Befehl:
mdadm --grow --raid-devices=4 /dev/md0
Staus abfragen:
mdadm --detail /dev/md0
Ausgabe:
... State : clean, recovering ... Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sdb1 1 8 17 1 active sync /dev/sdc1 2 8 33 2 active sync /dev/sdd1 3 8 49 3 active sync /dev/sde1
LVM Physical Volume vergrößern:
pvresize /dev/md0
Logical Volume vergrößern:
lvresize /dev/vgraid5/lvm0 /dev/md0
Dateisystem erweitern:
resize2fs /dev/vgraid5/lvm0
Festplatte ersetzen
Falls eine Festplatte ausgefallen ist, muß diese ersetzt werden. Mit dem Befehl ===LVM Einrichten===
mdadm --detail /dev/md0
zunächst ermitteln, welche Festplatte ausgefallen ist. Ausgabe z.B. :
... Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sdb1 1 8 17 1 active sync /dev/sdc1 2 0 0 2 removed
=> /dev/sdd ist ausgefallen
Den Rechner ausschalten und die entsprechende Festplatte austauschen. Rechner neu starten.
Neue Festplatte partitionieren
fdisk /dev/sdd
Neue Raid-Partition entsprechend obiger Anleitung anlegen
Neue Festplatte dem Array hinzufügen:
mdadm --add /dev/md0 /dev/sdd1
Status checken:
mdadm --detail /dev/md0
Ausgabe:
... Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sdb1 1 8 17 1 active sync /dev/sdc1 3 8 33 2 spare rebuilding /dev/sdd1
=> Raid5 Array wird neu initialisiert
Array neu initialisieren
Falls das Betriebssystem neu installiert werden muss, kann das Array folgendermaßen ohne Datenverlust neu eingerichtet werden (zunächst die Pakete gemäß obiger Anleitung installieren):
mdadm --assemble --scan
Anschließend die Arrayüberwachung gemäß obiger Anleitung neu einrichten.
Webmin
Voraussetzung: webmin ist installiert
Installation
apt-get install hdparm initramfs-tools mdadm lvm2
Nach dem Download startet ein Script. In diesem OK anwählen Arrays: all und Return betätigen