سلام.
میخوایم یه nfs server بسازیم و از فضایی که ایجاد میشه روی سرورهای دیگه استفاده کنیم.
قبلش توسط مقاله های زیر سرور رو آماده کنید تا بعد بگم چه کنیم:
ایجاد یک ماشین مجازی برای نصب اوراکل
نصب سیستم عامل اوراکل لینوکس 8.9
کانفیگ کارت شبکه با nmcli یا تنظیم ip با nmcli با یک کارت شبکه
نصب پکیج های مورد نیاز اوراکل با dnf
منتها قسمت آخر فقط تا بخشی که repository رو حاضر می کنید.
ورود به ماشین NFS سرور: وارد ماشین مجازی لینوکسی که قصد دارید به عنوان NFS سرور استفاده کنید، شوید.
نصب NFS server: اگر از توزیع مبتنی بر Red Hat (مانند Oracle Linux یا CentOS) استفاده میکنید:
[root@nfsserver yum.repos.d]# sudo dnf install nfs-utils -y
DVD for RHEL - BaseOS 57 MB/s | 3.5 MB 00:00
DVD for RHEL - AppStream 94 MB/s | 8.7 MB 00:00
Last metadata expiration check: 0:00:01 ago on Tue 20 Aug 2024 04:15:16 PM EDT.
Dependencies resolved.
================================================================================================================================================
Package Architecture Version Repository Size
================================================================================================================================================
Installing:
nfs-utils x86_64 1:2.3.3-59.0.1.el8 dvd-BaseOS 514 k
Installing dependencies:
gssproxy x86_64 0.8.0-21.el8 dvd-BaseOS 119 k
keyutils x86_64 1.5.10-9.el8 dvd-BaseOS 66 k
libev x86_64 4.24-6.el8 dvd-AppStream 52 k
libverto-libev x86_64 0.3.2-2.el8 dvd-AppStream 16 k
python3-pyyaml x86_64 3.12-12.el8 dvd-BaseOS 193 k
quota x86_64 1:4.04-14.el8 dvd-BaseOS 214 k
quota-nls noarch 1:4.04-14.el8 dvd-BaseOS 95 k
rpcbind x86_64 1.2.5-10.el8 dvd-BaseOS 70 k
Transaction Summary
================================================================================================================================================
Install 9 Packages
Total size: 1.3 M
Installed size: 3.9 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : libev-4.24-6.el8.x86_64 1/9
Installing : libverto-libev-0.3.2-2.el8.x86_64 2/9
Installing : gssproxy-0.8.0-21.el8.x86_64 3/9
Running scriptlet: gssproxy-0.8.0-21.el8.x86_64 3/9
Running scriptlet: rpcbind-1.2.5-10.el8.x86_64 4/9
Installing : rpcbind-1.2.5-10.el8.x86_64 4/9
Running scriptlet: rpcbind-1.2.5-10.el8.x86_64 4/9
Installing : quota-nls-1:4.04-14.el8.noarch 5/9
Installing : quota-1:4.04-14.el8.x86_64 6/9
Installing : python3-pyyaml-3.12-12.el8.x86_64 7/9
Installing : keyutils-1.5.10-9.el8.x86_64 8/9
Running scriptlet: nfs-utils-1:2.3.3-59.0.1.el8.x86_64 9/9
Installing : nfs-utils-1:2.3.3-59.0.1.el8.x86_64 9/9
Running scriptlet: nfs-utils-1:2.3.3-59.0.1.el8.x86_64 9/9
Verifying : gssproxy-0.8.0-21.el8.x86_64 1/9
Verifying : keyutils-1.5.10-9.el8.x86_64 2/9
Verifying : nfs-utils-1:2.3.3-59.0.1.el8.x86_64 3/9
Verifying : python3-pyyaml-3.12-12.el8.x86_64 4/9
Verifying : quota-1:4.04-14.el8.x86_64 5/9
Verifying : quota-nls-1:4.04-14.el8.noarch 6/9
Verifying : rpcbind-1.2.5-10.el8.x86_64 7/9
Verifying : libev-4.24-6.el8.x86_64 8/9
Verifying : libverto-libev-0.3.2-2.el8.x86_64 9/9
Installed:
gssproxy-0.8.0-21.el8.x86_64 keyutils-1.5.10-9.el8.x86_64 libev-4.24-6.el8.x86_64 libverto-libev-0.3.2-2.el8.x86_64
nfs-utils-1:2.3.3-59.0.1.el8.x86_64 python3-pyyaml-3.12-12.el8.x86_64 quota-1:4.04-14.el8.x86_64 quota-nls-1:4.04-14.el8.noarch
rpcbind-1.2.5-10.el8.x86_64
Complete!
ایجاد دایرکتوری برای اشتراک گذاری: یک دایرکتوری که میخواهید از طریق NFS به اشتراک بگذارید، ایجاد کنید. برای مثال:
من پارتیشن جداگانه ای برای اینکار در نظر گرفتم:
[root@nfsserver ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 8.6M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/mapper/ol-root 70G 2.7G 68G 4% /
/dev/mapper/ol-nfspartition 300G 2.2G 298G 1% /nfspartition
/dev/sda2 1014M 287M 728M 29% /boot
/dev/sda1 599M 6.0M 593M 1% /boot/efi
tmpfs 764M 0 764M 0% /run/user/0
تحت این پارتیشن یک پوشه میسازم:
[root@nfsserver ~]# mkdir /nfspartition/for51
مجوزهای لازم رو بهش میدیم که از بیرون دیده بشه:
[root@nfsserver ~]# chmod 755 /nfspartition/for51/
فایل زیر رو ویرایش میکنیم و آدرس هایی که میخوایم این فضا رو ببینند رو معرفی می کنیم:
[root@nfsserver ~]# vi /etc/exports
[root@nfsserver ~]# cat /etc/exports
/nfspartition/for51/ 192.168.56.0/24(rw,sync,no_subtree_check,no_root_squash)
برای اینکه سرویس بصورت اتوماتیک بیاد بالا از سری بعد و الان هم استارت بشه، دستورات زیر رو میزنیم:
[root@nfsserver ~]# systemctl start nfs-server
[root@nfsserver ~]# systemctl enable nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
تنظیمات مربوط به فایروال رو اضافه می کنیم:
[root@nfsserver ~]# firewall-cmd --permanent --add-service=nfs
success
[root@nfsserver ~]# firewall-cmd --permanent --add-service=mountd
success
[root@nfsserver ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@nfsserver ~]# firewall-cmd --reload
success
حالا در سمت کلاینت:
[root@oracle9-19 ~]# dnf install nfs-utils -y
Last metadata expiration check: 1 day, 15:56:54 ago on Mon 19 Aug 2024 01:38:29 AM EDT.
Package nfs-utils-1:2.5.4-25.0.2.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
من قبلاً نصب کرده بودم. اگر شما نصب نکردید، با این دستور نصب میشه. حواستون باشه که باید منابع dnf رو کانفیگ کرده باشید و iso رو هم بهش mount کنید.
یک پوشه با نام دلخواه در کلاینت می سازیم:
[root@oracle9-19 ~]# mkdir /backup/
حالا mount میکنیم و ازش تست می گیریم:
[root@oracle9-19 ~]# mount 192.168.56.56:/nfspartition/for51/ /backup/
[root@oracle9-19 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 4.0K 4.0M 1% /dev
tmpfs 7.6G 1.1G 6.5G 15% /dev/shm
tmpfs 3.1G 8.8M 3.1G 1% /run
/dev/mapper/ol-root 30G 1.9G 29G 7% /
/dev/sda2 960M 275M 686M 29% /boot
/dev/sda1 1022M 6.3M 1016M 1% /boot/efi
/dev/mapper/ol-var 30G 566M 30G 2% /var
/dev/mapper/ol-tmp 20G 191M 20G 1% /tmp
/dev/mapper/ol-u01 101G 37G 65G 37% /u01
tmpfs 1.6G 0 1.6G 0% /run/user/0
192.168.56.56:/nfspartition/for51 300G 2.2G 298G 1% /backup
حالا اگر بخواهیم کاربر اوراکل هم دسترسی داشته باشد می تونیم بهش مجوز بدیم:
chown oracle:oinstall /backup/ -R
برای تست اینکار رو انجام میدیم:
[oracle@oracle9-19 ~]$ cd /backup/
[oracle@oracle9-19 backup]$ touch x
[oracle@oracle9-19 backup]$ ls
x