*vortragsfile nach static/media kopiert

*ta-raid migriert
*ta-unix typo gefixed


git-svn-id: svn://svn.c3d2.de/c3d2-web/trunk@463 31f61c52-7bfb-0310-b897-fc00f8a278f0
This commit is contained in:
riot 2006-07-26 11:26:39 +00:00
parent b2293f77cb
commit 995722db2b
4 changed files with 279 additions and 2 deletions

25
content/news/ta-raid.xml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<?xml-stylesheet type="text/xsl" href="../../xsl/html.xsl" ?>
<item title="TA: RAID - zerstückelte Platten" date="2005-03-18T19:00:00" author="riot" category="Themenabend">
<dl>
<dt>Termin</dt>
<dd>18. März 2005 19:00Uhr</dd>
<dt>Ort</dt>
<dd>Berufsakademie Dresden, Baracke E, Heideparkstr. 8, 01099 Dresden</dd>
</dl>
<p>Reicht eine Festplatte nicht, baut man noch eine ein. Dem warum es sich lohnt, mehr als eine Platte im Rechner zu
haben, obwohl der Platz gereicht hätte, widmet sich unserer nächtlicher Techtalk.</p>
<p>Neben den Grundlagen gibt es Beispiele zum Einsatz von RAID auf verschiedenen freien Betriebssystemen.</p>
<addendum>
<p>Folien und Notizen zu den Raid Beispielen</p>
<p>Die Folien hat Tristan-777 in seinem <link href="http://www.psycast.de/blog/?postid=7">Blog</link> gepostet.</p>
<p>Hier sind die Anleitungen für die Beispiele. Wer nach den Befehlen für das nette remounten des root-Filesystems
sucht, schaut bitte in notes-raid1.txt. Die <link href="http://fabrice.bellard.free.fr/qemu/">qemu</link>-Images
gibt es ab 2005-03-23 von hier verlinkt irgendwo.</p>
<ul>
<li><link href="../media/notes-raid1.txt">notes-raid1.txt</link></li>
<li><link href="../media/notes-raid5.txt">notes-raid5.txt</link></li>
</ul>
</addendum>
</item>

View File

@ -113,8 +113,8 @@
</li>
</ol>
</li>
<li>Teil 2: "Unix-Streichelzoo" Unix-Hardware
<p>Vortragende: Alexander Heidenreich, Stephan Adler</p>
<li>
<p>Vortragende: Alexander Heidenreich, Stephan Adler</p>
<p>Viele Eigenschaften von Linux gehen zurück auf Unix und hängen mit den Eigenschaften der ursprünglich
für Unix designten Hardware zusammen. Deshalb sind viele Eigenschaften von Linux und anderen Unixen
erst dann richtig zu verstehen, wenn man sich einmal mit der Hardware befasst hat, die ursprünglich

View File

@ -0,0 +1,123 @@
# Notizen zum RAID-TA des c3d2 am 18.03.2005 - RAID-1-Teil
# Fragen an: Frank Benkstein <frank@benkstein.net>
# Voraussetzungen
# RAID ist fest im Kernel, nicht als Modul!
# devfs wahlweise, aber hilfreich
# qemu -hda hda -hdb hdb -boot c
# System mit init=/bin/sh booten
# (der init=-Parameter sagt Linux, welchen Prozess es als ersten
# starten soll. normalerweise ist das /sbin/init, welcher nach den
# Einträgen in der inittab alle weiteren Prozesse startet)
# Achtung: die Init-Shell kann kein Job-Management
# Strg-C, Strg-Z funktionieren also nicht - kein ping, watch etc.
# benutzen
# Proc-Dateisystem mounten
mount -t proc none /proc
# devfs-Daemon starten
/sbin/devfsd /dev
# ist RAID überhaupt da?
cat /proc/mdstat
# Platten anschauen
fdisk -l /dev/hda
fdisk -l /dev/hdb
# hdb partitionieren
fdisk /dev/hdb
## neue (primäre) Partition
## Typ auf RAID autodetect (fd)
# RAID bauen - die zweite Platte ist noch nicht da (missing)
mdadm --create --raid-devices 2 --level 1 /dev/md0 /dev/hdb1 missing
cat /proc/mdstat
# Dateisystem erstellen
mkreiserfs /dev/md0
# ...mounten
mount /dev/md0 /mnt
# Kontrolle
df -h /mnt /
# root-system kopieren (-x ist dein Freund...)
# rsync empfiehlt sich, wenn acls verwendet werden,
# ansonsten auch star (besseres tar)
cp -ax / /mnt
# Kontrolle
df -h /mnt /
# jetzt fängt die Coolness an... :-)
# pivot_root wechselt das root-Dateisystem im Linux-VFS aus
# siehe pivot_root(2) und pivot_root(8)
# Vorher:
# /dev/hda1 -> /
# /dev/md0 -> /mnt
# Nachher:
# /dev/hda1 -> /mnt
# /dev/md0 -> /
#
# / wird nach /mnt/mnt verschoben und dann /mnt nach /
pivot_root /mnt /mnt/mnt
# alle vorher gemounteten Dateisystem sind jetzt natürlich
# relativ zu /mnt gemountet
# jetzt wird das alte Root freigemacht
umount /mnt/proc
mount -t proc proc /proc
killall devfsd
# mount --move verschiebt einen mount-Point
# /mnt/dev kann nicht ungemountet werden, da es von
# /bin/sh noch benutzt wird
mount --move /mnt/dev /dev
# exec ersetzt das aktuelle Prozess-Image
# da das alte /bin/sh noch /mnt benutzt, muss ein neues
# gestartet werden, das auf / operiert
exec /bin/sh
# am Schluss den devfs-Daemon neu starten
devfsd /dev
umount /mnt # Whoops! - das alte root ist weg
# /dev/hda wird nicht mehr benutzt - das System läuft jetzt
# von /dev/md0 (==/dev/hdb1)
# bis hier hin kann man ohne Sorgen Reset drücken, ohne dass
# Nebeneffekte auftreten
fdisk /dev/hda
## gleiche Partitionierung wie /dev/hdb
## Typ nicht vergessen (fd)
# Partition dem RAID hinzufügen
mdadm --add /dev/md0 /dev/hda1
# wer vorsichtig ist, wartet erstmal bis das rebuild fertig ist
cat /proc/mdstat
# fstab und grub.conf anpassen
vi /etc/fstab
vi /boot/grub/grub.conf
# jeweils /dev/hda1 durch /dev/md0 ersetzen
# grub installieren auf hd0 und hd1 - rebuild muss vorher fertig sein!!!
grub
## root (hd0,0)
## setup (hd0)
## root (hd1,0)
## setup (hd1)
# (neues) root read only mounten
mount -o remount,ro /
reboot -f
# oder, cooler
exec /sbin/init

