Share via


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 a CIFS/SMB kizárólagos zárai: csak egy folyamat használhatja a fájlt kizárólagos zárolás esetén. 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

Megjegyzé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 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