| ]

Giới thiệu

Khi khách hàng tìm cách khắc phục tình trạng điểm lỗi đơn (Single Point of Failure) cho ứng dụng Data base của họ thì thường triển khai giải pháp clustering. Kiến trúc cluster được sử dụng bởi cả Oracle Real Application Clusters (RAC) và Failover Clusters.

RAC là giải pháp duy nhất cung cấp khả năng mở rộng linh hoạt và tính sẵn sàng cao cho ứng dụng cơ sở dữ liệu. Giải pháp này tốt hơn Failover Clustering vốn có sẵn trên hầu hết các nền tảng hiện nay. Failover Clustering là giải pháp cung cấp tính sẵn sàng cao hơn 1 máy chủ đơn lẻ nhưng mức độ phục vụ sẵn sàng lại thấp hơn những gì bạn có thể đạt được với RAC và bạn sẽ không có được khả năng mở rộng linh hoạt và tận dụng tài nguyên hệ thống như đối với RAC.

Failover Cluster là một giải pháp dạng active-passive cung cấp tính sẵn sàng cao cho ứng dụng cơ sở dữ liệu bằng cách giám sát các hỏng hóc và tái khởi động cơ sở dữ liệu.

Failover Clustering

Giải pháp Failover Clustering được cung cấp bởi các nhà sản xuất phần mềm cluster ngày nay bao gồm cả Oracle Clusterware. Mô hình triển khai của một hệ thống Failover cluster thường là gồm 2 máy chủ (node) trong đó mỗi node có thể chạy một hay nhiều cơ sở dữ liệu Oracle. Cơ sở dữ liệu chỉ chạy trên 1 node tại cùng 1 thời điểm. Cơ sở dữ liệu Oracle được đặt dưới sự kiểm soát của phần mềm cluster chẳng hạn như nó khởi động, dừng một cách tự động và được giám sát bởi phần mềm cluster.

Nếu tiến trình database xảy ra lỗi, phần mềm cluster sẽ nhận ra sự cố và tái khởi động tiến trình mà người quản trị không hề hay biết. Nếu một node bị hỏng thì việc lưu trữ, tiến trình cơ sở dữ liệu và các tiến trình phụ thuộc khác sẽ được chuyển sang node còn lại và tái khởi động. Ứng dụng phải chịu một khoảng thời gian đình trệ để phần mềm cluster có thể nhận ra sự cố, tái cấu hình cluster và hoàn tất quá trình failover. Tuỳ thuộc vào kích thước và mức độ phức tạp của môi trường ứng dụng, quá trình failover có thể mất 1-2 phút, 20-30 phút hoặc hơn nữa. Nếu node dự phòng đang xử lý các công việc khác thì nó có thể trở nên bị quá tải. Do đó để đảm bảo khả năng xử lý, bạn sẽ phải mua gấp đôi lượng tài nguyên mà ứng dụng của bạn đòi hỏi.


Mô hình giải pháp Failover Clustering

Oracle Real Application Clusters (RAC)

Một cơ sở dữ liệu RAC là cơ sở dữ liệu được bó lại (clustered databse). Một hệ cluster là một nhóm các máy chủ độc lập hợp lại như một hệ thống đơn lẻ. Cluster cải thiện khả năng chịu lỗi và cho phép phát triển hệ thống lớn lên theo dạng module qua các hệ thống đa xử lý đối xứng đơn lẻ (single multi-processor – SMP). Trong trường hợp một hệ thống xảy ra lỗi, hệ thống cluster đảm bảo tính sẵn sàng cao đối với người dùng.
Cùng với tính sẵn sàng cao, RAC còn cung cấp cho bạn khả năng mở rộng linh hoạt. Thay vì phải trang bị các server đủ lớn để đáp ứng được mức tải cho ứng dụng của bạn như khi sử dụng giải pháp Failover Clustering, RAC cho phép bạn phân chia tải ra nhiều máy chủ trong cùng cluster. Do đó thay vì mua một vài máy chủ lớn thì bạn có thể nhiều máy chủ nhỏ hơn để giảm thiểu tác động của các sự cố về máy chủ.

Ví du: nếu bạn có 2 máy chủ trong cluster và 1 trong số đó bị hỏng, bạn sẽ mất 50% tài nguyên, đồng nghĩa với 50% người dùng sẽ bị ảnh hưởng. Nếu bạn có 4 máy chủ trong cluster và 1 trong số đó bị hỏng, bạn chỉ bị mất có 25% tài nguyên và 25% người dùng bị ảnh hưởng. Do đó, để cung cấp cùng một mức tài nguyên cho ứng dụng khi có sự cố, bạn chỉ cần bổ sung 25% tài nguyên thay vì là 50%.

Tóm tắt

Failover Clustering

· Giải pháp Failover Clustering có ưu điểm là chi phí đầu tư thấp do không cần có hệ thống SAN.
· Tuy nhiên hiệu quả đầu tư lại thấp hơn RAC, mà nguyên nhân chủ yếu là khách hàng phải đầu tư nhiều máy chủ đủ mạnh để có thể đáp ứng được toàn bộ nhu cầu xử lý của ứng dụng, nhưng trong cùng một lúc lại chỉ sử dụng được 1 máy.
· Ngoài ra, khách hàng sẽ phải chịu một khoảng thời gian ngừng trệ khi xảy ra sự cố trên hệ thống dùng giải pháp Failover Clustering.

Real Application Cluster - RAC

· Trong khi đó, với RAC thì khách hàng có thể khai thác được năng lực xử lý của tất cả máy chủ có trong hệ cluster, đồng thời có thể phân chia tải trên các node.
· Đặc điểm vượt trội của RAC so với Failover Clustering là RAC không có thời gian “chết” khi xảy ra sự cố trên một vài máy chủ, người dùng vẫn nhìn thấy hệ thống hoạt động một cách liên tục.
· Do RAC có khả năng chia tải trên các node nên khách hàng có sử dụng nhiều server nhỏ thay vì các server cỡ lớn, điều này giúp giảm thiểu mức độ ảnh hưởng đến hiệu suất chung của hệ thống cluster khi có 1 vài máy chủ bị sự cố.
· RAC mang lại khả năng mở rộng linh hoạt, khách hàng dễ dàng bổ sung tài nguyên phần cứng tuỳ vào mức độ phát triển về nhu cầu xử lý của ứng dụng. Xét về lâu dài thì RAC giúp bảo vệ chi phí đầu tư cho khách hàng.

Kết luận

Mặc dù chi phí đầu tư cho giải pháp RAC cao hơn Failover Clustering nhưng những lợi ích mà nó mang lại thì rất xứng đáng.