Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cấu hình NFS Server và Client trên Linux CentOS/RHEL

Network File System (NFS) là giao thức hệ thống tệp phân tán để chia sẻ file và thư mục. NFS dựa trên giao thức Remote Procedure Protocol (ONC RPC). NFS cho phép mount hệ thống tệp từ xa qua mạng. Hãy nhớ rằng mặc định dữ liệu không được mã hóa khi dùng NFS, và client không được xác thực (truy cập có thể giới hạn bằng IP).

NFS dễ cấu hình cả ở phía server và client. Trong bài này, chúng tôi sẽ chỉ cách cài đặt và cấu hình NFS server, sau đó kết nối chia sẻ NFS trên client. Bài viết dựa trên các bản phân phối Linux dựa trên RPM (CentOS, RHEL, Fedora, v.v.).

Cách cài đặt và cấu hình NFS Server trên Linux CentOS

Mặc định, nfs đã được cài trong CentOS với gói Standard. Nếu bạn đã xóa thành phần NFS hoặc dùng chế độ Minimal Install cho máy chủ, bạn có thể cài gói NFS bằng trình quản lý gói yum (hoặc dnf):

Trên CentOS 8:

# dnf install nfs-utils -y

Tôi đã cài gói:

Cấu hình NFS Server và Client trên Linux CentOS/RHEL

Phiên bản NFS server hiện tại hỗ trợ NFSv3 và NFSv4. NFSv2 bị tắt mặc định. Bạn có thể lấy danh sách phiên bản NFS hỗ trợ bằng lệnh:

cat /proc/fs/nfsd/versions

Sau khi cài tất cả gói cần thiết, khởi động dịch vụ nfs-server và rpcbind, và thêm vào khởi động:

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

Nếu bạn chỉ muốn dùng NFSv4.1/4.2, không cần chạy rpcbind.

Nếu bạn dùng firewalld trên máy chủ Linux, mở các cổng sau:

# firewall-cmd --permanent --add-port=111/tcp
# firewall-cmd --permanent --add-port=20048/tcp
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload

Cấu hình NFS Server và Client trên Linux CentOS/RHEL

Cho những ai dùng iptables:

# iptables -t filter -A INPUT -p tcp --dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 20048 -j ACCEPT
# service iptables save
# service iptables restart

Sau đó tạo thư mục NFS server sẽ chia sẻ:

# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs

Xuất bản chia sẻ NFS và gán quyền truy cập trong file cấu hình chứa cài đặt NFS server (/etc/exports).

# nano /etc/exports

Thêm dòng sau vào config để cấp quyền truy cập NFS cho tất cả máy chủ trong subnet IP chỉ định:

/backup/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)

Hoặc giới hạn truy cập chỉ một IP đơn lẻ:

/backup/nfs 192.168.2.24(rw,sync,no_root_squash,no_all_squash, anonuid=1000,anongid=1000) 192.168.3.100 (ro,async,no_subtree_check)

Hãy xem các tham số dùng để cấp quyền trên thư mục NFS:

  • rw – cấp quyền ghi, ro — chỉ đọc
  • sync — chế độ truy cập đồng bộ, async nghĩa là không cần chờ xác nhận ghi trên đĩa (cải thiện hiệu suất NFS, nhưng giảm độ tin cậy)
  • no_root_squash — cho phép user root truy cập thư mục NFS từ client (thường không khuyến khích)
  • no_all_squash — bật xác thực user, all_squash – cho phép truy cập NFS share dưới user ẩn danh
  • no_subtree_check — tắt kiểm tra user truy cập file trong thư mục (subtree_check dùng mặc định)
  • anonuid, anongid – ánh xạ user/group NFS đến user/group cục bộ chỉ định (UID hoặc GID)

Để áp dụng cài đặt chia sẻ NFS mới, chạy lệnh:

# exportfs -a

Và khởi động lại NFS server:

# systemctl restart nfs-server

Vậy là chúng ta đã xong cấu hình NFS server và có thể tiến hành cấu hình client.

Cấu hình NFS Client trên CentOS

Để cấu hình NFS client, bạn cũng phải cài gói nfs-utils.

# yum install nfs-utils -y

Thêm dịch vụ vào khởi động và chạy:

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

Sau đó tạo thư mục trên client nơi thư mục NFS sẽ được mount:

# mkdir /backup

Sau đó bạn có thể mount chia sẻ NFS từ xa bằng lệnh:

# mount -t nfs 192.168.0.100:/backup/nfs/ /backup

Bạn có thể ép phiên bản giao thức NFS:

# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup

trong đó IP là địa chỉ NFS server bạn cấu hình trước.

Cấu hình NFS Server và Client trên Linux CentOS/RHEL

Sau đó chia sẻ NFS kết nối sẽ hiển thị trong danh sách ổ đã mount. Bạn có thể đọc dữ liệu trong thư mục hoặc ghi vào nó (tùy quyền gán cho IP của bạn trên NFS server). Để tự động mount thư mục NFS khi reboot, mở file fstab:

# nano /etc/fstab

Và thêm dòng sau:

192.168.0.100:/backup/nfs/ /backup/ nfs rw,sync,hard,intr 0 0

Sau khi lưu fstab, bạn có thể áp dụng bằng lệnh:

# mount -a

Vậy chúng ta đã cấu hình và kết nối lưu trữ NFS từ xa, có thể dùng cho truy cập mạng minh bạch đến tài nguyên chia sẻ từ nhiều máy chủ. Bạn có thể đặt backup, file ISO, v.v. trong thư mục NFS.