หน้า 1 จากทั้งหมด 1

แนวคิดในการทำ High Availability ในระบบ Asterisk-Based IP-PBX

โพสต์โพสต์แล้ว: 29 พ.ค. 2019 21:56
โดย nuiz
เขียนเล่นๆครับ เพิ่มยอดบทความ ... ความคิดเห็นส่วนตัวทั้งนั้นเลยครับ ปราศจากข้อมูลทางวิชาการ

ปรับปรุงเพิ่มเติม...30/5/2562

1. จุดประสงค์ในการทำ High Availability (HA)
High Availability หรือใครจะเรียกว่า Cluster หรือ Redundant หรือ Backup หรือ Failover หรือ... อะไรก็แล้วแต่ จุดประสงค์ก็เพื่อให้มี Server ใช้งานได้ตลอดเวลาที่ต้องการ สมมติว่า Server ที่ใช้งานอยู่ต้องมีอันเป็นไป เช่น เครื่องเสีย เน็ตเวิร์คล่ม ซอฟท์แวร์พัง หรือสาเหตุอะไรก็แล้วแต่ ทำยังไงก็ได้ต้องโทรเข้าโทรออกได้ตลอด ยอมให้มี down time ได้นิดหน่อย และไม่ต้องเปลี่ยนคอนฟิกอะไรที่ฝั่งผู้ใช้บริการ

2. ใช้วิธีไหนทำ High Availability (HA) ดี
ทีนี้เทคนิควิธีการที่ให้ได้มาซึ่ง HA, Cluster, Redundant, Backup, ... แล้วแต่จะเรียกกัน "มีหลายวิธีครับ" ทำบนระดับ Hardware ทำบนระดับ Software หรือทำผสมกันทั้ง Hardware และ Software ทั้งนี้ไม่ว่าจะใช้วิธีไหนต้องทำให้
- ยูสเซอร์ใช้งานได้ตลอดเวลาที่พวกเขาต้องการ
- มี down time น้อยที่สุด
- ใช้เงินลงทุนน้อยที่สุด
- ถ้ามีปัญหาต้องแก้ไขได้ง่ายและเร็วด้วย
- ถ้ามอนิเตอร์ได้ก็ดี
- หากแจ้งเตือนเมื่อเกิดปัญหาได้ก็จะดีมาก
- หากเตือนก่อนเกิดปัญหาได้ยิ่งจะดีใหญ่

เทคนิควิธีการทำเป็นเรื่องรอง ผลลัพธ์เป็นเรื่องหลัก ต้องให้ได้ตามหัวข้อที่ลิสต์ไว้ให้ได้มากที่สุด ฉะนั้นผมว่าใช้วิธีไหนทำ High Availability ก็ได้ครับ แล้วแต่ถนัด เราถนัดแบบไหนก็ทำแบบนั้น เวลาเกิดปัญหาจะแก้ไขได้เองและรวดเร็ว

3. เทคนิคการทำ HA ที่ใช้ได้ดีกับโปรแกรมหนึ่ง เช่น Web Server/Database/File Server/XXX Server เอามาใช้กับ Asterisk Server ได้มั๊ย
ยังฟันธงไม่ได้ครับ ต้องลองเอามาใช้งานดูถึงจะบอกได้ แต่ละ Software ก็มีวิธีการของตัวเอง ดังนั้นต้องลองดูก่อนครับอย่าเพิ่งสรุปว่าว่าใช้ได้

4. ต่อไปมาว่ากันเรื่องของลักษณะการใช้งาน Server ใน Cluster ครับ
ปกติที่เห็นกันก็จะมี Server จำนวน 2 ตัวครับ บางคนก็คอนฟิกให้ทั้ง 2 ตัวทำงานแบบ Active/Active (ทำงานทั้งสองตัวพร้อมกัน) บางคนก็คอนฟิกให้ทำงานแบบ Active/Standby (ตัวหนึ่งทำงาน อีกตัวเปิดเครื่องทิ้งไว้เฉยๆ รอให้อีกเครื่องเจ้งก่อนมันถึงจะทำงาน) ที่ต้องการให้ทำงานแบบ Active/Active ก็ให้เหตุผลว่าจะได้ไม่ต้องเสียเงินซื้อ Server มาเปิดเครื่องทิ้งไว้เฉยๆ ซื้อมาแล้วต้องได้ใช้งาน แหม่...ทั้งที่จริงๆแล้วไม่เห็นต้องซื้อเครื่องเสป็คเท่ากันเป๊ะๆมาทำ HA เลย เครื่องหนึ่งซื้อใหม่ อีกเครื่องใช้เครื่องเก่าก็ยังได้เลย หรือเครื่องนึงเป็นเสป็คเซอร์เวอร์ อีกเครื่องเสป็ค PC ธรรมดาๆ (มือ 2 ด้วยอีกต่างหาก) ก็ยังได้เลยครับ

