Am Freitag, den 29.04.2005, 10:29 +0200 schrieb Sebastian Zwietz:
ich stehe vor folgendem Problem. Ein Datenquelle gibt kontinuierlich einen Datenstrom mit einer Rate von ca. 24MB/s aus. Diesen Datenstrom gilt es auf eine Festplatte zu bannen. Das ganze muss auch andersherum funktionieren - also lesen und ausgeben. Die Anforderungen an den Datenstrom sind hart, dass heißt es muss garantiert werden, dass der Datenstrom ununterbrochen gespeichert werden kann bzw. beim Lesen nicht abreißt. Aufzeichnungs-/Wiedergabedauer liegen im Bereich von ca. 15-60min. Puffer habe ich ca. 128 MB sicher.
Die kanonische Antwort lautet: Echtzeit-OS + Echtzeit-FS. ;-)
Die Festplatte, die ich jetzt verwende, schafft im ungünstigsten Fall ca. 30MB/s lesen oder schreiben (wenn nur ein Prozess linear liess/schreibt). So jetzt zum Problem: Wie würdet ihr die Daten auf der Platte organisieren? Dateisystem oder direkt auf die Platte? Es sollte möglich sein, mehrere (so maximal 4-8 "Files") unterschiedliche Datenströme nacheinander zu sichern, zu lesen, mal einen zu löschen und einen neuen zu schreiben etc.
Falls Du vorher weißt, wie lang der Strom ist, könntest Du ein File vorher anlegen und mit der entsprechenden Datenmenge füllen. Dann muß das FS beim Schreiben keine Blöcke hinzufügen, da die ja schon da sind. Außerdem kannst Du den Datendurchsatz schon vorher testen, da ja die zu benutzenden Blöcke dem FS bekannt sind. Außerdem würde ich dafür eine separate Platte nehmen, damit der "Datensammler" der einzige Prozess ist, der darauf zugreift.
Ohne den kreativen von vornherein Prozess zu zerstören: z.Z. schreibe/lese ich direkt in/aus einer Partition und lege das Mapping an anderer Stelle ab. Um Problemen wie z.B. Fragmentierung zu entgehen, möchte ich aber eigentlich ein Dateisystem drunter legen, das mir die Arbeit abnimmt. Dies soll aber nicht ständig auf der Platte "rumhüpfen" und mir die Datenrate versauen - wenn die Puffer überlaufen ist das sehr schlecht. Welches würde da eurer Meinung nach am Besten geeignet sein?
Naja, 128 MB bei 24 MB/s ergeben 5 Sekunden Reserve. Da muß der Stepper aber ganz schön weit steppen...
Eric