Score:1

ต้องการการแชร์ไฟล์ High Availability อย่างง่าย

ธง nc

ฉันกำลังมองหาวิธีที่ง่ายที่สุดในการแบ่งปันไฟล์เดียวด้วยวิธีที่มีความพร้อมใช้งานสูงระหว่างเซิร์ฟเวอร์ linux คู่หนึ่ง (เวอร์ชันและการจัดจำหน่ายนั้นไม่สำคัญ ฉันกำลังมองหาโซลูชันทั่วไป)

ฉันมีเซิร์ฟเวอร์ 2 เครื่อง แต่ละเครื่องมีดิสก์ในเครื่องของตัวเองและแบ่งปัน NFS และบริการอื่นๆ ระหว่างเซิร์ฟเวอร์ทั้งสองเครื่อง ฉันมีไฟล์ที่ทั้งสองเซิร์ฟเวอร์จำเป็นต้องเข้าถึง แต่ไม่มีอะไรอื่นนอกจากเซิร์ฟเวอร์เหล่านั้นที่จำเป็นต้องเข้าถึง

หากเซิร์ฟเวอร์ตัวใดตัวหนึ่งล่ม ฉันต้องการให้เนื้อหาที่เป็นไปได้ล่าสุดของไฟล์นั้นพร้อมใช้งานในเซิร์ฟเวอร์ที่เหลือ (เห็นได้ชัดว่าเซิร์ฟเวอร์อื่นควรรับการเปลี่ยนแปลงในการกู้คืน)

ไฟล์นี้เป็นไฟล์สถานะ และมีแนวโน้มว่าจะเขียนถึงเซิร์ฟเวอร์ครั้งละหนึ่งเซิร์ฟเวอร์เท่านั้น ไม่ทราบขนาดไฟล์สถานะ แต่มีขนาดเล็ก อาจอยู่ระหว่าง 1 บล็อกถึง 2M ขนาดของไฟล์สถานะอาจเพิ่มขึ้นได้ ขึ้นอยู่กับระยะเวลาหยุดทำงาน

มีตัวเลือกใดบ้างสำหรับการแชร์ไฟล์ที่มีความพร้อมใช้งานสูงเช่นนี้โดยไม่ต้องเพิ่มฮาร์ดแวร์ภายนอก

