Introduction rfsd librfs grfs Evaluation Conclusion and Future Work Remote File System Suite Softwarepraktikum f¨ ur Fortgeschrittene Michael Kuhn Parallele und Verteilte Systeme Institut f¨ ur Informatik Ruprecht-Karls-Universit¨ at Heidelberg 2009-02-05 1 / 24
24
Embed
Remote File System Suite - hps.vi4io.org · 1 Introduction 2 Remote File System Daemon 3 Remote File System Library 4 Global Remote File System 5 Evaluation Evaluation 6 Conclusion
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Remote File System SuiteSoftwarepraktikum fur Fortgeschrittene
Michael Kuhn
Parallele und Verteilte SystemeInstitut fur Informatik
Ruprecht-Karls-Universitat Heidelberg
2009-02-05
1 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
1 IntroductionIntroduction
2 Remote File System Daemon
3 Remote File System Library
4 Global Remote File System
5 Evaluation
6 Conclusion and Future Work
2 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Introduction
FUSE
Goal was to implement a global network file system
Needed to implement the underlying network file system first
Should be implemented as a FUSE file system
Runs in user spaceRelatively easy to implementRelatively easy to maintain
3 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Introduction
Overview
rfsd – Remote File System Daemon
Low-level network file system
librfs – Remote File System Library
Abstracts protocol implementation
rfsc – Remote File System Client
Basically a simple throughput and metadata benchmark
grfs – Global Remote File System
High-level global network file system
4 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
1 Introduction
2 Remote File System DaemonMotivationOverviewImplementation
3 Remote File System Library
4 Global Remote File System
5 Evaluation
6 Conclusion and Future Work
5 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Motivation
A separate protocol was designed
Existing protocols did not meet the requirements
SSH
Does not support separate control and data channelsData encryption makes transfers too slow
Not possible to deactivate the encryption
FTP
Only possible to write a complete file or append data to itFile listings are hard to parse, because their format is notwell-defined
6 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Overview
Implement our own protocol
Separate control and data channels
No encryptionControl channel can be encrypted via SSH forwarding
Should be as fast as possible
Microscope pumps out 1 GB/s6 · 2 servers⇒ 100-200 MB/s
Should be as transparent as possible
Use underlying local file systemDo not stripe files across servers
Should be as safe as possible
Support replication
7 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Implementation
Basically provide remote access to the local file system
Protocol very similar to POSIX
pread(), pwrite(), . . .
Plus some fancy features, of course :-)
Fully multi-threaded
Each connection handled in its own threadLong-running operations do not block other connections
Background replication
Master-slave conceptOne master, multiple slavesAll operations are replicated in a background threadWrite operations are barriers
We do not need to allocate additional memory for backgroundreplicationWe do not need to read from the file to preserve memory(race conditions)
8 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
1 Introduction
2 Remote File System Daemon
3 Remote File System LibraryMotivation
4 Global Remote File System
5 Evaluation
6 Conclusion and Future Work
9 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Motivation
Hide all the “ugly” implementation details :-)
Good error reporting via GError
Part of GLib
Some operations require multiple steps
For example: rfs read(), rfs read do(), rfs read end()
10 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
1 Introduction
2 Remote File System Daemon
3 Remote File System Library
4 Global Remote File SystemOverview
5 Evaluation
6 Conclusion and Future Work
11 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Overview
Merge multiple file systems into one global namespace
Example:
serv1 has directory /foo, serv2 has directory /bar
$ grfs serv1:6666 serv2:6666 /grfs
$ ls /grfs
> foo bar
12 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
1 Introduction
2 Remote File System Daemon
3 Remote File System Library
4 Global Remote File System
5 EvaluationEvaluation
6 Conclusion and Future Work
13 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Evaluation
The next benchmark is local
That is, client and server were started on the same machine
14 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
1 Introduction
2 Remote File System Daemon
3 Remote File System Library
4 Global Remote File System
5 Evaluation
6 Conclusion and Future WorkFuture Work
23 / 24
Introduction rfsd librfs grfs Evaluation Conclusion and Future Work
Future Work
Server-side replication X
The client – that is, the Global Remote File System – used todo this
Support for High Availability X
Global Remote File System should continue working if serversgo offlineSimply use remaining servers, providing a partial view of theglobal file systemReconnect on SIGHUP