Alexander Aring de la compania Red Hat, care susține subsistemele IEEE 802.15.4, DLM și flock/fcntl în nucleul Linux, a prezentat pe lista de discuții a dezvoltatorilor nucleului un sistem de fișiere specializat, DLMPFS. FS propus oferă un strat pentru blocările distribuite ale fișierelor, implementat pe baza DLM (Distributed Lock Manager) și ramfs. Implementarea DLMPFS este disponibilă sub formă de set de patch-uri pentru nucleul Linux 6.19.
DLMPFS permite lucrul cu o ierarhie de fișiere comună pentru mai multe gazde, creând și ștergând fișiere și directoare, aplicând sau ridicând blocări pe fișiere prin intermediul funcțiilor standard flock() și fcntl(). Totodată, DLMPFS nu permite scrierea și citirea de date din fișiere, limitându-se doar la operațiuni cu blocări. O altă limitare este posibilitatea de a determina starea blocării știind doar calea completă a fișierului blocat (DLM necesită numele resursei pentru a determina blocarea).
Cu ajutorul DLMPFS, este ușor să adaptați aplicațiile existente, care se bazează pe aplicarea blocărilor prin API-ul flock/fcntl, pentru a utiliza blocările distribuite, acoperind mai multe gazde din cluster, fără a fi nevoie de utilizarea unor sisteme de fișiere distribuite specializate pentru stocarea datelor.
DLMPFS se deosebește de sistemul de fișiere similar existent, DLMFS, prin utilizarea API-ului flock/fcntl în locul API-ului specific pentru sistemul de fișiere OCFS2. În planurile viitoare se află adăugarea blocărilor distribuite, marcate în specificația POSIX, și posibilitatea conectării la diferite backend-uri pentru integrarea nu doar cu DLM, ci și cu alți manageri de blocări distribuite, cum ar fi NFS lockd.
Exemplu de utilizare (pe al doilea nod blocarea pe fișierul /mnt/lock va fi ridicată după 20 de secunde): Nodul 1: mount -t dlmpfs -o clname=$CLUSTERNAME none /mnt touch /mnt/lock flock /mnt/lock -c "echo 'acquired'; sleep 20; echo 'released'" Nodul 2: mount -t dlmpfs -o clname=$CLUSTERNAME none /mnt touch /mnt/lock flock /mnt/lock -c "echo 'acquired'; sleep 20; echo 'released'"
Sursa: opennet.ro
