|
|
| Dieses Dokument ist verfübar auf: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
von Mark Nielsen Über den Autor: Mark arbeitet als unabhängiger Consultant und spendet seine Zeit für Dinge wie GNUJobs.com, Artikel schreiben, Schreiben freier Software und Arbeiten als Freiwilliger bei eastmont.net. Inhalt: |
Zusammenfassung:
RamFs ist ein sehr einfaches Dateisystem mit einigen interessanten Aspekten. Es ist neu im 2.4 Kernel.
Was ist eine RamDisk? Eine RamDisk ist ein Teil des Speichers, den man alloziert, um ihn als pseudo Plattenpartition zu benutzen. Oder, in anderen Worten, man nimmt ein bißchen Speicher und tut so als sei es ist die Festplatte, die man formatieren, mounten, worauf man Dateien speichern kann etc..
Es gibt zwei Typen von Ram Disks, über die wir reden werden. Das erste ist eine Ram Disk, die man formatieren und mounten kann. Das zweite ist eine Ram Disk, die man nicht formatieren kann, die aber einige nette Features hat. Hier ist eine Auflistung:
Die /dev/ram1 Methode:
Um deinen Kernel 2.0 und 2.2 ramdisks zu benutzen, tippe einfach die drei Befehle:
mkfs -t ext2 /dev/ram1 mkdir -p /RAM1 mount /dev/ram1 /RAM1als root und du bist fertig. Auf den meisten Systemen ist die Größe auf 4 megs begrenzt. Dies kann zur Bootzeit verändert werden oder wenn du den Kernel rekompilierst, aber lies meinen alten Artikel hierfür. Du kannst auch noch mehr hinzufügen wie dies,
mkfs -t ext2 /dev/ram2 mkdir -p /RAM2 mount /dev/ram2 /RAM2
Sehr einfach. Erstelle ein Verzeichnis und mounte ramfs dort.
mkdir -p /RAM1 mount -t ramfs none /RAM1Wenn du eine zweite haben willst, sehr einfach. Erstelle ein Verzeichnis und mounte ramfs dort.
mkdir -p /RAM2 mount -t ramfs none /RAM2
Hier ist ein Beispiel, um eine 10 meg ramdisk zu erstellen.
mkdir -p /RAM1 mount -t ramfs none /RAM1 -o maxsize=10000direkt übernommen von: 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 ist heutzutage billig. Ich bekam kürzlich 128 megs ram für $120 und ich gehe davon aus, daß der Preis weiter fallen wird. Für 128 megs ram kann ich sehr leicht jeden meiner Webserver in ihn stellen. Wenn mein Webserver riesige Daten hat, kann ich httpd.conf so konfigurieren, daß es in einem anderen Verzeichnis schaut, nicht in der ram disk. Mein DNSserver ist sehr klein. Mein größter Datenbankserver hat nur 28 megs. In Anbetracht der Tatsache, daß man einen 1 gig memory computer heutzutage wirklich billig bekommt, denke ich, es wäre cool, alles, was ich habe, im ram laufen zu lassen. Der einzige trickreiche Teil mit dem Datenbankserver ist, daß du zuerst alle deine Einträge in einem getrennten Datenbankserver speichern mußt, bevor du sie in deinen Datenbankserver im ram schreibst. Dies ist langsam, aber wenn man bedenkt, daß man die meiste Zeit liest und nicht schreibt, sollte es die Performance erhöhen. Vielleicht, wenn wir eine ram disk auf eine Festplatte spiegeln könnten
Ich habe das schon in meinem anderen Artikel erklärt, deshalb lies es bitte hier: http://www.gnujobs.com/mark/articles/Ramdisk.html#Example. Ersetzt einfach nur diese Befehle
### 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
durch diese Befehle (erhöhe die Anzahl, wenn 10 megs nicht ausreichend sind):
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
Es gibt drei Probleme beim Verbinden einer ramdisk mit einer Festplattenpartition.
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
Dann habe ich das folgende ausgeführt
mkraid /dev/md3 mkfs -t ext2 /dev/md3 mkdir -p /RAID1 mount /dev/md3 /RAID1Problem beim Reboot, die ramdisk gerät durcheinander. Daher beim Reboot
raidstart /dev/md3 raidhotadd /dev/md3 /dev/ram3 mount /dev/md3 /RAID1Erinnere dich jetzt, wenn du die alten ramdisks nicht rekonfigurierst, damit sie größer als 4 megs sind, ist es nutzlos für deine Festplattenpartition größer als 4 megs zu sein.
Es wäre wirklich cool, ein gespiegeltes Raidsystem mit 3 Partitionen zu haben. 1 davon die ramdisk und 2 davon Festplattenpartitionen und es auch so zu machen, daß die ramdisk nur für Lesezyklen gelesen wird. Ich weiß nicht, ob es möglich ist, Lesezugriffe auf nur eine der Partitionen in einem Raidsystem zu isolieren, aber es wäre cool, wenn man das könnte.
Dank an Katja für einige Hilfe!
Copyright © 4/2001 Mark Nielsen
Article Version 1.3 : Date Last Changed Sat May 19
06:04:06 2001
|
|
Der LinuxFocus Redaktion schreiben
© Mark Nielsen, FDL LinuxFocus.org Einen Fehler melden oder einen Kommentar an LinuxFocus schicken |
Autoren und Übersetzer:
|
2001-06-27, generated by lfparser version 2.16