Реализация в linux кеширования чтения/записи одного block-device на основе другого?

Подскажите программное решение по созданию блочного устройства (достаточного для монтирования файловой системы):

* создаваемое на основе двух (или может больше, но это уж слишком) блочных устройств (ну а файлы можно через loop подключить) разного размера

* одно из этих блочных устройств — основное, остальные промежуточные — кеширующие (на них временно хранятся записи)

* кеширующие хранилища могут иметь размер, отличный от основного (см. ниже)

* возможность определить минимальное и максимальное время хранения данных в 'кеше', в т.ч. 'не ограничено, до исчерпания места' и 'по требованию'

т.е. запись в блочное устройство может оставаться в нем и не переноситься на основное устройство неограниченное время

* независимые настройки кеширования для записей и чтений

* высокая производительность (обработка большого количество запросов на мелкие блоки данных и линейного чтения/записи больших)


в идеале:

* возможность изменения конфигурации на лету, когда устройство блокировано (смонтирована файловая система)

* возможность каскадного наложения кеширующих хранилищ, немного дикий например:

сверхбыстрое (RAM) -> быстрое (SSD) -> медленное (HDD) -> основное очень медленное (Сетевое хранилище)


Сверх идеал:

* возможность отключения основного хранилища без остановки работы (до тех пор пока не будет запрошены данные вне кеша естественно)

* возможность экспорта 'снапшота данных, ожидающих изменений' в виде файла и для 'ручного' применения этих изменений на основное хранилище


Нечто дикое:

* множественные подключения по сети к основному хранилищу (понятно что только один узел в момент времени имеет доступ на запись)


p.s. по отдельности я что то такое видел… на основе DRBD/LVM и т.д. но, к примеру LVM оказался невероятно медленным при использовании снапшотов на запись (почти все что описал можно было бы сделать кроме сетевых фишек), DRBD — организация блочного устройства с синхронизацией между узлами, но нельзя получить снапшот и загрузить его самостоятельно хотя это и сомнительная возможность) и т.п.
  • Вопрос задан
  • 2786 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы