ถอนติดตั้ง nfs mount ที่เซิร์ฟเวอร์ nfs หายไป


32

เซิร์ฟเวอร์ A เคยเป็นเซิร์ฟเวอร์ NFS เซิร์ฟเวอร์ B กำลังติดตั้งการส่งออก ทุกอย่างเรียบร้อยดี. จากนั้นเสียชีวิต เพิ่งปิด ที่ไปแล้ว. หายไป

อย่างไรก็ตามโฟลเดอร์นั้นยังคงติดตั้งอยู่บน B. ฉันไม่สามารถcdเข้าไปได้อย่างชัดเจน อย่างไรก็ตามumount /mnt/myfolderเพียงแค่แขวนและจะไม่นับ อย่างไรก็ตามมีการเพิ่มจำนวนโดยไม่ต้องรีสตาร์ท B หรือไม่

ทั้งไคลเอ็นต์และเซิร์ฟเวอร์เป็นเครื่อง Linux


คำตอบ:


45

สมมติว่า Linux:

umount -f -l /mnt/myfolder

จะเรียงลำดับของการแก้ไขปัญหา:

-f บังคับให้ unmount (ในกรณีของระบบ NFS ที่ไม่สามารถเข้าถึงได้) (ต้องการเคอร์เนล 2.1.116 หรือใหม่กว่า)

-l ขี้เกียจ unmount แยกระบบไฟล์ออกจากลำดับชั้นของระบบไฟล์ในขณะนี้และล้างการอ้างอิงทั้งหมดไปยังระบบไฟล์ทันทีที่ไม่ยุ่งอีกต่อไป (ต้องการเคอร์เนล 2.4.11 หรือใหม่กว่า)

-f ยังมีอยู่บน Solaris และ AIX


1
ฉันมีปัญหาเดียวกัน googled และมาที่นี่ ใช่ - ธงขี้เกียจจริงๆช่วยฉันที่นี่ ... -f เป็นของตัวเองไม่ได้ทำมัน ...
wawawawa

ใช่ต้องมีตัวเลือก "-l" "-f" SAME TIME
liuyang1

2
นอกจากนี้บางครั้งฉันก็ประสบความสำเร็จที่ดีขึ้นด้วยการระบุที่อยู่ระยะไกลมากกว่าเส้นทางท้องถิ่นสำหรับจำนวนที่มากขึ้นเช่น umount -f -l nfsserver:/export/thefolder.
โอลิเวอร์

18

Elaborating เมื่อคำแนะนำที่กำหนดโดยเดวิด Pashley ,

เว้นแต่ว่า "umount -l" แก้ปัญหาของคุณคุณสามารถตั้งค่าเซิร์ฟเวอร์ปลอมที่มีที่อยู่เดียวกับที่หายไป - แต่คุณไม่ต้องตั้งเซิร์ฟเวอร์ใหม่หรืออะไรก็ตาม วิธีที่ง่ายที่สุดในสถานการณ์ umount การบล็อค / แฮงค์คือการตั้งค่าส่วนต่อประสานนามแฝง IPภายในดังนี้

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

