За ядрото на Linux е предложена файлова система DLMPFS

Александър Аринг (Alexander Aring) от компанията Red Hat, който поддържа подсистемите IEEE 802.15.4, DLM и flock/fcntl в ядрото на Linux, представи в списъка за разпространение на разработчиците на ядрото специализирана файлова система DLMPFS. Предложената файлова система предоставя слой за разпределени файлови заключвания, реализиран на базата на DLM (Distributed Lock Manager) и ramfs. Реализацията на DLMPFS е достъпна под формата на набор от пачове към ядрото на Linux 6.19.

DLMPFS позволява работа с обща йерархия на файловете за няколко хоста, създаване и изтриване на файлове и директории, задаване или сваляне на заключвания на файлове, използвайки стандартните функции flock() и fcntl(). В същото време, DLMPFS не позволява записване и четене на данни от файлове, ограничавайки се само до операции с заключвания. Ограничение е и възможността за определяне на състоянието на заключването единствено с познаване на пълния файлов път до заключвания файл (DLM изисква името на ресурса за определяне на заключването).

С помощта на DLMPFS лесно може да се адаптират съществуващите приложения, които разчитат на задаване на заключвания чрез API flock/fcntl, за използване на разпределени заключвания, обхващащи няколко хоста в кластера, без нужда от ангажиране на специализирани разпределени файлови системи за съхранение на данни.

DLMPFS се отличава от вече съществуващата подобна файлова система DLMFS, използвайки API flock/fcntl вместо API, специфично за файловата система OCFS2. Планирано е добавянето на разпределени заключвания, отбелязани в спецификацията POSIX, и възможността за свързване на различни бекенди за интеграция не само с DLM, но и с други мениджъри на разпределени заключвания, като NFS lockd.

Пример за използване (на втория възел заключването на файл /mnt/lock ще бъде свалено след 20 секунди): Узел 1: mount -t dlmpfs -o clname=$CLUSTERNAME none /mnt touch /mnt/lock flock /mnt/lock -c "echo 'acquired'; sleep 20; echo 'released'" Узел 2: mount -t dlmpfs -o clname=$CLUSTERNAME none /mnt touch /mnt/lock flock /mnt/lock -c "echo 'acquired'; sleep 20; echo 'released'"

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster