RAID из USB флешек / Habr

Нашел я тут пакетик с USB флешками разных лет использования. Как обычно, в работе только две самые последние и самых больших размеров. Остальные — тут.

И возникла идея сделать из них RAID, например, просто «concatenated disk», ибо в OSX это делается очень просто. Идеи тут минимум, но было интересно попробовать.

Размеры от 64 мегов до 32 гигов.

Купил я вот такой девайс на двенадцать сосков — Satechi 12 Port USB Hub with Power Adapter & 2 Control Switches.

Втыкаем…

И запускаем Disk Utility. Все флешки, вроде, видятся.

Создаем диск типа «concatenated disk» с именем «Crazy RAID» и добавляем туда флешки, предварительно их отформатировав в HPFS+ для единообразия.

Подтверждаем…

Ждем минут пять и готово.

В системе видится.

Можно теперь чего-нибудь туда скопировать.

Конечно, конструктивного применения тут реально ноль, ибо все флешки разные и кроме их объединения в один диск сложно что-то еще сделать в плане RAID. Скорость записи будет определяться той флешкой, на которую идет запись в данный момент. При параллельном чтении, возможно, будет ускорение.

Но выглядит приколько!

habr.com

Нужен ли RAID на USB?

Количество имеет свойство переходить в качество. Характеристики про­изводительности универсальной последовательной шины не являются исключением из этой фундаментальной истины. Достижение планки в 10 Гб/сек открыло для USB3.1 ряд новых сфер применения, для которых ранее эта технология считалась недостаточно производительной. Нас интересует насколько эффективным будет RAID-массив, подключенный к шине USB3.1.

Сразу оговоримся, что эта статья не призвана дать однозначный ответ. Сегодня мы построим несколько теоретических моделей, для практи­че­ско­го подтверждения или опровержения которых потребуется доста­точ­но большой цикл публикаций и бенчмарок. Архитектура и стратегия функционирования RAID-контроллеров, как правило является секретом производителя. Этим она отличается от унифицированных моделей Bus Master IDE и AHCI, программная модель которых открыта и унифицирована «с точностью до бита».


Рис.1 Плата USB RAID и контроллер ASM1352R: режимы RAID устанавливаются переключателями, согласно нанесенной таблице, а дроссели импульсных регуляторов подчеркивают энергоэффективный дизайн

Постановка задачи

Попытка оценить ситуацию «в целом» приведет к беспредметным рассуждениям. Поэтому, к общему будем идти от частного и рассмотрим конкретные типы операций в конкретных типах RAID массивов при фиксированном количестве накопителей.


Рис 2. Функциональная схема контроллера ASM1352R: режим отладки на основе технологического UART — неизменный атрибут контроллеров ASMedia

Рассмотрим гипотетическую платформу, оборудованную интерфейсом USB3.1 к которому подключен RAID контроллер. В свою очередь, к RAID контроллеру подключено два накопителя. Интерфейс USB3.1, связывающий хост-компьютер и контроллер, обеспечивает трафик 10 гигабит в секунду. Два накопителя стандарта SATA III, подключенных к контроллеру, способны создать трафик 2*6=12 гигабит в секунду. Указаны теоретические величины, также, пока не учитываем фактор избыточного кодирования при передаче данных. Для упрощенной модели, примем,

что суммарный трафик, создаваемый накопителями, примерно в 1.2 раза выше, чем пропускная способность интерфейса между контроллером и хост-компьютером.

 

Уточнение постановки задачи

Как было сказано выше, для выполнения предметного анализа необходимо уточнить уровень RAID массива и вид операции. Для начала анализировать будем два простейших вида массивов: RAID0 и RAID1, и только в вариантах с двумя накопителями. Напомним базовые принципы.

RAID0 (strip) обеспечивает увеличение производительности за счет распараллеливания операций. Дисковое пространство разделяется на блоки, типовой размер таких блоков от 0.5 до десятков килобайт, в зависимости от реализации. Четные блоки хранятся на первом накопителе, нечетные на втором. При обработке запроса на чтение или запись, каждый из накопителей обрабатывает «свои» блоки, в теории, параллельно и синхронно. Теоретически, одинаковые накопители должны выполнять одинаковые операции за одинаковое время. На практике, в действие вступает фактор разброса параметров, наличие

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

RAID1 (mirror) обеспечивает надежность хранения за счет дублирования информации на двух накопителях. Выполнение запроса на запись будет состоять в записи одинаковых данных по одинаковому адресу, на оба диска. Примечательно, что в случае чтения, RAID1 может повышать производительность, используя параллельное чтение двух дисков. Но поскольку деления на четные и нечетные блоки в данном случае нет, в отличие от RAID0, читаемые диапазоны секторов для двух дисков здесь будут различны, что требует большего интеллекта от контроллера и позволяет говорить об асинхронной работе накопителей.


Рис 3. Еще один вариант реализации RAID-массива, сформированного на USB-шине с помощью контроллера ASM1352R от ASMedia Technology

