หลีกเลี่ยง SPOFS ด้วย GlusterFS และ Windows


10

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

โฟลว์ไฟล์ของเราทำงานดังนี้:

การไหลของเอกสาร GlusterFS

  1. ไฟล์ถูกอ่านโดยโหนดการประมวลผล Linux
  2. ไฟล์จะถูกประมวลผล
  3. ผลลัพธ์ (มีขนาดเล็กอาจมีขนาดค่อนข้างใหญ่) ถูกเขียนกลับไปที่ปริมาณ GlusterFS เมื่อเสร็จสิ้น
    • สามารถเขียนผลลัพธ์ไปยังฐานข้อมูลแทนหรืออาจรวมหลายไฟล์ที่มีขนาดต่างกัน
  4. โหนดการประมวลผลหยิบงานอื่นออกจากคิวและ GOTO 1

Gluster นั้นยอดเยี่ยมเนื่องจากมีปริมาณการกระจายรวมถึงการจำลองแบบทันที ความยืดหยุ่นของภัยพิบัตินั้นดีมาก! เราชอบมัน

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

GlusterFS doc-flow ผ่าน Winders

นั่นเป็นจุดเดียวที่ฉันล้มเหลว

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

ดังนั้นฉันกำลังมองหาวิธีอื่น

รายละเอียดที่สำคัญบางประการเกี่ยวกับประเภทของข้อมูลที่เรา:

  • ขนาดไฟล์ดั้งเดิมสามารถอยู่ที่ใดก็ได้จากไม่กี่ KB ถึงสิบ GB
  • ขนาดไฟล์ที่ดำเนินการสามารถอยู่ที่ใดก็ได้จากไม่กี่ KB ถึง GB หรือสอง
  • กระบวนการบางอย่างเช่นการขุดในไฟล์เก็บถาวรเช่น. zip หรือ. tar อาจทำให้เกิดการเขียนจำนวนมากขึ้นเนื่องจากไฟล์ที่มีอยู่จะถูกนำเข้าสู่ที่เก็บไฟล์
  • การนับจำนวนไฟล์สามารถเพิ่มเป็น 10 ของล้านได้

เวิร์กโหลดนี้ไม่ทำงานกับการตั้งค่า Hadoop "ขนาดพื้นที่ทำงานคงที่" ในทำนองเดียวกันเราได้ประเมินร้านค้าวัตถุสไตล์ S3 แต่พบว่าพวกเขาขาด

แอปพลิเคชันของเราเขียนขึ้นเองใน Ruby และเรามีสภาพแวดล้อม Cygwin ในโหนด Windows สิ่งนี้อาจช่วยเรา

ทางเลือกหนึ่งที่ฉันพิจารณาคือบริการ HTTP แบบง่ายบนคลัสเตอร์ของเซิร์ฟเวอร์ที่ติดตั้งไดรฟ์ข้อมูล GlusterFS เนื่องจากสิ่งที่เราทำกับ Gluster นั้นเป็นการดำเนินการ GET / PUT ซึ่งดูเหมือนว่าสามารถถ่ายโอนไปยังวิธีการถ่ายโอนไฟล์ที่ใช้ HTTP ได้อย่างง่ายดาย วางไว้ด้านหลังคู่ loadbalancer และโหนด Windows สามารถ HTTP PUT กับเนื้อหาของหัวใจสีฟ้าเล็ก ๆ ของพวกเขา

สิ่งที่ฉันไม่ทราบว่าเป็นวิธีการเชื่อมโยงกัน GlusterFS จะได้รับการรักษา HTTP- พร็อกซีเลเยอร์แนะนำเวลาแฝงที่เพียงพอระหว่างเมื่อโหนดการประมวลผลรายงานว่ามันทำกับการเขียนและเมื่อมองเห็นได้จริงในปริมาณ GlusterFS ที่ฉันกังวลเกี่ยวกับขั้นตอนการประมวลผลในภายหลังพยายามที่จะรับไฟล์จะไม่ หามัน ฉันค่อนข้างมั่นใจว่าการใช้direct-io-mode=enableตัวเลือกเมาท์จะช่วยได้แต่ฉันไม่แน่ใจว่าเพียงพอหรือไม่ ฉันควรทำอะไรเพื่อปรับปรุงความเชื่อมโยง?

หรือฉันควรจะใฝ่หาวิธีอื่นอย่างสิ้นเชิง?


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

ไดเร็กทอรี NFS ที่มีชื่อที่ดีบนเซิร์ฟเวอร์

เมื่อฉันติดตั้งจากระบบ Server 2008 R2 ที่ติดตั้ง NFS Client ฉันจะได้รับรายชื่อไดเรกทอรีดังนี้:

ไดเร็กทอรี NFS ที่มีชื่อไม่ดีบนไคลเอ็นต์

เห็นได้ชัดว่า Unicode ไม่ได้ถูกเก็บรักษาไว้ ดังนั้น NFS จะไม่ทำงานสำหรับฉัน


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

คุณกำลังใช้ Windows รุ่นใดอยู่
Tom O'Connor

@ TomO'Connor ดังที่แท็กระบุว่า Windows 7 แม้ว่า Server 2008 R2 จะอยู่ในจุดนั้น
sysadmin1138

ฉันคิดว่า Cygwin เป็นคำถามหรือไม่
Tom O'Connor

คำตอบ:


5