djdomi avatar
za flag
มีข้อ จำกัด ใดที่ควรใช้โปรโตคอล?
user10489 avatar
nc flag
ข้อจำกัดคือฉันไม่ต้องการเพิ่มฮาร์ดแวร์ (เช่น iscsi nas) และบริการที่มีอยู่จะไม่หยุดชะงัก ตัวอย่างเช่น สามารถใช้ NFS ได้ แต่ฉันไม่ต้องการทำให้ NFS ยุ่งเหยิงจนถึงจุดที่ไคลเอนต์อื่นในคลัสเตอร์มีปัญหาในการใช้ NFS ฉันหวังว่าจะได้รับตัวเลือกมากมายที่ฉันสามารถเลือกได้ เนื่องจากฉันรู้ว่ามีระบบไฟล์ HA แต่ระบบส่วนใหญ่ที่ฉันดูมีการตั้งค่าที่ค่อนข้างซับซ้อนซึ่งเกินความจำเป็นสำหรับแอปพลิเคชันนี้
djdomi avatar
za flag
คุณช่วยเพิ่มขนาดของไฟล์ได้ไหม ถ้านี่เป็นสิ่งเดียวที่ต้องซิงค์
djdomi avatar
za flag
ฉันสนใจคำถามนี้ด้วย ฉันมีงานที่คล้ายกันในอนาคตไหม ฉันพบบทความที่น่าสนใจใน [StackExchange](https://unix.stackexchange.com/questions/307046/real-time-file-synchronization)
user10489 avatar
nc flag
@djdomi: น่าสนใจ อาจใช้งานได้ แต่แอปพลิเคชันค่อนข้างคลุมเครือเกี่ยวกับวิธีการใช้ไฟล์สถานะซึ่งฉันไม่ทราบว่าจะใช้งานได้หรือไม่ หากกำลังทำการล็อกหรือ IPC อื่นในไฟล์สถานะ การดำเนินการนี้อาจเสียหายได้ ถ้าไม่มีทางออกที่ดีกว่านี้ ฉันคงต้องทดลองดู
djdomi avatar
za flag
โดยปกติแล้วบน linux จะไม่มีไฟล์ใดถูกล็อคซึ่งแตกต่างจาก windows ในความคิดของฉัน - ไฟล์นั้นเป็นไฟล์ประเภทใด
user10489 avatar
nc flag
Linux รองรับการล็อกไฟล์คำแนะนำอย่างสมบูรณ์ เช่นเดียวกับ windows แอปพลิเคชั่นน้อยลงเท่านั้นที่ใช้
djdomi avatar
za flag
ฉันไม่ได้บอกว่ามันไม่รองรับ ไม่ชอบเลยที่มันทำ ;) อย่างไรก็ตามพบเครื่องมือที่สองเช่น [bsync](https://github.com/dooblem/bsync)
user10489 avatar
nc flag
bsync ดูแย่และเกินความสามารถ และฉันยอมรับว่าไม่น่าใช้การล็อกไฟล์ แต่ฉันต้องทำการวิจัย (หรือทดลอง) เพื่อค้นหา
djdomi avatar
za flag
ตราบใดที่คุณไม่เปิดเผยความจริงเกี่ยวกับไฟล์ของคุณ ฉันสามารถให้คำแนะนำและพยายามหาบางอย่างในลูกบอลแก้วของฉัน ;)
user10489 avatar
nc flag
ลองดูอีกครั้ง lsyncd และ bsync คล้ายกันมาก ฉันยังแยกสิ่งเหล่านี้ไม่ได้
user10489 avatar
nc flag
@djdomi: ฉันได้ดูโซลูชันที่ใช้ rsync หลายตัวแล้ว และจริงๆ แล้วพวกเขาแก้ปัญหาที่คล้ายกันได้ แต่ไม่ใช่วิธีแก้ปัญหานี้ หากคุณใส่คำตอบนั้นพร้อมลิงก์ไปยังรูปแบบต่างๆ ของ rsync อย่างน้อยฉันก็ให้คะแนน แต่ฉันคิดว่าฉันต้องการระบบไฟล์ภายใต้สิ่งนี้มากกว่าบริการซิงโครไนซ์ไฟล์
Score:1
ธง cn

มีวิธีแก้ไขมากมาย - สำหรับไฟล์เดียวฉันอาจใช้ GlusterFS - แต่ฉันคิดว่าคุณควรมีเซิร์ฟเวอร์ 3 เครื่องสำหรับองค์ประชุมไม่เช่นนั้นคุณจะต้องแก้ปัญหาการแยกสมองในการกู้คืน คุณควรจะสามารถติดตั้งได้อย่างง่ายดายในทุก distro ที่เป็นที่นิยม และกำหนดค่าได้ไม่เกินหนึ่งชั่วโมง

