PC möglichst nur aus RAM laufen lassen

Cruz

Cruz

No Bullshit
Hallo,

ich setze eine uralte Compaq Kiste mit 128 MB RAM, 20 GB HD und PIII 375 MHz bei mir zu Hause als Router + Firewall + Cups Server ein. Der Methusalem :oldman leistet unter SuSE 10 treu seinen Dienst.

Da die Kiste Jahre lang ununterbrochen läuft und eigentlich kaum Arbeit zu verrichten hat, bin ich endlich darauf aufmerksam geworden, wie unsinnig es ist, dass die Festplatte (die übrigens schon 10 Jahre alt ist!!) ununterbrochen läuft. Ich möchte am liebsten die Kiste, in etwa wie die Linux Live CDs es tun, möglichst nur aus dem RAM laufen lassen. Ich brauche nichts zu loggen oder zu speichern, die Firewall sollte wohl in den RAM passen und gar nicht auf die Platte schreiben, ein Plattenzugriff sollte eigentlich nur erfolgen, wenn zum Beispiel ein größerer Druckauftrag ankommt, der geswapt werden muss.

Ich habe als erstes mal mit hdparm -S eine Spindown Zeit von 1 Minute festgelegt und musste dann feststellen, dass die Platte nicht zur Ruhe kommt. Er schaltet sich dann zwar schön nach einer Minute ab, aber schon noch ein oder zwei Minuten muss sie wieder hochdrehen, um einen Zugriff zu erledigen. Das ständige Ein- und Ausschalten belastet die Platte noch umso mehr, also habe ich das erstmal wieder sein gelassen.

Nun ist meine Frage, mit welchen Tools kann ich denn den Prozessen auf die Schliche kommen, die auf die Festplatte zugreifen? Gibt es irgendwelche unabdingliche Linux Prozesse, denen man nicht abgewöhnen kann auf die Platte zuzugreifen? Und wie ist es eigentlich mit einem RAM-Disk Ansatz, wie die Live CDs das machen? Wie kann ich das bewerkstelligen? Habe ich mit 128 MB überhaupt eine Chance? Ich kann den Speicher noch verdoppeln, da ich eine identische Kiste als Backup habe, aber mehr ist nicht mehr drin.


Für jeden Tipp dankbar,
Cruz
 
Kuck dir mal tmpfs an:

tmpfs is a common name for a temporary file storage facility on many Unix-like operating systems. It is intended to appear as a mounted file system, but one which uses virtual memory instead of a persistent storage device.
 
Hallo,

nur als Anmerkung: Du benötigst auch noch ein Boot-Medium. Von daher würde ich sagen ein USB-Stick ist das Mittel der Wahl, wenn die Kiste sowas besitzt. Außerdem kannst du die Verzeichnisse wie /tmp und /var ja in den Speicher auslagern. Das sollte die Zugriffe minimieren.
 
Eine Linuxdistribution die von Haus aus schon komplett im RAM läuft wäre vielleicht noch Puppy-Linux wobei dort eine komplette Benutzeroberfläche dabei ist.

Ob Firewall und andere Dienste auch dabei sind kann ich nicht sagen...

Bye
Floh1111
 
Es gibt z.B. fli4l und Coyote (und bestimmt noch andere), die man von Diskette booten kann. Allerdings weiß ich nicht, ob die Cups können. Gibt einfach mal bei google „linux router diskette“ ein, dann findest Du sicher irgendwas Passendes.

Im Prinzip reichen dafür 2 Netzwerkkarten, ein Mainboard + CPU (evt. mit Kühler) und RAM, Diskettenlaufwerk, Netzteil und Kabel. Ein Kumpel von mir hatte das alles mal in einem Schuhkarton lose im Keller als Router liegen.
 
