Questo documento parte da una specifica esperienza di configurazione di dischi SATA con RAID 0 in Linux sperando di fornire un modello per altri sistemi analoghi.
Si raccomanda di fare il backup dei dati prima di eseguire ogni tipo di operazione prevista.
Configurazione hardware di prova:
Processore Pentium 4 2400 MHz
1 GB di memoria RAM
2 hard disk Maxtor SATA
Scheda madre Abit IC7-G
Innanzitutto assicuratevi che i dischi siano collegati al chipset ICH5R. Questo componente, realizzato da Silicon Image, pur essendo facilmente riconosciuto dal sistema, ha presentato alcuni problemi insormontabili con il kernel 2.4.21 nell'attivazione del DMA sui dischi fissi: ogni tentativo provocava sistematicamente un blocco del sistema.
Premendo il tasto "Canc" entrate nel BIOS e selezionate la voce "Integrated Peripherals". Ora andate su "OnChip IDE Device" e impostate la voce "OnChip Serial ATA" sul valore "Auto". Salvate, uscite dal BIOS e riavviate il computer. Rientrate nuovamente nel BIOS ed accedete alla sezione "Advanced BIOS Features", selezionate la voce "Hard Disk Boot Priority" ed usando i tasti "+" e "-" portate in cima uno dei due hard disk Maxtor.
Procuratevi una distribuzione Knoppix versione 3.2-2003-07-26 o superiore ed avviatela impostando il Cd-Rom come primo dispositivo di boot. Una volta avviato Linux dovrete procedere al partizionamento dei dischi e alla configurazione dell'array RAID.
Pianificate e create questo schema di partizionamento:
hdc spazio filesystem punto di mount hdd spazio hdc1 1GB ext3 /boot - - hdc2 4GB raid - hdd1 4GB hdc5 300MB swap - hdd2 300MB hdc6 15GB raid - hdd3 15GB hdc7 resto raid - hdd4 resto |
Create il file /etc/raidtab:
raiddev /dev/md0 raid-level 0 nr-raid-disks 2 persistent-superblock 1 chunk-size 64 device /dev/hdc2 raid-disk 0 device /dev/hdd1 raid-disk 1 raiddev /dev/md1 raid-level 0 nr-raid-disks 2 persistent-superblock 1 chunk-size 64 device /dev/hdc6 raid-disk 0 device /dev/hdd3 raid-disk 1 raiddev /dev/md2 raid-level 0 nr-raid-disks 2 persistent-superblock 1 chunk-size 64 device /dev/hdc7 raid-disk 0 device /dev/hdd4 raid-disk 1 |
Salvate il file su un dischetto oltre che in /etc.
A questo punto digitate i seguenti comandi:
mkraid -f /dev/md0 mkraid -f /dev/md1 mkraid -f /dev/md2 |
Le partizioni RAID sono così state impostate. A questo punto è possibile formattarle e montarle:
mkreiserfs /dev/md0 mkreiserfs /dev/md1 mkreiserfs /dev/md2 mkfs.ext3 /dev/hdc1 mkswap /dev/hdc5 mkswap /dev/hdd2 |
Ricordatevi che per inizializzare una partizione RAID è sufficiente dare il comando:
raidstart /dev/mdx |
Prima di procedere all'installazione di Knoppix possiamo attivare il DMA ai nostri dischi con:
hdparm -d1 /dev/hdc hdparm -d1 /dev/hdd |
Per constatare gli effetti strabilianti di questa attivazione digitate:
hdparm -tT /dev/hdx |
Utilizzate lo script knx-hdinstall per installare Knoppix scegliendo la partizione /dev/md0 come quella di destinazione.
A questo punto riavviate il sistema.
Create una directory dove poter montare il filesystem di root:
mkdir /mnt/root |
Inizializzate il RAID:
raidstart /dev/md0 raidstart /dev/md1 raidstart /dev/md2 |
Montate il filesystem di root:
mount -t reiserfs /dev/md0 /mnt/root |
Montate le altre partizioni su directory temporanee di appoggio:
mkdir /mnt/home mkdir /mnt/boot mkdir /mnt/var mount -t reiserfs /dev/md1 /mnt/var mount -t reiserfs /dev/md2 /mnt/home mount -t ext3 /dev/hdc1 /mnt/boot |
Copiate i file nelle rispettive partizioni:
cp -R /mnt/root/boot/* /mnt/boot/ cp -R /mnt/root/home/* /mnt/home/ cp -R /mnt/root/var/* /mnt/var/ |
Verificate che i file siano stati copiati correttamente e smontate le partizioni:
umount /mnt/home umount /mnt/var umount /mnt/boot |
Svuotate le rispettive directory nel filesystem di root:
rm -Rf /mnt/root/boot/* rm -Rf /mnt/root/home/* rm -Rf /mnt/root/var/* |
Ora rimontate le partizioni nel punto giusto:
mount -t ext3 /dev/hdc1 /mnt/root/boot mount -t reiserfs /dev/md1 /mnt/root/var mount -t reiserfs /dev/md2 /mnt/root/home |
Per far sì che il sistema si avvii è necessario che l'immagine di boot del kernel abbia la capacità di ricostruire gli array RAID e supporti i rispettivi filesystem. Dunque è necessario ricompilare il kernel.
Per ricompilarlo dal live-cd è necessario fare il chroot sul sistema installato negli hard disk.
Scaricate i sorgenti del kernel 2.4.21.tar.bz2 dal sito ftp.kernel.org e scompattateli con il comando:
tar xjvf linux-2.4.21.tar.bz2 -C /mnt/root/usr/src/ |
A questo punto date il comando:
chroot /mnt/root/ /bin/sh |
Ora cancellate il link simbolico linux e ricrearlo:
rm /usr/src/linux ln -s /usr/src/linux-2.4.21 /usr/src/linux |
Entrate nella directory del kernel e predisponete la compilazione:
cd /usr/src/linux make mrproper |
Copiate il file di configurazione del kernel di Knoppix:
cp ../linux-2.4.21-xfs/.config ./ |
Configurate le opzioni necessarie:
make menuconfig |
Compilate staticamente ("*") nel kernel : raid0, md, reiserfs. Quindi eseguite:
make dep make bzImage make modules make modules_install cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.21 cd /boot/ mkinitrd -o initrd-2.4.21.img /lib/modules/2.4.21/ |
A questo punto è necessario configurare per bene LILO.
Create il file lilo.conf
boot = /dev/hdc vga = 0x31a prompt timeout = 80 change-rules reset default = vanilla disk=/dev/hdc bios=0x80 disk=/dev/hdd bios=0x81 lba32 menu-scheme = Wg:kw:Wg:Wg read-only image = /boot/vmlinuz-2.4.21 label = vanilla root = /dev/md0 vga = 0x31a initrd = /boot/initrd-2.4.21.img |
Controllate che tutto sia a posto con il comando:
lilo -t -v |
Se non ci sono messaggi di errore digitate:
lilo -v |
Nel caso in cui non stessimo operando in ambiente chroot, copiate il file lilo.conf nella cartella /etc del live-cd e date il comando:
lilo -r /mnt/root -C /etc/lilo.conf -v |
Create il seguente file fstab:
# /etc/fstab: filesystem table. # # filesystem mountpoint type options dumppass /dev/hdc1 /boot ext3 defaults 0 2 /dev/md0 / reiserfs defaults 0 0 /dev/md1 /var reiserfs defaults 0 0 /dev/md2 /home reiserfs defaults 0 0 /dev/hdc5 swap swapdefaults,pri=1 0 0 /dev/hdd2 swap swapdefaults,pri=1 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy vfat defaults,user,noauto,showexec,umask=022 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noexec,noauto 0 0 /dev/dvd /dvd iso9660 defaults,ro,user,noexec,noauto 0 0 /dev/cdaudio /cdaudio iso9660 defaults,ro,user,noexec,noauto 0 0 |
Se siete in ambiente chroot è sufficiente salvare il file come /etc/fstab. In caso contrario salvatelo come /mnt/root/etc/fstab.
Notate che le due partizioni di swap hanno pari priorità in modo da consentire uno swap parallelo da parte del kernel, come se si trattasse di una sola partizione raid0.
PRIMA DI RIAVVIARE IL SISTEMA copiate i file di configurazione fin qui creati su un floppy, ovvero:
raidtab
lilo.conf
.config (kernel)
fstab
Incrociate le dita e riavviate il sistema!
Se le cose non dovessero andare per il verso giusto è sempre possibile rilanciare il live-cd, copiare il file raidtab sotto /etc e inizializzare nuovamente le partizioni RAID con i comandi:
raidstart /dev/mdx |
Rimontatele come spiegato sopra, quindi controllate e riconfigurate le impostazioni.
Buona Fortuna!!!
Copyright (C) 2003 HI-Lab, cooperativa sociale l'Utopia a r.l.
This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.
A copy of the GNU General Public License is available on the World Wide Web at http://www.fsf.org/copyleft/gpl.html. You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
Questo manuale è software libero; è lecito redistribuirlo o modificarlo secondo i termini della Licenza Pubblica Generica GNU come è pubblicata dalla Free Software Foundation; o la versione 2 della licenza o (a propria scelta) una versione successiva.
È distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di NEGOZIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. Si veda la Licenza Pubblica Generica GNU per avere maggiori dettagli.
Una copia della Licenza Pubblica Generica GNU è disponibile sul World Wide Web su http://www.fsf.org/copyleft/gpl.html. La si può ottenere anche scrivendo alla Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.