Network File System (NFS) — client kompyuterga masofadagi server kataloglarini lokal fayl tizimiga o‘xshab mount qilish imkonini beradigan taqsimlangan fayl protokoli. U dastlab Sun Microsystems tomonidan yaratilgan va Unix/Linux muhitlarida keng qo‘llanadi.
Versiyalar
NFSv3 bir nechta yordamchi RPC xizmatlariga tayanadi va server state’ini nisbatan kam saqlaydi. Locking alohida Network Lock Manager bilan bog‘liq. Firewall orqali ko‘p dinamik portlarni boshqarish murakkab bo‘lishi mumkin.
NFSv4 protokolni asosan TCP 2049 portiga birlashtiradi, stateful open/lock, delegations va yagona pseudo-filesystem namespace beradi. NFSv4.1 session, trunking va pNFS kabi imkoniyatlarni qo‘shadi. Client va server versiyasi, minor version hamda security flavor kelishiladi.
Export va mount
Server qaysi directory qaysi clientlarga, qanday ruxsat bilan ochilishini export policyda belgilaydi. Client masofadagi pathni mount pointga ulaydi:
mount -t nfs4 storage.example:/projects /mnt/projects
rw, ro, sync, root_squash va boshqa export optionlar security hamda durabilityga ta’sir qiladi. root_squash client root foydalanuvchisini serverdagi privileged identityga to‘g‘ridan-to‘g‘ri tenglashtirmaydi. Uni o‘chirish faqat aniq ishonch modelida ko‘riladi.
Identity va ruxsat
AUTH_SYS ishlatilganda client UID/GID raqamlarini serverga yuboradi. Turli hostlarda bir foydalanuvchi boshqa UIDga ega bo‘lsa ownership noto‘g‘ri ko‘rinadi. Markaziy identity yoki bir xil mapping kerak.
Kerberos asosidagi krb5, krb5i, krb5p flavorlar mos ravishda authentication, integrity va privacy darajasini beradi. Faqat source IPga ishonish spoofing yoki egallangan clientdan himoyani cheklaydi.
Cache va consistency
Client attribute va file data’ni cache qiladi. Bu performance beradi, lekin bir client yozgan o‘zgarish boshqasida darhol ko‘rinmasligi mumkin. NFS “close-to-open consistency” kabi modelga ega; strict local filesystem semantikasini barcha concurrent holatda takrorlamaydi.
Application file locking va atomic rename xulqini real versiyada tekshiradi. Database fayllarini NFSda saqlash faqat database va storage vendor qo‘llovi, stable write va locking kafolatlari bilan bajariladi.
Nosozliklar
Server yoki network uzilganda hard mount odatda operatsiyani qayta urinib, processni uzoq kutishi mumkin; soft mount esa xato qaytarib, ayrim workloadlarda data corruption xavfini oshirishi mumkin. Timeout va retry optionlari protokol semantikasini tushunib tanlanadi.
NFSv4 lease va state recovery server restartidan keyin open/locklarni qayta tiklaydi. Split-brain HA server bir xil storage’ga ikki tomondan yozsa file system buzilishi mumkin; fencing majburiy.
Performance va kuzatuv
Read/write size, concurrency, network RTT, server disk latency va metadata operationlar throughputga ta’sir qiladi. Ko‘p kichik file yaratish katta sequential read’dan boshqa profil. pNFS data pathni bir nechta storage targetga tarqatishi mumkin.
Monitoring RPC latency, retransmission, stale file handle, mount holati, server load, inode/capacity va lock muammolarini kuzatadi. Backup server snapshotidan olinishi mumkin, lekin application consistency va restore test alohida ta’minlanadi.
Ishlash ko‘rsatkichlari
NFS yukini baholashda faqat tarmoq tezligi yetarli emas. Metadata amallari, kichik tasodifiy I/O, server keshi, retransmission va mijozlar soni kechikishga ta’sir qiladi. Benchmark haqiqiy fayl hajmi hamda parallelizmni aks ettirishi kerak.
Bog‘liq tushunchalar
NFSv4, RPC, File sharing, Network attached storage, Kerberos, File locking, Mount point, pNFS