user10489 avatar
nc flag
ฉันจะให้โบนัสกับสิ่งนี้โดยที่ยังไม่ยอมรับในตอนนี้ ฉันได้ดูอีกสองวิธีแก้ปัญหาที่แนะนำแล้วและพบว่าพวกเขาต้องการ แต่ฉันไม่สามารถยอมรับวิธีนี้ได้จนกว่าฉันจะได้ลอง ถ้าฉันลองแล้วพบว่าตั้งค่าได้ง่ายและได้ผล ฉันจะยอมรับ
Kszysiu avatar
cn flag
หากคุณใช้โซลูชัน drbd คุณจะต้องตั้งค่าการกำหนดค่าหลักแบบคู่ (โหนดที่สามในความคิดของฉันยังจำเป็นอยู่ - มิฉะนั้นคุณสามารถแยกสมองได้หากเกิดปัญหาเครือข่าย) จากนั้นระบบไฟล์แบบคลัสเตอร์บางประเภท (ถ้าคุณต้องการเมานต์ ใน 2 ที่ในเวลาเดียวกัน) - คุณไม่สามารถใช้ classic ext/xfs หรือระบบไฟล์อื่น ๆ ได้ หากคุณต้องการใช้ระบบไฟล์แบบคลาสสิก คุณต้องเมานต์ในที่เดียว ณ เวลานั้น และใช้ nfs หรือบางอย่างเพื่อเมานต์บนเซิร์ฟเวอร์ที่สอง คุณต้องมีอุปกรณ์บล็อกฟรี (หรือ lvm) เพื่อใช้ drbd มีหลายเลเยอร์ที่บางอย่างอาจล้มเหลวได้
user10489 avatar
nc flag
ในการทดสอบ ปรากฎว่าแอปพลิเคชันของฉันไม่ต้องการ NFS เลยเนื่องจากเหตุผลด้านประสิทธิภาพ (เวลาแฝงมากเกินไป) GlusterFS ให้ความสมดุลที่ดีระหว่างประสิทธิภาพภายในเครื่องและการซิงค์ระยะไกล โดยไม่มีปัญหาการซิงค์ล่าช้าที่โซลูชันประเภท rsync มอบให้
Score:1
ธง cn

หากเซิร์ฟเวอร์คู่หนึ่งกำลังทำงานแบบ hot-cold (กล่าวคือ มีเซิร์ฟเวอร์เดียวเท่านั้นที่เข้าถึงไฟล์ในแต่ละครั้ง) ดีอาร์บีดี เป็นวิธีที่รวดเร็วและมั่นคงในการบรรลุเป้าหมายของคุณ DRBD ได้รับการออกแบบมาพร้อมกับการป้องกันสมองแตก ดังนั้นมันควรจะ "ดีพอ"

ข้อความสั้น ๆ จากไซต์ DRBD:

Distributed Replicated Block Device (DRBD) เป็นซอฟต์แวร์ที่ใช้ ไม่มีการใช้ร่วมกัน โซลูชันพื้นที่เก็บข้อมูลที่จำลองแบบสะท้อนเนื้อหาของ บล็อกอุปกรณ์ (ฮาร์ดดิสก์ พาร์ติชัน โลจิคัลวอลุ่ม ฯลฯ) ระหว่าง เจ้าภาพ

DRBD สะท้อนข้อมูล

  • ในเวลาจริง. การจำลองแบบเกิดขึ้นอย่างต่อเนื่องในขณะที่แอ็พพลิเคชัน แก้ไขข้อมูลบนอุปกรณ์
  • อย่างโปร่งใส. แอปพลิเคชันไม่จำเป็นต้องทราบว่าข้อมูลถูกเก็บไว้ บนหลายโฮสต์
  • พร้อมกัน หรือ อะซิงโครนัส. ด้วยการมิเรอร์แบบซิงโครนัส แอปพลิเคชันจะได้รับแจ้งการเขียนเสร็จสิ้นหลังจากเขียนเสร็จ ได้ดำเนินการกับโฮสต์ทั้งหมด ด้วยการมิเรอร์แบบอะซิงโครนัส แอปพลิเคชันจะได้รับแจ้งการเขียนเสร็จสิ้นเมื่อมีการเขียน เสร็จสิ้นภายในเครื่องซึ่งมักจะเป็นก่อนที่จะเผยแพร่ไปยัง โฮสต์อื่น ๆ

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

กระบวนการทั้งหมดคือ จัดทำเป็นเอกสารอย่างดี และยังมี คำแนะนำง่ายๆ มีอยู่.

