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



คลัสเตอร์คอมพิวเตอร์คือกลุ่มของคอมพิวเตอร์ที่ทำงานร่วมกันจนสามารถมองได้ว่าเป็นระบบเดียว แตกต่างจากคอมพิวเตอร์แบบกริดคลัสเตอร์คอมพิวเตอร์แต่ละโหนด จะ ถูกตั้งค่าให้ทำงานเดียวกัน โดยควบคุมและกำหนดตารางเวลาด้วยซอฟต์แวร์ รูปแบบล่าสุดของการประมวลผลแบบคลัสเตอร์คือการประมวลผลแบบคลาวด์
โดยทั่วไปแล้ว ส่วนประกอบของคลัสเตอร์จะเชื่อมต่อกันผ่านเครือข่ายพื้นที่ท้องถิ่น ความเร็วสูง โดยแต่ละโหนด (คอมพิวเตอร์ที่ใช้เป็นเซิร์ฟเวอร์) จะรันระบบปฏิบัติการของตนเองในสถานการณ์ส่วนใหญ่ โหนดทั้งหมดจะใช้ฮาร์ดแวร์เดียวกัน[ 1 ]และระบบปฏิบัติการเดียวกัน แม้ว่าในบางการตั้งค่า (เช่น การใช้Open Source Cluster Application Resources (OSCAR)) จะสามารถใช้ระบบปฏิบัติการที่แตกต่างกันในแต่ละคอมพิวเตอร์ หรือใช้ฮาร์ดแวร์ที่แตกต่างกันได้[ 2 ]
โดยทั่วไปคลัสเตอร์จะถูกใช้งานเพื่อปรับปรุงประสิทธิภาพและความพร้อมใช้งานให้มากกว่าคอมพิวเตอร์เครื่องเดียว ในขณะที่โดยทั่วไปแล้วจะมีประสิทธิภาพด้านต้นทุนมากกว่าคอมพิวเตอร์เครื่องเดียวที่มีความเร็วหรือความพร้อมใช้งานเทียบเท่ากัน[ 3 ]
คลัสเตอร์คอมพิวเตอร์เกิดขึ้นจากการรวมกันของแนวโน้มการคำนวณหลายประการ รวมถึงความพร้อมใช้งานของไมโครโปรเซสเซอร์ราคาประหยัด เครือข่ายความเร็วสูง และซอฟต์แวร์สำหรับการประมวลผลแบบกระจาย ประสิทธิภาพสูง คลัสเตอร์มีขอบเขตการใช้งานและการติดตั้งที่กว้างขวาง ตั้งแต่คลัสเตอร์ธุรกิจขนาดเล็กที่มีโหนดเพียงไม่กี่โหนด ไปจนถึงซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดในโลกบางเครื่องเช่น Sequoia ของ IBM [ 4 ]ก่อนการเกิดขึ้นของคลัสเตอร์ มี การใช้ เมนเฟรมแบบทนต่อความผิดพลาด แบบหน่วยเดียว ที่มีระบบสำรองแบบโมดูลาร์แต่ต้นทุนเริ่มต้นที่ต่ำกว่าของคลัสเตอร์และความเร็วของโครงสร้างเครือข่ายที่เพิ่มขึ้นทำให้การนำคลัสเตอร์มาใช้เป็นที่นิยม เมื่อเปรียบเทียบกับเมนเฟรมที่มีความน่าเชื่อถือสูง คลัสเตอร์มีต้นทุนในการขยายขนาดที่ถูกกว่า แต่ก็มีความซับซ้อนในการจัดการข้อผิดพลาดมากขึ้น เนื่องจากในคลัสเตอร์ โหมดข้อผิดพลาดจะไม่โปร่งใสต่อโปรแกรมที่กำลังทำงานอยู่[ 5 ]
แนวคิดพื้นฐาน

ความต้องการที่จะได้พลังการประมวลผลที่มากขึ้นและความน่าเชื่อถือที่ดีขึ้นโดยการนำคอมพิวเตอร์ เชิงพาณิชย์ราคาประหยัดจำนวนมากมาผสานรวมกันทำให้เกิดสถาปัตยกรรมและการกำหนดค่าที่หลากหลาย
โดยทั่วไปแล้ว วิธีการจัดกลุ่มคอมพิวเตอร์จะเชื่อมต่อโหนดคอมพิวเตอร์ที่พร้อมใช้งานจำนวนหนึ่ง (เช่น คอมพิวเตอร์ส่วนบุคคลที่ใช้เป็นเซิร์ฟเวอร์) ผ่านเครือข่ายพื้นที่ท้องถิ่น ความเร็วสูง [ 6 ] กิจกรรมของโหนดคอมพิวเตอร์จะถูกจัดการโดย "มิดเดิลแวร์ การจัดกลุ่ม" ซึ่งเป็นเลเยอร์ซอฟต์แวร์ที่อยู่เหนือโหนดและอนุญาตให้ผู้ใช้จัดการคลัสเตอร์เสมือนเป็นหน่วยประมวลผลที่รวมกันเป็นหนึ่งเดียว เช่น ผ่านแนวคิดภาพระบบเดียว[ 6 ]
การจัดกลุ่มคอมพิวเตอร์อาศัยแนวทางการจัดการแบบรวมศูนย์ซึ่งทำให้โหนดพร้อมใช้งานเป็นเซิร์ฟเวอร์ที่ใช้ร่วมกันแบบมีการ จัดการซึ่งแตกต่างจากแนวทางอื่นๆ เช่น การประมวลผล แบบเพียร์ทูเพียร์หรือกริดคอมพิวติ้ง ซึ่งใช้โหนดจำนวนมากเช่นกัน แต่มี ลักษณะกระจายตัวมากกว่า[ 6 ]
คลัสเตอร์คอมพิวเตอร์อาจเป็นระบบสองโหนดแบบง่ายๆ ที่เชื่อมต่อคอมพิวเตอร์ส่วนบุคคลสองเครื่องเข้าด้วยกัน หรืออาจเป็นซูเปอร์คอมพิวเตอร์ที่ เร็วมาก แนวทางพื้นฐานในการสร้างคลัสเตอร์คือคลัสเตอร์Beowulfซึ่งอาจสร้างขึ้นด้วยคอมพิวเตอร์ส่วนบุคคลเพียงไม่กี่เครื่องเพื่อสร้างทางเลือกที่คุ้มค่ากว่าการประมวลผลประสิทธิภาพสูง แบบดั้งเดิม โครงการแรกๆ ที่แสดงให้เห็นถึงความเป็นไปได้ของแนวคิดนี้คือ Stone Soupercomputerที่มี 133 โหนด[ 7 ]นักพัฒนาใช้Linux ชุดเครื่องมือ Parallel Virtual Machineและ ไลบรารี Message Passing Interfaceเพื่อให้ได้ประสิทธิภาพสูงในราคาที่ค่อนข้างต่ำ[ 8 ]
แม้ว่าคลัสเตอร์อาจประกอบด้วยคอมพิวเตอร์ส่วนบุคคลเพียงไม่กี่เครื่องที่เชื่อมต่อกันด้วยเครือข่ายแบบง่ายๆ แต่สถาปัตยกรรมคลัสเตอร์ก็อาจถูกนำมาใช้เพื่อให้ได้ประสิทธิภาพในระดับสูงมาก รายชื่อซูเปอร์คอมพิวเตอร์ที่เร็วที่สุด 500 เครื่องประจำปีขององค์กร TOP500มักจะมีคลัสเตอร์จำนวนมาก เช่น เครื่องที่เร็วที่สุดในโลกในปี 2011 คือคอมพิวเตอร์ Kซึ่งมีสถาปัตยกรรมคลัสเตอร์แบบหน่วยความจำแบบกระจาย[ 9 ]
ประวัติศาสตร์

เกร็ก ฟิสเตอร์ได้กล่าวว่าคลัสเตอร์ไม่ได้ถูกคิดค้นโดยผู้จำหน่ายรายใดรายหนึ่งโดยเฉพาะ แต่โดยลูกค้าที่ไม่สามารถทำงานทั้งหมดบนคอมพิวเตอร์เครื่องเดียวได้ หรือต้องการระบบสำรองข้อมูล[ 10 ]ฟิสเตอร์คาดการณ์ว่าน่าจะเป็นช่วงทศวรรษ 1960 พื้นฐานทางวิศวกรรมอย่างเป็นทางการของการประมวลผลแบบคลัสเตอร์ในฐานะวิธีการทำงานแบบขนานทุกประเภทนั้น อาจกล่าวได้ว่าถูกคิดค้นโดยจีน แอมดาห์ลแห่งIBMซึ่งในปี 1967 ได้ตีพิมพ์สิ่งที่ได้รับการยกย่องว่าเป็นเอกสารสำคัญเกี่ยวกับการประมวลผลแบบขนาน นั่นคือกฎของแอมดาห์ล
ประวัติศาสตร์ของกลุ่มคอมพิวเตอร์ในยุคแรกนั้นมีความเชื่อมโยงโดยตรงกับประวัติศาสตร์ของเครือข่ายในยุคแรก เนื่องจากแรงจูงใจหลักประการหนึ่งในการพัฒนาเครือข่ายคือการเชื่อมโยงทรัพยากรการคำนวณเข้าด้วยกัน ซึ่งเป็นการสร้างกลุ่มคอมพิวเตอร์ขึ้นมาโดยปริยาย
ระบบการผลิตระบบแรกที่ออกแบบมาในรูปแบบคลัสเตอร์คือ Burroughs B5700ในช่วงกลางทศวรรษ 1960 ระบบนี้อนุญาตให้เชื่อมต่อคอมพิวเตอร์ได้มากถึงสี่เครื่อง โดยแต่ละเครื่องมีโปรเซสเซอร์หนึ่งหรือสองตัว เข้ากับระบบจัดเก็บข้อมูลดิสก์ส่วนกลางอย่างแน่นหนา เพื่อกระจายภาระงาน แตกต่างจากระบบมัลติโปรเซสเซอร์มาตรฐาน คอมพิวเตอร์แต่ละเครื่องสามารถรีสตาร์ทได้โดยไม่กระทบต่อการทำงานโดยรวม

ผลิตภัณฑ์คลัสเตอร์แบบหลวมๆ เชิงพาณิชย์ตัวแรกคือ ระบบ "Attached Resource Computer" (ARC) ของ Datapoint Corporationซึ่งพัฒนาขึ้นในปี 1977 และใช้ARCnetเป็นอินเทอร์เฟซคลัสเตอร์ การจัดคลัสเตอร์นั้นไม่ได้เป็นที่นิยมอย่างแท้จริงจนกระทั่งDigital Equipment Corporationเปิดตัว ผลิตภัณฑ์ VAXclusterในปี 1984 สำหรับ ระบบปฏิบัติการ VMSผลิตภัณฑ์ ARC และ VAXcluster ไม่เพียงแต่รองรับการประมวลผลแบบขนาน เท่านั้น แต่ยัง รองรับ ระบบไฟล์และ อุปกรณ์ ต่อพ่วง ที่ใช้ร่วมกันอีก ด้วย แนวคิดคือการให้ข้อดีของการประมวลผลแบบขนาน ในขณะที่ยังคงรักษาความน่าเชื่อถือและความเป็นเอกลักษณ์ของข้อมูลไว้ คลัสเตอร์เชิงพาณิชย์ในช่วงแรกๆ ที่น่าสนใจอีกสองตัวคือTandem NonStop (ผลิตภัณฑ์เชิงพาณิชย์ที่มีความพร้อมใช้งานสูงในปี 1976) [ 11 ] [ 12 ]และIBM S/390 Parallel Sysplex (ประมาณปี 1994 ส่วนใหญ่ใช้ในธุรกิจ)
ในช่วงเวลาเดียวกัน ขณะที่คลัสเตอร์คอมพิวเตอร์ใช้การประมวลผลแบบขนานภายนอกคอมพิวเตอร์บนเครือข่ายทั่วไปซูเปอร์คอมพิวเตอร์เริ่มใช้การประมวลผลแบบขนานภายในคอมพิวเตอร์เครื่องเดียวกัน หลังจากความสำเร็จของCDC 6600ในปี 1964 Cray 1ก็ถูกส่งมอบในปี 1976 และนำเสนอการประมวลผลแบบขนานภายในผ่านการประมวลผลเวกเตอร์ [ 13 ] ในขณะที่ซูเปอร์คอมพิวเตอร์ยุคแรกๆ ไม่รวมคลัสเตอร์และอาศัยหน่วยความจำร่วมกันแต่ในที่สุดซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดบางเครื่อง (เช่นคอมพิวเตอร์ K ) ก็อาศัยสถาปัตยกรรมคลัสเตอร์
คุณลักษณะของกลุ่มคลัสเตอร์

กลุ่มคอมพิวเตอร์สามารถกำหนดค่าเพื่อวัตถุประสงค์ที่แตกต่างกันได้ ตั้งแต่ความต้องการทางธุรกิจทั่วไป เช่น การสนับสนุนบริการเว็บ ไปจนถึงการคำนวณทางวิทยาศาสตร์ที่ต้องใช้การประมวลผลสูง ในทั้งสองกรณี กลุ่มคอมพิวเตอร์อาจใช้ วิธีการ ที่มีความพร้อมใช้งานสูงโปรดทราบว่าคุณลักษณะที่อธิบายไว้ด้านล่างนี้ไม่ใช่คุณลักษณะที่จำกัด และ "กลุ่มคอมพิวเตอร์" อาจใช้วิธีการที่มีความพร้อมใช้งานสูง เป็นต้น
คลัสเตอร์แบบ " กระจายโหลด " คือการกำหนดค่าที่โหนดคลัสเตอร์แบ่งปันภาระงานการคำนวณเพื่อให้ได้ประสิทธิภาพโดยรวมที่ดีขึ้น ตัวอย่างเช่น คลัสเตอร์เว็บเซิร์ฟเวอร์อาจกำหนดคำสั่งค้นหาที่แตกต่างกันให้กับโหนดต่างๆ เพื่อให้เวลาตอบสนองโดยรวมได้รับการปรับให้เหมาะสม[ 14 ]อย่างไรก็ตาม วิธีการกระจายโหลดอาจแตกต่างกันอย่างมากในแต่ละแอปพลิเคชัน เช่น คลัสเตอร์ประสิทธิภาพสูงที่ใช้สำหรับการคำนวณทางวิทยาศาสตร์จะกระจายโหลดด้วยอัลกอริทึมที่แตกต่างจากคลัสเตอร์เว็บเซิร์ฟเวอร์ซึ่งอาจใช้วิธีการแบบวนรอบ อย่างง่าย โดยการกำหนดคำขอใหม่แต่ละรายการให้กับโหนดที่แตกต่างกัน[ 14 ]
คลัสเตอร์คอมพิวเตอร์ใช้สำหรับวัตถุประสงค์ที่ต้องใช้การคำนวณอย่างเข้มข้น มากกว่าการจัดการ การดำเนินงาน ที่เน้น I/Oเช่น เว็บเซอร์วิสหรือฐานข้อมูล[ 15 ]ตัวอย่างเช่น คลัสเตอร์คอมพิวเตอร์อาจรองรับการจำลองการชนของยานพาหนะหรือสภาพอากาศ คลัสเตอร์คอมพิวเตอร์ที่เชื่อมต่อกันอย่างแน่นหนาได้รับการออกแบบมาสำหรับงานที่อาจเข้าใกล้ " ซูเปอร์ คอมพิวเตอร์ "
" คลัสเตอร์ความพร้อมใช้งานสูง " (หรือที่รู้จักกันในชื่อ คลัสเตอร์ เฟลโอเวอร์หรือคลัสเตอร์ HA) ช่วยเพิ่มความพร้อมใช้งานของวิธีการคลัสเตอร์ โดยทำงานด้วยการมีโหนด สำรอง ซึ่งจะถูกใช้เพื่อให้บริการเมื่อส่วนประกอบของระบบล้มเหลว การใช้งานคลัสเตอร์ HA พยายามใช้ความซ้ำซ้อนของส่วนประกอบคลัสเตอร์เพื่อกำจัดจุดล้มเหลวเพียงจุดเดียวมีการใช้งานคลัสเตอร์ความพร้อมใช้งานสูงในเชิงพาณิชย์สำหรับระบบปฏิบัติการหลายระบบ โครงการ Linux-HAเป็น แพ็ก เกจซอฟต์แวร์ HA ฟรีที่ใช้กันทั่วไปสำหรับระบบปฏิบัติการ Linux
ประโยชน์
คลัสเตอร์ได้รับการออกแบบโดยคำนึงถึงประสิทธิภาพเป็นหลัก แต่การติดตั้งนั้นขึ้นอยู่กับปัจจัยอื่นๆ อีกมากมาย ความทนทานต่อความผิดพลาด ( ความสามารถของระบบในการทำงานต่อไปได้แม้จะมีโหนดทำงานผิดปกติ ) ช่วยให้สามารถขยายขนาดได้และในสถานการณ์ที่มีประสิทธิภาพสูง จะช่วยให้มีการบำรุงรักษาน้อยลง การรวมทรัพยากร (เช่นRAID ) และการจัดการแบบรวมศูนย์ ข้อดี ได้แก่ การกู้คืนข้อมูลในกรณีที่เกิดภัยพิบัติ และการประมวลผลข้อมูลแบบขนานและความสามารถในการประมวลผลสูง[ 16 ] [ 17 ]
ในแง่ของความสามารถในการขยายขนาด คลัสเตอร์คอมพิวเตอร์ให้ประโยชน์ในด้านนี้ด้วยความสามารถในการเพิ่มโหนดในแนวนอน ซึ่งหมายความว่าสามารถเพิ่มคอมพิวเตอร์เข้าไปในคลัสเตอร์ได้มากขึ้น เพื่อปรับปรุงประสิทธิภาพ ความซ้ำซ้อน และความทนทานต่อความผิดพลาด นี่อาจเป็นวิธีแก้ปัญหาที่ประหยัดกว่าสำหรับคลัสเตอร์ที่มีประสิทธิภาพสูงกว่า เมื่อเทียบกับการขยายขนาดโหนดเดียวในคลัสเตอร์ คุณสมบัตินี้ของคลัสเตอร์คอมพิวเตอร์ช่วยให้สามารถประมวลผลภาระการคำนวณขนาดใหญ่ได้โดยใช้คอมพิวเตอร์ที่มีประสิทธิภาพต่ำกว่าจำนวนมากขึ้น
เมื่อเพิ่มโหนดใหม่เข้าไปในคลัสเตอร์ ความน่าเชื่อถือจะเพิ่มขึ้น เนื่องจากไม่จำเป็นต้องปิดคลัสเตอร์ทั้งหมด โหนดเดียวสามารถปิดเพื่อบำรุงรักษาได้ ในขณะที่ส่วนที่เหลือของคลัสเตอร์จะรับภาระงานของโหนดนั้นแทน
หากมีการรวมคอมพิวเตอร์จำนวนมากไว้ด้วยกัน การใช้ระบบไฟล์แบบกระจายและRAID จะเหมาะสมอย่างยิ่ง ซึ่งทั้งสองอย่างนี้สามารถเพิ่มความน่าเชื่อถือและความเร็วของคลัสเตอร์ได้
การออกแบบและการกำหนดค่า

