راه اندازی سرور و کلاینت NFS بر روی CentOS 7.2

در این مقاله چگونگی راه اندازی یک سرور NFS و یک کلاینت NFS بر روی یک CentOS 7.2  آموزش داده می شود.از طریق NFS یک کلاینت می تواند بصورت Remote بر روی یک سرور NFS دسترسی (خواندن و نوشتن ) داشته باشد بصورتیکه فایلهایی که بر روی سرور هستند انگار که بر روی کامپیوتر خود شخص هستند. ما  بعنوان پایه از یک سرور CentOS 7.2 minimal برای نصب و راه اندازی استفاده می کنیم.

1-    نکات مقدماتی :
ما در اینجا از دو سیستم CentOS استفاده می کنیم:

•    NFS Server: server.example.com, IP address: 192.168.1.100
•    NFS Client: client.example.com, IP address: 192.168.1.101

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

yum -y install nano
2-    پیکربندی فایروال :
توصیه می کنیم که یک فایروال نصب شده داشته باشید. اگر فایروالی نصب ندارید و می خواهید از فایروال استفاده کنید با استفاده از دستور زیر می توانید آنرا نصب کنید:

yum -y install firewalld
شروع فایروال و فعال شدن آن در زمان بوت آغاز می شود.

systemctl start firewalld.service systemctl enable firewalld.service
در ادامه بعد از باز کردن SSH و پورتهای NFS مطمئن شوید که از طریق SSH قادر خواهید بود که به سرور متصل شوید برای انجام اهداف مدیریتی توسط NFS و کلاینهای NFS.

firewall-cmd --permanent --zone=public --add-service=ssh firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --reload
3-    نصب NFS :
سرور:
برای سرور NFS دستور زیر را اجرا می کنیم:

yum -y install nfs-utils
سپس برای فعالسازی و شروع سرویسهای NFS دستورات زیر را اجرا کنید:

systemctl enable nfs-server.service systemctl start nfs-server.service
کلاینت :
بر روی کلاینتها می توانیم NFS را مطابق زیر نصب کنیم ( در واقع بر روی همان سرور است):

yum install nfs-utils
4-    مسیر های خروجی بر روی سرور:
سرور:
 ما می خواهیم دایرکتوری home/ و var/nfs/ برای کلاینتها در دسترس باشد. بنابر این باید آنها را بر روی سرور Export کنیم.
وقتی که یک کلاینت به یک NFS share دسترسی داشته باشد بطورمعمول بعنوان کاربر nfsnobody می باشد. معمولا دایرکتوری home/ متعلق به nfsnobody نمی باشد.( و من توصیه می کنم که مالکیت آنرا به nfsnobody تغییر ندهید.) و چون ما می خواهیم در home/ بخوانیم و بنویسیم پس باید دسترسی به NFS share بعنوان root ایجاد شود.(اگر home فقط خواندنی باشد نیازی به انجام این کار نیست.) دایرکتوری var/nfs/ وجود ندارد، بنابراین ما می توانیم آنرا ایجاد کنیم و مالکیت آنرا به کاربر و nfsnobody تغییر دهیم.

mkdir /var/nfs chown nfsnobody:nfsnobody /var/nfs chmod 755 /var/nfs
اکنون ما باید /etc/exports  که NFS shares  خود را export می کنیم را اصلاح کنیم. ماhome/ و var/nfs/ را بعنوان NFX share مشخص می کنیم.و دسترسیhome/ را بعنوان root ایجاد می کنیم.

man 5 exports nano /etc/exports /home 192.168.1.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.1.101(rw,sync,no_subtree_check)
گزینه no_root_squash باعث می شود که home/ بعنوان ریشه در دسترس باشد.
هر زمان که ما /etc/exports را اصلاح کردیم باید دستور زیر را اجرا کنیم:

exportfs –a
پس از آن،ایجاد تغییرات موثر است.

5-    نصب و راه اندازی NFS Shares بر روی کلاینت:
کلاینت:
در ابتدا ما یک دایرکتوریهایی را ایجاد می کنیم که می خواهیم NFS shares در آن قرار بگیرند مانند:

mkdir -p /mnt/nfs/home mkdir -p /mnt/nfs/var/nfs
در ادامه می توانیم بصورت زیر آنها را مقدار دهیم:

