HostingViet | Công ty Cổ phần Công nghệ số Thiên Quang

High Availability Là Gì? Cách Xây Dựng Hệ Thống High Availability

Tư vấn dịch vụ - Các dịch vụ Cloud, Server, Hosting & Phần mềm | 2023-12-21 17:13:35+07

High availability là gì?

High availability có nghĩa “Độ sẵn sàng cao”. Tức là những máy chủ hoặc thiết bị luôn trong tình trạng sẵn sàng phục vụ, giảm thiểu khả năng gián đoạn của hệ thống. Hoặc có thể hiểu đơn giản High availability là một giải pháp hoặc quy trình hay công nghệ nhằm thực hiện chức năng đảm bảo cho ứng dụng, cơ sở dữ liệu có thể truy cập được 24/7 trong mọi điều kiện.

Để có thể thực hiện được điều này, cơ chế cần tối thiểu 2 máy chủ cùng chạy song song và hoạt động liên tục. Nếu xảy ra tình huống một máy chủ gặp sự cố thì máy còn lại sẽ thay thế nhằm giúp hệ thống vẫn tiếp tục hoạt động bình thường. 

Lợi ích của high availability server là gì?

Giải pháp High Availability

Về cơ bản sẽ có 5 giải pháp thiết lập high availability cho database trong MS SQL Server. Cụ thể:

Replication

Theo giải pháp này thì dữ liệu gốc được sao đến điểm đích thông qua tác vụ sao chép (agent/job). Đồng thời, dùng công nghệ ở mức độ đối tượng. 

Một vài thuật ngữ trong Replication:

Log Shipping

Thông qua tác vụ sao lưu Transaction Log, dữ liệu gốc sẽ được sao chép đến điểm đích và dùng công nghệ ở mức độ cơ sở dữ liệu. 

Các thuật ngữ cần biết:

Mirroring

Thiết lập high availability cho database trong MS SQL Server bằng cách sao chép dữ liệu sơ cấp sang thứ cấp thông qua các giao dịch mạng, nhờ sự hỗ trợ của các điểm kết nối hình chiếu với số cổng. Đồng thời, sử dụng công nghệ cấp độ cơ sở dữ liệu.

Các thuật ngữ cần biết:

Clustering

Cách thiết lập high availability này sử dụng dữ liệu đã lưu trữ tại địa điểm chung, dùng cho máy chủ sơ cấp và thứ cấp. Giải pháp này sử dụng công nghệ ở mức bản cài (instance) và phải thiết lập Windows Clustering tại khu vực lưu trữ chung. 

Các thuật ngữ cần biết:

AlwaysON Availability Groups

Dữ liệu sơ cấp được chuyển sang thứ cấp bằng các giao dịch mạng. Và dùng công nghệ ở mức độ nhóm cơ sở dữ liệu. Với cách này thì Windows Clustering không cần thiết lập nơi lưu trữ chung. 

Các thuật ngữ cần biết:

Trong phạm vi chia sẻ của bài viết này, Hosting Việt sẽ hướng dẫn thực hiện cấu hình high availability là gì cho Mirroring và Log Shipping

- Bước 1: Lấy bản đầy đủ và bản sao T-log của cơ sở dữ liệu gốc

Ví dụ:

Cấu hình Mirroring/Log Shipping cho cơ sở dữ liệu TestDB với các thông tin sau:

Để lấy sao lưu đầy đủ và T-log trên máy chủ nguồn. Bạn kết nối tới SQL Server Testinstance, mở truy vấn mới và sử dụng đoạn mã dưới đây.

Backup database TestDB to disk = 'D:\testdb_full.bak'
GO
Backup log TestDB to disk = 'D:\testdb_log.trn'

- Bước 2: Sao chép tập tin sao lưu đến máy chủ đích

Trong ví dụ trên, chỉ có một máy chủ vật lý cùng 2 bản SQL Server Instance nên không cần thực hiện thao tác sao chép. Tuy nhiên, nếu có 2 bản SQL Server Instance ở 2 máy chủ vật lý thì cần sao chép 2 tập tin đến máy chủ thứ cấp, nơi cài Devinstance.

Bước 3: Khôi phục cơ sở dữ liệu bằng tập tin sao lưu trên máy chủ đích với việc sử dụng lựa chọn norecovery