หากคุณสนใจระบบอัตโนมัติมากขึ้น เครื่องกระตุ้นหัวใจ + DRBD เป็นชุดค่าผสมที่ใช้กันทั่วไป มันถูกบันทึกไว้แม้กระทั่งใน คู่มือเครื่องกระตุ้นหัวใจ ซึ่งเป็นการแนะนำ DRBD ที่ดีด้วย

ป.ล. ตลกแค่ไหน คู่มือเครื่องกระตุ้นหัวใจสำหรับ DRBD ฉันเชื่อมโยงข้างต้นอธิบายคำถามของคุณเกือบสมบูรณ์แบบ

แม้ว่าคุณจะให้บริการเว็บไซต์แบบคงที่ แต่ก็ต้องดำเนินการด้วยตนเอง ซิงโครไนซ์เนื้อหาของเว็บไซต์นั้นกับทุกเครื่องใน คลัสเตอร์ไม่เหมาะ สำหรับเว็บไซต์ไดนามิก เช่น Wiki นั้นไม่ใช่ แม้แต่ตัวเลือก ไม่ใช่ทุกคนที่สามารถซื้อที่เก็บข้อมูลที่เชื่อมต่อกับเครือข่ายได้ แต่ อย่างใดข้อมูลจะต้องมีการซิงค์

ป้อน DRBD ซึ่งถือได้ว่าเป็น RAID-1 บนเครือข่าย

user10489 avatar
nc flag
DRDB เป็นวิธีแก้ปัญหาแรกที่ฉันดูและปฏิเสธเมื่อหลายเดือนก่อน มองเผินๆ มันดูดีมาก แต่เมื่อฉันเริ่มทำงานผ่านความซับซ้อนของการตั้งค่าจริงๆ ด้วยความล้มเหลวที่ร้อนแรงที่สลับการส่งออก NFS และการจัดการรวมของ NFS เพื่อรองรับความล้มเหลวที่ร้อนแรง ฉันพบว่ามันรบกวน NFS อื่นๆ มากเกินไป ไคลเอนต์ที่ไม่สนใจเกี่ยวกับสถานะเฟลโอเวอร์ที่ร้อนแรง รวมถึงความซับซ้อนที่มากเกินไปอื่นๆ
user10489 avatar
nc flag
ป.ล.: การลงคะแนนสำหรับสิ่งนี้อย่างไรก็ตามโดยทั่วไปแล้วดูเหมือนจะเป็นทางออกที่ดี
cn flag
ฉันยอมรับว่าการทำ NFS บน DRBD นั้นเหนื่อยมาก (ยากที่จะหยุดการเข้าถึงจุดเมานต์เพื่อให้อุปกรณ์ DRBD ล่ม) แต่สำหรับกรณีการใช้งานของคุณ คุณสามารถใช้ local mounts โดยไม่มี NFS ระบบไฟล์ที่อยู่ด้านบนของ DRBD ที่คุณเมานต์เมื่อจำเป็น
user10489 avatar
nc flag
ระบบไฟล์จำเป็นเสมอ เนื่องจากแอปพลิเคชันจะเปิดไฟล์ไว้เสมอ แม้ว่าจะไม่ใช่ไฟล์หลักและไม่ได้เขียนก็ตาม
cn flag
เห็นด้วย DRBD ใช้ได้เฉพาะกับการตั้งค่าแบบร้อน-เย็น โดยที่ "เย็น" หมายถึงแอปพลิเคชันไม่ได้ทำงานอยู่ Pacemaker ช่วยทำให้สิ่งเหล่านี้ทำงานโดยอัตโนมัติ (กล่าวคือ ติดตั้งระบบไฟล์ก่อนที่จะเปิดแอปพลิเคชัน) ดูเหมือนว่าจะไม่ใช่วิธีแก้ปัญหาสำหรับกรณีการใช้งานของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา