ผู้เขียน หัวข้อ: หลักสูตร : MySQL Cluster  (อ่าน 11479 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
หลักสูตร : MySQL Cluster
« เมื่อ: มกราคม 07, 2010, 20:10:17 PM »
0
รายละเอียดของหลักสูตร :
    เนื้อหาหลักสูตรจะกล่าวถึงทฤษฎีหลักการทำงานของระบบคลัสเตอร์ในรูปแบบต่าง ๆ ทฤษฎีและหลักการทำงานของซอฟต์แวร์ MySQL Cluster การออกแบบระบบเพื่อรองรับผู้ใช้งานจำนวนมาก เพื่อให้ระบบมีอัตราการล่ม (Downtime) ต่ำที่สุด การออกแบบด้านความปลอดภัยของงระบบ เป็นหลักสูตรที่เน้นการปฎิบัติใช้งานจริง โดยเนื้อหาครอบคลุมตั้งแต่กระบวนการออกแบบ การติดตั้ง ทฤษฎีกระจายภาระงาน (Load balancing) การสร้างระบบคงอยู่สูง (High Availability -HA) การปรับแต่งความปลอดภัยของระบบ และมีการปรับพื้นฐานทฤษฎีระบบเครือข่ายในส่วนที่เกี่ยวข้องกับ MySQL Cluster เช่น Mac Address, ARP Protocol, Public และ Private Network เป็นต้น
หลักสูตรนี้เหมาะสำหรับ :
    ผู้ดูแลระบบฐานข้อมูล ระบบเว็บ องค์กรที่ให้บริการโดยใช้งานระบบฐานข้อมูล MySQL และผู้ที่สนใจ   

ระยะเวลา : 18 ชั่วโมง

ค่าฝึกอบรม : 18,000 บาท

วัตถุประสงค์ :
1. เพื่อให้ผู้เข้าอบรมมีความรู้ความเข้าใจในหลักการออกแบบ MySQL Cluster
2. เพื่อให้ผู้เข้าอบรมทราบถึงความแตกต่างของวิธีการกระจายภาระงานในแบบต่าง ๆ
3. เพื่อให้ผู้เข้าอบรมสามารถนำไปประยุกต์ใช้งานได้จริง

ความรู้พื้นฐาน :
    ผู้เข้าอบรมต้องมีความรู้ความสามารถในการติดตั้ง Linux Server หรือผ่านหลักสูตร Linux Administration มาก่อน เคยติดตั้งและใช้งานซอฟต์แวร์ MySQL และควรมีความเข้าใจเรื่องระบบเครือข่ายพื้นฐาน

รูปแบบการสอน : บรรยายและปฏิบัติการ โดยใช้ชุดคอมพิวเตอร์จำนวน 6* เครื่อง ต่อ 1 ท่าน

ซอฟต์แวร์ที่ใช้สอน :
1. ซอฟต์แวร์ CentOS เวอร์ชั่น 5 ขึ้นไป
2. MySQL Cluster เวอร์ชั่น 7 ขึ้นไป

สิ่งที่ผู้เข้าอบรมจะได้รับ :
1. แผ่นดีวีดี CentOS จำนวน 3 แผ่น
2. เอกสารประกอบการฝึกอบรม จำนวน 1 เล่ม
3. ประกาศนียบัตรรับรองผ่านการฝึกอบรม
4. บัญชีผู้ใช้สำหรับเข้าสู่ระบบถามตอบของ CTC

เนื้อหาหลักสูตร :

ครั้งที่ 1

แนะนำเทคโนโลยีระบบคลัสเตอร์ (30 นาที)
รู้จักกับระบบคอมพิวเตอร์คลัสเตอร์
การประยุกต์ใช้งานระบบคลัสเตอร์ในด้านต่าง ๆ
รูปแบบต่าง ๆ ของการทำ Database แบบคลัสเตอร์
รูปแบบต่าง ๆ ของการใช้ Share Disk และ Share Storage
รู้จักกับ MySQL และ MySQL Cluster (15 นาที)
กล่าวสรุปเรื่องสำคัญของระบบจัดการฐานข้อมูล MySQL
รู้จักกับ Storage Engine
รู้จักกับ NDBCLUSTER Storage engine
แผนการพัฒนาระบบจัดการฐานข้อมูล MySQL
MySQL Cluster Concept (30 นาที)
จุดเด่นจุดด้อยของ MySQL Cluster
องค์ประกอบของMySQL Cluster
การทำงานของ MySQL Cluster
การทำงานในแบบ In-memory และ Disk-Bases Tables
Pre-Workshop  (60 นาที)

ปรับแต่งไฟล์เพื่อการใช้งานด้วยชื่อเครื่อง
การตั้งค่า SSH ให้ระบบคลัสเตอร์สามารถทำงานในแบบ Single Sign On ด้วยการใช้ Public key Infrastructure (PKI)
จัดการกับ iptables firewall สำหรับ MySQL Cluster
Workshop 1 : MySQL Cluster Software Installations (30 นาที)

ครั้งที่ 2

รู้จักกับคอนฟิกกูเรชั่นไฟล์ที่สำคัญ คือไฟล์ config.ini และไฟล์ my.cnf
Workshop 2 : สร้างระบบ MySQL Cluster แบบง่าย ๆ (1 client, 1 mgm, 2 ndb)
ทบทวนคำสั่งที่เกี่ยวข้องกับระบบ MySQL Cluster
ทดลองสร้างฐานข้อมูลและใช้งานระบบ
ทดลองความสามารถด้าน High Availability
การใช้งานคำสั่ง management client (ndb_mgm)
การทำงานร่วมกันระหว่าง PHP และ MySQL Cluster
Workshop 3 : ปรับแต่ง PHP ให้สามารถใช้งานร่วมกับ MySQL Cluster ได้
ครั้งที่ 3

การสร้างระบบแบบ No single point of failure บน MySQL Cluster (60 นาที)
Workshop 4 : MySQL Cluster with Dual MGM Nodes
สรุปคุณสมบัติด้าน High Availability
รู้จักกับDisk-bases Tables (115 นาที)
หลักการทำงานของ Tablespace & Log File Group
ข้อจำกัดของ Disk table data
การคำนวณขนาดพื้นที่ของ Tablespace
Workshop 5 : สร้างและใช้งาน table space and log file group
วิธีการจัดการกับข้อมูลขนาดใหญ่
วิธีปฏิบัติที่ดีและกรณีศึกษา

ครั้งที่ 4

การใช้งานคำสั่งสำคัญ ๆ ที่เกี่ยวข้อง (60 นาที)
Management Client tools
MySQL Cluster Utility Programs
เข้าใจการทำData Partitioning (60 นาที)
เข้าใจหลักการแบ่ง node group
workshop 6 : ทดลองทำData Partitioning บน MySQL Cluster
การเพิ่มโหนดแบบ online และการทำ rolling update
Designing Concept (45 นาที)
หลักการในการคำนวณพื้นที่จัดเก็บข้อมูล และ
การแบ่งพาร์ทิชั่นบนดิสก์สำหรับ MySQL Cluster
การกำหนดขนาดไฟล์สำหรับ Tablespace และ Undo Log File
ครั้งที่ 5
ความปลอดภัยใน MySQL Cluster
การออกแบบระบบเพื่อความปลอดภัย
การสำรอง (ฺBackup) และกู้คืนข้อมูล (Restore)
Workshop 7 : การใช้งานโปรแกรมสำรองข้อมูล NDB Backup
การปรับแต่งประสิทธิภาพของ MySQL Cluster
ทฤษฎีในการกระจายภาระงาน (Load Balancing) เบื้องต้น
การทำงานแบบ Multi-threading ในระบบ MySQL Cluster
เข้าใจการทำงานภายในระบบ MySQL Cluster
เทคนิคที่สำคัญในการปรับแต่งประสิทธิภาพของ MySQL Cluster
การจัดการกับระบบเครือข่าย
พารามิเตอร์และตัวแปรที่สำคัญของระบบ
Workshop 8 : Direct tcp crossover between data nodes

ครั้งที่ 6
การติดตั้งและใช้งานระบบ CMON web monitor สำหรับ MySQL Cluster
หลักการปฏิบัติที่ดีในการสร้างระบบจริง
การประเมินความเหมาะสม
การออกแบบ
การคำนวณพื้นที่ที่ต้องการ
การเลือกใช้ฮาร์ดแวร์ที่เหมาะสม
การวางแผนขั้นตอนการติดตั้ง
ระยะเวลาในการติดตั้งระบบ
แนะนำระบบ Web Cluster

สำรองที่นั่งได้ที่ :

ClusterKit Training Center (CTC)

โทรศัพท์และแฟกซ์ 0 2424 7603

http://www.clusterkit.co.th/training/subject_detail.php?id=09


« แก้ไขครั้งสุดท้าย: มกราคม 07, 2010, 20:21:42 PM โดย บอย(ด่านมะขามเตี้ย) »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
FF-Paperless(รพ.สค.)เริ่ม1ตค2555=100%
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
ServerMTOL8.5+MDB-10.4.20,SlaveOL8.5+MDB-10.7.3
LOG=PostgreSQL11,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Load-Balanced MySQL Cluster
« ตอบกลับ #1 เมื่อ: มกราคม 07, 2010, 20:16:35 PM »
0
Load-Balanced MySQL Cluster
  สืบเนื่องมาจากการทำ MySQL Cluster เสร็จแล้ว เราลองมาต่อยอดด้วยการทำ Load-Balance สำหรับ MySQL Cluster กันดู
ลักษณะการทำงานของ Load Balance
    คือการจัดกลุ่มของคอมพิวเตอร์หลายๆตัวเพื่อแบ่งงานกัน หรือกระจาย load การใช้งานของ user ไปยังคอมพิวเตอร์ภายในกลุ่ม เพื่อให้สามารถรับจำนวน user ที่เข้ามาใช้งานได้มากขึ้น หรือสามารถรับงานที่เข้ามาได้มากขึ้น นอกจากนั้นยังมีคุณสมบัติของ Fail Over คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทำงานได้ เช่น Down อยู่ หรือไม่สามารถรับงานหรือ user เพิ่มได้เนื่องจาก resource ที่ใช้ทำงานไม่พอ ตัว Load Balancer ที่เป็นตัวแจก load ให้คอมพิวเตอร์ภายในกลุ่มก็จะส่ง load ไปยังคอมพิวเตอร์เครื่องอื่นๆแทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมาใช้งานได้ใหม่

ตัว load balancer อาจเกิดปัญหา bottleneck  แล้วจะเกิดอะไรขึ้นถ้า load balancer fail ขึ้นมา ดังนั้นในที่นี้เราจะให้มี load balancer 2 ตัว โดย load balancer ทั้ง 2 ตัวจะมีตัวใดตัวหนึ่งมีสถานะเป็น active และตัวที่เหลือจะมีสถานะเป็น passive ซึ่งหมายความว่าจะมีหนึ่ง active load balancer และอีกตัวหนึ่งเป็น hot-standby load balancer โดยจะกลายเป็น active เมื่อตัวที่เป็น active fail
หมายเหตุ ขอปรับเปลี่ยน API node ให้เป็น Load Balancer ตัวที่2 แทน เนื่องจากในการทำ load balance ไม่จำเป็นที่จะต้องใช้ API node ซึ่งขั้นตอนการปรับเปลี่ยน API node เพื่อเตรียมเป็น Load Balancer 2 มีดังนี้
ขั้นตอนที่ 1 ทำการตรวจสอบสถานะของ cluster บน MySQL cluster management server / Load Balancer1 (sqlmang:192.168.0.4)  ดังนี้
sqlmang:192.168.0.4
ndb_mgmndb_mgm> show;
Cluster Configuration
———————
[ndbd(NDB)]     2 node(s)

id=2    @192.168.0.1  (Version: 5.0.38, Nodegroup: 0)
id=3    @192.168.0.2  (Version: 5.0.38, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.4  (Version: 5.0.38)

[mysqld(API)]   3 node(s)
id=4    @192.168.0.2  (Version: 5.0.38)
id=5    @192.168.0.1  (Version: 5.0.38)
id=6    @192.168.0.3  (Version: 5.0.38)

ขั้นตอนที่ 2 ลบ [MYSQLD] ออกจาก file /var/lib/mysql-cluster/config.ini บน MySQL cluster management server / Load Balancer1 (sqlmang:192.168.0.4)  ดังนี้
sqlmang:192.168.0.4
cd /var/lib/mysql-cluster
pico config.ini





ขั้นตอนที่ 3 แก้ไข file /etc/mysql/my.cnf บน sqlload:192.168.0.3 ดังนี้
sqlload:192.168.0.3
cd /etc/mysql
pico my.cnf

#ใส่เครื่องหมาย # หน้าบรรทัด ndbcluster และ ndb-connectstring=192.168.0.4
#ndbcluster
#ndb-connectstring=192.168.0.4
[MYSQL_CLUSTER]
#ndb-connectstring=192.168.0.4

ขั้นตอนที่ 4 restart service MySQL บน sqlload:192.168.0.3 ดังนี้
sqlload:192.168.0.3
/etc/init.d/mysql restart

ขั้นตอนที่ 5 restart cluster บน MySQL cluster management server / Load Balancer1
(sqlmang:192.168.0.4) ดังนี้
sqlmang:192.168.0.4
ndb_mgm
ndb_mgm> shutdown;
Node 2: Cluster shutdown initiated
Node 3: Cluster shutdown initiated
Node 2: Node shutdown completed.
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
ndb_mgm> quit;
ndb_mgmd -f /var/lib/mysql-cluster/config.ini

sqlnode1:192.168.0.1/sqlnode2:192.168.0.2
ndbd – initial

ขั้นตอนที่ 6 ตรวจสอบสถานะของ cluster บน MySQL cluster management server / Load Balancer1(sqlmang:192.168.0.4) อีกครั้ง ดังนี้
sqlmang:192.168.0.4
ndb_mgmndb_mgm> show;
Cluster Configuration
———————
[ndbd(NDB)]     2 node(s)
id=2    @192.168.0.1  (Version: 5.0.38, Nodegroup: 0, Master)
id=3    @192.168.0.2  (Version: 5.0.38, Nodegroup: 0)[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.4  (Version: 5.0.38) [mysqld(API)]   2 node(s)
id=4    @192.168.0.2  (Version: 5.0.38)
id=5    @192.168.0.1  (Version: 5.0.38) ndb_mgm> quit;
 
นอกจากนี้ Load balancer ทั้ง 2 จะใช้ heartbeat ในการตรวจสอบว่า load balancer อีกตัวยังทำงานได้ตามปกติหรือไม่ และ load balancer ทั้งคู่จะใช้ ldirectord เพื่อเป็นตัวแบ่งการทำงานออกไปยัง cluster node
เมื่อเรา install Ultra Monkey package ก็จะมีการ install ทั้ง heartbeat และ ldirectord ให้โดยอัตโนมัติ
 
สรุป การทำระบบ Load-Balanced MySQL Cluster ครั้งนี้จะใช้เครื่องทั้งหมด จำนวน 4 เครื่องดังนี้
เครื่องที่1 : เป็น storage node หรือ cluster node (sqlnode1:192.168.0.1)
เครื่องที่2 : เป็น storage node หรือ cluster node (sqlnode2:192.168.0.2)
เครื่องที่3 : เป็น Load Balancer 2 (sqlload:192.168.0.3)
เครื่องที่4 : เป็น MySQL cluster management server / Load Balancer1 (sqlmang:192.168.0.4)
และใช้  virtual IP address เป็น 192.168.0.5

Install Ultra Monkey
เริ่มต้นเราต้อง enable IPVS (IP Virtual Server) บน Load Balancer1(sqlmang:192.168.0.4) และ Load  Balancer2(sqlload:192.168.0.3) ดังนี้
sqlmang:192.168.0.4/ sqlload:192.168.0.3
modprobe ip_vs_dh
modprobe ip_vs_ftp
modprobe ip_vs
modprobe ip_vs_lblc
modprobe ip_vs_lblcr
modprobe ip_vs_lc
modprobe ip_vs_nq
modprobe ip_vs_rr
modprobe ip_vs_sed
modprobe ip_vs_sh
modprobe ip_vs_wlc
modprobe ip_vs_wrr

ในกรณีที่ต้องการให้มีการ load IPVS kernel modules ขณะที่มีการ boot เครื่อง ทำได้ดังนี้
pico /etc/modules



จากนั้นให้เพิ่ม Ultra Monkey respository ต่อท้ายของเดิมที่มีอยู่ ที่ /etc/apt/sources.list แล้ว install Ultra Monkey
sqlmang:192.168.0.4/ sqlload:192.168.0.3
pico  /etc/apt/sources.list



apt-get update
apt-get install ultramonkey libdbi-perl libdbd-mysql-perl libalps-heap1-dev
dev

เราต้อง install MySQL เพื่อให้สามารถใช้งาน DBD::mysql Perl ได้ (ถ้าเครื่องไหนได้ install mysql-server แล้ว ไม่ต้องทำขั้นตอนนี้ใหม่)
sqlmang:192.168.0.4/ sqlload:192.168.0.3
cd /tmp
sudo apt-get install mysql-server

จากนั้นเปิดให้มีการใช้งาน packet forwarding
sqlmang:192.168.0.4/ sqlload:192.168.0.3
pico /etc/sysctl.conf



sysctl - p
จะแสดงผล
kernel.printk = 4 4 1 7
net.ipv4.conf.default.forwarding = 1

Configure heartbeat
ในการ configure heartbeat เราจะต้องสร้าง file ขึ้นมา 3 file บน Load Balancer1(sqlmang:192.168.0.4) และ Load  Balancer2 (sqlload:192.168.0.3) ซึ่งได้แก่ file ha.cf  file haresources และfile authkeys ดังนี้
sqlmang:192.168.0.4/ sqlload:192.168.0.3
pico /etc/ha.d/ha.cf




คำสั่งสำหรับแสดงรายชื่อ node คือ uname –n

pico /etc/ha.d/haresources


ใน file นี้เราต้องใส่ชื่อ node ของ Load Balance1 และใส่ virtual IP address ซึ่งในที่นี้ใช้ 192.168.0.5 พร้อมทั้ง netmask (27) และ broadcast address (192.168.0.31) 

pico /etc/ha.d/authkeys



ซึ่ง  somerandomstring คือ password ที่จะใช้เชื่อมต่อระหว่าง heartbeat บน LoadBalance1(sqlmang:192.168.0.4) และ Load Balance2 (sqlload:192.168.0.3)

จากนั้นกำหนดสิทธิ์ให้ root เท่านั้นที่สามารถอ่าน file authkeys ได้
chmod 600 /etc/ha.d/authkeys

Configure ldirectord
เริ่มต้นสร้าง configuration file ldirectord.cf  สำหรับ  ldirectord บน Load Balancer1(sqlmang:192.168.0.4) และ Load  Balancer2(sqlload:192.168.0.3)
sqlmang:192.168.0.4/ sqlload:192.168.0.3

pico /etc/ha.d/ldirectord.cf



ซึ่งค่า login ค่า passwd ค่า database และค่า resquest  ที่เรากำหนดใน file ldirectord.cf  นี้ ขึ้นอยู่กับที่เราสร้างใน MySQL ซึ่งจะกล่าวถึงในหัวข้อ Create A Database Called ldirector 

จากนั้น create system startup link สำหรับ heartbeat และ remove system startup link ของ ldirectord ที่มีอยู่ออก(เพราะว่า ldirectord จะถูก start ด้วย heartbeat) ดังนี้
update-rc.d -f heartbeat remove

จะปรากฎข้อความ
 Removing any system startup links for /etc/init.d/heartbeat …
   /etc/rc0.d/K05heartbeat
   /etc/rc1.d/K05heartbeat
   /etc/rc2.d/S75heartbeat
   /etc/rc3.d/S75heartbeat
   /etc/rc4.d/S75heartbeat
   /etc/rc5.d/S75heartbeat
   /etc/rc6.d/K05heartbeat

update-rc.d heartbeat start 75 2 3 4 5 . stop 05 0 1 6 .
จะปรากฎข้อความ
Adding system startup for /etc/init.d/heartbeat …
   /etc/rc0.d/K05heartbeat -> ../init.d/heartbeat
   /etc/rc1.d/K05heartbeat -> ../init.d/heartbeat
   /etc/rc6.d/K05heartbeat -> ../init.d/heartbeat
   /etc/rc2.d/S75heartbeat -> ../init.d/heartbeat
   /etc/rc3.d/S75heartbeat -> ../init.d/heartbeat
   /etc/rc4.d/S75heartbeat -> ../init.d/heartbeat
   /etc/rc5.d/S75heartbeat -> ../init.d/heartbeat

update-rc.d -f ldirectord remove
จะปรากฎข้อความ
Removing any system startup links for /etc/init.d/ldirectord …

Create A Database Called ldirector
เราจะสร้าง database ชื่อ “ldirectordb”  บน MySQL Cluster node ทั้งสอง (sqlnode1:192.168.0.1 และ sqlnode2:192.168.0.2) ซึ่งเป็น database ที่ load balancer ใช้ตรวจสอบว่า MySQL cluster node ยังทำงานอยู่หรือไม่
sqlnode1:192.168.0.1
mysql -u root –p
GRANT ALL ON ldirectordb.* TO ‘ldirector’@’%’ IDENTIFIED BY ‘ldirectorpassword’;
FLUSH PRIVILEGES;
CREATE DATABASE ldirectordb;
USE ldirectordb;
CREATE TABLE connectioncheck (i INT) ENGINE=NDBCLUSTER;
INSERT INTO connectioncheck () VALUES (1);
quit; 

sqlnode2:192.168.0.2
mysql -u root –p
GRANT ALL ON ldirectordb.* TO ‘ldirector’@’%’ IDENTIFIED BY ‘ldirectorpassword’;
FLUSH PRIVILEGES;
CREATE DATABASE ldirectordb;
quit; 

Prepare The MySQL Cluster Nodes For Load Balancing
เราต้อง configure ให้ MySQL cluster node ทั้งสอง (sqlnode1:192.168.0.1 และ sqlnode2:192.168.0.2) รับการร้องขอ (request) จาก virtual IP address (192.168.0.5)
sqlnode1:192.168.0.1/ sqlnode2:192.168.0.2
apt-get install iproute

จากนั้นแก้ไข file sysctl.conf  ที่ /etc/sysctl.conf  (เพิ่มข้อความด้านล่างนี้ต่อท้ายของเดิม)
pico /etc/sysctl.conf



sysctl -p

จากนั้นแก้ไข interfaces สำหรับรองรับ  virtual IP address (192.168.0.5)
pico /etc/network/interfaces


ifup lo:0

Start The Load Balancer
เริ่มต้น start heartbeat บน Load Balancer ทั้งสอง (sqlmang:192.168.0.4 และ sqlload:192.168.0.3) ดังนี้sqlmang:192.168.0.4/sqlload:192.168.0.3
/etc/init.d/heartbeat start

ถ้าไม่มี error เกิดขึ้น ให้ reboot load balancer ทั้งสองตัว โดยใช้คำสั่ง
shutdown – r now

ภายหลังจากที่ reboot load balancer ทั้งสองตัวเสร็จ ให้ตรวจสอบการทำงานของ load balancer โดยsqlmang:192.168.0.4/sqlload:192.168.0.3
ip addr sh eth0

จะปรากฎข้อความในกรณีที่เป็น active Load Balancer
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:01:29:4b:54:0b brd ff:ff:ff:ff:ff:ff   
inet 192.168.0.4/27 brd 192.168.0.31 scope global eth0   
inet 192.168.0.5/27 brd 192.168.0.31 scope global secondary eth0
และจะปรากฎข้อความในกรณีที่เป็น hot-standby Load Balancer
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0b:cd:94:cf:06 brd ff:ff:ff:ff:ff:ff   
inet 192.168.0.3/27 brd 192.168.0.31 scope global eth0

sqlmang:192.168.0.4/sqlload:192.168.0.3
ldirectord ldirectord.cf status

จะปรากฎข้อความในกรณีที่เป็น active Load Balancer
ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 5801
และจะปรากฎข้อความในกรณีที่เป็น hot-standby Load Balancer
ldirectord is stopped for /etc/ha.d/ldirectord.cf

sqlmang:192.168.0.4/sqlload:192.168.0.3
ipvsadm -L –n

จะปรากฎข้อความในกรณีที่เป็น active Load Balancer
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.22:3306 wrr
  -> 192.168.100.20:3306          Route   1      0          0
  -> 192.168.100.19:3306          Route   1      0          0       
และจะปรากฎข้อความในกรณีที่เป็น hot-standby Load Balancer
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

sqlmang:192.168.0.4/sqlload:192.168.0.3
etc/ha.d/resource.d/LVSSyncDaemonSwap master status
จะปรากฎข้อความในกรณีที่เป็น active Load Balancer
master running
(ipvs_syncmaster pid: 5951)

และจะปรากฎข้อความในกรณีที่เป็น hot-standby Load Balancer
master stopped
(ipvs_syncbackup pid: 6072)

Testing (การทดสอบ)
สำหรับการทดสอบ เราจะให้มีการเรียก connect database จากเครื่องอื่นที่อยู่ภายในวง network เดียวกัน ผ่านทาง virtual IP address (192.168.0.5) ที่เรากำหนดไว้ ดังนี้
C:\Documents and Settings\Administrator>mysql -h 192.168.100.22 -u ldirector –p
Enter password: *****************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 917500 to server version: 5.0.38-Ubuntu_0ubuntu1-log

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>

หมายเหตุ
1. เมื่อมีการ run คำสั่ง ip addr sh eth0 แล้วปรากฎ inet6 fe80:20b:cdff:fe94:of06 /64  scope link(ให้แก้ไขที่ Load Balance ทั้ง 2 ตัว)
    -  pico /etc/modprobe.d/aliases
    -  ให้หาบรรทัด alias net-pf-10  ipv6 แล้วแก้ไขเป็น alias net-pf-10  off
    -  ให้ save file และทำการ reboot โดยใช้คำสั่ง  “ifdown -a”  และตามด้วย “ifup -a”
2. ในกรณีใช้คำสั่ง ipvsadm –L –n  แล้วตรง ส่วน Route ไม่แสดงเลข 1 แนะนำให้ไปตรวจสอบ bindaddress  และ usr %  (สำหรับ Load Balancer)

Reference :
[1] www.narisa.com/forums/index.php?showtopic=6466
[2] http://www.howtoforge.com/loadbalanced_mysql_cluster_debian
http://www.howtoconfig.com/database/mysql-database/mysql-cluster-on-debian-amd64.html#more-19

http://www.oknation.net/blog/itlabour/2009/03/25/entry-1
http://www.oknation.net/blog/itlabour/2009/03/25/entry-2
http://www.oknation.net/blog/itlabour/2009/03/25/entry-3
« แก้ไขครั้งสุดท้าย: มกราคม 07, 2010, 20:27:32 PM โดย บอย(ด่านมะขามเตี้ย) »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
FF-Paperless(รพ.สค.)เริ่ม1ตค2555=100%
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
ServerMTOL8.5+MDB-10.4.20,SlaveOL8.5+MDB-10.7.3
LOG=PostgreSQL11,INV=PostgreSQL11

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
Re: หลักสูตร : MySQL Cluster
« ตอบกลับ #2 เมื่อ: กุมภาพันธ์ 11, 2010, 08:43:44 AM »
0
มันต่างกับระบบ Repliction ของ hosxp ยังไงครับอยากทราบมานานแล้วครับ
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ ANPANMAN

  • Sr. Member
  • ****
  • กระทู้: 288
  • มนุษย์เงินเดือน
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลหนองหญ้าปล้อง
Re: หลักสูตร : MySQL Cluster
« ตอบกลับ #3 เมื่อ: กุมภาพันธ์ 11, 2010, 09:12:41 AM »
0
มันต่างกับระบบ Repliction ของ hosxp ยังไงครับอยากทราบมานานแล้วครับ

Repliction คือ การนำ log ของ master มาเขียนใหม่ลงใน slave (ใช่ไหมครับ) เวลาที่ master เกิดปัญหาเราจะต้องทำการเปลี่ยน ตำแหน่งแทนโดยเอา slave มาเป็น master

ส่วน ดั่งกระทู้ คือตามที่คุณบอยอธิบายไว้แล้วครับ (เป็นการปรับแต่ง MySql มีทั้งการทำให้มันทำงานเองโดยอัตโนมัติ เช่น master ล่ม server อื่นที่ตั้งไว้ จะทำงานแทนที่เองโดยไม่ต้องไปจัดการแบบ Replication//และการปรับแต่ง เพื่อรองรับการใช้งานที่หนัก ๆ Cluster หรือการแบ่งการทำงานของเครื่อง server Load Balancer)
เหล่านี้เหมาะสม หน่วยที่ใช้ข้อมูลหนัก มีข้อมูลขนาดใหญ่ user มากมาย
SShttp://nongyaplong.pbro.moph.go.th
เริ่มระบบ BMS20091109
ปัจจุบัน CentOS 5.4x64, MySQL5.1.41, HOSxP 3.54.3.17, HP ProLaint ML150G6, Ram 4 GB, S-ATA 320x2

ออฟไลน์ JACK_LOMKAO

  • Sr. Member
  • ****
  • กระทู้: 294
  • Respect: 0
    • ดูรายละเอียด
Re: หลักสูตร : MySQL Cluster
« ตอบกลับ #4 เมื่อ: กุมภาพันธ์ 11, 2010, 09:42:51 AM »
0
ถ้ามีหนังสือ แนบมาด้วยก็จะดีนะครับ สนใจอยู่
รพ.สมเด็จพระยุพราชหล่มเก่า เพชรบูรณ์ (รพช.60 เตียง)
เริ่มใช้ HOSxP เมษายน 2552 ปัจจุบันใช้  Version ไหนสมบูรณ์
ก็ใช้ Version นั้น

ออฟไลน์ E-Hos

  • Hero Member
  • *****
  • กระทู้: 711
  • Respect: 0
    • ดูรายละเอียด
    • http://www.erawanhospital.com/index.php
Re: หลักสูตร : MySQL Cluster
« ตอบกลับ #5 เมื่อ: กุมภาพันธ์ 11, 2010, 11:15:17 AM »
0
หลักสูตรนี้เหมาะสำหรับ :
    ผู้ดูแลระบบฐานข้อมูล ระบบเว็บ องค์กรที่ให้บริการโดยใช้งานระบบฐานข้อมูล MySQL และผู้ที่สนใจ  

ระยะเวลา : 18 ชั่วโมง

ค่าฝึกอบรม : 18,000 บาท

วัตถุประสงค์ :
1. เพื่อให้ผู้เข้าอบรมมีความรู้ความเข้าใจในหลักการออกแบบ MySQL Cluster
2. เพื่อให้ผู้เข้าอบรมทราบถึงความแตกต่างของวิธีการกระจายภาระงานในแบบต่าง ๆ
3. เพื่อให้ผู้เข้าอบรมสามารถนำไปประยุกต์ใช้งานได้จริง

ความรู้พื้นฐาน :
    ผู้เข้าอบรมต้องมีความรู้ความสามารถในการติดตั้ง Linux Server หรือผ่านหลักสูตร Linux Administration มาก่อน เคยติดตั้งและใช้งานซอฟต์แวร์ MySQL และควรมีความเข้าใจเรื่องระบบเครือข่ายพื้นฐาน

รูปแบบการสอน : บรรยายและปฏิบัติการ โดยใช้ชุดคอมพิวเตอร์จำนวน 6* เครื่อง ต่อ 1 ท่าน

ซอฟต์แวร์ที่ใช้สอน :
1. ซอฟต์แวร์ CentOS เวอร์ชั่น 5 ขึ้นไป
2. MySQL Cluster เวอร์ชั่น 7 ขึ้นไป

http://www.clusterkit.co.th/training/subject_detail.php?id=09
 



น่าสนใจมากๆ ครับ แต่เห็นแล้วจะไม่ไหว เรายังงูๆ ปลา ๆ  ;D ;D ;D ;D
ACADEMIC COMPUTING.  Erawan_Hospital
>> Thanks ... DansaI HospitaL L-o-E-i
>> By อ. Decha, อ.Armds

=> NoW !! HosXP SERVER Version 3.58.1.1
=> Client 50 client  OS: SP2 >> 3.58.1.1
=> ER Room  NoW ! HosXP Version 3.57.7.25D
=> Doctor Room  NoW ! HosXP Version 3.58.1.1
=> HosXP Test  Version 3.58.1.xx
=> Coming Soon >>UP Version 3.58.1.xx
wait...
-----------------------------
Start  System  8 January 2009

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: หลักสูตร : MySQL Cluster
« ตอบกลับ #6 เมื่อ: กุมภาพันธ์ 11, 2010, 11:28:40 AM »
0
น่าสนใจจริงๆ ครับ ใครไปอบรม ฝากเอาฐานข้อมูล รพ. ไป Restore เข้าแล้วทดสอบมาให้ดูด้วยนะครับ  :D
HOSxP Project Manager / Cheif Developer / BMS MD