Khái niệm
– NFS ( Network File System ) là một giao thức dùng để chia sẽ file giữa các máy linux
– Các port NFS sử dụng
+ TCP/111 và UDP/111 – RPC 4.0 Port mapper
+ TCP/2049 và UDP/2049 – NFSD (NFS Server)
Chuẩn bị
– Sơ đồ bài lab
+----------------------+ | +-------------------------+ | [ NFS Server ] |10.0.0.8 | 10.0.0.51| [ NFS Client ] | |nfs.dinhducthanh.local+----------+----------+client.dinhducthanh.local| +----------------------+ +-------------------------+
– Cấu hình 2 card mạng cho NFS server
root@localhost:~# cat /etc/netplan/01-netcfg.yaml
network:
ethernets:
ens33:
dhcp4: false
addresses: [192.168.64.8/24]
routes:
- to: default
via: 192.168.64.2
metric: 100
nameservers:
addresses: [192.168.64.3,8.8.8.8]
dhcp6: false
version: 2
network:
ethernets:
ens37:
dhcp4: false
addresses: [10.0.0.8/24]
nameservers:
addresses: [10.0.0.3]
dhcp6: false
version: 2
– Đổi hostname, time zone
root@localhost:~# hostnamectl set-hostname nfs.dinhducthanh.local root@localhost:~# timedatectl set-timezone Asia/Ho_Chi_Minh root@localhost:~# reboot
Cài đặt và cấu hình NFS Server.
Cài đặt
root@nfs:~# apt -y install nfs-kernel-server
Cấu hình
root@nfs:~# vi /etc/idmapd.conf # dòng 5 : bỏ comment và thay bằng domain name của bạn Domain = dinhducthanh.local
root@nfs:~# vi /etc/exports # thêm cài đặt cho NFS exports # ví dụ này, set [/home/nfsshare] như một NFS share /home/nfsshare 10.0.0.0/24(rw,no_root_squash)
– Tạo NFS folder
root@nfs:~# mkdir /home/nfsshare
– Restart dịch vụ
root@nfs:~# systemctl restart nfs-server
Các basic option của các exports
rw: Cho phép cả các request read and write trên một NFS volume.
ro: Cho phép chỉ các request read trên một NFS volume.
sync: Chỉ trả lời các request sau khi các thay đổi đã được chuyển sang bộ nhớ ổn định. (Mặc định)
async: Tùy chọn này cho phép máy chủ NFS vi phạm giao thức NFS và trả lời các request trước khi bất kỳ thay đổi nào được thực hiện bởi request đó đã được đưa vào lưu trữ ổn định.
secure: Tùy chọn này bắt buộc các request bắt nguồn từ port nhỏ hơn IPPORT_RESERVED (1024). (Mặc định)
insecure: Tùy chọn này cho phép tất cả các port.
wdelay: Nó trì hoãn một chút việc thực hiện request write vào đĩa nếu nó nghi ngờ rằng một request write liên quan khác có thể đang được thực hiện hoặc có thể đến sớm. (Mặc định)
no_wdelay: Tùy chọn này không có hiệu lực nếu async cũng được đặt. Máy chủ NFS thường sẽ trì hoãn một chút việc thực hiện request write vào đĩa nếu nó nghi ngờ rằng một request write liên quan khác có thể đang được thực hiện hoặc có thể đến sớm. Điều này cho phép nhiều request write được đưa vào đĩa bằng một thao tác có thể cải thiện hiệu suất. Nếu máy chủ NFS chủ yếu nhận được các request nhỏ không liên quan, hành vi này thực sự có thể làm giảm hiệu suất, do đó, bạn có thể tắt no_wdelay để tắt nó.
subtree_check: Tùy chọn này bật kiểm tra subtree. (Mặc định)
no_subtree_check: Tùy chọn này tắt kiểm tra subtree, có ý nghĩa bảo mật nhẹ, nhưng có thể cải thiện độ tin cậy trong một số trường hợp.
root_squash: Ánh xạ các request từ uid/gid 0 đến các uid/gid ẩn danh. Lưu ý điều này không áp dụng cho bất kỳ uid hoặc gid nào khác.
no_root_squash: Tắt tính năng root squashing. Option này hữu ích cho các máy client không có disk.
all_squash: Điều này maps tất cả các uid and gid tới người dùng ẩn danh. Hữu ích cho NFS tạo các thư mục FTP public, thư mục tin tức tạm thời, etc.
no_all_squash: Nó tắt tất cả squashing. (Mặc định)
anonuid=UID: Tùy chọn này đặt rõ ràng uid và gid của các người dùng ẩn danh. Tùy chọn này chủ yếu hữu ích cho các PC client.
anongid=GID: Tùy chọn này đọc ở tùy chọn trên (anonuid=UID)
Thêm bản ghi vào DNS server
Thêm bản ghi vào DNS server để trỏ IP 10.0.0.8 về domain nfs.dinhducthanh.local. DSN server được cài giống bài: Cài đặt DNS Server trên Ubuntu 22.04: Internal Network
root@dns:~# vi /etc/bind/dinhducthanh.local.lan # Thêm vào 1 record A nfs IN A 10.0.0.8
root@dns:~# vi /etc/bind/0.0.10.db # Thêm vào 1 record PTR 8 IN PTR nfs.dinhducthanh.local.
– Restart BIND to apply changes.
root@dns:~# systemctl restart named