Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W środowiskach NAS wiele klientów uzyskuje dostęp do plików w tym samym woluminie. Wolumin NAS nie jest świadomy aplikacji, dlatego w celu ochrony danych przed potencjalnym uszkodzeniem, gdy więcej niż jeden klient próbuje zapisać w tym samym pliku w tym samym czasie, aplikacje wysyłają żądania blokady do serwera NAS, aby uniemożliwić innym klientom wprowadzanie zmian podczas korzystania z pliku. W systemie plików NFS mechanizmy blokowania plików zależą od używanej wersji systemu plików NFS.
Typy zamków
Istnieje kilka typów blokad NFS, które obejmują:
Blokady udostępnione: Blokady udostępnione mogą być używane przez wiele procesów w tym samym czasie i mogą być wystawiane tylko wtedy, gdy nie ma wyłącznych blokad w pliku. Te zamki są przeznaczone do pracy w trybie tylko do odczytu, ale mogą być używane do zapisu (na przykład z bazą danych).
Blokady wyłączne: Blokady wyłączne działają tak samo jak blokady wyłączne w SMB: tylko jeden proces może używać pliku, gdy istnieje blokada wyłączna. Jeśli jakiekolwiek inne procesy zablokowały plik, nie można wydać wyłącznej blokady, chyba że ten proces został rozmnożony.
Delegacje: Delegowania są używane tylko w systemie plików NFSv4.x i są przypisywane, gdy opcje serwera NFS są włączone, a klient obsługuje delegowanie NFSv4.x. Delegowania umożliwiają buforowanie operacji po stronie klienta przez utworzenie "miękkiej" blokady do pliku używanego przez klienta. Poprawia to wydajność określonych obciążeń, zmniejszając liczbę wywołań między klientem a serwerem i jest podobna do blokad oportunistycznych protokołu SMB. Usługa Azure NetApp Files obecnie nie obsługuje delegacji NFSv4.x.
Blokady zakresu bajtów: Zamiast blokować cały plik, zakres bajtów blokuje tylko część pliku.
Zachowanie blokowania zależy od typu blokady, wersji systemu operacyjnego klienta i używanej wersji systemu NFS. Pamiętaj, aby przetestować blokowanie w środowisku, aby ocenić oczekiwane zachowanie.
Blokowanie systemu plików NFSv3
System plików NFSv3 używa protokołów pomocniczych, takich jak Network Lock Manager (NLM) i Network Status Monitor (NSM), aby koordynować blokady plików między klientem systemu plików NFS i serwerem. Te protokoły pomocnicze są zdefiniowane w dokumencie RFC-1813, z którym jest zgodna usługa Azure NetApp Files.
NLM pomaga ustanowić i zwolnić blokady, podczas gdy NSM powiadamia elementy równorzędne o ponownym uruchomieniu serwera. W przypadku blokowania systemu plików NFSv3 po ponownym uruchomieniu klienta serwer musi zwolnić blokady. Po ponownym uruchomieniu serwera klient przypomina mu o blokadach, które posiadał.
Uwaga / Notatka
W niektórych przypadkach mechanizmy blokowania systemu plików NFS nie komunikują się prawidłowo (na przykład w przypadku awarii sieci), a nieaktywne blokady są pozostawione na serwerze i muszą zostać ręcznie wyczyszczone. Aby uzyskać więcej informacji na temat tego zadania, zobacz Rozwiązywanie problemów z blokadami plików.
Blokowanie systemu plików NFSv4.x
System plików NFSv4.x korzysta z modelu blokowania opartego na dzierżawie zintegrowanego w ramach protokołu NFS. Oznacza to, że nie ma pomocniczych usług do obsługi ani powodów do zmartwień; wszystkie operacje związane z blokadami są hermetyzowane w komunikacji NFSv4.x.
Usługa Azure NetApp Files obsługuje mechanizm blokowania plików NFSv4.x, zachowując stan wszystkich blokad plików w modelu opartym na dzierżawie. Zgodnie z RFC 8881 usługa Azure NetApp Files "definiuje pojedynczy okres dzierżawy dla wszystkich stanów przechowywanych przez klienta systemu plików NFS. Jeśli klient nie odnowi dzierżawy w określonym czasie, cały status skojarzony z dzierżawą klienta może zostać zwolniony przez serwer.
Oznacza to, że klient może jawnie lub niejawnie odnowić dzierżawę, wykonując operację, taką jak odczytywanie pliku. Ponadto usługa Azure NetApp Files definiuje okres prolongaty, który jest okresem specjalnego przetwarzania, w którym klienci próbują odzyskać swój stan blokady podczas odzyskiwania serwera.
| Termin | Definicja |
|---|---|
| Dzierżawa | Okres, w którym usługa Azure NetApp Files nieodwołalnie przyznaje klientowi blokadę. |
| Okres karencji | Okres, w którym klienci próbują odzyskać stan blokady podczas odzyskiwania serwera w przypadku awarii serwera. |
Jak usługa Azure NetApp Files obsługuje blokady NFSv4.x
Blokady są wystawiane przez usługę Azure NetApp Files na żądanie klienta na podstawie dzierżawy. Serwer Azure NetApp Files sprawdza stan dzierżawy każdego klienta co 30 sekund, aby wykryć zmiany. W przypadku ponownego uruchomienia klienta klient może odzyskać wszystkie prawidłowe blokady z serwera po ponownym uruchomieniu. Jeśli serwer usługi Azure NetApp Files zostanie uruchomiony ponownie, po ponownym uruchomieniu nie wyda żadnych nowych blokad klientom przez okres prolongaty 45 sekund. Po upływie tego czasu klientom, którzy wystąpili z żądaniem, mogą być wystawiane blokady. Jeśli blokada nie może zostać ponownie ustanowiona w określonym okresie prolongaty, blokada wygaśnie samodzielnie. To zachowanie różni się od blokowania NFSv3, ponieważ nie będzie przestarzałych blokad, które muszą zostać ręcznie usunięte.
Ręczne ustanawianie blokad na kliencie
Aby przetestować blokady systemu plików NFS, klient musi poinformować serwer NFS o ustanowieniu blokady. Jednak nie wszystkie aplikacje używają blokad. Na przykład aplikacja "vi" nie zablokuje pliku. Tworzy ukryty plik wymiany, stosując konwencję nazewnictwa z kropką w tej samej folderze, a następnie zapisuje dane do tego pliku po zamknięciu aplikacji. Następnie stary plik zostanie usunięty, a plik wymiany zostanie przemianowany na oryginalną nazwę pliku.
Istnieją jednak narzędzia do ręcznego ustanawiania blokad. Na przykład flock może blokować pliki.
Aby ustanowić blokadę pliku, najpierw uruchom polecenie exec, aby przypisać identyfikator liczbowy.
# exec 4<>v4user_file
Użyj aplikacji Flock, aby utworzyć udostępnioną lub wyłączną blokadę pliku.
# 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
Aby odblokować plik.
# flock -u -n 4
Ręczne blokowanie plików umożliwia testowanie interakcji otwierania i edytowania plików oraz testowanie funkcji przerwania blokady w usłudze Azure NetApp Files.
Dalsze kroki
- Często zadawane pytania dotyczące systemu plików NFS dla usługi Azure NetApp Files
- Często zadawane pytania dotyczące protokołu SMB dla usługi Azure NetApp Files
- Rozwiązywanie problemów z blokadami plików na woluminie usługi Azure NetApp Files
- Odporność aplikacji — często zadawane pytania dotyczące usługi Azure NetApp Files