สร้างเว็บEngine by iGetWeb.com
Cart รายการสินค้า (0)

Load balance คืออะไร?

Load balance คืออะไร?

Load balance คืออะไร


49158yjhyj.jpg

 




             ปัญหาหลักของคนทำ Web site ขนาดใหญ่คือ จะทำอย่างไรให้ระบบสามารถรองรับการการใช้งานของ User จำนวนมากๆได้ เทคนิคหนึ่งที่มีการใช้อย่างแพร่หลาย คือการทำ Load Balance

Load Balance เป็นเทคนิคที่ช่วยแบ่งงานที่เข้ามาจาก User ให้กระจายไปในกลุ่มของ Server ที่จัดเตรียมไว้

การทำ Load Balance ทำได้หลายวิธี ได้แก่

1. ใช้ Round Robin DNS คือการใช้ Feature ของ DNS โดยทำการ register ชื่อ domain ชื่อหนึ่งสำหรับหลายๆ ip address ข้อดีของวิธีนี้คือง่ายที่สุดและใช้งบประมาณน้อยที่สุด แต่เป็นวิธีนี้มีข้อเสียค่อนข้างมาก ข้อเสียที่สำคัญคือไม่สามารถควบคุมการทำงานได้ เนื่องจากการทำงานด้วยวิธีนี้จะมีแต่การทำ Round Robin เท่านั้น ไม่สามารถปิดการแบ่ง load การทำงานแบบ realtime ได้ และหากต้องการ register server เข้าไปใน load จะต้องใช้เวลานานเพราะการทำ mapping dns นั้นจะมีการ cache ข้อมูลไว้ตามที่ต่างๆ ซึ่งเราไม่สามารถควบคุมได้

2. ใช้ Ramdom Redirection วิธีนี้เป็นวิธีที่นิยมกันแพร่หลายในยุคสมัยหนึ่ง
ขั้นที่ 1 user ทุกคนจะเข้ามาที่ Distributer เป็น Server กลางตัวหนึ่งที่จะคอย Redirect User ไปยัง Server ภายในกลุ่ม เช่น user พิมพ์ว่า www.narisa.com ตัว browser จะส่ง request ของ user ไปยัง Distributer จากนั้นตัว Distributer จะทำการสุ่มเลือก Server และทำการ redirect user ไปยัง www1.narisa.com หรือ www2.narisa.com เป็นต้น

     วิธีนี้นิยมกันมากใน internet ยุคแรกๆ เนื่องจากสมัยนั้นยังไม่มีเทคนิคของการทำ Load Balancer และเมื่อมีแล้วก็ยังราคาแพงอยู่มาก (สมัยนั้นเมื่อ 7-8 ปีที่แล้ว Load Balancer ตกเครื่องละ 1,000,000 บาท เป็นอย่างต่ำ)

3. ใช้ Load Balancer - ปัจจุบันนิยมใช้วิธีนี้มากที่สุด วิธีนี้เราจะมี Load Balancer หนึ่งตัว ขว้างหน้า Server ภายในกลุ่ม เพื่อรอรับ Request จาก User เมื่อมี Request เข้ามาตัว Load Balancer จะทำการ Forward Request ไปยัง Server ภายในกลุ่ม
ตัวอย่างการทำงานคร่าวๆคือ
1. ทำการ Register DNS ด้วย IP ของ Load Balancer เช่น www.narisa.com ---> xxx.xxx.xxx.1
2. ที่ Load Balancer เราจะสร้าง Profile ขึ้นมา Profile หนึ่งเช่นเป็น profile ชื่อ Narisa.com
3. ทำการ Register IP Address ของ Server ที่จะอยู่ในกลุ่มเข้าไปยัง Profile ของ Load Balancer เช่น ที่ profile Narisa.com ประกอบไปด้วย Server1 ip xxx.xxx.xxx.2 และ Server2 ip xxx.xxx.xxx.3
4. เมื่อ User ทำการ Request ต้องการใช้งาน www.narisa.com ตัว request จะถูกส่งมาที่ load balancer ซึ่ง load balancer จะทำการตรวจสอบ Profile และ Policy ของการทำ load balance เช่นจะใช้วิธี Round Robin หรือ Performance หรือ Sticky เป็นต้น จากนั้นก็จะ Forward Request ของ User ไปยัง Server ภายในกลุ่ม

     จากการทำงานของข้อ 3 และ 4 จึงเกิดคำศัพท์ขึ้นมาคำหนึ่งคือ VIP หรือ Virtual IP นั่นก็คือ ที่ IP xxx.xxx.xxx.1 นั้นเป็นเพียง IP จำลองเป็น IP ของ Load Balancer แต่ IP จริงๆของ Server1 และ Server2 เป็น IP อื่น

     ตัว Load Balancer นั้นมีทั้งแบบเป็น Hardware และเป็น Software ซึ่งแตกต่างกันที่ราคาและประสิทธิภาพการทำงาน Load Balancer ที่เป็น Hardware จะมีราคาที่แพงแต่ประสิทธิภาพการทำงานดีกว่า Software อยู่มาก

     ปัจจุบัน Web Server ส่วนใหญ่จะมี Feature ของ Load Balancer อยู่ในตัวไม่ว่าจะเป็น IIS หรือ Tomcat ซึ่งในส่วนของ Tomcat สามารถหาอ่านวิธีการติดตั้งได้ที่ http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html

     ข้อด้อยของการทำ Load Balance ด้วยวิธีที่ 3 คือมันจะเกิด Single Point of Failure นั่นก็คือหาก Load Balancer มีอันเป็นไป User จะไม่สามารถเข้ามาใช้งานระบบได้เลย ดังนั้นสำหรับวิธีที่ 3 ส่วนใหญ่แล้วจะต้องมีการทำ Backup สำหรับ Load Balancer ด้วย ซึ่งจะทำให้สิ่นเปลื้องค่าใช้จ่ายเพิ่มขึ้นไปอีกมาก ข่าวดีคือหากคุณกล้าเสี่ยงพอ ตามสถิติแล้ว Load Balancer มีโอกาศ down น้อยมาก คิดเป็นร้อยละ 0.001 ทีเดียว ดังนั้นคุณอาจจะไม่ต้องมี Backup เลยก็ได้




เครดิต konmun.com

ความคิดเห็น

แสดงความคิดเห็น

* *

 

*