نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • ویندوز فون
  • NFSv4 دسترسی یکپارچه شبکه را فراهم می کند. نصب و پیکربندی سرور NFS

NFSv4 دسترسی یکپارچه شبکه را فراهم می کند. نصب و پیکربندی سرور NFS

همه با پروتکل های انتقال داده آشنا نیستند. اما بسیاری از مردم دوست دارند رایانه های خود را به یک شبکه متصل کنند یا از یک سرور برای ذخیره فایل ها استفاده کنند. یکی از راه های انجام این کار NFS است. نحوه راه اندازی یک سرور NFS در اوبونتو - ادامه مطلب.

با پیکربندی صحیح NFS، می توانید رایانه های موجود در سیستم عامل های مختلف را در یک شبکه ترکیب کنید.

Network File System یک پروتکل دسترسی به فایل شبکه است. طبق معمول از دو بخش تشکیل شده است. یکی مشتری مشتری است که روی رایانه ای قرار دارد که داده های راه دور از آن مشاهده می شود. دیگری - سرور - در رایانه ای قرار دارد که این داده ها در آن ذخیره می شوند. استفاده از فضای دیسک اضافی، به خصوص در شبکه محلی، کاملاً راحت است. و اگر در مورد برخی از رایانه های شخصی شرکتی صحبت می کنیم، این به سادگی ضروری است.

تفاوت در چیست؟

امروزه تعداد زیادی پروتکل و نرم افزارهای متنوعی وجود دارد که عملکردهای مشابهی را انجام می دهند. چه چیزی NFS را متمایز می کند؟

  • امکان اتصال کامپیوترهای روی سیستم عامل های مختلف به یک شبکه. اتصال سیستم عامل ویندوز از طریق NFS به یک سیستم یونیکس، به عنوان مثال، اوبونتو، اغلب راحت است. Samba وجود دارد و برای همان اهداف استفاده می شود، اما NFS سبک تر، ساده تر و سریعتر از این برنامه است، زیرا در سطح هسته پیاده سازی می شود. بنابراین، تنظیم دسترسی از طریق آن معمولا آسان تر خواهد بود.
  • NFS دسترسی شفاف به فایل ها را فراهم می کند. این بدان معنی است که تمام فایل های راه دور دقیقاً مانند فایل های محلی پخش می شوند. برای پخش هر فایلی که روی سرور قرار دارد، برنامه ها نیازی به ارتقا ندارند.
  • NFS فقط بخش درخواستی فایل را ارسال می کند نه کل فایل را.

برای کارکرد کامل، Network File System باید حداقل روی دو کامپیوتر نصب شود: یک سرور و یک کلاینت. به طور طبیعی، یک مبتدی باید بیشتر روی بخش سرور کار کند، زیرا اینجاست که لازم است پوشه‌ها را به اشتراک بگذارید (دسترسی باز). با این حال، همه اینها به راحتی انجام می شود.

مانند بسیاری از پروتکل های انتقال داده، NFS اصلا جوان نیست. در سال 1984 توسعه یافت و برای سیستم های یونیکس در نظر گرفته شد. این هنوز نقش اصلی NFS است، اما بسیاری دریافته اند که اتصال کامپیوترهای ویندوزی به لینوکس بسیار راحت است. علاوه بر این، NFS برای پخش محتوای چندرسانه ای از طریق یک شبکه خانگی محلی عالی است. سامبا در این نقش اغلب یخ می زند و کند می شود.

نصب باطن NFS

ما بخش سرور پروتکل را در اوبونتو 16.04 نصب خواهیم کرد. طبیعتاً، اگر نسخه Server را دارید، روند به هیچ وجه متفاوت نیست. فقط این است که در نسخه سنتی اوبونتو، برخی از اقدامات را می توان با استفاده از رابط گرافیکی انجام داد.

برنامه را نصب کن. برای این کار می توانید از مرکز دانلود اپلیکیشن استفاده کنید یا به سادگی می توانید دستور زیر را وارد کنید:

sudo apt نصب nfs-kernel-server

پس از این، بررسی صحت نصب مفید خواهد بود. انجام این کار ضروری نیست، اما به هر حال بررسی می کنیم. دستور را وارد کنید:

پورت باید همه جا 2049 باشد.

اکنون بررسی می کنیم که آیا هسته از NFS پشتیبانی می کند یا خیر. برای این کار وارد کنید:

cat /proc/filesystems | grep nfs

مقدار به دست آمده باید مانند این باشد: nodev nfsd

این بدان معنی است که همه چیز به درستی کار می کند. اگر نه، دستور را وارد کنید:

با استفاده از آن ماژول کرنل را خودمان نصب می کنیم.

پروتکل را به autorun اضافه کنید. انجام این کار ضروری نیست، اما هر بار روشن کردن آن بسیار ناخوشایند است. مجدداً، می‌توانید آن را با استفاده از یک آیتم منوی خاص در تنظیمات اضافه کنید، یا می‌توانید آن را خودتان با استفاده از دستور اضافه کنید:

sudo systemctl nfs را فعال می کند

بنابراین، ما قسمت سرور را نصب کرده‌ایم، تنها چیزی که باقی می‌ماند این است که آن را به درستی پیکربندی کنیم و به قسمت مشتری بروید.

تنظیمات

راه اندازی NFS در اوبونتو شامل اشتراک گذاری پوشه های خاصی است.

علاوه بر اینکه به سادگی اجازه دسترسی را می دهید، باید پارامترهایی را نیز مشخص کنید که قابلیت های کاربر را در رابطه با این پوشه تعیین می کند.

  • rw - خواندن و نوشتن این گزینه امکان خواندن و نوشتن فایل ها را در پوشه فراهم می کند.
  • ro - فقط خواندن - فقط خواندن پوشه را امکان پذیر می کند.
  • همگام سازی (پیش فرض) - پارامتر قابلیت اطمینان انتقال را تضمین می کند. اگر فعال باشد، نمی توانید چندین فایل را همزمان یا به رایانه های مختلف منتقل کنید. این تنظیم از پاسخگویی به سایر درخواست‌ها جلوگیری می‌کند. از دست دادن داده ها جلوگیری می کند، اما انتقال ممکن است کندتر باشد.
  • async معکوس پارامتر قبلی است. انتقال سریعتر است، اما خطر از دست دادن اطلاعات وجود دارد.
  • امن - این گزینه به شما امکان می دهد فقط از پورت های زیر 1024 استفاده کنید. به طور پیش فرض فعال است.
  • ناامن - امکان استفاده از هر پورت را فراهم می کند.
  • nohide - اگر چندین دایرکتوری، از جمله دایرکتوری های تو در تو را سوار کنید، دایرکتوری های تودرتو، بر خلاف دایرکتوری والد، خالی نمایش داده می شوند. پارامتر به رفع این مشکل کمک می کند
  • anonuid - uid را برای کاربران ناشناس مشخص می کند. این یک شناسه کاربری ویژه است.
  • anongid - gid را برای کاربران ناشناس مشخص می کند. GID (شناسه گروه) - یک شناسه کاربری دیگر.
  • no_subtree_check - این تابع کنترل زیردرخت را غیرفعال می کند. واقعیت این است که بدون آن، NFS علاوه بر این بررسی می کند که کاربران فقط به بخش های ضروری دایرکتوری دسترسی دارند. این کارها را کند می کند. این پارامتر سرعت آن را افزایش می دهد، اما امنیت را کاهش می دهد.

