Discussione: HOWTO avanzati
View Single Post
Old 10-03-2004, 07:35   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
GIOCHIAMO CON IL RAID

Autore: ilsensine

Sì, sotto linux il raid è veramente per tutti, anche per chi...non ha dischi da mettere in raid!

Qualsiasi cosa può essere messa in raid con linux: dischi, floppy, memory card...io personalmente ho messo in raid 0 due unità zip

Per giocare un pò con questo potente strumento, creiamo un raid 5 su tre partizioni del nostro computer. Come? Non avete tre partizioni? No problem, mai sentito parlare di "loopback"?

Cosa ci serve
Il pacchetto raidtools: sicuramente la vostra distribuzione lo include, cercatelo tra i cd e installatelo.
Il supporto nel kernel: qualsiasi kernel fornito dalle distribuzioni lo include già compilato
Il supporto loopback: come sopra.

Cosa vogliamo fare: creare tre partizioni "virtuali", contenute in tre file, da mettere in raid 5, formattandole con il vostro file system preferito. Potete usare questo procedimento per creare 2 o più "partizioni virtuali" da mettere in raid 1 o 5, incrementando la sicurezza dei vostri dati in caso di problemi al file system, il tutto senza creare partizioni fisiche per il raid!

Iniziamo: abbiamo bisogno di tre file vuoti. Creiamo 3 file pieni di zero:
dd if=/dev/zero of=/root/part0 bs=1048576 count=64
dd if=/dev/zero of=/root/part1 bs=1048576 count=64
dd if=/dev/zero of=/root/part2 bs=1048576 count=64
Questi comandi creano i file grandi 64 MB (potete usare la dimensione che preferite), che corrispondono a 128MB utili in raid 5.
Purtroppo questi file non sono partizioni, ma...le partizioni sono dei dispositivi a blocchi! Allora associamo un dispositivo a blocchi di tipo "loopback" per ciascuna partizione:
modprobe loop (serve per caricare il supporto loopback nel kernel - nota: alcune distribuzioni includono questo modulo staticamente nel kernel; in tal caso, questo comando non è necessario, e restituisce un errore se eseguito)
losetup /dev/loop/0 /root/part0
losetup /dev/loop/1 /root/part1
losetup /dev/loop/2 /root/part2
hint per gli astuti: con il loopback possiamo attivare la crittografia. man losetup offre tutti i dettagli.

Bene, ora abbiamo le tre partizioni: /dev/loop/0-1-2.

Creiamo quindi il file /etc/raidtab, con il seguente contenuto:
Codice:
raiddev /dev/md/0
    raid-level                5
    nr-raid-disks             3
    nr-spare-disks            0
    persistent-superblock     1
    chunk-size                4

    device                    /dev/loop/0
    raid-disk                 0
    device                    /dev/loop/1
    raid-disk                 1
    device                    /dev/loop/2
    raid-disk                 2
Abbiamo quasi finito. Carichiamo ora il supporto raid generico del kernel
modprobe md
...e il supporto per il raid 5
modprobe raid5
Come per loop, md e raid5 potrebbero essere stati compilati staticamente nel kernel, quindi non vi spaventate se viene riportato un errore.

Rimane da inizializzare il raid: mkraid /dev/md/0. Questo comando va eseguito solo questa volta; successivamente, per riattivare il raid, basterà eseguire raidstart /dev/md/0.
Ok ora /dev/md/0 è una "partizione" come tutte le altre, grande 128mb. Creiamo un file system a nostra scelta, a me piace il reiserfs ad esempio:
mkfs.reiserfs /dev/md/0
...e montiamo la partizione da qualche parte:
mount -t reiserfs /dev/md/0 /mnt/raid

that's all folks!

nb per "smontare il tutto", eseguire:
umount /mnt/raid (ovviamente)
raidstop /dev/md/0 (ferma il raid)
losetup -d /dev/loop/0 (rilascia i dispositivi loopback)
losetup -d /dev/loop/1
losetup -d /dev/loop/2

Ora che avete imparato, potete studiarvi un pò meglio con la documentazione e sperimentare tutti i tipi di raid che volete, usando dei file in loopback per simulare le partizioni.

Complicato?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline