แคช NFS: เนื้อหาไฟล์ไม่ได้รับการอัพเดตบนไคลเอนต์เมื่อแก้ไขบนเซิร์ฟเวอร์


11

นี่คือการตั้งค่าของฉัน: เครื่องเซิร์ฟเวอร์ NFS หนึ่งเครื่อง (v4) เครื่องไคลเอ็นต์ NFS หลายเครื่อง

เมื่อเครื่องไคลเอนต์เขียนไฟล์ไปยังการเมาท์ NFS ไคลเอนต์อื่นจะเห็นเนื้อหาใหม่ทันที: ไม่มีปัญหา

แต่เมื่อเครื่องเซิร์ฟเวอร์แก้ไขเนื้อหาของไฟล์เนื้อหาใหม่นี้จะไม่ปรากฏบนไคลเอนต์จนกว่าฉันจะทำlsไดเรกทอรีจากไคลเอนต์

ฉันนิ่งงันอย่างแน่นอนกับความไม่ลงรอยกันนี้ ... ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

ข่าวสาร:

  • nfs 1.2.3-r1 บนทั้งไคลเอ็นต์และเซิร์ฟเวอร์
  • acregmin, acregmax, acdirmin, acdirmax, lookupcache: ค่าเริ่มต้น

1
คุณสามารถทำการทดลองเล็กน้อยเพื่อรับข้อมูลเพิ่มเติมได้หรือไม่: ทำls -iบนไคลเอ็นต์ก่อนทำการแก้ไขไฟล์บนเซิร์ฟเวอร์จากนั้นอีกครั้งหลังจากนั้น ดูว่าตัวเลขเปลี่ยนแปลงหรือไม่ หากพวกเขาทำเพราะเซิร์ฟเวอร์จะเปลี่ยนไฟล์และลูกค้าไม่สังเกตเห็นนี้จนกว่ามันจะ rescans ไดเรกทอรี ถ้าเป็นเช่นนั้นลองตั้งค่าตัวเลือกการเมาท์lookupcache=noneและดูว่าพฤติกรรมนั้นเปลี่ยนไปหรือไม่
แพทริค

2
ขออภัยในความล่าช้า. ไอโหนดเปลี่ยนแปลงอย่างมีประสิทธิภาพ ฉันได้เพิ่มตัวเลือก lookupcache ดูเหมือนว่าจะทำงาน ฉันจะตรวจสอบอีกครั้งในวันพรุ่งนี้
numberxiii

คำตอบ:


11

การเพิ่มเป็นคำตอบตามความคิดเห็นของคุณ
วิธีแก้ไขคือเพิ่มlookupcache=noneตัวเลือกเมาท์ nfs ของคุณ

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

ในกรณีใด ๆ วิธีการที่จะแก้ปัญหาได้คือการบอกลูกค้าเสมอทำ nfslookup ก่อนที่จะเปิดแฟ้มโดยใช้ NFS lookupcache=noneตัวเลือกติด ข้อเสียของสิ่งนี้คือมันอาจมีราคาแพงหากคุณเปิดไฟล์บ่อยๆ


ขอบคุณสำหรับคำอธิบายของคุณ บนเซิร์ฟเวอร์ NFS สแต็กของไดเร็กทอรีที่เอ็กซ์พอร์ตคือ DRBD / LVM / ext4 อาจเป็นเพราะมันทำให้เกิด "บั๊ก" ฉันมีปัญหากับลูกค้าหลายคน แต่ไม่ใช่ในบางคน ... ฉันจะทำซ้ำการทดสอบทั้งหมดของฉันและบอกคุณว่าทุกอย่างเป็นไปด้วยดีกับตัวเลือกนี้
numberxiii

0

hard,intrเปลี่ยนตัวเลือกติด ฉันคิดว่าค่าเริ่มต้นอาจอ่อนในระบบของคุณ สิ่งนี้จะช่วย


น่าเสียดายที่การเพิ่มตัวเลือกการเมาท์เหล่านี้ไม่ได้เปลี่ยนแปลงอะไรเลย :(
numberxiii

สำหรับการทดสอบครั้งแรกของฉันฉันทำใหม่ จากนั้นฉันได้ทำการทดสอบจากลูกค้ารายอื่นด้วยการติดตั้งที่สะอาด ดูเหมือนว่าปัญหาจะได้รับการแก้ไข: เรารอ 30 วินาทีเพื่อดูเนื้อหาใหม่
numberxiii

ฉันได้สร้างลูกค้าใหม่ (vm) เพื่อตรวจสอบ: ไม่มีปัญหากับเนื้อหา!
numberxiii

1
@ johnshen64 ทำไมคุณคิดว่าหนักจะแก้ปัญหาได้หรือไม่ ยาก / อ่อนเพียงเรื่องเมื่อมันมาถึงการเชื่อมต่อขัดจังหวะไม่มีอะไรเกี่ยวข้องกับแคช
แพทริค

0

คุณสามารถรีเฟรชแคช NFS ด้วยตนเองได้

sudo mount /nfs-mount -o remount

... ในกรณีที่คุณไม่ต้องการเพิ่มตัวเลือกการเมานต์ประสิทธิภาพการลดระดับ

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