Thứ sáu, 04/11/2016 | 00:00 GMT+7

Tính khả dụng cao là gì?

Với nhu cầu ngày càng tăng về cơ sở hạ tầng tin cậy và hiệu suất được thiết kế để phục vụ các hệ thống quan trọng, các thuật ngữ về khả năng mở rộng và tính sẵn sàng cao không thể phổ biến hơn. Trong khi việc xử lý tải hệ thống tăng lên là mối quan tâm chung, việc giảm thời gian chết và loại bỏ các điểm lỗi đơn lẻ cũng quan trọng không kém. Tính sẵn sàng cao là chất lượng của thiết kế cơ sở hạ tầng trên quy mô nhằm giải quyết những vấn đề sau này.

Trong hướng dẫn này, ta sẽ thảo luận về tính khả dụng cao chính xác nghĩa là gì và cách nó có thể cải thiện độ tin cậy của cơ sở hạ tầng của bạn.

Tính khả dụng cao là gì?

Trong máy tính, thuật ngữ tính khả dụng được sử dụng để mô tả khoảng thời gian khi một dịch vụ khả dụng, cũng như thời gian mà hệ thống yêu cầu để phản hồi yêu cầu của user . Tính sẵn sàng cao là chất lượng của hệ thống hoặc thành phần đảm bảo hiệu suất hoạt động ở mức độ cao trong một khoảng thời gian nhất định.

Đo tính khả dụng

Tính khả dụng thường được biểu thị dưới dạng phần trăm cho biết thời gian hoạt động dự kiến ​​từ một hệ thống hoặc thành phần cụ thể trong một khoảng thời gian nhất định, trong đó giá trị 100% sẽ cho biết rằng hệ thống không bao giờ bị lỗi. Ví dụ: một hệ thống đảm bảo 99% tính khả dụng trong repository ảng thời gian một năm có thể có thời gian ngừng hoạt động lên đến 3,65 ngày (1%).

Các giá trị này được tính toán dựa trên một số yếu tố, bao gồm cả thời gian bảo trì theo lịch trình và đột xuất, cũng như thời gian khôi phục sau sự cố hệ thống có thể xảy ra.

Tính sẵn sàng cao hoạt động như thế nào?

Tính sẵn sàng cao có chức năng như một cơ chế phản hồi lỗi cho cơ sở hạ tầng. Cách thức hoạt động của nó khá đơn giản về mặt khái niệm nhưng thường yêu cầu một số phần mềm và cấu hình chuyên dụng.

Khi nào thì tính khả dụng cao là quan trọng?

Khi cài đặt hệ thống production mạnh mẽ, giảm thiểu thời gian ngừng hoạt động và gián đoạn dịch vụ thường được ưu tiên cao. Dù hệ thống và phần mềm của bạn tin cậy đến mức nào, các sự cố có thể xảy ra có thể làm hỏng các ứng dụng hoặc server của bạn.
Các bác sĩ cho biết thêm:
Triển khai tính sẵn sàng cao cho cơ sở hạ tầng của bạn là một chiến lược hữu ích để giảm tác động của các loại sự kiện này. Các hệ thống khả dụng cao có thể tự động phục hồi sau lỗi server hoặc thành phần.

Điều gì làm cho một hệ thống khả dụng cao?

Một trong những mục tiêu của tính sẵn sàng cao là loại bỏ các điểm lỗi đơn lẻ trong cơ sở hạ tầng của bạn. Một điểm lỗi duy nhất là một thành phần của ngăn xếp công nghệ của bạn có thể gây ra gián đoạn dịch vụ nếu nó không khả dụng. Do đó, bất kỳ thành phần nào là điều kiện cần cho chức năng thích hợp của ứng dụng của bạn mà không có dự phòng đều được coi là một điểm lỗi duy nhất.
Các bác sĩ cho biết thêm:
Để loại bỏ các điểm lỗi đơn lẻ, mỗi lớp trong ngăn xếp của bạn phải được chuẩn bị để dự phòng. Ví dụ: hãy tưởng tượng bạn có một cơ sở hạ tầng bao gồm hai web server dự phòng giống hệt nhau đằng sau bộ cân bằng tải. Lưu lượng đến từ các client sẽ được phân bổ đồng đều giữa các web server , nhưng nếu một trong các server gặp sự cố, bộ cân bằng tải sẽ chuyển hướng tất cả lưu lượng đến server trực tuyến còn lại.

