ฉันกำลังเรียกใช้เซิร์ฟเวอร์ขนาดเล็กสำหรับการแบ่งปันแบบคงที่ของเรา ส่วนใหญ่เป็นไฟล์เซิร์ฟเวอร์ที่มีบริการเพิ่มเติม ลูกค้าคือเครื่องลีนุกซ์ (ส่วนใหญ่เป็น Ubuntu แต่ก็มี Distros อื่น ๆ เช่นกัน) และ Mac (-Book) บางตัวอยู่ระหว่าง (แต่พวกเขาไม่สำคัญสำหรับคำถาม) เซิร์ฟเวอร์กำลังใช้งานUbuntu 11.10 (Oneiric Ocelot) 'Server Edition' ซึ่งเป็นระบบที่ฉันทำการตั้งค่าและทดสอบรัน 11.10 'Desktop Edition' เราใช้การแบ่งปันของเรากับ Samba (ซึ่งเราคุ้นเคยมากขึ้น) สักพักแล้วย้ายไปที่NFS (เพราะเราไม่มีผู้ใช้ Windows ใน LAN และต้องการลอง) และทุกอย่างก็ใช้ได้ดี .
ตอนนี้ฉันต้องการตั้งค่าการติดตั้งอัตโนมัติด้วยautofsเพื่อทำให้สิ่งต่าง ๆ ราบรื่นขึ้น (จนถึงตอนนี้ทุกคนจะเมาหุ้นด้วยตนเองเมื่อจำเป็น) ดูเหมือนว่าการติดตั้งอัตโนมัติจะทำงานเช่นกัน ปัญหาคือว่า "เซิร์ฟเวอร์" ของเราไม่ทำงานตลอด 24 ชั่วโมงเพื่อประหยัดพลังงาน (ถ้ามีคนต้องการสิ่งต่าง ๆ จากเซิร์ฟเวอร์เปิด / ปิดเครื่องแล้วปิดเครื่องในเวลาต่อมาดังนั้นจึงใช้เวลาสองสามชั่วโมงต่อวันเท่านั้น) แต่เนื่องจากการตั้งค่า autofs ไคลเอนต์วางสายออกบ่อยเมื่อเซิร์ฟเวอร์ไม่ทำงาน
ฉันสามารถเริ่มไคลเอนต์ทั้งหมดได้ดีแม้ในขณะที่เซิร์ฟเวอร์ไม่ทำงาน
แต่เมื่อฉันต้องการแสดงไดเรกทอรี (ใน terminal หรือ nautilus) ที่มีลิงค์สัญลักษณ์เพื่อแชร์ภายใต้
/nfs
ในขณะที่เซิร์ฟเวอร์ไม่ทำงานมันแขวนเป็นเวลาอย่างน้อยสองนาที (เพราะ autofs ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ แต่เก็บ พยายามฉันสมมติ)- มีวิธีหลีกเลี่ยงสิ่งนั้นหรือไม่? ดังนั้นการติดตั้งจะล่าช้าจนกว่าการเปลี่ยนแปลงในไดเรกทอรีหรือจนกว่าเนื้อหาของไดเรกทอรีนั้นจะเข้าถึง? ไม่เมื่อ "มอง" ที่เชื่อมโยงไปยังหุ้นภายใต้
/nfs
? ฉันคิดว่าไม่ได้ แต่อาจเป็นไปได้ที่จะไม่พยายามเข้าถึงมันนานนัก? และให้ไดเรกทอรีที่ว่างเปล่ากับฉันหรือ "ไม่สามารถค้นหา / เชื่อมต่อกับ dir นั้น" หรืออะไรทำนองนั้น
- มีวิธีหลีกเลี่ยงสิ่งนั้นหรือไม่? ดังนั้นการติดตั้งจะล่าช้าจนกว่าการเปลี่ยนแปลงในไดเรกทอรีหรือจนกว่าเนื้อหาของไดเรกทอรีนั้นจะเข้าถึง? ไม่เมื่อ "มอง" ที่เชื่อมโยงไปยังหุ้นภายใต้
เมื่อเซิร์ฟเวอร์ทำงานทุกอย่างทำงานได้ดี
แต่เมื่อเซิร์ฟเวอร์ปิดตัวลงก่อนที่จะมีการเลิกเมาท์เครื่องมือ (เช่น
df
หรือll
) แฮงค์ (สมมติว่าเป็นเพราะพวกเขาคิดว่าการแชร์ยังคงเปิดอยู่ แต่เซิร์ฟเวอร์จะไม่ตอบสนองอีกต่อไป)- มีวิธียกเลิกการต่อเชื่อมหุ้นอัตโนมัติหรือไม่เมื่อการเชื่อมต่อขาดหาย
นอกจากนี้ไคลเอนต์จะไม่ปิดหรือรีสตาร์ทเมื่อเซิร์ฟเวอร์หยุดทำงานและพวกเขายังคงใช้งานร่วมกันอยู่ พวกเขาแขวน (ไม่สิ้นสุดอย่างที่เห็น) ใน "การฆ่ากระบวนการที่เหลืออยู่ " และดูเหมือนว่าจะไม่มีอะไรเกิดขึ้น
ฉันคิดว่าทุกอย่างลงมาเพื่อค่าหมดเวลาที่เป็นระเบียบสำหรับการติดตั้งและยกเลิกการต่อเชื่อม และอาจจะลบการแชร์ทั้งหมดเมื่อการเชื่อมต่อกับเซิร์ฟเวอร์หายไป
ดังนั้นคำถามของฉันคือ: วิธีจัดการกับเรื่องนี้? และเป็นโบนัส: มีวิธีที่ดีในการเชื่อมโยงภายใน/nfs
โดยไม่จำเป็นต้องติดหุ้นจริง (ตัวเลือก autofs หรืออาจใช้ pseudo FS /nfs
ซึ่งจะถูกแทนที่เมื่อการเมาท์เกิดขึ้นหรืออะไรทำนองนั้น)?
การตั้งค่าของฉัน
การตั้งค่า NFSค่อนข้างธรรมดาแต่ให้บริการเราดี (ใช้NFSv4 ):
/ etc / default / NFS ทั่วไป
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/ etc / ส่งออก
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
ภายใต้รูทการเอ็กซ์ปอร์ต/srv
เรามีสองไดเรกทอรีด้วยbind
:
/ etc / fstab (เซิร์ฟเวอร์)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
ส่วนที่ 1 นั้นส่วนใหญ่จะอ่านได้อย่างเดียว (แต่ฉันบังคับใช้ผ่านคุณสมบัติไฟล์และความเป็นเจ้าของแทนการตั้งค่า NFS) และส่วนที่สองคือrwสำหรับทุกคน หมายเหตุ: พวกเขาไม่มีรายการพิเศษใน/ etc / exports การติดตั้งแยกทำงานได้
ในฝั่งไคลเอ็นต์พวกเขาได้รับการติดตั้ง/etc/fstab
และติดตั้งด้วยตนเองตามต้องการ ( morton
เป็นชื่อของเซิร์ฟเวอร์และแก้ไขได้)
/ etc / fstab (ไคลเอ็นต์)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
สำหรับการตั้งค่า autofsฉันลบรายการจาก/etc/fstab
บนไคลเอนต์และตั้งค่าส่วนที่เหลือเช่นนี้:
/etc/auto.master
/nfs /etc/auto.nfs
ก่อนอื่นฉันเชื่อมโยงไฟล์ปฏิบัติการที่ให้มา/etc/auto.net
(คุณสามารถดูได้ที่นี่ ) แต่มันจะไม่ติดอะไรให้ฉันโดยอัตโนมัติ จากนั้นฉันเขียน/etc/auto.nfs
ตาม HowTos ที่ฉันพบออนไลน์:
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
และมันก็ใช้งานได้ ... หรือจะทำงานถ้าเซิร์ฟเวอร์จะทำงานตลอด 24/7 ดังนั้นเราจะได้รับการแฮงค์เมื่อไคลเอนต์บูทโดยที่เซิร์ฟเวอร์ไม่ทำงานหรือเมื่อเซิร์ฟเวอร์ล่มขณะที่แชร์ที่ยังเชื่อมต่ออยู่
hard
และbg
เสียงตอบโต้ที่ใช้งานง่ายสำหรับฉันในตอนแรก ฉันต้องการให้ภูเขาไม่ลองอีกครั้งและกลับคืนมาทันทีหากมีการประกันตัว?intr
ดูดี แต่ก็ดูเหมือนว่าจะไม่ทำงานอีกต่อไป: " ตัวเลือกการเมาท์ intr / nointr ถูกคัดค้านหลังจากเคอร์เนล 2.6.25 SIGKILL เท่านั้นที่สามารถขัดจังหวะการดำเนินการ NFS ที่ค้างอยู่บนเมล็ดเหล่านี้และหากระบุไว้ตัวเลือกการเมาท์นี้จะไม่สนใจ กับเมล็ดที่แก่กว่า "?