next up previous
Next: Principle Up: Design overview of the Multicasting Previous: Introduction

Goals

The specific goals my filesystem is going to meet are:

  1. Provide fast method of populating entire filesystem to numerous clients simultaneously over Ethernet network using multicasting techniques
  2. Provide reliable method of updating files on every machine using mmsnfs on the local network
  3. Ensure temporary fail-over for system files via network in case of damaged storage media
  4. Optinally give client machines a very limited permissions to modify distributed files, even locally, to avoid unneeded configuration changes causing further global configuration changes leaving system inconsistent

The use of multicasting is motivated by rapidly increasing network bandwidth, and also by commonly used star-topology of networks. A quick observation reveals, that in such a networks the most common communication scheme is client-server one, with one dedicated machine being server and all the others being clients. Since client-to-client transactions are very rare, all the data passes the physical link between server machine and its neighbour switch/hub device, making this link eventually congested. Other physical links are usually either idle or moderately loaded. Heavy use of multicast packets for transferring data between server and clients does not introduce any additional overhead on the critical link, since unicast packets still would have passed it. But additional overhead is put on the other links. It won't hurt, because most of the data passing them sooner or later will pass the critical server link. The cost of filtering unwanted packets by clients is very low.

By using multicasting for transferring filesystems, this task can be accomplished efficiently even with 100BaseTX 100Mbit Ethernet, which is very widely used in small networks. Using gigabit Ethernet hardware will increase transfers considerably and such a link can be saturated only by fast enough harddisk. Nevertheless mmsnfs is not designed to be a scalable solution for large networks. It's intended to be a flexible solution for small ones.


next up previous
Next: Principle Up: Design overview of the Multicasting Previous: Introduction
root 2004-01-19