(เห็นได้ชัดว่า 11.22.33.44 เป็นที่อยู่ IP (เดิม) ของเซิร์ฟเวอร์ NFS (ตายแล้ว)


สิ่งนี้ใช้ได้สำหรับฉันยกเว้นฉันต้องเรียกใช้เซิร์ฟเวอร์ nfs ในพื้นที่
gak

6

อาจเป็นการดีที่จะเพิ่มintrตัวเลือกใน/etc/fstabรายการที่อาจสิ้นสุดการหยุดทำงานหรือหยุดทำงาน หากคุณไม่ได้ใช้softหรือintrตัวเลือกจากนั้นเมื่อเซิร์ฟเวอร์ที่โฮสต์ไฟล์ NFS หยุดทำงานเซิร์ฟเวอร์ที่ติดตั้งไฟล์ (ไคลเอ็นต์) อาจหยุดทำงานเมื่อบูทเครื่อง

ตามman 5 nfs:

soft / hard
กำหนดลักษณะการกู้คืนของไคลเอ็นต์ NFS หลังจากการร้องขอ NFS หมดเวลา หากไม่ได้ระบุตัวเลือกไว้ (หรือหากระบุตัวเลือกฮาร์ด) คำขอ NFS จะถูกลองใหม่โดยไม่มีกำหนด หากระบุอ็อพชันซอฟต์ไคลเอ็นต์ NFS จะล้มเหลวในการร้องขอ NFS หลังจากที่ส่งการส่งสัญญาณการส่งผ่านซ้ำอีกครั้งทำให้ไคลเอ็นต์ NFS ส่งคืนข้อผิดพลาดไปยังแอ็พพลิเคชันการโทร

... และจากนั้นจะพูดต่อว่าintrเป็นที่ต้องการมากกว่าsoftแต่ก็มีผลคล้ายกันของการป้องกันการแขวน


3
โปรดทราบว่าด้วย nfs เวอร์ชันใหม่ intr จะถูกคัดค้านหรือไม่มีการดำเนินการ - ซึ่งควรใช้ soft case
Paul

3

umount -f /mnt/myfolderควรแก้ปัญหานี้ ดู manpage umount


2
สิ่งนี้ไม่ได้ทำกับ NFS และเซิร์ฟเวอร์ที่ไม่ทำงาน คุณต้องตั้งค่าสถานะ lazy ด้วย (หรือเคล็ดลับในการเพิ่ม IfAlias) lsof และ fuser ทั้งหมดแฮงค์และ umount -f บอกว่า "อุปกรณ์ไม่ว่าง"
wawawawa

1

เช่นเดียวกับการใช้automountจะจัดการกับการยกเลิกการต่อเชื่อม NFS หุ้นเมื่อพวกเขาไม่สามารถใช้ได้ซึ่งหลีกเลี่ยงการติดอยู่ในสถานการณ์นี้ในอนาคต


2
ไม่จำเป็น. automount mounts ยังสามารถอยู่ในสภาพนี้ได้หากคุณพยายามเข้าถึงไดเรกทอรีไม่ว่ากระบวนการจะหยุดทำงาน
Kamil Kisiel

ใช่ตัวตรวจจับอัตโนมัติทำให้เกิดปัญหามากที่สุดเท่าที่จะแก้ได้
pjc50

1

ฉันไม่เคยumount -fไปทำงาน เคล็ดลับที่มีประโยชน์คือตั้งค่าเซิร์ฟเวอร์อื่นที่เมาท์การส่งออกเดียวกันให้ที่อยู่ IP เดียวกับเซิร์ฟเวอร์เก่า ไคลเอ็นต์ NFS ของคุณควรคิดว่าทุกอย่างกลับมาเป็นปกติและกระบวนการต่างๆจะปลดบล็อก จากนั้นคุณสามารถยกเลิกการต่อเชื่อมจุดเชื่อมต่อตามปกติแล้วลบที่อยู่ IP ออกจากเซิร์ฟเวอร์ NFS ชั่วคราว


2
the -l (สันหลังยาว) เป็นกุญแจสำคัญดังที่กล่าวไว้ข้างต้น
Matt Simmons

1

สำหรับ Solaris การรีสตาร์ทไคลเอ็นต์ NFS จะแก้ปัญหา "การติดตั้งเกลียวแห่งความตาย" คำสั่งสำหรับ Solaris 10 คือ "svcadm restart network / nfs / client" ยังไม่ได้ลองสิ่งนี้ในกล่อง Linux เมื่อเร็ว ๆ นี้ (เพราะพวกมันทั้งหมดติดตั้งด้วยธง "intr" ดังนั้นพวกเขาจึงไม่ค่อยมีปัญหานี้) แต่มันอาจจะแก้ไข ปัญหา.


0

ฉันเพิ่งสังเกตเห็นว่าการบังคับให้ unmounts บนเคอร์เนล 3.2.0 แฮงค์กับ NFSv4 mounts NFSv3 unmounts ทำงานได้ดี

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

0

เพียงแค่การติดตามเฉพาะ OS X เนื่องจากคำสั่ง mount ส่วนใหญ่เป็น * ไม่เชื่อเรื่องพระเจ้า: แฟล็ก -l (สันหลังยาว) ไม่มีอยู่ใน OS X อย่างไรก็ตามแฟล็ก -f (บังคับ) ทำและพิสูจน์แล้วว่าเพียงพอ . นอกจากนี้จุดเมาท์ที่ระบบสร้างขึ้นจะอยู่ใน / Volumes (/ Volumes / myserversexport)


0

ฉันพบปัญหาเดียวกันนี้แล้ว เนื่องจากเซิร์ฟเวอร์ NFS ถูกลบฉันไม่สามารถถอนการติดตั้ง nfs จากไคลเอ็นต์ได้ ฉันลองเคล็ดลับต่อไปนี้ดูว่ามันจะมีประโยชน์หรือไม่ ตั้งแต่เซิร์ฟเวอร์ NFS ดั้งเดิมหายไปฉันสร้างเซิร์ฟเวอร์ใหม่ที่มี IP และการส่งออกเดียวกัน จากนั้นฉันลอง umount -f / mnt / nfs_part ในที่สุดฉันก็สามารถถอนชื่อได้ตอนนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.