Login
Newsletter
Werbung

Mo, 7. Juni 2010, 17:00

Remotefs einrichten

Dieser Artikel beschreibt die Einrichtung und Verwaltung von Remotefs.

Eines der Hauptentwicklungsziele von Remotefs ist es, einen Server zur Verfügung zu stellen, der auf schwacher Hardware wie z.B. Heim-Routern, trotz geringer Ressourcen, optimal läuft. Das Reservieren von großen Mengen an Speicher und ähnliches ist auf solchen Servern nicht von Vorteil, Swapping könnte die Folge sein. Das Programm sollte klein bleiben. Sowohl unter der x86- als auch der ARM-Architektur beträgt die Größe der Serverkomponente ca. 60 KB.

Auf der Client-Seite ist der Lage entspannter. Hier könnten es ruhig einige Bytes mehr sein.

Remotefs versucht jede einzelnen Arbeitsschritt, welcher bei einen Netzwerkzugriff entsteht, und auch die Anbindung der Hardware zu optimieren, des heißt geringstmögliche Bearbeitungszeit zu erreichen.

Die Performance wird unter anderem dadurch erreicht, dass FUSE nicht im Multithread-Modus betrieben wird. Nach unseren Untersuchungen erreichen wir dadurch ein gutes Verhalten, da FUSE gezwungen wird, Puffer bereitzustellen und Daten erst zu sammeln und, wenn ausreichend viele vorhanden, sind diese weiterzureichen.

Die Aufrufe aus der FUSE Bibliothek werden strikt sequentiell bearbeitet. Dies bedeutet, dass die Latenzzeit erhöht wird (Aufrufe werden nicht überlappend ausgegeben). Dies stellt aber keinen gravierenden Nachteil dar, wenn man vom Anlegen und Löschen von Dateien absieht.

Eine parallele Bearbeitung der Aufrufe würde den Code, sowohl auf der Client- als auch auf der Server-Seite, verkomplizieren und der Gewinn dürfte trotz allem nicht bedeutend sein.

Da FUSE sich um das Cachen der Daten vorbildlich kümmert, sind die in den ersten Versionen von Remotefs vorhandenen Caches im Client nicht mehr vorhanden. Dies wirkt sich sogar positiv aus, vor allen im Bezug auf Multithreading. Der einzige Cache und die damit verbundene Sonderverarbeitung verbleibt beim Öffnen eines Verzeichnisses. Die Status-Daten der darunterliegenden Objekte werden gesammelt und mit der Bestätigung des Aufrufs übertragen. Dies bedeutet eine längere Verarbeitungszeit. Dieser Nachteil wird aber mehr als kompensiert, wenn die Applikation Informationen über die beibehaltenen Objekte anfordert. Langwierige Netzwerkzugriffe entfallen und die gesamte Dauer von Kommandos wie ls -l oder der Aufbau des Dateimanager-Fensters werden drastisch reduziert.

Verschiedene Optionen können an FUSE beim Aufruf des Clients übergeben werden. Damit kann eine höhere Geschwindigkeit vorgetäuscht werden.

Remotefs ist ein schnelles Dateisystem. Es soll ermöglichen, auf leistungsschwachen Geräten, die für den Einsatz im Heimbereich konzipiert wurden, wie z.B. Network Attached Storage (NAS), einer optimale Anbindung zu gestatten. Remotefs läuft auf verschiedenen POSIX-Systemen wie Linux, OpenSolaris, FreeBSD und Mac OS X. Es eignet sich auch, um über das Internet auf einen Server zuzugreifen. Allerdings muss dies über einen SSL- oder SSH-Tunnel geschehen.

Remotefs unterstützt IPv6-Verbindungen und POSIX ACL.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung