di Mark Nielsen L´autore: L'autore (home page) lavora come impiegato presso The Computer Underground, Inc. e come consulente professionista presso 800linux.com. Nel tempo libero fa attività di volontariato, come scrivere questi documenti. Questo documento è stato scritto usando Nedit e ispell. Contenuto: |
Sommario:
Qusto articolo mostra come usare la RAM come un hard disk virtuale.
Cos'è un RamDisk? Un RamDisk è una porzione di memoria che viene allocata per l'uso come una partizione. O, in altre parole, si prende la memoria e la si usa come un disco fisso, salvandovi dei file. Perché usare un RamDisk? Se si sa che certi file verranno usati frequentemente, mettendoli in memoria si aumentano le prestazioni del computer, in quanto la memoria è più veloce del disco fisso. Cose come server web con molti dati possono essere velocizzati in questo modo. O, se siete dei folli e avete un computer con un PII 550 Mhz, un giga di memoria e un vecchio disco fisso da 500 mega, potete usarlo semplicemente per aumentare il vostro spazio disco. O ancora, se volete una macchina quasi senza disco fisso, potrebbe non essere così fuori dal mondo dopotutto.
Ecco alcune risorse che possono aiutarvi.
# crea un mount point: mkdir /tmp/ramdisk0 # crea un filesystem: mke2fs /dev/ram0 # mounta il ramdisk: mount /dev/ram0 /tmp/ramdisk0Quei tre comandi creeranno una directory per il ramdisk, ne formatteranno uno (creeranno il filesystem), e monteranno il ramdisk sulla directory "/tmp/ramdisk0". Adesso quella directory potrà essere usata come una finta partizione! Usatela come ogni altra directory o come qualsiasi altra partizione.
CONFIG_BLK_DEV_RAM
.
La dimensione predefinita dei ramdisk è 4MB=4096 blocchi. Avrete già visto la dimensione del
ramdisk ottenuta mentre stavate eseguendo mke2fs.
mke2fs /dev/ram0
dovrebbe aver visualizzato un messaggio come questo:
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09 Linux ext2 filesystem format Filesystem label= 1024 inodes, 4096 blocks 204 blocks (4.98%) reserved for the super user First data block=1 Block size=1024 (log=0) Fragment size=1024 (log=0) 1 block group 8192 blocks per group, 8192 fragments per group 1024 inodes per groupEseguendo
df -k /dev/ram0
possiamo sapere quanto di quello spazio è
effettivamente utilizzabile (anche il filesystem prende un po' di spazio):
>df -k /dev/ram0 Filesystem 1k-blocks Used Available Use% Mounted on /dev/ram0 3963 13 3746 0% /tmp/ramdisk0
A cosa bisogna stare attenti? Beh, quando riavviate il computer, perdete il contenuto dei ramdisk. Non metteteci dati che non siano copiati da qualche altra parte. Se modificate qualcosa in quella directory e se questi cambiamenti devono essere memorizzati, trovate una maniera di farne un backup.
CONFIG_BLK_DEV_RAM
.
Compilando il ramdisk come modulo caricabile si ha il vantaggio che si
può decidere a tempo di caricamento quale deve essere la dimensione dei ramdisk.
Okay, prima il modo difficile. Aggiungete questa linea al vostro file lilo.conf:
ramdisk_size=10000 (o ramdisk=10000 per i vecchi kernel)
e la dimensione predefinita dei ramdisk sarà di 10 mega non appena avrete eseguito
il comando "lilo" e avrete riavviato il computer.
Ecco come esempio il mio file /etc/lilo.conf.
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz label=linux root=/dev/hda2 read-only ramdisk_size=10000In effetti, ho ottenuto poco più di 9 mega di spazio utilizzabile in quanto anche il filesystem occupa un po' di spazio.
Quando il supporto per i ramdisk è compilato come modulo la dimensione dei ramdisk può essere decisa al caricamento del modulo. Questo si può fare con una linea di opzione nel file /etc/conf.modules:
options rd rd_size=10000oppure come parametro nella linea del comando insmod:
insmod rd rd_size=10000Vediamo un esempio che mostra come usare il modulo:
umount /tmp/ramdisk0
.
rmmod rd
insmod rd rd_size=20000
mke2fs /dev/ram0
mount /dev/ram0 /tmp/ramdisk0
mv /home/httpd/ /home/httpd_real mkdir /home/httpd mkdir /home/httpd/cgi-bin mkdir /home/httpd/html mkdir /home/httpd/iconsSuccessivamente, aggiungete questi comandi alla procedura di avvio del server nel file /etc/rc.d/init.d/httpd.init (o comunque nel file che viene usato nel vostro sistema per avviare httpd):
### Crea le partizioni per i ramdisk /sbin/mkfs -t ext2 /dev/ram0 /sbin/mkfs -t ext2 /dev/ram1 /sbin/mkfs -t ext2 /dev/ram2 ### Monta i ramdisk nei rispettivi posti mount /dev/ram0 /home/httpd/cgi-bin mount /dev/ram1 /home/httpd/icons mount /dev/ram2 /home/httpd/html ### Copia le vere directory nei ramdisk (i dati ### sui ramdisk vengono persi dopo un riavvio) tar -C /home/httpd_real -c . | tar -C /home/httpd -x ### Fatto questo si può lanciare il server web.
Sito web mantenuto dal Team degli Editori di LinuxFocus
© Mark Nielsen LinuxFocus 1999 |
Informazioni sulla traduzione:
|
1999-11-14, generated by lfparser version 0.7