Skip to content

A robust distributed Network File System implementation that enables seamless file operations across networked systems. Built as part of the Operating Systems and Networks course at IIIT Hyderabad.

License

Notifications You must be signed in to change notification settings

avi1o1/AdvantEdge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AdvantEdge NFS 🌐

A robust distributed Network File System implementation that enables seamless file operations across networked systems. Built as part of the Operating Systems and Networks course at IIIT Hyderabad.

🌟 Features

  • Distributed Architecture 🏗️

    • Naming Server for centralized coordination
    • Multiple Storage Servers for distributed data storage
    • Client interface for seamless interaction
  • Core Operations 📝

    • File/Directory Creation and Deletion
    • Synchronous and Asynchronous File Writing
    • File Reading and Information Retrieval
    • Audio File Streaming
    • Inter-Server File/Directory Copying
  • Advanced Capabilities 🚀

    • Multiple Client Support with Concurrency Control
    • LRU Caching for Optimized Performance
    • Efficient Search using Advanced Data Structures
    • Comprehensive Error Handling
    • Data Replication and Backup
    • Server Recovery Management

🛠️ Technical Architecture

Components

  1. Naming Server

    • Central coordinator for the entire system
    • Manages directory structure and file locations
    • Handles client request routing
    • Implements LRU caching and efficient search
  2. Storage Servers

    • Physical storage management
    • File operations execution
    • Data replication support
    • Asynchronous write capabilities
  3. Clients

    • User interface for file system operations
    • Direct communication with storage servers
    • Support for concurrent operations

🚀 Getting Started

Prerequisites

  • C compiler (gcc recommended)
  • POSIX-compliant system
  • TCP/IP network connection

Basically any Unix-like system should work. If you're on Windows, you can use WSL or a virtual machine, but your mileage may vary.

Building

make                        # Build the entire project
make clean                  # Clean up build artifacts

Running

  1. Start the Naming Server

    ./naming_server.out

    Enter the port and the naming server will start running.

  2. Start the Storage Server

     ./storage_server.out <naming_server_ip> <naming_server_port>

    You can start as many storage servers as you want. The naming server will automatically detect and register them.

  3. Start the Client

    ./client.out <naming_server_ip> <naming_server_port>

    Use the client interface to perform file operations.

📂 Project Structure

.
├── LICENSE
├── Makefile
├── README.md
├── most_wanted
├── nfs
│   ├── client
│   │   ├── client.c
│   │   ├── client.h
│   │   └── revenge.sh
│   ├── common
│   │   ├── include
│   │   │   ├── colors.h
│   │   │   ├── dataTypes.h
│   │   │   ├── defs.h
│   │   │   ├── errors.h
│   │   │   ├── hashMap.h
│   │   │   ├── linkedList.h
│   │   │   └── network.h
│   │   └── src
│   │       ├── errors.c
│   │       ├── hashMap.c
│   │       ├── linkedList.c
│   │       └── network.c
│   ├── naming_server
│   │   ├── cluster.c
│   │   ├── cluster.h
│   │   ├── commSS.c
│   │   ├── commSS.h
│   │   ├── fileSystem.c
│   │   ├── fileSystem.h
│   │   ├── naming.c
│   │   └── naming.h
│   └── storage_server
│       ├── storage.c
│       └── storage.h
└── protocols.md

👥 Team Members

  • Anirudh Sankar
  • Arihant Tripathy wakatime
  • Aviral Gupta
  • Mohit Kumar Singh

🙏 Acknowledgments

  • Operating Systems and Networks Course, IIIT Hyderabad
  • POSIX standards
  • Claude and ChatGPT for inspiration
  • Beyoncé

📜 License

Distributed under the GNU General Public License v3.0. See LICENSE for more information.


Built with ❤️ at IIIT Hyderabad

About

A robust distributed Network File System implementation that enables seamless file operations across networked systems. Built as part of the Operating Systems and Networks course at IIIT Hyderabad.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •