R: R: R: [Linux-Biella] Mirroring dischi SATA

Andrea Ferraris andrea.ferraris a gmail.com
Mer 7 Set 2005 20:21:52 CEST


Fiorenza Meini ha scritto:
>>>So come farlo con Solaris, ma con Linux queste cose mi sfuggono.

a me invece sfugge con Solaris, potresti dare un riferimento che non ho 
voglia di navigare?

> Prova a dare un'occhiata qui...
> 
>  http://slacksite.com/slackware/raid.html

Ho avuto la fortuna di poter leggere tutto il thread prima di 
rispondere. Il raid e` uno dei miei pallini e ho una macchina con gentoo 
in produzione senza problemi da due anni con un raid10 sw e un raidtab 
di almeno 2 pagine.

Comincio dall'hw. Il raid hw lo puoi fare solo se
1. il controller e` in grado di fare raid hardware
2. c'e` il driver linux che supporta il raid hardware di quel 
controller. Questo, fino a pochi anni fa per controller IDE e adesso 
SATA voleva dire solo 3ware e comunque li contavi sulle dita di una mano 
(compresi quelli SCSI). Adesso probabilmente le cose sono migliorate, ma 
per saperlo devi conoscere qual e` il chipset del controller e poi puoi 
fare una ricerca in http://lxr.linux.no/source/, anche se vedo che e` 
aggioranto solo al 2.6.11 e/o ti fai un po' di grep -ir in un'albero di 
sorgenti del 2.6.14.

Per il raid software, fossi in te, che mi sembri in vena, opterei per 
raid 10, che ti dovrebbe aumentare le prestazioni, soprattutto in 
scrittura, con la stessa affidabilita` del raid1 e la stessa occupazione 
di disco. Puoi farlo o come raid1 + raid0 con un opportuno raidtab in 
cui definisci prima i device per il raid1 e poi li usi come costituenti 
dei device del raid0, oppure, piu` avventurosamente, ho visto che c'e` 
direttamente un'opzione per il raid10 nelle opzioni di compilazione 
degli ultimi kernel (non so pero` se sia ancora sperimentale) e 
soprattutto non so dov'e` della documentazione operativa su come usarlo
(anche se non l'ho ancora mai cercata).
Se invece opti per la prima, 1 + 0, allora schematicamente in una 
configurazione minima si tratta di fare a fette ogni disco in almeno 2 
partizioni e quindi mettere ognuna in coppia in raid 1 con una 
dell'altro. Cerco di spiegarmi meglio:
se sda e` il primo hd e sdc e` il secondo
allora affetti sda in sda1 e sda2 e sdc in sdc1 e sdc2 (tipo di 
partizione raid automount), quindi fai un primo md0 in raid1 costituito 
da sda1 e sdc1, analogamente md1 in raid1 costituito da sda2 e sdc2.
Quindi definisci md3 in raid0 costituito da md0 e md1 e su questo crei 
il file system (oggidi` quello piu` di moda e` reiserfs, ma va bene 
anche ext3 o altri per i quali pero` non garantisco personalmente).
Non so in questa visione rozza e primitiva come possa entrarci LVM, ma 
sarebbe bello se Ilaria ce lo spiegasse, perche' potrebbe essere una 
cosa buona e giusta, consentendoti poi in caso di bisogno di aggiungere 
disco/hi e di espandere al volo le partizioni che potessero essere 
strette o di ridimensionare quelle troppo larghe.
Non ho dimenticato lo swap. Ho visto che nella documentazione slackware 
di cui sopra non e` messo in raid1. Secondo me non e` una buona idea 
perche' a quel punto se ti si rompe un disco la macchina puo` comunque 
andare in crash. Inoltre non so se sia vero ma mi pareva di aver letto 
che con i 2.6 le prestazioni di un file di swap erano analoghe a quelle 
di una partizione di swap e quindi ti suggerirei, fatte le opportune 
verifiche, di non definire una partizione di swap, ma un file di swap 
sul grande file system su raid10 dove hai tutto. Creerei solo altre 2 
fette piccoline per ogni disco (<50 MB l'una) per fare un raid1 per 
/boot dove avrai le immagini del kernel che carichi al boot. Quindi alla 
fine sarebbero solo 3 partizioni per ogni disco: sda1 e sdc1 per /boot e 
altre 2 per ogni disco per fare quanto descritto prima (basta che 
nell'esempio sopra aggiungi una unita` ai numeri che compaiono e md0 
sara` il raid1 per /boot [fra parentesi quadre il filesystem li` lo puoi 
fare anche ext2 e non montarlo mai, se non quando devi aggiornare il 
kernel o in fase di installazione - gentoo fa cosi` e non e` una cattiva 
idea]).
Quanto descritto consentirebbe anche di avere un raidtab abbastanza 
semplice e la semplicita` in fase di manutenzione e` una gran cosa.
L'unico problema potrebbero essere i file di log che ti riempiono il 
file system in cui hai tutto, piantando i servizi della macchina, mentre 
se li confini in un file system a parte ti possono riempire solo quello.
Comunque dei files di log che ti riempiono la loro partizione, possono 
comunque essere un problema compromettendo il funzionamento di servizi e 
percio`, secondo me e`, cosa buona e giusta installare monit
(http://www.tildeslash.com/monit/), che, se opportunamente configurato, 
oltre a mandare allarmi per spazio disco libero che scende sotto una 
certa soglia, puo` fare molto di piu` e meglio (monitorare processi e 
farli ripartire se si piantano o segnalare variazioni di checksum di 
files e/o altre cose carine).
Alla luce delle mie esperienze passate, oggidi`, un server nuovo con 
dischi in RAID sw, io lo farei cosi`.

Pero` non userei Slackware. Non solo perche' non voglio tornare su una 
scelta di 8 anni fa, ma perche', come diceva LeOS, ci sono distribuzioni 
che ti possono fare gia` una buona parte del lavoro loro e/o che hanno 
dei sistemi di gestione piu` evoluti. Comunque, usando Gentoo, sulla 
comodita` e facilita` d'uso dovrei starmene zitto. Per la scelta, se non 
hai voncoli, potersti basarti oltre che sulla presenza di validi 
strumenti di gestione della distribuzione (gentoo ne ha), anche e 
soprattutto sulla presenza, l'aggiornamento, la cura e la manutenzione 
dei pacchetti che saranno esenziali. Quindi oltre a quelli di sistema e 
del raid, anche quelli dei servizi che la macchina dovra` erogare (non 
credo che dovra` fare da server raid e basta -:).
Dimenticavo, non userei Slackware anche perche' GRUB sembra meglio di 
LILO e, se ho capito bene, con Slackware puoi usare solo LILO.

Andrea


Maggiori informazioni sulla lista Linux