วันพฤหัสบดีที่ 10 ธันวาคม พ.ศ. 2552

Cluster Basics

cluster คือ computer สองเครื่องหรือมากกว่า (ต่อไปจะเรียกว่า nodes หรือ members ) ที่ทำงานร่วมกันเพื่อดำเนินงาน มี 4 ประเภท
• Storage
• High availability
• Load balancing
• High performance

storage clusters จัดการ ระบบไฟล์ image ให้สอดคล้องกับ server ใน cluster เพื่อให้ระบบสามามารถอ่านเขียนไฟล์ได้จากระบบไฟล์อันเดี่ยวกัน
และช่วยลดความยุ่งยากในการบริหารจัดการ โดย จำกัดการติดต้ง และ patching ของ โปรแกรม ระบบ ไฟล์ ดังนั้น ระบบ cluster file system จึงไม่จำเป็นต้องทำการ
สำเนาไฟล์ซ้ำซ้อน และช่วยลด การสำรอง ข้อมูล และช่วยการกู้คือข้อมูลด้วย Red Hat Cluster Suite ได้จัดการระบบ storage ผ่านทาง Red Hat GFS

High-availability clusters จัดการให้มีการทำงานอย่างต่อเนื่อง ของ service โดยตัดการการให้บริการในส่วนของ nodes ที่ล้มเหลวออกและจัดการให้บริการ
ไปยัง nodes อื่นๆแทนที่ทำงานได้ปกติ High-availability clusters จะมีการ อ่าน เขียนข้อมูลที่ถูก mount มาใช้งาน ดังนั้น high-availability cluster
จึงต้องการการรักษาข้อมูลภายใน nodes โดย nodes กลุ่ม หนึ่งจะ ควบคุม การ บริการ จาก nodes คลัสเตอร์ อื่น หาก nodes ใดล้มแล้วจะไม่มีผลกระทบกับการทำงานโดยรวม
Red Hat Cluster Suite ได้จัดเตรียม high-availability clustering ผ่าน Service Management component.

Load-balancing clusters คือการจัดกลุ่มของคอมพิวเตอร์หลายๆตัวเพื่อแบ่งงานกัน หรือกระจาย load การใช้งานของ user ไปยังคอมพิวเตอร์ภายในกลุ่ม เพื่อให้สามารถรับจำนวน user
ที่เข้ามาใช้งานได้มากขึ้น หรือสามารถรับงานที่เข้ามาได้มากขึ้น นอกจากนั้นยังมีคุณสมบัติของ Fail Over คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทำงานได้ เช่น Down อยู่ หรือไม่สามารถรับงานหรือuserเพิ่มได้เนื่องจาก resource ที่ใช้ทำงานไม่พอ
ตัว Load Balancer ที่เป็นตัวแจก load ให้คอมพิวเตอร์ภายในกลุ่มก็จะส่ง load ไปยังคอมพิวเตอร์เครื่องอื่นๆแทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมาใช้งานได้ใหม่
Red Hat Cluster Suite ได้จัดเตรียม load-balancing ผ่าน LVS (Linux Virtual Server).

High-performance clusters ในงานประมวลผลประสิทธิภาพสูงที่ต้องใช้เวลาในการคำนวณนาน Cluster สามารถเพิ่มประสิทธิภาพในการประมวลผล สำหรับอัลกอรึทึมที่มีการทำงานแบบขนาน (Parallel Computing) โดยการแบ่งปัญหาออกเป็นชิ้นๆ แล้วนำปัญหาที่ได้จากการแบ่งไปคำนวณยังหน่วยประมวลผลหลายๆ ตัวในเวลาเดียวกัน เพื่อลดเวลาที่ต้องใช้แก้ปัญหาลงได้