
Hệ thống máy chủ có tầm quan trọng rất lớn đối với một doanh nghiệp nên việc duy trì hệ thống đó luôn hoạt động là một bài toán khó đối với các quản trị viên. Cho dù các hãng sản xuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng những hỏng hóc đối với các thiết bị mạng nói chung và các máy chủ nói riêng là điều không thể tránh khỏi.
Ở bài viết này, Vinahost xin được giới thiệu với các bạn một giải pháp đảm bảo cho hệ thống vẫn hoạt động tốt ngay cả khi có sự cố xảy ra đối với máy chủ sử dụng Windows server. Đó là giải pháp Failover clustering
1. Failover clustering là gì?
Windows failover clustering là công nghệ của Microsoft cung cấp tính sẵn sàng cao (High Availability) tại cấp độ máy chủ. Windows failover clustering sử dụng nhiều server tạo thành một nhóm hoặc cụm gọi là cluster. Mỗi server trong cluster được gọi là một node, và các node làm việc cùng nhau để tạo thành cluster. Tất cả các node trong một failover cluster liên tục giao tiếp với nhau. Nếu một trong các server trong cluster gặp sự cố, khi đó một trong các server khác trong cluster sẽ đảm nhận khối lượng công việc của server bị lỗi đó. Quá trình này được gọi là failover. Node bị hỏng đó sẽ được khôi phục lại. Quá trình này được gọi là failback.
Khi hệ thống có node bị downtime, Windows failover cluster sẽ khởi động lại các dịch vụ bị lỗi hay các ứng dụng trên một trong các node còn lại. Thời gian cần thiết để hoàn thành failover phụ thuộc một phần vào phần cứng được sử dụng và phần còn lại là vào chất lượng của dịch vụ hoặc ứng dụng.

2. Các thành phần của Windows Failover Cluster
2.1 Cluster node
Mỗi server tham gia trong cluster được gọi là một cluster node. Chúng cần được kết nối với nhau. Các cluster node phải liên lạc thường xuyên với nhau để xác định tình trạng của từng node. Kết nối này được gọi là cluster heartbeat. Tất cả cluster node cần phải chạy cùng một phiên bản của Windows Server.
2.2 Cluster service
Cluster Service là thành phần chính để điều khiển hoạt động của failover cluster. Cluster Service chạy trên tất cả cluster node và được quản lý bởi Failover Cluster Manager.
2.3 Địa chỉ IP ảo và tên của Cluster
Địa chỉ IP ảo và tên cluster được đặt duy nhất cho các cluster, và chúng khác nhau về giá trị tùy thuộc vào từng cluster node. Địa chỉ IP ảo và tên cluster là các thông tin mà các client đã kết nối với nhau sử dụng để kết nối với cluster. Điều này cho phép các client minh bạch trong kết nối với cluster service và application sau quá trình failover.
2.4 Cluster Quorum
Mục đích của các cluster quorum là xác định node nào sẽ tham gia vào cluster trong trường hợp hỏng phần cứng, mạng ngừng hoạt động và các cluster node không giao tiếp được với nhau.
Windows failover cluster hỗ trợ nhiều loại quorum để giải quyết các cách sắp xếp cluster và sự khác nhau về số lượng node.
2.5 Service và Application
Các service và application của cluster về cơ bản được định nghĩa là duy nhất trong failover. Trong các phiên bản trước của failover clustering, chúng đã được định nghĩa như là các nhóm tài nguyên. Tại bất kỳ thời điểm nào service hoặc application chỉ được sở hữu bởi một cluster node. Nếu cluster node đó bị fail thì cluster node khác sẽ sỡ hữu nhóm resource và khởi động trên node đó. Ta có thể cấu hình các node ưu tiên mà một service hay application sẽ failover. Các tài nguyên sẽ được kiểm tra trạng thái bằng một công cụ có tên là LooksAlive, nó sẽ kiểm tra tình trạng hoạt động cho các application. Mặc định thì SQL Server dùng LooksAlive để test trạng thái 5s/lần.
Cluster yêu cầu phải có 1 ổ lưu trữ chung vì nó không thể xây dựng bằng cách truy cập lưu lượng trực tiếp được. Ổ lưu trữ chung ở đây có thể dùng iSCSI SAN (storage area network) hoặc Fibre Channel SAN. Đối với SQL Server một shared disk resource chứa tất cả hệ thống và user database, log, các FileStream, và tích hợp file full-text search. Trong trường hợp failover, các đĩa được định vị vào một backup node, và khi đó dịch vụ SQL Server sẽ được khởi động lại trên node đó.
3. Chức năng
Windows failover clustering cung cấp các chức năng chính sau:
- Automatic failover: khi một node fail, cluster sẽ tự động chuyển các service đến một node dự phòng khác.
- Rapid failover: quá trình failover hoàn tất chỉ trong khoảng 30s.
- Transparent to clients: sau khi failover, các client có thể ngay lập tức kết nối lại vào cluster mà không phải thay đổi đường mạng khác.
- Transactional integrity: Không bị mất dữ liệu. Đối với SQL Server, tất cả các committed transaction được lưu và cấp lại cho database sau khi quá trình failover hoàn tất.