Lớp web server trong trường hợp này không phải là một điểm bị lỗi vì:

  • các thành phần dự phòng cho cùng một nhiệm vụ được đặt ra
  • cơ chế trên cùng của lớp này (bộ cân bằng tải) có thể phát hiện lỗi trong các thành phần và điều chỉnh hành vi của nó để khôi phục kịp thời

Nhưng điều gì sẽ xảy ra nếu bộ cân bằng tải hoạt động offline ?

Với tình huống được mô tả, điều này không hiếm gặp trong cuộc sống thực, bản thân lớp cân bằng tải vẫn là một điểm lỗi duy nhất.Tuy nhiên, việc loại bỏ điểm thất bại duy nhất còn lại này có thể là một thách thức; mặc dù bạn có thể dễ dàng cấu hình bộ cân bằng tải bổ sung để đạt được khả năng dự phòng, nhưng không có điểm rõ ràng nào bên trên bộ cân bằng tải để thực hiện phát hiện và khôi phục lỗi.

Chỉ riêng dự phòng không thể đảm bảo tính khả dụng cao. Phải có cơ chế để phát hiện lỗi và thực hiện hành động khi một trong các thành phần của ngăn xếp của bạn không khả dụng.

Việc phát hiện và khôi phục lỗi cho các hệ thống dự phòng có thể được thực hiện bằng cách tiếp cận từ trên xuống dưới: lớp trên cùng có trách nhiệm giám sát lớp ngay bên dưới để tìm lỗi. Trong kịch bản ví dụ trước của ta , bộ cân bằng tải là lớp trên cùng. Nếu một trong các web server (lớp dưới cùng) không khả dụng, bộ cân bằng tải sẽ ngừng chuyển hướng các yêu cầu cho server cụ thể đó.

Sơ đồ 01: Cân bằng tải / Từ trên xuống dưới

Cách tiếp cận này có xu hướng đơn giản hơn, nhưng nó có những hạn chế: sẽ có một điểm trong cơ sở hạ tầng của bạn mà lớp trên cùng không tồn tại hoặc nằm ngoài tầm với, đó là trường hợp của lớp cân bằng tải. Tạo một dịch vụ phát hiện lỗi cho bộ cân bằng tải trong một server bên ngoài sẽ chỉ tạo ra một điểm lỗi mới.

Với một kịch bản như vậy, một cách tiếp cận phân tán là cần thiết. Nhiều nút dự phòng phải được kết nối với nhau thành một cụm trong đó mỗi nút phải có khả năng phát hiện và phục hồi lỗi như nhau.

Sơ đồ 02: Cụm / Phân tán

Tuy nhiên, đối với trường hợp cân bằng tải, có một sự phức tạp khác, do cách thức hoạt động của server định danh. Khôi phục sau lỗi bộ cân bằng tải thường nghĩa là chuyển đổi dự phòng sang bộ cân bằng tải dự phòng, nghĩa là phải thực hiện thay đổi DNS để trỏ domain đến địa chỉ IP của bộ cân bằng tải dự phòng. Một thay đổi như vậy có thể mất một khoảng thời gian đáng kể để được phổ biến trên Internet, điều này sẽ gây ra thời gian chết nghiêm trọng cho hệ thống này.

Một giải pháp khả thi là sử dụng cân bằng tải theo chu kỳ DNS . Tuy nhiên, cách tiếp cận này không tin cậy vì nó khiến ứng dụng phía client chuyển đổi dự phòng.

