اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نحوه تنظیمات NFS Network File System در RHEL/CentOS/Fedora and Debian/Ubuntu

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نحوه تنظیمات NFS Network File System در RHEL/CentOS/Fedora and Debian/Ubuntu

    در سیستم عامل های Linux/Unix توسط Sun Microsystems و در سال 1980 نرم افزار NFS یا Network File System برای به اشتراک گذاشتن فایل ها و فولدرها بین سیستم عامل های لینوکس ایجاد گردید. این نرم افزار به شما اجازه میدهد تا فایل سیستم Local خودتان را روی یک شبکه و هاست های ریموت Mount کنید تا به نحوی که گویا به صورت Local در سیستم یکسان mount شده هستند به حساب بیایند. با کمک NFS ما میتوانیم File Sharing بین سیستم عامل های Unix به Linux و برعکس صورت گردد.

    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Network file sharing.jpg
نمایش ها:	1
اندازه:	22.1 KB
شناسه:	19449

    مزایای NFS :

    NFS دسترسی local به فایل های remote را مهیا میسازد.

    NFS معماری استاندارد Client/Server را برای به اشتراک گذاری فایل بین تمام سیستم های linux و unix استفاده میکند.

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

    با کمک NFS ما میتوانیم راه کارهای centralized storage را انجام دهیم.

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

    هیچ Refresh دستی (manual) برای فایل های جدید نیاز نیست.

    ورژن های جدیدتری از NFS همچنین acl ,pseudo root mounts پشتیبانی میکند.

    میتوان آن را با استفاده از Firewalls و Kerberos امن کرد.


    سرویس های NFS :
    NFS یک سرویس System V-launched میباشد. پکیج سرور NFS شامل 3 پکیج میباشد. پکیج portmap و همچنین پکیج های nfs-utils

    portmap :
    این پکیج ارتباطات ایجاد شده از ماشین های دیگر را به سرویس RPC درست map میکند. (بدون نیاز به NFS v4)

    NFS :
    این پکیج درخواست های file sharing ریموت (remote) را به درخواست های local ترجمه(Translate) میکند.

    rpc.mountd :
    این سرویس مسول mount و unmount کردن file system میباشد.


    فایل های مهم برای تنظیمات NFS :
    etc/export :
    این فایل تنظیمات اصلی NFS میباشد و تمام فایل های export شده و دایرکتوری ها در این فایل و در سمت سرور NFS تعریف میشود.

    etc/fstab :
    برای mount کردن یک پوشه NFS روی سیستم حتی بعد از reboot ما نیاز داریم که در فایل etc/fstab تنظیماتی را صورت دهیم.

    etc/sysconfig/nfs :
    کانفیگ فایل NFS برای کنترل کردن این که rpc و سرویس های دیگر روی چه پورتی lisening میکنند.


    نصب و تنظیم NFS Mounts روی سرور linux :
    برای راه اندازی NFS حداقل به 2 ماشین Linux/Unix نیاز داریم. در این پست من 2 سرور استفاده میکنم :
    NFS Server:
    nfsserver.example.com و IP-192.168.0.100

    NFS Client :
    nfsclient.example.com و IP-192.168.0.101

    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	nfs.gif