mount 192.168.1.100:/home /mnt/nfs/home mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs
اکنون باید دو فایل NFS shares در خروجی داشته باشید :

df –h [root@client ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 28G 1.7G 26G 7% / devtmpfs 909M 0 909M 0% /dev tmpfs 919M 0 919M 0% /dev/shm tmpfs 919M 8.6M 910M 1% /run tmpfs 919M 0 919M 0% /sys/fs/cgroup /dev/sda1 497M 208M 290M 42% /boot tmpfs 184M 0 184M 0% /run/user/0 192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home 192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs
و

mount mount[root@client ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700) 192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100) 192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)-
6-   تست کردن :
اکنون شما می توانید بر روی کلاینت یک فایل تست در NFS shares ایجاد کنید:
کلاینت :

touch /mnt/nfs/home/test.txt touch /mnt/nfs/var/nfs/test.txt
 اکنون به سرور بروید و بررسی کنید که آیا هر دو فایل تست را می توانید مشاهده کنید:
سرور:

ls -l /home/ [root@server1 ~]# ls -l /home/ total 0 drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator -rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt ls -l /var/nfs [root@server1 ~]# ls -l /var/nfs total 0 -rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt
(لطفا به مالکیت های مختلف فایلهای تست توجه داشته باشید. home NFS share/ بعنوان ریشه(root) دیده می شود. بنابراین /home/test.txt متعلق به ریشه است. /var/nfs share بعنوان nobody/65534 دیده می شود بنابراین /var/nfs/test.txt متعلق به nobody است.)

7-     نصب و راه اندازی  NFS Shares در زمان بوت:
به جای نصب و راه اندازی NFS Shares بصورت دستی بر روی سرور، شما می توانید /etc/fstab را تغییر دهید بصورتیکه NFS shares بطور خودکار هنگامی که کلاینت بوت می شود نصب و راه اندازی شود.
کلاینت:
etc/fstab/ را باز کنید و خطوط زیر را دنبال کنید:

nano /etc/fstab [...] 192.168.1.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.1.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0
بجای rw,sync,hard,intr شما می توانید گزینه های مختلفی استفاده کنید. برای کسب اطلاعات بیشتر در مورد گزینه های موجود نگاهی بیندازید به :

man nfs
برای اینکه تست کنید که فایل اصلاح شده /etc/fstab کار می کند، کلاینت را reboot کنید:

Reboot
پس از راه اندازی مجدد سیستم ، شما باید دو NFS shares در خروجی داشته باشید:

df –h [root@client ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 28G 1.7G 26G 7% / devtmpfs 909M 0 909M 0% /dev tmpfs 919M 0 919M 0% /dev/shm tmpfs 919M 8.6M 910M 1% /run tmpfs 919M 0 919M 0% /sys/fs/cgroup /dev/sda1 497M 208M 290M 42% /boot tmpfs 184M 0 184M 0% /run/user/0 192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home 192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs
و

mount [root@client ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700) 192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100) 192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
8-    لینک ها :
Linux NFS: http://nfs.sourceforge.net/
CentOS: http://www.centos.org/

آیا این پاسخ به شما کمک کرد؟


 چاپ این مقاله

خوانده شده

چگونه SNMP را بر روی CentOS نصب و کانفیگ کنیم؟

  مقدمه: SNMP یا Simple Network Management Protocol (پروتکل مدیریت ساده شبکه) بطور گسترده برای...

چگونه Rule های فایروال را در CentOS 7 مدیریت کنیم

  در CentOS7 شما نیاز دارید که با فایروال آشنا شوید. در این مقاله ما می خواهیم درباره اضافه و...

تعیین حداکثر تعداد کلاینت ها برای Apache/Prefork

چگونه حداکثر کلاینت ها را برای Apache/Prefork تنظیم کنیم : اصول اولیه : 1-    تعیین مقدار RAM...

افزودن درایو جدید به سیستم CentOS و یا سیستم RedHat

در این مقاله طریقه استفاده از درایو دوم برای فضای اضافی را آموزش می دهیم. در ادامه راه حلی سریع...

دستورات مفید SSH برای مدیریت CFS

CFS یکی از بهترین نرم افزارهای فایروال برای سرورهای لینوکسی می باشد. در این مقاله برخی از دستورات...

Powered by WHMCompleteSolution