Ce este un sistem de fișiere în cluster și care este diferența lor cheie față de sistemele de fișiere convenționale?
Pentru o lungă perioadă de timp am studiat acest subiect, dar nu am ajuns la mâini pentru a scrie ceva integral. Deci, ce este un sistem de fișiere în grup? Extrem de ușor - este un sistem de fișiere care este montat în mai multe locuri.
Un cititor curios va pune imediat o întrebare logică: cum poate fi conectat un mediu de disc la mai multe PC-uri? Desigur, hardware-ul de acasă nu poate face acest lucru, dar serverele de servere SCSI sunt destul de capabile de acest lucru. De asemenea, există diferite protocoale de transport, cum ar fi iSCSI și AoE, care vă permit să exportați un dispozitiv bloc într-o rețea și conectați-l la mai multe mașini.
Deci, să spunem, avem un anumit dispozitiv bloc conectat la două servere pe una dintre interfețele listate mai sus. Să presupunem că a existat un sistem clasic de fișiere pe media (ex. Ext3) și am reușit să-l montez pentru a scrie pe ambele noduri (observ că cazul este abstract, poate că ceea ce descriu este imposibil de făcut).
Acum, să ne gândim la ce se va întâmpla dacă două noduri încearcă să acceseze simultan aceleași sectoare pe media, cu o încercare de a scrie ceva acolo? Și totul se poate dovedi ceva - datele vor fi scrise parțial de la un nod, parțial de la altul; unul dintre noduri va suprascrie datele înregistrate de ceilalți și așa mai departe. Desigur, acest lucru va determina cel puțin sistemul de fișiere să-și verifice structura (fsck), și în cel mai scurt timp va eșua complet. Evident, ambele cazuri sunt fatale, deoarece pentru a rezolva problemele care apar, trebuie să deconectați sistemul de fișiere.
Cum să depășim această problemă? Apoi, un lucru teribil, numit DLM, vine în ajutorul nostru și înseamnă Distributed Lock Manager. Ce înseamnă acest lucru și cum funcționează? În primul rând, funcționează pe toate nodurile în care este instalat sistemul de fișiere și, în al doilea rând, DLM-urile care rulează pe toate nodurile schimbă informații între ele printr-o rețea. Iar esența acestui mecanism este că vă permite să coordonați operațiunile care pot atrage acces competitiv la orice resursă a sistemului de fișiere sau a unității. Adică, în exemplul de mai sus, primul nod ar prinde un blocaj de scriere, începe să facă ceea ce are nevoie, în același timp cel de-al doilea nod ar aștepta cu umilință rândul său și apoi va face tot ce are nevoie. Ca urmare a acestei operațiuni, avem un sistem complet de fișiere și nu există modificări incoerente.
Deci, care sunt sistemele de fișiere grupate care există? În primul rând, desigur, acesta este GFS (GFS2) de la RedHat și OCFS2 de la Oracle. Și aici este, probabil, Luster (deși este distribuită și altora).