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.