بسته به آنچه در یک موقعیت خاص مورد نیاز است از آنها استفاده خواهیم کرد.

بیایید یک پوشه جدید ایجاد کنیم. شما همچنین می توانید از یک جدید استفاده کنید. پوشه ما /var/network خواهد بود.

اکنون باید این پوشه را به فایل /etc/exports اضافه کنید. تمام فایل ها و پوشه های با دسترسی به شبکه باز در آنجا ذخیره می شوند. ورودی باید به این شکل باشد:

/var/network168.1.1(rw,async,no_subtree_check)

192.168.1.1 IP است که ما از طریق آن ارسال می کنیم. ذکر آن الزامی است.

جدول صادرات را به روز کنید:

حالا بیایید سعی کنیم از سمت کلاینت به پوشه دسترسی پیدا کنیم.

نصب و پیکربندی بخش سرویس گیرنده NFS

اوبونتو

در اوبونتو، اتصال یک سرور پیکربندی شده دشوار نیست. این فقط در چند دستور انجام می شود.

بسته مشتری ویژه را نصب کنید:

sudo apt نصب nfs-common

sudo mount 192.168.1.1:/var/network/ /mnt/

پوشه شبکه متصل است. با استفاده از df می توانید تمام پوشه های شبکه متصل را بررسی کنید:

همچنین می توانید سطح دسترسی خود را با یک دستور خاص بررسی کنید:

فایل سیستم را به صورت زیر غیرفعال کنید:

دستور mount تقریبا در همه جا استفاده می شود. این وظیفه فرآیند نصب، یعنی آماده سازی فضای روی هارد دیسک برای استفاده توسط سیستم عامل را بر عهده دارد. پیچیده به نظر می رسد، اما اگر آن را ساده کنیم، معلوم می شود که ما به سادگی فایل های شبکه را به رایانه خود در یک پوشه تازه ایجاد شده منتقل می کنیم. در اینجا به آن /mnt/ می گویند.

پنجره ها

با ویندوز، به عنوان یک قاعده، همه چیز بسیار پیچیده تر است. کلاینت NFS را می توان بر روی تمامی سرورهای ویندوز بدون هیچ مشکلی اجرا کرد. از موارد استاندارد، در موارد زیر وجود دارد:

  • Windows 7 Ultimate/Enterprise
  • Windows 8/8.1 Enterprise
  • Windows 10 Enterprise

هیچ جای دیگه ای پیداش نمیشه اگر یکی از این نسخه ها را دارید، موارد زیر را انجام دهید:

  1. منوی "برنامه ها و ویژگی ها" را باز کنید.
  2. روی «افزودن اجزا» کلیک کنید.
  3. ما NFS را در آنجا پیدا می‌کنیم و فقط «Client for NFS» را نصب می‌کنیم؛ به مؤلفه دیگری نیاز نداریم.

پس از اتصال، همه چیز با همان دستور سوار می شود:

mount 192.168.1.1:/var/network/ /mnt/

می توانید آن را به صورت زیر جدا کنید:

دستورات وارد خط فرمانی می شوند که به عنوان مدیر راه اندازی شده است. پس از این کار، با استفاده از Explorer به راحتی می توانید درایو شبکه مورد نظر را پیدا کنید.

اگر کلاینت NFS روی کامپیوتر وجود نداشته باشد چه باید کرد؟ می توانید نرم افزار را از طریق وب سایت مایکروسافت یا از منابع شخص ثالث دانلود کنید. این امکان وجود دارد که دستورات یا اقدامات دیگری در اینجا مورد نیاز باشد.

اکنون درک اولیه ای از نحوه استفاده از NFC و اجرای تنظیمات اولیه دارید. این دانش برای ایجاد دسترسی از یک کامپیوتر به کامپیوتر دیگر کافی است. علاوه بر این، یک رایانه شخصی ویندوزی نیز می تواند به عنوان مشتری عمل کند.

همه می دانند که در سیستم های یونیکس، سیستم فایل به طور منطقی مجموعه ای از سیستم های فایل فیزیکی است که به یک نقطه واحد متصل هستند. یکی از مزایای اصلی چنین سازمانی، به نظر من، توانایی تغییر پویا ساختار یک سیستم فایل موجود است. همچنین، به لطف تلاش توسعه دهندگان، امروز ما این فرصت را داریم که تقریباً از هر نوع و به هر روشی مناسب، یک سیستم فایل را به هم متصل کنیم. با "روش"، اول از همه می خواهم بر توانایی هسته سیستم عامل برای کار با سیستم های فایل از طریق اتصالات شبکه تأکید کنم.

بسیاری از پروتکل های شبکه توانایی کار با فایل های راه دور را در اختیار ما قرار می دهند، خواه FTP، SMB، Telnet یا SSH. به لطف توانایی کرنل که در نهایت به نوع فایل سیستمی که متصل است بستگی ندارد، ما این توانایی را داریم که با استفاده از برنامه mount، هر چیزی را و هر طور که بخواهیم متصل کنیم.

امروز می خواهم در مورد NFS - Network File System صحبت کنم. این فناوری به شما امکان می دهد نقاط سیستم فایل جداگانه را در یک رایانه راه دور به سیستم فایل رایانه محلی متصل کنید. خود پروتکل NFS به شما اجازه می دهد تا عملیات فایل را بسیار سریع، ایمن و قابل اطمینان انجام دهید. دیگر چه نیازداریم؟ :-)

آنچه برای این کار لازم است

برای اینکه در مورد نسخه های NFS و پشتیبانی از آنها در کرنل های مختلف مدت زیادی غر نزنیم، بلافاصله فرض می کنیم که نسخه هسته شما کمتر از 2.2.18 نیست. در اسناد رسمی، توسعه دهندگان قول پشتیبانی کامل از عملکرد NFS نسخه 3 در این هسته و نسخه های بعدی را داده اند.

نصب و راه اندازی

برای اجرای سرور NFS در اوبونتو 7.10 - Gutsy Gibbon، باید بسته های nfs-common و nfs-kernel-server را نصب کنم. اگر فقط به یک کلاینت NFS نیاز دارید، nfs-kernel-server نیازی به نصب ندارد.

تنظیم سرور

پس از اینکه همه بسته ها با موفقیت نصب شدند، باید بررسی کنید که آیا شبح NFS در حال اجرا است:

/etc/init.d/nfs-kernel-server status

اگر دیمون در حال اجرا نیست، باید آن را با دستور شروع کنید

/etc/init.d/nfs-kernel-server start

پس از اینکه همه چیز با موفقیت شروع شد، می توانید فایل سیستم را صادر کنید. این فرآیند به خودی خود بسیار ساده است و کمترین زمان را می طلبد.

فایل اصلی پیکربندی سرور NFS در /etc/exports قرار دارد و دارای فرمت زیر است:

فهرست ماشین 1 (گزینه 11، گزینه 12) ماشین 2 (گزینه 21، گزینه 22)

فهرست راهنما- مسیر مطلق به دایرکتوری سرور FS که باید به آن دسترسی داشته باشید

machineX- نام DNS یا آدرس IP رایانه مشتری که دسترسی از آن مجاز است

