Dla jądra Linuksa zaproponowano system plików DLMPFS

Alexander Aring z firmy Red Hat, który zajmuje się w jądrze Linux podsystemami IEEE 802.15.4, DLM i flock/fcntl, zaprezentował na liście mailingowej deweloperów jądra specjalistyczny system plików DLMPFS. Zaproponowany system plików zapewnia warstwę dla rozproszonych blokad plików, zrealizowaną na bazie DLM (Distributed Lock Manager) i ramfs. Implementacja DLMPFS jest dostępna w formie zestawu poprawek do jądra Linux 6.19.

DLMPFS pozwala na pracę z wspólną hierarchią plików dla wielu hostów, umożliwiając tworzenie i usuwanie plików oraz katalogów, a także nakładanie i zdejmowanie blokad na pliki z wykorzystaniem standardowych funkcji flock() i fcntl(). Przy tym DLMPFS nie pozwala na zapisywanie i odczytywanie danych z plików, ograniczając się wyłącznie do operacji związanych z blokadami. Ograniczeniem jest również możliwość określenia stanu blokady tylko w przypadku znajomości pełnej ścieżki do blokowanego pliku (DLM wymaga podania nazwy zasobu do określenia blokady).

Za pomocą DLMPFS można łatwo dostosować istniejące aplikacje, które opierają się na nakładaniu blokad przez API flock/fcntl, do korzystania z rozproszonych blokad obejmujących kilka hostów w klastrze, bez konieczności angażowania do przechowywania danych wyspecjalizowanych rozproszonych systemów plików.

DLMPFS różni się od już istniejącego podobnego systemu plików DLMFS tym, że wykorzystuje API flock/fcntl zamiast API specyficznego dla systemu plików OCFS2. W planach jest dodanie do DLMPFS rozproszonych blokad, oznaczonych w specyfikacji POSIX, oraz możliwość podłączania różnych backendów w celu integracji nie tylko z DLM, ale także z innymi menedżerami rozproszonych blokad, takimi jak NFS lockd.

Przykład użycia (na drugim węźle blokada na plik /mnt/lock zostanie zdjęta po 20 sekundach): Węzeł 1: mount -t dlmpfs -o clname=$CLUSTERNAME none /mnt touch /mnt/lock flock /mnt/lock -c "echo 'acquired'; sleep 20; echo 'released'" Węzeł 2: mount -t dlmpfs -o clname=$CLUSTERNAME none /mnt touch /mnt/lock flock /mnt/lock -c "echo 'acquired'; sleep 20; echo 'released'"

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster