ระบบไฟล์ที่เก็บข้อมูลแบบกระจาย - อันที่หนึ่ง / มีผลิตภัณฑ์ที่พร้อมใช้งานหรือไม่?


31

ด้วยHadoopและCouchDBทั่วในบล็อกและข่าวที่เกี่ยวข้องว่าหน่วยเก็บข้อมูลที่ทนต่อความผิดพลาด (เอ็นจิ้น) ที่ใช้งานได้จริงคืออะไร

  • CouchDB จริง ๆ แล้วไม่มีคุณสมบัติการแจกจ่ายใด ๆ อยู่ภายในความรู้ของฉันกาวเพื่อกระจายรายการโดยอัตโนมัติหรือแม้กระทั่งฐานข้อมูลทั้งหมดจะหายไป
  • Hadoop ดูเหมือนจะใช้กันอย่างแพร่หลายมาก - อย่างน้อยมันก็ได้รับการกดดี แต่ก็ยังมีจุดล้มเหลวเพียงจุดเดียว: The NameNode นอกจากนี้มันสามารถติดตั้งได้ผ่าน FUSE เท่านั้นฉันเข้าใจว่า HDFS ไม่ใช่เป้าหมายหลักของ Hadoop
  • GlusterFSไม่มีแนวคิดอะไรที่ใช้ร่วมกัน แต่เมื่อเร็ว ๆ นี้ฉันอ่านบทความหลายเรื่องที่ทำให้ฉันเห็นว่ามันไม่เสถียรเท่าไหร่
  • ความมันวาวมีจุดของความล้มเหลวเพียงจุดเดียวเนื่องจากมันใช้เซิร์ฟเวอร์เมทาดาทาโดยเฉพาะ
  • Cephดูเหมือนจะเป็นผู้เล่นที่เลือก แต่หน้าแรกระบุว่ามันยังอยู่ในช่วงอัลฟา

ดังนั้นคำถามคือระบบไฟล์แบบกระจายมีชุดคุณลักษณะต่อไปนี้ (ไม่มีลำดับเฉพาะ):

  • POSIX ได้
  • การเพิ่ม / กำจัดโหนดอย่างง่ายดาย
  • แนวคิดแบบไม่มีอะไรแชร์
  • ทำงานบนฮาร์ดแวร์ราคาถูก (AMD Geode หรือโปรเซสเซอร์ระดับ VIA Eden)
  • การพิสูจน์ตัวตน / การอนุญาตในตัว
  • ระบบไฟล์เครือข่าย (ฉันต้องการที่จะสามารถติดตั้งพร้อมกันในโฮสต์ที่แตกต่างกัน)

ยินดีที่ได้:

  • ไฟล์ที่สามารถเข้าถึงได้ในเครื่อง: ฉันสามารถนำโหนดลง mount พาร์ติชั่นด้วยระบบไฟล์มาตรฐาน (ext3 / xfs / อะไรก็ตาม ... ) และยังคงเข้าถึงไฟล์

ฉันไม่ได้มองหาแอปพลิเคชั่นที่โฮสต์ แต่เป็นสิ่งที่จะทำให้ฉันสามารถบอกว่า 10GB ของกล่องฮาร์ดแวร์ของเราและมีที่เก็บข้อมูลนั้นในเครือข่ายของเราติดตั้งได้ง่ายบนโฮสต์จำนวนมาก


แล้วคุณจะได้อะไร เป็นที่น่าสนใจที่จะได้ยินเกี่ยวกับการตั้งค่าปัจจุบันของคุณ
MattBianco

ดูเหมือนว่า Luster จะเพิ่ม MDS ที่ใช้งาน / ไม่ทำงานตั้งแต่ที่คุณเขียนสิ่งนี้ดังนั้นอาจต้องดูใหม่
pjz

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

คำตอบ:


9

ฉันคิดว่าคุณจะต้องละทิ้งความต้องการ POSIX ระบบน้อยมากที่นำมาใช้ - ในความเป็นจริงแม้แต่ NFS ก็ไม่ได้จริงๆ (คิดว่าล็อค ฯลฯ ) และที่ไม่มีความซ้ำซ้อน

ระบบใดก็ตามที่ใช้การเรพลิเคทแบบซิงโครนัสจะช้ามาก ระบบใด ๆ ที่มีการเรพลิเคทแบบอะซิงโครนัส (หรือ "ความสอดคล้องที่สุด") จะละเมิดกฎ POSIX และไม่ทำงานเหมือนระบบไฟล์ "ทั่วไป"