หนึ่งในประเด็นสำคัญของการออกแบบคลัสเตอร์คือ ความแน่นแฟ้นของการเชื่อมต่อระหว่างโหนดแต่ละตัว ตัวอย่างเช่น งานประมวลผลคอมพิวเตอร์งานเดียวอาจต้องการการสื่อสารระหว่างโหนดบ่อยครั้ง ซึ่งหมายความว่าคลัสเตอร์ต้องใช้เครือข่ายเฉพาะร่วมกัน มีที่ตั้งหนาแน่น และอาจมีโหนดที่เป็นประเภทเดียวกัน ในทางตรงกันข้าม งานประมวลผลคอมพิวเตอร์งานหนึ่งอาจใช้โหนดเพียงหนึ่งหรือสองโหนด และต้องการการสื่อสารระหว่างโหนดน้อยมากหรือไม่มีเลย ซึ่งใกล้เคียงกับ การ ประมวล ผลแบบกริด
ในคลัสเตอร์ Beowulfโปรแกรมแอปพลิเคชันจะไม่เห็นโหนดการคำนวณ (หรือเรียกว่าคอมพิวเตอร์ลูกข่าย) แต่จะโต้ตอบกับ "มาสเตอร์" ซึ่งเป็นคอมพิวเตอร์เฉพาะที่ทำหน้าที่จัดตารางเวลาและจัดการลูกข่าย[ 15 ]ในการใช้งานทั่วไป มาสเตอร์จะมีอินเทอร์เฟซเครือข่ายสองตัว ตัวหนึ่งสื่อสารกับเครือข่าย Beowulf ส่วนตัวสำหรับลูกข่าย อีกตัวหนึ่งสำหรับเครือข่ายอเนกประสงค์ขององค์กร[ 15 ] โดยทั่วไป แล้วคอมพิวเตอร์ลูกข่ายจะมีระบบปฏิบัติการเวอร์ชันเดียวกัน หน่วยความจำภายใน และพื้นที่ดิสก์ อย่างไรก็ตาม เครือข่ายลูกข่ายส่วนตัวอาจมีเซิร์ฟเวอร์ไฟล์ขนาดใหญ่และใช้ร่วมกันซึ่งจัดเก็บข้อมูลถาวรทั่วโลก ซึ่งลูกข่ายสามารถเข้าถึงได้ตามต้องการ[ 15 ]
คลัสเตอร์ DEGIMA 144 โหนดที่มีวัตถุประสงค์พิเศษได้รับการปรับแต่งเพื่อดำเนินการจำลอง N-body ทางฟิสิกส์ดาราศาสตร์โดยใช้รหัสต้นไม้ขนาน Multiple-Walk แทนที่จะเป็นการคำนวณทางวิทยาศาสตร์ทั่วไป[ 18 ]
เนื่องจากพลังการประมวลผลที่เพิ่มขึ้นของเครื่องเล่นเกม แต่ละรุ่น ทำให้เกิดการใช้งานรูปแบบใหม่ขึ้น โดยการนำเครื่องเล่นเกมเหล่านั้นมาใช้เป็น คลัสเตอร์ การประมวลผลประสิทธิภาพสูง (HPC) ตัวอย่างของคลัสเตอร์เครื่องเล่นเกม ได้แก่คลัสเตอร์ Sony PlayStationและ คลัสเตอร์ Microsoft Xboxอีกตัวอย่างหนึ่งของผลิตภัณฑ์เกมสำหรับผู้บริโภคคือ เวิร์กสเตชัน ซูเปอร์คอมพิวเตอร์ส่วนบุคคล Nvidia Teslaซึ่งใช้ชิปประมวลผลเร่งกราฟิกหลายตัว นอกจากเครื่องเล่นเกมแล้ว การ์ดกราฟิกระดับสูงก็สามารถนำมาใช้แทนได้เช่นกัน การใช้การ์ดกราฟิก (หรือ GPU) ในการคำนวณสำหรับการประมวลผลแบบกริดนั้นประหยัดกว่าการใช้ CPU มาก แม้ว่าจะมีความแม่นยำน้อยกว่าก็ตาม อย่างไรก็ตาม เมื่อใช้ค่าความแม่นยำสองเท่า ความแม่นยำในการทำงานก็จะเท่ากับ CPU และยังมีต้นทุนที่ต่ำกว่ามาก (ต้นทุนการซื้อ) [ 2 ]
โดยทั่วไปแล้วคลัสเตอร์คอมพิวเตอร์จะทำงานบนคอมพิวเตอร์ ทางกายภาพที่แยกจากกันโดยใช้ ระบบปฏิบัติการเดียวกันแต่ด้วยการมาถึงของเวอร์ชวลไลเซชัน โหนดคลัสเตอร์อาจทำงานบนคอมพิวเตอร์ทางกายภาพที่แยกจากกันโดยใช้ระบบปฏิบัติการที่แตกต่างกัน ซึ่งจะถูกซ้อนทับด้วยเลเยอร์เสมือนเพื่อให้ดูคล้ายกัน[ 19 ] คลัสเตอร์ยังสามารถสร้างเวอร์ชวลไลเซชันได้ในรูปแบบต่างๆ เมื่อมีการบำรุงรักษา ตัวอย่างการใช้งานคือXenเป็นตัวจัดการเวอร์ชวลไลเซชันร่วมกับLinux-HA [ 19 ]
การแบ่งปันข้อมูลและการสื่อสาร
การแบ่งปันข้อมูล

