Hướng Dẫn Cài Đặt NFS Trên Linux

NFS là một trong những phương pháp được sử dụng để chia sẻ dữ liệu trên các hệ thống vật lý. Sử dụng TCP và UDP để truy cập và phân phối dữ liệu tùy thuộc vào phiên bản được sử dụng. Cơ chế hệ thống tệp cho phép lưu trữ và truy xuất dữ liệu từ nhiều đĩa và thư mục.

Các phiên bản NFS: (“nfsstat -o all” “nfsstat -s” trên server và  “nfsstat -c” trên client)

  • NFSv2: Tháng 3 năm 1989

Có thể sử dụng cả TCP và UDP qua mạng IP ( cổng 2049 )

Ban đầu chỉ hoạt động trên UDP

  • NFSv3: Tháng 6 năm 1995

An toàn và mạnh mẽ hơn khi xử lý lỗi so với v2

Sử dụng cả TCP và UDP qua cổng 2049

Vẫn là phiên bản được sử dụng rộng rãi nhất

  • NFSv4: Tháng 4 năm 2003

Hoạt động thông qua tường lửa và trên internet

Hỗ trợ ACL ( Danh sách các câu lệnh chỉ ra loại packet nào được chấp nhận, hủy bỏ dựa vào địa chỉ nguồn, đích hoặc số port)

Sử dụng giao thức TCP là bắt buộc

  • 1: Tháng 1 năm 2010

khả năng cung cấp quyền truy cập song song có thể mở rộng vào các tệp được phân phối giữa nhiều máy chủ

  • 2: Tháng 11 năm 2016

Sao chép và sao chép phía máy chủ

Một lợi thế lớn của NFSv4 so với các phiên bản trước đó là chỉ có một cổng IP được sử dụng để chạy dịch vụ, giúp đơn giản hóa việc sử dụng giao thức trên tường lửa.

Cài đặt – server

+ Centos : yum install nfs-utils

+ Ubuntu/Debian : sudo apt install nfs-kernel-server

Tạo thư mục và cấp quyền:

mkdir /nfsroot

systemctl enable –now rpcbind nfs-server

Mở tệp /etc/exports và thêm đoạn nội dung sau cấp phép quyền truy cập:

/nfsroot 103.9.188.0/24(ro,no_root_squash,no_subtree_check)

  • ro: quyền chỉ đọc
  • rw: quyền đọc và viết
  • root_squash: ngăn chặn người dùng root remote NFS
  • no_root_squash: cho phép người dùng root remote NFS
  • subtree_check: tuỳ chọn kiểm tra tệp và thư mục trên server lưu trữ.
  • no_subtree_check: không kiểm tra tệp và thư mục đang được lưu trữ.
  • sync: đồng bộ thư mục dùng chung.
  • async: bỏ qua kiểm tra đồng bộ hóa để tăng tốc độ.

Sau đó chạy lệnh “exportfs -r” để hoàn tất lưu cấu hình.

Check Port bằng lệnh “rpcinfo -p”

Kiểm tra lại dịch vụ vừa cấu hình bằng lệnh: “showmount -e localhost”

Đồng bộ sẽ không thành công giữa client và server nếu chưa mở port trên firewall

+ Trên Firewalld cần chạy các lệnh sau:

firewall-cmd –add-service=nfs –permanent
firewall-cmd –add-service={nfs3,mountd,rpc-bind} –permanent
firewall-cmd –reload

+ Nếu dùng Iptables thì chạy chỉnh sửa allow port như sau

vi /etc/sysconfig/iptables

# Portmap ports
-A INPUT -m state –state NEW -p tcp –dport 111 -j ACCEPT
-A INPUT -m state –state NEW -p udp –dport 111 -j ACCEPT
# NFS daemon ports
-A INPUT -m state –state NEW -p tcp –dport 2049 -j ACCEPT
-A INPUT -m state –state NEW -p udp –dport 2049 -j ACCEPT
# NFS mountd ports
-A INPUT -m state –state NEW -p udp –dport 10050 -j ACCEPT
-A INPUT -m state –state NEW -p tcp –dport 10050 -j ACCEPT
# NFS status ports
-A INPUT -m state –state NEW -p udp –dport 10051 -j ACCEPT
-A INPUT -m state –state NEW -p tcp –dport 10051 -j ACCEPT
# NFS lock manager ports
-A INPUT -m state –state NEW -p udp –dport 10052 -j ACCEPT
-A INPUT -m state –state NEW -p tcp –dport 10052 -j ACCEPT
# NFS rquotad ports
-A INPUT -m state –state NEW -p udp –dport 10053 -j ACCEPT
-A INPUT -m state –state NEW -p tcp –dport 10053 -j ACCEPT

systemctl restart nfs-server

Cài đặt – client

+Centos: yum install nfs-utils

+Ubuntu/Debian: sudo apt install nfs-common

Tạo thư mục sau ” mkdir -p /nfsclient”

Tạo đồng bộ giữa nfs server và client bằng lệnh
mount -t nfs 103.9.188.128:/nfsroot /nfsclient

Tự động tạo mount từ client đến nfs-server, cần chỉnh file /etc/fstab

103.9.188.128:/nfsroot    /nfsclient   nfs defaults 0 0

Kiểm tra NFS share Server – Client

+Server

cd /nfsroot
touch test.txt

+Client

ls -l /nfsclient

Ngoài các quy tắc được liệt kê ở trên, chỉnh các mục để theo dõi trạng thái (sử dụng mô-đun conntrack) và cho phép các kết nối được thiết lập. Nếu mọi thứ diễn ra như mong đợi sẽ có thể gắn kết các hệ thống tệp mà không gặp vấn đề gì. Để gỡ lỗi sự cố có thể sử dụng các bước sau:

  1. Thêm câu lệnh LOG vào chuỗi INPUT iptables để ghi nhật ký thả các gói.
  2. Chạy tcpdump -i <interface> host <IP> (máy chủ lưu trữ phải là IP máy khách đang cố gắng gắn kết / truy cập hệ thống tệp đã xuất của server này) và kiểm tra xem liệu các kết nối có đến máy chủ NFS hay không.
    vd: tcpdump -i ens33 host 103.9.188.128
  3. Chạy rpcinfo -p để xem liệu các cổng chính xác đã được chỉ định hay chưa.

Tổng kết

Chạy các lệnh “nfsstat -s” trên server và  “nfsstat -c” trên client để kiểm tra phiên bản nfs được sử dụng.

Hiển thị các thư mục mount đến server nfs “df -kh”:

Ưu điểm :

  • NFS là 1 giải pháp chi phí thấp để chia sẻ tệp mạng.
  • Dễ cài đặt vì nó sử dụng cơ sở hạ tầng IP hiện có
  • Cho phép quản lý trung tâm, giảm nhu cầu thêm phần mềm cũ và dụng lượng đĩa trên các hệ thống người dùng cá nhân

Nhược điểm :

  • NFS vốn không an toàn, chỉ nên sử dụng trên 1 mạng đáng tin cậy sau Firewall
  • NFS bị chậm trong khi lưu lượng mạng lớn
  • Client và server tin tưởng lần nhau vô điều kiện
  • Tên máy chủ có thể là giả mạo (tự xưng là máy khác)
Was this article helpful?