bscalc – storage size calculator

Introduction

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”

Storage event reporting and monitoring – PoC

In the previous blog post we have presented a proposal for reporting and monitoring storage-related events using journald and structured logging. To test if the proposal is viable we need some proof of concept. Such a PoC should demonstrate the complexity of the proposed solution as well as the sufficiency of the proposed set of stored (logged) items and the catalog entry.

Continue reading “Storage event reporting and monitoring – PoC”

Reporting and monitoring storage events

With any type of storage failures and errors happen. Depending on the setup and the their extent such failures and errors might be anything from mere annoyance to critical import. However, they all have one thing in common — they need to be properly reported so that counter-actions and fixups (e.g. replacing a failed drive, restoring data from a backup, etc.) can happen.

Continue reading “Reporting and monitoring storage events”