LSF/MM is a working meeting rather than a conference, so this was less a presentation than an argument I wanted to have with the people who maintain the layers underneath.

System Storage Manager is a Python tool that puts one command line interface over LVM, btrfs, mdraid, encrypted volumes and external storage, using a single device-pool-volume-snapshot model for all of them. It is importable as a module as well, so other tools do not have to shell out to it to get at the same abstraction.

I went through the backend architecture and the commands, create, list, remove, resize, check, add and snapshot, and then got to the part I actually wanted input on. SSM drives most of its backends by calling their command line tools rather than their libraries, because that is what is reliably available, and that means parsing output written for humans that nobody promised would stay the same. The behaviour underneath is not consistent either. The same operation means slightly different things to LVM and to btrfs, and an abstraction over both either papers over that or admits it.

The open questions I brought were library support, tighter system integration, and whether partitions and disk images should become backends in their own right.