Provide good hybrid storage management in BTRFS
In ye good olde days, mainframe and mini storage systems had the ability to grade various storage systems with a cost. This cost would then be used to allocate disk blocks per their use.
i.e. blocks that are accessed the most would be migrated up the storage systems to higher cost (i.e. faster access) while blocks that are seldom used are migrated to lower costs (i.e. slower access).
Bringing this up to ye moderne tymes, we could have storage from fast to slow as follows:
1 - RAMdisk
2 - SSD
3 - Fibre Attached Storage/SAS etc
4 - SATA arrays
5 - Slower/cheaper SATA disks
6 - Tape
The ranking is up to the user and should be capable of many more levels than this. Disk blocks then have a "heat" associated with them which is used to allocate them to the relevant level of storage.
There is already seems to be some work within BTRFS to provide this, but it appears to only have 2 levels of storage (SSD/mechanical disk?) so is much less flexible than it could be.
This, along with de-dupe, would be a great building block for virtual storage pools. It would provide an huge amount of flexibility to admins to build storage systems which automatically allocate blocks. Hot adding a new type of storage with a different access speed to the pool would kick in a bit of disk re-allocation. No messing around - all work done by the filesystem.
Even for the home/desktop user, this would provide benefit. A small SSD along with larger SATA disk would provide fast access to the most highly requested blocks, while my photos/music/video etc would largely be stored on the SATA drive (especially the wife's music which I *never* listen to)
Responses
HSM (heirarchical storage management) is a wonderful thing, but...
In ye good olde days, the mainframe had a whopping two levels of storage: disk and tape. You are asking for 6 or 7 or more, possibly without considering the inevitable consequences: users will configure all 6 tiers, and then wonder why their fire-breathing 40-core server is slower than a Pentium II--while it is madly hammering away at its many disk(-like) systems evaluating the 'heat' of every block/extent and migrating it up or down 1 tier at time, for a relatively subtle change in performance.
Really, I suspect that 2 tiers is enough and 3 is the most that should be considered--though what those tiers are should be entirely (and easily) user-configured (some applications, it could be RAMdisk vs SSD; other, SSD vs. 7.2k SATA; others, 10k SAS/RAID-10 vs. 5.4k SATA/RAID-6).
Tape, sadly, is probably more than can be justified in a file system given the layering approach to Linux storage; asking them to jam tape-library support into the file system to handle the last stage of HSM doesn't strike me as very likely to work. Maybe a generic plug-in for external/3rd-party "near-line" storage system drivers? Also the performance implications of using devices with wait times in the minutes in the file system layer could get a little scary unless handled very, very carefully.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
