Simple Partitioning with Ansible Storage Role

There are probably not too many people that need to do disk partitioning and storage space management on a daily basis. For most of us it is something low level that needs to be set up just once and then promptly forgotten.

Strangely enough the Ansible Storage Role can be very useful for both of these groups of people. Here, I would like to try and explain why and how to use it.

Please remember that Storage Role operations are often destructive – the user can easily lose data if he is not being careful. Backup, if possible, think twice if not.

What is Ansible and why should I care?

Imagine you need to update several dozens of systems. This would mean running the same task on multiple machines over and over. Connect to one machine, run the command, wait for it to finish, check the results, connect to another machine…

Continue reading “Simple Partitioning with Ansible Storage Role”

The road to UDisks 2.9.0

While the world is going crazy these days we continue to march in full strength towards the next UDisks release. It’s still a couple of weeks away and there are some interesting features still pending to be merged. With all the changes we’re bound with the promise to keep the public D-Bus and C API stable and that won’t change even that there were major changes under the hood. Overall we’ve been focusing on general stability and predictability, fixing various race conditions. But we’ve also added a couple of new interesting features.

Configurable mount options

UDisks carries a set of predefined mount options for well-known filesystems. With the primary focus on desktop use the defaults were chosen to fit typical use cases. For example the vfat filesystem defaults define the flush mount option being a typical filesystem for removable flash media and it’s important to make write operations more synchronous to prevent users tearing their drives out while kernel still writing back the cached data. Such defaults may not suit everyone and users were asking for a way to change that. We’ve even been receiving contradicting merge requests to add or remove certain mount option. Some users on public forums even suggested modifying the udisksd binary how ridiculous may that sound.

Continue reading “The road to UDisks 2.9.0”

bscalc – storage size calculator


In the spring of this year, a new major version of the libbytesize library was released. And as part of the release this small but very useful library was amended with a small but very useful tool. It is called bscalc where the first two letters BS stand for Byte Size, of course, and calc suggests it does some calculations.

In fact, it is a simple calculator that works with storage sizes. Computers are good at working with big and long numbers representing sizes in bytes, humans are not. The simplest and probably most common problem is a question like “What the hell does 9663676416 actually mean?” Or the opposite case when some input has to be in bytes (or KiB, MiB,…) and one wants to specify say 12 GiB. But there are more complex questions like “How many 512B sectors does this disk have?” or “If I backup this data on blue-rays, how many will I need and how well will the data fit?”.

Continue reading “bscalc – storage size calculator”

Release time again for libblockdev and udisks!

A new month has come and that means new releases of libblockdev and UDisks2 have come too. We are trying to stick to the golden rule of successful open-source projects – “Release early, release often.” – and even if there are no major changes and no new major features, we do regular releases every month. Usually the target date is the end of the month which then in reality means a new release is done at the beginning of the month that follows. And that is exactly what happened this time too. libblockdev-2.15 was released on December 1st and UDisks-2.7.5 on December 4th.

Continue reading “Release time again for libblockdev and udisks!”

UDisks 2.7.0 released

A new upstream version of UDisks2 was released on Friday (June 2nd) — version 2.7.0. People following the recent development of UDisks2 and our recent blog posts [1] [2] should know that this is a big version bump which can only mean one thing: the pull request changing UDisks to use libblockdev where possible was merged! Which is almost 100 commits with changes.

Continue reading “UDisks 2.7.0 released”

UDisks to build on libblockdev!?

As a recent blog post mentioned, there is a pull request for UDisks proposing the master-libblockdev branch to be merged into master. What would that mean? master-libblockdev is a parallel branch we have been working on in the last few months which has custom code in UDisks replaced by calls of the libblockdev library where possible. So for things like creating partitions, setting up MD RAID, LVM, etc. it’s not using the CLI tools, but instead calls libblockdev functions.

Continue reading “UDisks to build on libblockdev!?”

Reporting and monitoring storage actions

Two recent blog posts are focusing on reporting and monitoring of storage events related to failures, recoveries and in general device state changes. However, there are other things happening to storage. The storage configuration is from time to time changed either by administrator(s) or automatically as a reaction to some trigger. And there are components of the system, together with its users, that could/would benefit from getting the information about such changes.

Continue reading “Reporting and monitoring storage actions”

Storaged merged with UDisks, new releases 2.6.4 and 2.6.5

Quite a lot has changed since our last blogpost about the storaged project. The biggest news is that we are no longer working on Storaged. We are now “again” working on UDisks1.

Storaged originally started as a fork of udisks project in 2015 and had a lot of attention and development since then. Storaged even replaced UDisks in Fedora 25 providing backwards compatible API and new features.

Continue reading “Storaged merged with UDisks, new releases 2.6.4 and 2.6.5”