Megosztás a következőn keresztül:


Az Azure NetApp Files fájlzárolási és zárolási típusainak ismertetése

NAS-környezetekben több ügyfél is hozzáfér ugyanabban a kötetben lévő fájlokhoz. A NAS-kötet nem ismeri az alkalmazásokat, ezért annak érdekében, hogy megvédje az adatokat a lehetséges sérülésekkel szemben, amikor egynél több ügyfél egyszerre próbál meg ugyanarra a fájlra írni, az alkalmazások zárolási kéréseket küldenek a NAS-kiszolgálónak, hogy megakadályozzák, hogy más ügyfelek módosításokat hajtsanak végre a fájl használata közben. Az NFS esetén a fájlzárolási mechanizmusok a használt NFS-verziótól függenek.

Zárolási típusok

Az NFS-zárolásoknak több típusa is van:

Megosztott zárolások: A megosztott zárolásokat egyszerre több folyamat is használhatja, és csak akkor adható ki, ha nincsenek kizárólagos zárolások a fájlon. Ezek a zárolások írásvédett munkára szolgálnak, de íráshoz (például adatbázishoz) használhatók.

Kizárólagos zárolások: A kizárólagos zárolások ugyanúgy működnek, mint az SMB kizárólagos zárolásai: csak egy folyamat használhatja a fájlt, ha kizárólagos zárolás van. Ha bármely más folyamat zárolta a fájlt, csak akkor lehet kizárólagos zárolást kiadni, ha elágazás történt.

Delegálások: A delegálások csak az NFSv4.x protokollal használhatók, és az NFSv4.x-delegálásokat az NFSv4.x-delegálások támogatásakor rendelik hozzá. A delegálások lehetővé teszik az ügyféloldali műveletek gyorsítótárazásának módját az ügyfél által használt fájl "helyreállítható" zárolásának létrehozásával. Ez javítja az egyes számítási feladatok teljesítményét azáltal, hogy csökkenti az ügyfél és a kiszolgáló közötti hívások számát, és hasonlóak az SMB opportunista zárolásaihoz. Az Azure NetApp Files jelenleg nem támogatja az NFSv4.x delegálásokat.

Bájttartomány-zárolások: A teljes fájl zárolása helyett a bájttartomány-zárolások csak a fájl egy részét zárolják.

A zárolási viselkedés a zárolás típusától, az ügyfél operációs rendszerének verziójától és a használt NFS-verziótól függ. A várt viselkedés felméréséhez mindenképpen tesztelje a környezetben a zárolást.

NFSv3 zárolás

Az NFSv3 olyan kiegészítő protokollokat használ, mint a Network Lock Manager (NLM) és a Hálózati állapotfigyelő (NSM) az NFS-ügyfél és a kiszolgáló közötti fájlzárolások koordinálásához. Ezek a kiegészítő protokollok az RFC-1813-ban vannak definiálva, amelyeket az Azure NetApp Files betart.

Az NLM segít a zárolások létrehozásában és feloldásában, míg az NSM értesíti a kiszolgáló újraindítási társait. Az NFSv3 zárolása esetén az ügyfél újraindításakor a kiszolgálónak fel kell szabadítania a zárolásokat. Amikor egy kiszolgáló újraindul, az ügyfél emlékezteti a kiszolgálót a tárolt zárolásokra

Feljegyzés

Bizonyos esetekben az NFS zárolási mechanizmusai nem kommunikálnak megfelelően (például hálózati kimaradás esetén), és az elavult zárolások megmaradnak a kiszolgálón, és manuálisan kell törölni. A feladatról további információt a fájlzárolások hibaelhárítása című témakörben talál.

NFSv4.x zárolás

Az NFSv4.x egy bérletalapú zárolási modellt használ, amely az NFS protokollba van integrálva. Ez azt jelenti, hogy nincsenek fenntartandó vagy aggódó kiegészítő szolgáltatások; az összes zárolás az NFSv4.x kommunikációban van beágyazva.

