Blivet is a free, open-source python module for configuring storage on Linux. It was originally written as the storage backend for Anaconda -- the OS installer used by Fedora and Red Hat Enterprise Linux, among others.

Blivet-gui is a graphical tool for storage management that uses Blivet library. It provides an easy way to create, modify or delete various storage devices. Currently available features includes LVM storage management (including support for LVM cache, LVM RAID or Thin LVM), Btrfs (including support for Btrfs RAID, subvolumes and snapshots), MD RAID, encrypted devices using LUKS and of course support for managing standard disk partitions and filesystems.

libblockdev is a C library supporting GObject introspection for manipulation
of block devices. It has a plugin-based architecture where each technology (like
LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly
with multiple implementations (e.g. using LVM CLI or the new LVM DBus
API). Every plugin is also usable as a standalone shared library.

The goal of this project is to provide a tiny library that would facilitate the common operations with sizes in bytes. Many projects need to work with sizes in bytes (be it sizes of storage space, memory,...) and all of them need to deal with the same issues like:

  • How to get a human-readable string for the given size?

  • How to store the given size so that no significant information is lost?

  • If we store the size in bytes, what if the given size gets over the MAXUINT64 value?