ทำมิร์เรอร์ระบบไฟล์ข้ามเซิร์ฟเวอร์บางตัว


13

ฉันกำลังมองหาวิธีการทำมิรเรอร์หรือทำซ้ำหนึ่งไดเรกทอรี (หรือระบบไฟล์เดียว) ในเซิร์ฟเวอร์ Linux บางตัว ทางออกในอุดมคติคือหนึ่งซึ่งอนุญาตให้เซิร์ฟเวอร์ทั้งหมดเข้าถึงการอ่าน - เขียน ฉันต้องการให้ฉันมีความยืดหยุ่นถ้าเซิร์ฟเวอร์ตัวใดตัวหนึ่งหยุดทำงานส่วนที่เหลือก็ควรจะทำงานโดยไม่มีการสูญเสียข้อมูลใด ๆ เลย

ฉันได้ดูวิธีแก้ไขปัญหาบางอย่างแล้ว:

  • DRBD : การจำลองแบบระดับบล็อกดูเหมือนจะเกินความจริงเล็กน้อย
  • lsyncd : ดูเรียบง่ายมาก แต่ฉันมีข้อสงสัยเกี่ยวกับประสิทธิภาพ;
  • GlusterFS : ดูเหมือนว่าจะเป็นการจับคู่ที่ดี แต่ยังไม่สามารถระบุได้ว่าโหมดการจำลองจะทำงานอย่างไร มันจะมีลักษณะที่ฉันต้องการหรือไม่?

ข้อเสนอแนะอื่น ๆ ยินดีต้อนรับ


คุณกำลังดูการตั้งค่าที่ไม่มีการแชร์หรือคุณจะเชื่อมต่อเซิร์ฟเวอร์ทั้งหมดกับแบ็กเอนด์ SAN เดียวกันหรือไม่?
HampusLi

เหตุผลมันไม่มีอะไรแชร์ (ทางกายภาพคือ EC2 กับ EBS)
vartec

คำตอบ:


6

คำถามแรกที่ฉันถามคือคุณต้องการให้เรพลิเคชันนี้ไปยังเซิร์ฟเวอร์สองเครื่องหรือมากกว่าสองเซิร์ฟเวอร์หรือไม่ สำหรับสองเซิร์ฟเวอร์ฉันจะไปกับ DRDB สำหรับสามหรือมากกว่านั้นฉันจะไปกับ gluster

ถ้าเวลาแฝงของ I / O ไม่ใช่เรื่องสำคัญฉันจะไปด้วยความรุ่งโรจน์ มันค่อนข้างง่ายในการติดตั้งและสามารถทำสิ่งที่คุณต้องการได้อย่างชัดเจน สิ่งที่คุณต้องทำคือสร้างเซิร์ฟเวอร์ gluster ที่ให้บริการไฟล์ในทั้งสามกล่องจากนั้นให้แต่ละกล่องทำหน้าที่เป็นไคลเอนต์ gluster ที่ติดตั้งไฟล์

DRDB กำลังจะมีความซับซ้อนในการทำงานในโหมด master <-> master กับเซิร์ฟเวอร์ 3 ตัวหรือมากกว่า คุณต้องกำหนดค่าการตั้งค่าแหวนตามและฉันจะไม่แนะนำ อย่างไรก็ตามสำหรับสองเซิร์ฟเวอร์ DRDB นั้นยอดเยี่ยม Master <-> โหมด Master ไม่ซับซ้อนในการติดตั้งและคุณไม่จำเป็นต้องเรียนรู้เกี่ยวกับระบบไฟล์

lsycd นั้นยอดเยี่ยมสำหรับการตั้งค่า master / slave แต่คุณดูเหมือนจะไม่ต้องการมัน

Ceph ยังค่อนข้างใหม่ครั้งสุดท้ายที่ฉันตรวจสอบว่ายังไม่ได้รับการสนับสนุน fsck ฉันต้องการที่จะวางโครงสร้างพื้นฐานของฉันในบางสิ่งที่มีความเสถียรมากกว่า

ความมันวาวเป็นผลิตภัณฑ์ที่ยอดเยี่ยมสำหรับการปรับใช้ขนาดใหญ่ แต่คุณต้องตั้งค่าการเต้นของหัวใจและความล้มเหลวสำหรับเซิร์ฟเวอร์ mds หรือมีจุดล้มเหลวเพียงจุดเดียว เมื่อพิจารณาถึงจำนวนเซิร์ฟเวอร์ที่ จำกัด เขากำลังพูดถึงฉันสงสัยว่ามันเกินขนาดในกรณีนี้


เริ่มแรกฉันจะเริ่มต้นด้วย 2 เซิร์ฟเวอร์ต่อหนึ่งคลัสเตอร์ แต่ฉันต้องการตัวเลือกที่จะมีมากกว่า 2 เซิร์ฟเวอร์สำหรับการขยายขนาด การตั้งค่า gluster ที่คุณกำลังอธิบายมันจะจัดการกับหนึ่งในเซิร์ฟเวอร์ที่ล่มหรือไม่ จะเพิ่มเซิร์ฟเวอร์พิเศษได้ง่ายไหม
vartec

2

วิธีการเกี่ยวกับCephหรือความมันวาว ?


Luster รองรับเซิร์ฟเวอร์ Ubuntu หรือไม่? ฉันกำลังตรวจสอบ Ceph ตอนนี้ขอบคุณสำหรับคำแนะนำ
vartec

จาก ceph wiki: "Ceph อยู่ภายใต้การพัฒนาอย่างหนักและยังไม่เหมาะสำหรับการใช้งานอื่นนอกจากการเปรียบเทียบและการตรวจสอบ" ceph.newdream.net/wiki
Jeff Busby