คุณรู้จักระบบไฟล์ใด ๆ ที่สนับสนุนทั้งความสอดคล้องในที่สุดและความสอดคล้องที่เข้มงวดบางทีมันอาจจะปรับทั้งสองและสร้าง 2 mounts?
CMCDragonkai

16

ฉันไม่สามารถพูดกับส่วนที่เหลือ แต่คุณดูเหมือนจะสับสนระหว่าง 'เครื่องมือจัดเก็บแบบกระจาย' และ 'ระบบไฟล์แบบกระจาย' พวกเขาไม่ใช่สิ่งเดียวกันพวกเขาไม่ควรถูกเข้าใจผิดว่าเป็นเรื่องเดียวกันและพวกเขาจะไม่เหมือนเดิมอีกเลย ระบบไฟล์เป็นวิธีในการติดตามว่ามีสิ่งใดบ้างที่อยู่บนฮาร์ดไดรฟ์ เครื่องมือจัดเก็บข้อมูลเช่น hadoop เป็นวิธีการติดตามข้อมูลที่ระบุโดยคีย์ แนวคิดไม่แตกต่างกันมาก ปัญหาคือว่าระบบไฟล์นั้นขึ้นอยู่กับเอ็นจิ้นการจัดเก็บ ... หลังจากทั้งหมดมันต้องการวิธีเขียนไปยังอุปกรณ์บล็อกใช่ไหม?

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

เราใช้งาน ocfs2 ในสภาพแวดล้อมการผลิตในช่วงสองสามปีที่ผ่านมา ไม่เป็นไร แต่มันก็ไม่ได้ยอดเยี่ยมสำหรับแอปพลิเคชั่นมากมาย คุณควรดูความต้องการของคุณและหาว่ามันคืออะไร - คุณอาจพบว่าคุณมีความผิดพลาดมากกว่าที่คุณคิด

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

ดูว่าฉันหมายถึงอะไร มันควรจะมีความพร้อมใช้งานสูงซึ่งควรจะหมายถึง 'ออนไลน์ตลอดเวลา' แต่ที่นั่นคุณมีเวลาหยุดทำงาน ... และพระเจ้าห้ามคุณกำลังแออัดเพราะพื้นที่ดิสก์ คุณไม่ต้องการที่จะเห็นสิ่งที่เกิดขึ้นเมื่อคุณฝูงชน ocfs2

โปรดจำไว้ว่า evms ซึ่งเคยเป็นวิธีที่ 'ต้องการ' ในการจัดการกลุ่ม ocfs2 ได้ไปทางของนกโดโดใน clvmd และ lvm2 (และเป็นจังหวะที่ดีในการ evms.) นอกจากนี้การเต้นของหัวใจจะกลายเป็นโครงการผีดิบในความโปรดปรานของกอง openais / เครื่องกระตุ้นหัวใจ (นอกเหนือจาก: เมื่อทำการกำหนดค่าคลัสเตอร์เริ่มต้นสำหรับ ocfs2 คุณสามารถระบุ 'pcmk' เป็นเอ็นจินคลัสเตอร์เมื่อเทียบกับการเต้นของหัวใจได้ไม่มีนี่ไม่ใช่เอกสารประกอบ)

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


2
แค่ต้องการแสดงความคิดเห็นว่านี่เป็นประสบการณ์ของฉันกับ OCFS2 / Pacemaker vs. NFS เช่นกัน หลังจากลอง OCFS2 เป็นแหล่งข้อมูลคลัสเตอร์ในขณะที่ฉันพบว่ามันขาดอย่างมาก ในขณะเดียวกันระบบ HA NFS ของเรากำลังทำงานได้อย่างมีเสน่ห์
Kamil Kisiel

1
OCFS2 ไม่ใช่สิ่งที่ฉันกำลังดู โดยการกระจายที่ฉันทำบางสิ่งบางอย่างไม่ได้หมายความว่ามีอินสแตนซ์กลางของการจัดเก็บ แต่บางสิ่งบางอย่างที่ฉันสามารถเพิ่ม / ลบโหนดที่ให้การจัดเก็บขณะที่ยังคงขึ้นกับส่วนที่เหลือของ "คลัสเตอร์ที่"
serverhorror

2
เนื่องจากฉันยังได้รับ upvotes กับคำตอบนี้ฉันควรเพิ่มว่าตอนนี้เรากำลังใช้ GlusterFS ในการผลิตแทน nfs อย่างไรก็ตามเราไม่เก็บภาพดิสก์ VM ไฟล์ที่เก็บฐานข้อมูล (sqlite หรือ myisam หรืออะไรก็ตาม) หรือไฟล์อื่น ๆ ที่มีแนวโน้มที่จะเปลี่ยนแปลงบ่อยใน glusterfs เนื่องจากมันทำให้เกิดการจำลองแบบ ที่เราจัดเก็บในเครื่องบนโฮสต์ VM ใน LVM และใช้ DRBD เพื่อแจกจ่ายไปยังไซต์ที่ล้มเหลวหรือใช้การจำลองแบบในตัว
Karl Katzke

