เรามีคลัสเตอร์ GlusterFS ที่เราใช้สำหรับฟังก์ชั่นการประมวลผลของเรา เราต้องการรวม Windows เข้าไว้ด้วยกัน แต่กำลังมีปัญหาในการหาวิธีหลีกเลี่ยงความล้มเหลว ณ จุดเดียวซึ่งเป็นเซิร์ฟเวอร์ Samba ที่ให้บริการไดรฟ์ข้อมูล GlusterFS
โฟลว์ไฟล์ของเราทำงานดังนี้:
- ไฟล์ถูกอ่านโดยโหนดการประมวลผล Linux
- ไฟล์จะถูกประมวลผล
- ผลลัพธ์ (มีขนาดเล็กอาจมีขนาดค่อนข้างใหญ่) ถูกเขียนกลับไปที่ปริมาณ GlusterFS เมื่อเสร็จสิ้น
- สามารถเขียนผลลัพธ์ไปยังฐานข้อมูลแทนหรืออาจรวมหลายไฟล์ที่มีขนาดต่างกัน
- โหนดการประมวลผลหยิบงานอื่นออกจากคิวและ GOTO 1
Gluster นั้นยอดเยี่ยมเนื่องจากมีปริมาณการกระจายรวมถึงการจำลองแบบทันที ความยืดหยุ่นของภัยพิบัตินั้นดีมาก! เราชอบมัน
อย่างไรก็ตามเนื่องจาก Windows ไม่มีไคลเอ็นต์ GlusterFS ดั้งเดิมเราจึงต้องการวิธีการสำหรับโหนดการประมวลผลที่ใช้ Windows ของเราเพื่อโต้ตอบกับที่เก็บไฟล์ในวิธีที่ยืดหยุ่นคล้ายกัน รัฐเอกสาร GlusterFSว่าวิธีที่จะให้การเข้าถึงของ Windows คือการตั้งค่าเซิร์ฟเวอร์แซมบ้าที่ด้านบนของที่ติดตั้งปริมาณ GlusterFS ที่จะนำไปสู่การไหลของไฟล์เช่นนี้
นั่นเป็นจุดเดียวที่ฉันล้มเหลว
ทางเลือกหนึ่งคือการจัดกลุ่มแซมบ้าแต่ดูเหมือนว่าจะขึ้นอยู่กับรหัสที่ไม่เสถียรในขณะนี้และทำให้ไม่สามารถทำงานได้
ดังนั้นฉันกำลังมองหาวิธีอื่น
รายละเอียดที่สำคัญบางประการเกี่ยวกับประเภทของข้อมูลที่เรา:
- ขนาดไฟล์ดั้งเดิมสามารถอยู่ที่ใดก็ได้จากไม่กี่ 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 เป็นอีกทางเลือกหนึ่ง ดังนั้นฉันจึงทำการทดสอบ เนื่องจากไฟล์ที่กล่าวมาข้างต้นมีชื่อที่ลูกค้าให้มาซึ่งเราต้องเก็บไว้และสามารถมาในภาษาใด ๆ เราจึงจำเป็นต้องรักษาชื่อไฟล์ไว้ ดังนั้นฉันสร้างไดเรกทอรีด้วยไฟล์เหล่านี้:
เมื่อฉันติดตั้งจากระบบ Server 2008 R2 ที่ติดตั้ง NFS Client ฉันจะได้รับรายชื่อไดเรกทอรีดังนี้:
เห็นได้ชัดว่า Unicode ไม่ได้ถูกเก็บรักษาไว้ ดังนั้น NFS จะไม่ทำงานสำหรับฉัน
ctdb
มีความเสถียรและพร้อมสำหรับการใช้งานจริงและประโยคแรกในลิงก์ที่คุณให้ไว้ทำให้สิ่งที่สองไม่ถูกต้องเพราะถ้าไม่เคยอัพเดท ฉันกำลังวางแผนที่จะก่อตั้งสิ่งนี้ แต่ก่อนที่ฉันจะมาถึงที่นี่ฉันเปลี่ยนงานเป็นสภาพแวดล้อมที่แทบจะไม่มีหน้าต่าง