У меня есть пара виртуальных файловых серверов, работающих в QEMU / KVM на ProxmoxVE.
Физический хост имеет 4 уровня хранения со значительными различиями в производительности. Они прикреплены как локально, так и через NFS.
Они будут предоставляться файловым серверам в виде локальных дисков, разделенных на пулы и обрабатывающих несколько потоков данных для сети. Моя цель состоит в том, чтобы этот уровень абстракции разумно объединял уровни.
На сайте есть похожий пост: Создавайте домашние автоматические многоуровневые системы хранения с Linux? (Память -> SSD -> HDD -> удаленное хранилище) в котором принятый ответ был предложением отказаться от решения Linux для NexentaStor.
Мне нравится идея запустить NexentaStor. Это почти отвечает всем требованиям.
NexentaStor предоставляет гибридные пулы хранения, и мне нравится идея контрольных сумм. 16 ТБ без лицензионных сборов - тоже огромный плюс. После расходов на оборудование бесплатное - это почти все, на что способен мой бюджет.
Я не знаю, являются ли пулы zfs адаптивными или динамически распределяемыми в зависимости от нагрузки, но это становится неактуальным, поскольку NexentaStor не поддерживает сетевые или блочные драйверы virtio, что является обязательным в моей среде.
Затем я увидел коммерческое решение под названием SmartMove: http://www.enigmadata.com/smartmove.html
И это похоже на шаг в правильном направлении, но я настолько разорен, что трачу их время даже на то, чтобы спросить цитату, поэтому я ищу другой вариант.
Мне нужна реализация Linux, поддерживающая драйверы virtio, и я не понимаю, какое программное обеспечение подходит для этого.
Вы можете попробовать расширить этот экспериментальный проект на github: https://github.com/tomato42/lvmts
Он содержит демон, который обнаруживает, что экстенты lvm используются чаще всего, и перемещает эти экстенты вверх по многоуровневой цепочке хранения.
Один из способов получить это на сервере Linux - использовать модуль ядра flashcache. Это действительно дает вам только один уровень, скажем, SSD поверх Drobo и / или локальных дисков. Я экспериментально использовал это в течение последних нескольких недель здесь, дома, с диском SATA на 500 ГБ и твердотельным накопителем X25-E, чтобы обеспечить LVM, который я затем разрезаю и обслуживаю через iSCSI. Пока все работает очень хорошо.
В FlashCache доступны два метода: сквозная запись и обратная запись. Кэш с обратной записью записывает, но также имеет конструктивный недостаток, который они еще не исправили, что может привести к серьезному сбою системы с неправильным сохранением некоторых данных. Сквозная запись не имеет такой проблемы, но записи всегда сбрасываются на опорный диск.
Я не думаю, что это было бы подходящим для наслоения поверх NFS.
Несколько замечаний о Flashcache: в настоящее время вам нужно создать его с нуля, вам нужно запустить 64-битное ядро (32-битное просто не загружает модуль должным образом), и в моем тестировании до сих пор он работал отлично. Опять же, это было всего неделю или две.