5. ถ้าเป็น Asterisk Server (Issabel/FreePBX/Elastix) เราจะให้ Server สองตัวนี้ทำงานแบบไหน Active/Active หรือ Active/Standby ?
สมมติว่าเราทำ HA เสร็จเรียบร้อยแล้วนะครับ ผมคิดว่าด้วยธรรมชาติการทำงานของ Asterisk เราต้องให้ Server ทำงานแบบ Active/Standby ครับ เพราะว่า Active/Standby จะมี Server เครื่องเดียวที่รับ Register และ Call ยังไงถ้า IP Phone รีจิสเตอร์เข้ามาจะโทรหากันได้อยู่แล้ว ในขณะที่ถ้าให้ทำงานแบบ Active/Active (สมมติว่าทำได้นะ) IP Phone บางเครื่องจะไปรีจิสเตอร์กับ Server เครื่องนึง ส่วน IP Phone บางเครื่องจะไปรีจิสเตอร์กับ Server อีกเครื่องนึง ถ้ารีจิสเตอร์บน Server เดียวกันก็โทรหากันได้อยู่ แต่ถ้ารีจิสเตอร์ต่าง Server กันจะโทรหากันยังไง ต้องทำ Dialplan เพิ่มมั๊ย? ถ้า IP Phone เปลี่ยนไปรีจิสเตอร์กับ Server อีกตัวก็ต้องเปลี่ยน Dialplan อีก ลำบากต่อการคอนฟิกจริงๆครับ

แล้วกำหนด Virtual IP address ขึ้นมา ให้ IP Phone รีจิสเตอร์มาที่ IP นี้ โดยที่ Virtual IP นี้จะไปอยู่บนเครื่องที่ทำงาน Active อยู่ในขณะนั้น เราจะได้ไม่ต้องไปแก้ไขอะไรในอุปกรณ์ที่ยูสเซอร์ใช้ครับ

6. ต้อง Share Resources มั๊ย
อันนี้ถือเป็น "ข้อห้าม" เลยครับ ห้ามแชร์ทรัพยากรกันโดยเด็ดขาด (คหสต เช่นกันครับ) ทรัพยากรที่ผมพูดถึงนี้คือ Harddisk ครับ แต่ละ Server ต้องไม่ใช้ Harddisk รวม (Shared Disk) ไม่ว่าจะอยู่ในรูปแบบของ DRBD หรือ NAS หรือ Storage Server หรือ File Server หรืออะไรก็แล้วแต่ ข้อมูลที่จะ Transfer ระหว่างกันต้องอาศัยการ Replication และ/หรือการ Synchronization (เช่น Copy/File Transfer) จากเครื่อง Active ไปยังเครื่อง Standby เท่านั้น

ส่วนข้อมูลใน Harddisk ของเครื่อง Active (เฉพาะข้อมูลที่จำเป็นต่อการทำงาน ไม่ต้องทั้งหมด) นอกจากเราต้องให้ไปอยู่ในเครื่อง Standby แล้ว ถ้ากลัวเจ๊งเราจะ Copy ไปไว้ยัง Storage อื่นก็ได้ สามารถทำได้ครับ

7. บทสรุปสำหรับผู้บริหาร
สรุปว่า...ใช้เทคนิคไหนก็ได้ทำ HA ครับ ให้ใช้แบบ Active/Standby ด้วย ทำง่ายกว่า เวิร์คง่ายกว่า ปัญหาน่าจะน้อยกว่าด้วย เครื่อง Standby ให้เสป็คน้อยๆพอ ถ้าไม่อยากเสียเงินซื้อเครื่องแล้วไม่ได้ใช้งาน ให้ใช้ PC เก่าก็ได้ครับ