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 theo cùng cách 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.
Trên hầu hết các hệ thống Linux, NFS có thể được cài đặt và cấu hình dễ dàng 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ữ riêng của chúng. 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.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Máy chủ và Máy khách NFS trên Máy chủ Ubuntu 22.04. Bạn cũng sẽ học cách tự động gắn thư mục chia sẻ NFS khi khởi động hệ thống trên máy khách.
Bạn có thể đăng nhập bằng lệnh ssh bên dưới. Sau đó, chạy lệnh "sudo su" để lấy quyền root.
Bây giờ hãy cài đặt gói máy chủ NFS bằng lệnh bên dưới. Nhập Y để xác nhận cài đặt và nhấn ENTER, quá trình cài đặt sẽ bắt đầu.
Sau khi quá trình cài đặt máy chủ NFS hoàn tất, hãy kiểm tra và xác minh dịch vụ máy chủ NFS bằng lệnh sau. Khi cài đặt Ubuntu, máy chủ NFS sẽ tự động được bật và sẽ tự động chạy khi khởi động hệ thống.
Trên máy chủ Ubuntu 22.04, cấu hình NFS đã thay đổi. Cấu hình chính cho NFS nằm tại tệp "/etc/nfs.conf", cho phép bạn thiết lập và cấu hình máy chủ NFS. Một cấu hình khác cho dịch vụ NFS nằm tại "/etc/default/nfs-*", cấu hình này có thể được sử dụng để thiết lập dịch vụ NFS về cách dịch vụ sẽ chạy.
Ngoài ra, các phiên bản NFS mặc định được bật trên cài đặt mặc định là NFSv3 và NFSv4. Bạn có thể kiểm tra các phiên bản NFS được bật mặc định bằng lệnh bên dưới.
Chạy lệnh bên dưới để tạo các thư mục dùng chung mới. Trong ví dụ này, sẽ có hai thư mục dùng chung dành cho máy khách, "/srv/backups" và "/mnt/shared".
Bây giờ hãy thay đổi quyền sở hữu và quyền của các thư mục dùng chung bằng lệnh bên dưới. Người dùng và nhóm phải là "nobody:nogroup" và quyền sẽ là "777" để đảm bảo các thư mục được chia sẻ có thể ghi được.
Tiếp theo, sửa đổi tệp "/etc/exports" bằng lệnh sau.
Thêm cấu hình sau vào tệp.
Lưu và đóng tệp khi bạn hoàn tất.
Bây giờ hãy chạy lệnh sau để khởi động lại và xác minh dịch vụ NFS. Và bạn sẽ thấy dịch vụ NFS đang chạy với một thư mục được xuất mới.
Chạy lệnh sau để kiểm tra các thư mục chia sẻ khả dụng trên máy chủ NFS. Bạn sẽ thấy hai thư mục "/srv/backups" và "/mnt/shared" có sẵn dưới dạng thư mục dùng chung cho máy khách.
Như bạn có thể thấy ở trên, mỗi thư mục dùng chung có thể truy cập được thông qua một địa chỉ IP và mạng cụ thể của máy khách. Vì vậy, bạn sẽ cần chỉ định địa chỉ IP của máy khách hoặc mạng trong quy tắc tường lửa UFW sẽ được phép truy cập vào cổng dịch vụ NFS.
Chạy lệnh ufw bên dưới để cho phép địa chỉ IP của máy khách "192.168.5.100" và mạng "192.168.10.0/24" truy cập vào cổng dịch vụ NFS.
Bây giờ hãy tải lại quy tắc tường lửa UFW và xác minh danh sách các quy tắc tường lửa bằng lệnh bên dưới. Bạn sẽ thấy cổng dịch vụ NFS mặc định "2049" có thể truy cập thông qua các địa chỉ IP và mạng máy khách cụ thể.
Đăng nhập vào máy khách Ubuntu của bạn. Nếu bạn đang sử dụng Ubuntu Desktop, bạn chỉ cần mở terminal trên hệ thống của mình. Nhưng nếu bạn đang sử dụng phiên bản Ubuntu Server cho máy khách, bạn có thể kết nối bằng lệnh ssh như bên dưới.
Chạy lệnh apt bên dưới để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Bây giờ hãy cài đặt gói "nfs-common" bằng lệnh sau. Nhập Y để xác nhận cài đặt và nhấn ENTER. Bây giờ quá trình cài đặt sẽ bắt đầu.
Chạy lệnh bên dưới để tạo một thư mục mới "/mnt/data".
Để gắn kết thư mục chia sẻ NFS, hãy chạy lệnh gắn kết bên dưới. Trong bản demo này, bạn sẽ gắn thư mục chia sẻ "/srv/backups" vào thư mục đích "/mnt/data".
Bây giờ hãy chạy lệnh sau để kiểm tra và xác minh danh sách các đĩa đã gắn trên máy Ubuntu của bạn. Bạn sẽ thấy thư mục chia sẻ NFS "/srv/backups" được gắn vào máy cục bộ của bạn trên thư mục "/mnt/data".
Bây giờ hãy chạy lệnh sau để tạo và ghi tệp mới "write.txt" vào thư mục đích NFS được gắn "/mnt/data/".
Tiếp theo, quay lại Máy chủ NFS và chạy lệnh sau để kiểm tra và xác minh tệp "write.txt". Bạn sẽ thấy chính xác tệp mà bạn vừa tạo từ máy khách NFS.
Trước khi chỉnh sửa tệp /etc/fstab, hãy chạy lệnh sau để hủy gắn kết thư mục chia sẻ NFS khỏi mục tiêu "/mnt/data".
Chỉnh sửa tệp "/etc/fstab" bằng lệnh bên dưới.
Thêm cấu hình sau vào tệp.
Lưu và đóng tệp khi bạn xong.
Tiếp theo, chạy lệnh mount bên dưới để kiểm tra và xác minh tệp "/etc/fstab". Nếu cấu hình của bạn đúng, tất cả các hệ thống tệp trên tệp "/etc/fstab" sẽ được gắn vào máy của bạn.
Xác minh danh sách các đĩa đã gắn trên máy khách của bạn bằng lệnh bên dưới. Và bạn sẽ thấy thư mục chia sẻ NFS "/srv/backups" được gắn vào thư mục đích "/mnt/data". Nếu bạn khởi động lại/khởi động lại máy khách, thư mục chia sẻ NFS sẽ tự động được gắn vào thư mục "/mnt/data".
Trên hầu hết các hệ thống Linux, NFS có thể được cài đặt và cấu hình dễ dàng 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ữ riêng của chúng. 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.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Máy chủ và Máy khách NFS trên Máy chủ Ubuntu 22.04. Bạn cũng sẽ học cách tự động gắn thư mục chia sẻ NFS khi khởi động hệ thống trên máy khách.
Điều kiện tiên quyết
Hướng dẫn này yêu cầu các điều kiện tiên quyết sau:- Máy chủ Ubuntu 22.04 - Để cài đặt Máy chủ NFS.
- Máy khách Linux - Ví dụ này sẽ được máy khách Ubuntu sử dụng.
- Người dùng không phải root có quyền root/quản trị viên.
Cài đặt và cấu hình Máy chủ NFS
Điều đầu tiên bạn sẽ làm ở đây là cài đặt và cấu hình Máy chủ NFS. Trước khi bắt đầu, hãy đăng nhập vào máy chủ của bạn và lấy quyền root.Bạn có thể đăng nhập bằng lệnh ssh bên dưới. Sau đó, chạy lệnh "sudo su" để lấy quyền root.
Mã:
ssh user@SERVER-IP
sudo su
Cài đặt Gói Máy chủ NFS
Trước khi cài đặt bất kỳ gói nào, hãy chạy lệnh apt bên dưới để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Mã:
sudo apt install nfs-kernel-server
Sau khi quá trình cài đặt máy chủ NFS hoàn tất, hãy kiểm tra và xác minh dịch vụ máy chủ NFS bằng lệnh sau. Khi cài đặt Ubuntu, máy chủ NFS sẽ tự động được bật và sẽ tự động chạy khi khởi động hệ thống.
Mã:
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server
Trên máy chủ Ubuntu 22.04, cấu hình NFS đã thay đổi. Cấu hình chính cho NFS nằm tại tệp "/etc/nfs.conf", cho phép bạn thiết lập và cấu hình máy chủ NFS. Một cấu hình khác cho dịch vụ NFS nằm tại "/etc/default/nfs-*", cấu hình này có thể được sử dụng để thiết lập dịch vụ NFS về cách dịch vụ sẽ chạy.
Ngoài ra, các phiên bản NFS mặc định được bật trên cài đặt mặc định là NFSv3 và NFSv4. Bạn có thể kiểm tra các phiên bản NFS được bật mặc định bằng lệnh bên dưới.
Mã:
cat /proc/fs/nfsd/versions
Mã:
-2 +3 +4 +4.1 +4.2
Thiết lập thư mục dùng chung
Sau khi cài đặt gói máy chủ NFS, bây giờ bạn sẽ thiết lập các thư mục dùng chung. Các thư mục dùng chung NFS có thể được xác định thông qua tệp "/etc/exports". Ngoài ra, bạn có thể chỉ định địa chỉ IP của máy khách cho thư mục dùng chung hoặc thiết lập quyền đọc/ghi vào thư mục dùng chung.Chạy lệnh bên dưới để tạo các thư mục dùng chung mới. Trong ví dụ này, sẽ có hai thư mục dùng chung dành cho máy khách, "/srv/backups" và "/mnt/shared".
Mã:
sudo mkdir -p /srv/backups /mnt/shared
Mã:
sudo chown -R nobody:nogroup /srv/backups /mnt/shared
sudo chmod 777 /srv/backups /mnt/shared
Mã:
sudo nano /etc/exports
Mã:
/srv/backups 192.168.5.100(rw,sync,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)
- Thư mục "/srv/backups" sẽ chỉ khả dụng cho máy khách NFS có địa chỉ IP "192.168.5.100".
- Thư mục "/mnt/shared" sẽ khả dụng cho tất cả máy khách trong toàn bộ mạng "192.168.10.0/24".
- rw - bật chức năng đọc và ghi cho thư mục dùng chung.
- sync - cho phép NFS ghi các thay đổi trước khi phản hồi cho máy khách và đảm bảo máy chủ NFS luôn được hiển thị cho máy khách.
- no_subtree_check - tắt chức năng kiểm tra cây con và đảm bảo sẽ không có xung đột khi người dùng thay đổi tên tệp.
Mã:
sudo exportfs -a
Mã:
sudo systemctl restart nfs-server
sudo systemctl status nfs-server
Chạy lệnh sau để kiểm tra các thư mục chia sẻ khả dụng trên máy chủ NFS. Bạn sẽ thấy hai thư mục "/srv/backups" và "/mnt/shared" có sẵn dưới dạng thư mục dùng chung cho máy khách.
Mã:
sudo exportfs -v
Bảo mật máy chủ NFS bằng tường lửa
Sau khi thiết lập thư mục dùng chung NFS, đã đến lúc bảo mật máy chủ NFS bằng Tường lửa, trong trường hợp này, tường lửa mặc định cho Ubuntu là UFW.Như bạn có thể thấy ở trên, mỗi thư mục dùng chung có thể truy cập được thông qua một địa chỉ IP và mạng cụ thể của máy khách. Vì vậy, bạn sẽ cần chỉ định địa chỉ IP của máy khách hoặc mạng trong quy tắc tường lửa UFW sẽ được phép truy cập vào cổng dịch vụ NFS.
Chạy lệnh ufw bên dưới để cho phép địa chỉ IP của máy khách "192.168.5.100" và mạng "192.168.10.0/24" truy cập vào cổng dịch vụ NFS.
Mã:
sudo ufw allow from 192.168.5.100 to any port nfs
sudo ufw allow from 192.168.10.0/24 to any port nfs
Mã:
sudo ufw reload
sudo ufw status
Cài đặt và cấu hình máy khách NFS
Sau khi bạn đã cài đặt Máy chủ NFS, bây giờ là lúc thiết lập máy khách NFS và gắn thư mục dùng chung vào máy khách. Trong ví dụ này, máy khách cũng sẽ là máy Ubuntu.Đăng nhập vào máy khách Ubuntu của bạn. Nếu bạn đang sử dụng Ubuntu Desktop, bạn chỉ cần mở terminal trên hệ thống của mình. Nhưng nếu bạn đang sử dụng phiên bản Ubuntu Server cho máy khách, bạn có thể kết nối bằng lệnh ssh như bên dưới.
Mã:
ssh root@CLIENT-IP
Cài đặt gói máy khách NFS
Bước đầu tiên bạn sẽ thực hiện trên máy khách là cài đặt gói "nfs-common" cho phép bạn gắn máy chủ NFS vào máy khách của mình.Chạy lệnh apt bên dưới để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Mã:
sudo apt install nfs-common
Thiết lập thư mục gắn kết
Trước khi bắt đầu gắn kết thư mục chia sẻ NFS, bạn sẽ tạo một thư mục cụ thể mới cho đích gắn kết. Trong ví dụ này, thư mục đích để gắn kết các chia sẻ NFS là thư mục "/mnt/data".Chạy lệnh bên dưới để tạo một thư mục mới "/mnt/data".
Mã:
sudo mkdir -p /mnt/data
Mã:
sudo mount nfs_server_ip:/srv/backups /mnt/data
Mã:
sudo df -h
Xác minh quyền ghi vào máy chủ NFS
Sau khi bạn đã gắn thành công thư mục chia sẻ NFS, đã đến lúc xác minh quyền ghi vào thư mục chia sẻ NFS.Bây giờ hãy chạy lệnh sau để tạo và ghi tệp mới "write.txt" vào thư mục đích NFS được gắn "/mnt/data/".
Mã:
echo "This file from client" > /mnt/data/write.txt
cat /mnt/data/write.txt
Tiếp theo, quay lại Máy chủ NFS và chạy lệnh sau để kiểm tra và xác minh tệp "write.txt". Bạn sẽ thấy chính xác tệp mà bạn vừa tạo từ máy khách NFS.
Mã:
cat /srv/backups/write.txt
ls /srv/backups/
Tự động gắn Máy chủ NFS với /etc/fstab
Tại thời điểm này, bạn đã gắn thành công thư mục chia sẻ NFS trên máy khách Ubuntu và đã kiểm tra quyền ghi trên thư mục chia sẻ. Bây giờ bạn sẽ thiết lập thư mục chia sẻ NFS để được gắn kết tự động trong quá trình khởi động hệ thống và điều này có thể được thực hiện thông qua tệp /etc/fstab.Trước khi chỉnh sửa tệp /etc/fstab, hãy chạy lệnh sau để hủy gắn kết thư mục chia sẻ NFS khỏi mục tiêu "/mnt/data".
Mã:
sudo umount /mnt/data
Mã:
sudo nano /etc/fstab
Mã:
nfs_server_ip:/srv/backups /mnt/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Tiếp theo, chạy lệnh mount bên dưới để kiểm tra và xác minh tệp "/etc/fstab". Nếu cấu hình của bạn đúng, tất cả các hệ thống tệp trên tệp "/etc/fstab" sẽ được gắn vào máy của bạn.
Mã:
sudo mount -a
Mã:
sudo df -h