2

คุณควรตรวจสอบOpenAFS - เป็นระบบไฟล์ที่มีการกระจายส่วนใหญ่ที่อนุญาตให้มีสำเนาข้อมูลจำนวนมากที่มีอยู่ในคลัสเตอร์และทุกคนสามารถอ่าน / เขียนไปยัง FS ได้ในเวลาเดียวกัน

มันมีคุณสมบัติที่มีประโยชน์อื่น ๆ อีกมากมายเช่นกัน (การตรวจสอบความถูกต้องที่ดีการเข้ารหัสบนสายไฟการแคชในตัวบนไคลเอนต์ไคลเอนต์ windows พื้นเมือง

แม้ว่าจะเป็นลิฟท์หนักสำหรับการติดตั้ง


คำถามเช่นเดียวกับกับ NFS: "อนุญาตการคัดลอกหลายชุด" ตกลง แต่ดูแลการซิงโครไนซ์สำเนาเหล่านี้จริงหรือไม่
vartec

อ๋อ และเป็นไปได้แม้ว่าจะน่ารำคาญในการกู้คืนจากการสูญเสียต้นแบบหลัก แต่มันเป็นเรื่องไม่สำคัญที่มีตัวเขียนหลายตัวและบล็อกผลลัพธ์ที่เก็บไว้ในหลายโฮสต์
chris

กุญแจสำคัญในการทำความเข้าใจ OpenAFS ก็คือมันเป็นระบบการจัดการแคช - มีเนมสเปซเดียว (IE "ไฟล์" เดียวเท่านั้นที่มีอยู่) แต่มีสำเนาแคชของไฟล์ทุกที่และโปรโตคอลเพื่อให้แน่ใจว่าสำเนาแคชทั้งหมดสอดคล้องกัน . หากคุณสูญเสียมาสเตอร์คุณสามารถเปลี่ยนหนึ่งในแคชที่คัดลอกมาเป็นมาสเตอร์ แต่มันก็ไม่เหมาะที่จะอยู่ในสถานการณ์นั้น
chris

1

NFS อาจทำงานได้ดีเช่นกันขึ้นอยู่กับความต้องการของคุณ


AFAIK, NFS ไม่ได้มีวิธีการเมานต์เซิร์ฟเวอร์ที่จำลองแบบ แต่ไม่ใช่การจำลองแบบเอง แต่ฉันไม่ได้ใช้ NFS มานานดังนั้นอาจมีการเปลี่ยนแปลง คุณสามารถลิงค์ไปยังเอกสาร NFS ที่อธิบายถึงการตั้งค่าดังกล่าวได้หรือไม่?
vartec

วิธีปิดส่วนบนของหัวของฉันคือการจำลอง dirs ไปยังเซิร์ฟเวอร์ nfs หลายแห่งซึ่งหนึ่งในนั้นมี vip หลักและย้าย vip ไปยังเซิร์ฟเวอร์ต่าง ๆ หากเซิร์ฟเวอร์หนึ่งหยุดทำงาน หรือโรบินกลม DNS NFS เองอาจไม่ทำทุกสิ่งที่คุณต้องการ แต่เมื่อรวมกับบริการ heartbeat หรือ red hat cluster มันอาจเป็นสิ่งที่คุณต้องการ ฉันไม่แน่ใจว่าคำถามเดิมมีข้อกำหนดทั้งหมดอยู่ในนั้น คุณสามารถ rsync ข้ามเซิร์ฟเวอร์จำนวนมากพูดทุก ๆ ชั่วโมงเพื่อหาทางออกที่ง่ายและรวดเร็ว
lsd

ข้ามส่วนเกี่ยวกับ rsync มันจะทำแบบจำลอง แต่เป็นหลักสำหรับการตั้งค่าแบบอ่านอย่างเดียวซึ่งไม่ตรงกับความต้องการของคุณ ฉันหมายถึงการแก้ไขความคิดเห็นของฉันด้านบน แต่มันจะไม่ให้ฉัน
lsd

1

การทำให้สิ่งนี้ทำงานกับ DRBD นั้นจะยากมาก - ปัญหาไม่ได้เป็นอย่างที่ n8whnp ดูเหมือนจะคิดว่าเป็นปัญหาเกี่ยวกับการจำลองแบบหลายทาง (คุณเพียงแค่ทำให้ทุกโหนดของโหนดในชุดมิเรอร์) แต่เป็นการควบคุมพร้อมกัน - คุณ จำเป็นต้องเรียกใช้ระบบไฟล์คลัสเตอร์ด้านบนของมิเรอร์ที่ด้านบนของ DRBD

lsyncd ยิ่งแย่ลงเนื่องจากไม่มีวิธีแก้ปัญหาในทางปฏิบัติสำหรับการควบคุมภาวะพร้อมกัน

ฉันขอแนะนำโซลูชันประเภท AFS (AFS, OpenAFS) เป็นโซลูชันเปิดที่มีความเสถียรและเสถียร ฉันยังคงความแวววาวนับตั้งแต่ Oracle ปิดตัวลง ไม่คุ้นเคยกับ glusterfs มากนัก แต่ขึ้นอยู่กับการกระจายมากกว่าที่เก็บข้อมูลที่มีการจำลองแบบฉันขอแนะนำให้คุณดูยาว ๆ ว่ามันจะทำงานอย่างไรในการทำงานแบบแยกส่วนสมอง (AFS OTOH ออกแบบมาเพื่อทำงานในโหมดตัดการเชื่อมต่อ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.