ฉันชอบ GlusterFS จริงๆแล้วฉันชื่นชอบ GlusterFS ตราบใดที่คุณสามารถให้แบนด์วิดธ์เฉพาะบางสิ่งได้ดี

หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับ GlusterFS คือการใช้มันกับ NFS หนึ่งในสิ่งที่น่าแปลกใจที่ผมได้ทำงานกับเมื่อเร็ว ๆ นี้คือNFS บน Windows 7 และ 2k8R2

นี่คือสิ่งที่ฉันจะทำ

  1. ตั้งค่าเซิร์ฟเวอร์ 2 GlusterFS ที่สามารถส่งออก NFS
  2. ตั้งค่าลิงค์ heartbeat ระหว่างพวกเขา
  3. ปรับใช้บางอย่างเช่น Heartbeat / Pacemaker หรือไม่?
  4. ตั้งค่า IP เสมือน (VIP) ระหว่าง Gluster Nodes ของคุณ
  5. เชื่อมต่อไดรฟ์เครือข่ายที่แมปบ็อกซ์ของ Windows โดยใช้ที่อยู่ IP ของ VIP
  6. ทดสอบทุกสิ่งที่คุณอาจจินตนาการได้

การจัดกลุ่ม Samba ฟังดูน่ากลัวและแม้ว่าคุณจะทำเช่นนั้น Samba ก็ยังขาดความสามารถในการทำงานที่เชื่อถือได้ในเครือข่าย windows บางระบบ (ความเข้ากันได้ของโดเมน NT4 ทั้งหมดดูเหมือนจะไม่สามารถผ่านพ้นไปได้)

ผมคิดว่าเป็นเพราะแต่ละโหนด Gluster อยู่ในการกระจายโหมดการจำลองแบบในทางทฤษฎีแล้วคุณควรจะสามารถเชื่อมต่อกับอย่างใดอย่างหนึ่งและอนุญาตให้ไม่ต้องกังวลเกี่ยวกับการย้ายข้อมูลของคุณไปรอบ ๆ ดังนั้น heartbeatd ควรเป็นสิ่งที่ทำการเปลี่ยนเส้นทางและควบคุมสิ่งที่คุณกำลังพูดถึง

สำหรับคุณ

  • การนับจำนวนไฟล์สามารถเพิ่มเป็น 10 ของล้านได้

ฉันขอแนะนำให้คุณตรวจสอบการใช้ XFS เป็นระบบไฟล์พื้นฐานเพราะมันค่อนข้างดีกับระบบไฟล์ขนาดใหญ่และได้รับการสนับสนุนภายใต้ GlusterFS


ฉันกำลังใช้ XFS อยู่! เรามองไปที่ NFS3 ในขณะที่กลับไปจัดการกับฟังก์ชั่นการเริ่มต้นครั้งแรก แต่มันพิสูจน์แล้วว่าใช้งานไม่ได้เนื่องจากขาดการสนับสนุน Unicode นี่คือกับเซิร์ฟเวอร์ NFS บน Windows "会計 2012.xls" จะแสดงผลไม่ถูกต้องและนั่นสำคัญมาก แต่ ... ฉันไม่รู้เกี่ยวกับ 7 / R2 และคุ้มค่าที่จะตรวจสอบ!
sysadmin1138

ดังนั้นฉันจึงทำการทดสอบ น่าเสียดายที่มันไม่ได้ผลลัพธ์ที่ดี (ดูการอัปเดตตามคำถาม) ปัญหา Unicode นั้นเป็นแบบสองทิศทาง
sysadmin1138

คนเสพเวจมรรค ฉันหมดความคิดแล้ว ฉันสงสัยว่าคุณสามารถวางแซมบ้าไว้ข้างหลังเป็นวีไอพีได้หรือไม่
Tom O'Connor

เวิร์กกรุ๊ปใช่โดเมน (ซึ่งเรากำลังใช้งาน) ไม่ ดังนั้นปัญหาของฉัน
sysadmin1138

ในทางกลับกันหลังจากพูดคุยกับนักพัฒนาที่รักษาชื่อไฟล์ไม่สำคัญอย่างที่ฉันคาดไว้ เห็นได้ชัดว่าตราบใดที่เราสามารถรับพวกเขาในขั้นตอนแรก (นำเข้า) ฐานข้อมูลจะติดตามชื่อ ดังนั้น NFS เป็นตัวเลือกที่ถูกต้องที่นี่ (เมื่อเราได้รุ่น Windows ที่ถูกต้อง)
sysadmin1138

1

บางทีคุณอาจคิดว่าในโซลูชัน HA ... ใช้ LDAP สำหรับการตรวจสอบสิทธิ์ (สามารถทำซ้ำได้กับเซิร์ฟเวอร์ LDAP หลายตัวที่คุณต้องการ) และวาง IP เพื่อฟังบริการ SMB

IP นี้จะลอยอยู่บนเซิร์ฟเวอร์หลัก เมื่อนี่คือ Heartbeat ไม่สามารถเริ่มบริการบนเซิร์ฟเวอร์ที่สอง

เซิร์ฟเวอร์นี้จะมีจุดเชื่อมต่อไปยัง glusterfs จากนั้นข้อมูลทั้งหมดจะอยู่ที่นั่น

มันเป็นทางออกที่เป็นไปได้และง่ายต่อการจัดการ ...

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