Thursday, November 21, 2024

[Openstack HA] Phần 2 – Công nghệ High availability được sử dụng trong Openstack

-

High availability là một thuộc tính của hệ thống mà ở đó hệ thống luôn sẵn sàng và hoạt động mà không có thời gian downtime hoặc gián đoạn.

High availability không chỉ đơn thuần là việc giữ cho một máy chủ hoặc một ứng dụng hoạt động liên tục, mà còn liên quan đến tất cả các thành phần của hệ thống, bao gồm cả phần cứng và phần mềm.

Cả phần cứng như server, resource, network và phần mềm như hệ điều hành, ứng dụng đều quan trọng trong việc đảm bảo HA.

Dưới đây là một danh sách các công nghệ phần cứng và phần mềm phổ biến được sử dụng để xây dựng hệ thống HA.

Tài liệu tham khảo: https://docs.openstack.org/ha-guide/intro-ha-common-tech.html

1. Hardware.

Sử dụng các công nghệ khác nhau để kích hoạt high availability ở cấp độ phần cứng cung cấp một cơ sở tốt để xây dựng một hệ thống có độ sẵn sàng cao. Các phần tiếp theo chúng ta sẽ thảo luận về các công nghệ phổ biến nhất được sử dụng trong Openstack.

Dự phòng Switch.

Điểm đơn lỗi (Single Point of Failure – SPOF) là một phần của hệ thống mà nếu nó gặp sự cố, sẽ làm cả hệ thống ngừng hoạt động. Trong trường hợp này, nếu một switch gặp sự cố, nó có thể làm cả mạng ngừng hoạt động.

Cách để giảm bớt SPOF là trong mô hình active/active, cả hai switch đều hoạt động và chia sẻ tải. Với mô hình active/passive, một switch hoạt động và switch kia đóng vai trò dự phòng, sẵn sàng hoạt động nếu switch chính gặp sự cố.

Hệ thống mạng nên được thiết kế sao cho có nhiều đường dẫn giữa các điểm, giúp đảm bảo rằng nếu một đường dẫn gặp sự cố, dữ liệu có thể được chuyển tiếp qua đường dẫn khác.

Bonded interfaces.

Bonded interfaces có nghĩa là hai (hoặc nhiều hơn) interfaces mạng vật lý trên cùng một máy chủ được cấu hình để hoạt động như một interfaces duy nhất. Mục đích của việc này là để tăng băng thông, cung cấp sự dự phòng, hoặc cả hai.

Trong chế độ active/passive, chế độ này chỉ có một interfaces hoạt động tại một thời điểm. Nếu interfaces đang hoạt động gặp sự cố, hệ thống sẽ tự động chuyển sang sử dụng interfaces dự phòng.

Trong chế độ active/active, tất cả các interfaces đều hoạt động cùng một lúc, chia sẻ tải lưu lượng mạng. Nếu một interfaces gặp sự cố, hệ thống sẽ tự động phân phối lại lưu lượng mạng đến các interfaces khác.

Load balancers.

Load balancers là thiết bị hoặc phần mềm được thiết kế để phân phối lưu lượng mạng đến nhiều máy chủ hoặc dịch vụ, giúp tăng hiệu suất và độ tin cậy của hệ thống. Chúng có thể được cấu hình để phân phối lưu lượng mạng dựa trên nhiều tiêu chí khác nhau, như tải của máy chủ, thời gian phản hồi, hoặc cả hai.

Bạn có thể cấu hình hai (hoặc nhiều hơn) load balancers để hoạt động cùng một lúc (active/active) hoặc một hoạt động và một dự phòng (active/passive), giúp giảm thiểu rủi ro nếu một load balancer gặp sự cố.

Load balancers giúp phân phối lưu lượng mạng đến các máy chủ hoặc dịch vụ hoạt động cùng một lúc trong hệ thống, giúp tăng hiệu suất và độ tin cậy.

Storage.

Trong một đơn vị lưu trữ vật lý, các thành phần như ổ đĩa, bộ điều khiển, interfaces I/O và nguồn điện đều có các thành phần dự phòng. Nếu một thành phần gặp sự cố, thành phần dự phòng sẽ tự động hoạt động, giúp đảm bảo đơn vị lưu trữ vẫn hoạt động.

Dữ liệu được sao chép (replicate) giữa các server lưu trữ vật lý khác nhau. Nếu một node gặp sự cố, hệ thống có thể chuyển sang sử dụng dữ liệu từ server dự phòng, giúp đảm bảo dữ liệu luôn sẵn sàng cho việc truy cập.

2. Software.

HAproxy.

HAProxy là một phần mềm mã nguồn mở được sử dụng rộng rãi để cân bằng tải và phân phối lưu lượng mạng cho các ứng dụng web.

HAProxy có thể xử lý lượng truy cập web lớn và cung cấp cân bằng tải ở Layer 7 (tức là cân bằng tải dựa trên nội dung HTTP).

HAProxy có khả năng hỗ trợ hàng chục nghìn kết nối đồng thời.

Bạn nên cài đặt HAProxy trên nhiều máy chủ để tránh tình trạng một máy chủ gặp sự cố dẫn đến hệ thống không hoạt động.

Bạn cũng có thể đảm bảo độ sẵn sàng bằng các công cụ khác ví dụ sử dụng Keepalived hoặc Pacemaker.

Ngoài ra, bạn có thể sử dụng các giải pháp cân bằng tải thương mại, có thể là phần cứng hoặc phần mềm, tùy thuộc vào yêu cầu cụ thể của hệ thống.

Keepalived.

Keepalived là một phần mềm mã nguồn mở chạy trên Linux, cung cấp cơ chế để cân bằng tải và đảm bảo độ sẵn sàng cao (high availability) cho các dịch vụ mạng.

Keepalived hoạt động như một daemon (một chương trình chạy nền) trên hệ thống Linux, giám sát các dịch vụ hoặc hệ thống. Nếu một dịch vụ hoặc hệ thống gặp sự cố, Keepalived sẽ tự động chuyển lưu lượng mạng sang một dịch vụ hoặc hệ thống dự phòng, giúp đảm bảo độ sẵn sàng cao.

Pacemaker.

Pacemaker là một giải pháp mã nguồn mở giúp cung cấp tính sẵn sàng cao cho các ứng dụng chạy trên Linux. Nó thường được sử dụng trong các môi trường cloud như OpenStack.

Corosync là một dịch vụ mạng giúp các node trong cụm giao tiếp với nhau. Pacemaker sử dụng Corosync để đảm bảo giao tiếp đáng tin cậy giữa các node.

Pacemaker sử dụng các tác nhân tài nguyên (Resource Agents – RAs) để quản lý các ứng dụng. Các RAs này là các script mô tả cách khởi động, dừng và kiểm tra tình trạng của các ứng dụng.

Các tác nhân tài nguyên phải tuân theo một trong các tiêu chuẩn quy định cách họ tương tác với hệ thống, bao gồm OCF (Open Cluster Framework), SysV Init, Upstart hoặc Systemd.

Pacemaker hỗ trợ nhiều tác nhân tài nguyên sẵn có, nhưng cũng cho phép bạn mở rộng bằng cách sử dụng các tác nhân tài nguyên tùy chỉnh.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories