Gentoo Logo

Disclaimer : La versione originale di questo articolo è stata pubblicata da IBM developerWorks ed è di proprietà di Westtech Information Services. Questo documento è una versione aggiornata dell'articolo originale, e contiene numerosi miglioramenti apportati dal Gentoo Linux Documentation team.
Questo documento non è mantenuto attivamente.


Il partizionamento in azione, 2a Parte

Indice:

1.  Raggruppare i dati

Introduzione

Nel mio precedente articolo, abbiamo spostato con successo la /home su una nuova partizione. Adesso é il momento di apprendere come radunare i file che subiscono frequenti modifiche su una nuova partizione. Perché dovremmo volerlo fare? Ecco un esempio. I file che subiscono frequenti modifiche contribuiscono pesantemente alla frammentazione. Uno dei modi migliori per arginare la frammentazione consiste nell'immagazzinare i file che vengono modificati spesso in una propria partizione separata. In questo modo le altre partizioni non vengono toccate dalla frammentazione indotta dai file che subiscono frequenti modifiche. Concettualmente é semplice, ma come realizzarlo in pratica?

Prima di tutto, dovete creare una nuova partizione per ospitare i file modificati di frequente. Potreste voler collocare questa partizione su un altro disco per migliorare le prestazioni. Vi guiderò attraverso i passi necessari per spostare entrambe le cartelle /tmp e /var su questa nuova partizione.

Avvertenza: La tecnica seguente descrive come effettuare lo spostamento di una o più partizioni. Nonostante questa tecnica consenta di ripristinare il sistema in caso di fallimento, essa non assicura protezione in caso di errori dell'utente. In altri termini, ogni volta che si formattano delle partizioni o si copiano un gran numero di file é possibile che ci si sbagli, digitando qualcosa di errato, provocando la distruzione di una grande mole di dati. Perciò é altamente consigliata l'esecuzione di un backup dei file critici prima di procedere.

Creare un filesystem sulla nuova partizione

Il primo passo di questo procedimento consiste nel creare una nuova partizione che sia in grado di contenere /var e /tmp, con un minimo margine di spazio libero. Potreste necessitare di un disco aggiuntivo o di una partizione libera (inutilizzata) che potrà ospitare i file che vengono modificati spesso. Se dovete utilizzare fdisk o cfdisk per creare la partizione, sarete costretti ad effettuare il riavvio del sistema. Si potrà poi formattare la nuova partizione seguendo i passi qui elencati (potete rimanere in modalità multiutente mentre li svolgete; vi segnalerò quando sarà necessario passare in modalità single-user):

Codice 1.1: Creare il filesystem

# mkfs.ext2 /dev/???

2.  Effettuare il mount su /mnt/rwstorage

Come nel mio precedente articolo, ??? deve venire sostituito con il nome del device che ospita la nuova partizione che state creando. Se digitate accidentalmente il nome sbagliato distruggerete i dati su una partizione esistente, quindi state attenti! Dopo aver lanciato questo comando avrete un filesystem ext2 nuovo di zecca sulla nuova partizione. Siamo quasi pronti per effettuarne il mount, ma prima creiamo un nuovo mount point.

Codice 2.1: Creare il mount point

# mkdir /mnt/rwstorage

Ho scelto il nome rwstorage per ricordarci che questa specifica partizione verrá espressamente utilizzata per ospitare i file che vengono letti e scritti frequentemente. Per effettuare il mount della partizione digitate:

Codice 2.2: Effettuare il mount della partizione

# mount /dev/??? /mnt/rwstorage

3.  Creare una nuova /tmp

Ora la partizione è attiva e siamo pronti per creare la nostra nuova cartella /tmp:

Codice 3.1: Creare la nuova cartella /tmp

# cd /mnt/rwstorage
# mkdir tmp
# chmod 1777 tmp

4.  Passare in modalitá single-user

La nostra nuova cartella /mnt/rwstorage/tmp dispone dei permessi confacenti ad una cartella temporanea. Ora passate in modalitá single-user, dato che dobbiamo copiare la cartella /var. Come al solito, abbiamo ritardato il piú possibile il passaggio in modalitá single-user. A questo punto vogliamo assicurarci che nessun programma legga o scriva file in /var, perció dobbiamo arrestare tutti i servizi (dèmoni), provocare la disconnessione di tutti gli utenti ed effettuare una rapida manutenzione digitando:

Codice 4.1: Passare in modalitá single-user

# init 1

Se vi viene richiesta una password per effettuare la manutenzione del sistema, inseritela. Dovreste trovarvi in una shell di root, e tutti i servizi superflui verranno interrotti. Create una nuova cartella per ospitare i file della nostra /var digitando:

Codice 4.2: Creare la nuova cartella

# cd /mnt/rwstorage
# mkdir var

5.  Copiare la /var