View File

@ -0,0 +1,129 @@
# Notizen zum RAID-TA des c3d2 am 18.03.2005 - RAID-5-Teil
# Fragen an: Frank Benkstein <frank@benkstein.net>
## Benötigt: Kernel mit md, RAID-5 und loopback, mdadm
# folgendes alles als root
# falls existierende Loops benötigt werden, folgende Befehle anpassen
# alle bereits bestehenden Loop-Devices löschen
echo /dev/loop? | xargs -n1 losetup -d
# Loopdevices anlegen
for i in `seq 0 3` ;
do dd if=/dev/zero of=disk$i bs=1M count=100
losetup /dev/loop$i disk$i
done
# Empfehlung: screen oder splitvt mit "watch -n1 cat /proc/mdstat" oben, shell
# unten oder zweites Terminal
# falls nicht, regelmäßig cat /proc/mdstat ausführen
# auch nie verkehrt: zweite console mit man mdadm
# RAID anlegen - so einfach!
mdadm --create /dev/md0 --level 5 --raid-devices 4 /dev/loop{0,1,2,3}
# gehört ein bestimmtes Blockdevice zu einem RAID?
mdadm --examine /dev/loop1
# bestehendes RAID untersuchen, UUID notieren
mdadm --detail /dev/md0
vi /etc/mdadm.conf
<code>
DEVICE /dev/loop*
ARRAY /dev/md0 uuid=...
</code>
# für Faule statt des vorherigen:
# echo 'DEVICE /dev/loop*' >> /etc/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm.conf
# Monitor mode: mailt wichtige Ereignisse (z.B. Ausfall) an Admin.
# Die starndardmäßige Ausgabe ist ziemlich sporadisch, besser vielleicht
# folgendes Script
# dieses Skript wird von mdadm mit zwei oder drei Parametern aufgerufen:
# 1. die Art des Events (MissingSpareEvent, FailEvent, RebuildStarted, ...)
# 2. das RAID-Device, um das es geht (meist /dev/md0)
# 3. das Block-Device, mit dem das Event was zu tun hat (nicht immer)
<code path="/usr/local/sbin/handle-mdadm-events">
#!/bin/sh
FILE=`mktemp /tmp/mdadm-event.XXXXXX`
MAILTO=frank
cat > $FILE << EOF
A $1 event had been detected on $2, details follow.
# mdadm --detail $2 -- begin
`mdadm --detail $2`
# mdadm --detail $2 -- end
EOF
if [ ! -z "$3" ] ; then
cat >> $FILE << EOF
# mdadm --examine $3 -- begin
`mdadm --examine $3`
# mdadm --examine $3 -- end
EOF
fi
echo "#contents of /proc/mdstat -- begin"
cat /proc/mdstat >> $FILE
echo "#contents of /proc/mdstat -- end"
mail -s "$1 event on $2:`hostname`" "$MAILTO" < $FILE
rm $FILE
</code>
# Monitor mode aktivieren:
mdadm --monitor /dev/md0 --program /usr/sbin/handle-mdadm-events --daemonise
# oder, wenn einem die sporadische Ausgabe reicht
mdadm --monitor /dev/md0 --mail frank --daemonise
# am besten in init-Skript aufnehmen
# wichtig: ein funktonierender lokaler Mailer wird hierbei vorausgesetzt
# falls dies nicht gewährleistet ist, statt die Zeile
# mail -s "$1 event on $2:`hostname`" "$MAILTO" < $FILE
# durch
# cat $FILE > /var/log/$2.log
# oder ähnliches ersetzen
# mal ein bisschen mit dem neuen RAID rumspielen
mdadm --stop /dev/md0 # anhalten
mdadm --assemble /dev/md0 # zusammenbauen lassen
# Dateisystem auf RAID erstellen
mkreiserfs /dev/md0
mount /dev/md0 /mnt
df -h /mnt
# Dateisystem füllen, z.B.
tar xvjf linux-2.6.10.tar.bz2 -C /mnt
df -h /mnt
# zum späteren Vergleich
tar xvjf linux-2.6.10.tar.bz2
# was passiert, wenn eine Platte ausfällt?
# per Hand setzen mit --fail
# /proc/mdstat und evt. mutt beobachten
mdadm --fail /dev/md0 /dev/loop0
# Platte muss zunächst entfernt werden
mdadm --remove /dev/md0 /dev/loop0
# nach evt. Neustart und Auswechseln der Platte, neue hinzufügen
mdadm --add /dev/md0 /dev/loop0
# Wichtig: /proc/mdstat beobachten!