Endlich geloest: RAID5 fuer /video incl. OS-Upgrade

  • Hallo Leute,
    es wird ernst, aus meinem Festplattenzoo im dicken Desktop/Server soll fuer die Filme ein RAID5 gebaut werden.
    Aktuelle Partitionsdaten:

    Code
    1. /dev/sda7 11G 3,8G 6,3G 38% /
    2. /dev/sda2 228M 18M 199M 8% /boot
    3. /dev/sda5 436G 290G 147G 67% /video
    4. /dev/hda5 230G 189M 230G 1% /video/srv_hda
    5. /dev/hdb5 230G 34M 230G 1% /video/srv_hdb
    6. /dev/hdd5 230G 188M 230G 1% /video/srv_hdd
    7. /dev/sdb5 688G 526G 163G 77% /video/srv_sdb


    (Unnuetzes Zeug rausgeschmissen, auf /dev/sda sind noch weitere Partitionen (ca. 11GB) fuer ein vollstaendiges zweites Linux).


    Von LVM in Verbindung mit RAID5 lass' ich erstmal die Finger, ist mir ehrlich gesagt zu kompliziert.
    Also: Ich wuerde gerne aus /dev/hda, /dev/hdb, /dev/hdd ein RAID5 bauen. Was muss ich da tun? Ich denke ich brauche erstmal per synaptic 'mdadm' oder?
    Ich hatte vor einiger Zeit mal eine gute Beschreibung gefunden, finde die allerdings nicht mehr :o(


    Alternativ/Optional:
    Ich koennte auch fuer das o.g. RAID5 noch auf /dev/sdb eine 230G Partition bauen und die mit dazu nehmen. Dann koennte ich mit dem Rest von /dev/sdb (~500GB) sowie der /dev/sda5 noch ein RAID1 bauen. Damit haette ich erst mal 750GB RAID5 sowie 500GB RAID1 fuer Filme. Das reicht erstmal fuer mich...


    Also, hat jemand Tipps, Links, ...? Das ganze muss halt im laufenden Betrieb statt finden (die /dev/hdX5 sind ja alle leer), ausserdem steht demnaechst der Update auf Ubuntu 8.04 an (auf den nicht gezeigten Partitionen von /dev/sda)


    Gruss,
    - berndl

  • Hi,
    um das topic mal wieder auszukramen...


    Ich habe 3xPATA 250GB im Rechner (sind alle 3 leer) und will ein RAID5 daraus machen. System ist Ubuntu 7.10. Ich hatte mal einen guten Link, wie das mit mdadm funktioniert (welche .conf muss gesichert werden, welche Kommandos gibt es, ...), finde den aber nicht mehr (Ubuntu Forum zeigt mir den Link nicht mehr an :o(


    Also, wie gehe ich da am besten vor? Es handelt sich um die Partitionen /dev/hda5, ...hdb5 und ...hdd5. Ich muss mit fdisk und dem Partitionstyp anfangen, das ist mir klar, aber wie dann weiter machen?


    Und wie binde ich das RAID5 wieder ein, wenn ich ein neues OS installiere? Welche .conf muss da wo liegen um das wieder ans laufen zu kriegen? Und was mache ich genau, wenn mal eine Platte abkackt? Wie erfahre ich das und wie bringe ich eine neue Platte/Partition ins RAID?


    Und mit neueren Kernel Versionen kann man wohl auch ein RAID5 mit 3 Platten vergroessern (auf 4, 5, ... Platten). Wie geht das?


    Hat hier jemand nen guten Link oder Tipps fuer mich? Wichtig fuer mich ist, dass ich verstehe wie ich beim naechsten OS Upgrade das RAID5 wieder ans laufen bekomme.


    Any comments are highly appreciated...


    Gruss,
    - berndl


    PS: RAID5 ist nur fuer Videoaufnahmen, also nix mit System und so...

  • Wenn du dein Raid vergrößern willst ( physikalisch ), gehen alle vorhandenen Daten verloren.


    Tu dir einen gefallen und kauf dir einen Hardware Raid Controller. PATA ist nicht so teuer. 3Ware zum Beispiel !


    Ansonsten, wenn du wirklich SW Raid machen willst, dann würde ich schon an LVM denken.


    http://www.linuxhaven.de/dlhp/…oftware-RAID-HOWTO-1.html


    http://pi.informatik.uni-siege…1/html/software_raid.html

    MAIN: La Scala SST-LC04 Gehäuse / Asus P5N7A-VM / Intel E7500 / YaVDR 0.1 / TT-DVB-S2 / IR-Einschalter Atric / Wakeup-On-Call


    ICH: Bin Microsoft, Cisco, VMware und NetApp zertifiziert

    The post was edited 1 time, last by peda ().

  • Quote


    Hi,
    tja, tote Links bzgl. den HowTo's...
    LVM macht nur Sinn, wenn ich es in Verbindung mit RAID mache (bei LVM ist die Wahrscheinlichkeit eines Ausfalls noch groesser!). Knebb kann ja wohl ein Lied davon singen, fuer mich ist die Komplexitaet zu hoch, ich hatte da vor ein paar Jahren mal Schiffbruch erlitten...
    Und ein HW-Controller ist fuer mich eigentlich nicht notwendig, der waere fuer bessere Performance das richtige. Brauche ich aber nicht, da nur die paar MBit an Videos drueber laufen sollen.


    Ich will ja nur meine Daten gegen defekte Platten sichern, und das so, dass ich auch bei der naechsten Migration des OS einfach wieder darauf zugreifen kann.


    Und laut www kann man ab Kernel 2.Haumichblau sehr wohl auch ein RAID5 erweitern, das waere fuer mich die optimale Loesung. Ich koennte dann z.B. von meiner 750GB Platte einen Teil mit 250GB in das RAID5 integrieren und einen weiteren Teil 250GB als Hot-Swap zur Verfuegung stellen. Das wuerde z.B. auch den Defekt der 750er locker ueberstehen, neue Platte reinstecken (mit >= 2x250GB) und gut ists.
    Klingt fuer mich sehr sinnvoll.


    Gruss,
    - berndl

  • Hallo,
    also ich hab mit dem mehr als komfortabeln Debian Installer SW RAID und LVM aufgesetzt. Der funktioniert hervorragend, allerdings hab ich nur RAID 0 und 1, mit jeweils einem LVM drauf, ich denke ohne LVM wird es arg schwierig das alles vernünftig zu organisieren (grade wenn man ein paar XEN Gäste sein eigen nennt ;-)


    Allerdings ist es mir noch nicht gelungen dieses Part des Installer nach der Installation aufzurufen (während der Installation heißt er glaub ich partman),
    Änderungen mache ich also alle von der Kommandozeile, was aber auch mehr als genial einfach ist und funktionert.
    LARS.

    Code
    1. vlx:/var/log# pvdisplay -c
    2. /dev/hda5:dlx:155795456:-1:8:8:-1:4096:19018:0:19018:W4zU6t-Y67t-1cVB-Jlbm-Yw3L-cfZM-ukygRP
    3. /dev/md1:svg:734617600:-1:8:8:-1:4096:89675:23115:66560:lpyAKi-KFM0-CD8a-1Wqr-SDXv-0X39-7NfCKs
    4. /dev/md0:mvg:195313664:-1:8:8:-1:4096:23842:7177:16665:24YYAu-UzKn-JQCm-KJRu-c1oO-t28M-Snn2HH

    Prod: Debian Lenny 2.6.26-2-686, e-Tobi VDR 1.6.0-17, 2 TB SATA SWRAID 0 und 1, LVM, Intel Desktop Board Celeron 2,6 GHZ
    Test: Asus A7V133, 1GHZ AMD, im Aufbau
    2 x DVB-S TT1.5, Skystar 2.6C, TT Budget CGV Twin

  • Hi,
    danke fuer die Info, aber ich werde von LVM erstmal die Finger lassen...


    Hat jemand 'nen guten Link zu 'mdadm'? Ein RAID5, erweiterbar (was ja mittlerweile funktionieren soll) ist fuer mich genau das richtige. Und ich hab' auch kein Problem, eine neue zusaetzliche Platte in 250GB chunks zu partitionieren um die dann dem RAID hinzu zu fuegen. Irgendwann mal fliegen die 250er raus und dann gibt's was neues...


    Gruss,
    - berndl

  • Quote

    Original von berndl
    LVM macht nur Sinn, wenn ich es in Verbindung mit RAID mache (bei LVM ist die Wahrscheinlichkeit eines Ausfalls noch groesser!).


    100%ig einverstanden.

    Quote


    Knebb kann ja wohl ein Lied davon singen, fuer mich ist die Komplexitaet zu hoch,


    :) Naja, so schwer ist das Ganze garnicht, man muss nur bei beiden einmal das Grundprinzip verstanden haben. Und wie sage ich immer: "Je kaelter das Wasser umso schneller lernt man Schwimmen!" :gap


    Quote

    Und ein HW-Controller ist fuer mich eigentlich nicht notwendig, der waere fuer bessere Performance das richtige. Brauche ich aber nicht, da nur die paar MBit an Videos drueber laufen sollen.


    Auch ACK. Brauchst nicht jeder HW-RAID.


    LVM ist eigentlich recht einfach. SW RAID kenne ich nur mit den alten raidtools, nicht mehr mit dem mdadm. Den finde ich recht unuebersichtlich. Aber ich nutze inzwischen ja sowieso HW RAID ;D


    Quote

    Ich will ja nur meine Daten gegen defekte Platten sichern, und das so, dass ich auch bei der naechsten Migration des OS einfach wieder darauf zugreifen kann.


    ICh kann Dir nur empfehlen, einfach damit "rumzuspielen". Am besten in einer virtuellen Maschine mit 4 disks zu 2GB jede. Da kannst Du dann schoen mit spielen- und auch einen Ausfall der Systemplatte simulieren etc.


    Quote


    von meiner 750GB Platte einen Teil mit 250GB in das RAID5 integrieren und einen weiteren Teil 250GB als Hot-Swap zur Verfuegung stellen.


    Aehm- wo soll der Sinn dafuer sein?
    Zwei Partitionen einer Platte in einem RAID Array? Faellt die Platte aus, ist das RAID nicht vollstaendig, da ein Datenteil fehlt. Den eingerichteten Hot-StandBy kann man ja auch nicht nutzen, die Platte ist ja weg. Faellt eine der anderen Platten aus, wird der Hot-Standby hinzugeschaltet und das Array scheint wieder 100%ig in Ordnung zu sein, d.h. es sieht so aus als koennte der Ausfall einer Platte dem Array nichts tun. Ist aber nicht so. Faellt die 750er jetzt aus, hast Du die A****karte gezogen.
    Also, das ist Quatsch mit Sosse.


    Pro Platte eine Partitione in einem Array, niemals mehr!




    Das wuerde z.B. auch den Defekt der 750er locker ueberstehen, neue Platte reinstecken (mit >= 2x250GB) und gut ists.
    Klingt fuer mich sehr sinnvoll.


    Gruss,
    - berndl[/quote]

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Quote

    Originally posted by knebb


    Aehm- wo soll der Sinn dafuer sein?
    Zwei Partitionen einer Platte in einem RAID Array? Faellt die Platte aus, ist das RAID nicht vollstaendig, da ein Datenteil fehlt. Den eingerichteten Hot-StandBy kann man ja auch nicht nutzen, die Platte ist ja weg. Faellt eine der anderen Platten aus, wird der Hot-Standby hinzugeschaltet und das Array scheint wieder 100%ig in Ordnung zu sein, d.h. es sieht so aus als koennte der Ausfall einer Platte dem Array nichts tun. Ist aber nicht so. Faellt die 750er jetzt aus, hast Du die A****karte gezogen.
    Also, das ist Quatsch mit Sosse.


    Hi Knebb,
    noe, finde ich nicht. Wenn ich z.B. 3 Platten a 250GB habe und dann nochmal von einer Platte 250GB plus 250GB hot-swap nehme, dann habe ich immer noch eine gute Ausfallsicherheit, wenn eine der 3 ersten Platten die Graetsche macht. Wenn natuerlich die 500er (mit 2x250GB) hopps geht, dann sollte ich schleunigst eine neue Platte einbauen. Klar ist das nicht das nonplusultra, aber mit meinen 3x250GB IDE bin ich nun erstmal auf einer Partitionsgroesse von 250GB. Und das RAID5 mit 1x250GB zu vergroessern 'vermindert' mir erstmal die Verluste. Wenn ich dann den Plattenzoo mal wieder aufraeume, dann kann ich ja auf groessere Partitionen gehen. Ist zwar alles nicht perfekt, erscheint mir aber als guter Kompromiss im Moment (mit meiner existierenden HW).


    Aber ich bin immer noch auf der Suche nach einem guten HowTo bzw. einer guten Anleitung fuer 'mdadm', speziell fuer das erweitern eines RAID5 und dem Einrichten wenn ich mal ein neues OS einspiele.
    Hat da jemand 'nen Tipp fuer mich?


    Gruss,
    - berndl

  • Die geposteten Links funktionieren hier...

    MAIN: La Scala SST-LC04 Gehäuse / Asus P5N7A-VM / Intel E7500 / YaVDR 0.1 / TT-DVB-S2 / IR-Einschalter Atric / Wakeup-On-Call


    ICH: Bin Microsoft, Cisco, VMware und NetApp zertifiziert

  • Hi,


    wenn Du erst einmal nur probieren und testen willst, kannst Du das ja auch mit Images machen, die Du via loop-Device einbindest.


    Hier ein Beispiel aus meinem Wiki (evtl. an lokale Gegebenheiten anpassen):


    Code
    1. for i in `seq 1 4`;do dd if=/dev/zero of=/root/loopdisk$i bs=1024k count=10 && losetup /dev/loop$i /root/loopdisk$i;done
    2. mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4
    3. mkfs.ext2 /dev/md0
    4. mount /dev/md0 /mnt


    So hab ich meine ersten Schritte mit RAID gemacht :-)


    Gruß,
    Matze

  • Hi Matze,
    super, genau sowas habe ich gesucht. Ich spiel mal damit rum.
    Muesste dann doch auch mit einer Live-CD, z.B. Knoppix funktionieren. Dann kann ich im Vorfeld schonmal diverse Rettungsaktionen durchspielen.


    Danke!
    Gruss,
    - berndl

  • Hi zusammen,
    naechste Frage: Was stelle ich denn sinnigerweise fuer ein /video RAID5 als chunk-size ein? Performance ist ja nicht sooo wichtig und eine kleine chunk-size (sagen wir mal 32KB) wuerde doch gut zu den ganzen 'info.vdr' und 'marks.vdr' passen... Oder liege ich da falsch?


    Und was hat es mit dem ominoesen 'stride' Parameter auf sich? Mit 'man mke2fs' hab' ich nix drueber gefunden...


    Gruss,
    - berndl

  • Quote

    Original von berndl
    naechste Frage: Was stelle ich denn sinnigerweise fuer ein /video RAID5 als chunk-size ein?


    Ueberlege Dir das mal:
    Der Algorithmus schreibt einen Chunk auf eine Platte und schreibt den naechsten Chunk auf die naechste Platte..
    Bei RAID5 am langsamsten sind Schreibvorgaenge, Lesen ist normalerweise recht fix. Also, was ist beim Schreiben als Video-Dir am kritischsten? Richtig, die Videodaten. Ich wuerde fuer videos die groesste Chunksize empfehlen. Habe es aber noch nie ernsthaft analysiert. :gap


    Quote

    Und was hat es mit dem ominoesen 'stride' Parameter auf sich? Mit 'man mke2fs' hab' ich nix drueber gefunden...


    Nanana, :suche nach chunk size und RAID sollte doch eigentlich einiges ergeben.


    Kurz gesagt: ext2/3 optimiert seine Ausghabevorgaenge auf die Chunksize, so dass das Lesen/ Schreiben so schnell wie moeglich ist. Der Stride Parameter, den Du verwenden sollst, berechnet sich wie folgt: ((Blocksize des RAID Arrays)/ Blocksize des ext2/3 Dateisystems (ueblicherweise 4k)0. D.h. bei 256k Chunk, solltest Du 256/4=64.

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Quote

    Originally posted by knebb
    Ueberlege Dir das mal:
    Der Algorithmus schreibt einen Chunk auf eine Platte und schreibt den naechsten Chunk auf die naechste Platte..
    Bei RAID5 am langsamsten sind Schreibvorgaenge, Lesen ist normalerweise recht fix. Also, was ist beim Schreiben als Video-Dir am kritischsten? Richtig, die Videodaten. Ich wuerde fuer videos die groesste Chunksize empfehlen. Habe es aber noch nie ernsthaft analysiert. :gap


    d.h. also, ich habe bei grosser chunk-size keinen nennenswerten 'Verschnitt' bei kleinen Dateien? Dann war das ein Denkfehler von mir...
    Unabhaengig von der chunk-size muss dann beim schreiben auch der Rest der chunks gelesen werden und dann darueber die Parity gebaut werden, richtig? Also muss ich doch trotzdem auf alle anderen Platten (lesend) zugreifen...

    Quote

    Nanana, :suche nach chunk size und RAID sollte doch eigentlich einiges ergeben.


    Kurz gesagt: ext2/3 optimiert seine Ausghabevorgaenge auf die Chunksize, so dass das Lesen/ Schreiben so schnell wie moeglich ist. Der Stride Parameter, den Du verwenden sollst, berechnet sich wie folgt: ((Blocksize des RAID Arrays)/ Blocksize des ext2/3 Dateisystems (ueblicherweise 4k)0. D.h. bei 256k Chunk, solltest Du 256/4=64.


    das habe ich mittlerweile im www gefunden (und glaube ich auch verstanden, das filesystem allokiert halt n Bloecke am Stueck wenn es die stride info hat), aber bei 'man mke2fs' hatte ich's nicht drin... (oder ich bin halt auf dem Auge blind)


    Gruss,
    - berndl

  • Quote

    Original von berndl
    d.h. also, ich habe bei grosser chunk-size keinen nennenswerten 'Verschnitt' bei kleinen Dateien? Dann war das ein Denkfehler von mir...


    Zupp. Die RAID-Chunkzsize hat nix mit der Blockgroesse des Dateisystems zu tun. Verschnitt bedeuted das nicht.

    Quote


    Unabhaengig von der chunk-size muss dann beim schreiben auch der Rest der chunks gelesen werden und dann darueber die Parity gebaut werden, richtig? Also muss ich doch trotzdem auf alle anderen Platten (lesend) zugreifen...


    Ja, das ist aber systemimament (oder so :gap). D.h. Das muss er immer. Aber wenn er z.B. 512K zu schreiben hat, liest er von jeder Platte 2x Chunk, wohingegen dass bei entsprechend kleinerer GChunsize entsprechend mehr Zugriffe sind. Das RAID liestimmer Chunkweise. Hast Du also viele grosse Daten zu schreiben, sollte die Chunksize halt auch gross sein.

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Quote

    Originally posted by knebb
    Ja, das ist aber systemimament (oder so :gap). D.h. Das muss er immer. Aber wenn er z.B. 512K zu schreiben hat, liest er von jeder Platte 2x Chunk, wohingegen dass bei entsprechend kleinerer GChunsize entsprechend mehr Zugriffe sind. Das RAID liestimmer Chunkweise. Hast Du also viele grosse Daten zu schreiben, sollte die Chunksize halt auch gross sein.


    hmmm, dann hilf mir nochmal auf die Spruenge:
    * Warum nimmt man dann kleine chunks?
    Ich kann mir fuer chunks kleiner als unendlich nur vorstellen, dass, wenn Dateien geschrieben/kopiert werden, die in die n chunks des Arrays komplett reinpassen (und das raid/fs ueber die Groesse vorher Bescheid weiss) das zeitaufwaendige lesen der anderen chunks sowie die dauernde Paritygenerierung entfallen bzw. optimiert werden kann. In dem Fall koennte das System einfach alles schreiben, dabei 'unauffaellig' Parity generieren und diese Parity dann auch am Ende zurueck schreiben.


    Kann ich mir das so in etwa vorstellen?


    Gruss,
    - berndl

  • Quote

    Original von berndl
    * Warum nimmt man dann kleine chunks?


    Wenn Du viele kleine Operationen hast. Z.B. bei Datenbanken ist die IO Groesse oftmals recht klein.
    Da fuer jede Operation immer min. ein Chunk gelesen werden muss, macht es Sinn, bei kleinen Operationen auch die Chunk size gering zu halten. Du kannst es ja mal simulieren: formatiere Dein FS mit stride=4 und einmal mit stride=644 und das Ganze jeweils mit Chunk=64 und 256. Vergleiche. Es kommt dauf die Anwendung darauf an.
    Fuer video sollte maximal eine recht gute Naeherung sein :)

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P