/usr/share/doc/HOWTO/de-html/DE-Software-RAID-HOWTO-7.html is in doc-linux-de 2003.10-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
 <TITLE>Linux Software-RAID HOWTO: Root-Partition oder Swap-Partition als RAID       </TITLE>
 <LINK HREF="DE-Software-RAID-HOWTO-8.html" REL=next>
 <LINK HREF="DE-Software-RAID-HOWTO-6.html" REL=previous>
 <LINK HREF="DE-Software-RAID-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-Software-RAID-HOWTO-8.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Software-RAID-HOWTO-6.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Software-RAID-HOWTO.html#toc7"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="DE-Sw-RAID-HOWTO-Root-RAID"></A> <A NAME="s7">7.</A> <A HREF="DE-Software-RAID-HOWTO.html#toc7">Root-Partition oder Swap-Partition als RAID       </A></H2>
<H2><A NAME="ss7.1">7.1</A> <A HREF="DE-Software-RAID-HOWTO.html#toc7.1">Root-Partition als RAID        </A>
<!--RAID!Root-Partition--></H2>
<P>Eine existierende HOWTO beschäftigt sich bereits mit dem Thema, allerdings ist 
Sie erstens auf Englisch und zweitens geht es durch neue Kerneloptionen auch 
eleganter als dort beschrieben. </P>
<P>Bitte erleichtern Sie sich Ihre Arbeit und senken Sie das Frustnieveau, indem 
Sie vorab noch drei Tips beherzigen:</P>
<P>
<OL>
<LI>Erstellen Sie ein Backup Ihrer Daten. </LI>
<LI>Erstellen Sie sowohl eine funktionierende und getestete DOS als auch 
Linux Bootdiskette. </LI>
<LI>Lesen Sie diese Ausführungen erstmal komplett durch, bevor Sie mittendrin 
feststellen müssen, etwas wichtiges vergessen zu haben, das Sie zu so spätem 
Zeitpunkt nicht mehr nachholen können.</LI>
</OL>
</P>
<H3>DLD 6.0</H3>
<P>Für dieses Verfahren wird noch eine DOS oder Win95 Partition in Verbindung mit 
dem Loadlin benötigt. Loadlin befindet sich - so das Programm nicht schon eingesetzt 
wird - auf der ersten DLD CD unter <CODE>/delix/RPMS/i386/loadlin-1.6.2.i386.rpm</CODE>. 
Alternativ kann man sich auch eine Bootdiskette anfertigen.</P>
<P>Der Hintergrund ist ganz einfach der, daß LILO mit dem RAID-Device nicht 
zurechtkommt und man somit nicht explizit von diesem RAID-Device booten kann. 
Daher behilft man sich hier entweder mit Loadlin, oder aber mit einem Mini 
Linux auf einer kleinen Extra-Partition. Weitere Möglichkeiten zum Booten von 
Linux auch von RAID-Verbunden wurden bereits im Abschnitt
<A HREF="DE-Software-RAID-HOWTO-4.html#DE-Sw-RAID-HOWTO-MoegBoot">Möglichkeiten des Bootens von Linux</A> behandelt.</P>
<P>Nichts desto trotz bleiben wir bei dem Verfahren mit Loadlin. Das Programm 
befindet sich nach erfolgreicher Installation des RPMS-Paketes unter 
<CODE>/dos/loadlin/</CODE>. Auf der oben genannten nötigen DOS Partition richtet 
man sich nun ein Verzeichnis wie z.B. Linux ein und kopiert die Dateien 
<CODE>loadlin.bat</CODE> und <CODE>loadlin.exe</CODE> zusammen mit dem frischen 
Kernel, in den die RAID-Parameter einkompiliert wurden, hinein.</P>
<P>Um sicherzugehen, daß auch wirklich nichts passiert, sollte man entweder die 
nötigen Treiber für den (E)IDE Kontroller oder des passenden SCSI Kontroller 
auch mit in den Kernel einkompiliert haben.</P>
<P>Die Batchdatei <CODE>loadlin.bat</CODE> wird nun dahingehend angepaßt, daß wir 
die Parameter für das zu bootende RAID-Device gleich mit angeben:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
md=<md device no.>,<raid level>,<chunk size>,dev0,...,devn 
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<DL>
<DT><B>md device no</B><DD>
<P>Die Nummer des RAID (md) Devices: »1« steht für 
<CODE>/dev/md1</CODE>, »2« für <CODE>/dev/md2</CODE> usw.</P>
<DT><B>raid level</B><DD>
<P>Welches RAID Level wird verwendet:
»-1« für Linear Modus, »0« für RAID-0 (Striping).</P>
<DT><B>chunk size</B><DD>
<P>Legt die Chunk Size fest bei RAID-0 und RAID-1 fest.</P>
<DT><B>dev0-devn</B><DD>
<P>Eine durch Kommata getrennte Liste von Devices,
aus denen das md Device gebildet wird, z.B. <CODE>/dev/hda1,/dev/hdc1,/dev/sda1</CODE>. </P>
</DL>
</P>
<P>Andere RAID-Modi außer Linear und RAID-0 werden im Moment nicht unterstützt. 
Gemäß der vorher beschriebenen Anleitung würde die Zeile in der <CODE>linux.bat</CODE> 
dann so aussehen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
c:\linux\loadlin c:\linux\zimage root=/dev/md0 md=0,0,0,0,/dev/sda6,/dev/sdb6 ro
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Dies soll nur eine einzige Zeile sein; außerdem ist auch hier wieder auf die 
richtige Reihenfolge der Partitionen zu achten. Weiterhin müßen natürlich zwei 
oder mehrere Partitionen - zu entweder einem RAID-0 oder einem Linear Device 
zusammengefaßt - bereits vorliegen. Der Kernel muß die o.a. Bootoption und die 
nötigen RAID oder Linear Parameter in den Kernel einkompiliert haben; man 
beachte: Nicht als Module. Dann mountet man das RAID-Device, welches später 
die Root-Partition werden soll, nach z.B. <CODE>/mnt</CODE>, kopiert mittels einer 
der im Abschnitt 
<A HREF="DE-Software-RAID-HOWTO-4.html#DE-Sw-RAID-HOWTO-MoegKopvDat">Möglichkeiten zum Kopieren von Daten</A> beschriebenen 
Methoden die benötigten Verzeichnisse auf das RAID-Device.</P>
<P>Speziell für die DLD 6.0, aber auch für alle anderen Distributionen sei hier 
gesagt, daß beim Booten von einem RAID-Device der oben beschriebene Befehl 
<CODE>mdadd -ar</CODE> vor dem ersten <CODE>mount</CODE> Befehl auszuführen ist. Für 
die DLD 6.0 heißt das konkret, daß der Befehl bereits in das Skript 
<CODE>/etc/init.d/bc.mount_root</CODE> eingetragen werden muß, da dort der erste 
<CODE>mount</CODE> Befehl ausgeführt wird. Benutzer anderer Distributionen sind 
hier auf sich gestellt oder schauen sich zur Not die Methode mit den neueun 
RAID-Tools Version 0.9x an; siehe Abschnitt
<A HREF="DE-Software-RAID-HOWTO-6.html#DE-Sw-RAID-HOWTO-gen">RAID-Verbunde mit den RAID-Tools Version 0.9x erstellen</A>.</P>
<P>Jetzt fehlen nur noch die passenden Einträge in <CODE>/etc/fstab</CODE> und 
<CODE>/etc/lilo.conf</CODE>, in denen man auf dem neuen RAID-Device die 
ursprüngliche Root-Partition in <CODE>/dev/md0</CODE> umändert - im Moment liegen 
diese Dateien natürlich noch unter <CODE>/mnt</CODE>.</P>
<P>An dieser Stelle sollte man die obige Liste noch einmal in Ruhe durchsehen, 
sich vergewissern, daß alles stimmt, und dann die DOS oder Win95 Partition 
booten. Dort führt man nun die Batchdatei <CODE>linux.bat</CODE> aus.</P>
<H3><A NAME="DE-Sw-RAID-HOWTO-Generst"></A> Generisch </H3>
<P>Im Abschnitt 
<A HREF="DE-Software-RAID-HOWTO-6.html#DE-Sw-RAID-HOWTO-gen">RAID-Verbunde mit den RAID-Tools Version 0.9x erstellen</A> 
wurde bereits auf die 
vorzügliche Eigenschaft des automatischen Erkennens von RAID-Devices durch den 
Kernel-Patch beim Startup des Linux-Systems hingewiesen. Dieser Umstand legt 
die Vermutung nahe, daß es mit dieser Hilfe noch einfacher ist, die 
Root-Partition als RAID-Device laufen zu lassen. Das ist auch wirklich so, 
allerdings gibt es auch hierbei immer noch einige Kleinigkeiten zu beachten. 
Generell kann man Linux entweder mittels Loadlin oder mit Hilfe von LILO 
booten. Je nach Bootart ist die Vorgehensweise unterschiedlich aufwendig.</P>
<P>Für beide Fälle braucht man jedoch erstmal ein RAID-Device. Um bei dem 
Beispiel des RAID-0 Devices mit den Partitionen <CODE>/dev/sda6</CODE> und 
<CODE>/dev/sdb6</CODE> zu bleiben, nehmen wir dieses Device und mounten es in 
unseren Verzeichnisbaum.</P>
<P>Hier muß allerdings noch einmal darauf hingewiesen werden, daß ein RAID-0 
Device als Root-Partition ein denkbar schlechtes Beispiel ist. RAID-0 besitzt 
keinerlei Redundanz; fällt eine Festplatte aus, ist das Ganze RAID im Eimer. 
Für eine Root-Partition sollte man deshalb auf jeden Fall ein RAID-1 oder 
RAID-5 Device vorziehen. Auch das funktioniert Dank der neuen 
Autodetect Funktion und wird analog dem beschriebenen RAID-0 Verbund 
eingerichtet.</P>
<P>Auf das gemountete RAID-Device <CODE>/dev/md0</CODE> kopiert man nun ganz simpel 
mittels einer der im Abschnitt 
<A HREF="DE-Software-RAID-HOWTO-4.html#DE-Sw-RAID-HOWTO-MoegKopvDat">Möglichkeiten zum Kopieren von Daten</A> 
beschriebenen Methoden das komplette Root-Verzeichnis.</P>
<P>Danach muß auf dem RAID-Device noch die Datei <CODE>/etc/fstab</CODE> so angepaßt 
werden, das als Root-Partition <CODE>/dev/md0</CODE> benutzt wird und nicht mehr 
die originale Root-Partition.</P>
<P>Erstellen Sie sich eine DOS-Bootdiskette - das pure DOS von Win95 tut es 
auch - und auf dieser ein Verzeichnis Linux. Hierher kopieren Sie nun aus dem 
passenden RPM-Paket Ihrer Distribution das DOS-Tool <CODE>loadlin</CODE> und Ihren 
aktuellen Kernel. Manchmal befindet sich <CODE>loadlin</CODE> auch unkomprimiert im 
Hauptverzeichnis der Distributions-CD. Der Kernel sollte natürlich die 
RAID-Unterstützung bereits implementiert haben. Nun erstellen Sie mit Ihrem 
Lieblingseditor in dem neuen Linux Verzeichnis eine <CODE>loadlin.bat</CODE>. Haben 
Sie Ihren Kernel z.B. <CODE>vmlinuz</CODE> genannt, sollte in der Datei 
<CODE>loadlin.bat</CODE> etwas in dieser Art stehen: </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
a:\linux\loadlin a:\linux\vmlinuz root=/dev/md0 ro vga=normal 
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Die Pfade müssen natürlich angepaßt werden. Ein Reboot und das Starten von der 
Diskette mit der zusätzlichen Ausführung der <CODE>linux.bat</CODE> sollte Ihnen 
ein vom RAID-Device gebootetes Linux bescheren. Booten Sie generell nur über
Loadlin, so endet für Sie hier die Beschreibung.</P>
<P>Möchten Sie allerdings Ihr neues Root-RAID mittels LILO booten, finden 
Sie im Abschnitt 
<A HREF="DE-Software-RAID-HOWTO-4.html#DE-Sw-RAID-HOWTO-MoegBoot">Möglichkeiten des Bootens von Linux</A> diverse Methoden 
aufgelistet und teilweise sehr genau beschrieben, mit denen Sie sich noch bis zum 
endgültigen Erfolg beschäftigen müßten.</P>
<H3>Anmerkung zum redundanten Root-RAID</H3>
<P>Hat man sich bei einer anderen Distribution als SuSE 6.2 für einen 
Root-RAID Verbund entschieden, der im Fehlerfall auch von der zweiten 
Festplatte booten soll, muß man noch folgendes beachten: Da auch auf der 
zweiten Festplatte eine Boot-Partition benötigt wird, die zwar ebenso in der 
<CODE>/etc/fstab</CODE> aufgenommen wurde, aber im Fehlerfall nicht mehr 
vorhanden ist, fällt die SuSE 6.2 Distribution in einen Notfall-Modus, in dem das 
root-Paßwort eingegeben werden muß und das fragliche Dateisystem repariert 
werden soll. Dies kann Ihnen auch bei anderen Distributionen passieren.</P>
<P>Es wird also ein Weg benötigt, die beiden Boot-Partitionen <CODE>/boot</CODE> und 
<CODE>/boot2</CODE> nur dann zu mounten, wenn sie tatsächlich körperlich im 
Rechner vorhanden sind. Hierbei hilft ihnen das Skript <CODE>mntboot</CODE>:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
 
