GithubHelp home page GithubHelp logo

presto412 / storev Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 4.0 422 KB

Storage Virtualization implemented as a Distributed FS with de-duplication and replication

Shell 12.56% Dockerfile 1.42% JavaScript 50.80% CSS 6.65% HTML 28.57%
storage-virtualization docker hashes replication hacktoberfest

storev's Introduction

StoreV

A Storage Virtualization implementation, that considers backups and de-duplication.

Introduction

In this project, I had deployed four storage servers via DigitalOcean in Amsterdam, Bangalore, Toronto and Singapore data centres. The central server is in New York. The aim was to replicate a newly uploaded file and store it in two of the four servers. When there is a download request, the file is downloaded from the server that is the closest geographically. Using this technique, users do not have to be worried about the specific location of their file. It allows the pooling of physical storage from multiple storage devices into what appears to be a single storage device being managed from a central console. The use of hashes in this project prevents the user from adding redundant data, ie, before uploading a file, hashing is performed, to check if it exists in the system. This solves data-deduplication. An example metadata storage is given here

Architecture

arch

Stack

  • Node.js(Express), EJS Templates
  • Docker, Docker Swarm

Development Steps

  • Create a .env file like the .env.example file
  • Get an access key from IPSTACK (It's free)
  • Set the NODE_ENV value to dev
  • Run ./scripts/dev-master.sh
  • Go to localhost

Deploying to production

  • Clone the repository in a local system
  • Make sure you've ssh installed and configured
  • Set up all the servers, and add your public key found in .ssh/
  • Create a .env file like the .env.example file, with all corresponding IPs
  • Set the NODE_ENV value to prod
  • Setup docker, pull the images and start the network
    ./scripts/prod-master.sh
  • Check out port 3000 on your central IP and it should be running

storev's People

Contributors

dependabot[bot] avatar marcodeanda avatar mkpath2015 avatar presto412 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

storev's Issues

Add some cool CSS to the UI

Currently, the UI is pure HTML and solves functionality. You can add some CSS to make it look good!
Here's how it currently looks:
image
image

Any improvements appreciated!

Add Authentication to the project

You can utilise Passport and add signup/login functionality to the project. The file list view should then be able to display only what the user has uploaded. Since auth requires a database, you can pick up issue #5 as well. Happy hacking!

Refactor index.js and clean-up code

All the backend code is in a single file! This stinks. Here's your chance to do some cool refactoring and celebrate Hacktoberfest! The code is fully functional, all you have to do is run a linting program and move code around. If you have tons of time, you can migrate it to TypeScript as well!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.