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