Ngắt kết nối một nfs nơi máy chủ nfs đã biến mất


32

Máy chủ A từng là máy chủ NFS. Máy chủ B đã được xuất khẩu. Mọi thứ đều ổn Rồi A chết. Chỉ cần tắt. Không còn. Biến mất.

Tuy nhiên, thư mục đó vẫn được gắn trên B. Tôi rõ ràng không thể cdvào đó hoặc bất cứ thứ gì. Tuy nhiên, umount /mnt/myfolderchỉ bị treo và sẽ không ổn. Có cách nào để vượt qua nó mà không cần khởi động lại B?

Cả máy khách và máy chủ đều là máy Linux.


Câu trả lời:


45

Giả sử Linux:

umount -f -l /mnt/myfolder

Sẽ khắc phục sự cố:

-f Buộc ngắt kết nối (trong trường hợp hệ thống NFS không truy cập được). (Yêu cầu kernel 2.1.116 trở lên.)

-l Lười biếng vô song. Bây giờ hãy tách hệ thống tệp khỏi hệ thống phân cấp hệ thống tệp và dọn sạch tất cả các tham chiếu đến hệ thống tệp ngay khi nó không còn bận nữa. (Yêu cầu kernel 2.4.11 trở lên.)

-f cũng tồn tại trên Solaris và AIX.


1
Tôi đã có cùng một vấn đề, googled và đến đây. Phải - lá cờ lười biếng thực sự đã giúp tôi ở đây ... -f, chính nó đã không làm điều đó ...
wawawawa

có, phải có tùy chọn "-l" "-f" CÙNG THỜI GIAN.
liuyang1

2
Ngoài ra, đôi khi tôi đã thành công tốt hơn bằng cách chỉ định địa chỉ từ xa thay vì đường dẫn cục bộ cho umount, ví dụ. umount -f -l nfsserver:/export/thefolder.
oliver

18

Xây dựng dựa trên gợi ý được đưa ra bởi David Pashley ,

trừ khi "umount -l" giải quyết vấn đề của bạn, bạn có thể thiết lập một máy chủ giả mạo có cùng địa chỉ với địa chỉ đã biến mất - nhưng thực tế bạn không phải thiết lập một máy chủ mới hay bất cứ thứ gì. Cách dễ nhất để thoát khỏi tình huống chặn / treo là thiết lập giao diện bí danh IP cục bộ , như sau:

ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount    # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down

(rõ ràng là 11,22.33,44 là địa chỉ IP (cũ) của máy chủ NFS (hiện đã chết)


Điều này làm việc cho tôi ngoại trừ tôi phải chạy một máy chủ nfs cục bộ.
gak

6

Có thể là khôn ngoan khi thêm intrtùy chọn vào bất kỳ /etc/fstabmục nào có thể bị treo hoặc bị treo. Nếu bạn không sử dụng softhoặc intrtùy chọn, thì khi máy chủ lưu trữ tệp NFS bị hỏng, máy chủ được gắn tệp (máy khách) có thể bị treo khi khởi động.

Theo man 5 nfs:

mềm / cứng
Xác định hành vi phục hồi của máy khách NFS sau khi hết yêu cầu NFS. Nếu không có tùy chọn nào được chỉ định (hoặc nếu tùy chọn cứng được chỉ định), các yêu cầu NFS sẽ được thử lại vô thời hạn. Nếu tùy chọn mềm được chỉ định, thì máy khách NFS sẽ không yêu cầu NFS sau khi truyền lại các lần truyền lại, khiến máy khách NFS trả về lỗi cho ứng dụng gọi điện.

... và sau đó nó tiếp tục được nói intrlà được ưa thích hơn soft, nhưng nó có tác dụng tương tự như ngăn chặn treo.


3
Lưu ý rằng với các phiên bản mới hơn của nfs, xâm nhập không được chấp nhận hoặc không có hoạt động - trong trường hợp này nên sử dụng phần mềm.
Paul

3

umount -f /mnt/myfoldernên giải quyết điều này. Xem trang chủ umount.


2
Điều này không hoàn toàn làm điều đó với NFS và một máy chủ đã chết. Bạn cũng cần cờ lười biếng (hoặc thủ thuật thêm IfAlias). lsof và fuser đều bị treo và umount -f nói "thiết bị bận".
wawawawa

1

Chỉ là một bên, sử dụng automount sẽ xử lý các cổ phiếu NFS không đếm được khi chúng trở nên không thể thực hiện được, điều này giúp tránh bị mắc kẹt trong tình huống này trong tương lai.


2
Không cần thiết. mount automount cũng có thể bị treo trong điều kiện này, nếu bạn cố gắng truy cập vào thư mục theo bất kỳ cách nào quá trình sẽ treo.
Kamil Kisiel

Vâng, thiết bị tự động gây ra nhiều vấn đề như nó giải quyết.
pjc50

1

Tôi chưa bao giờ quản lý để đi umount -flàm. Một mẹo hữu ích là thiết lập một máy chủ khác có cùng khả năng xuất, cung cấp cho nó cùng một địa chỉ IP như máy chủ cũ. Máy khách NFS của bạn sẽ nghĩ mọi thứ trở lại như bình thường và các quy trình sẽ bỏ chặn. Sau đó, bạn có thể ngắt kết nối điểm gắn kết bình thường và xóa địa chỉ IP khỏi máy chủ NFS tạm thời.


2
-l (lười biếng) là chìa khóa, như đã đề cập ở trên
Matt Simmons

1

Đối với Solaris, khởi động lại máy khách NFS sẽ giải quyết "vòng xoáy chết cứng". Lệnh cho Solaris 10 là "svcadm khởi động lại mạng / nfs / client" Gần đây, bạn đã không thử điều này trên hộp Linux (vì tất cả đều gắn cờ "xâm nhập" nên họ hiếm khi gặp sự cố này), nhưng có lẽ nó cũng sẽ khắc phục vấn đề.


0

Tôi chỉ nhận thấy rằng việc buộc unmounts trên kernel 3.2.0 bị treo với mount NFSv4. NFSv3 unmounts hoạt động tốt.

$ mount [...] -o nfsvers=3

0

chỉ là một phần tiếp theo dành riêng cho OS X, vì các lệnh mount hầu hết là * nix agnellect: cờ -l (lazy) không tồn tại trong OS X, tuy nhiên, cờ -f (lực) có, và được chứng minh là đủ . Ngoài ra, các điểm gắn kết do hệ thống tạo ra nằm trong / Tập (/ Tập / myserversexport)


0

Tôi đã gặp vấn đề tương tự. Vì máy chủ NFS đã bị xóa, tôi không thể vượt qua nfs từ máy khách. Tôi đã thử các mẹo sau, xem nó có hữu ích không. Vì máy chủ NFS ban đầu không còn nữa, tôi tạo một máy chủ mới có cùng IP và xuất. Sau đó, tôi thử umount -f / mnt / nfs_part. Tôi cuối cùng có thể vượt qua các nfs bây giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.