ฉันต้องการแชร์ข้อมูลระหว่าง AWS หลายอินสแตนซ์ในลักษณะที่มีประสิทธิภาพสูงและมีเวลาแฝงต่ำการให้สิทธิ์การเข้าถึงแบบอ่านอย่างเดียวแก่อินสแตนซ์ทั้งหมด (ยกเว้นหนึ่งอินสแตนซ์ที่จะจัดการการเขียน) นั้นเป็นเรื่องปกติ สองประเด็นเกี่ยวกับกรณีการใช้งานนี้:
- โหนดที่ต่อกับวอลุ่มอาจมาและไปเมื่อใดก็ได้ (เริ่ม หยุด ถูกยกเลิก ฯลฯ)
- ข้อมูลที่ใช้ร่วมกันประกอบด้วยไฟล์ขนาดเล็กที่อาจเป็นไปได้กว่า 1,000 ไฟล์ซึ่งจำเป็นต้องแสดงรายการและตรวจสอบข้อมูลเมตา
ในตอนแรกฉันจึงลองใช้ EFS แต่ค่อนข้างช้าสำหรับการดำเนินการที่ต้องแจกแจงหรือแก้ไขไฟล์ขนาดเล็ก 100 หรือ 1,000 ไฟล์
ตอนนี้ฉันกำลังพิจารณาการแนบหลายไฟล์ของ EBS อย่างไรก็ตาม เพื่อป้องกันข้อมูลเสียหาย AWS แนะนำให้ใช้เฉพาะระบบไฟล์แบบคลัสเตอร์ เช่น GFS2 หรือ OCFS ทั้งสองอย่างนี้ดูเหมือนจะซับซ้อนและยุ่งยากในการกำหนดค่า เช่นเดียวกับความเปราะบางสำหรับกรณีการใช้งานของคลัสเตอร์ ซึ่งโหนดอาจเข้ามาและไปได้ตลอดเวลา ตัวอย่างเช่น GFS2 กำหนดให้ซอฟต์แวร์คลัสเตอร์บนโหนดทั้งหมดต้องรีสตาร์ทหากจำนวนโหนดเปลี่ยนจาก 2 เป็น 2 ขึ้นไปพอดี หรือ การเพิ่มโหนดใหม่เกี่ยวข้องกับการล็อกอินเข้าสู่โหนดปัจจุบัน รันคำสั่งบางคำสั่ง และอาจแจกจ่ายไฟล์ปรับแต่งที่อัปเดตซ้ำไปยังโหนดอื่นๆ ทั้งหมด ดูเหมือนว่าไม่ยืดหยุ่นจริง ๆ รวมถึงค่าใช้จ่ายเพิ่มเติมมากมาย
แต่ถ้าฉันแน่ใจว่ามีเพียง 1 อินสแตนซ์เท่านั้นที่จะทำการเขียนลงดิสก์ (หรือบางทีแต่ละอินสแตนซ์สามารถเขียนไปยังโฟลเดอร์ย่อยหรือแม้แต่พาร์ติชันของดิสก์ได้เท่านั้น) ฉันจะใช้ระบบไฟล์ปกติเช่น XFS สำหรับโวลุ่มนี้ได้ไหม ? หรือจะมีปัญหาข้อมูลเสียหายเล็กน้อย แม้ว่าการเข้าถึงเป็นแบบอ่านอย่างเดียวทางเทคนิคหรือการเข้าถึงแบบเขียนจะถูกจำกัดไว้ที่โฟลเดอร์ย่อยหรือพาร์ติชันเฉพาะอินสแตนซ์
หรือมีวิธีแก้ปัญหาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง?