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.
- 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
- 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
- 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
- New programming language for programmers
- New technologies
- Complex topic
- Lack of enough time
- 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
- 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
- Go >1.5
- AngularJS 1.5.x
- MongoDB 3.2