ในขณะที่คลัสเตอร์คอมพิวเตอร์เริ่มปรากฏขึ้นในช่วงทศวรรษ 1980 ซูเปอร์คอมพิวเตอร์ ก็เริ่มปรากฏขึ้น เช่นกัน หนึ่งในองค์ประกอบที่แตกต่างกันระหว่างคอมพิวเตอร์ทั้งสามประเภทในเวลานั้นคือ ซูเปอร์คอมพิวเตอร์รุ่นแรกๆ อาศัยหน่วยความจำร่วม (shared memory ) คลัสเตอร์คอมพิวเตอร์โดยทั่วไปไม่ได้ใช้หน่วยความจำร่วมทางกายภาพ ในขณะที่สถาปัตยกรรมซูเปอร์คอมพิวเตอร์หลายๆ แบบก็เลิกใช้หน่วยความจำร่วมทางกายภาพไปแล้วเช่นกัน
อย่างไรก็ตาม การใช้ระบบไฟล์แบบคลัสเตอร์นั้นมีความสำคัญอย่างยิ่งในคลัสเตอร์คอมพิวเตอร์สมัยใหม่ ตัวอย่างเช่นระบบไฟล์แบบขนานทั่วไปของ IBM (GenU General Parallel File System) , ระบบไดรฟ์ข้อมูลแบบคลัสเตอร์ที่ใช้ร่วมกันของ Microsoft (Microsoft Cluster Shared Volumes)หรือระบบไฟล์แบบคลัสเตอร์ของ Oracle (Oracle Cluster File System )
การส่งข้อความและการสื่อสาร
สองแนวทางที่ใช้กันอย่างแพร่หลายสำหรับการสื่อสารระหว่างโหนดคลัสเตอร์คือ MPI ( Message Passing Interface ) และ PVM ( Parallel Virtual Machine ) [ 20 ]
PVM ได้รับการพัฒนาที่ห้องปฏิบัติการแห่งชาติโอ๊คริดจ์ราวปี 1989 ก่อนที่ MPI จะพร้อมใช้งาน PVM ต้องติดตั้งโดยตรงบนโหนดคลัสเตอร์ทุกโหนดและมีชุดไลบรารีซอฟต์แวร์ที่วาดภาพโหนดเป็น "เครื่องเสมือนแบบขนาน" PVM มีสภาพแวดล้อมรันไทม์สำหรับการส่งข้อความ การจัดการงานและทรัพยากร และการแจ้งเตือนข้อผิดพลาด PVM สามารถใช้งานได้โดยโปรแกรมผู้ใช้ที่เขียนด้วยภาษา C, C++ หรือ Fortran เป็นต้น[ 20 ] [ 21 ]
MPI เกิดขึ้นในช่วงต้นทศวรรษ 1990 จากการอภิปรายระหว่างองค์กรกว่า 40 แห่ง ความพยายามเริ่มต้นได้รับการสนับสนุนจากARPAและNational Science Foundationแทนที่จะเริ่มต้นใหม่ทั้งหมด การออกแบบ MPI ได้ดึงเอาคุณสมบัติต่างๆ ที่มีอยู่ในระบบเชิงพาณิชย์ในขณะนั้นมาใช้ ข้อกำหนดของ MPI จึงก่อให้เกิดการใช้งานเฉพาะต่างๆ การใช้งาน MPI โดยทั่วไปจะใช้TCP/IPและการเชื่อมต่อซ็อกเก็ต[ 20 ]ปัจจุบัน MPI เป็นแบบจำลองการสื่อสารที่แพร่หลายซึ่งช่วยให้สามารถเขียนโปรแกรมแบบขนานได้ในภาษาต่างๆ เช่นC , Fortran , Pythonเป็นต้น[ 21 ]ดังนั้น ต่างจาก PVM ซึ่งให้การใช้งานที่เป็นรูปธรรม MPI จึงเป็นข้อกำหนดที่ได้รับการนำไปใช้ในระบบต่างๆ เช่นMPICHและOpen MPI [ 21 ] [ 22 ]
การจัดการคลัสเตอร์

