Если я правильно понимаю,
- SSD * может быть назначен для кэширования нескольких резервных HDD, а затем полученные кэшированные устройства могут быть объединены в RAID с помощью mdadm
или - Несколько жестких дисков могут быть объединены в RAID-массив в одно резервное устройство md, а SSD может быть назначен для кэширования этого устройства.
Мне интересно, какой подход разумнее. Мне приходит в голову, что выращивание RAID5/6 может быть проще с помощью той или иной техники, но я не уверен, какой!
Существуют ли веские причины (например, увеличение резервного хранилища или что-то еще) для выбора одного подхода вместо другого (для большой некорневой файловой системы, содержащей резервные файлы виртуальной машины)?
* Под «SSD» я подразумеваю некое избыточное SSD-устройство, например RAID1 из двух физических SSD.
решение1
Я думаю, что кэширование всего md-устройства имеет наибольший смысл.
Использование bcache для кэширования всего md-устройства сводит на нет всю идею RAID, поскольку создает еще одну точку отказа.
Внешние сбои SSD-дисков случаются относительно редко, а bcache можно перевести в режим
writethrough
/writearound
(в отличие отwriteback
режима ), в котором данные не хранятся только на устройстве кэширования, а сбой кэша не уничтожает информацию в RAID, что делает его относительно безопасным вариантом.Другим фактом является то, что существуют значительные вычислительные издержки мягкого RAID-5; при кэшировании каждого вращающегося члена RAID по отдельности компьютеру все равно приходится пересчитывать все четности, даже при попаданиях в кэш.
Очевидно, что вам придется пожертвовать некоторым дорогим пространством на SSD, если вы будете кэшировать каждый вращающийся диск по отдельности.- Если только вы не планируете использовать кэш SSD-накопителя RAID.Оба варианта относительно не влияют на время процесса наращивания - хотя вариант с раздельным кэшированием вращающихся дисков имеет потенциалпомедленнееиз-за увеличения автобусного движения.
Это быстрый и относительно простой процесс настройки bcache для извлечения SSD-диска, когда вам нужно его заменить. Благодаряблокидолжна быть возможность переносить настройки рейда в обоих направлениях на месте.
Также следует помнить, что на данный момент большинство (все?) дистрибутивов Live-CDне поддерживаюbcache
, поэтому вы не сможете просто получить доступ к своим данным с помощью таких инструментов, независимо от выбранного вами варианта bcache
макета mdraid
.
решение2
Я думаю, что разумным подходом будет кэширование полученного MD-устройства.
bcache предназначен для последовательного чтения и записи.
Если вы выполняете bcache для каждого устройства по отдельности, то, по логике вещей, несколько устройств, подключающихся к MD, находящемуся в режиме raid или striped, будут, с точки зрения bcache, постоянно записывать случайные блоки.
В то время как том bcached MD будет выглядеть как обычно, записывая файлы на том, а не случайные блоки на несколько устройств.
Весь смысл аппаратного и программного рейда заключается в том, чтобы выполнить чередование данных на внутреннем сервере таким образом, чтобы полученная файловая система выглядела как обычный том.
Это может быть неправильно (поскольку разработчики bcache могут быть умными и предусмотреть такие ситуации), но логичным и оптимальным решением будет кэшировать тома, а не блокировать устройства.