1.
Introduction toMySQL Clustering (ndb-cluster stogare)
:
MySQL นำเสนอโซลูชันที่มีความน่าเชื่อถือสูงในรูปแบบของกลไกการจัดเก็บข้อมูล มีความปลอดภัยในการทำธุรกรรมและจำลองข้อมูลแบบเรียลไทม์ สามารถใช้ในสถานการณ์ที่ต้องการความน่าเชื่อถือและโหลดสูง สมดุล โซลูชันนี้ต้องการเซิร์ฟเวอร์โหนดอย่างน้อยสามเครื่องเพื่อให้ได้ผลลัพธ์ที่ดี
ราคา:
เซิร์ฟเวอร์โหนดมีข้อกำหนด RAM ที่สำคัญ ซึ่งเป็นสัดส่วนเชิงเส้นตรงกับขนาดฐานข้อมูล
วิธีที่ดีที่สุดคือใช้เครือข่าย Gigabit Ethernet
และต้องใช้การ์ด SCI ที่มีราคาแพงจาก Dolphin
ข้อดี:
สามารถใช้ในสถานการณ์ที่สมดุลโหลด;
สามารถใช้ในสถานการณ์ที่มีความน่าเชื่อถือสูง;
ความ
สามารถใน
การปรับขนาดสูง;
ข้อเสีย:
เมื่อฐานข้อมูลมีขนาดใหญ่ขึ้น ความต้องการ RAM ก็มากขึ้น ค่าใช้จ่ายจึงสูง
ความเร็ว:
เกือบช้ากว่าเซิร์ฟเวอร์สแตนด์อโลนทั่วไป (ไม่มี Gigabit Ethernet, ไม่มีการ์ด SCI, มีข้อจำกัดที่เกี่ยวข้องกับกลไกการจัดเก็บข้อมูลน้อยลง) 10 เท่า
สถานการณ์การใช้งาน:
ความซ้ำซ้อน ความน่าเชื่อถือสูง โหลดบาลานซ์
2. บทนำเกี่ยวกับ MySQL / GFS-GNBD/ HA (แอ็กทีฟ/พาสซีฟ)
:
หากเซิร์ฟเวอร์ MySQL หลายเซิร์ฟเวอร์ใช้ฮาร์ดดิสก์ที่ใช้ร่วมกันเป็นที่จัดเก็บข้อมูล โซลูชันนี้จะเป็นอย่างไร
GFS/GNBD สามารถจัดเตรียมฮาร์ดไดรฟ์ที่ใช้ร่วมกันที่จำเป็นได้
GFS คือระบบไฟล์ที่ปลอดภัยต่อธุรกรรม ในเวลาเดียวกัน คุณสามารถให้ MySQL ใช้ข้อมูลที่ใช้ร่วมกันได้
ค่าใช้จ่าย:
ค่าใช้จ่ายของเซิร์ฟเวอร์ประสิทธิภาพสูงถึง n เครื่อง โดยเซิร์ฟเวอร์หนึ่งเปิดใช้งานอยู่ และอีกเซิร์ฟเวอร์ทำหน้าที่เป็นเซิร์ฟเวอร์สำรอง
ข้อดี:
ความน่าเชื่อถือสูง
ความซ้ำซ้อนในระดับหนึ่ง
ปรับขนาดให้มีความน่าเชื่อถือสูง
จุดด้อย:
ไม่มีการทำโหลดบาลานซ์
ไม่มีการรับประกันความซ้ำซ้อน
ไม่สามารถปรับขนาดการดำเนินการเขียนได้
เร็วกว่า
เซิร์ฟเวอร์แบบสแตนด์อโลนถึง 2 เท่า การสนับสนุนที่ดีขึ้นสำหรับการดำเนินการอ่าน
สถานการณ์ของแอปพลิเคชัน
ต้องการความน่าเชื่อถือสูงและแอปพลิเคชันที่เน้นการอ่าน
ข้อมูลสูง3. ข้อมูลเบื้องต้นเกี่ยวกับ MySQL / DRBD / HA (แอ็กทีฟ/พาสซีฟ)
:
หากเซิร์ฟเวอร์ MySQL หลายเซิร์ฟเวอร์ใช้ฮาร์ดดิสก์ที่ใช้ร่วมกันเป็นที่จัดเก็บข้อมูล โซลูชันนี้จะเป็นอย่างไร
DRBD สามารถจัดหาฮาร์ดไดรฟ์ที่ใช้ร่วมกันได้ สามารถกำหนดค่า DRBD ให้มีความปลอดภัยในการทำธุรกรรมได้
ในเวลาเดียวกัน คุณสามารถให้ MySQL ใช้ข้อมูลที่ใช้ร่วมกันได้
ต้นทุน:
ต้นทุนของเซิร์ฟเวอร์ประสิทธิภาพสูงถึง n เครื่อง โดยเซิร์ฟเวอร์หนึ่งเปิดใช้งานอยู่และอีกเซิร์ฟเวอร์ทำหน้าที่เป็นเซิร์ฟเวอร์สำรอง
ข้อดี:
มี
ความน่าเชื่อถือสูง
สามารถปรับขนาดได้ในนามของความน่าเชื่อถือสูง
ข้อเสีย:
ไม่มีการทำโหลดบาลานซ์
ไม่มีการรับประกันความซ้ำซ้อน
ไม่มีความสามารถในการปรับขนาดในแง่ของโหลดการเขียน
ความเร็ว:
เทียบเท่ากับเซิร์ฟเวอร์เดียวในแง่ของการอ่านและการเขียน
แอปพลิเคชัน
ที่ต้องการความน่าเชื่อถือสูงและแอปพลิเคชันที่เน้นการดำเนินการอ่าน
4. MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)
บทนำ:
พิจารณาสถานการณ์ต่างๆ ในการอ่านและเขียนการเชื่อมต่อฐานข้อมูล DB คุณสามารถใช้เซิร์ฟเวอร์หลักหนึ่งตัวสำหรับการดำเนินการเขียนและเซิร์ฟเวอร์ทาส n ตัวสำหรับการดำเนินการอ่าน
ต้นทุน:
เซิร์ฟเวอร์การเขียนประสิทธิภาพสูงสูงสุด 1 เครื่อง
ข้อได้เปรียบด้านต้นทุนของเซิร์ฟเวอร์การอ่าน n:
ความน่าเชื่อถือสูงของการดำเนินการอ่าน
การปรับสมดุลโหลดของการดำเนินการอ่าน
ในแง่ของการปรับสมดุลการโหลดของการดำเนินการอ่าน
ข้อเสีย:
ความน่าเชื่อถือสูงโดยไม่ต้องดำเนินการเขียน
โหลดบาลานซ์โดยไม่ต้องดำเนินการเขียน
ไม่มีความสามารถในการปรับขนาดในการดำเนินการเขียน
เหมือนกับ
เซิร์ฟเวอร์แบบสแตนด์อโลน การสนับสนุนที่ดีกว่าในการดำเนินการอ่าน
สถานการณ์ของแอปพลิเคชันนั้น
เน้นการอ่านและต้องการแอปพลิเคชันที่มีความน่าเชื่อถือและสมดุลโหลดสูง
5. เซิร์ฟเวอร์ MySQL แบบสแตนด์อโลน (แยกตามฟังก์ชัน) (ใช้งานอยู่)
เซิร์ฟเวอร์อิสระหลายตัวที่มีฟังก์ชันแยกจากกัน เซิร์ฟเวอร์เหล่านี้ไม่มีความน่าเชื่อถือและความสามารถในการปรับสมดุลโหลดสูงเกินไป และจะไม่ได้รับการพิจารณา
สรุป:
โซลูชัน HA ที่แนะนำโดยเว็บไซต์อย่างเป็นทางการของ MySQL คือการผสมผสานระหว่าง DRBD (โครงการที่ 3 ในบทความนี้) และการจำลองแบบ (โครงการที่ 4 ในบทความนี้) หาก Linux Heartbeat สามารถใช้ฟังก์ชัน Auto-failover ได้ ในกรณีนี้ เราจะพบว่าการหยุดทำงานจะลดลงอย่างมาก