ฉันกำลังสร้างแอปพลิเคชั่นที่ต้องการแจกจ่ายไฟล์เซิร์ฟเวอร์มาตรฐานในบางไซต์ผ่าน WAN โดยทั่วไปแต่ละไซต์ต้องเขียนไฟล์จำนวนมากที่มีขนาดแตกต่างกัน (บางช่วงอยู่ในช่วง 100s MB แต่มีขนาดเล็กที่สุด) และแอปพลิเคชันจะถูกเขียนเช่นการชนกันจะไม่เกิดปัญหา ฉันต้องการตั้งค่าระบบที่ตรงกับคุณสมบัติดังต่อไปนี้:
- แต่ละไซต์สามารถจัดเก็บไฟล์ใน "namespace" ที่ใช้ร่วมกัน นั่นคือไฟล์ทั้งหมดจะปรากฏในระบบไฟล์เดียวกัน
- แต่ละไซต์จะไม่ส่งข้อมูลผ่าน WAN เว้นแต่จำเป็น นั่นคือจะมีที่เก็บข้อมูลภายในแต่ละด้านของ WAN ที่จะ "ผสาน" เข้ากับระบบไฟล์โลจิคัลเดียวกัน
- Linux & ฟรี ($$$) เป็นเครื่องหมายบวก
โดยพื้นฐานแล้วสิ่งที่ต้องการแบ่งปัน NFS กลางจะเป็นไปตามข้อกำหนดส่วนใหญ่อย่างไรก็ตามจะไม่อนุญาตให้ข้อมูลที่เขียนเป็นภาษาท้องถิ่นอยู่ภายในเครื่อง ข้อมูลทั้งหมดจากด้านข้างระยะไกลของ WAN จะถูกคัดลอกภายในเครื่องตลอดเวลา
ฉันดูเป็นเงาแล้วก็ทำการทดสอบที่ประสบความสำเร็จด้วยอย่างไรก็ตามมันก็ดูเหมือนว่าจะแจกจ่ายไฟล์อย่างเท่าเทียมกันในที่จัดเก็บแบบกระจาย ฉันขุดผ่านเอกสารและไม่พบสิ่งใดที่จะ "ชอบ" ที่เก็บข้อมูลในเครื่องผ่านที่จัดเก็บข้อมูลระยะไกลโดยอัตโนมัติ แม้แต่บางอย่างที่ไปกับที่เก็บข้อมูลความหน่วงต่ำสุดก็ยังใช้ได้ มันจะทำงานได้เกือบตลอดเวลาซึ่งจะตรงตามข้อกำหนดของแอปพลิเคชันนี้
บางคำตอบสำหรับคำถามที่ถามด้านล่าง:
- เซิร์ฟเวอร์โหนด: 2 หรือ 3 เพื่อเริ่ม แต่ละเซิร์ฟเวอร์จะมีการเชื่อมต่ออ่าน / เขียนไคลเอ็นต์พร้อมกันหลายสิบเครื่อง
- WAN Topology เต็มตาข่ายและเชื่อถือได้ (บริษัท ขนาดใหญ่ค่าใช้จ่ายไม่ จำกัด เหมือนเทปสีแดง)
- ความล้มเหลวของลูกค้า: จริง ๆ แล้วฉันไม่ได้คิดถึงการมีลูกค้าล้มเหลว (ส่วนใหญ่เป็นเพราะการสมัครปัจจุบันของเราไม่ได้ทำที่เว็บไซต์เดียว) ฉันคิดว่าคำตอบที่เข้าใจได้ก็คือเซิร์ฟเวอร์ในไซต์กระจายทางภูมิศาสตร์แต่ละแห่งนั้นคาดว่าจะเป็นจุดเดียวของความล้มเหลวสำหรับลูกค้าที่พวกเขากำลังให้บริการ แม้ว่าถ้าคุณกำลังคิดเกี่ยวกับบางสิ่งบางอย่างที่นี่ฉันคิดว่ามันค่อนข้างจะมีประโยชน์ต่อการอภิปราย
- Roll-my-own: ฉันคิดเกี่ยวกับ rsync / unison แต่ฉันต้องการตรรกะที่ค่อนข้างแฟนซีเพื่อให้ส่วน "ไดนามิก" ของงานนี้ราบรื่น คือไฟล์ดูเหมือนจะอยู่ในเครื่อง แต่จะถูกดึงตามความต้องการเท่านั้น
- MS-DFS: มันดูเหมือนจะเป็นสิ่งที่ฉันควรพิจารณา ปัญหาหลักของฉันอาจไม่แน่ใจเกี่ยวกับการกำหนดค่าเซิร์ฟเวอร์ / ความน่าเชื่อถือ / ประสิทธิภาพการทำงานของเซิร์ฟเวอร์ NFS บน Windows เนื่องจากไคลเอ็นต์จำนวนมากที่เชื่อมต่อเป็นไคลเอนต์ NFS