Az Azure NetApp Files támogatja az NFSv4.x fájlzárolási mechanizmust, fenntartva a bérletalapú modellben lévő összes fájlzárolás állapotát. Az RFC 8881-nek megfelelően az Azure NetApp Files "egyetlen bérletidőszakot határoz meg az NFS-ügyfél által birtokolt összes állapothoz. Ha az ügyfél nem újítja meg a bérletét a megadott időszakon belül, a kiszolgáló az ügyfél bérletéhez társított összes állapotot felszabadíthatja."

Ez azt jelenti, hogy az ügyfél explicit módon vagy implicit módon megújíthatja a bérletét egy művelet végrehajtásával, például egy fájl olvasásával. Emellett az Azure NetApp Files meghatároz egy türelmi időszakot, amely egy speciális feldolgozási időszak, amelyben az ügyfelek megpróbálják helyreállítani a zárolási állapotukat a kiszolgáló helyreállítása során.

Időszak Definíció
Bérleti szerződés Az az időszak, amelyben az Azure NetApp Files visszavonhatatlanul zárolja az ügyfelet.
Türelmi időszak Az az időszak, amikor az ügyfelek kiszolgálókimaradás esetén megpróbálják helyreállítani a zárolási állapotukat a kiszolgáló helyreállítása során.

Hogyan kezeli az Azure NetApp Files az NFSv4.x zárolásokat?

A zárolásokat az Azure NetApp Files az ügyfél kérésére bérlet alapján állítja ki. Az Azure NetApp Files-kiszolgáló 30 másodpercenként ellenőrzi az egyes ügyfelek bérletét a módosításokért. Az ügyfél újraindítása esetén az ügyfél az újraindítás után vissza tudja igényelni a kiszolgáló összes érvényes zárolását. Ha az Azure NetApp Files-kiszolgáló újraindul, az újraindításkor nem ad ki új zárolásokat az ügyfeleknek 45 másodperces türelmi időre. Ezt követően a zárolások kibocsáthatók a kérelmező ügyfelek számára. Ha a zárolás nem állítható vissza a megadott türelmi időszak alatt, akkor a zárolás önállóan lejár. Ez a viselkedés eltér az NFSv3 zárolástól, mivel nem lesznek olyan elavult zárolások, amelyeket manuálisan kell feltörni.

Zárolások manuális létrehozása egy ügyfélen

Az NFS-zárolások teszteléséhez az ügyfélnek meg kell mondania az NFS-kiszolgálónak, hogy hozzon létre egy zárolást. Azonban nem minden alkalmazás használ zárolásokat. A "vi" alkalmazás például nem zárol egy fájlt. Egy rejtett felcserélési fájlt hoz létre egy pontelnevezési konvencióval ugyanabban a mappában, majd véglegesíti az írást a fájlba az alkalmazás bezárásakor. Ezután a régi fájl törlődik, és a felcserélési fájl át lesz nevezve a fájlnévre.

Vannak azonban segédprogramok a zárolások manuális létrehozásához. A flock például zárolhatja a fájlokat.

Egy fájl zárolásának létrehozásához először futtassa az exec parancsot egy numerikus azonosító hozzárendeléséhez.

# exec 4<>v4user_file

A flock használatával hozzon létre megosztott vagy kizárólagos zárolást a fájlon.

# flock

Usage:
 flock [options] <file|directory> <command> [command args]
 flock [options] <file|directory> -c <command>
 flock [options] <file descriptor number>

Options:
 -s  --shared             get a shared lock
 -x  --exclusive          get an exclusive lock (default)
 -u  --unlock             remove a lock
 -n  --nonblock           fail rather than wait
 -w  --timeout <secs>     wait for a limited amount of time
 -E  --conflict-exit-code <number>  exit code after conflict or timeout
 -o  --close              close file descriptor before running command
 -c  --command <command>  run a single command string through the shell

 -h, --help     display this help and exit
 -V, --version  output version information and exit

# flock -n 4

A fájl zárolásának feloldásához.

# flock -u -n 4

A fájlok manuális zárolásával tesztelheti a fájlok megnyitási és szerkesztési interakcióit, és tesztelheti a zárolástörő funkciót az Azure NetApp Filesban.

Következő lépések