3

ฉันอาจเข้าใจผิดข้อกำหนดของคุณ แต่คุณได้ดูที่http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems


1
นี้เป็นสถานที่ที่ผมเริ่มความหวังของฉันคือการได้รับคำแนะนำบางจากคนที่นำไปใช้แล้วโครงสร้างการจัดเก็บกระจาย
serverhorror



3

แล้วXtreemfsล่ะ? รุ่น 1.4 (พฤศจิกายน 2555) ได้รับการพิจารณาคุณภาพการผลิต

มันเข้ากันได้กับ POSIX และมีความทนทานต่อความผิดปกติอย่างอัตโนมัติ


2

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

OCFS2 อาจคุ้มค่าที่จะดู

โปรดทราบว่าการตัดข้อกำหนดสำหรับการเข้าถึงเครือข่ายหลาย ๆ อย่างพร้อมกันทำให้สามารถสลับไปใช้บางอย่างเช่น iSCSI หรือแม้แต่ cifs หรือ nfs ข้อเสียคือคุณต้อง 'แกะสลัก' ชิ้นส่วนของ uberArray ของคุณให้ถูกกัดสำหรับแต่ละเซิร์ฟเวอร์ที่ต้องการพื้นที่


2

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

ความคิดเห็นที่ถามว่าคุณต้องการซีแมนทิกส์ POSIX จริง ๆ หรือไม่เป็นการเริ่มต้นที่ดี ความหมายของ "ระบบแฟ้ม" ที่ไม่ใช่ POSIX อาจมีความยืดหยุ่นมากขึ้นนำไปสู่ระบบที่เชื่อถือได้มากขึ้น

หากนี่เป็นแอปพลิเคชันรุ่นเก่าฉันสงสัยว่าทำไมระบบไฟล์แบบกระจายที่ทันสมัยอาจได้รับการพิจารณาว่าเป็นทางออกที่ดีที่สุด

อย่าเข้าใจฉันผิดนี่เป็นของเล่นที่สนุกอย่างน่าอัศจรรย์ ฉันแค่ไม่อยากรับผิดชอบวิธีแก้ปัญหาแบบพึ่งพาซึ่งกันและกันซึ่งไม่ได้ใช้กันทั่วไปและจะยากมากที่จะแก้ไขเมื่อหลุดออก


1

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


น่าเสียดายที่ฉันต้องการความหมาย POSIX เรามี "แอปรุ่นเก่า" มากมายที่จัดเก็บข้อมูลลงในระบบไฟล์ในเครื่อง เขียนใหม่ทั้งหมดที่อยู่นอกงบประมาณใด ๆ แน่นอน
serverhorror

ฉันสงสัยว่าคุณจะต้องละทิ้งข้อกำหนดอื่น ๆ ของคุณ ฉันจะดูที่ GlusterFS, Luster, OCFS2, GFS แต่ฉันสงสัยว่าคุณจะพบคนที่ไม่มีอะไรใช้ร่วมกัน
David Pashley

en.wikipedia.org/wiki/…แสดงรายการระบบไฟล์แบบกระจาย แต่มีน้อยมากที่ POSIX
David Pashley

มหายุคที่ผ่านมาฉันเคยใช้ตัวแปรของ AFS (ตอนนี้คือ OpenAFS) มันใช้งานได้ แต่ซับซ้อนและมีชุดของตัวเอง
Jauder Ho

1

ความมันวาวมีจุดของความล้มเหลวเพียงจุดเดียวเนื่องจากใช้เซิร์ฟเวอร์เมทาดาทา

ความเป็นเงาถูกออกแบบมาเพื่อรองรับความล้มเหลวและ MDS / MDT / OSS สามารถมีที่อยู่จำนวนมากซึ่งสามารถติดต่อได้ที่ heartbeat สามารถใช้เพื่อย้ายบริการรอบ ๆ

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


1

ฉันแนะนำให้คุณใช้MooseFS (ระบบป้องกันความผิดพลาด, การปรับขนาดระบบเครือข่ายไฟล์กระจาย) มันเป็นไปตาม POSIX และเนื่องจาก MooseFS 1.6 นั้นให้การรับรองความถูกต้อง / การอนุญาตที่เรียบง่ายเหมือน NFS ดูเพิ่มเติมความต้องการของฮาร์ดแวร์

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