การส่งออก NFS ซ้ำผ่าน VPN ไม่ใช่การส่งต่อแพ็กเก็ต
เครื่องตรงกลางเป็นทั้งไคลเอนต์และเซิร์ฟเวอร์ ไม่ใช่เราเตอร์ ID ของระบบไฟล์ แฮนเดิลไฟล์ที่ห่อหุ้ม และการขาดการสนับสนุนการล็อก ล้วนเปลี่ยนการออกแบบ
เครื่อง Linux เครื่องหนึ่งเข้าร่วม VPN เมานต์การส่งออก NFS ระยะไกล แล้วให้บริการเมานต์นั้นแก่ไคลเอนต์อีกกลุ่มหนึ่ง การจัดวางนี้ ดูเหมือนการกำหนดเส้นทางที่มีขั้นตอนเพิ่มเติม และนั่นคือสมมติฐานผิดข้อแรก เครื่องตรงกลางเป็นไคลเอนต์ของเซิร์ฟเวอร์ต้นทางและเป็นเซิร์ฟเวอร์ให้ไคลเอนต์ปลายทาง และมีส่วนร่วมในความสัมพันธ์การให้บริการไฟล์ทั้งสองด้าน การส่งต่อแพ็กเก็ตไม่มีความเห็นเกี่ยวกับแฮนเดิลไฟล์ การล็อก หรืออัตลักษณ์ของระบบไฟล์ แต่การส่งออกซ้ำมีความเห็น
เริ่มด้วยการถามว่าไคลเอนต์ปลายทางเข้าถึงเซิร์ฟเวอร์ต้นฉบับได้โดยตรงหรือไม่ ถ้าได้ เครื่องตรงกลางก็ไม่จำเป็น
สามโมเดล สามเรื่องราวของความสอดคล้อง
การเมานต์โดยตรงเป็นวิธีที่ง่ายที่สุด: ไคลเอนต์แต่ละรายเมานต์เซิร์ฟเวอร์ต้นฉบับผ่านอุโมงค์ และนโยบายการส่งออกของเซิร์ฟเวอร์นั้นกำกับการเข้าถึง การส่งออกซ้ำคือเครื่องตรงกลางที่นำเสนอขอบเขตบริการที่แตกต่าง ซึ่งมีประโยชน์เมื่อเครือข่ายฝั่งไคลเอนต์ไม่ควรเข้าถึงเซิร์ฟเวอร์โดยตรง การทำสำเนาคือโมเดลที่สาม และมันย้ายคำถามจากความสอดคล้องไปสู่การซิงโครไนซ์และการแก้ไขความขัดแย้ง
อย่าอธิบายสำเนาที่ทำซ้ำราวกับว่าเป็นการส่งออกซ้ำที่ยังมีชีวิต รูปแบบความล้มเหลวแตกต่างกัน และผู้ใช้ที่คาดหวังว่าทุกการดำเนินการจะไปถึงระบบไฟล์ต้นฉบับจะประหลาดใจเมื่อลิงก์ขาด
อัตลักษณ์มีอายุยืนกว่าคำสั่งเมานต์
การส่งออกซ้ำต้องมี ID ของระบบไฟล์ที่ชัดเจน และอัตลักษณ์นั้นต้องอยู่รอดจากการรีสตาร์ตและการสร้างการกำหนดค่าใหม่ เอกสารของเคอร์เนลชัดเจนเกี่ยวกับข้อกำหนดนี้ และยังเตือนว่า crossmnt ไม่ได้ขจัดความจำเป็นในการส่งออกระบบไฟล์ลูกด้วย ID ของตัวเอง ต้นไม้ไดเรกทอรีที่ดูต่อเนื่องสำหรับผู้ใช้อาจข้ามขอบเขตของระบบไฟล์หลายแห่ง nfs-utils ปัจจุบันสามารถจัดสรร ID โดยอัตโนมัติสำหรับการกำหนดค่าที่รองรับ และเมื่อทำเช่นนั้น ฐานข้อมูลของมันก็กลายเป็นส่วนหนึ่งของสถานะของเกตเวย์ ให้ถือว่า ID เหล่านั้นเป็นอัตลักษณ์ของบริการ ไม่ใช่ไฟล์ใช้แล้วทิ้ง
แฮนเดิลไฟล์เป็นขอบเขตอัตลักษณ์อีกด้าน: การส่งออกซ้ำห่อหุ้มแฮนเดิลดั้งเดิม ซึ่งทำให้มีขนาดใหญ่ขึ้นและอาจเกินขีดจำกัดของไคลเอนต์ การเมานต์ที่สำเร็จไม่ได้พิสูจน์ว่าเค้าโครงส่งออกทุกรูปแบบเข้ากันได้
ไม่ใช่ทุกคุณสมบัติของ NFS ที่อยู่รอดผ่านเครื่องตรงกลาง
คู่มือการส่งออกซ้ำของเคอร์เนลระบุว่าเซิร์ฟเวอร์ที่ส่งออกซ้ำไม่รองรับการล็อกหรือคำขอการมอบหมาย แอปพลิเคชันที่พึ่งพาการดำเนินการเหล่านั้นต้องใช้เส้นทางอื่นหรือการออกแบบที่ตรวจสอบกับสิ่งเหล่านั้นแล้ว การเมานต์ที่สำเร็จและรายการไดเรกทอรีที่ใช้งานได้ไม่ได้แสดงว่าการดำเนินการจริงของแอปพลิเคชันทำงาน
อัตลักษณ์ผู้ใช้และนโยบายการส่งออกก็สำคัญในทุกการกระโดด การเข้าสู่ระบบ VPN พิสูจน์ว่าผู้เข้าร่วมเครือข่ายได้รับการพิสูจน์ตัวตนแล้ว แต่ไม่ได้ให้สิทธิ์ผู้ใช้ NFS และไม่ได้ส่งต่อข้อมูลรับรองของไคลเอนต์ผ่านเกตเวย์
เกตเวย์มีการพึ่งพาต้นทางสองอย่าง
เกตเวย์พึ่งพา VPN สำหรับการเมานต์ต้นทางและพึ่งพาเซิร์ฟเวอร์ต้นทางสำหรับระบบไฟล์เอง กระบวนการส่งออกภายในที่ยังทำงานอยู่ไม่สามารถทำให้ที่เก็บข้อมูลที่ไม่พร้อมใช้งานกลับมาแข็งแรงได้ วางแผนลำดับการเริ่มต้น พฤติกรรมการเชื่อมต่อใหม่ และการรีสตาร์ตเซิร์ฟเวอร์ รวมถึงสิ่งที่จะเกิดขึ้นกับแฮนเดิลไฟล์ที่ไคลเอนต์ถืออยู่แล้ว ไคลเอนต์ที่เมานต์ผ่านเกตเวย์และสูญเสียแฮนเดิลต้องเมานต์ใหม่ และนั่นคือเหตุการณ์เชิงปฏิบัติการ ไม่ใช่การกู้คืนที่โปร่งใส
หากสิ่งเดียวที่ข้อกำหนดต้องการมาคือการเข้าถึง IP ส่วนตัว การกำหนดเส้นทางตรงไปยังเซิร์ฟเวอร์ต้นฉบับคือสถาปัตยกรรมที่ง่ายกว่า การส่งออกซ้ำควรมีอยู่ด้วยเหตุผลที่ยังคงอยู่เมื่อเขียนลงไป
ทดสอบภาระงาน ไม่ใช่การเมานต์
ฝึกภาระงานไฟล์จริงในสภาพแวดล้อมที่ควบคุม: การดำเนินการที่แอปพลิเคชันทำ ขนาดไฟล์ที่ใช้ และภาวะพร้อมกันที่คาดหวัง สังเกตช่องว่างของคุณสมบัติ ไม่ใช่แค่ข้อผิดพลาดในการขนส่ง จากนั้นบันทึกว่าคุณเลือกโมเดลใดและเพราะอะไร มิฉะนั้นคนถัดไปจะถือว่าเกตเวย์เป็นเราเตอร์
การส่งออกซ้ำชอบธรรมเมื่อมีอยู่ด้วยเหตุผลที่ตั้งใจ เช่น เครือข่ายไคลเอนต์ที่แยกออก หรือขอบเขตเวอร์ชันที่ควบคุม เป็นอุบัติเหตุที่ไม่ดี และความแตกต่างคือมีคนตัดสินใจเรื่องนั้นหรือไม่