NFS là gì? NFS, hay Hệ thống tệp mạng, là một giao thức cho phép người dùng cục bộ truy cập dữ liệu từ xa từ nhiều đĩa và thư mục như truy cập cục bộ. Giao thức NFS ban đầu được Sun Microsystem phát triển và trở thành giao thức chuẩn để chia sẻ tệp qua mạng. Giao thức này được sử dụng rộng rãi trong môi trường tập trung, nơi người dùng hoặc máy tính khách có thể lưu trữ và truy cập dữ liệu trên/đến một máy chủ từ xa tập trung.
NFS có thể được cài đặt và cấu hình dễ dàng trên hầu hết các hệ thống Linux cho cả Máy chủ và Máy khách NFS. Hầu như mọi bản phân phối Linux đều cung cấp các gói NFS theo mặc định trên kho lưu trữ của họ. Tên gói khác nhau, nhưng cấu hình vẫn giống nhau đối với hầu hết các bản phân phối Linux.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt NFS Server trên AlmaLinux 9. Ngoài ra, bạn cũng sẽ thiết lập máy khách để gắn các thư mục được chia sẻ từ NFS Server và thiết lập tự động gắn khi khởi động thông qua tệp /etc/fstab.
Chạy lệnh sau để cài đặt gói nfs-utils. Nhập y khi được nhắc, sau đó nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22189%22%3E%3C/svg%3E
Bây giờ, hãy mở tệp /etc/idmapd.conf bằng lệnh trình chỉnh sửa nano bên dưới.
Bỏ chú thích tham số Domain và thay đổi giá trị thành FQDN (tên miền đủ điều kiện) của máy chủ hoặc sử dụng tên máy chủ.
Lưu và thoát tệp khi hoàn tất.
Tiếp theo, chạy lệnh sau để bắt đầu và bật NFS dịch vụ.
Sau đó, xác minh dịch vụ NFS bằng lệnh bên dưới để đảm bảo rằng NFS đang chạy.
Nếu cài đặt thành công, bạn sẽ nhận được kết quả như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22217%22%3E%3C/svg%3E
Đầu tiên, tạo hai thư mục /mnt/shared và /mnt/backup bằng lệnh sau.
Thay đổi quyền sở hữu của cả hai thư mục thành người dùng và nhóm nobody, sau đó thay đổi quyền mặc định thành 775.
Tiếp theo, tạo tệp cấu hình mới aa bằng trình chỉnh sửa nano.
Chèn các dòng sau vào tệp. Trong ví dụ này, chúng tôi sẽ thiết lập ba thư mục chia sẻ /mnt/backup và /home cho máy khách 192.168.10.21 và /mnt/shared cho toàn bộ mạng trong 192.168.10.0/24.
Lưu và đóng tệp khi bạn hoàn tất.
Sau đây là một số tham số NFS quan trọng mà bạn nên biết:
Sau khi NFS khởi động lại, hãy chạy lệnh sau để kiểm tra danh sách các thư mục được chia sẻ trên máy chủ NFS.
Nếu các thao tác thành công, bạn sẽ thấy danh sách các thư mục chia sẻ NFS trên thiết bị đầu cuối của mình như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22143%22%3E%3C/svg%3E
Bây giờ, hãy chạy lệnh sau để thêm một số dịch vụ NFS vào tường lửa.
Sau đó, tải lại tường lửa để áp dụng các thay đổi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22115%22%3E%3C/svg%3E
Sau đó, xác minh các quy tắc tường lửa của bạn bằng lệnh bên dưới.
Đầu ra mong đợi sẽ như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22605%22%20height=%22368%22%3E%3C/svg%3E
Đăng nhập vào máy khách của bạn, sau đó chạy lệnh sau để cài đặt gói nfs-utils. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER.
Bây giờ, hãy chạy lệnh sau để kiểm tra các thư mục chia sẻ khả dụng trên máy chủ NFS 192.168.10.15.
Bạn sẽ thấy ba thư mục chia sẻ khác nhau khả dụng trên máy chủ NFS của mình, /mnt/backup, /mnt/shared và /home.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22497%22%20height=%22178%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để tạo các thư mục mới/data, /backup và /shared sẽ được sử dụng để gắn kết NFS shared thư mục.
Chạy lệnh sau để gắn kết các thư mục được chia sẻ NFS. Trong ví dụ này, chúng tôi sẽ gắn thư mục chia sẻ /mnt/backup vào /backup, /mnt/shared vào /shared và /home vào /data.
Cuối cùng, hãy xác minh danh sách các hệ thống tệp đã gắn trên máy khách bằng cách sử dụng lệnh sau lệnh.
Nếu quá trình thành công, bạn sẽ thấy các thư mục chia sẻ NFS được gắn trên máy khách như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22598%22%20height=%22314%22%3E%3C/svg%3E
Trên máy khách, hãy chạy lệnh sau để tạo các tệp mới /backup/test-write1.txt, /shared/test-write2.txt và /home/alice/test-write3.txt.
Nếu máy chủ và máy khách NFS cài đặt thành công, các tệp mới bạn đã tạo trên máy khách sẽ có sẵn trên máy chủ NFS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22150%22%3E%3C/svg%3E
Bây giờ hãy quay lại máy chủ NFS và chạy lệnh sau để đảm bảo rằng các tệp mới có sẵn trên NFS máy chủ.
Từ đầu ra bên dưới, chúng ta có thể thấy rằng tệp có sẵn trên máy chủ NFS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22609%22%20height=%22228%22%3E%3C/svg%3E
Trước tiên, hãy bỏ gắn và xác minh các thư mục chia sẻ NFS trên máy khách bằng lệnh sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22538%22%20height=%22302%22%3E%3C/svg%3E
Mở tệp /etc/fstab bằng lệnh trình chỉnh sửa nano sau.
Thêm các tùy chọn sau và đảm bảo tùy chỉnh thông tin chi tiết của thư mục chia sẻ và mục tiêu gắn kết thư mục.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22279%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để xác minh cấu hình /etc/fstab. Và nếu bạn có tệp fstab phù hợp, các thư mục chia sẻ NFS sẽ được gắn kết sau khi lệnh được thực thi.
Xác minh bằng lệnh sau để lấy danh sách hệ thống tệp đã gắn kết của máy khách.
Bạn sẽ thấy các thư mục chia sẻ NFS được gắn kết trên máy khách thông qua lệnh 'mount -a'dựa trên tệp /etc/fstab.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22606%22%20height=%22356%22%3E%3C/svg%3E
Máy khách sẽ tự động gắn các thư mục được chia sẻ NFS khi khởi động hệ thống.
Đối với bước tiếp theo, hãy xem xét bảo mật bổ sung cho máy chủ NFS.
NFS có thể được cài đặt và cấu hình dễ dàng trên hầu hết các hệ thống Linux cho cả Máy chủ và Máy khách NFS. Hầu như mọi bản phân phối Linux đều cung cấp các gói NFS theo mặc định trên kho lưu trữ của họ. Tên gói khác nhau, nhưng cấu hình vẫn giống nhau đối với hầu hết các bản phân phối Linux.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt NFS Server trên AlmaLinux 9. Ngoài ra, bạn cũng sẽ thiết lập máy khách để gắn các thư mục được chia sẻ từ NFS Server và thiết lập tự động gắn khi khởi động thông qua tệp /etc/fstab.
Điều kiện tiên quyết
Trước khi bắt đầu, bạn phải đảm bảo rằng mình có những điều sau:- Máy chủ AlmaLinux 9 - Trong bản demo này, chúng tôi sử dụng máy chủ có tên máy chủalmalinux9-server và địa chỉ IP 192.168.10.15.
- Người dùng không phải root có quyền root sudo/administrator.
- Một hoặc nhiều máy khách - Có thể là bất kỳ bản phân phối nào dựa trên RHEL.
Cài đặt Máy chủ NFS
Để thiết lập NFS (Lưu trữ tệp mạng) trên Almalinux, bạn chỉ cần cài đặt nfs-utils trên cả máy chủ và máy khách NFS. Nó có sẵn trên kho lưu trữ AppStream, bạn có thể dễ dàng cài đặt nó thông qua DNF.Chạy lệnh sau để cài đặt gói nfs-utils. Nhập y khi được nhắc, sau đó nhấn ENTER.
Mã:
sudo dnf install nfs-utils
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22189%22%3E%3C/svg%3E
Bây giờ, hãy mở tệp /etc/idmapd.conf bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/idmapd.conf
Mã:
Domain = almalinux9-server
Tiếp theo, chạy lệnh sau để bắt đầu và bật NFS dịch vụ.
Mã:
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
Mã:
sudo systemctl status nfs-server
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22217%22%3E%3C/svg%3E
Tạo thư mục dùng chung
Bây giờ máy chủ NFS của bạn đã hoạt động, bước tiếp theo là thiết lập thư mục dùng chung cho máy khách. Vậy chúng ta hãy bắt đầu nhé.Đầu tiên, tạo hai thư mục /mnt/shared và /mnt/backup bằng lệnh sau.
Mã:
sudo mkdir -p /mnt/shared /mnt/backup
Mã:
sudo chown -R nobody:nobody /mnt/shared /mnt/backup
sudo chmod 775 /mnt/shared /mnt/backup
Mã:
sudo nano /etc/exports
Mã:
/mnt/backup 192.168.10.21(rw,sync,no_subtree_check)
/home 192.168.10.21(rw,sync,no_root_squash,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)
Sau đây là một số tham số NFS quan trọng mà bạn nên biết:
- rw: Bật đọc và ghi cho thư mục chia sẻ đích.
- sync: Tùy chọn này sẽ đảm bảo dữ liệu được ghi vào đĩa trước khi máy khách thực hiện yêu cầu mới khác. Theo cách này, dữ liệu của bạn được an toàn, nhưng ở tốc độ chậm hơn cho các hoạt động đọc/ghi.
- no_subtree_check: Tắt kiểm tra cây con để cải thiện tốc độ và hiệu suất của máy chủ NFS. Kiểm tra cây con là một quy trình để đảm bảo sẽ không có xung đột khi người dùng thay đổi tên tệp.
- no_root_squash: Tùy chọn này sẽ tắt chức năng squashing, cho phép máy khách NFS có quyền root trong thư mục chia sẻ. Trong ví dụ này, chúng ta sẽ vô hiệu hóa việc nén chỉ đối với thư mục được chia sẻ /home.
Mã:
sudo systemctl restart nfs-server
Mã:
sudo exportfs -v
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22143%22%3E%3C/svg%3E
Bảo mật máy chủ NFS bằng Firewalld
Sau khi cấu hình thư mục chia sẻ NFS, bước tiếp theo là thiết lập firewalld và mở một số cổng/dịch vụ cho máy khách. Trước khi bắt đầu, hãy đảm bảo rằng bạn đã bật và chạy tường lửa.Bây giờ, hãy chạy lệnh sau để thêm một số dịch vụ NFS vào tường lửa.
Mã:
sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
Mã:
sudo firewall-cmd --reload
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22115%22%3E%3C/svg%3E
Sau đó, xác minh các quy tắc tường lửa của bạn bằng lệnh bên dưới.
Mã:
sudo firewall-cmd --list-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22605%22%20height=%22368%22%3E%3C/svg%3E
Thiết lập máy khách NFS
Phần này sẽ đề cập đến cách thiết lập máy khách NFS bằng máy chủ AlmaLinux, có thể triển khai trên hầu hết các bản phân phối dựa trên RHEL.Đăng nhập vào máy khách của bạn, sau đó chạy lệnh sau để cài đặt gói nfs-utils. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER.
Mã:
sudo dnf install nfs-utils
Mã:
sudo showmount -e 192.168.10.15
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22497%22%20height=%22178%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để tạo các thư mục mới/data, /backup và /shared sẽ được sử dụng để gắn kết NFS shared thư mục.
Mã:
sudo mkdir -p /data /backup /shared
Mã:
sudo mount 192.168.10.15:/mnt/backup /backup
sudo mount 192.168.10.15:/mnt/shared /shared
sudo mount 192.168.10.15:/home /data
Mã:
sudo df -h
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22598%22%20height=%22314%22%3E%3C/svg%3E
Xác minh quyền truy cập ghi từ máy khách
Sau khi các thư mục chia sẻ NFS được gắn trên máy khách máy, bạn phải đảm bảo quyền truy cập đọc và ghi vào các thư mục được chia sẻ.Trên máy khách, hãy chạy lệnh sau để tạo các tệp mới /backup/test-write1.txt, /shared/test-write2.txt và /home/alice/test-write3.txt.
Mã:
echo "This file from client" > /backup/test-write1.txt
echo "This file from client" > /shared/test-write2.txt
echo "This file from client" > /data/alice/test-write3.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22150%22%3E%3C/svg%3E
Bây giờ hãy quay lại máy chủ NFS và chạy lệnh sau để đảm bảo rằng các tệp mới có sẵn trên NFS máy chủ.
Mã:
cat /mnt/backup/test-write1.txt
cat /mnt/shared/test-write2.txt
cat /home/alice/test-write3.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22609%22%20height=%22228%22%3E%3C/svg%3E
Cấu hình tự động gắn Thư mục chia sẻ NFS qua /etc/fstab
Sau khi xác minh quyền truy cập đọc và ghi trên NFS, bạn cũng có thể cần thiết lập tự động gắn máy chủ NFS trên máy khách. Vì vậy, bất cứ khi nào máy khách được khởi động lại, thư mục chia sẻ NFS sẽ được tự động gắn trong quá trình khởi động và điều này có thể được thực hiện thông qua tệp /etc/fstab.Trước tiên, hãy bỏ gắn và xác minh các thư mục chia sẻ NFS trên máy khách bằng lệnh sau.
Mã:
sudo umount /data /backup /shared
sudo df -h
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22538%22%20height=%22302%22%3E%3C/svg%3E
Mở tệp /etc/fstab bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/fstab
Mã:
192.168.10.15:/mnt/backup /backup nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/mnt/shared /shared nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/home /data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22279%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để xác minh cấu hình /etc/fstab. Và nếu bạn có tệp fstab phù hợp, các thư mục chia sẻ NFS sẽ được gắn kết sau khi lệnh được thực thi.
Mã:
sudo mount -a
Mã:
sudo df -h
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22606%22%20height=%22356%22%3E%3C/svg%3E
Máy khách sẽ tự động gắn các thư mục được chia sẻ NFS khi khởi động hệ thống.
Kết luận
Xin chúc mừng! Bạn đã cài đặt thành công Máy chủ và Máy khách NFS trên máy chủ AlmaLinux 9. Bạn cũng đã học cách sử dụng cơ bản một số lệnh như mount để gắn các hệ thống tệp, exportfs để quản lý các thư mục được chia sẻ NFS và df để hiển thị các hệ thống tệp đã gắn. Ngoài ra, bạn cũng đã cấu hình tự động gắn các thư mục chia sẻ NFS trên máy khách thông qua tệp /etc/fstab.Đối với bước tiếp theo, hãy xem xét bảo mật bổ sung cho máy chủ NFS.