NFS (Network File System) là một hệ thống giao thức chia sẻ file phát triển bởi Sun Microsystems từ năm 1984, cho phép một người dùng trên một máy tính khách truy cập tới hệ thống file chia sẻ thông qua một mạng máy tính giống như truy cập trực tiếp trên ổ cứng. Hiện tại có 3 phiên bản NFS là NFSv2, NFSv3, NFSv4.
Hướng dẫn cài đặt NFS Server trên Ubuntu 18.04/20.04/22.04
Trên máy NFS Server
Bước 1: Đầu tiên các bạn update cập nhật lại các package của Ubuntu bằng command sau :
sudo apt update && sudo apt -y upgrade
Bước 2: Cài đặt package nfs-kernel-server trên máy NFS Server
sudo apt install nfs-kernel-server -y
Kiểm tra NFS-Server service đã hoạt động chưa?
$ sudo systemctl status nfs-kernel-server.service
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2022-12-04 16:04:00 UTC; 8s ago
Main PID: 2429 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/nfs-server.service
Dec 04 16:04:00 webserver-01 systemd[1]: Starting NFS server and services...
Dec 04 16:04:00 webserver-01 systemd[1]: Started NFS server and services.
Bước 3: Tạo thư mục share trên NFS-Server
mkdir -p /nfs-share
Bước 4: Export thư mục share, sửa file /etc/exports thêm record sau
echo '/nfs-share *(rw,sync,fsid=0,no_subtree_check,no_root_squash)' >> /etc/exports
Sau đó restart lại NFS Service
sudo systemctl restart nfs-kernel-server rpcbind
Kiểm tra thư mục share trên NFS Server với lệnh exportfs -v
$ exportfs -v
/nfs-share <world>(rw,wdelay,no_root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,no_root_squash,no_all_squash)
Nếu bạn share nhiều thư mục thì có thể config như sau, hãy thay đổi fsid nhé:
/volumes-ssd *(rw,sync,fsid=1,no_subtree_check,no_root_squash)
/volumes-hdd *(rw,sync,fsid=2,no_subtree_check,no_root_squash)
/nfs-storage/nfs/mariadb-1 *(rw,sync,fsid=3,no_subtree_check,no_root_squash)
/nfs-storage/nfs/mariadb-2 *(rw,sync,fsid=4,no_subtree_check,no_root_squash)
/nfs-storage/nfs/mariadb-3 *(rw,sync,fsid=5,no_subtree_check,no_root_squash)
Sau đó cũng khởi động lại NFS Service.
sudo systemctl restart nfs-kernel-server rpcbind
Kiểm tra thư mục share trên NFS Server với lệnh exportfs -v
/volumes-ssd <world>(rw,wdelay,no_root_squash,no_subtree_check,fsid=1,sec=sys,rw,secure,no_root_squash,no_all_squash)
/volumes-hdd <world>(rw,wdelay,no_root_squash,no_subtree_check,fsid=2,sec=sys,rw,secure,no_root_squash,no_all_squash)
/nfs-storage/nfs/mariadb-1
<world>(rw,wdelay,no_root_squash,no_subtree_check,fsid=3,sec=sys,rw,secure,no_root_squash,no_all_squash)
/nfs-storage/nfs/mariadb-2
<world>(rw,wdelay,no_root_squash,no_subtree_check,fsid=4,sec=sys,rw,secure,no_root_squash,no_all_squash)
/nfs-storage/nfs/mariadb-3
<world>(rw,wdelay,no_root_squash,no_subtree_check,fsid=5,sec=sys,rw,secure,no_root_squash,no_all_squash)
Bước 5: Mở tường lửa cho dịch vụ NFS (tùy chọn)
Trường hợp tường lửa đang bật thì bạn cần cập nhật lại rule của tường lửa để cho phép dịch vụ NFS được phép truy cập từ Internet.
sudo ufw allow from <client_ip> to any port nfs
Hoặc cho phép toàn bộ địa chỉ IP có thể truy cập
sudo ufw allow from any to any port nfs
Trên máy NFS-Client
Bước 1: Cài package nfs-common để access tới NFS Server
sudo apt update
sudo apt install nfs-common -y
Bước 2: Tạo thư mục mount_path.
mkdir -p /nfs-share
Bước 2: Mount NFS từ Client (mount NFSv4)
mount <ip_address>:/ <mount_path>
Ví dụ ở trường hợp của mình
mount 192.168.13.231:/nfs-share /nfs-share
Để mount point không bị mất khi restart lại server chúng ta sửa file /etc/fstab và thêm record sau:
<ip_address>:/ <mount_path> nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Ví dụ ở trường hợp của mình
echo '192.168.13.231:/nfs-share /nfs-share nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0' >> /etc/fstab
Sau đó dùng lệnh mount -a để mount toàn bộ các trường đã khai báo trong file /etc/fstab
mount -a
Kết quả sau khi mount
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 672K 1.6G 1% /run
/dev/vda1 194G 1.4G 193G 1% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/vda15 105M 4.4M 100M 5% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/1000
192.168.13.231:/nfs-share 194G 1.4G 193G 1% /nfs-share
Kết luận
Trên là hướng dẫn xây dựng 1 NFS Server hoàn chỉnh và cách mount từ NFS Client tới, bạn có thể tham khảo bài viết sau để biết thêm 1 số lệnh thường dùng cho dịch vụ nfs.