در این مقاله به معرفی NFS یا سیستم فایل شبکه ای و همچنین طریقه نصب و راه اندازی NFS در Raspberry Pi خواهیم پرداخت، همراه ما باشید.
سیستم فایل شبکه ای (NFS)
سیستم فایل شبکه ای امکان به اشتراک گذاشتن یک پوشه در یک شبکه ای از رایانه ها را فراهم می نماید. رایانه ای که پوشه اشتراکی بر روی آن قرار دارد به عنوان سرویس دهنده و سایر رایانه های متصل به شبکه به عنوان سرویس گیرنده در نظر گرفته می شوند. سرویس گیرنده ها با مانت (mount) نمودن پوشه اشتراکی، به صورت یک پوشه ای که در ساختار پوشه های خودشان می باشد، عمل می نماید.
نصب و راه اندازی NFS در Raspberry Pi
ابتدا از طریق ترمینال پکیج های مورد نیاز نصب می شود:
sudo apt install nfs-kernel-server
با فرض اینکه می خواهیم پوشه /home/users را به اشتراک بگذاریم، ابتدا پوشه /export/users را ایجاد می کنیم:
sudo mkdir -p /export/users
پوشه های export و /export/users نیاز به مجوز 777 دارند.
در انتها مانت پوشه کاربران انجام می شود:
sudo mount --bind /home/users /export/users
به منظور عدم تکرار دستورات فوق در راه اندازی مجدد رسبری، خطوط زیر در فایل /etc/fstab اضافه می شود:
/home/users /export/users none bind 0 0
سه فایل تنظیمات مرتبط با سیستم فایل شبکه ای وجود دارد:
- /etc/default/nfs-kernel-server
- /etc/default/nfs-common
- /etc/exports
مهمترین ویژگی قابل تنظیم در فایل /etc/default/nfs-kernel-server ویژگی NEED_SVCGSSD می باشد که به دلیل اینکه NFSv4 فعال نشده است مقدار no را دارا می باشد.
به منظور نگاشت خودکار نام ها، فایل /etc/idmapd.conf در رایانه های سرویس دهنده و سرویس گیرنده با محتویات یکسان و نام دامنه معتبر، باید وجود داشته باشد. در بخش Mapping خطوط زیر باید وجود داشته باشد:
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
فایل های سیستم فایل شبکه ای قابل دسترسی همگانی می باشد. به منظور محدود نمودن دسترسی کاربران دستور زیر در فایل /etc/hosts.deny اضافه شود:
rpcbind mountd nfsd statd lockd rquotad : ALL
با این کار، فقط کاربران موجود در /etc/hosts.allow امکان دسترسی به سرویس دهنده را دارند. بدین منظور دستور زیر را در فایل /etc/hosts.allow اضافه می نماییم:
rpcbind mountd nfsd statd lockd rquotad : <list of IPv4s>
در دستور فوق مقدار <list of IPv4s> برابر آدرس آی پی سرویس دهنده و تمام سرویس گیرندگان می باشد.
در انتها به منظور اعمال تغییرات، سرویس بازنشانی می شود:
sudo systemctl restart nfs-kernel-server
تنظیمات مورد نیاز بر روی سرویس دهنده انجام شد. حال تنظیمات مورد نیاز بر روی سرویس گیرندگان با نصب بسته های مورد نیاز انجام می شود:
sudo apt install nfs-common
و مانت پوشه بر روی سرویس گیرنده با دستور زیر انجام می شود:
mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>
به منظور انجام عملیات فوق در هر بار شروع مجدد، دستور زیر را به /etc/fstab اضافه می نماییم:
<nfs-server-IP>:/ /mnt nfs auto 0 0