6
การซิงค์แบบเรียลไทม์แบบสองทิศทางของทรีไฟล์ขนาดใหญ่ระหว่างเซิร์ฟเวอร์ linux สองตัวที่อยู่ห่างไกล
ต้นไม้ไฟล์ขนาดใหญ่ฉันหมายถึงไฟล์ประมาณ 200k และเพิ่มขึ้นตลอดเวลา แม้ว่าจะมีการเปลี่ยนแปลงจำนวนไฟล์ค่อนข้างน้อยในเวลาใดก็ตาม โดยสองทิศทางฉันหมายความว่าการเปลี่ยนแปลงอาจเกิดขึ้นบนเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งและจำเป็นต้องผลักดันไปยังเซิร์ฟเวอร์อื่นดังนั้น rsync จึงดูไม่เหมาะสม โดยไกลฉันหมายความว่าเซิร์ฟเวอร์ทั้งคู่อยู่ในศูนย์ข้อมูล แต่อยู่ห่างจากกันทางภูมิศาสตร์ ขณะนี้มีเซิร์ฟเวอร์เพียง 2 เครื่องเท่านั้น แต่อาจขยายได้ตามเวลา ตามเวลาจริงมันก็โอเคที่จะมีเวลาแฝงเล็กน้อยระหว่างการซิงค์ แต่การเรียกใช้ cron ทุก 1-2 นาทีดูเหมือนจะไม่ถูกต้องเนื่องจากไฟล์ขนาดเล็กมากอาจมีการเปลี่ยนแปลงในชั่วโมงใดก็ตาม แก้ไข : นี่ทำงานบน VPS ดังนั้นฉันอาจถูก จำกัด ประเภทของระดับเคอร์เนลที่ฉันสามารถทำได้ ยิ่งไปกว่านั้น VPS นั้นไม่ได้อุดมไปด้วยทรัพยากรดังนั้นฉันจึงอายที่จะแก้ปัญหาที่ต้องใช้ RAM จำนวนมาก (เช่น Gluster?) อะไรคือวิธีที่ "ยอมรับ" ที่ดีที่สุดในการทำสิ่งนี้? ดูเหมือนว่ามันจะเป็นความต้องการทั่วไป แต่ฉันยังไม่สามารถหาวิธีการที่ยอมรับกันโดยทั่วไปได้ซึ่งน่าแปลกใจ (ฉันกำลังมองหาความปลอดภัยของฝูง :) ฉันเจอlsyncdเพื่อเรียกการซิงค์ที่ระดับการเปลี่ยนแปลงของระบบไฟล์ ดูเหมือนจะฉลาด แต่ไม่ใช่เรื่องธรรมดาและฉันก็สับสนเล็กน้อยกับวิธีการต่างๆของ lsyncd มีเพียงการใช้ lsyncd กับ rsync แต่ดูเหมือนว่านี่อาจจะเปราะบางสำหรับ bidirectionality …