ฉันกำลังมองหาโซลูชันระบบไฟล์แบบกระจาย/ระบบไฟล์เครือข่าย ซึ่งสามารถใช้ในสถานการณ์ต่อไปนี้:
- ฉันมี Docker Swarm ที่มีโฮสต์หลายโฮสต์ แต่โดยพื้นฐานแล้วแต่ละโฮสต์มีอิสระในตัวเองและดูไม่แตกต่างจากโฮสต์อื่นๆ เราแค่ใช้มันเพื่อปรับขนาด นั่นหมายถึงแต่ละโฮสต์จะเรียกใช้คนงานทั้งหมดที่จำเป็นเพื่อให้ระบบทำงานได้ และงานหนึ่งที่เข้าสู่ระบบจะทำงานโดยสมบูรณ์บนโฮสต์ที่เริ่มทำงานครั้งแรก
- มีหลายขั้นตอนในการประมวลผลงาน แต่ละขั้นตอนจะสร้างไฟล์ขนาดใหญ่ในช่วง 1-10GB ในเบื้องต้น ผู้ปฏิบัติงานในแต่ละโฮสต์จะทำงานเฉพาะกับไฟล์ที่จัดเก็บไว้ในเครื่องแล้วเท่านั้น
- อย่างไรก็ตาม บางครั้งโฮสต์อาจมีภาระมากเกินไป และฉันต้องการให้พนักงานในโฮสต์อื่นดูแลขั้นตอนการประมวลผลที่เหลือแทน เพื่อให้บรรลุเป้าหมายนี้ ฉันต้องการให้ไฟล์ถูกจัดเก็บไว้ในวอลุ่มที่ใช้ร่วมกัน ซึ่งผู้ปฏิบัติงานในโฮสต์อื่นสามารถใช้เพื่อเข้าถึงไฟล์ที่จัดเก็บไว้ในโฮสต์อื่นได้อย่างโปร่งใส
กล่าวอีกนัยหนึ่ง: แต่ละโฮสต์จะมี "วอลุ่มเครือข่าย" เดียวกันในที่ใดที่หนึ่ง และประกอบด้วยไฟล์บางไฟล์ที่จัดเก็บไว้ในโฮสต์ปัจจุบัน (ไฟล์เหล่านี้มีความเกี่ยวข้องเป็นหลัก) และบางไฟล์ที่จัดเก็บไว้ในโฮสต์อื่น อย่างไรก็ตาม พนักงานส่วนใหญ่ (90-95%) จะเข้าถึงไฟล์ที่อยู่ในเครื่องโฮสต์ของตน
ฉันไม่ต้องการการจำลองแบบ (ไฟล์เกี่ยวข้องกันเพียง 30-60 นาที และหลังจากนั้นก็ไม่จำเป็นอีกต่อไป) และฉันโดยเฉพาะ อย่า อยากได้ที่เก็บของกลาง
ทรูพุตในระบบวัดเป็นนาทีต่องาน ไม่ใช่งานต่อวินาที มีไฟล์ขนาดใหญ่ไม่กี่ไฟล์แทนที่จะเป็นไฟล์ขนาดเล็กจำนวนมาก นอกจากนี้ ไฟล์จะถูกเขียนเพียงครั้งเดียวและอ่านเพียงครั้งเดียวหรือสองครั้งเท่านั้น
มีทางออกที่ดีสำหรับสิ่งนี้หรือไม่? ฉันได้ดูที่ กลัสเตอร์เอฟเอส
, เอดจ์เอฟเอส
, ระบบไฟล์ระหว่างดาวเคราะห์
, เซฟ
และอื่น ๆ แต่ดูเหมือนไม่มีทางเลือกที่ถูกต้องเลย