Cảm ơn bạn, dòng lỗi này:
mount.nfs: mount system call failed
👉 cho thấy lệnh mount hệ thống (syscall) của Linux đã thất bại, tức là kubelet (hoặc bạn) đã gửi yêu cầu mount đúng cú pháp, nhưng kernel không thực hiện được thao tác mount.
Khi bạn mount bằng tay hoặc kubelet thực hiện mount, kernel cần có các tiện ích và module như nfs-common
.
✅ Kiểm tra:
which mount.nfs
Nếu không có: bạn cần cài nfs-common
(Debian/Ubuntu) hoặc nfs-utils
(CentOS/RHEL):
# Ubuntu / Debian
sudo apt update && sudo apt install -y nfs-common
# CentOS / RHEL
sudo yum install -y nfs-utils
Nếu mount.nfs
có nhưng vẫn lỗi syscall, có thể do kernel không có module nfs
.
✅ Kiểm tra:
lsmod | grep nfs
✅ Nạp thủ công:
sudo modprobe nfs
Nếu bị lỗi ở đây → cần kiểm tra kernel hoặc rebuild.
mount.nfs
gửi syscall nhưng không nhận được phản hồi → system call bị lỗi.
✅ Kiểm tra port mở giữa node ↔ NFS server:
telnet <nfs-ip> 2049
✅ Kiểm tra showmount -e <nfs-ip>
có trả về không.
✅ Trên NFS server, kiểm tra file /etc/exports
:
/export/data *(rw,sync,no_root_squash)
Nếu bạn mount:
sudo mount -t nfs <nfs-ip>:/export/data /mnt/test
Nhưng /export/data
không tồn tại trên server hoặc chưa được export → cũng sẽ gặp lỗi syscall failed.
✅ Kiểm tra từ NFS server:
exportfs -v
Nếu là CentOS/RHEL:
getenforce # nếu là Enforcing, thử:
setenforce 0
Dùng strace
để kiểm tra lỗi chi tiết khi gọi syscall:
strace mount -t nfs <nfs-ip>:/export/data /mnt/test
→ Dò đến mount()
syscall, sẽ thấy lý do chi tiết (ví dụ: EPERM
, ECONNREFUSED
, ETIMEDOUT
...)
Việc cần làm | Mục tiêu |
---|---|
Cài nfs-common / nfs-utils |
Đảm bảo có binary mount.nfs |
Kiểm tra modprobe nfs |
Nạp module kernel nếu thiếu |
Kiểm tra kết nối mạng, firewall | Đảm bảo NFS server reachable |
Kiểm tra path + exportfs |
Đảm bảo mount point hợp lệ |
Thử setenforce 0 |
Tạm bỏ SELinux test lỗi bảo mật |
Dùng strace nếu cần |
Để truy vết lỗi sâu |
Nếu bạn gửi thêm:
- Câu lệnh
mount
bạn chạy - OS của node
- Kết quả
showmount -e
- Cấu hình
/etc/exports
từ NFS server
Mình sẽ giúp xác định lỗi cụ thể ngay nhé.