Cluster คือกลุ่มของคอมพิวเตอร์ที่ตั้งค่าให้ทำงานร่วมกัน เพื่อให้ได้ประสิทธิภาพในการทำงานสูงขึ้น ในทางกายภาพ Cluster จะประกอบด้วยคอมพิวเตอร์หลายเครื่อง ส่วนใหญ่แล้วมักจะอยู่ในพื้นที่เดียวกัน(ตู้ rack เดียวกัน, ห้องเดียวกัน) และเชื่อมต่อกันด้วย ethernet ความเร็วสูง สถาปัตยกรรมโดยทั่วไปของ ระบบคลัสเตอร์ จะประกอบด้วยเครื่อง Frontend ที่ทำหน้าที่เป็นส่วนติดต่อรับงานจากผู้ใช้ (User Manangement) จัดการงาน (Job Scheduler) และติดตามสถานะขเองเครื่องลูกในระบบ(Node Management) เพื่อให้การตั้งค่าและดูแลระบบเป็นไปอย่างมีประสิทธิภาพ จึงมีระบบปฏิบัติการณ์เฉพาะสำหรับระบบ Cluster เช่น ROCKS ซึ่งพัฒนาต่อจาก CentOS หรือ Windows Server 2008 HPC ซึ่งอยู่บนพื้นฐานของ Windows Server 2008
Cluster ทำอะไรได้บ้าง
ตัวอย่างแอพพลิเคชั่นของ Cluster
- HPC (High Performance Computing) Cluster - ในงานประมวลผลประสิทธิภาพสูงที่ต้องใช้เวลาในการคำนวณนาน Cluster สามารถเพิ่มประสิทธิภาพในการประมวลผล สำหรับอัลกอรึทึมที่มีการทำงานแบบขนาน (Parallel Computing) โดยการแบ่งปัญหาออกเป็นชิ้นๆ แล้วนำปัญหาที่ได้จากการแบ่งไปคำนวณยังหน่วยประมวลผลหลายๆ ตัวในเวลาเดียวกัน เพื่อลดเวลาที่ต้องใช้แก้ปัญหาลงได้
- Render Farm - ในการสร้างภาพยนตร์ด้วยคอมพิวเตอร์กราฟฟิกนั้น จะต้องอาศัยพลังการคำนวณของคอมพิวเตอร์จำนวนมาก ในภาพยนตร์หนึ่งวินาทีประกอบด้วยภาพถึง 30 เฟรม อีกทั้งแต่ละภาพ ยังต้องอาศัยการเรนเดอร์ 3 มิติที่มีการคำนวณซับซ้อน ในการคำนวณ Algorithm ต่าง ๆ เช่น Radiosity, ray tracing, metropolis light transport, ambient occlusion, photon mapping, และ image based lighting เพื่อ ใช้สร้างภาพยนตร์ที่มีความสวยงามสมจริง ในตัวอย่างนี้เราสามารถใช้ Cluster ที่ประกอบด้วยคอมพิวเตอร์หลายเครื่อง แบ่งงานกันเรนเดอร์เพื่อลดเวลาที่ใช้ในการสร้างภาพยนตร์ลงได้ ช่วยให้นักออกแบบสามารถออกแบบภาพยนตร์ได้สวยงามตามจินตนาการ โดยไม่ต้องกังวลถึงข้อจำกัดทางด้านประสิทธิภาพ
- Web Server Farm - สำหรับเว็บไซต์นั้น ความมั่นใจว่า เว็บไซต์สามารถเปิดได้ตลอดหรือไม่เป็นเรื่องสำคัญ เจ้าของเว็บไซต์ย่อมต้องการให้เว็บไซต์รองรับผู้ชมได้มากที่สุด และมี Down Time น้อยที่สุด ด้วยเทคโนโลยีคลัสเตอร์ เราสามารถสร้างระบบคงอยู่สูง (High Availability) ที่ให้คอมพิวเตอร์ในระบบมากกว่าหนึ่งเครื่อง เป็น Fail Safe ให้กันและกัน ทำให้สามารถสร้างเว็บเซิร์ฟเวอร์ที่มีควาความคงอยู่สูงและรองรับผู้เข้าชม ได้มากขึ้นด้วย
Grid คืออะไร ต่างจาก cluster อย่างไร
Grid คือเทคโนโลยีที่มุ่งเน้นในการรวบรวมทรัพยากรระบบคอมพิวเตอร์ในเครือข่ายขนาด ใหญ่ ให้มาใช้งานร่วมกันได้ ผู้ใช้จะมองเห็นเสมือนหนึ่งว่าเป็นระบบเดียวหรือระบบเสมือน (Virtual Organization)
ความต่างของ Cluster กับ Grid ในเชิงกายภาพคือ เน็ตเวิร์กที่ใช้เชื่อมต่อซึ่งโดยปกติแล้วภายใน Cluster มักจะเชื่อมต่อกันด้วย ethernet ความเร็วสูงภายใน ต่างจากระบบกริด ที่สามารถกระจายกันอยู่ได้ และเชื่อมต่อกันอย่างหลวม ๆ โดยมีลักษณะในการจัดการที่ต่างกัน
HPC คืออะไร ใช้ทำอะไรบ้าง
HPC ย่อมาจาก High Performance Computing บางครั้งเรียกว่า High Productivity Computing มัก ใช้กล่าวถึงในงานคำนวณของแอพลิเคชั่นที่มีความซับซ้อน เช่น การพยากรณ์อากาศ แบบจำลองทางกลศาสตร์ ชีวสารสนเทศ การจำลองสถานการณ์แบบสุ่ม หรือการเรนเดอร์ภาพยนตร์แอนนิเมชั่น งานเหล่านี้ต้องใช้อัลกอรึทึมที่อาศัยพลังการประมวลผลมาก จนเครื่องคอมพิวเตอร์ธรรมดาไม่สามารถประมวลผลได้ หรือใช้เวลานานเกินกว่าจะยอมรับได้ จึงส่งผลให้เกิดแนวคิดที่จะเพิ่มประสิทธิภาพของงานเหล่านี้ ด้วยการสร้างระบบคอมพิวเตอร์ประสิทธิภาพสูง
ในยุคแรกนั้น มีการสร้างระบบ Supercomputer สำหรับงานเฉพาะทางเหล่านี้ ซึ่งมักมีสถาปัตยกรรมของหน่วยประมวลผลที่ออกแบบมาเฉพาะทาง จึงมักมีข้อจำกัดในเรื่องของงานที่สนับสนุนที่ใใช้ในวงแคบเท่านั้น อีกทั้งยังมีระบบยังมีราคาสูงด้วย ปัจจุบันมีทางเลือกของระบบ HPC มากขึ้น หนึ่งในนั้นคือ การสร้างระบบประมวลผลประสิทธิภาพสูงจากคอมพิวเตอร์ธรรมดาหลายๆ เครื่องมาเชื่อมต่อกันหรือที่เรียกว่า Cluster ซึ่งเป็นทางเลือกที่ดีสำหรับงานประมวลผลประสิทธิภาพสูงในราคาที่สมเหตุสมผล
HA (High Availability) คืออะไร
High Availability คือระบบที่ออกแบบมาเพื่อให้มีความคงอยู่สูง โดยมีการสนับสนุนการทำงานแทนกันเมื่อระบบใดระบบหนึ่งผิดพลาด จะมีอีกระบบที่เตรียมพร้อมอยู่แล้วทำงานแทน
ในงานระบบข้อมูลที่ต้องการความมั่นคงสูง อย่างเช่น เว็บเซิร์ฟเวอร์ ฐานข้อมูลที่สำคัญมากๆ อย่างเช่น การเงินการธนาคาร หรือระบบสาธารณูปโภค หากเกิดความผิดพลาดจะเกิดผลกระทบที่เสียหายต่อผู้ใช้เป็นจำนวนมาก จึงมีความจำเป็นที่จะต้องเพิ่มความมั่นคงของระบบให้มากที่สุด โดยจะใช้หน่วย Uptime ซึ่งเป็นเปอร์เซ็นของเวลาที่ระบบให้บริการได้ อย่างเช่น 99.999% หมายถึงว่า ระบบนี้หยุดทำงานรวมไม่เกิน 5 นาทีต่อหนึ่งปี
เพื่อให้ระบบมี Uptime สูงสุด เราสามารถใช้เทคโนโลยีคลัสเตอร์ เพื่อเพิ่ม Uptime ของระบบได้ โดยการสร้างคลัสเตอร์ที่มีมากกว่าหนึ่งเครื่อง และตั้งค่าแบบ High Availability เพื่อคอมพิวเตอร์ในระบบทำงานแทนกัน ในกรณีที่เครื่องใดเครื่องหนึ่งผิดพลาดขึ้น ระบบโดยรวมจะยังคงทำงานได้ด้วยการทำงานของอีกเครื่อง
Virtualization คืออะไร
การจำลองเครื่องเสมือนด้วยซอฟต์แวร์ ที่ทำให้คอมพิวเตอร์หนึ่งเครื่อง สามารถทำงานเป็นเครื่องเสมือนหลายๆ ระบบได้ โดยแต่ละรบบมีทรัพยากรหน่วยความจำ, ฮาร์ดดิสก์ และอุปกรณ์เน็ตเวิร์กเสมือนที่เป็นอิสระต่อกัน เครื่องเสมือนแต่ละเครื่องจึงสามารถมีระบบปฏิบัติการและซอฟต์แวร์เป็นของตน เองโดยอิสระ
Virtualization มีประโยชน์อะไรบ้าง
ประโยชน์ที่สำคัญของ Virtualization คือ การลดจำนวนเครื่องคอมพิวเตอร์ที่ต้องใช้เป็นเซิร์ฟเวอร์ได้ พิจารณา จากหลายๆ เซิร์ฟเวอร์ขององค์กร ที่ต้องใช้เครื่องคอมพิวเตอร์จริงหนึ่งเครื่องต่อหนึ่งเซอร์วิส ทั้งๆ ที่ ในความเป็นจริงนั้น เซิฟเวอร์แต่ละเครื่องยังไม่ได้ถูกใช้อย่างเต็มที่ ทำให้ต้องสูญเสียทรัพยากรคอมพิวเตอร์ขององค์กรในการจัดซื้อและดูแลรักษา อย่างเปล่าประโยชน์
Virtualization สามารถลดจำนวนเครื่องเซิร์ฟเวอร์ที่จะต้องใช้ได้ โดยการรวมศูนย์การทำงานของระบบ (Server Consolidation) ด้วยการติดตั้งเครื่องเซิร์ฟเวอร์แต่ละระบบขององค์กรด้วยเครื่องเสมือน (Virtual Machine) เครื่องหลักหนึ่งเครื่องจะสามารถบริการเครื่องเสมือนได้หลายเครื่อง เป็นการใช้ทรัพยากรระบบอย่างคุ้มค่า อีกทั้งยังอำนวยความสะดวกในการดูแลระบบทั้งด้วย
นอกจากนี้ Virtualization ยังสามารถประยุกต์ใช้ได้อีกหลายด้าน ยกตัวอย่างเช่น
- การทำ Migration เพื่อย้ายการทำงานของเครื่องเซิร์ฟเวอร์ไปยังอีกเครื่องได้อย่างรวดเร็ว ช่วยลด Downtime จากเวลาที่ใช้ในการติดตั้งใหม่ และแก้ปัญหาความไม่เข้ากันของฮาร์ดแวร์ได้
- ระบบ virtual desktop สำหรับพนักงานในองค์กร แทนที่เครื่องสำนักงานด้วย virtual machine อำนวยความสะดวกและปลอดภัยในการดูแลข้อมูลขององค์กร
- ทดสอบแอพพลิเคชั่น ในหลายๆ สภาพแวดล้อมการทำงาน โดยใช้ Virtual Machine เพื่อจำลองสภาพแวดล้อมงานต่าง ๆ ไม่ว่าจะเป็น Windows หรือ Linux
Cloud Computing หรือ ระบบการประมวลผลแบบกลุ่มเมฆ คือ แนวทางการประมวลผลที่พลังของโครงสร้างทางไอทีขนาดใหญ่ที่ขยายตัวได้ถูกนำ เสนอยังลูกค้าภายนอกจำนวนมหาศาลในรูปแบบของบริการ
cloud_computing_faqs
ระบบจะประกอบไปด้วยกลุ่มเมฆของเซอร์ฟเวอร์ (cloud server) ซึ่งเป็นเซอร์ฟเวอร์จำนวนมหาศาลนับหมื่นเครื่องที่ตั้งอยู่ในที่เดียวกัน กลุ่มเมฆนี้ต่อเชื่อมเข้าหากันด้วยเครือข่ายเป็นระบบกริด ในระบบนี้จะใช้ซอฟต์แวร์เวอร์ช่วลไลเซชั่นในการทำงานเพื่อให้โปรแกรม ประยุกต์ขึ้นกับระบบน้อยที่สุด สำหรับโครงสร้างของระบบจะมีส่วนติดต่อกับผู้ใช้ ( User interaction interface) ที่รับคำขอบริการจากผู้ใช้ในรูปแบบเวบ ในมุมมองของผู้ใช้ระบบประมวลผลแบบกลุ่มเมฆจะหายไปเหลือเพียงบริการหรือ เซอร์วิสเท่านั้น ซึ่งโมเดลหลักตอนนี้จะมีสองแนวทางด้วยกัน โมเดลแรก คือ SaaS (Software As A Services) ซึ่งบริการทุกอย่างรวมถึง User Interface ทำจากระบบประมวลผลแบบกลุ่มเมฆหมด ตัวอย่างเช่น กูเกิ้ลsearch, กูเกิ้ลapp เป็นต้น ข้อดีคือ ผู้ใช้สามารถใช้ระบบโดยไม่ต้องลงซอฟต์แวร์ใดๆ นอกจากเวบบราวเซอร์ และยังง่ายต่อการพัฒนาใน Mobile Device แต่อาจต้องการเครือข่ายที่เร็วและเสถียร ส่วนอีกโมเดลหนึ่ง คือ Software+Services ของไมโครซอฟต์ซึ่งต้องลงซอฟต์แวร์บนเครื่องของผู้ใช้ แต่การประมวลผลขนาดใหญ่หรือขีดความสามารถเพิ่มเติมจะทำจาก กลุ่มเมฆแทน ข้อดีคือ การทำงานจะตอบสนองได้ดีกว่าและสามารถประมวลผลเองได้บางส่วนโดยไม่ต้องมี เครือข่าย อย่างไรก็ตามผู้ใช้ต้องบำรุงรักษาซอฟต์แวร์ที่ลงไว้ทำให้เกิดความซับซ้อน มากกว่าในส่วนนี้
Thanks : inox.co.th