Một giải pháp mạnh mẽ và tin cậy hơn là sử dụng các hệ thống cho phép ánh xạ lại địa chỉ IP linh hoạt, chẳng hạn như IP nổi . Việc ánh xạ lại địa chỉ IP theo yêu cầu giúp loại bỏ các vấn đề về lan truyền và bộ nhớ đệm vốn có trong các thay đổi DNS bằng cách cung cấp một địa chỉ IP tĩnh có thể dễ dàng ánh xạ lại khi cần thiết. Tên domain có thể vẫn được liên kết với cùng một địa chỉ IP, trong khi bản thân địa chỉ IP được di chuyển giữa các server .

Đây là cách một cơ sở hạ tầng có tính khả dụng cao sử dụng IP Nổi trông như thế này:

Sơ đồ 03: Các IP nổi

Những thành phần hệ thống nào được yêu cầu để có tính khả dụng cao?

Có một số thành phần phải được xem xét cẩn thận để triển khai tính khả dụng cao trong thực tế. Hơn cả việc triển khai phần mềm, tính khả dụng cao phụ thuộc vào các yếu tố như:

  • Môi trường: nếu tất cả các server của bạn được đặt ở cùng một khu vực địa lý, một điều kiện môi trường như động đất hoặc lũ lụt có thể làm toàn bộ hệ thống của bạn bị hỏng. Việc có các server dự phòng ở các trung tâm dữ liệu và khu vực địa lý khác nhau sẽ làm tăng độ tin cậy.
  • Phần cứng: các server có tính khả dụng cao phải có khả năng phục hồi khi mất điện và lỗi phần cứng, bao gồm cả đĩa cứng và network interface .
  • Phần mềm: toàn bộ ngăn xếp phần mềm, bao gồm cả hệ điều hành và bản thân ứng dụng, phải được chuẩn bị để xử lý lỗi không mong muốn, chẳng hạn như có thể yêu cầu khởi động lại hệ thống.
  • Dữ liệu: mất dữ liệu và không nhất quán có thể do một số yếu tố gây ra và nó không bị giới hạn bởi lỗi đĩa cứng. Các hệ thống khả dụng cao phải tính đến an toàn dữ liệu trong trường hợp có sự cố.
  • Mạng: sự cố mất mạng ngoài kế hoạch đại diện cho một điểm có thể xảy ra lỗi khác đối với các hệ thống khả dụng cao. Điều quan trọng là phải có một chiến lược mạng dự phòng cho những thất bại có thể xảy ra.

Phần mềm nào được dùng để cấu hình tính khả dụng cao?

Mỗi lớp của một hệ thống có tính khả dụng cao sẽ có những nhu cầu khác nhau về phần mềm và cấu hình. Tuy nhiên, ở cấp độ ứng dụng, bộ cân bằng tải đại diện cho một phần mềm thiết yếu để tạo bất kỳ cài đặt tính sẵn sàng cao nào.

HAProxy (Proxy khả dụng cao) là một lựa chọn phổ biến để cân bằng tải, vì nó có thể xử lý cân bằng tải ở nhiều lớp và cho các loại server khác nhau, bao gồm cả server database .

Di chuyển lên trong ngăn xếp hệ thống, điều quan trọng là phải triển khai một giải pháp dự phòng tin cậy cho điểm nhập ứng dụng của bạn, thường là bộ cân bằng tải. Để loại bỏ điểm lỗi duy nhất này, như đã đề cập trước đây, ta cần triển khai một group các bộ cân bằng tải phía sau IP nổi. Corosync và Pacemaker là những lựa chọn phổ biến để tạo một cài đặt như vậy, trên cả server UbuntuCentOS .

Kết luận

Tính sẵn sàng cao là một tập hợp con quan trọng của kỹ thuật độ tin cậy, tập trung vào việc đảm bảo một hệ thống hoặc thành phần có hiệu suất hoạt động cao trong một khoảng thời gian nhất định. Thoạt nhìn, việc triển khai nó có vẻ khá phức tạp; tuy nhiên, nó có thể mang lại lợi ích to lớn cho các hệ thống yêu cầu tăng độ tin cậy.


Tags:

Các tin liên quan