Cấu Hình NFS Server Client Trên CentOS 7

nfs

NFS, hay còn gọi là Network File System, là một server-client protocol, dùng để chia sẻ file giữa hai hệ thống linux/unix và unix/linux với nhau. NFS cho phép người dùng mount một ổ đĩa share sang local. Sau đó người dùng hoàn toàn có thể truy cập trực tiếp file từ ổ cứng remote share này.

Chuẩn bị :

Để thực hiện bài lab, chúng ta sử dụng 2 máy chạy CentOS 7. Các bước thực hiện đều tương tự với các distro RHEL và Scientific Linux 7.

Các thông số của 2 máy :

  • NFS Server Hostname: server.anninhmang.local
  • NFS Server IP Address: 192.168.1.101/24

 

  • NFS Client Hostname: client.anninhmang.local
  • NFS Client IP Address: 192.168.1.102/24

Cấu hình bên phía server :

Cài packages NFS vào máy bằng lệnh :

yum install nfs-utils nfs-utils-lib
systemctl enable rpcbind

systemctl enable nfs-server

systemctl enable nfs-lock

systemctl enable nfs-idmap
systemctl start rpcbind

systemctl start nfs-server

systemctl start nfs-lock

systemctl start nfs-idmap

Tiếp theo, tạo share folder trên server.

Tạo một share folder tên ‘/var/anninhmang_share’ trên máy server và cho phép client user có thể đọc và ghi lên thư mục này.

mkdir /var/anninhmang_share

chmod 777 /var/anninhmang_share/

Export shared directory trên NFS Server:

Edit file /etc/exports,

vi /etc/exports

Thêm những dòng sau :

/var/anninhmang_share/     192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)

/var/anninhmang_share – shared directory

192.168.1.0/24 – IP address range of clients

rw  Writable permission to shared folder

sync  Synchronize shared directory

no_root_squash  Enable root privilege

no_all_squash - Enable user’s authority

Restart lại NFS Service :

systemctl restart nfs-server
Cấu hình bên máy Client :

Cài đặt package NFS :

yum install nfs-utils nfs-utils-lib

Enable và start NFS services :

systemctl enable rpcbind

systemctl enable nfs-server

systemctl enable nfs-lock

systemctl enable nfs-idmap
systemctl start rpcbind

systemctl start nfs-server

systemctl start nfs-lock

systemctl start nfs-idmap

Mount NFS share vào máy client :

Tạo một mount point để mount share folder ‘var/anninhmang_share’ mà chúng ta đã tạo trước đó trên server.

mkdir /var/nfs_share

Tạo share từ server vào client như lệnh dưới :

mount -t nfs 192.168.1.101:/var/anninhmang_share/ /var/nfs_share/

Kết quả trả về :

mount.nfs: Connection timed out

Lúc này, hệ thống sẽ trả về một thông báo lỗi Connection timed out có nghĩa là Firewall đang block NFS Server của chúng ta. Để truy cập NFS Server từ remote clients, chúng ta cần cho phép các nfs port trong NFS Server Iptables/ Firewall.

Nếu bạn không biết port nào cần mở trên Firewall, hãy chạy dòng lệnh :

rpcinfo –p

Kết quả trả về :

program vers proto   port  service

100000    4   tcp    111  portmapper

100000    3   tcp    111  portmapper

100000    2   tcp    111  portmapper

100000    4   udp    111  portmapper

100000    3   udp    111  portmapper

100000    2   udp    111  portmapper

100024    1   udp  60985  status

100024    1   tcp  54302  status

100005    1   udp  20048  mountd

100005    1   tcp  20048  mountd

100005    2   udp  20048  mountd

100005    2   tcp  20048  mountd

100005    3   udp  20048  mountd

100005    3   tcp  20048  mountd

100003    3   tcp   2049  nfs

100003    4   tcp   2049  nfs

100227    3   tcp   2049  nfs_acl

100003    3   udp   2049  nfs

100003    4   udp   2049  nfs

100227    3   udp   2049  nfs_acl

100021    1   udp  46666  nlockmgr

100021    3   udp  46666  nlockmgr

100021    4   udp  46666  nlockmgr

100021    1   tcp  42955  nlockmgr

100021    3   tcp  42955  nlockmgr

100021    4   tcp  42955  nlockmgr

100011    1   udp    875  rquotad

100011    2   udp    875  rquotad

100011    1   tcp    875  rquotad

100011    2   tcp    875  rquotad

Đây là những port mà chúng ta cần mở.

Để thực hiện, đến máy NFS Server, chạy các dòng lệnh :

firewall-cmd --permanent --add-port=111/tcp

firewall-cmd --permanent --add-port=54302/tcp

firewall-cmd --permanent --add-port=20048/tcp

firewall-cmd --permanent --add-port=2049/tcp

firewall-cmd --permanent --add-port=46666/tcp

firewall-cmd --permanent --add-port=42955/tcp

firewall-cmd --permanent --add-port=875/tcp

Restart lại Firewall để các thay đổi có hiệu lực :

firewall-cmd –reload

Một lần nữa mount folder share trên máy client bằng lệnh :

mount -t nfs 192.168.1.101:/var/anninhmang_share/ /var/nfs_share/

Bây giờ NFS share sẽ thực hiện mount mà không thông báo bất kì lỗi connection timed out error nào.

Verify NFS Share Clients :

Sử dụng lệnh “ mount “ để kiểm tra folder đã được mount hay chưa.

Mount

Kết quả trả về :

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)

devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=309620k,nr_inodes=77405,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 (rw,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/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/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)

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/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/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)

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=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)

hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)

mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)

debugfs on /sys/kernel/debug type debugfs (rw,relatime)

/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)

sunrpc on /proc/fs/nfsd type nfsd (rw,relatime)

192.168.1.101:/var/anninhmang_share on /var/nfs_share type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101)

Tự động Mount NFS Share :

Để mount tự động thay vì phải mount tay mỗi lần reboot, add thêm các dòng này vào file ‘/etc/fstab’ trong hệ thống của bạn :

vi /etc/fstab
#

# /etc/fstab

# Created by anaconda on Tue Aug 19 12:15:24 2014

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/centos-root /                       xfs     defaults        1 1

UUID=2ba8d78a-c420-4792-b381-5405d755e544 /boot                   xfs     defaults        1 2

/dev/mapper/centos-swap swap                    swap    defaults        0 0

192.168.1.101:/var/anninhmang_share/ /var/nfs_share/ nfs rw,sync,hard,intr 0 0

Reboot lại máy client và check xem folder có được tự động mount hay chưa.

Mount

Kết quả trả về :

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)

devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=309620k,nr_inodes=77405,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 (rw,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/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/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)

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/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/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)

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=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)

hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)

mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)

debugfs on /sys/kernel/debug type debugfs (rw,relatime)

/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)

sunrpc on /proc/fs/nfsd type nfsd (rw,relatime)

192.168.1.101:/var/anninhmang_share on /var/nfs_share type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101)

Như vậy là NFS đã được mount thành công.

Xem thêm : Quản Lý 389-DS Bằng Giao Diện Đồ Họa

  • nfs là gì
  • nfs server
  • nfs server centos 7
  • nfs server centos install
  • restart nfs server centos 7
  • network file sharing protocols
  • nfs client centos 7

BÌNH LUẬN

Please enter your comment!
Please enter your name here