Для двух простейших уровней RAID-массивов, рассмотрим по две операции: чтение и запись. Итого, 4 случая, для каждого из которых попытаемся смоделировать влияние дефицита USB-трафика.

RAID0, чтение данных

Этот и следующий случаи в наибольшей степени критичны к дефициту шинного трафика. Поскольку данные расположены с повторяющимся чередованием, от контроллера требуется достаточно мало: синхронный и параллельный запуск операций на двух накопителях. Интеллект контроллера, необходимый для сборки одного результирующего блока из двух фрагментов, прочитанных с двух дисков, в данном случае минимален. Поэтому, есть основания считать, что критичность к остальным факторам, в том числе трафику шины USB, здесь будет максимальной.

RAID0, запись данных

Этот случай повторяет ранее рассмотренный, за исключением направления передачи данных.

RAID1, чтение данных

Напомним, смысл RAID1 в надежности хранения данных, а прибавка производительности за счет параллелизма чтения здесь является только бонусом, требующим дополнительного интеллекта от контроллера и асинхронной работы накопителей (в отличие от RAID0). Есть основания полагать, что полнота реализации такой прибавки здесь в большей степени зависит от локального интеллекта контроллера, чем от шинного трафика USB.

RAID1, запись данных

Это самый интересный случай. Поскольку операция записи дублируется для двух накопителей и записываемые данные совпадают, нет смысла дважды передавать по USB интерфейсу одинаковые данные. Если RAID контроллер «достаточно умен», чтобы учесть это, требования к трафику универсальной последовательной шины сократятся вдвое, до уровня одного накопителя.

 

Фактор интеллекта

Очевидно, если шинный трафик в дефиците, то им нужно распорядиться рационально. Одним из примеров такого подхода является технология

Bulk Streams, реализованная в третьем поколении USB. Контроллеру предоставляется информация о нескольких потоках запросов ввода-вывода (а не только одном текущем запросе). Это дает возможность выполнить последовательность операций ввода-вывода в таком порядке, который обеспечит максимальную производительность. Практика показывает, что сортировка очереди команд NCQ не потеряла своей актуальности даже с приходом SSD дисков.


Рис. 4 Технология Bulk Streams в действии: накопителю доступна информация о нескольких потоках запросов ввода-вывода одновременно, что дает возможность оптимизировать последовательность выполнения операций чтения и записи

Вместо послесловия

Нашу упрощенную модель придется несколько откорректировать, если топология USB-подключений насыщена и в распоряжении контроллера дисков находится только часть теоретического трафика USB. Наличие сбойных или долгочитаемых секторов также вносит свои поправки, даже после их успешного

ремапа. А более фатальные ошибки, сопровождающиеся переходом накопителя в состояние таймаута на несколько секунд, сделают все рассуждения о производительности бессмысленными. Именно поэтому, анализ функционирования RAID массива должен быть комплексным. Звучит банально, но верно…

composter.com.ua

Как настроить систему RAID с помощью USB-накопителей в качестве носителя Flip Linux

Q # 1: Можете ли вы настроить RAID-систему с помощью USB-накопителей в качестве носителя

Вы должны иметь возможность использовать любые устройства хранения блоков в RAID. Любые стандартные указания по настройке RAID с использованием жестких дисков SATA должны применяться и при использовании USB-накопителя. Вам нужно будет настроить его так, чтобы USB-устройства были собраны как члены массива RAID.

Q # 2: какое программное обеспечение следует использовать

Я бы использовал программное обеспечение mdadm которое обычно входит в большинство дистрибутивов Linux.

пример

 $ sudo mdadm --create --verbose /dev/md0 --level=1 /dev/sda1 /dev/sdb1 mdadm: Note: this array has metadata at the start and    may not be suitable as a boot device. If you plan to    store '/boot' on this device please ensure that    your boot-loader understands md/v1.x metadata, or use    --metadata=0.90 mdadm: size set to 976629568K Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. 

Измените устройства на устройства, используемые USB-накопителями. Затем соберите массив:

 $ sudo mdadm --assemble --scan $ sudo mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 

После сборки:

$ sudo mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri Jul 5 15:43:54 2013 Raid Level : raid1 Array Size : 976629568 (931.39 GiB 1000.07 GB) Used Dev Size : 976629568 (931.39 GiB 1000.07 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Jul 5 21:45:27 2013 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : msit01.mysolutions.it:0 (local to host msit01.mysolutions.it) UUID : cb692413:bc45bca8:4d49674b:31b88475 Events : 17 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1

Теперь отформатируйте массив RAID с файловой системой:

 $ sudo mke2fs /dev/md0 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 61046784 inodes, 244157392 blocks 12207869 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 7452 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done 

Q # 3: Где я могу найти хорошие учебники / руководства для RAID-систем

Простой поиск в Google приведет к множеству опций. Например, этот: Учебник: mdadm Software RAID для Ubuntu / Debian Systems .

fliplinux.com

alexxlab

leave a Comment