Such mal die Stelle, wo nach dem fsck, der beim Boot läuft, die Platte von r auf rw
gemountet wird - muß irgend ein Init-Script sein. Ändere dort mal so, dass nicht
wr gemountet wird. Dann starte neu und warte mal ab was passiert - was noch geht, und
was nicht (Sicherungskopie des Init-Scripts nicht vergessen). Dann probier mal, ob
die Firewall und Routerfunktion noch funktioniert - wenn ja, alles was mit Fehlern
angemeckert wird, wo auch immer abschalten.
Eventuell muß dann nur /var/log in ne Ramdisk sowie auch /tmp - das sollte eigenltich
reichen.
 
Danke für die ganzen Tipps. Bisher finde ich tmpfs und die Auslagerung von /var und /tmp in den Speicher am sympatischsten. Ich muss wahrscheinlich auch /proc auslagern, oder?

Booten kann ich ja weiter von Festplatte aus und die Festplatte soll ja ruhig noch als swap Unterstützung für den tmpfs da sein.
 
/proc wird vom Kernel dynamisch erzeugt und verwaltet. Darum musst du dich nicht kümmern.
 
Ich muss da leider nochmal nachfragen. Bevor ich die Verzeichnisse ins tmpfs verlege, würde ich schon gerne ganz genau wissen, welche Prozesse die Festplattenzugriffe verursachen. Wie kann ich denn die Festplattenzugriffe protokollieren?

Und ich verstehe noch nicht ganz, was mit meinem /var passieren wird, wenn ich den Eintrag in der fstab mache, um es ins tmpfs zu verlagern (none /var tmpfs ...). Was ist mit dem /var auf der Festplatte? Wird das Verzeichnis dann gar nicht mehr beachtet? Bekomme ich dann nur ein leeres /var im Speicher? Kommt das Betriebssystem damit klar?
 
Ja, das "weg gemountete" /var (auf der Platte) gibt es solange nicht mer bis das TmpFs-/var umounted ist (mhh wie war des nochmal, das weg gemountete Verzeichnis auf der Platte kann nicht ueberschrieben werden... k.A.)

Wenn Du noch mehr als /var etc. in den RAM packen willst - link.
 
Zuletzt bearbeitet:
[...] uralte Compaq Kiste mit 128 MB RAM, 20 GB HD und PIII 375 MHz [...] als Router + Firewall + Cups Server [...]

Ich möchte am liebsten die Kiste, in etwa wie die Linux Live CDs es tun, möglichst nur aus dem RAM laufen lassen. [...]
Bei IPCop[1] ist dies möglich, komplett in den Arbeitsspeicher[2] oder auf eine CF-Karte[3] :)) Allerdings keine Cups Funktion, nicht offiziell ;)

[1] http://www.ipcop.org - http://www.ipcop-forum.de
[2] http://www.sischmitz.de/ramcop_de.html
[3] http://www.zisoft.de/IPCop/mkflash/

Gruss
«oMeE»
 
...würde ich schon gerne ganz genau wissen, welche Prozesse die Festplattenzugriffe verursachen.
Mit dem Programm "lsof" findest du heraus welcher Prozess momentan eine Datei geöffnet hat. In deinem Fall würden die Prozesse mit
Code:
lsof /dev/deinefestplatte
angezeigt werden, welche auf deine Festplatte bzw. die entsprechende Partition zugreifen.
 
Hm, lsof ist nicht ganz das, was ich suche. Es zeigt ja nur die offenen Dateien an. D.h. eine Datei, die zwischenzeitig geöffnet und wieder geschlossen wurde, kann ich damit nicht sehen. Ich müsste dann schon mit lsof hochfrequentiert "scannen", damit ich ja kein Schreib-/Lesevorgang verpasse.

Ich möchte ja im Grunde so eine Ausgabe haben:

Prozessname, Dateiname, [lesen oder schreiben], Zeitstempel
.
.
.
alle Vorgänge dieser Art in den letzten 10 Minuten.

Vielleicht kann ich mir ja mit etwas Arbeit aus lsof und find selber ein Programm basteln, aber etwas Gutes und Bewährtes wäre mir schon lieber. :)
 

Ähnliche Themen

Linux freezed unregelmäßig

Server-Monitoring mit RRDTool

Zurück
Oben