Выпущена новая версия DST — драйвера сетевого устройства транспортного уровня для организации распределенных хранилищ данных, функционирующего в ядре на уровне блочного устройства, работающего поверх нескольких машин в сети (ближайшие аналоги - DRBD, iSCSI и NBD). Важнейшие черты полностью переписанного с нуля релиза:
- Клиент и сервер находятся на уровне ядра. Обработка данных производится без дополнительных утилит, не считая настроечные;
- Для всех временных объектов, таких как транзакции, предусмотрены «пуленепробиваемые» аллокации памяти через пулы буферов;
- Отправка данных в сеть производится без копирования, через sendpage(), кроме заголовка, если устройство это поддерживает;
- После обрыва связи происходит восстановление хранимых данных, а если удалённый узел недоступен, то производятся попытки пересоединения;
- Полная поддержка транзакций ( после таймаута или пересоединения с поднятым обратно узлом отправка транзакции производится заново );
- Динамически изменяется размер пула тредов ( нитей ), используемых для получения данных и обработки шифрования;
- Автоконфигурирование при запуске, расширяемое по мере необходимости дополнительными атрибутами;
- Поддержка барьеров и других флагов блокировки ввода-вывода;
- Поддержка любых сетевых протоколов, не ограничиваясь ни tcp, ни семейством inet, выше уровня MAC ( уровень сокетов ). Поддержка ipv6 на уровне ядра, однако утилита настройки ждёт доработки по примеру POHMELFS;
- Атрибуты безопасности для экспортируемых локально узлов ( список адресов для разрешения соединений с ними, и их полномочий );
- Возможность использовать любые криптостойкие контрольные суммы. Возможность шифровать канал данных.
В целом, произошёл отказ от возможностей отображения на устройство в пользу блочного ввода-вывода и эффективного протокола.
Примеры настроек - в каталоге userspace исходников.
|