گزینهXX- پارامترهای صادرات FS، رایج ترین آنها:

  • ro- دسترسی به فایل فقط خواندنی است
  • rw- دسترسی خواندن/نوشتن داده شده است
  • no_root_squash— به طور پیش‌فرض، اگر به منبع NFS به‌عنوان روت وصل شوید، سرور به‌خاطر امنیت، در سمت خود به‌عنوان کاربر هیچ‌کس به فایل‌ها دسترسی خواهد داشت. با این حال، اگر این گزینه را فعال کنید، فایل های سمت سرور به صورت روت قابل دسترسی خواهند بود. مراقب این گزینه باشید.
  • no_subtree_check- به طور پیش‌فرض، اگر نه کل پارتیشن را روی سرور، بلکه فقط بخشی از سیستم فایل را صادر کنید، دیمون بررسی می‌کند که آیا فایل درخواستی به صورت فیزیکی در همان پارتیشن قرار دارد یا خیر. اگر کل پارتیشن را صادر می کنید یا نقطه اتصال سیستم فایل صادر شده بر روی فایل های دیگر حجم های فیزیکی تأثیر نمی گذارد، می توانید این گزینه را فعال کنید. این باعث افزایش سرعت سرور می شود.
  • همگام سازی— اگر احتمال قطع ناگهانی اتصال یا قطع برق سرور وجود دارد، این گزینه را فعال کنید. اگر این گزینه فعال نباشد، در صورت توقف ناگهانی سرور NFS، خطر از دست رفتن اطلاعات بسیار زیاد است.

بنابراین، فرض کنید باید به دایرکتوری /var/backups کامپیوتر ashep-laptop دسترسی به کامپیوتر ashep-desktop را بدهیم. دسترسی دایرکتوری برای کپی فایل های پشتیبان از asep-desktop مورد نیاز است. پرونده من اینطور شد:

/var/backups ashep-desktop(rw,no_subtree_check,sync)

پس از افزودن خط به /etc/exports، باید سرور NFS را مجددا راه اندازی کنید تا تغییرات اعمال شوند.

/etc/init.d/nfs-kernel-server راه اندازی مجدد

همین. می توانید اتصال FS صادر شده را در رایانه مشتری شروع کنید.

راه اندازی مشتری

در سمت کلاینت، سیستم فایل راه دور به همان روشی که سایر سیستم ها نصب می شود - با دستور mount. همچنین، در صورت نیاز به اتصال خودکار FS هنگام بوت شدن سیستم عامل، هیچکس شما را از استفاده از /etc/fstab منع نمی کند. بنابراین، گزینه mount به صورت زیر خواهد بود:

Mount -t nfs asep-laptop:/var/backups/ /mnt/ashep-laptop/backups/

اگر همه چیز به خوبی پیش رفت و باید در هنگام بوت به طور خودکار به FS راه دور متصل شوید، فقط خط را به /etc/fstab اضافه کنید:

Ashep-laptop:/var/backups /mnt/ashep-laptop/backups nfs auto 0 0

چه چیز دیگری

بنابراین ما یک نمای کلی کاربردی و کوچک از قابلیت های NFS داریم. البته این تنها بخش کوچکی از کاری است که NFS می تواند انجام دهد. این برای استفاده در خانه یا در یک دفتر کوچک کافی است. اگر این برای شما کافی نیست، توصیه می کنم ابتدا بخوانید

برای توزیع فایل‌ها در یک شبکه محلی، فناوری‌های زیر قابل تشخیص هستند (سیستم‌های مبتنی بر لینوکس در نظر گرفته می‌شوند):

  • سیستم فایل شبکه (NFS) - پروتکل دسترسی به شبکه برای سیستم های فایل؛
  • فایل های منتقل شده از طریق پروتکل شل (FISH) یک پروتکل شبکه ای است که از یا استفاده می کند RSHبرای انتقال فایل ها بین رایانه ها؛
  • Secure SHell FileSystem (SSHFS) - یک سرویس گیرنده سیستم فایل برای نصب دستگاه های دیسک بر روی سیستم های راه دور که برای تعامل با سیستم راه دور استفاده می شود. SFTP;
  • Samba یک بسته نرم افزاری است که به شما امکان می دهد از طریق پروتکل SMB/CIFS به درایوهای شبکه و چاپگرهای سیستم عامل های مختلف دسترسی داشته باشید.

در این یادداشت در مورد NFS.

NFS (سیستم فایل شبکه)زمانی مفید است که نیاز به توزیع فایل ها/دایرکتوری ها برای همه افراد در شبکه دارید. دسترسی به شفافیت با NFSبه مشتریان اجازه می دهد تا یک سیستم فایل راه دور را به عنوان یک فهرست محلی نصب کنند و سیستم های فایل می توانند انواع مختلفی داشته باشند. این بدان معنی است که هر برنامه مشتری که می تواند با یک فایل محلی کار کند می تواند به راحتی با یک فایل متصل از طریق کار کند NFS، بدون هیچ تغییری در خود برنامه.

