A Quick Note about Load Balancing as a Service in OpenStack


Load balancing là giải pháp cho nhu cầu phân chia các request cho nhiều server/process nhằm làm tăng sức chịu tải của toàn bộ hệ thống, giảm response time, hạn chế bottleneck.

Dịch vụ LBaaS trong môi trường IaaS cần:

  • cho phép cloud tenant chủ động cung cấp, điều chỉnh hay thu hồi các load balancer khi có nhu cầu,
  • giúp cloud admin quản lý pool các load balancer là thiết bị phần cứng hoặc phần mềm.

LBaaS trong OpenStack là một extention của thành phần Quantum/Neutron được đưa ra kể từ bản Grizzly. Dịch vụ này hứa hẹn sẽ hỗ trợ nhiều loại hardware/software load balancer khác nhau như Cisco ACE, F5 BigIP, HAProxy, LVS,… tất cả đều được điều khiển, giao tiếp một cách nhất quán thông qua RESTful API, console hay WebUI.

Các feature hiện có trong bản Havana

  • Load balance network traffic for instances
  • Multi-tenant & isolation: mỗi server/device LB có thể serve nhiều tenant cùng lúc
  • External access: map public/floating IP to VIP
  • Providers: HAProxy
  • Methods: Round robin, Least connections, Source IP
  • Protocols: TCP, HTTP, HTTPS
  • Session persistence: Source IP, HTTP cookie, APP cookie
  • Health monitors: ICMP (ping), TCP, HTTP, HTTPS
  • Connection limit per-VIP
  • Pool stats: bytes_in, bytes_out, active_connections, total_connections

Các feature nên có trong tương lai

  • Support more HW/SW LBs: F5 BigIP, LVS,…
  • Support more protocols: UDP (DNS),…
  • Stats: more details aggregate & per-VIP, per-server connections/s, traffic; available for Ceilometer
  • Auto scaling: monitor service load –> define threshold –> auto spawn & add/remove VMs to pool
  • High available & fail-over: config LBs run as active/active, active/passive modes
  • SSL offload/acceleration: giảm CPU load cho back-end VMs –> LB sẽ encrypt/decrypt SSL traffic (như HTTPS), packet đi tới back-end VMs là non-SSL.
  • L7 traffic shaping: traffic được route dựa trên layer-7 parameters như request URI, HTTP header, vd, *.jpg đi tới static clusters, *.php đi tới PHP clusters.
  • DoS/DDoS protection: phân tích packet/stats đi qua LB để detect & prevent các loại DoS attack.

Một số ghi chú khi vận hành

  • LB và VMs trong pool phải thuộc cùng subnet
  • LB của pool hiện chỉ được phép có một VIP
  • Add được nhiều kiểu health check monitor cho một pool, VM phải pass all checks mới có thể serve
  • Hai cách để disable VM trong pool: set Admin State = False, Weight = 0

Architecture & Workflow

https://wiki.openstack.org/wiki/Neutron/LBaaS/Architecture

-mt.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s