SSD กับงาน Database Server

ใช้ SSD Vertex 4 (SATA3 ทำงานบน SATA2) ขนาด 60GB ทั้งหมด 2 ตัวบน Production อยู่ 2 รอบบ ตัวแรกระบบ Frontend ทำงานตลอดเวลา 24 ชั่วโมงโหลดข้อมูลบน Database MySQL ขนาด transaction 30-100 queries/s แบบ ACID Model ตลอด (เป็น transaction เรื่องเงินเลยต้องมี locking ระดับ row ด้วย) แต่พังในเวลาประมาณ 3 เดือน และตอนนี้ SSD ตัวใหม่ก็ยังทำงานได้ดีอยู่ลุ้นๆ จะไปต่อได้แค่ไหน ส่วนอีกตัวทำงานมาแล้ว 6 เดือน ยังไม่มีปัญหาใดๆ ตัวนี้ทำงานที่ 500-600 queries/s แต่เป็น ISAM model ตลอด (ไม่มีการ locking ใดๆ) การทำใช้ SSD มาทำงานและแก้ไขปัญหาเรื่อง IOPS ของ database ช่วยให้งานที่อาจใช้เวลา 1-5 วินาที เสร็จสิ้นภายในเวลาหน่วย ms เท่านั้น ซึ่งคุ้มเสี่ยงที่จะใช้

คำถามคือระบบป้องกันทำอย่างไร? เพราะ SSD มีโอกาสเสียง่ายกว่า HHD อยู่แล้ว ซึ่งแก้ปัญหาด้วยการทำระบบด้านหลังอีกชุด โดยรัน VM ควบคู่ทั้งสองระบบ ซึ่งทำ Realtime backup แบบ Replication ที่ทำงานแบบ Event base ตลอดเวลาเพื่อคอย Backup ไว้อีกชุดและมีชุด VM อีกตัวทำหน้าที่ Daily backup แบบ Full Database อีก 1 ชุดสามารถรองรับการ downtime ได้ 99.9% per year ได้สบาย

โดยระบบเคย down เพราะ SSD พังและนำกลับมาอยู่ใน State ‘uptime’ ได้ในเวลาประมาณ 30 นาที ด้วยการกู้จาก Realtime backup มาใส่ในระบบที่ยังทำงานปรกติอีกระบบไปก่อน แล้วเข้าไปเปลี่ยน SSD ตัวใหม่เสร็จสิ้นใน 6 ชัวโมง (จากที่บอกไปด้านบน) อันนี้คือการแก้ไขปัญหานี้

ส่วนการแนวการแก้ไขปัญหาต่อไปในช่วงปีนี้ คือแผนการทำ HA ตัว Database Server เพิ่มเติม แต่ยัง LAB เรื่อง MySQL Cluster ว่าจะเอามาใช้อะไรได้บ้างและมีความเร็วเพียงพอหรือไม่ที่จะทำแบบนี้ หรือทำ RAID SSD ก็น่าสนใจเช่นกันคงต้อง LAB ต่อไปอีกสักพัก

Leave a Reply