SM-NOTIFY(8) System Manager's Manual SM-NOTIFY(8) NUME sm-notify - trimite notificari de repornire catre omologii NFS REZUMAT /usr/sbin/sm-notify [-dfn] [-m minute] [-v nume] [-p port-notificare] [-P ruta] DESCRIERE Blocajele de fiiere nu fac parte din starea persistenta a sistemului de fiiere. Astfel, starea de blocare se pierde atunci cand o gazda repornete. Sistemele de fiiere de reea trebuie sa detecteze, de asemenea, cand starea de blocare este pierduta deoarece o gazda la distana a fost repornita. Dupa ce un client NFS repornete, un server NFS trebuie sa elibereze toate blocarile de fiiere deinute de aplicaiile care rulau pe clientul respectiv. Dupa ce un server repornete, un client trebuie sa reaminteasca serverului de blocarile de fiiere deinute de aplicaiile care ruleaza pe clientul respectiv. Pentru NFS versiunea 2 i versiunea 3, protocolul Network Status Monitor (sau NSM pe scurt) este utilizat pentru a notifica omologii NFS despre reporniri. In Linux, serviciul NSM este format din doua componente separate in spaiul utilizatorului: sm-notify Un program de ajutor care notifica omologii NFS dupa repornirea sistemului local rpc.statd Un demon care asculta notificarile de repornire de la alte gazde i gestioneaza lista de gazde care urmeaza sa fie notificate atunci cand sistemul local repornete. Managerul de blocare NFS local avertizeaza rpc.statd local cu privire la fiecare omolog de la distana care trebuie monitorizat. Atunci cand sistemul local repornete, comanda sm-notify notifica serviciul NSM de pe omologii monitorizai cu privire la repornire. Atunci cand un omolog de la distana repornete, acel omolog notifica serviciul rpc.statd local, care la randul sau transmite notificarea de repornire inapoi la managerul local de blocare NFS. FUNCIONAREA NSM IN DETALIU Prima interaciune de blocare a fiierelor intre un client i un server NFS determina managerii de blocare NFS de pe ambii omologi sa contacteze serviciul NSM local pentru a stoca informaii despre omologul opus. In Linux, managerul local de blocare contacteaza rpc.statd. rpc.statd inregistreaza informaii despre fiecare unitate NFS monitorizata in memoria persistenta. Aceste informaii descriu cum se contacteaza unitatea de la distana in cazul in care sistemul local se repornete, cum se recunoate care unitate monitorizata raporteaza o repornire i cum se notifica managerul local de blocare atunci cand o unitate monitorizata indica faptul ca a fost repornita. Un client NFS trimite un nume de gazda, cunoscut sub numele de nume-apelant al clientului, la fiecare cerere de blocare a unui fiier. Un server NFS poate utiliza acest nume de gazda pentru a trimite apeluri asincrone GRANT catre un client sau pentru a notifica clientul ca a repornit. Serverul Linux NFS poate furniza numele-apelantului clientului sau adresa de reea a clientului catre rpc.statd. In sensul protocolului NSM, acest nume sau adresa este cunoscut sub numele de nume-monitor al omologului monitorizat. In plus, gestionarul local de blocare ii spune lui rpc.statd care crede ca este propriul nume de gazda. In sensul protocolului NSM, acest nume de gazda este cunoscut sub numele de numele-meu. Nu exista o interaciune echivalenta intre un server NFS i un client pentru a informa clientul cu privire la numele-apelantului serverului. Prin urmare, clienii NFS nu tiu de fapt ce nume-monitor ar putea folosi un server NFS intr-o cerere SM_NOTIFY. Clientul Linux NFS inregistreaza numele de gazda al serverului utilizat in comanda mount pentru a identifica serverele NFS care repornesc. Notificare de repornire La repornirea sistemului local, comanda sm-notify citete lista de omologi monitorizai din memoria persistenta i trimite o cerere SM_NOTIFY catre serviciul NSM al fiecarui omolog la distana din lista. Aceasta utilizeaza irul nume-monitor ca destinaie. Pentru a identifica ce gazda a fost repornita, comanda sm-notify trimite in mod normal irul numele-meu inregistrat atunci cand gazda de la distana a fost monitorizata. Comanda la distana rpc.statd potrivete cererile SM_NOTIFY primite folosind acest ir, sau adresa de reea a apelantului, la unul sau mai muli omologi din propria lista de monitorizare. Daca rpc.statd nu gasete un omolog in lista sa de monitorizare care sa corespunda unei cereri SM_NOTIFY primite, notificarea nu este transmisa managerului local de blocare. In plus, fiecare omolog are propriul numar numar de stare NSM, un numar intreg de 32 de bii care este actualizat dupa fiecare repornire de catre comanda sm-notify. rpc.statd utilizeaza acest numar pentru a face distincia intre repornirile reale i notificarile reluate. O parte a recuperarii blocajului NFS consta in redescoperirea omologilor care trebuie sa fie monitorizai din nou. Comanda sm-notify terge lista de monitorizare din memoria persistenta dupa fiecare repornire. OPIUNI -d Menine sm-notify ataat la terminalul sau de control i ruleaza in prim-plan, astfel incat progresul notificarii sa poata fi monitorizat direct. -f Trimite notificari chiar daca sm-notify a fost deja executat de la ultima repornire a sistemului. -m timp-reincercare Specifica durata de timp, in minute, pentru a continua sa se reia notificarile catre gazdele care nu raspund. Daca aceasta opiune nu este specificata, sm-notify incearca sa trimita notificari timp de 15 minute. Specificarea unei valori de 0 face ca sm-notify sa continue sa trimita notificari catre omologii care nu raspund pana cand este eliminat manual. Notificarile sunt incercate din nou daca trimiterea eueaza, daca gazda de la distana nu raspunde, daca serviciul NSM de la distana nu este inregistrat sau daca exista o eroare DNS care impiedica rezolvarea nume-monitor de la distana la o adresa. Gazdele nu sunt eliminate din lista de notificare pana cand nu se primete un raspuns valid. Cu toate acestea, procedura SM_NOTIFY are un rezultat nul. sm-notify nu are cum sa tie daca gazda de la distana a recunoscut expeditorul i a inceput recuperarea corespunzatoare a blocajului. -n Impiedica sm-notify sa actualizeze numarul de stare NSM al sistemului local. -p port Specifica numarul portului sursa pe care sm-notify ar trebui sa il utilizeze atunci cand trimite notificari de repornire. Daca aceasta opiune nu este specificata, se utilizeaza un port efemer ales la intamplare. Aceasta opiune poate fi utilizata pentru a traversa un firewall intre client i server. -P, --state-directory-path nume-ruta Specifica numele de ruta al directorului parinte in care se afla informaiile privind starea NSM. Daca aceasta opiune nu este specificata, sm-notify utilizeaza in mod implicit /var/lib/nfs. Dupa pornire, sm-notify incearca sa ii stabileasca UID i GID efective la proprietarul i grupul subdirectorului sm al acestui director. Dupa modificarea id-urilor efective, sm-notify trebuie sa acceseze doar fiierele din sm i sm.bak din cadrul rutei directorului de stare ,,state-directory-path". -v adresa-ip | nume-gazda Specifica adresa de reea de la care se trimit notificarile de repornire i argumentul nume-monitor care trebuie utilizat la trimiterea cererilor SM_NOTIFY. Daca aceasta opiune nu este specificata, sm-notify utilizeaza o adresa de tip joker ca adresa de transport i utilizeaza numele-meu inregistrat atunci cand la distana a fost monitorizata ca argument nume-monitori atunci cand trimite cereri SM_NOTIFY. Forma adresa-ip poate fi exprimata fie ca o adresa de prezentare IPv4, fie ca o adresa de prezentare IPv6. In cazul in care se utilizeaza forma adresa-ip, comanda sm-notify convertete aceasta adresa intr-un nume de gazda pentru a fi utilizata ca argument nume-monitor la trimiterea cererilor SM_NOTIFY. Aceasta opiune poate fi utila in configuraiile ,,multi-homed" (gazda conectata la mai multe reele) in cazul in care gazda de la distana necesita notificare de la o anumita adresa de reea. FIIER DE CONFIGURARE Multe dintre opiunile care pot fi definite in linia de comanda pot fi, de asemenea, controlate prin intermediul valorilor stabilite in seciunea [sm-notify] sau, intr-un caz, in seciunea [statd] a fiierului de configurare /etc/nfs.conf. Valorile recunoscute in seciunea [sm-notify] includ: retry-time, outgoing-port i outgoing-addr. Acestea au acelai efect ca i opiunile din linia de comanda m, p i, respectiv, v. O valoare suplimentara recunoscuta in seciunea [sm-notify] este lift-grace. In mod implicit, sm-notify va ridica mai devreme perioada de graie a blocajului daca nu are gazde de notificat. Unele configuraii de inalta disponibilitate vor rula un sm-notify pe fiecare adresa IP flotanta. In aceste configuraii, ridicarea anticipata a perioadei de graie poate impiedica clienii sa recupereze blocarile. Stabilirea lift-grace la n va impiedica sm-notify sa incheie perioada de graie inainte de termen. lift-grace nu are o opiune de linie de comanda corespunzatoare. Valoarea recunoscuta in seciunea [statd] este state-directory-path. SECURITATE Comanda sm-notify trebuie iniiata ca root pentru a obine privilegiile necesare pentru a accesa baza de date cu informaii despre stare. Aceasta renuna la privilegiile de root imediat ce pornete pentru a reduce riscul unui atac de escaladare a privilegiilor. In timpul funcionarii normale, ID-ul efectiv al utilizatorului pe care il alege este proprietarul directorului de stare. Acest lucru ii permite sa continue sa acceseze fiierele din acest director dupa ce a renunat la privilegiile de root. Pentru a controla ID-ul de utilizator pe care il alege rpc.statd, este suficient sa utilizai chown(1) pentru a stabili proprietarul directorului de stare. NOTE ADIIONALE Recuperarea blocarii dupa o repornire este eseniala pentru a menine integritatea datelor i pentru a preveni blocarea inutila a aplicaiilor. Pentru a ajuta rpc.statd sa potriveasca cererile SM_NOTIFY cu cererile NLM, trebuie respectate o serie de bune practici, care includ: Numele de nod UTS al sistemelor dvs. trebuie sa corespunda cu numele DNS pe care omologii NFS le folosesc pentru a le contacta. Numele de nod UTS ale sistemelor dvs. trebuie sa fie intotdeauna nume de domenii complet calificate. Corespondena DNS directa i inversa a numelor de noduri UTS ar trebui sa fie consecventa. Numele de gazda pe care clientul il folosete pentru a monta serverul trebuie sa corespunda cu nume-monitor al serverului in cererile SM_NOTIFY pe care le trimite. Demontarea unui sistem de fiiere NFS nu oprete neaparat clientul sau serverul NFS sa se monitorizeze reciproc. Ambele pot continua sa se monitorizeze reciproc pentru o perioada de timp, in cazul in care traficul NFS ulterior intre cele doua duce la noi montari i la blocarea de fiiere suplimentare. In Linux, daca modulul de nucleu lockd este descarcat in timpul funcionarii normale, toi omologii NFS de la distana nu sunt monitorizai. Acest lucru se poate intampla pe un client NFS, de exemplu, daca un sistem de auto-montare elimina toate punctele de montare NFS din cauza inactivitaii. Suport pentru protocoalele IPv6 i TI-RPC TI-RPC este o condiie prealabila pentru a susine NFS pe IPv6. In cazul in care suportul TI-RPC este integrat in comanda sm-notify, aceasta va alege un transport IPv4 sau IPv6 adecvat pe baza adresei de reea returnata de DNS pentru fiecare omolog la distana. Aceasta ar trebui sa fie pe deplin compatibila cu sistemele la distana care nu accepta TI-RPC sau IPv6. In prezent, comanda sm-notify accepta trimiterea de notificari numai prin intermediul protocoalelor de transport de datagrame. FIIERE /var/lib/nfs/sm directorul care conine lista de monitoare /var/lib/nfs/sm.bak directorul care conine lista de notificari /var/lib/nfs/state Numarul de stare al NSM pentru aceasta gazda /proc/sys/fs/nfs/nsm_local_state copia nucleului a numarului de stare al NSM CONSULTAI I rpc.statd(8), nfs(5), uname(2), hostname(7) RFC 1094 - ,,NFS: Network File System Protocol Specification" RFC 1813 - ,,NFS Version 3 Protocol Specification" OpenGroup Protocols for Interworking: XNFS, versiunea 3W - Capitolul 11 AUTORI Olaf Kirch Chuck Lever TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 1 noiembrie 2009 SM-NOTIFY(8)