หนึ่งในความท้าทายในการใช้คลัสเตอร์คอมพิวเตอร์คือต้นทุนในการบริหารจัดการ ซึ่งบางครั้งอาจสูงถึงต้นทุนในการบริหารจัดการเครื่องอิสระจำนวน N เครื่อง หากคลัสเตอร์มีโหนด N โหนด[ 23 ] ในบางกรณี สิ่งนี้ทำให้ สถาปัตยกรรมหน่วยความจำร่วมมีข้อได้เปรียบในด้านต้นทุนการบริหารจัดการที่ต่ำกว่า[ 23 ]นอกจากนี้ยังทำให้เครื่องเสมือนเป็นที่นิยม เนื่องจากง่ายต่อการบริหารจัดการ[ 23 ]
การจัดตารางงาน
เมื่อคลัสเตอร์ผู้ใช้หลายคนขนาดใหญ่จำเป็นต้องเข้าถึงข้อมูลจำนวนมากการจัดตารางงานจึงกลายเป็นความท้าทาย ในคลัสเตอร์ CPU-GPU ที่หลากหลายซึ่งมีสภาพแวดล้อมแอปพลิเคชันที่ซับซ้อน ประสิทธิภาพของแต่ละงานขึ้นอยู่กับลักษณะเฉพาะของคลัสเตอร์พื้นฐาน ดังนั้น การแมปงานไปยังคอร์ CPU และอุปกรณ์ GPU จึงก่อให้เกิดความท้าทายอย่างมาก[ 24 ] นี่เป็นพื้นที่ของการวิจัยที่กำลังดำเนินอยู่ มีการเสนอและศึกษาอัลกอริธึมที่รวมและขยายMapReduceและHadoop [ 24 ]
การจัดการความล้มเหลวของโหนด
เมื่อโหนดในคลัสเตอร์ล้มเหลว อาจใช้กลยุทธ์ต่างๆ เช่น " การกั้นรั้ว " เพื่อรักษาระบบส่วนที่เหลือให้ทำงานต่อไปได้ [ 25 ] [ 26 ]การกั้นรั้วคือกระบวนการแยกโหนดหรือปกป้องทรัพยากรที่ใช้ร่วมกันเมื่อโหนดดูเหมือนจะทำงานผิดปกติ มีวิธีการป้องกันสองประเภท ประเภทหนึ่งคือการปิดใช้งานโหนดนั้นเอง และอีกประเภทหนึ่งคือการไม่อนุญาตให้เข้าถึงทรัพยากร เช่น ดิสก์ที่ใช้ร่วมกัน[ 25 ]
วิธี การ STONITHย่อมาจาก "Shoot The Other Node In The Head" ซึ่งหมายความว่าโหนดที่ต้องสงสัยจะถูกปิดใช้งานหรือปิดการทำงาน ตัวอย่างเช่นการกั้นพลังงานจะใช้ตัวควบคุมพลังงานเพื่อปิดโหนดที่ไม่สามารถใช้งานได้[ 25 ]
วิธีการจำกัดการเข้าถึงทรัพยากรจะป้องกันไม่ให้เข้าถึงทรัพยากรโดยไม่ปิดเครื่องโหนดก่อน ซึ่งอาจรวมถึงการจำกัดการเข้าถึงแบบถาวรผ่านทางSCSI3การจำกัดการเข้าถึงผ่าน Fibre Channel เพื่อปิดใช้ งานพอร์ต Fibre Channelหรือ การจำกัดการเข้าถึง ผ่าน Global Network Block Device (GNBD) เพื่อปิดใช้งานการเข้าถึงเซิร์ฟเวอร์ GNBD
การพัฒนาและการบริหารจัดการซอฟต์แวร์
การเขียนโปรแกรมแบบขนาน
คลัสเตอร์การกระจายโหลด เช่น เว็บเซิร์ฟเวอร์ ใช้สถาปัตยกรรมคลัสเตอร์เพื่อรองรับผู้ใช้จำนวนมาก และโดยทั่วไปคำขอของผู้ใช้แต่ละรายจะถูกส่งไปยังโหนดเฉพาะ ทำให้เกิดการทำงานแบบขนานโดยไม่ต้องอาศัยความร่วมมือระหว่างหลายโหนด เนื่องจากเป้าหมายหลักของระบบคือการให้ผู้ใช้เข้าถึงข้อมูลที่ใช้ร่วมกันได้อย่างรวดเร็ว อย่างไรก็ตาม "คลัสเตอร์คอมพิวเตอร์" ที่ทำการคำนวณที่ซับซ้อนสำหรับผู้ใช้จำนวนน้อย จำเป็นต้องใช้ประโยชน์จากความสามารถในการประมวลผลแบบขนานของคลัสเตอร์และแบ่ง "การคำนวณเดียวกัน" ออกเป็นหลายโหนด[ 27 ]
การทำให้โปรแกรม ทำงานแบบขนานโดยอัตโนมัติยังคงเป็นความท้าทายทางเทคนิค แต่สามารถใช้แบบจำลองการเขียนโปรแกรมแบบขนาน เพื่อทำให้เกิด การทำงานแบบขนานในระดับ ที่สูงขึ้น ผ่านการดำเนินการพร้อมกันของส่วนต่างๆ ของโปรแกรมบนโปรเซสเซอร์ที่แตกต่างกัน[ 27 ] [ 28 ]
การดีบักและการตรวจสอบ
การพัฒนาและแก้ไขข้อบกพร่องของโปรแกรมแบบขนานบนคลัสเตอร์ต้องใช้ภาษาพื้นฐานแบบขนานและเครื่องมือที่เหมาะสม เช่น เครื่องมือที่กล่าวถึงโดยHigh Performance Debugging Forum (HPDF) ซึ่งส่งผลให้เกิดข้อกำหนด HPD [ 21 ] [ 29 ] จากนั้นจึงมีการพัฒนา เครื่องมือเช่นTotalViewเพื่อแก้ไขข้อบกพร่องของการใช้งานแบบขนานบนคลัสเตอร์คอมพิวเตอร์ที่ใช้Message Passing Interface (MPI) หรือParallel Virtual Machine (PVM) สำหรับการส่งข้อความ
ระบบ เครือข่ายเวิร์กสเตชัน (NOW) ของมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ รวบรวมข้อมูลคลัสเตอร์และจัดเก็บไว้ในฐานข้อมูล ในขณะที่ระบบเช่น PARMON ซึ่งพัฒนาในอินเดีย ช่วยให้สามารถสังเกตและจัดการคลัสเตอร์ขนาดใหญ่ได้ด้วยภาพ[ 21 ]
การตรวจสอบสถานะแอปพลิเคชันสามารถใช้เพื่อกู้คืนสถานะที่กำหนดของระบบเมื่อโหนดล้มเหลวระหว่างการคำนวณหลายโหนดเป็นเวลานาน[ 30 ]สิ่งนี้จำเป็นในคลัสเตอร์ขนาดใหญ่ เนื่องจากเมื่อจำนวนโหนดเพิ่มขึ้น ความน่าจะเป็นที่โหนดจะล้มเหลวภายใต้ภาระการคำนวณที่หนักหน่วงก็จะเพิ่มขึ้นเช่นกัน การตรวจสอบสถานะสามารถกู้คืนระบบให้อยู่ในสถานะที่เสถียรเพื่อให้การประมวลผลสามารถดำเนินต่อได้โดยไม่ต้องคำนวณผลลัพธ์ใหม่[ 30 ]
การนำไปใช้
โลกของลินุ กซ์รองรับซอฟต์แวร์คลัสเตอร์หลากหลายชนิด สำหรับการจัดกลุ่มแอปพลิเคชัน มีdistccและMPICH Linux Virtual Server , Linux-HAเป็นคลัสเตอร์แบบ director ที่ช่วยให้สามารถกระจายคำขอใช้บริการไปยังโหนดคลัสเตอร์หลายโหนดได้MOSIX , LinuxPMI , Kerrighed , OpenSSIเป็นคลัสเตอร์แบบเต็มรูปแบบที่ผสานรวมเข้ากับเคอร์เนลซึ่งช่วยให้สามารถย้ายกระบวนการทำงานโดยอัตโนมัติระหว่างโหนดประเภทเดียวกันได้OpenSSI , openMosixและKerrighedเป็นการใช้งาน อิมเมจระบบเดียว
Microsoft Windows Computer Cluster Server 2003 ซึ่งใช้ แพลตฟอร์ม Windows Serverมีส่วนประกอบสำหรับการประมวลผลประสิทธิภาพสูง เช่น ตัวกำหนดตารางงาน ไลบรารี MSMPI และเครื่องมือการจัดการ
gLiteคือชุดเทคโนโลยีมิดเดิลแวร์ที่สร้างขึ้นโดย โครงการ Enabling Grids for E-sciencE (EGEE)
นอกจากนี้ slurmยังใช้ในการกำหนดตารางเวลาและจัดการคลัสเตอร์ซูเปอร์คอมพิวเตอร์ขนาดใหญ่ที่สุดบางส่วน (ดูรายชื่อ top500)
แนวทางอื่นๆ
แม้ว่าคลัสเตอร์คอมพิวเตอร์ส่วนใหญ่จะเป็นระบบถาวร แต่ก็มีความพยายามที่จะสร้างคลัสเตอร์ที่มีอายุสั้นสำหรับการคำนวณเฉพาะเจาะจงโดยใช้แนวคิดการประมวลผลแบบแฟลชม็อบ อย่างไรก็ตาม ระบบ การประมวลผลแบบอาสาสมัคร ขนาดใหญ่ เช่น ระบบที่ใช้ BOINC เป็นพื้นฐาน กลับ ได้รับความนิยมมากกว่า
ดูเพิ่มเติม
แนวคิดพื้นฐาน การประมวลผลแบบกระจาย | ระบบเฉพาะ ฟาร์มคอมพิวเตอร์ |
อ่านเพิ่มเติม
- Baker, Mark และคณะ (11 มกราคม 2544). "เอกสารไวท์เปเปอร์เกี่ยวกับการประมวลผลแบบคลัสเตอร์". arXiv : cs/0004014 .
- Marcus, Evan; Stern, Hal (14 กุมภาพันธ์ 2543). แผนผังสำหรับระบบที่มีความพร้อมใช้งานสูง: การออกแบบระบบกระจายที่ยืดหยุ่น . John Wiley & Sons. ISBN 978-0-471-35601-1.
- Pfister, Greg (1998). ในการค้นหาคลัสเตอร์ . Prentice Hall. ISBN 978-0-13-899709-0.
- Buyya, Rajkumar, บรรณาธิการ (1999). การประมวลผลคลัสเตอร์ประสิทธิภาพสูง: สถาปัตยกรรมและระบบเล่ม 1. นิวเจอร์ซีย์ สหรัฐอเมริกา: Prentice Hall. ISBN 978-0-13-013784-5.
- Buyya, Rajkumar, บรรณาธิการ (1999). การประมวลผลคลัสเตอร์ประสิทธิภาพสูง: สถาปัตยกรรมและระบบเล่ม 2. นิวเจอร์ซีย์ สหรัฐอเมริกา: Prentice Hall. ISBN 978-0-13-013785-2.
ลิงก์ภายนอก
- คณะกรรมการทางเทคนิคด้านการประมวลผลแบบปรับขนาดได้ของ IEEE (TCSC)
- เทคโนโลยีคลัสเตอร์ที่ปรับขนาดได้อย่างน่าเชื่อถือ, IBM
- วิกิระบบอัตโนมัติของ Tivoli
- การจัดการคลัสเตอร์ขนาดใหญ่ที่ Google กับ Borgเมษายน 2558 โดย Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune และ John Wilkes
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ กลุ่มคอมพิวเตอร์
คลัสเตอร์ คอมพิวเตอร์ คือกลุ่มของ คอมพิวเตอร์ ที่ทำงานร่วมกันจนสามารถมองได้ว่าเป็นระบบเดียว แตกต่างจาก คอมพิวเตอร์แบบกริด คลัสเตอร์คอมพิวเตอร์แต่ละ โหนด จะ...
แนวคิดพื้นฐาน
ความต้องการที่จะได้พลังการประมวลผลที่มากขึ้นและความน่าเชื่อถือที่ดีขึ้นโดยการนำคอมพิวเตอร์ เชิงพาณิชย์ ราคาประหยัดจำนวนมากมาผสานรวมกันทำให้เกิดสถาปัตยกรรมและการกำหนดค่าที่หลากหลาย
ประวัติศาสตร์
เกร็ก ฟิสเตอร์ได้กล่าวว่าคลัสเตอร์ไม่ได้ถูกคิดค้นโดยผู้จำหน่ายรายใดรายหนึ่งโดยเฉพาะ แต่โดยลูกค้าที่ไม่สามารถทำงานทั้งหมดบนคอมพิวเตอร์เครื่องเดียวได้ หรือต้องการระบบสำรองข้อมูล [ 10 ] ฟิสเตอร์คาดการณ์ว่าน่าจะเป็นช่วงทศวรรษ 1960...
คุณลักษณะของกลุ่มคลัสเตอร์
กลุ่มคอมพิวเตอร์สามารถกำหนดค่าเพื่อวัตถุประสงค์ที่แตกต่างกันได้ ตั้งแต่ความต้องการทางธุรกิจทั่วไป เช่น การสนับสนุนบริการเว็บ ไปจนถึงการคำนวณทางวิทยาศาสตร์ที่ต้องใช้การประมวลผลสูง ในทั้งสองกรณี กลุ่มคอมพิวเตอร์อาจใช้ วิธีการ ที่มีความพร้อมใช้งานสูง...