<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Software-RAID HOWTO: Risoluzione dei problemi di installazione</TITLE> <LINK HREF="Software-RAID-0.4x-HOWTO-6.html" REL=next> <LINK HREF="Software-RAID-0.4x-HOWTO-4.html" REL=previous> <LINK HREF="Software-RAID-0.4x-HOWTO.html#toc5" REL=contents> </HEAD> <BODY> <A HREF="Software-RAID-0.4x-HOWTO-6.html">Avanti</A> <A HREF="Software-RAID-0.4x-HOWTO-4.html">Indietro</A> <A HREF="Software-RAID-0.4x-HOWTO.html#toc5">Indice</A> <HR> <H2><A NAME="s5">5. Risoluzione dei problemi di installazione</A></H2> <P> <OL> <LI><B>D</B>: Quale è attualmente la patch più stabile e conosciuta per RAID nei kernel della serie 2.0.x? <BLOCKQUOTE> <B>R</B>: Al 28 Settembre 1997 è (riporto letteralmente. ndt) "2.0.30 + pre-9 2.0.31 + Werner Fink's swapping patch + the alpha RAID patch". A Novembre 1997, è 2.0.31 + ... !? </BLOCKQUOTE> </LI> <LI><B>D</B> Le patch per il RAID non vengono correttamente installate. Dov'è l'errore? <BLOCKQUOTE> <B>R</B>: Assicuratevi che <CODE>/usr/include/linux</CODE> sia un link simbolico a <CODE>/usr/src/linux/include/linux</CODE>. Assicuratevi che i nuovi files <CODE>raid5.c</CODE>, etc. siano stati copiati nei posti giusti. A volte il comando patch non crea nuovi files. Provate con l'opzione <CODE>-f</CODE> del comando <CODE>patch</CODE>. </BLOCKQUOTE> </LI> <LI><B>D</B>: Durante la compilazione di raidtools 0.42, il compilatore si blocca mentre cerca di includere <pthread.h> ma questo file non esiste nel mio sistema. Come posso correggere questo errore? <BLOCKQUOTE> <B>R</B>: raidtools-0.42 richiede linuxthreads-0.6 da: <A HREF="ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy">ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy</A> In alternativa si possono usare le glibc v2.0. </BLOCKQUOTE> </LI> <LI><B>D</B>: Ottengo il messaggio: <CODE>mdrun -a /dev/md0: Invalid argument</CODE> <BLOCKQUOTE> <B>R</B>: Si deve usare <CODE>mkraid</CODE> per inizializzare il set RAID prima che venga usato per la prima volta. <CODE>mkraid</CODE> si assicura del fatto che il sistema RAID sia inizialmente in uno stato di coerenza cancellando le partizioni RAID. In aggiunta,<CODE>mkraid</CODE> si occuperà di creare i superblock RAID. </BLOCKQUOTE> </LI> <LI><B>D</B>: Ottengo il messaggio: <CODE>mdrun -a /dev/md0: Invalid argument</CODE> La procedura di setup è stata: <UL> <LI>compilazione di raid come modulo del kernel</LI> <LI>è stata seguita la normale procedura di installazione ... mdcreate, mdadd, etc.</LI> <LI>il comando <CODE>cat /proc/mdstat</CODE> produce questo output: <PRE> Personalities : read_ahead not set md0 : inactive sda1 sdb1 6313482 blocks md1 : inactive md2 : inactive md3 : inactive </PRE> </LI> <LI><CODE>mdrun -a</CODE> genera il messaggio di errore <CODE>/dev/md0: Invalid argument</CODE></LI> </UL> <BLOCKQUOTE> <B>R</B>: Si provi ad eseguire <CODE>lsmod</CODE> (o, in alternativa, <CODE>cat /proc/modules</CODE>) per vedere se i moduli raid sono stati caricati. Se non lo sono stati, possono essere caricati in maniera esplicita con i comandi <CODE>modprobe raid1</CODE> o <CODE>modprobe raid5</CODE>. In alternativa, se usate l'autoloader e se credete che <CODE>kerneld</CODE> debba caricarli e non lo fa, potrebbe essere a causa del fatto che il loader manca delle informazioni che servono per caricare i moduli. Modificate <CODE>/etc/conf.modules</CODE> aggiungendo le linee seguenti: <PRE> alias md-personality-3 raid1 alias md-personality-4 raid5 </PRE> </BLOCKQUOTE> </LI> <LI><B>D</B>: Durante l'esecuzione del comando <CODE>mdadd -a</CODE> si ha l'errore: <CODE>/dev/md0: No such file or directory</CODE>. Sembra però che non vi siano <CODE>/dev/md0</CODE> da nessuna parte. E adesso? <BLOCKQUOTE> <B>R</B>: Il package raid-tools crea questi dispositivi quando viene eseguito il comando <CODE>make install</CODE> come utente root. In alternativa, si può fare così: <PRE> cd /dev ./MAKEDEV md </PRE> </BLOCKQUOTE> </LI> <LI><B>D</B>: Dopo aver creato un sistema raid su <CODE>/dev/md0</CODE>, provo a montarlo ma ottengo il seguente errore: <CODE>mount: wrong fs type, bad option, bad superblock on /dev/md0, or too many mounted file systems</CODE>. Cosa c'è che non va? <BLOCKQUOTE> <B>R</B>: Si deve creare un file system su <CODE>/dev/md0</CODE> prima che sia possibile montarlo. Usare <CODE>mke2fs</CODE>. </BLOCKQUOTE> </LI> <LI><B>D</B>: Truxton Fulton ha scritto: <BLOCKQUOTE> Sul mio sistema Linux 2.0.30, mentre eseguivo <CODE>mkraid</CODE> su un dispositivo RAID-1, durante la pulizia delle due distinte partizioni ho visto apparire sulla console gli errori <CODE>"Cannot allocate free page"</CODE> e altri errori <CODE>"Unable to handle kernel paging request at virtual address ..."</CODE> risultavano nel log di sistema. A questo punto il sistema è diventato pressoché inutilizzabile, ma si è poi ristabilito dopo un po'. L'operazione sembra essersi conclusa senza errori e adesso utilizzo senza problemi il mio dispositivo RAID-1. Comunque quegli errori continuano a sconcertarmi. Qualche idea? </BLOCKQUOTE> <BLOCKQUOTE> <B>R</B>: Questo era un bug ben conosciuto nei kernel 2.0.30. È stato corretto nel kernel 2.0.31; in alternativa si può tornare al 2.0.29. </BLOCKQUOTE> </LI> <LI><B>D</B>: Non riesco ad eseguire <CODE>mdrun</CODE> su un dispositivo RAID-1, RAID-4 o RAID-5. Se provo ad eseguire <CODE>mdrun</CODE> su un dispositivo aggiunto con <CODE>mdadd</CODE> mi viene dato il messaggio ''<CODE>invalid raid superblock magic</CODE>''. <BLOCKQUOTE> <B>R</B>: Assicurarsi che sia stata seguita la parte della procedura di installazione dove viene utilizzato <CODE>mkraid</CODE>. </BLOCKQUOTE> </LI> <LI><B>D</B>: Quando accedo a <CODE>/dev/md0</CODE> il kernel se ne esce con molti errori tipo <CODE>md0: device not running, giving up !</CODE> e <CODE>I/O error...</CODE>. Ho aggiunto con successo i miei dispositivi al dispositivo virtuale. <BLOCKQUOTE> <B>R</B>: Per essere utilizzabile un dispositivo deve essere in funzione. Si usi il comando <CODE>mdrun -px /dev/md0</CODE> dove x è 1 per linear, 0 per RAID-0 o 1 per RAID-1, etc. </BLOCKQUOTE> </LI> <LI><B>D</B>: Ho creato un dispositivo md lineare con 2 dispositivi. <CODE>cat /proc/mdstat</CODE> mi dice la grandezza totale del dispositivo ma <CODE>df</CODE> mi fa vedere solo le dimensioni del primo dispositivo fisico <BLOCKQUOTE> <B>R</B>: Si deve eseguire <CODE>mkfs</CODE> su un nuovo dispositivo md prima di usarlo per la prima volta, in modo tale che il filesystem copra tutto il dispositivo. </BLOCKQUOTE> </LI> <LI><B>D</B>: Ho configurato <CODE>/etc/mdtab</CODE> usando mdcreate, ho poi eseguito <CODE>mdadd</CODE>, <CODE>mdrun</CODE> e <CODE>fsck</CODE> sulle mie due partizioni <CODE>/dev/mdX</CODE>. Prima del reboot sembra tutto a posto. Appena effettuo il reboot <CODE>fsck</CODE> mi dà errori su tutte e due le partizioni: <CODE>fsck.ext2: Attempt to read block from filesystem resulted in short read while trying too open /dev/md0</CODE>. Perché?! Come posso fare a correggerlo?! <BLOCKQUOTE> <B>R</B>: Durante il processo di boot, le partizioni RAID devono essere messe in funzione prima che vengano controllate da <CODE>fsck</CODE>. Questo deve essere fatto in uno degli script di boot. In qualche distribuzione <CODE>fsck</CODE> è eseguito da <CODE>/etc/rc.d/rc.S</CODE>, in altre è eseguito da <CODE>/etc/rc.d/rc.sysinit</CODE>. Si modifichino questi file in modo da eseguire <CODE>mdadd -ar</CODE> *prima* di <CODE>fsck -A</CODE>. Ancora meglio, suggerisco che venga eseguito <CODE>ckraid</CODE> se <CODE>mdadd</CODE> restituisce un codice di errore. Come fare ciò è discusso in maggiore dettaglio nella domanda 14 della sezione ''Riparare gli errori''. (Qui l'originale inglese sembra incoerente, in quanto la domanda 14 della sezione menzionata non è attinente. La domanda più attinente sembra essere la 7 della sezione "Considerazioni sul setup e sull'installazione". ndt) </BLOCKQUOTE> </LI> <LI><B>D</B>: Quando provo a far funzionare un serie di partizioni più grandi di 4 GB mi viene dato il seguente messaggio: <CODE>invalid raid superblock magic</CODE> <BLOCKQUOTE> <B>R</B>: Questo bug è stato corretto. (Settembre 97) Assicuratevi di avere l'ultima versione del codice RAID. </BLOCKQUOTE> </LI> <LI><B>D</B>: Quando provo ad eseguire mke2fs su una partizione più grande di 2 GB mi viene dato il messaggio <CODE>Warning: could not write 8 blocks in inode table starting at 2097175</CODE> <BLOCKQUOTE> <B>R</B>: Questo sembra essere un problema con <CODE>mke2fs</CODE> (Novembre 97) Un rimedio temporaneo consiste nel procurarsi il codice di mke2fs e aggiungere <CODE>#undef HAVE_LLSEEK</CODE> a <CODE>e2fsprogs-1.10/lib/ext2fs/llseek.c</CODE> subito prima del primo <CODE>#ifdef HAVE_LLSEEK</CODE> e quindi ricompilare mke2fs. </BLOCKQUOTE> </LI> <LI><B>D</B>: <CODE>ckraid</CODE> non riesce a leggere <CODE>/etc/mdtab</CODE> <BLOCKQUOTE> <B>R</B>: Il formato del file di configurazione usato per RAID0/linear in <CODE>/etc/mdtab</CODE> è obsoleto, anche se sarà supportato ancora per un po'. I file di configurazione usati attualmente sono chiamati <CODE>/etc/raid1.conf</CODE>, etc. </BLOCKQUOTE> </LI> <LI><B>D</B>: I moduli delle personality (<CODE>raid1.o</CODE>) non vengono caricati automaticamente; si deve eseguire modprobe manualmente prima di eseguire mdrun. Come posso ovviare all'inconveniente? <BLOCKQUOTE> <B>R</B>: Per il caricamento automatico dei moduli, si possono aggiungere le seguenti linee a <CODE>/etc/conf.modules</CODE>: <PRE> alias md-personality-3 raid1 alias md-personality-4 raid5 </PRE> </BLOCKQUOTE> </LI> <LI><B>D</B>: Ho aggiunto con <CODE>mdadd</CODE> 13 dispositivi e adesso sto cercando di eseguire <CODE>mdrun -p5 /dev/md0</CODE>, ma mi viene dato il messaggio: <CODE>/dev/md0: Invalid argument</CODE> <BLOCKQUOTE> <B>R</B>: La configurazione predefinita di software RAID prevede 8 dispositivi reali. Editare <CODE>linux/md.h</CODE>, modificare <CODE>#define MAX_REAL=8</CODE> con un numero più alto e ricompilare il kernel. </BLOCKQUOTE> </LI> <LI><B>D</B>: Non riesco a far funzionare <CODE>md</CODE> su delle partizioni nella nostra ultima SPARCstation 5. Sospetto che sia qualcosa che ha a che fare con le etichette di volume. <BLOCKQUOTE> <B>R</B>: Le etichette di volume Sun risiedono nel primo 1K di una partizione. Per RAID-1 le etichette di volume Sun non sono un problema poiché <CODE>ext2fs</CODE> salterà l'etichetta di ogni mirror. Per gli altri livelli RAID (0, linear e 4/5) questo sembra essere un problema; non si è arrivati ancora ad una causa certa (Dicembre 97). </BLOCKQUOTE> </LI> </OL> <HR> <A HREF="Software-RAID-0.4x-HOWTO-6.html">Avanti</A> <A HREF="Software-RAID-0.4x-HOWTO-4.html">Indietro</A> <A HREF="Software-RAID-0.4x-HOWTO.html#toc5">Indice</A> </BODY> </HTML>