Trong hệ thống mạng hiện đại ngày nay, SQL Server đóng vai trò rất quan trọng, lưu trữ dữ liệu cho các ứng dụng và dịch vụ như WebService, SharePoint, System Center…. Vì vậy việc xây dựng một hệ thống SQL có tính chịu lỗi (Failover) và khả năng sẵn sàng cao (High Availability) là hết sức cần thiết. Failover Cluster SQL Server (AlwaysOn) là 1 giải pháp toàn diện, đơn giản và linh hoạt hoạt động dựa trên nền tảng Windows Server Failover Clustering (WSFC).
SQL Server AlwaysOn cung cấp khả năng về HA & DR ở 2 level:
- Database: thông qua tính năng AlwaysOn Availability Group (AG)
- Instance: sử dụng AlwaysOn Failover Cluster Instance (FCI)
Giới thiệu tổng quan FAILOVER CLUSTER
Các chế độ đồng bộ:
- Asynchronous-commit mode: các transaction log của primary replica sẽ được gửi 1 cách không liên tục và không đồng bộ để commit ở secondary replica.
- Synchronous-commit mode: yêu cầu primary replica chỉ được commit transaction log sau khi transaction log đã được gửi đến và commit ở secondary replica.
Các chế độ Failover:
- Force Manual Failover (Force Failover): chỉ xảy ra khi cấu hình asynchronous-commit mode. Khôi phục dữ liệu sau thảm họa (DR) trong những trường hợp secondary replica không thể đồng bộ với primary replica và khi đó phải chấp nhận mất dữ liệu.
- Planned Manual Failover (Manual Failover): không mất dữ liệu do thực hiện failover 1 secondary replica thành primary replica vì 1 mục đích nào đó ví dụ như bảo trì/ nâng cấp/ thay thế primary replica hiện hành. Chỉ xảy ra khi secondary được cấu hình synchronous-commit mode và đã được đồng bộ (synchronized) với primary replica.
- Automatic Failover: không mất dữ liệu do quá trình failover sẽ tự động xảy ra giữa 1 synchronized secondary replica và primary. Chế độ đồng bộ giữa secondary replica và primary replica là synchronous-commit mode.
Triển khai FAILOVER CLUSTER trên SQL SERVER 2012
Chuẩn bị mô hình
Bài hướng dẫn này sử dụng 03 Servers sau:
Name |
IP |
OS |
Ghi chú |
dc.cloudviet.local |
172.16.1.10 |
Windows Server 2012 R2 Standard 64 Bit |
Đóng vai trò DC + DNS Server + nơi lưu trữ cho Cluster SQL |
Sql01.cloudviet.local |
172.16.1.1 |
SQL Server 2012 Node 1 |
|
Sql02.cloudviet.local |
172.16.1.2 |
SQL Server 2012 Node 2 |
Server DC đã được cài dặt và cấu hình Domain Controller + DNS Server. Các Node SQL đã được join vào domain cloudviet.local.
Chuẩn bị hệ thống lưu trữ cho Cluster SQL
Các ổ đĩa lưu trữ trên hệ thống phục vụ cho SQL Cluster gồm:
- Quorum disk: Lưu cấu hình Cluster windows.
- MsDTC disk (Microsoft Distributed Transaction Coordinator): Lưu các giao dịch, trao đổi qua lại giữa các Nodes.
- Database disk: Lưu dữ liệu.
Trên máy dc.cloudviet.local, chúng ta cài đặt iSCSI Target Server. Sau đó tạo ra các iSCSI Virtual Disks để cho phép các nodes sql01.cloudviet.local và sql02.cloudviet.local kết nối, lưu trữ dữ liệu thông qua giao thức iSCSI. Các bước cài đặt & cấu hình như sau:
Bước 1
Trong Windows, mở Server Manager, click Add roles and features. Click Next, … sau đó chọn iSCSI Target Server. Cuối cùng, nhất Close để hoàn thành:
Bước 2
Tiến hành tạo iSCSI Virtual Disk để các Node SQL kết nối và lưu trữ dữ liệu:
Tùy vào mục đích và nhu cầu có thể lựa chọn Partition hoặc Folder làm nơi lưu trữ:
Đặt tên cho ổ đĩa ảo:
Cấp phát dung lượng cho ổ đĩa ảo:
Ở phần iSCSI Target, chọn New iSCSI Target để các Server có thể kết nối và sử dụng các iSCSI Virtual Disk mà chúng ta đã tạo ở trên:
Đặt tên cho iSCSI Target:
Khai báo các IP của các server nào có thể kết nối đến và sử dụng tài nguyên trên các iSCSI Virtual Disk này:
Đơi quá trình khởi tạo iSCSI Virtual Disk:
Tiếp tục tạo thêm ClusterDisk 02 và 03 tương tự như trên:
2.3. Kết nối các nodes SQL Server đến hệ thống lưu trữ
Trên 2 máy sql01.cloudviet.local và sql02.cloudviet.local, thực hiện kết nối vào iSCSI Target bằng công cụ iSCSI Initiator:
Bước 1
Mở công cụ iSCSI Initator trên các Nodes tại phần Server Manager:
Bước 2
Nhập IP của iSCSI Targer Server và connect đến server này:
Bước 3
Kết nối thành công, nhấn OK để hoàn thành:
Bước 4
Vào Computer Management để kiểm tra:
Bước 5
Thực hiện các bước tương tự trên máy sql02.cloudviet.local.
Bước 6
Trên máy sql01.cloudviet.loca, mở Disk Management, bấm phải chuột lên Disk1 chọn
Online:
Bấm phải chuột lên Disk1 – Chọn Initialize Disk, sau đó bấm OK:
Bấm phải chuột lên vùng trống trên Disk1 – Chọn New Simple Volume sau đó thực hiện bấm Next trên New Simple Volume Wizard. Đặt tên là ClusterDisk01, nhấn Next để hoàn thành:
Bước 7
Thực hiện các bước tương tự để tạo thêm ClusterDisk 02 và 03. Kết quả cuối cùng như
sau:
2.4. Tạo Failover Cluster
Bước 1
Trên các nodes sql01.cloudviet.local và sql02.cloudviet.local chúng ta tiến hành cài đặt Feature Failover Cluster:
Bước 2
Trên sql01.cloudviet.local mở Failover Clustering Manager :
Bước 3
Trên Failover Clustering Manager, click chuột phải chọn Create Cluster. Nhấn Next:
Bước 4
Lần lượt đưa 2 Nodes SQL vào danh sách Selected servers, nhấn Next:
Bước 5
Chọn No, nhấn Next:
Bước 6
Nhập tên của Cluster, VD: SQLCluster, sau đó nhập IP của Cluster (IP chưa từng đc sử dụng):
Bước 7
Nhấn Next và Finish:
Bước 8
Kiểm tra lại trên cả 2 Nodes đều đã được add vào chung 1 Cluster:
2.5. Cài đặt SQL Server 2012 cho Node 01
Bước 1
Insert DVD cài đặt SQL Server 2012 vào máy sql01.cloudviet.local và chạy File Setup.exe. Chọn Installation – New SQL Server failover cluster installation, nhấn OK:
Bước 2
Chọn Free Edition hoặc nhập Key bản quyền, nhấn Next:
Bước 3
Chọn Select All (hoặc có thể tùy chọn theo nhu cầu), nhấn Next:
Bước 4
Trên khung Server Network Name đặt tên tùy ý cho SQL Cluster, nhấn Next, Next:
Bước 5
Chọn ổ đĩa lưu trữ cho SQL Cluster (mặc định đã được chọn sẵn), nhấn Next:
Bước 6
Trong khung IP Address, nhập một IP chưa sử dụng cho Cluster (172.16.1.4), nhấn Next:
Bước 7
Chỉ định 2 account SQL Server Agent và SQL Server Database Engine là account domain administrator (CLOUDVIET\Administrator). Nhập password ở khung Passsord – Nhấn
Next:
Bước 8
Add Current User – Nhấn Next, Next, Next, Install:
Sau khi quá trình cài đặt hoàn tất – Nhấn nút Close
Bước 9
Mở Failover Cluster Manager kiểm tra. Chọn SQLCluster.cloudviet.local – Roles. Bạn sẽ thấy role SQL Server (MSSQLSERVER) đang chạy (trạng thái Running):
Bước 10
Chọn SQLCluster.cloudviet.local – Storage – Disk: quan sát Cluster Disk 2 đã được sử dụng cho SQL Server (MSSQLSERVER):
2.6. Cài đặt SQL Server 2012 và kết nối Node 02 vào Failover Cluster
Bước 1
Insert DVD cài đặt SQL Server 2012 vào máy sql02.cloudviet.local và chạy File
Setup.exe. Chọn Installation – Add node to a SQL Server failover cluster, nhấn OK:
Bước 2
Thực hiện các bước tương tự như ở Node 01. Ta thấy SQL Server instance name đã cài đặt trước đó trên Node 01 – Nhấn Next:
Bước 3
IP Address của Cluster đã cấu hình trước đó – Nhấn Next:
Bước 4
Nhập password của account domain admin (CLOUDVIET\Administrator) ở khung Password – Nhấn Next, Next:
Bước 5
Nhấn Install. Sau khi quá trình cài đặt hoàn tất – Nhấn nút Close:
Kiểm tra hoạt động và khả năng chịu lỗi FAILOVER CLUSTER
Kiểm tra hoạt động của Cluster SQL
Bước 1
Kiểm tra trên Tab Roles thì hiện tại SQL Server MSSQLSERVER đang chạy trên Node SQL01:
Bước 2
Ta thực hiệện di chuyển MSSQLSERVER để running trên Node SQL02 như sau:
Chọn SQL02, bấm OK.
Chờ đợi quá trình di chuyển (trạng thái sẽ hiển thị là Pending):
Qúa trình di chuyển thành công, SQL Server (MSSQLSERVER) đang có trạng thái Running và đang có Owner Node là SQL02
3.2. Kiểm tra quá trình Failover của Cluster SQL
Bước 1
Hiện tại thời điểm này, MSSQLSERVER đang chạy trên Node SQL02. Ta tiến hành disable card mạng của Node SQL02:
Bước 2
Tại TAB Nodes, trạng thái của SQL02 đang là Down:
Bước 3
Chờ quá trình move hoàn tất, MSSQLSEVER sẻ running trên Owner Node là SQL01:
Kết luận
Trong bài trên chúng tôi đã hướng dẫn cài đặt và cấu hình FAILOVER CLUSTER SQL SERVER 2012.