به منافع NFSرا می توان نسبت داد:

  • کاهش بار روی پردازنده؛
  • نمایش منابع مشترک به عنوان دایرکتوری های معمولی در سیستم؛
  • در حال حاضر در دسترس است NFS نسخه 4.1، که ویژگی جدیدی را معرفی کرد pNFSبه شما امکان می دهد اجرای اشتراک گذاری فایل را موازی کنید. همچنین یک افزونه برای NFS 2 و 3 وجود دارد - WebNFSکه امکان ادغام آسان تر در مرورگرهای وب و توانایی کار از طریق فایروال را فراهم می کند.

    طرح کار NFSپروتکل

    نصب و پیکربندی سرور NFS تحت لینوکس

    بیایید بررسی کنیم که آیا سیستم از NFS پشتیبانی می کند یا خیر

    Cat /proc/filesystems | grep nfs

    زیر آرچ لینوکسسرور و کلاینت در یک بسته هستند

    Yaourt -S nfs-utils

    برای نصب سرور ( nfs-kernel-server) و مشتری ( nfs-common) زیر اوبونتوبسته های مورد نیاز

    Sudo apt-get install nfs-kernel-server nfs-common portmap

    در ادامه این یادداشت، از IP برای سرور استفاده خواهد شد 192.168.1.100 . برای اینکه همیشه یک IP به سرور اختصاص داده شود، لازم است که در سرور DHCP (معمولاً روتر) توزیع یک IP خاص به یک آدرس MAC خاص را مشخص کنید. یا سرور DNS محلی خود را بالا ببرید. به عنوان مثال یا.

    آدرس MAC را می توان با استفاده از فیلد ifconfig پیدا کرد اتر V آرچ لینوکس).

    NFSv4فرض می کند که یک دایرکتوری ریشه وجود دارد که در داخل آن فایل های توزیع قبلاً قرار دارند. مثلا، /srv/nfs- ریشه، /srv/nfs/audio- دایرکتوری برای توزیع موسیقی. اگر این دستورالعمل جدید را در نسخه دنبال نکنید 4 ، ممکن است هنگام اتصال توسط مشتری یک خطا دریافت کنید:

    Mount.nfs: سرور هنگام نصب 192.168.1.100:/home/proft/torrents دسترسی را رد کرد

    اگر همچنان می‌خواهید از این رویکرد در سرور بدون پوشه اصلی استفاده کنید NFS، سپس هنگام نصب توسط مشتری، باید به صراحت نسخه را مشخص کنید 3

    # برای دستور mount mount -o "vers=3" 192.168.1.100:/home/proft/torrents /home/proft/nfs/torrents # برای fstab 192.168.1.100:/home/proft/torrents /home/proft/nfs / torrents nfs soft,nfsvers=3 0 0

    من استفاده خواهم کرد NFSv4با دایرکتوری ریشه در /srv/nfs/و نصب زیر شاخه ها با استفاده از mount --bind .

    فرض کنید می خواهیم

    • توزیع دایرکتوری ~/تورنتبا rwدسترسی برای هر کسدر شبکه محلی؛
    • توزیع دایرکتوری ~/عکسبا roدسترسی برای هاست با IP 192.168.1.101 ;

    ابتدا یک دایرکتوری ریشه و زیر شاخه های لازم ایجاد می کنیم.

    Sudo mkdir -p /srv/nfs/(تورنت، عکس)

    دایرکتوری های موجود را سوار کنید تورنت، عکس V /srv/nfs.

    # sudo vim /etc/fstab /home/proft/torrents /srv/nfs/torrents none bind 0 0 /home/proft/photos /srv/nfs/photos none bind 0 0

    بیایید ویرایش کنیم /etc/exports، که همه دایرکتوری های مشترک را توصیف می کند

    # sudo vim /etc/exports # فرمت فایل: دایرکتوری allow-hosts(options) /srv/nfs/torrents 192.168.1.1/24(rw,async) /srv/nfs/photos 192.168.1.101 (ro,async)

    توجه داشته باشید که هیچ فاصله ای بین آنها وجود ندارد میزبانان مجازو (گزینه ها). وجود یک فضا تفسیر متفاوتی از قوانین را معرفی می کند.

    گزینه های موجود:

    • ro (rw) - اجازه دسترسی فقط خواندنی (خواندن/نوشتن) را می دهد.
    • subtree_check (no_subtree_check) - در برخی موارد لازم است نه کل بخش، بلکه فقط بخشی از آن صادر شود. در این حالت سرور NFSباید بررسی‌های بیشتری را روی درخواست‌های مشتری انجام دهد تا اطمینان حاصل شود که آنها فقط سعی می‌کنند به فایل‌های واقع در زیر شاخه‌های مناسب دسترسی داشته باشند. این کنترل زیردرخت ( چک های زیر درخت) تا حدودی سرعت تعامل با مشتریان را کاهش می دهد، اما اگر آن را رد کنید، ممکن است باعث ایجاد مشکل در امنیت سیستم شود. با استفاده از این گزینه می توانید کنترل یک زیردرخت را لغو کنید no_subtree_check. گزینه زیردرخت_بررسی، که شامل چنین کنترلی است، به طور پیش فرض فرض می شود. اگر دایرکتوری صادر شده مشابه یک پارتیشن دیسک باشد، بررسی درخت فرعی را می توان حذف کرد.
    • sync (async) - مشخص می کند که سرور فقط پس از نوشتن تغییرات ایجاد شده توسط آن درخواست ها روی دیسک، باید به درخواست ها پاسخ دهد. گزینه ناهمگامبه سرور می‌گوید منتظر نوشتن اطلاعات روی دیسک نماند، که عملکرد را بهبود می‌بخشد اما قابلیت اطمینان را کاهش می‌دهد زیرا در صورت خرابی اتصال یا خرابی تجهیزات، ممکن است از دست دادن داده ها رخ دهد.
    • noaccess - دسترسی به دایرکتوری مشخص شده را رد می کند. این می تواند مفید باشد اگر قبلاً دسترسی همه کاربران شبکه را به یک فهرست خاص تنظیم کرده باشید، و اکنون می خواهید دسترسی به زیر شاخه را فقط برای برخی از کاربران محدود کنید.
    • no_root_squash – کاربر پیش فرض ریشهدر ماشین کلاینت حقوق یکسانی برای دایرکتوری روی سرور نخواهد داشت. این گزینه این محدودیت را حذف می کند.
    • nohide- NFSبه طور خودکار منابع غیر محلی را نشان نمی دهد (به عنوان مثال، با استفاده از mount --bind نصب شده است)، این گزینه نمایش چنین منابعی را فعال می کند.
    • ناامن - استفاده از پورت های غیرمجاز (> 1024)؛

    راه اندازی سرور NFS

    # تحت archlinux sudo systemctl شروع rpc-idmapd.service rpc-mountd.service # تحت ubuntu sudo /etc/init.d/nfs-kernel-server start

    در آینده، هنگام تغییر فایل پیکربندی، کافی است آن را دوباره با دستور زیر بخوانید:

    سودو صادراتف -rav

    دستور rpcinfo -p | grep nfs به شما امکان می دهد بررسی کنید که آیا سرور با موفقیت شروع شده است یا خیر.

    مشتری لینوکس

    نصب و راه اندازی

    # تحت archlinux yaourt -S nfs-utils # تحت ubuntu sudo apt-get install portmap nfs-common

    بیایید دایرکتوری هایی برای نصب منابع شبکه ایجاد کنیم تورنت هاو عکس ها

    Mkdir -p ~/nfs/(تورنت، عکس)

    برای نصب دستی انجام خواهیم داد

    Sudo mount -t nfs -o rw,soft 192.168.1.100:/srv/nfs/torrents /home/proft/nfs/torrents sudo mount -t nfs -o rw,soft 192.168.1.100:/srv/nfs/nfs/ /proft/nfs/photos

    گزینه نرممشخص می‌کند که تلاش‌ها برای اتصال اشتراک‌گذاری پس از مدت زمان مشخصی بی‌صدا لغو شود (زمان توسط گزینه مشخص شده است retrans). جزئیات بیشتر در مرد nfs.

    این روش خیلی راحت نیست، زیرا هر بار پس از راه اندازی مجدد باید این دستورات را اجرا کنید. بیایید نصب را به صورت خودکار انجام دهیم.

    برای نصب خودکار، فایل را ویرایش کنید /etc/fstab

    # sudo vim /etc/fstab 192.168.1.100:/srv/nfs/torrents /home/proft/net/torrents nfs rw,soft 0 0 192.168.1.100:/srv/nfs/photos /home/proft/photos/home/proft/ ro، نرم 0 0

    اما این روش اشکالاتی نیز دارد، به عنوان مثال، اگر سرور در دسترس نباشد، ممکن است بارگیری مشتری به دلیل تلاش برای اتصال به سرور NFS متوقف شود. برای رفع این مشکل، زیر را ببینید AutoFS.

    AutoFS - اتصال خودکار منابع شبکه

    امکان نصب یک منبع راه دور با استفاده از آن وجود دارد AutoFSبا اولین دسترسی و بدون هیچ فعالیتی به طور خودکار از حالت نصب خارج شوید.

    AutoFSاز الگوهای موجود در /etc/autofs. قالب اصلی نامیده می شود اتو.استاد، می تواند به یک یا چند الگوی دیگر برای انواع رسانه های خاص اشاره کند.

    نصب و راه اندازی

    # تحت archlinux yaourt -S autofs # تحت ubuntu sudo apt-get install autofs

    راه های مختلفی برای تعیین روش های نصب خودکار وجود دارد. من از این استفاده می کنم: در /home/proft/nfsدایرکتوری به طور خودکار با نام سرور NFS ایجاد می شود که در آن دایرکتوری های قابل دسترسی روی سرور به طور خودکار ایجاد می شود.

    # sudo vim /etc/autofs/auto.master /home/proft/nfs /etc/autofs/auto.nfs --timeout=60

    پارامتر اضافی تایم اوتتعداد ثانیه هایی را که پس از آن دستگاه جدا می شود را تنظیم می کند. پارامتر روحمشخص می کند که منابع پیکربندی شده همیشه نمایش داده می شوند و نه تنها زمانی که در دسترس هستند (این گزینه به طور پیش فرض در AutoFS 5)

    در شرح خواهیم داد /etc/autofs/auto.nfsسرور NFS و دایرکتوری ریشه.

    # sudo vim /etc/autofs/auto.nfs nfsserver 192.168.1.100:/srv/nfs

    اکنون در اولین تماس /home/proft/nfs/torrentsمنبع NFS به طور خودکار سوار می شود.

    بیایید سرویس autofs را مجددا راه اندازی کنیم:

    # تحت archlinux sudo systemctl راه اندازی مجدد autofs # تحت ubuntu sudo /etc/init.d/autofs restart

    همچنین می توانید زمان انتظار برای در دسترس قرار گرفتن یک منبع NFS را مشخص کنید. برای این کار باید مقادیر را تغییر دهید MOUNT_WAIT.

    # under archlinux # sudo vim /etc/conf.d/autofs MOUNT_WAIT=5 # under ubuntu sudo /etc/default/autofs MOUNT_WAIT=5

    اجبار استفاده از NFS v3

    در بعضی موارد NFSv4ممکن است به کندی کار کند برای رفع این مشکل می توانید آن را مجبور به استفاده از نسخه سوم کنید.

    من دستورالعمل هایی را برای نصب و پیکربندی NFS (سیستم فایل شبکه) ارائه می کنم. NFS یک سیستم فایل شبکه است که به شما امکان می‌دهد به فایل‌ها و دایرکتوری‌ها روی یک رایانه از راه دور (سرور) دسترسی داشته باشید، گویی این فایل‌ها و دایرکتوری‌ها محلی هستند. مزیت اصلی چنین سیستمی این است که ایستگاه های کاری فردی می توانند کمتر از فضای دیسک خود استفاده کنند، زیرا داده های به اشتراک گذاشته شده در یک ماشین جداگانه (انبار داده ها) ذخیره می شود و برای ماشین های دیگر در شبکه در دسترس است. NFS یک برنامه سرویس گیرنده-سرور است که در آن نقش ذخیره سازی به سرور اختصاص داده می شود. هر شرکت کننده شبکه یک سرویس گیرنده NFS است که درایو شبکه سرور را در سیستم فایل خود نصب می کند.

    بیایید اوبونتو 12.04 را به عنوان یک سرور در نظر بگیریم.
    ما از Centos و Winows 7 به عنوان مشتری استفاده و آزمایش خواهیم کرد.

    سرور اصلی: 192.168.2.213 (اوبونتو)

    مشتریان: 192.168.2.72 (Centos)، 192.168.2.180 (ویندوز)

    تنظیم سرور

    ابتدا باید سرور را پیکربندی کنید. از آنجایی که از اوبونتو به عنوان سرور استفاده خواهیم کرد، باید بسته مناسب را نصب کنیم

    Root@ubuntu:~# apt-get install nfs-kernel-server

    پس از نصب بسته های مورد نیاز، دو فایل پیکربندی ایجاد کردیم. از لاگ نصب:

    ... ایجاد فایل کانفیگ /etc/idmapd.conf با نسخه جدید ایجاد فایل کانفیگ /etc/default/nfs-common با نسخه جدید ...

    فایل اول کاربر (ایجاد شده در هنگام نصب بسته) و گروهی را برای شرکت در نقشه برداری (شناسایی کاربر) توصیف می کند.

    Root@ubuntu:~# cat /etc/idmapd.conf پرحرفی = 0 Pipefs-Directory = /run/rpc_pipefs # دامنه خود را در اینجا تنظیم کنید، اگر شناسه با FQDN منهای نام میزبان متفاوت است # دامنه = دامنه محلی Nobody-User = nobody Nobody-Group = بدون گروه

    همانطور که می دانیم، در لینوکس هر فایل متعلق به یک کاربر خاص است که خود (UID، GID) را دارد، اما در سیستم های ویندوز این طرح کمی متفاوت است. و در این راستا مکانیزم نقشه برداری اختراع شد که کاربران مختلف را از سیستم عامل های مختلف به شکلی قابل فهم برای سیستم فایل لینوکس ترجمه می کند.
    فایل دوم برای پیکربندی احراز هویت Kerberos و پیکربندی یک پورت غیر استاندارد که دیمون به آن گوش خواهد داد، مورد نیاز است. ما هنوز به او نیاز نداریم. راه اندازی Kerberos در مقاله بعدی مورد بحث قرار خواهد گرفت.

    Root@ubuntu:~# cat /etc/default/nfs-common # اگر مقادیری را برای گزینه‌های NEED_ تنظیم نکنید، سعی می‌شود # شناسایی خودکار انجام شود. این باید برای اکثر مردم کافی باشد. جایگزین های معتبر # برای گزینه های NEED_ "بله" و "خیر" هستند. # آیا می خواهید statd daemon را شروع کنید؟ برای NFSv4 مورد نیاز نیست. NEED_STATD= # گزینه برای rpc.statd. # آیا rpc.statd باید روی یک پورت خاص گوش کند؟ این به ویژه هنگامی که فایروال مبتنی بر پورت دارید # مفید است. برای استفاده از یک پورت ثابت، این متغیر # را روی یک آرگومان statd مانند: "--port 4000 --outgoing-port 4001" تنظیم کنید. # برای اطلاعات بیشتر، به rpc.statd(8) یا http://wiki.debian.org/SecuringNFS STATDOPTS= # مراجعه کنید. برای نصب Kerberos مورد نیاز است. NEED_GSSD=

    حالا بیایید راه اندازی را ادامه دهیم.
    همه دایرکتوری ها برای اشتراک گذاری باید در فایل /etc/exports ثبت شوند. ابتدا بیایید 2 پوشه در فهرست اصلی ایجاد کنیم و فایل ها را در آنها رها کنیم. درخت دایرکتوری ها و فایل ها برای صادرات:

    Root@ubuntu:~# tree /home/alex/ /home/alex/ ├── nfs_dir1 │ ├── file1_dir1 │ ├── file2_dir1 │ └└├─ file3_n ── file1_dir2 ├── file2_dir2 └─ ─ file3_dir2

    اکنون باید یک کاربر و گروه برای این دایرکتوری ها اختصاص دهید (آن را از فایل /etc/idmapd.conf بگیرید).

    Root@ubuntu:~# chown –R nobody:nogroup nfs_dir1/ root@ubuntu:~# chown –R nobody:nogroup nfs_dir2/

    ابتدا، اجازه دهید دایرکتوری nfs_dir1 را برای یک IP خاص صادر کنیم. فایل /etc/exprots را ویرایش کنید.

    Root@ubuntu:~# vim /etc/exports # برای یک هاست خاص (ویندوز) /home/alex/nfs_dir1 192.168.2.180 (rw, sync, all_squash, no_subtree_check, unsecure) # برای هر میزبانی در زیر شبکه /home/a /nfs_dir2 192.168 .2.0/24 (rw,no_root_squash,sync,no_subtree_check)

    در اینجا حداقل مجموعه ای از گزینه ها برای کارکرد صحیح فضای ذخیره سازی با سیستم عامل ویندوز وجود دارد.

    • /home/alex/nfs_dir1- مسیر پوشه ای که دسترسی به آن داده شده است.
    • 192.168.2.180 - آدرس IP که به پوشه دسترسی دارد (شما می توانید کل شبکه را مشخص کنید، سپس ورودی مانند 192.168.2.0/24 خواهد بود)
    • (rw, sync, all_squash, no_subtree_check)- مجموعه ای از گزینه ها

    گزینه های محبوب:

    • rw–read/write (می تواند مقدار ro را بگیرد - فقط خواندنی).
    • no_root_squash– به طور پیش‌فرض، کاربر ریشه در دستگاه کلاینت به دایرکتوری مشترک سرور دسترسی نخواهد داشت. با این گزینه این محدودیت را حذف می کنیم. به دلایل ایمنی، بهتر است این کار را انجام ندهید.
    • همگام سازی- حالت دسترسی همزمان (می تواند مقدار مخالف را بگیرد - ناهمگام);
    • هیچ دسترسی- دسترسی به دایرکتوری مشخص شده را رد می کند. این می تواند مفید باشد اگر قبلاً دسترسی همه کاربران شبکه را به یک فهرست خاص تنظیم کرده باشید، و اکنون می خواهید دسترسی به زیر شاخه را فقط برای برخی از کاربران محدود کنید.
    • all_squash- به این معنی است که تمام اتصالات از یک کاربر ناشناس (که برای کلاینت ویندوز لازم است) ایجاد می شود.
    • بدون نوید= 1000 - یک کاربر ناشناس را به یک کاربر "محلی" پیوند می دهد.
    • anongid= 1000 - کاربر ناشناس را به گروه کاربر "محلی" متصل می کند.
    • no_subtree_check(subtree_check)-اگر یک زیر شاخه از یک سیستم فایل صادر شود، اما نه کل فایل سیستم، سرور بررسی می کند که آیا فایل درخواستی در زیر شاخه صادر شده است یا خیر. غیرفعال کردن تأیید امنیت را کاهش می دهد اما سرعت انتقال داده را افزایش می دهد.
    • به طور معمول، لینوکس (و سایر سیستم‌عامل‌های مشابه یونیکس) پورت‌های TCP و UDP را از 1-1023 (که پورت‌های امن نامیده می‌شوند) را برای استفاده توسط فرآیندهای کاربر ریشه ذخیره می‌کنند. برای اطمینان از اینکه root اتصال راه دور NFS را راه اندازی کرده است، سرور NFS معمولاً به مشتریان راه دور نیاز دارد تا از پورت های امن استفاده کنند. با این حال، این قرارداد توسط برخی از سیستم عامل ها (مانند ویندوز) رعایت نمی شود. در چنین مواردی، گزینه ناامنبه کلاینت NFS اجازه می دهد تا از هر پورت TCP/UDP استفاده کند. این معمولاً هنگام سرویس دهی به کلاینت های ویندوز مورد نیاز است.

    تمام گزینه ها و نحو موجود برای نوشتن میزبان ها، گروه های میزبان و غیره. می توانید آن را در دفترچه راهنما بخوانید

    Root@ubuntu:~# exportfs –a

    حالا بیایید بررسی کنیم که چه چیزی صادر کردیم.

    Root@ubuntu:~# exportfs -v /home/alex/nfs_dir1 192.168.2.180(rw,wdelay,all_squash,no_subtree_check,insecure) /home/alex/nfs_dir2 192.168.2.0,000,000,00,00,00,00,00,00,00,00:00:00 ck)

    سرور پیکربندی شده است.

    راه اندازی مشتریان

    راه اندازی یک کلاینت ویندوز

    اگر پیغام خطایی وجود نداشت. می توانید نصب را در سمت مشتری شروع کنید.
    ابتدا باید یک سرویس NFS (سرویس مشتری) اضافه کنید. برای انجام این کار، به Start -> Control Panel -> Programs and Featuresو روی آیتم منو در سمت چپ کلیک کنید ویژگی های ویندوز را روشن یا خاموش کنید. در پنجره ای که ظاهر می شود، را انتخاب کنید مشتری برای NFSو کلیک کنید خوب(عکس. 1).


    تصویر 1

    بعد باید دیسک را سوار کنید. برای این کار می توانید از خط فرمان استفاده کنید یا به سادگی کلیک کنید بر روی My Computer کلیک راست کرده و Map Network Drive را انتخاب کنید. و خط \\192.168.2.213\home\alex\nfs_dir1 را وارد کنید. این IP سرور و مسیر پوشه است (شکل 2).


    شکل 2

    اگر همه چیز خوب باشد، دیسک را خواهیم دید (شکل 3).


    شکل 3

    همین کار را می توان با استفاده از خط فرمان انجام داد (شکل 4).


    شکل 4

    اشتباهات احتمالی:

    اگر نمی توانید یک درایو شبکه NFS را به سیستم عامل ویندوز متصل کنید (شکل 5).
    1. سرویس گیرنده NFS نصب نشده است
    2. فایروال فعال (پیکربندی نشده)
    3. عدم دسترسی به شبکه به سرور
    4. پارامترهای نصب نادرست وارد شده است
    5. Export روی سرور پیکربندی نشده است (تنظیمات اعمال نمی شوند).
    6. گزینه ناامن را در تنظیمات صادرات اضافه کنید


    شکل 5 - خطا در اتصال یک درایو NFS شبکه

    اگر:
    1. مجوزهای پوشه روی سرور تنظیم نشده است (nobody:nogroup)
    2. گزینه all_squash در تنظیمات صادرات تنظیم نشده است
    3. گزینه rw در تنظیمات صادرات تنظیم نشده است


    شکل 6 – خطا هنگام افزودن فایل به دیسک NFS

    راه اندازی مشتری Centos

    راه اندازی سیستم های لینوکس بسیار ساده و بدون دردسر است. شما فقط باید بسته های لازم را نصب کنید و دیسک را سوار کنید. Centos به بسته های زیر نیاز دارد

    # یام nfs-utils nfs-utils-lib را نصب کنید

    # mkdir -p /mnt/nfs # mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/nfs # mount /dev/mapper/vg_slave-lv_root on / نوع ext4 (rw) proc در /proc نوع proc (rw) sysfs در /sys نوع sysfs (rw) devpts در /dev/pts تایپ کنید devpts (rw,gid=5,mode=620) tmpfs در dev/shm تایپ کنید tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0" ) /dev/sda1 در /boot type ext4 (rw) هیچکدام در /proc/sys/fs/binfmt_misc نوع binfmt_misc (rw) sunrpc در /var/lib/nfs/rpc_pipefs نوع rpc_pipefs (rw) 192.168:2. alex/nfs_dir1 در /mnt/nfs نوع nfs (rw,vers=4,addr=192.168.2.213,clientaddr=192.168.2.72)

    در این حالت، می‌توانیم هر فایل و دایرکتوری را از طرف هر کاربر در سیستم به پوشه nfs_dir1 نصب شده اضافه کنیم ( all_squash). اما اگر پوشه دوم nfs_dir2 را Mount کنیم، فقط root می تواند در آن بنویسد، زیرا یک گزینه در آنجا وجود دارد no_root_squash. بیایید بررسی کنیم.

    # mkdir /mnt/dir1 # mkdir /mnt/dir2 # mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/dir1 # mount 192.168.2.213:/home/alex/nfs_dir2 or #mnt4 -dir2 -o rw,hard,intr,bg 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 # echo "Hello" > /mnt/dir1/file1 # echo "Hello" > /mnt/dir2/file1 # su alex $ echo "Hello" > /mnt/dir1/file1 $ echo "Hello" > /mnt/dir2/file1 bash: /mnt/dir2/file1: مجوز رد شد

    پرچم های نصب احتمالی

    پرچم شرح
    rw سیستم فایل را برای خواندن/نوشتن سوار کنید (باید توسط سرور در حالت خواندن/نوشتن صادر شود)
    هفتم نصب یک فایل سیستم فقط خواندنی
    bg اگر سیستم فایل قابل نصب نیست (سرور پاسخ نمی‌دهد)، باید عملیات را به پس‌زمینه منتقل کنید و به پردازش سایر درخواست‌های نصب ادامه دهید.
    سخت اگر سرور از کار بیفتد، عملیاتی که سعی در دسترسی به آن دارند تا زمانی که سرور آنلاین شود مسدود می شود
    نرم اگر سرور از کار بیفتد، عملیاتی که سعی می کند به آن دسترسی پیدا کند با یک پیام خطا ناموفق می شود. این پرچم برای تنظیم به منظور جلوگیری از معلق ماندن فرآیندها در صورت نصب ناموفق سیستم های فایل غیر مهم مفید است.
    داخلی به شما امکان می دهد عملیات مسدود شده را از صفحه کلید قطع کنید (پیام های خطا نمایش داده می شود)
    nointr به شما اجازه نمی دهد عملیات مسدود شده را از صفحه کلید قطع کنید
    retrans=n مشخص می کند که درخواست چند بار باید قبل از بازگشت یک پیام خطا تکرار شود (برای سیستم های فایل نصب شده با پرچم نرم افزار)
    timeo=n فاصله زمانی درخواست ها را تنظیم می کند (در دهم ثانیه)
    rsize=n اندازه بافر خوانده شده را روی n بایت تنظیم می کند
    wsize=fl اندازه بافر نوشتن را روی n بایت تنظیم می کند
    sec=حالت حالت امنیتی را تنظیم می کند
    vers=n نسخه پروتکل NFS را تنظیم می کند
    پروتکل = پروتکل پروتکل حمل و نقل را انتخاب می کند. باید پروتکل tcp برای NVS نسخه 4 باشد

    همچنین می توانید از کنسول بررسی کنید که آیا سرور فایل سیستم را به درستی صادر کرده است یا خیر.

    Root@centos ~# showmount -e 192.168.2.213 لیست صادرات برای 192.168.2.213: /home/alex/nfs_dir2 192.168.2.0/24 /home/alex/nfs_dir1 192.1802.

    افزودن پایه به راه اندازی

    # cat /etc/fstab ... 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 nfs4 rw,bg,intr,hard,nodev,nosuid 0 0

    Root@centos ~# mount -a -t nfs4

    اشتباهات احتمالی

    Root@centos ~# mount -a -t nfs4 mount.nfs4: نقطه مونت /mnt/dir2 وجود ندارد root@centos ~# mount -a -t nfs4 mount.nfs4: اشتراک از راه دور در قالب "host:dir" نیست

    در حالت اول، باید یک پوشه ایجاد کنید. دومی حاوی خطاهای نحوی در fstab است.
    اگر هنگام نصب پارتیشن های NFS با خطا مواجه شدید، لیست را مرور کنید اشتباهات احتمالیاز بخش قبل
    همچنین می توانید از autofs برای نصب پارتیشن های NFS استفاده کنید. آنچه در مورد بحث قرار خواهد گرفت.

    سیستم فایل شبکه (NFS)- پروتکل دسترسی به شبکه برای سیستم های فایل، به شما امکان می دهد تا سیستم های فایل از راه دور را متصل کنید.
    در اصل توسط Sun Microsystems در سال 1984 توسعه یافت. اساس آن Sun RPC: Remote Procedure Call است. NFS مستقل از انواع سیستم فایل سرور و کلاینت است. اجرای بسیاری از سرورها و کلاینت های NFS برای سیستم عامل های مختلف وجود دارد. نسخه فعلی NFS v.4 از ابزارهای مختلف احراز هویت (به ویژه Kerberos و LIPKEY با استفاده از پروتکل RPCSEC GSS) و لیست های کنترل دسترسی (هر دو نوع POSIX و Windows) پشتیبانی می کند.
    NFS به کلاینت‌ها دسترسی شفاف به فایل‌ها و سیستم فایل سرور می‌دهد. برخلاف FTP، پروتکل NFS تنها به قسمت هایی از فایل دسترسی دارد که توسط فرآیند به آنها دسترسی پیدا می کند و مزیت اصلی آن این است که این دسترسی را شفاف می کند. به لطف این، هر برنامه مشتری که می تواند با یک فایل محلی کار کند، می تواند با همان موفقیت با یک فایل NFS بدون تغییر خود برنامه کار کند.
    کلاینت های NFS با ارسال درخواست های RPC به سرور به فایل های روی سرور NFS دسترسی پیدا می کنند. این را می توان با استفاده از فرآیندهای کاربر عادی پیاده سازی کرد - یعنی کلاینت NFS می تواند یک فرآیند کاربر باشد که فراخوانی های RPC خاصی را با سرور برقرار می کند، که می تواند یک فرآیند کاربر نیز باشد.

    نسخه ها
    NFSv1 فقط برای مقاصد تجربی برای استفاده داخلی بود. جزئیات پیاده سازی در RFC 1094 تعریف شده است.
    NFSv2 (RFC 1094، مارس 1989) در ابتدا به طور کامل بر روی UDP اجرا می شد.
    NFSv3 (RFC 1813، ژوئن 1995). توصیفگرهای فایل در نسخه 2 یک آرایه با اندازه ثابت 32 بایتی هستند. در نسخه 3، یک آرایه با اندازه متغیر با اندازه حداکثر 64 بایت است. یک آرایه با طول متغیر در XDR توسط یک شمارنده 4 بایتی و به دنبال آن بایت های واقعی تعریف می شود. این امر باعث کاهش اندازه توصیفگر فایل در پیاده سازی هایی مانند یونیکس می شود که در آن تنها حدود 12 بایت مورد نیاز است، اما به پیاده سازی های غیریونیکس اجازه می دهد تا اطلاعات اضافی را مبادله کنند.
    نسخه 2 تعداد بایت ها در هر READ یا WRITE RPC را به 8192 بایت محدود می کند. این محدودیت در نسخه 3 اعمال نمی شود، که به نوبه خود به این معنی است که با استفاده از UDP محدودیت فقط اندازه دیتاگرام IP (65535 بایت) خواهد بود. این اجازه می دهد تا از بسته های بزرگ برای خواندن و نوشتن در شبکه های سریع استفاده شود.
    اندازه فایل ها و آفست بایت های شروع برای رویه های READ و WRITE اکنون به جای 32 بیت از آدرس دهی 64 بیتی استفاده می کنند که امکان کار با فایل های بزرگتر را فراهم می کند.
    ویژگی های فایل در هر فراخوانی که می تواند بر ویژگی ها تأثیر بگذارد، برگردانده می شود.
    Writes (WRITEs) می تواند ناهمزمان باشد، در حالی که در نسخه 2 قرار بود همزمان باشند.
    یک رویه حذف شد (STATFS) و هفت رویه اضافه شد: ACCESS (مجوزهای فایل را بررسی کنید)، MKNOD (ایجاد یک فایل یونیکس ویژه)، READDIRPLUS (نام فایل‌ها را به همراه ویژگی‌های آن‌ها در یک فهرست برمی‌گرداند)، FSINFO (اطلاعات آماری مربوط به آن‌ها را برمی‌گرداند. سیستم فایل )، FSSTAT (اطلاعات سیستم فایل پویا را برمی گرداند)، PATHCONF (اطلاعات فایل POSIX.1 را برمی گرداند)، و COMMIT (نوشتن های ناهمزمان قبلی را به ذخیره سازی دائمی انجام می دهد).
    در زمان معرفی نسخه 3، توسعه دهندگان شروع به استفاده بیشتر از TCP به عنوان یک پروتکل انتقال کردند. اگرچه برخی از توسعه دهندگان قبلاً از TCP برای NFSv2 استفاده کرده بودند، Sun Microsystems پشتیبانی TCP را در NFS نسخه 3 اضافه کرد. این امر استفاده از NFS از طریق اینترنت را امکان پذیرتر کرد.
    NFSv4 (RFC 3010، دسامبر 2000، RFC 3530، اصلاح شده در آوریل 2003)، تحت تأثیر AFS و CIFS، شامل بهبود عملکرد، امنیت بالا، و تبدیل به یک پروتکل تمام عیار شد. نسخه 4 اولین نسخه ای بود که پس از انتقال پروتکل Sun Microsystems به NFS به طور مشترک با گروه ضربت مهندسی اینترنت (IETF) توسعه یافت. NFS v4.1 در ژانویه 2010 توسط IESG تأیید شد و شماره RFC 5661 را دریافت کرد. یک نوآوری مهم در نسخه 4.1 مشخصات pNFS - Parallel NFS، مکانیزمی برای دسترسی مشتری NFS موازی به داده ها از چندین سرور NFS توزیع شده است. وجود چنین مکانیزمی در استاندارد سیستم فایل شبکه به ایجاد سیستم های ذخیره سازی و اطلاعاتی "ابر" توزیع شده کمک می کند.

    ساختار NFS
    ساختار NFS شامل سه جزء در سطوح مختلف است:
    لایه برنامه (خود NFS) از فراخوانی های رویه راه دور (rpc) تشکیل شده است که عملیات لازم را با فایل ها و دایرکتوری ها در سمت سرور انجام می دهد.
    عملکرد لایه ارائه توسط پروتکل XDR (EXternal Data Representation) انجام می شود که یک استاندارد انتزاعی داده بین پلتفرمی است. پروتکل XDR یک شکل یکپارچه و متعارف از نمایش داده را توصیف می کند که به معماری سیستم کامپیوتری بستگی ندارد. هنگام انتقال بسته ها، مشتری RPC داده های محلی را به شکل متعارف تبدیل می کند و سرور عملیات معکوس را انجام می دهد.
    سرویس RPC (Remote Procedure Call) که به کلاینت اجازه می دهد تا رویه های راه دور را درخواست کند و آنها را روی سرور اجرا کند، عملکردهای سطح جلسه را نشان می دهد. اتصال منابع شبکه
    روش اتصال یک منبع شبکه با استفاده از NFS "صادرات" نامیده می شود. کلاینت می تواند از سرور درخواست کند تا منابع صادر شده ای را که نشان می دهد فهرست کند. خود سرور NFS فهرستی از منابع صادر شده خود را پخش نمی کند.
    بسته به گزینه های مشخص شده، منبع صادر شده را می توان به صورت "فقط خواندنی" مونت کرد (ضمیمه کرد)، می توانید لیستی از میزبان هایی که مجاز به نصب هستند تعریف کنید، استفاده از RPC امن (secureRPC) را مشخص کنید. یکی از گزینه ها روش نصب را تعیین می کند: "سخت" (سخت) یا "نرم" (نرم).
    با مانت "سخت"، کلاینت سعی می کند فایل سیستم را به هر قیمتی نصب کند. اگر سرور از کار بیفتد، این باعث می‌شود که کل سرویس NFS مسدود شود: فرآیندهای دسترسی به سیستم فایل در حالت انتظار برای تکمیل درخواست‌های RPC قرار می‌گیرند. از نقطه نظر فرآیندهای کاربر، سیستم فایل مانند یک دیسک محلی بسیار کند به نظر می رسد. هنگامی که سرور به حالت کار باز می گردد، سرویس NFS به کار خود ادامه می دهد.
    با نصب نرم، سرویس گیرنده NFS چندین تلاش برای اتصال به سرور انجام می دهد. اگر سرور پاسخ ندهد، سیستم یک پیغام خطا نشان می دهد و تلاش برای نصب را متوقف می کند. از نقطه نظر منطق عملیات فایل زمانی که سرور از کار می افتد، یک مانت "نرم" شکست دیسک محلی را شبیه سازی می کند.
    انتخاب حالت بستگی به موقعیت دارد. اگر داده‌های روی کلاینت و سرور باید در طول یک خرابی موقت سرویس همگام‌سازی شوند، نصب «سخت» ترجیح داده می‌شود. این حالت همچنین در مواردی که سیستم های فایل نصب شده حاوی برنامه ها و فایل هایی هستند که برای عملکرد مشتری حیاتی هستند، به ویژه برای ماشین های بدون دیسک ضروری است. در موارد دیگر، به خصوص وقتی صحبت از سیستم‌های فقط خواندنی می‌شود، حالت نصب نرم راحت‌تر به نظر می‌رسد.

    اشتراک گذاری در یک شبکه مختلط
    NFS برای شبکه های مبتنی بر یونیکس ایده آل است زیرا با اکثر نسخه های سیستم عامل ارائه می شود. علاوه بر این، پشتیبانی NFS در سطح هسته یونیکس پیاده سازی می شود. استفاده از NFS در کامپیوترهای کلاینت ویندوز مشکلات خاصی را در ارتباط با نیاز به نصب نرم افزار کلاینت تخصصی و نسبتاً گران قیمت ایجاد می کند. در چنین شبکه هایی، استفاده از ابزارهای اشتراک منابع مبتنی بر پروتکل SMB/CIFS، به ویژه نرم افزار Samba، ارجح تر به نظر می رسد.

    استانداردها
    RFC 1094 NFS: مشخصات پروتکل سیستم فایل شبکه] (مارس 1989)
    مشخصات پروتکل RFC 1813 NFS نسخه 3] (ژوئن 1995)
    طرح URL RFC 2224 NFS
    RFC 2339 توافقی بین جامعه اینترنت، IETF و Sun Microsystems, Inc. در مورد پروتکل های NFS V.4
    مشکلات امنیتی RFC 2623 NFS نسخه 2 و نسخه 3 و استفاده پروتکل NFS از RPCSEC_GSS و Kerberos V5
    ملاحظات طراحی RFC 2624 NFS نسخه 4
    پروتکل RFC 3010 NFS نسخه 4
    پروتکل RFC 3530 Network File System (NFS) نسخه 4
    پروتکل سیستم فایل شبکه RFC 5661 (NFS) نسخه 4 نسخه کوچک نسخه 1

    منابع استفاده شده
    1. ru.wikipedia.org
    2. ru.science.wikia.com
    3. phone16.ru
    4. 4stud.info
    5. yandex.ru
    6.google.com

    بهترین مقالات در این زمینه