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
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 /
# cp var var.old
# cp 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.
|