Sau một thời gian chỉ biết sử dụng SMB/CIFS để chia sẻ file qua mạng, gần đây mình đã dành thời gian nghiên cứu về NFS – giao thức chia sẻ của Linux. Khi đã biết cách cài đặt NFS Server, mình sẽ dễ dàng các cấu hình ổ cứng mạng nâng cao trên các nền tảng ảo hóa như ESXi, Proxmox, XCP-ng.
Bài viết hôm nay sẽ là hướng dẫn cách cài đặt NFS Server trên máy chủ và cách cấu hình NFS Client trên máy trạm để kết nối đển NFS Server.
Mục Lục
I. Chuẩn bị
Để thực hiện các bước hướng dẫn trong bài viết, cần chuẩn bị hệ thống như sau:
- Hai máy ảo cài đặt Ubuntu Server 22.04 kết nối thông qua mạng nội bộ.
- Máy ảo cài NFS Server sẽ được gọi là máy chủ. IP máy chủ:
192.168.0.50
- Máy ảo cài NFS Client sẽ được gọi là máy trạm. IP máy trạm:
192.168.0.100
Mình chọn sử dụng Ubuntu 22.04 để làm quen với hệ điều hành mới này. Bạn có thể áp dụng hướng dẫn dưới đây trên bất kỳ bản Linux nào đều được.
II. Cài đặt NFS Server lên máy chủ
Phần này sẽ được thao tác trên máy chủ.
1. Cài đặt NFS Kerner Server
Trên máy chủ, cài đặt package nfs-kernel-server
sudo apt update
sudo apt install nfs-kernel-server
Code language: Nginx (nginx)
2. Tạo thư mục chia sẻ
Tạo thư mục mới để chia sẻ thông qua NFS
sudo mkdir /mnt/nfs -p
Code language: Nginx (nginx)
Tiếp theo, loại bỏ tất cả phân quyền cho thư mục này để các máy trạm có thể truy cập và tạo file.
sudo chown nobody:nogroup /mnt/nfs/
sudo chmod 777 /mnt/nfs/
Code language: Nginx (nginx)
3. Cấu hình NFS Server
Next, we’ll dive into the NFS configuration file to set up the sharing of these resources.
Tiếp theo, chỉnh sửa file cấu hình của NFS Server để thiết lập chia sẻ cho máy trạm.
sudo nano /etc/exports
Code language: Nginx (nginx)
Thêm vào nội dung với cú pháp directory_to_share client(share_option1,…,share_optionN)
, ví dụ như sau
/mnt/nfs 192.168.0.0/24(rw,sync,no_subtree_check)
Code language: YAML (yaml)
Giải thích các thông số
192.168.0.0/24
: Dãy IP của máy trạm được quyền truy cập vào thư mục chia sẻ.rw
: Cấp quyền đọc và ghi cho máy trạm lên thư mục chia sẻ. (Luôn dùng).ro
: Cấp quyền đọc, không cho chỉnh sửa.sync
: Thực hiện ghi lại những thay đổi lên đĩa cứng trước khi xác nhận. (Luôn dùng)no_subtree_check
: tắt tính năng subtree checking. (Luôn dùng)no_root_squash
: Máy trạm sẽ được truy cập vào thư mục chia sẻ dưới quyền root của máy chủ. (Không nên dùng)
Kích hoạt lại NFS server để áp dụng những thay đổi trên
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
Code language: Nginx (nginx)
NFS Server đã sẵn sàng chờ kết nối.
III. Kết nối NFS Share trên máy trạm
Phần này sẽ được chuyển qua thực hiện trên máy trạm.
1. Cài đặt NFS client
Cài đặt package nfs-common
sudo apt update
sudo apt install nfs-common
Code language: Nginx (nginx)
2. Tạo thư mục mount
Tạo thư mục mới để kết nối với NFS Share trên máy chủ.
sudo mkdir /mnt/nfs_client
Code language: Nginx (nginx)
3. Kết nối với NFS Share
Kết nối với NFS Share trên máy chủ và mount vào thư mục vừa tạo trên máy trạm bằng lệnh sau
sudo mount 192.168.0.50:/mnt/nfs /mnt/nfs_client
Code language: YAML (yaml)
Truy cập vào thư mục /mnt/nfs_client
và tạo thử 1 file
cd /mnt/nfs_client
touch thuanbuidepchai.txt
Code language: Bash (bash)
Chuyển qua máy chủ, kiểm tra xem trong thư mục /mnt/nfs
có xuất hiện file thuanbuidepchai.txt
không
ls -l /mnt/nfs
Code language: Nginx (nginx)
File thuanbuidepchai.txt
đã hiện ra. Kết nối NFS đã hoạt động ngon lành.
4. Tự động kết nối khi khởi động
Để máy trạm tự động kết nối vào ổ đĩa mạng NFS mỗi khi khởi động, mình sẽ chỉnh sửa file /etc/fstab
sudo nano /etc/fstab
Code language: Nginx (nginx)
Thêm vào nội dung sau và lưu lại
192.168.0.50:/mnt/nfs/ /mnt/nfs_client nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Code language: YAML (yaml)
Khởi động lại máy trạm, ổ đĩa mạng NFS sẽ được tự động kết nối vào thư mục /mnt/nfs_client
.
Vậy là xong. Chúc bạn thực hiện thành công.
Tham khảo: DigitalOcean
[convertkit form=7087807]
công nhận lễ ở nhà chịu khó viết quá a TB