В продукте UDS BAUMSTORAGE используется две файловые системы: обычная функциональная и быстрая.
Обычная функциональная файловая система
Функционал обычных пулов предоставляется обычной функциональной файловой системой (ФС) BAUMSTORAGE. Ключевой особенностью данной ФС является использование технологии двойной записи COW. Суть данного алгоритма заключается в том, что системой выделяется новый блок каждый раз, когда выполняется новая запись или изменение ранее записанных данных. Благодаря чему файловая система находится всегда в консистентном состоянии: блок либо удачно записан и на него установлен указатель в дереве адресации, либо в процессе записи произошел сбой и указатель указывает на старый блок. Для защиты данных от сбоя также применяется раздельное хранение данных и метаданных. Целостность метаданных и данных подтверждается контрольными суммами. При чтении любого блока вычисляется его контрольная сумма, которая сравнивается с сохраненной, и в случае расхождения исходный блок восстанавливается из дублирующих блоков.
На уровне дискового массива (пула) ФС поддерживает практически все распространенные типы (уровни) избыточности – RAID 0, 1, 5, 6. Также поддерживается уровень избыточности с выделением трех дисков под четность. В BAUMSTORAGE он называется B3. Поддерживаются и комбинированные типы: RAID 10, 50, 60, B30. Дисковые пулы собираются из рейд-групп – набора дисков, блоки которых выделяются под хранение данных и контрольных сумм. Комбинированные типы формируются добавлением к первой новых рейд-групп. При помощи добавления рейд-групп также выполняется расширение пространства пула. ФС позволяет создавать на пулах как блочные (тома), так и файловые (файловые системы) ресурсы.
Кэширование операций записи выполняется при помощи добавления к пулу выделенного производительного SSD диска, на который ФС записывает данные, из которых собирает страйп (stripe) для записи на пул, после чего данные записываются на более медленные диски пула. Данные в кэше записи хранятся в виде журнала транзакций. При отсутствии выделенного диска под кэш записи, ФС выделяет для записи журнала транзакций место на основном пуле, что приводит к уменьшению его производительности. Применение дискового кэша записи в данном случае оправдано, поскольку даже при сборке пула из флеш-дисков его производительность будет меньше одного SSD диска за счет применения технологии двойной записи.
Быстрая файловая система
Быстрая файловая система предоставляет функционал быстрых пулов. Быстрая ФС в своей работе использует принцип динамического дискового пула (DDP). Из дисков собирается пул, все пространство которого разбивается на множество небольших блоков одинакового размера. Из этих блоков собираются логические массивы (тома) с нужной степенью избыточности. Блоки берутся таким образом, чтобы при сборке тома обеспечивать равномерное распределение блоков данных и блоков четности по всем дискам пула. Для томов поддерживаются основные типы избыточности – RAID 0, 1, 5, 6. Также поддерживается комбинированный RAID 10. Для максимальной производительности рекомендуется использовать в пулах быстрой файловой системы (быстрых пулах) только флеш-диски.
Для кэширования операций записи быстрая ФС не использует дисковый кэш, после сборки страйпа в оперативной памяти выполняется его прямая запись в дисковый пул. Также не используется и кэш чтения.
Из-за своей специфики, для быстрых пулов недоступно большинство функций, предоставляемых обычными пулами. В настоящий момент быстрые пулы поддерживают:
- расширение объема пула (таким же количеством дисков, что используется в пуле);
- «толстые» и «тонкие» тома;
- расширение тома;
- автоматическая замена вышедшего из строя диска на запасной;
- снимки «тонкого» тома, восстановление тома из снимка.