bcache на md или md на bcache

bcache на md или md на bcache

bcacheпозволяет одному или нескольким быстрым дисковым накопителям, таким как твердотельные накопители на основе флэш-памяти (SSD), выступать в качестве кэша для одного или нескольких более медленных жестких дисков.

Если я правильно понимаю,

  • 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 могут быть умными и предусмотреть такие ситуации), но логичным и оптимальным решением будет кэшировать тома, а не блокировать устройства.

Связанный контент