High Availability Network อาจารย์ ธนัญชัย ตรีภาค ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้า คุณทหารลาดกระบัง
Availability ระบบสามารถตอบสนองต่อการร้องขอบริการจาก ผู้ใช้งานได้ตลอดเวลาที่ต้องการ
ปัญหาที่กระทบกับ Availability การใช้งานที่เพิ่มมากขึ้น ความผิดพลาดของการทำงานโดยอุบัติเหตุ อายุการใช้งานของอุปกรณ์
แนวทางการแก้ปัญหาเกี่ยวกับ Availability Scalable ออกแบบระบบให้สามารถขยายตัวได้โดยง่าย เพิ่มอุปกรณ์ Load Balancer Reliable ออกแบบระบบให้มีหน่วยให้บริการมากกว่า 1 จุด สามารถเปลี่ยนหน่วยให้บริการได้หากหน่วยบริการ หลักมีปัญหา สามารถดำเนินการแก้ปัญหาที่เกิดขึ้นได้โดยไม่ กระทบต่อการทำงาน ใช้อุปกรณ์ที่สามารถทำ High Availability Configuration ได้
ความสามารถในการขยายขนาด (Scalability) การขยายตัวแนวราบ การเพิ่มเครื่องคอมพิวเตอร์ในเครือข่าย การขยายตัวแนวดิ่ง การเพิ่มจำนวนทรัพยากร
Scalability
การตั้งค่าระบบแบบ High Availability เป็นการติดตั้งอุปกรณ์เพิ่มเติม ช่วยกันทำงาน (Active / Active) ทำงานทดแทนกัน (Active / Standby) เพื่อทรัพยากรในระบบคอมพิวเตอร์และ เครือข่าย ระบบสามารถทำงานได้ตลอดเวลา ไม่ติดขัดหรือเกิดการหยุดชะงักในการให้บริการ
การนำไปใช้งาน HA อุปกรณ์เครือข่าย HA Server HA Firewall HA Data Center : การทำ Disaster Recovery Center
ศูนย์กู้คืนข้อมูลจากภัยพิบัติ (Disaster Recovery Center) ตั้งอยู่ในพื้นที่อื่น ตามหลักการกระจายความ เสี่ยง รับมือกับอุบัติภัยต่างๆ เช่น แผ่นดินไหว ไฟ ไหม้ น้ำท่วม เป็นต้น สามารถเข้าปฏิบัติงานแทนระบบหลักได้ทันที
Load Balancing
ขยายตัวในแนวราบ จำเป็นต้องใช้งานอุปกรณ์หรือซอฟต์แวร์ Loadbalancer ตัวอย่างผลิตภัณฑ์ในท้องตลาด ซอฟแวร์เช่น StoneBeat, Resonate และ Rainfinity Appliances ซึ่งเป็นอุปกรณ์ที่ออกแบบเพื่อ ทำงาน Load Balancing โดยเฉพาะเช่น F5 และ Radware Switch Based ซึ่งเป็น Switch ที่เพิ่ม ความสามารถ Load Balancing เช่น Cisco, Nortel, Foundry
Layer 4-7 Switch
การทำงานของ Load Balancer เซิร์ฟเวอร์ฟาร์ม ในเซิร์ฟเวอร์ 1 เครื่องอาจมีมากกว่า 1 บริการ กระบวนการตรวจสอบว่าบริการต่างๆ ยัง ทำงานอยู่หรือไม่ สามารถใช้งานกับเซิร์ฟเวอร์ที่หลากหลาย สามารถกระจายงานให้กับเซิร์ฟเวอร์ต่างๆ ได้ อย่างเหมาะสม
อัลกอริทึมในการกระจายภาระ งาน Round Robin Least Connection Weight Distribution Response Time Least Connection & Response Time Primary & Backup Server
การส่งคำร้องขอต่างๆ ไปยัง เซิร์ฟเวอร์ Server Load Balance Source NAT Direct Server Return
Server Load Balance กระบวนการทำงานคล้ายกับการทำ Network Address Translation
Server Load Balance
Source NAT กระบวนการกระจายงานโดยทำงานคล้าย กับ Application Proxy โดยจะทำการตั้งค่า ระบบให้อุปกรณ์ Load Balance เป็นผู้ร้อง ขอการให้บริการจากเซิร์ฟเวอร์เอง
Source NAT
Direct Server Return กระบวนการ Redirect แพ็กเก็ตที่ร้องขอไป ยังเซิร์ฟเวอร์โดยการปรับแต่ง Destination MAC Address ให้ Redirect ไปยังเครื่อง เซิร์ฟเวอร์ปลายทาง แล้วให้เซิร์ฟเวอร์ ปลายทางตอบกลับไปยังผู้ร้องขอเอง อัตโนมัติ ต้องมีการตั้งค่า Loop Back Address เป็น ไอพีเดียวกันกับอุปกรณ์ Load Balancer ด้วย
Direct Server Return
ความสามารถอื่นๆ ของ Load Balancer Application Level Health Check Content Management Session Persistence High Availability Load Balance Global Server Load Balance
Application Level Health Check กระบวนการตรวจสอบว่าบริการต่างๆ ยังสามารถ ให้บริการได้อย่างเหมาะสมหรือไม่ หากตรวจสอบแล้วพบว่าบริการของเซิร์ฟเวอร์ ตัวใดไม่สามารถให้บริการได้ จะไม่ส่งงานไปยัง บริการของเซิร์ฟเวอร์นั้นๆ
Content Management เพื่อหลีกเลี่ยงปัญหาข้อมูลซ้ำซ้อน ยากแก่ การอัพเดทข้อมูลให้เหมือนกันในทุกๆ ระบบ ทำให้มีระบบที่จะเกิดข้อมูลซ้ำซ้อนกันน้อย ที่สุด แบ่งการเก็บข้อมูลเป็นไดเร็กทอรี แล้ว กำหนดเซิร์ฟเวอร์แต่ละตัวว่าต้องรับผิดชอบ การเก็บข้อมูลไดเรกทอรีใดบ้าง ให้ Load Balancer ทำการ Redirect ข้อมูล ให้ตรงกับ URL ที่ร้องขอมา
Session Persistence เซิร์ฟเวอร์ที่รับบริการใดๆ ต้องดำเนินการต่อ จนจบ Session วิธีการในการดำเนินการ Cookie Based Switching Cookie Based Hashing SSL ID Switching
Session Persistence โปรแกรมที่ทำงานบน TCP/IP ถูกผลกระทบจากการ ทำงานของ Load Balancer
mega proxy problem การใช้งาน proxy หลายตัว ทำให้ source IP มีการ เปลี่ยนแปลงค่าไปทำให้ระบุ user ได้ยาก ใช้ cookie switching แก้ปัญหา
High Availability Load Balance การออกแบบสามารถติดตั้งระบบ Load Balance ในสองรูปแบบคือ Active – Active สำหรับเพิ่มความสามารถใน การให้บริการ (Scalability) Active – Standby สำหรับเพิ่มความพร้อมใน การใช้งาน (Fault Tolerant)
Global Server Load Balance ประยุกต์การทำ Load Balance ให้สามารถ รองรับการให้บริการจากทั่วโลกได้ ส่วนใหญ่เป็นการให้บริการเว็บไซต์ เทคนิคที่ใช้ DNS HTTP Redirect ใช้อุปกรณ์ Load Balance
NANOG L4 Switching Presentation How GSLB Works 1. Client’s DNS request for sent to local DNS 2. Local DNS queries upstream DNS 3. Switch at site C receives DNS request and determines that sites B and C are closest to user. Acting as Authoritative Name Server, switch selects the best site (B) and returns site B’s IP to client’s local DNS 4. Local DNS server responds to client with site B’s VIP 5. Client opens application session to (site B ) Site health, response time and throughput exchanged between switches on a periodic or event-driven basis using encoded DSSP A B C DSSP Updates Rank Site %Traffic 1B70 2C20 3A10 RankSiteTraffic 1B80 2C20 3A10 RankSiteTraffic 1B75 2C15 3A5 DNS
NANOG L4 Switching Presentation Distributed Site State Protocol Lightweight, encoded protocol runs over HTTP Used to exchange health, load, throughput information Periodic Updates Peer site performance behavior (one site’s view of all other sites) Local site status information (server health, current connections, etc) Periodic Updates result in each switch building an Ordered Handoff Table Triggered Updates If a site observes that another site is unresponsive, it will Trigger all other sites to check the questionable site If a site experiences a connection spike (reaching MaxConns) it will trigger an update to all other sites to stop Site Handoff
Web Caching Caches can be installed and utilized with the Load balancers in the following ways Forward proxy for client acceleration Transparent proxy for client acceleration Reverse proxy for server acceleration Transparent reverse proxy for server acceleration
Web Caching Transparent reverse proxy for server acceleration