نمایش ها:	1
اندازه:	19.1 KB
شناسه:	19450

    نصب NFS Server و NFS Client :
    در ابتدا باید پکیج های NFS هم در سرور NFS و هم در کلاینت NFS نصب کنیم. میتوانیم با استفاده از YUM (در سیستم عامل های خانواده Red Hat) و apt-get (در سیستم عامل های خانواده Debian) آن را نصب کنیم :
    کد PHP:
    [root@nfsserver ~]# yum install nfs-utils nfs-utils-lib
    [root@nfsserver ~]# yum install portmap (not required with NFSv4) 

    کد PHP:
    [root@nfsserver ~]# apt-get install nfs-utils nfs-utils-lib 

    اکنون روی هر 2 ماشین سرویس ها را Start میکنیم :
    کد PHP:
    [root@nfsserver ~]# /etc/init.d/portmap start
    [root@nfsserver ~]# /etc/init.d/nfs start
    [root@nfsserver ~]# chkconfig --level 35 portmap on
    [root@nfsserver ~]# chkconfig --level 35 nfs on 

    بعد از نصب پکیج ها و start سرویس ها در هر 2 ماشین باید ماشین ها را به منظور file sharing کانفیگ کنیم.


    تنظیمات NFS Server :
    ابتدا NFS Server را تنظیم میکنیم.

    تنظیم دایرکتوری Export :
    برای به اشتراک گذاشتن یک پوشه با استفاده از NFS ما باید در فایل etc/exports تغییراتی را ایجاد کنیم. در اینجا من پوشه ای با نام nfsshare در پارتیشن / (اسلش) ایجاد میکنم و از آن برای به اشتراک گذاشتن فایل های با سرور کلاینت استفاده خواهم کرد. شما میتوانید حتی یک پوشه موجود روی سیستم تان را با NFS به اشتراک بگذارید :
    کد PHP:
    [root@nfsserver ~]# mkdir /nfsshare 

    اکنون نیاز دارید تغییری را در فایل etc/exports داشته باشیم و سپس سرویس را به منظور اعمال تغییرات باید reset کنیم :
    کد PHP:
    [root@nfsserver ~]# vi /etc/exports

    /nfsshare 192.168.0.101(rw,sync,no_root_squash

    در مثال بالا پوشه nfsshare در پارتیشن / (اسلش) با کلاینت 192.168.0.101 و با سطح دسترسی read/write یا (rw) به اشتراک گذاشته شده است، شما حتی میتوانید به جای نوشتن ip در مثال بالا hostname را استفاده کنید.


    آپشن های NFS :
    بعضی از آپشن هایی که میتوانیم در فایل etc/exports استفاده کنیم به قرار زیر میباشد :

    ro :
    با کمک این گزینه میتوانیم دسترسی read only را برای فایل های share شده لحاظ کنیم. مثلا کلاینت تنها قادر به خواندن است.

    rw :
    این اپشن به client server اجازه میدهد تا علاوه بر دسترسی read بتواند دسترسی write هم داشته باشد.

    sync :
    این آپشن درخواست های به پوشه به اشتراک گذاشته شده را تنها به محض اینکه تغییرات لحاظ شوند را تایید میکند.

    no_subtree_check :
    این آپشن از چک subtree جلوگیری میکند. زمانی که یک پوشه به اشتراک گذاشته شده در حقیقت زیر پوشه ای از یک فایل سیستم بزرگتر باشد NFS از هر دایرکتوری بالای آن scan (اسکنی) را انجام خواهد داد. این اسکن به منظور بررسی سطح دسترسی (permission) و جزییات میباشد.
    غیر فعال ساختن چک subtree اگر چه ممکن است reliability را در NFS افزایش دهد اما امنیت (security) را کاهش خواهد داد.

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

    برای آپشن های بیشتر به شما پیشنهاد میشود تا صفحه راهنمای export را بخوانید.


    تنظیمات NFS Client :
    بعد از تنظیم NFS Server باید دایرکتوری یا پارتیشن به اشتراک گذاشته شده را در سرور کلاینت mount کنیم.


    mount کردن پوشه های share شده روی NFS Client :
    اکنون در سمت کلاینت ما نیاز داریم که پوشه مورد نظر در سرورمان را برای دسترسی local به آن mount کنیم برای این منظور ابتدا نیاز داریم که بدانیم آن پوشه روی سرور ریموت یا nfs server موجود باشد :
    کد PHP:
    [root@nfsclient ~]# showmount -e 192.168.0.100

    Export list for 192.168.0.100:
    /
    nfsshare 192.168.0.101 

    دستور بالا نشان میدهد که یک پوشه با نام nfsshare در 192.168.0.100 برای share با سرور شما موجود است.


    Mount Shared NFS Directory :
    برای mount کردن پوشه مورد نظر میتوانیم دستور زیر را استفاده کنیم :
    کد PHP:
    [root@nfsclient ~]# mount -t nfs 192.168.0.100:/nfsshare /mnt/nfsshare 

    دستور بالا پوشه مورد نظر را در مسیر mnt/nfsshare روی سرور کلاینت mount میکند. شما میتوانید با استفاده از دستور زیر آن را بررسی کنید :
    کد PHP:
    [root@nfsclient ~]# mount | grep nfs

    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
    nfsd on /proc/fs/nfsd type nfsd (rw)
    192.168.0.100:/nfsshare on /mnt type nfs (rw,addr=192.168.0.100

    همانطور که میبینید دستور mount بالا پوشه share شده NFS را به nfsclient مانت (mount) کرده است. برای mount کردن یک پوشه NFS روی سیستم تان به صورت دایمی و حتی بعد از reboot شما باید خطی را در فایل etc/fstab ایجاد کنید :
    کد PHP:
    [root@nfsclient ~]# vi /etc/fstab 

    و خط جدید زیر را همانطور که میبینید به انتهای فایل اضافه کنید :
    کد PHP:
    192.168.0.100:/nfsshare /mnt  nfs defaults 0 0 

    انجام تست برای اطمینان از کار کردن تنظیمات NFS :
    ما میتوانیم سرور NFS مان را با ایجاد یک فایل تست روی سرور و با چک کردن این که آیا در سمت NFS Client فایل موجود است و یا بلعکس آن را تست کنیم.

    در سمت nfsserver* :
    من فایل متنی جدید با نام nfstest.txt در پوشه share شده ایجاد کردم :
    کد PHP:
    [root@nfsserver ~]# cat > /nfsshare/nfstest.txt

    This is a test file to test the working of NFS server setup

    در سمت nfsclient :
    در اینجا به پوشه share شده در client server میرویم و میبینیم که فایل بدون هیچ گونه نیاز به refresh دستی یا restart سرویس موجود است :
    کد PHP:
    [root@nfsclient]# ll /mnt/nfsshare
    total 4
    -rw-r--r-- 1 root root 61 Sep 21 21:44 nfstest.txt
    root
    @nfsclient ~]# cat /mnt/nfsshare/nfstest.txt
    This is a test file to test the working of NFS server setup

    جذف NFS Mount :
    اگر شما بعد از اتمام file sharing بخواهید پوشه به اشتراک شده را از سرورتان unmount کنید شما میتوانید به آسانی از دستور umount استفاده کنید :
    کد PHP:
    root@nfsclient ~]# umount /mnt/nfsshare 

    شما میتوانید ببینید که mount ها حذف شده اند و تنها کافیست دستور زیر را اجرا کنید :
    کد PHP:
    [root@nfsclient ~]# df -h -F nfs 

    همانطور که میبینید پوشه های share شده دیگر موجود نیستند.



    دستورات مهم برای NFS :
    بعضی از دستورات مهم برای NFS به شرح زیر میباشد :

    showmount -e :
    نمایش share های موجود روی ماشین local تان

    showmount -e <server-ip or hostname> :
    لیست کردن share های موجود در remote server

    showmount -d :
    لیست کردن تمام sub directories ها

    exportfs -v :
    نمایش لیستی از فایل های شیر شده و آپشن ها روی یک سرور

    exportfs -a :
    export کردن تمامی پوشه های share شده که در فایل etc/exports لیست شده اند. (یا نام داده شده را به صورت مجزا export میگیرد)

    exportfs -u :
    unexport کردن تمامی پوشه های share شده که در فایل etc/exports لیست شده اند. (یا نام داده شده را به صورت مجزا unexport میگیرد)

    exportfs -r :
    بعد از تغییر فایل etc/exports لیست سرور را refresh میکند.


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


    موفق باشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 07-21-2015, 01:28 AM.

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی
در حال انجام ...
X