MNTBOOTTAB=/etc/mntboottab
 
case "$1" in
  start)
    [ -f $MNTBOOTTAB ] || {
      echo "$0: *** $MNTBOOTTAB: not found" >&2
      break
    }
 
    PARTS=`cat $MNTBOOTTAB`
 
    for part in $PARTS ; do
      [ "`awk '{print $2}' /etc/fstab | grep "^$part$"`" == "" ] && {
        echo "$0: *** Partition $part: not in /etc/fstab" >&2
        continue
      }
 
      [ "`awk '{print $2}' </proc/mounts | grep "^$part$"`" != "" ] && {
        echo "$0: *** Partition $part: already mounted" >&2
        continue          
      }
 
      fsck -a $part
      [ $? -le 1 ] || {
        echo "$0: *** Partition $part: Defect? Unavailable?" >&2
        continue
      }
 
      mount $part || {
        echo "$0: *** Partition $part: cannot mount" >&2
        continue
      }
    done
 
    exit 0
    ;;
 
  *)
    echo "usage: $0 start" >&2
    exit 1
    ;;
esac            
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Das Skript gehört bei SuSE Distributionen nach <CODE>/sbin/init.d</CODE>, bei 
vermutlich allen anderen Linux Distributionen nach 
<CODE>/etc/rc.d/init.d</CODE>. Auf das Skript sollte ein symbolischer Link 
<CODE>/sbin/init.d/rc2.d/S02mntboot</CODE> zeigen. Für alle anderen gilt es 
hier einen Link nach <CODE>/etc/rc.d/rc3.d/S02mntboot</CODE> zu setzen, da außer 
den SuSE Distributionen wohl alle im Runlevel 3 starten und Ihre Links dafür 
in diesem Verzeichnis haben. Das Skript prüft ein paar Nebenbedingungen für 
diejenigen Partitionen, die in <CODE>/etc/mntboottab</CODE> eingetragen sind 
(darin sollten <CODE>/boot</CODE> und <CODE>/boot2</CODE> stehen) und ruft jeweils 
<CODE>fsck</CODE> und <CODE>mount</CODE> für diese Partitionen auf. Da es bei allen 
anderen Distributionen keine <CODE>/etc/mntboottab</CODE> gibt, gilt es hier diese 
zu erstellen oder anzupassen.</P>
<P>In der <CODE>/etc/fstab</CODE> sollten diese Partitionen mit »noauto« statt 
»defaults« eingetragen werden. Außerdem muß im sechsten Feld der Wert »0« 
stehen, da die Distribution im Backup-Fall sonst in den Notfall-Modus fällt.</P>
<H2><A NAME="ss7.2">7.2</A> <A HREF="DE-Software-RAID-HOWTO.html#toc7.2">RAID auch für Swap-Partitionen?        </A>
<!--RAID!Swap-Partition--></H2>
<H3>RAID-Technik mit normalen Swap-Partitionen        <!--Swap-Partition--></H3>
<P>Sie überlegen sich, RAID auch für Swap Partitionen einzurichten? Diese Mühe 
können Sie sich sparen, denn der Linux-Kernel unterstützt ein RAID-Verhalten 
auf Swap-Partitionen ähnlich dem RAID-0 Modus quasi »von Haus aus«. Legen 
Sie einfach auf verschiedenen Festplatten ein paar Partitionen an, änderen 
Sie den Partitionstyp mittels </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
fdisk /dev/Ihre-Partition
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>und der Option »t« auf 82 und erstellen 
Sie das Swap Dateisystem: </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
mkswap /dev/Ihre-neue-Swap-Partition
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Nun fügen Sie diese in die <CODE>/etc/fstab</CODE> ein und geben allen 
Swap-Partitionen dieselbe Priorität.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/dev/hda3 swap swap defaults,pri=1    0 0 
/dev/hdb3 swap swap defaults,pri=1    0 0 
/dev/sda4 swap swap defaults,pri=1    0 0 
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Vom nächsten Startup an werden die Swap Partitionen wie ein RAID-0 Device 
behandelt, da die Lese- und Schreibzugriffe ab jetzt gleichmäßig über die 
Swap-Partitionen verteilt werden.</P>
<P>Will man aus irgendwelchen Gründen zwei Swap-Partitionen höher priorisieren 
als eine Dritte, so kann man das auch über den Parameter »pri=« ändern, 
wobei die Priorität einen Wert zwischen »0« und »32767« annehmen kann. Ein höherer 
Wert entspricht einer höheren Priorität. Je höher die Priorität desto eher 
wird die Swap-Partition beschrieben. Bei der folgenden Konfiguration würde 
also <CODE>/dev/hda3</CODE> wesentlich stärker als Swap-Partition genutzt werden 
als <CODE>/dev/hdb3</CODE>. </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/dev/hda3 swap swap defaults,pri=5    0 0 
/dev/hdb3 swap swap defaults,pri=1    0 0 
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3>Swap-Partitionen auf RAID-1 Verbunden</H3>
<P>Erstellt man die Swap-Partition auf einem vorhandenen RAID-1 Verbund, 
formatiert sie dann mittels <CODE>mkswap /dev/mdx</CODE> und trägt sie als 
Swap-Partition in die <CODE>/etc/fstab</CODE> ein, so hat man zwar keinen, oder 
nur einen kleinen lesenden Geschwindigkeitsvorteil, jedoch den großen, nicht 
zu unterschätzenden Vorteil, daß man bei einem Festplattendefekt nach dem 
Ausschalten des Rechners und dem Austausch der defekten Festplatte, ohne 
weitere manuelle Eingriffe wieder ein vollständig funktionierendes System hat. 
Der einzige Wermutstropfen betrifft hierbei die Freunde des Hot Plugging. 
Erfahrungsgemäß verkraftet Linux das Hot Plugging eines dermaßen gestalteten 
RAID-1 Verbundes nur, wenn vorher die Swap-Partitionen mittels <CODE>swapoff -a</CODE> 
abgeschaltet wurden.</P>
<P>Als Warnung seien hier aber noch zwei der schlimmsten Fälle genannt, über die man sich 
Gedanken machen sollte und die noch dazu voneinander abhängig sind: </P>
<P>Der erste Fall beschreibt die Situation, Swap auf einem RAID-1 Verbund mit den  
alten RAID-Tools und damit den sowohl in den 2.0.xer als auch in den 2.2.xer 
orginal im Kernel vorhandenen RAID Treibern zu benutzen. Hierbei können nach einer 
gewissen Laufzeit des Linux-Systems unweigerliche Abstürze auftreten. Der Grund 
dafür liegt in der Problematik der unterschiedlichen Cachestrategie von 
Software-RAID einerseits und Swap-Partitionen andererseits. Erst mit den aktuellen 
RAID-Treibern ist der Betrieb einer Swap-Partition auf einem RAID-Verbund stabil 
geworden. Wollen Sie also einen sicheren RAID-Verbund erstellen, der nachher aus 
Gründen der Ausfallsicherheit auch die Swap-Partition beinhalten soll, benutzen 
Sie bitte immer die aktuellen RAID-Treiber in Form des aktuellen RAID-Patches. 
Dies entspricht dann der Einrichtfunktionalität der RAID-Tools Version 0.9x.</P>
<P>Der zweite Fall beschreibt die generelle Problematik, mit der Sie sich bei der 
Einrichtung von Swap-Partitionen in Bezug auf Software-RAID auseinandersetzen 
müssen:</P>
<P>Hat man die Swap-Partition auf einen RAID-1 Verbund gelegt 
und zusätzlich dafür eine Spare-Disk reserviert, würde diese Spare-Disk natürlich 
bei einem Festplattendefekt sofort eingearbeitet werden. Das ist zwar erwünscht und 
auch so gedacht, jedoch funktioniert das Resynchronisieren dieses RAID-1 Verbundes 
mit einer aktiven Swap-Partition nicht. Die Software-RAID Treiber nutzen beim 
Resynchronisieren den Puffer-Cache, die Swap-Partition aber nicht. Das Ergebnis ist 
eine defekte Swap-Partition.</P>
<P>Als Lösung bleibt nur die Möglichkeit, keine Spare-Disks zu benutzen und nach 
einem Festplattenausfall <CODE>swapoff -a</CODE> per Hand auszuführen, die defekte 
Festplatte auszutauschen und nach dem Erstellen der Partitionen und des 
Swap-Dateisystems mit <CODE>swapon -a</CODE> wieder zu aktivieren.</P>
<P>Ein Problem bleibt dennoch: Gesetzt den Fall der Linux-Rechner würde aufgrund 
eines Stromausfalls nicht sauber heruntergefahren worden sein, so werden die 
RAID-Verbunde beim nächsten Startup automatisch resynchronisiert. Dies erfolgt 
mit einem automatischen »ge-nice-ten« Aufruf des entsprechenden RAID-Daemons im 
Hintergrund bereits zu Anfang der Bootprozedur. Im weiteren Bootverlauf werden 
aber irgendwann die Swap-Partitionen aktiviert und treffen auf ein nicht 
synchronisiertes RAID. Das Aktivieren der Swap-Partitionen muß also verzögert 
werden, bis die Resynchronisation abgeschlossen ist.</P>
<P>Wie unter Linux üblich läßt sich auch dieses Problem mit einem Skript lösen. 
Der Gedanke dabei ist, den Befehl <CODE>swapon -a</CODE> durch ein Skript zu ersetzen, 
welches die Pseudodatei <CODE>/proc/mdstat</CODE> nach der Zeichenfolge 
<CODE>resync=</CODE> durchsucht und im Falle des Verschwindens dieser Zeichenfolge 
die Swap-Partitionen aktiviert. Im folgenden finden Sie ein Beispiel dazu 
abgedruckt:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
RAIDDEVS=`grep swap /etc/fstab | grep /dev/md|cut -f1|cut -d/ -f3`
for raiddev in $RAIDDEVS
do
#  echo "testing $raiddev"
    while grep $raiddev /proc/mdstat | grep -q "resync="
    do
#     echo "`date`: $raiddev resyncing" >> /var/log/raidswap-status
      sleep 20
     done
     /sbin/swapon /dev/$raiddev
done
exit 0
</PRE>
</CODE></BLOCKQUOTE>
</P>
<HR>
<A HREF="DE-Software-RAID-HOWTO-8.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Software-RAID-HOWTO-6.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Software-RAID-HOWTO.html#toc7"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>
 |