I permessi di default della nostra nuova cartella /mnt/newstorage/var dovrebbero essere corretti, quindi ora siamo pronti per copiare tutti i dati della nostra cartella /var originaria sulla nuova partizione:

Codice 5.1: Copiare i dati

# cd /var 
# cp -ax * /mnt/rwstorage/var

6.  Backup e creazione dei link simbolici

Al termine dell'esecuzione di questo comando, avrete una copia esatta di /var in /mnt/rwstorage/var. A questo punto vi potreste chiedere in che modo possiamo portare Linux ad utilizzare /mnt/rwstorage/var e /mnt/rwstorage/tmp invece delle cartelle di default presenti nella cartella radice. Questo obiettivo viene raggiunto facilmente utilizzando dei link simbolici -- creeremo dei nuovi link simbolici /tmp e /var, che punteranno alle cartelle corrispondenti in /mnt/rwstorage. Prima di tutto, effettuiamo un backup delle cartelle originarie:

Codice 6.1: Effettuare il backup delle cartelle

# cd /
# mv var var.old
# mv tmp tmp.old

L'ultima riga probabilmente non è indispensabile, poiché è molto probabile che non abbiate nulla di importante in /tmp, ma non vogliamo correre rischi. Ora creiamo i link simbolici:

Codice 6.2: Creare i link simbolici

# cd /
# ln -s /mnt/rwstorage/var /var
# ln -s /mnt/rwstorage/tmp /tmp

7.  Ultimi ritocchi ad /etc/fstab

Ora, quando qualsiasi utente o programma utilizza /var, verrá automaticamente reindirizzato su /mnt/rwstorage/var! Analogamente accadrá per /tmp. Ci rimane un ultimo passo, che puó comunque essere svolto in modalitá multiutente. È ora di far ripartire Apache, e di permettere a tutti gli utenti di accedere di nuovo al sistema. Uscite dal runlevel 1 premendo CTRL-D. Il sistema dovrebbe ripartire normalmente. Effettuate l'accesso come utente root.

Il passo finale consiste nel configurare /etc/fstab in modo che il mount di /dev/??? venga effettuato su /mnt/rwstorage. Dovete aggiungere la seguente riga al file /etc/fstab:

Codice 7.1: Configurare fstab

/dev/???   /mnt/rwstorage   ext2   defaults   1   2

Importante: Se state usando una versione del kernel superiore alla 2.3 è molto probabile che abbiate una riga nel vostro /etc/fstab che assomiglia a questa:

Codice 7.2: Memoria condivisa

none   /var/shm   shm   defaults   0   0

Questa riga abilita la memoria condivisa sul vostro sistema, e viene montata di default in /var. Per fare in modo che questa riga funzioni a dovere deve trovarsi dopo la riga che avete appena aggiunto. In questo modo, quando Linux si avvia, effettua dapprima il mount di /mnt/rwstorage (rendendo cosí accessibile /var). Solo successivamente il device shm verrá montato in /var/shm, che in realtá punta a /mnt/rwstorage/var/shm. Assicuratevi che le righe si presentino in quest'ordine:

Codice 7.3: Abilitare la memoria condivisa

/dev/???        /mnt/rwstorage  ext2    defaults       1     2
none            /var/shm        shm     defaults       0     0

Dopo aver salvato le modifiche al file /etc/fstab, il vostro sistema è stato aggiornato con successo! Dopo aver verificato che tutto funzioni a dovere, potete cancellare le cartelle di backup /tmp.old e /var.old. Complimenti -- avete riconfigurato con successo le partizioni del vostro sistema al fine di ottimizzarne le prestazioni.

Risorse

L'autore

Daniel Robbins vive ad Albuquerque, New Mexico. E' stato Presidente/CEO di Gentoo Technologies Inc., Chief Architect del Gentoo Project ed é co-autore di numerosi libri pubblicati da MacMillan: Caldera OpenLinux Unleashed, SuSE Linux Unleashed, e Samba Unleashed. Daniel é coinvolto nell'informatica dai tempi delle elementari quando venne in contatto con il linguaggio di programmazione Logo ed una dose potenzialmente letale di Pac Man. Questo forse spiega perché da allora abbia lavorato come Lead Graphic Artist alla SONY Electronic Publishing/Psygnosis. Daniel ama trascorrere il suo tempo libero con sua moglie Mary e la loro bambina, Hadassah. Potete mettervi in contatto con Daniel scrivendo a Daniel Robbins.



Stampa

Aggiornato il 2 marzo 2010

Oggetto: In questo secondo articolo sulla modifica dello schema delle partizioni di un sistema già funzionante, Daniel Robbins mostra come spostare le cartelle /tmp e /var su una propria partizione condivisa. Descrive anche alcuni trucchi del mestiere per minimizzare i tempi di inattività del sistema ed evitare gravi errori.

Daniel Robbins
Autore

Fabrizio Prosperi
Traduttore

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.