Phiên bản sắp xếp
NFS4 gắn vào fstab
thường bắt đầu một dịch vụ nền để tiếp tục thử lại khi máy chủ gắn kết không khả dụng. Tuy nhiên, chỉ trong khi khởi động lại và khi hết thời gian kết nối, dịch vụ nền mới không khởi động được. Nếu kết nối bị từ chối khi khởi động lại hoặc bất kỳ điều kiện nào sau khi khởi động lại, dịch vụ nền sẽ bắt đầu.
Phiên bản dài
Đây là trên Oracle8, một hương vị của RHEL8/CentOS8. Trong /etc/fstab
Tôi có
[xx:xx:xx:xx:xx:xx:xx:xx]:/example /mnt/example nfs4 mặc định 0 0
và trong /etc/nfsmount.conf
Tôi có
[ NFSMount_Global_Options ]
defaultvers=4
nfsvers=4
nền = đúng
rw=true
khó = đúng
đồng bộ hóa = đúng
rsize=32k
wsize=32k
nordirplus=true
hành động=3
_netdev=true
tôi xác nhận trong /proc/gắn kết
rằng các cài đặt chung đang được áp dụng cho giá đỡ khi nó hoạt động. Khi dịch vụ nền bắt đầu như mong đợi, bạn có thể thấy nó đang chạy.
[root@01b1 /]# ps aufx | grep nfs
gốc 1077 0.0 0.0 0 0 ? Tôi< 18:31 0:00 \_ [nfsiod]
gốc 1506 0,0 0,1 221928 1036 điểm/0 S+ 19:16 0:00 \_ grep --color=auto nfs
gốc 1466 0,0 0,0 47812 588 ? Ss 18:36 0:00 /sbin/mount.nfs4 [xx:xx:xx:xx:xx:xx:xx:xx]:/example /mnt/example -o rw
Và để rõ ràng, khi máy chủ lưu trữ khả dụng, quá trình gắn kết sẽ hoạt động mọi lúc. Sau đây là khi máy chủ không khả dụng, chẳng hạn như khởi động lại, cổng bị chặn, máy chủ nfs
bị dừng, v.v.
Khi dịch vụ nền bắt đầu khởi động lại, nó sẽ hiển thị điều này trong /var/log/tin nhắn
Ngày 8 tháng 6 17:42:29 01b1 systemd[1]: mnt-example.mount: Thư mục /mnt/example để mount không trống, vẫn có thể mount.
Ngày 8 tháng 6 17:42:29 01b1 systemd[1]: Gắn /mnt/example...
Ngày 8 tháng 6 17:42:31 01b1 mount[1027]: mount vào máy chủ NFS 'xx:xx:xx:xx:xx:xx:xx:xx' không thành công: Kết nối bị từ chối, đang thử lại
Ngày 8 tháng 6 17:42:31 01b1 mount[1018]: mount.nfs4: backgrounding "[xx:xx:xx:xx:xx:xx:xx:xx]:/example"
Ngày 8 tháng 6 17:42:31 01b1 mount[1018]: mount.nfs4: tùy chọn mount: "rw,vers=4,bg,rw,hard,sync,rsize=32768,wsize=32768,nordirplus,actimeo=3,_netdev "
Ngày 8 tháng 6 17:42:31 01b1 systemd[1]: mnt-example.mount: Quá trình mount kết thúc, nhưng không có mount.
Ngày 8 tháng 6 17:42:31 01b1 systemd[1]: mnt-example.mount: Không thành công với kết quả 'giao thức'.
Ngày 8 tháng 6 17:42:31 01b1 systemd[1]: Không thể gắn /mnt/example.
Ngày 8 tháng 6 17:42:32 01b1 mount[1128]: mount vào máy chủ NFS 'xx:xx:xx:xx:xx:xx:xx:xx' không thành công: Kết nối bị từ chối, đang thử lại
Ngày 8 tháng 6 17:42:34 01b1 mount[1128]: mount vào máy chủ NFS 'xx:xx:xx:xx:xx:xx:xx:xx' không thành công: Kết nối bị từ chối, đang thử lại
Nhưng khi nó không khởi động được dịch vụ nền khi khởi động lại thì nó hiện cái này
Ngày 8 tháng 6 17:49:05 01b1 systemd[1]: mnt-example.mount: Thư mục /mnt/example để gắn kết không trống, vẫn gắn kết.
Ngày 8 tháng 6 17:49:05 01b1 systemd[1]: Gắn /mnt/example...
Ngày 8 tháng 6 17:50:35 01b1 systemd[1]: mnt-example.mount: Hết thời gian gắn kết. Chấm dứt.
Ngày 8 tháng 6 17:50:35 01b1 systemd[1]: mnt-example.mount: Quá trình gắn kết đã thoát, mã=trạng thái bị giết=15
Ngày 8 tháng 6 17:50:35 01b1 systemd[1]: mnt-example.mount: Không thành công với kết quả 'hết thời gian chờ'.
Ngày 8 tháng 6 17:50:35 01b1 systemd[1]: Không thể gắn /mnt/example.
Khi khởi động lại khi cổng máy chủ được mở, nhưng máy chủ nfs
không chạy, kết nối bị từ chối và dịch vụ nền được bắt đầu.
Khi khởi động lại khi máy chủ tắt hoặc cổng bị chặn, kết nối sẽ hết thời gian và dịch vụ nền không được khởi động.
Nếu máy chủ không khả dụng, máy khách sẽ không khởi động lại và tôi thực hiện thủ công gắn kết -a
, dịch vụ nền sẽ luôn bắt đầu ngay cả khi kết nối bị từ chối hoặc hết thời gian chờ.
Bạn có biết tại sao dịch vụ nền không khởi động được chỉ khi khởi động lại và kết nối đã hết thời gian không? Có cách nào khắc phục để nền luôn bắt đầu khi máy chủ không khả dụng không?
--- CẬP NHẬT ---
Tôi đã thử cài đặt ngẫu nhiên để xem có gì hữu ích không. Tôi nhận thấy rằng việc điều chỉnh cài đặt thời gian chờ/thử lại cho phép dịch vụ nền khởi động khi khởi động lại ở cả thời gian chờ và kết nối bị từ chối.
/etc/nfsmount.conf
# Thời gian mặc định = 600
# Truyền lại mặc định=2
thời gian = 20
truyền lại=4
Tuy nhiên, tôi cảm thấy như đây là một miếng băng cá nhân chứ không phải là một giải pháp. Điều này không có ý nghĩa gì với tôi trừ khi đó là lỗi của RHEL. Tôi đoán một số vấn đề về chủng tộc đang xảy ra trong thời gian chờ lâu hơn.Tôi không tin điều này bởi vì điều gì sẽ xảy ra nếu những điều kiện cuộc đua đó thay đổi và nó lại bị hỏng.