Skip to content

djarek/btrfs-volume-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BTRFS-Volume-Manager Build Status

A responsive and easy to use BTRFS based NAS server management solution

Business justification

BTRFS (B-tree file system) is a copy on write (CoW) filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration. It is a relatively novel filesystem so we decided to try develop a tool for managing volumes so it can be useful in many ways of usage.

State of Art (what are the competitive solutions on the market, what has been achieve so far in that project area on the market)

There are several projects on market which are providing tools for managing BTRFS like RockStor or FreeNAS.

Project scope

Goal / Aims

  • Provide an easy to use interface to manage devices, BTRFS filesystems and snapshots
  • The target user is a sysadmin managing a number of NAS devices
  • The solution should be accessible via web technologies
  • The system has to be secure enough to be useful in enterprise environments

Core features

  • Presentation of basic information about each BTRFS volume
  • Creation and deletion of snapshots & subvolumes
  • Provide the user with basic statistics
  • Allow management of multiple BTRFS-based servers with one utility
  • Allow scheduling of some tasks (e.g. snapshot a certain subvolume every few hours)
  • Provide the user with an easy-to-use SPA type GUI

Optional features

  • Allow viewing of S.M.A.R.T information for each block device on any of the attached servers
  • Management of RAID functionality of volumes
  • Provide an API for easy creation of scripts to automate some tasks (e.g. create a snapshot whenever a certain process starts or stops)
  • Scheduler for handling of incremental backups (through btrfs send/recv)
  • Provide utility for setting up Samba and NFS shares

Project's risks

  • New programming language for programmers
  • New technologies
  • Complex topic
  • Lack of enough time

Techniques & Technologies used to implement your project

  • Go - backend programming language
  • HTML - client-side markup language
  • AngularJS - client-side web application language
  • C - low-level communication with the Linux kernel)
  • MongoDB - NoSQL database

Milestones & Project plan

Gantt Chart

Gantt Chart

Cost & effort calculations

  • Work at home: 3 people x 80 hours = 240 hours
  • Payment: 320h x 60 = 19200
  • Social security and insurance (19,64%): 3771
  • Indirect costs: 0
  • VAT (23%): 5284
  • Product cost: 28254

System architecture

System architecture

Thorough Implementation description along with deployment information

Steps to install

Building the project

Software requirements

  • Go >1.5
  • AngularJS 1.5.x
  • MongoDB 3.2

Conclusions

About

A web based BTRFS volume management solution.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published