|
|
| Dit document is beschikbaar in: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
door Mark Nielsen (homepage) Over de auteur: Mark is een onafhankelijke consultant die tijd vrijmaakt voor zaken als GNUJobs.com, het schrijven van artikelen, het schrijven van gratis software, en hij werkt als vrijwilliger bij eastmont.net. Vertaald naar het Nederlands door: Hendrik-Jan Heins <hjh(at)passys.nl> Inhoud: |
Kort:
RamFs is een zeer eenvoudig bestandssysteem met enkele interessante mogelijkheden. Het is een van de nieuwe features van de 2.4 Kernel.
Wat is een RamDisk? Een RamDisk is een deel van het geheugen dat je voor gebruik als een partitie alloceert. Met andere woorden: je neemt een deel van je geheugen en doet alsof het een harde schijf is die je kan formatteren, mounten, bestanden naar weg kan schrijven enz.
Er zijn twee typen ramdisks waar we over zullen praten. De eerste is een ramdisk die je kunt formatteren en mounten. De tweede is een ramdisk die je niet kunt formatteren, maar deze heeft enkele andere leuke features. Hier is een uitleg:
De oude /dev/ram1 benadering:
Typ om ramdisks van het type van kernel 2.0/2.2 te gebruiken de volgende drie commando's (als root):
mkfs -t ext2 /dev/ram1 mkdir -p /RAM1 mount /dev/ram1 /RAM1En klaar is de ramdisk. Op de meeste systemen is de maximum grootte beperkt tot 4 meg. Dit kan veranderd worden bij het booten of door de kernel opnieuw te compileren, maar zie ook daarvoor mijn oude artikel. Je kunt er op de volgende manier ook meerdere aanmaken:
mkfs -t ext2 /dev/ram2 mkdir -p /RAM2 mount /dev/ram2 /RAM2
Het gebruik is heel eenvoudig. Maak een directory en mount ramfs daarop.
mkdir -p /RAM1 mount -t ramfs none /RAM1Als je er nog een nodig hebt, is dat heel eenvoudig. Maak nog een directory aan en mount ramfs daarop.
mkdir -p /RAM2 mount -t ramfs none /RAM2
Hier is een voorbeeld om te illustreren hoe je een 10 meg ramdisk maakt.
mkdir -p /RAM1 mount -t ramfs none /RAM1 -o maxsize=10000Het volgende komt letterlijk uit: http://www.linuxhq.com/kernel/v2.4/patch/patch-2.4.3-ac2/linux.ac_Documentation_filesystems_ramfs.txt.html
+ ramfs - An automatically resizing memory based filesystem + + + Ramfs is a file system which keeps all files in RAM. It allows read + and write access. In contrast to RAM disks, which get allocated a + fixed amount of RAM, ramfs grows and shrinks to accommodate the + files it contains. + + You can mount the ramfs with: + mount -t ramfs none /mnt/wherever + + Then just create and use files. When the filesystem is unmounted, all + its contents are lost. + + NOTE! This filesystem is probably most useful not as a real + filesystem, but as an example of how virtual filesystems can be + written. + +Resource limits: + +By default a ramfs will be limited to using half of (physical) memory +for storing file contents, a bit over that when the metadata is +included. The resource usage limits of ramfs can be controlled with +the following mount options: + + maxsize=NNN + Sets the maximum allowed memory usage of the +filesystem to NNN kilobytes. This will be rounded down to a multiple +of the page size. The default is half of physical memory. NB. unlike +most of the other limits, setting this to zero does *not* mean no +limit, but will actually limit the size of the filesystem data to zero +pages. There might be a use for this in some perverse situation. + + maxfilesize=NNN + Sets the maximum size of a single file on the +filesystem to NNN kilobytes. This will be rounded down to a multiple +of the page size. If NNN=0 there is no limit. The default is no limit. + + maxdentries=NNN + Sets the maximum number of directory entries (hard +links) on the filesystem to NNN. If NNN=0 there is no limit. By +default this is set to maxsize/4. + + maxinodes=NNN + Sets the maximum number of inodes (i.e. distinct +files) on the filesystem to NNN. If NNN=0 there is no limit. The +default is no limit (but there can never be more inodes than dentries).
Ram is op dit moment vrij goedkoop. Ik heb net 128 meg ram voor $120 gekocht, en ik ga er vanuit dat de prijs nog verder zal dalen. En 128 meg ram is al meer dan voldoende om mijn webserver in te draaien. Als mijn webserver ook een paar grote bestanden bevat, kan ik httpd.conf zo instellen dat hij in een andere directory, niet op de ramdisk, naar deze bestanden zoekt. Mijn DNS server is zeer klein. Mijn grootste database server is slechts 28 meg. En uitgaande van het feit dat je op dit moment relatief goedkoop computers kunt kopen met 1 gig aan geheugen, denk ik dat het erg gaaf is om alles dat ik heb in het geheugen te draaien. Het enige probleem met de database server is dat je eerst al je gegevens moet wegschrijven naar een andere database server, anders kan je het kwijtraken. Dit is een traag proces, maar aangezien je meestal moet lezen en niet hoeft te schrijven, zou dit de snelheid van de database server een heel eind moeten kunnen vergroten. Misschien kunnen we een mirror van een harde schijf aanmaken.
Ik heb ook dit al uitgelegd in een ander artikel, dus lees daarover hier verder:
http://www.gnujobs.com/mark/articles/Ramdisk.html#Example.
Vervang wel deze commando's :
### Make the ramdisk partitions
/sbin/mkfs -t ext2 /dev/ram0
/sbin/mkfs -t ext2 /dev/ram1
/sbin/mkfs -t ext2 /dev/ram2
### Mount the ramdisks to their appropriate places
mount /dev/ram0 /home/httpd/cgi-bin
mount /dev/ram1 /home/httpd/icons
mount /dev/ram2 /home/httpd/html
door de volgende (verhoog het getal als je niet voldoende hebt aan 10 meg):
mount -t ramfs none /home/httpd/cgi-bin -o maxsize=10000 mount -t ramfs none /home/httpd/icons -o maxsize=10000 mount -t ramfs none /home/httpd/html -o maxsize=10000
Er bestaan drie problemen bij het combineren van een ramdisk met een harde schijf partitie.
raiddev /dev/md3
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/hdb6
raid-disk 1
device /dev/ram3
raid-disk 0
Daarna heb ik
mkraid /dev/md3 mkfs -t ext2 /dev/md3 mkdir -p /RAID1 mount /dev/md3 /RAID1...gedraaid.
raidstart /dev/md3 raidhotadd /dev/md3 /dev/ram3 mount /dev/md3 /RAID1Onthoud wel dat het nutteloos is om de harde schijf partitie groter dan 4 meg te maken als je de oude ramdisks niet groter hebt gemaakt dan 4 meg.
Het zou wel heel gaaf zijn om een gespiegelde raid met 3 partities te maken. 1 is de ramdisk, en de andere 2 zijn de harde schijf partities, hierdoor is het ook geen probleem om de ramdisk alleen om uit te lezen in te stellen. Ik weet niet of het mogelijk is om leesacties slechts te beperken tot 1 partitie in de raid, maar het zou wel heel leuk zijn als dat mogelijk was.
Dank aan Katja voor de hulp!
Copyright © 4/2001 Mark Nielsen
Article Version 1.3 : Date Last Changed Sat May 19
06:04:06 2001
|
|
Site onderhouden door het LinuxFocus editors team
© Mark Nielsen, FDL LinuxFocus.org |
Vertaling info:
|
2002-11-23, generated by lfparser version 2.31