Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Say I have some partitions; one on a SATA drive and one on an SSD. I want to create a "virtual" hybrid disk. Is this possible?

share|improve this question
add comment

4 Answers

up vote 7 down vote accepted

bchache might be what you are looking for. It can act as write through or write back cache.

ZFS and Btrfs also have features to put more often used blocks on flash storage.

share|improve this answer
add comment

There is flashcache. It is used by Facebook to accelerate DB-storage systems.

I haven't tried it yet, so your mileage may vary.

share|improve this answer
add comment

If you have a set of files for which you need low latency, you can establish a RAID-1 volume that mirrors the SSD content on a hard disk. Declare the hard disk component as “write-mostly”, so that the SSD will be favored when reading. For example, if sda is your SSD and sdb is your hard disk, create a partition sda1 that covers the whole drive, create a partition sdb1 of the same size, and create a RAID volume with

mdadm --create -l 1 -n 2 /dev/md0 /dev/sda1 --write-mostly /dev/sdb1
share|improve this answer
    
This is seriously a good catch. It's a straight answer to this on AU: Can I cache an mdadm raid with an ssd? (in which I now mentioned your answer in mine) –  gertvdijk Feb 6 '13 at 21:17
add comment

Since Linux 3.9 dm-cache has been merged into the mainline tree. As per the documentation, it's specifically designed for this purpose.

It aims to improve performance of a block device (eg, a spindle) by dynamically migrating some of its data to a faster, smaller device (eg, an SSD).

It will also provide write caching to some extend:

If writeback, the default, is selected then a write to a block that is cached will go only to the cache and the block will be marked dirty in the metadata.

About the virtual hybrid disk you'd like to see:

This device-mapper solution allows us to insert this caching at different levels of the dm stack, for instance above the data device for a thin-provisioning pool.

In other words, the dm-stack lets you use any block device/partition to become a single cached virtual disk as a storage device, just like a /dev/md0 in a software raid set.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.