หยุดการเมาต์ NFS ที่ไม่ทำงานจากการล็อคไดเรกทอรีหรือไม่


17

ฉันมีการตั้งค่าที่น่าสนใจ: เซิร์ฟเวอร์ที่มีเซิร์ฟเวอร์ NFS ระยะไกลหลายตัวติดตั้งอยู่ในโฟลเดอร์จากนั้นโฟลเดอร์นั้นจะถูกส่งออกใหม่ผ่าน Samba คิดว่าเป็นพร็อกซีแชร์ทำให้โฟลเดอร์แชร์ทั้งหมดอยู่ในที่เดียว

ปัญหาของฉันคือว่าเมื่อใดก็ตามที่หนึ่งในการเมาต์ลง (เซิร์ฟเวอร์รีสตาร์ท, บริการรีสตาร์ท, ฮาร์ดไดรฟ์ภายนอกที่เซิร์ฟเวอร์ถูกส่งออกถูกลบ ฯลฯ ) ความพยายามในการอ่านบล็อกเมานต์ตลอดไป นอกจากนี้ยังหมายความว่าการทำงานlsในไดเรกทอรีนั้นค้างและผู้ใช้ที่เชื่อมต่อผ่าน Samba ก็ค้าง สิ่งนี้ยังทำให้งาน cron ของฉันสองสามครั้งเพื่อบล็อกซึ่งเกือบทำให้เซิร์ฟเวอร์เสียหายเพราะมีกระบวนการที่ถูกบล็อกหลายร้อยรายการ นี่เป็นเรื่องที่น่ารำคาญมากเพราะฉันมักจะต้องเปิดเครื่องที่ไม่ต้องรอlsให้เสร็จ (ไม่สามารถยกเลิกได้), วิ่งfor i in *; do sudo umount -l -f $i; done;, หวังว่ามันจะทำงานได้, แก้ไขปัญหา, จากนั้นจึงทำการใหม่ทุกอย่าง

มีวิธีใดที่จะเมานต์ NFS ที่ใช้ร่วมกันกับข้อกำหนดที่ว่าถ้าการเชื่อมต่อล้มเหลวไม่ว่าด้วยเหตุผลใด (โดยเฉพาะกับช่วงเวลาลองใหม่) แล้วการเมานต์ยกเลิกการเมานท์เองหรืออย่างน้อยก็ไม่บล็อก


คุณโพสต์ได้/etc/fstabไหม
Karlson

คำตอบ:


19

โดยปกติเมื่อทำการติดตั้ง NFS เป็นความคิดที่ดีที่จะตั้งค่าสถานะคล้ายกับสิ่งนี้:

bg,intr,soft
   bg      If  the  first  NFS  mount  attempt times out, retry the mount in the 
           background.  After a mount operation is backgrounded, all subsequent mounts
           on the same NFS  server  will  be  backgrounded immediately, without first
           attempting the mount.  A missing mount point is treated as a timeout, to
           allow for nested NFS mounts.
   soft    If  an  NFS  file operation has a major timeout then report an I/O error
           to the calling program.  The default is to continue retrying NFS file
           operations indefinitely.
   intr    If  an  NFS  file  operation  has  a major timeout and it is hard mounted,
           then allow signals to interupt the file operation and cause it to return
           EINTR to the calling program.  The default is to not allow file operations
           to be interrupted.

นอกจากนี้คุณยังสามารถตั้งค่า:

timeo=5,retrans=5,actimeo=10,retry=5

ซึ่งควรอนุญาตให้เมาท์ NFS หมดเวลาและทำให้ไม่สามารถเข้าถึงไดเรกทอรีได้หากเซิร์ฟเวอร์ NFS หยุดการเชื่อมต่อแทนที่จะต้องรอการลองใหม่

ลองดูที่ลิงค์นี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการเมาท์ NFS


เมื่อใช้เฉพาะ bg, intr, soft ยังคงทิ้งไว้ 120 วินาทีใน Fedora 20 แต่การเพิ่ม timeo = 5, retrans = 5, actimeo = 10, ลองใหม่ = 5 ทำให้มันดีและรวดเร็ว ขอบคุณ!
Greg Sheremeta

4
"ตัวเลือกการเมาท์ intr / nointr ถูกคัดค้านหลังเคอร์เนล 2.6.25 SIGKILL เท่านั้นที่สามารถขัดจังหวะการดำเนินการ NFS ที่ค้างอยู่บนเมล็ดเหล่านี้และหากระบุไว้ตัวเลือกการเมาท์นี้จะถูกละเว้นเพื่อให้เข้ากันได้กับเมล็ดเก่า" "ตัวเลือกนี้มีไว้สำหรับความเข้ากันได้แบบย้อนหลังมันจะถูกละเว้นหลังจากเคอร์เนล 2.6.25"
David C. Bishop

1
@ DavidC.Bishop คำพูดนั้นมาจากไหน? คุณสามารถให้ลิงค์ ขอบคุณ
becko

2
@becko: การอ้างอิง SIGKILL นั้นมาจากหน้า man ของ nfs (เพียงค้นหาคำว่า 'nointr') เวอร์ชันที่ใหม่กว่าเช่นที่อยู่ในระบบของฉันตอนนี้อ่าน "ตัวเลือกนี้มีไว้สำหรับความเข้ากันได้แบบย้อนหลังซึ่งจะถูกละเว้นหลังจากเคอร์เนล 2.6.25" สาย
เดวิดซี. บิชอป
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.