Ví dụ:

Restore database TestDB from disk = 'D:\TestDB_full.bak'
with move 'TestDB' to 'D:\DATA\TestDB_DR.mdf',
move 'TestDB_log' to 'D:\DATA\TestDB_log_DR.ldf',
norecovery
GO
Restore database TestDB from disk = 'D:\TestDB_log.trn' with norecovery

- Bước 4: Cấu hình high availability (Log Shipping/Mirroring).

Ví dụ:

Xây dựng hệ thống High Availability

Như chia sẻ phần trên, high availability cần sử dụng ít nhất 2 server chạy song song để đảm bảo việc chuyển tiếp thông tin không bị gián đoạn. 

Vì thế, khi xây dựng giải pháp high availability cần tính đến khả năng xảy ra sự cố và thiết kế dự phòng ở các nơi cần thiết: 

Server Redundancy (Máy chủ dự phòng)

Máy chủ này được cài đặt trong hệ thống mạng cần lưu trữ các thông tin quan trong. Trong trường hợp bình thường, máy chủ dự phòng ở chế độ offline. Còn khi máy chủ chính gặp sự cố thì máy chủ dự phòng sẽ được bật.

Router Redundancy (Tuyến dự phòng)

Tuyến dự phòng được thiết kế nhằm thực hiện 2 mục đích: cân bằng tải và tăng tính sẵn sàng.

Đây là cách chia nhỏ số lượng công việc trên một thiết bị thành nhiều thiết bị tương ứng để xử lý yêu cầu nhanh và hiệu quả hơn. 

Thực tế, các website của những doanh nghiệp lớn thường gặp vấn đề về traffic nên load balancing chính là giải pháp cần thiết, nhằm định tuyến yêu cầu truy cập đến các host server khác nhau.

Phần lớn các giao thức định tuyến IP đều cân bằng tải trên các liên kết song song. Do đó, cần sử dụng tối đa đường dẫn, thay đổi số lượng liên kết để router thực hiện cân bằng tải, mặc định là 4 và tối đa 6 đường.

Thông thường, cứ 2 server được sử dụng để cân bằng tải thì sẽ phải có thêm 1 server thực hiện nhiệm vụ quyết định server nào đảm nhận công việc. Vì thế, load balancing cần nhiều thiết bị để cài đặt và chúng được tích hợp với các dịch vụ sao lưu, dự phòng dữ liệu. Thậm chí, trong một vài tình huống, thiết bị còn được đặt ở nhiều nơi khác nhau.

Đây là yếu tố quan trọng trong mọi hệ thống mạng. Có 4 nguyên tắc chính là Redundancy – Entanglement – Awareness – Persistence (viết tắt REAP).

+ Kiểm tra và kịp thời phát hiện sự cố.

+ Chuyển dự phòng sang server khác.

+ Kết nối lại với người truy cập.

Các thiết bị trong mạng chuyển mạch có thể được liên kết dự phòng với nhau, nhằm giúp giảm thiểu thời giang down mạng. Tuy nhiên, điều này khiến chúng có thể gây ra hiện tượng Broadcast-storm (tức là gửi nhiều gói tin quảng bá). Vì thế, cần đến một thuật toán để có thể tối ưu hoạt động giữa 2 trạm mạng. Điển hình là thuật toán Spanning Tree Protocol (STP)

STP sẽ thực hiện chức năng đảm bảo trong cùng một thời điểm sẽ chỉ có một đường tối ưu hoạt động giữa 2 trạm mạng. Còn các đường còn lại trở thành dự phòng. Khi có sự cố với đường chính thì nó sẽ được kích hoạt hoạt động. 

>>Xem thêm: Servlet là gì? Công dụng Servlet và Phân biệt giữa JSP và Servlet

Trên đây là chia sẻ của Hosting Việt về High Availability Là Gì? Cách Xây Dựng Hệ Thống High Availability! Hi vọng, bài viết mang đến cho bạn nhiều thông tin hữu ích, góp phần giúp tăng trải nghiệm lướt web. Nếu có thắc mắc gì bạn hãy comment ngay bên dưới để được chúng tôi hỗ trợ nhé!


Bài viết khác