Basic MySQL Cluster Concepts.

วันนี้ได้รับหมอบหมายให้ดู Concepts ของ MySQL Cluster ก็เลยถือโอกาสเอามาเล่าให้ฟัง สำหรับ Cluster ของ MySQL นั้นจะประกอบด้วยกันทั้งหมด 3 node โดย node ของ MySQL นั้นหมายถึงแต่ละส่วนที่มีหน้าที่การทำงานที่แตกต่างกัน ดังนี้


  1. Management node (MGM node):โดยตัวนี้จะทำหน้าที่จัดการ Node อื่นๆ เช่น จัดการด้านกาน Config , Start&Stop Node อื่นๆ , ทำการ backup&restore ข้อมูล ซึ่งแน่นอนว่า Node ตัวนี้ต้อง Run เป็นตัวแรกแน่นอน ซึ่งโปรเซสที่อยู่บนเครื่องนี้มีชื่อว่า ndb_mgmd
  2. Data node: เป็นส่วนที่เป็น Cluster ของข้อมูล โดยจะมี Node Data มากมายและทั้งหมดจะ Replicate ทั้งด้านเวลาและจำนวนของแต่ Fragment เช่น เรามีเครื่องที่ Replicate กัน 2 เครื่อง แต่ละอันมี 2 Fragment และเราต้องการ 4 Data Node เป็นต้น สำหรับชื่อโปรเซสของ Node นี้มีชื่อว่า ndbd
  3. SQL node:เป็น Node ที่ใช้ Access Node Data นั่นเอง โดย SQL Node ก็คือ MySQL Server ตัวเก่านั่นเองเพียงแต่ใช้ engine เป็น NDB Cluster โดย Node นี้ Connect โดยใช่้ Deamon ที่ชื่อว่า mysqld –ndbcluster หรือจะใช้ mysqld ร่วมกับ ndbcluster ก็ได้เพียงแต่ต้องเข้าไป Config ในไฟล์ my.cnf
    ** สำหรับ SQL node นั้นจะเป็น API Node ชนิดพิเศษเพราะออกแบบมาเพื่อให้ Client สามารถ Connect เข้ามาใช้งาน Data Cluster ได้ ตัวอย่างเช่น ndb_restore จะเป็น utility ที่ช่วยในการ Restore ข้อมูลที่เป็น Cluster

เหอะๆๆ แต่ใน Environment โดยทั่วไป SQL Node กะ Data Node เราสามารถเอามายัดลงไว้ที่เครื่องเดียวกันได้ครับผม นอกจากนี้ เจ้า MySQL Cluster ยังถูกออกแบบมาให้ มอง CPU, Memory และ Bandwidth เป็นอันเดียวกัน เวลาเราจะเพิ่ม Node ต่างๆก็จะทำอยู่บน File Config เพียงไฟล์เดียว (ยังไม่รู้ครับว่าไฟล์ไหน) โดยไฟล์นี้จะอยู่ที่ Node Management Server ซึ่งนอกจากจะเก็บไฟล์ Config แล้วไอ้ตัว Management นี้ยังมีหน้าที่เก็บ Log ต่างๆอีกด้วย เช่น เวลาที่ เครื่อง Data Node เครื่องใดเครื่องหนึ่งเกิดเจ้ง ขึ้นมามันก็จะส่ง Log ต่างๆ เข้ามาไว้ที่ เครื่่อง Server อิๆ..จบ

ที่มา : http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-overview.html

http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-basics.html