NFS امکان اشتراک فایل ها میان دو توزیع لینوکس و یا بین هر سیستم عامل یونیکسی دیگر مانند بی اس دی ها و سولاریس و … را فراهم می کند. در این پست چگونگی اشتراک فایل ها بین دو توزیع CentOS 6 اموزش داده می شود ولی در کل دو مطلب مهم است که باید در هر سیتم عامل یا توزیع لینوکسی به آن توجه کرد : ۱ – چه سرویس هایی باید نصب باشند ۲- چه سرویس هایی در سمت سرور و کلاینت بابد فعال باشند. برای این آموزش دو ماشین مجازی با سیستم عامل CentOS 6 روی VMWare نصب کنید. یکی را بعنوان سرور با آدرس 192.168.149.151 و دیگری بعنوان کلانت با آدرس 192.168.149.152 پس ماشین 1 بعنوان سرور و ماشین دومی برای کلاینت. پیش از شروع اشتراک سیستم فایل در لینوکس با NFS بخش اول و اشتراک سیستم فایل در لینوکس با NFS بخش پایانی را بخوانید.
نصب بسته های لازم :
بسته nfs-utils را با دستور زیر هم در سرور و هم در کلاینت ها نصب کنید. توجه کنید که در اصل یک ماشین می تواند هم سرور باشد (یعنی دایرکتوری را به اشتراک بگذارد) و هم اینکه کلاینت باشد و تفاوت اتنها در سرویس هایی است که باید فعال یا start شوند.
تنظیمات سرور (ماشین 1) :
اول باید فایل etc/exports/ را ویرایش کنیم. هر خط آن باید شبیه به زیر باشد که DIR_EXP دایرکتوری است که باید اشتراکی شود و HOSTS معرفی ماشین هایی است که می توانند این دایرکتوری اشتراکی را استفاده کنند و OPTIONS ها که درون پرانتز های باز و بسته قرار می گیرند.
با ویرایشگر vi فایل etc/exports/ را باید ویرایش کرد. یک دایرکتوری به نام share را که در زیر دایرکتوری root است را اشتراکی کنیم. پس اول باید دایرکتوری را بسازیم.
و سپس مطابق با شکل آنرا در فایل etc/exports/ قرار داد. ( البته شما می توانید هر دایرکتوری دیگری را هم بجای DIR_EXP قرار بدهید.)
در این مثال تمامی ماشین ها* (هاست ها) ی شبکه 192.168.149.0/24 می توانند دایرکتوری share/ را بصورا اشتراکی استفاده کنند. option ها درون پرانتز ها و چسبیده به قسمت HOSTS است. می توانید چندین دایرکتوری را زیر هم نوشته و هر کدام را برای هاست های متفاوت و با OPTION های متفاوت اشتراکی کنید. پس از ویرایش فایل etc/exports/ نوبت به اجرای دستور زیر می شود. در این دستور a- یعنی صادر کردن (export کردن) تمامی دایرکتوری های درون فایل etc/exports/ برای هاست هاست.
بخش تعیین و تنظم دایرکتوری برای استراک و تعیین هاست ها و option ها تمام شد و باید سرویس های مورد نیاز روی سرویس دهنده ( ماشین 1) را فعال کنیم. دقت کنید ترتیب فعال کردن سرویس ها مهم است و نباید جابجا انجام شود.
و سپس با دستور های زیر سرویس های مورد نظر را در سطوح اجرایی فعال می کنیم.
تنظیمات سرویس دهنده (ماشین 1) تمام شد و باید تنظیمات کلاینت (ماشین 2) را انجام داد.
تنظمات کلاینت (ماشین 2) :
روی کلاینت نیازی به ویرایش فایل etc/exports/ نیست و فقط باید سرویس هایی را فعال کنیم. توجه کنید که مانند سرویس دهنده بسته nfs-utils نیز باید در کلاینت هم نصب شده باشد. دستور های زیر را به ترتیب برای فعال کردن سرویس های مورد نظر روی کلاینت انجام دهید.
و سپس دستور های زیر را اجرا کنید.
پس از فعال کردن سرویس ها باید دایرکتوری در کلاینت برای اتصال دایرکتوری اشتراکی در کلاینت ایجاد کنیم. دایرکتوری mnt/ که مخفف mount است محل خوبی برای ایجاد نقاط اتصال است.
و در نهایت با فرمت خط زیر و با استفاده از دستور mount دایرکتوری اشتراکی را روی کلاینت mount می کنیم.
t nfs- نوع سیستم فایل یعنی File System Type را تعیین می کند. بجای SRV-ADDRESS باید آدرس ماشین سرور (در این پست 192.168.149.151) آورده شود. بجای DIRـEXP دایرکتوری که در فایل etc/exports/ نوشته شد. بجای CLIENT_DIR_FOR_MOUNT دایرکتوری mnt/sharetmp/ را قرار می دهیم.
در این مثال چون مجوز rw روی دایرکتوری share/ داده شده است پس می توانیپ یک دایرکتوری در mnt/sharetmp/ بسازیم و انرا در share/ برای دیگر کاربران متصل به دایرکتوری share/ به اشتراک بگذاریم.
دستور mount حالت پایداری ندارد و با restart شدن سیستم دایرکتوری mount شده از بین می رود پس بهتر است دایرکتوری share/ را بصورت همیشگی در فایل etc/fstab/ قرار دهیم تا پس از بوت شده بصورت خودکار توصط سیستم عامل mount شود. مطابق با خط اخر شکل زیر باید اضافه کنید.
در روی کلاینت ها برای اینکه ببنیم که چه دایرکتوری هایی mount شده اسند دستور mount را بدون هیچ چیز دیگری اجرا کنید.
تنظیمات فایروال :
فایر وال باید در هر دو ماشین (سرور و کلاینت) تنظیم شده باشند. با نصب بسته nds-utils بصورت خود کار فایروال برای بسته های NFS بروز می شود ولی برای اطمینان از درستی تنظیمات روی هر دو ماشین دستور زیر را اجرا کنید و در پنجره باز شده بررسی کنید که گزینه NFS4 انتخاب شده باشد.
اگر انتخاب نشده باشد گزینه NFS4 را انتخاب و از منوی بالا Apply را کلیک و سپس yse را کلیک کنید.
نویسنده : نامی امیر
نصب بسته های لازم :
بسته nfs-utils را با دستور زیر هم در سرور و هم در کلاینت ها نصب کنید. توجه کنید که در اصل یک ماشین می تواند هم سرور باشد (یعنی دایرکتوری را به اشتراک بگذارد) و هم اینکه کلاینت باشد و تفاوت اتنها در سرویس هایی است که باید فعال یا start شوند.
کد PHP:
yum -y install nfs-utils
اول باید فایل etc/exports/ را ویرایش کنیم. هر خط آن باید شبیه به زیر باشد که DIR_EXP دایرکتوری است که باید اشتراکی شود و HOSTS معرفی ماشین هایی است که می توانند این دایرکتوری اشتراکی را استفاده کنند و OPTIONS ها که درون پرانتز های باز و بسته قرار می گیرند.
کد PHP:
DIR_EXP HOSTS(OPTIONS) #vi /etc/exports
کد PHP:
mkdir /share
در این مثال تمامی ماشین ها* (هاست ها) ی شبکه 192.168.149.0/24 می توانند دایرکتوری share/ را بصورا اشتراکی استفاده کنند. option ها درون پرانتز ها و چسبیده به قسمت HOSTS است. می توانید چندین دایرکتوری را زیر هم نوشته و هر کدام را برای هاست های متفاوت و با OPTION های متفاوت اشتراکی کنید. پس از ویرایش فایل etc/exports/ نوبت به اجرای دستور زیر می شود. در این دستور a- یعنی صادر کردن (export کردن) تمامی دایرکتوری های درون فایل etc/exports/ برای هاست هاست.
کد PHP:
exportfs -a
کد PHP:
etc/init.d/rpcbind start/
etc/init.d/nfslock start/
etc/init.d/nfs start/
کد PHP:
chkconfig rpcbind on
chkconfig nfslock on
chkconfig nfs on
تنظمات کلاینت (ماشین 2) :
روی کلاینت نیازی به ویرایش فایل etc/exports/ نیست و فقط باید سرویس هایی را فعال کنیم. توجه کنید که مانند سرویس دهنده بسته nfs-utils نیز باید در کلاینت هم نصب شده باشد. دستور های زیر را به ترتیب برای فعال کردن سرویس های مورد نظر روی کلاینت انجام دهید.
کد PHP:
etc/init.d/rpcbind start/
etc/init.d/rpcidmapd start/
etc/init.d/nfslock start/
etc/init.d/netfs start/
کد PHP:
chkconfig rpcbind on
chkconfig rpcidmapd on
chkconfig nfslock on
chkconfign netfs on
کد PHP:
mkdir /mnt/sharetmp
کد PHP:
mount -t nfs SRV_ADDRESS:DIR_EXP CLIENT_DIR_FOR_MOUNT
کد PHP:
mount -t nfs 192.168.149.151:/share /mnt/sharetmp
دستور mount حالت پایداری ندارد و با restart شدن سیستم دایرکتوری mount شده از بین می رود پس بهتر است دایرکتوری share/ را بصورت همیشگی در فایل etc/fstab/ قرار دهیم تا پس از بوت شده بصورت خودکار توصط سیستم عامل mount شود. مطابق با خط اخر شکل زیر باید اضافه کنید.
در روی کلاینت ها برای اینکه ببنیم که چه دایرکتوری هایی mount شده اسند دستور mount را بدون هیچ چیز دیگری اجرا کنید.
تنظیمات فایروال :
فایر وال باید در هر دو ماشین (سرور و کلاینت) تنظیم شده باشند. با نصب بسته nds-utils بصورت خود کار فایروال برای بسته های NFS بروز می شود ولی برای اطمینان از درستی تنظیمات روی هر دو ماشین دستور زیر را اجرا کنید و در پنجره باز شده بررسی کنید که گزینه NFS4 انتخاب شده باشد.
کد PHP:
system-config-firewall
اگر انتخاب نشده باشد گزینه NFS4 را انتخاب و از منوی بالا Apply را کلیک و سپس yse را کلیک کنید.
نویسنده : نامی امیر