Trong hệ thống mạng hiện đại ngày nay, SQL server đóng vai trò rất quan trọng, SQL lưu trữ dữ liệu cho các ứng dụng và dịch vụ như 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
Trong bài viết này tôi sẽ trình bày thao tác cài đặt và cấu hình Failover Cluster cho SQL Server 2012 trên Windows 2012 sử dụng dịch vụ lưu trữ iSCSI SAN Storage có sẵn trên Windows Server 2012
II- TRIỂN KHAI CHI TIẾT
Bài LAB sử dụng 3 server:
- DC2012 (IP Address 172.16.0.10) : Domain Controller (domain mcthub.local) chạy Windows Serrer 2012. Trong bài LAB, server này đảm nhận vai trò lưu trự cho Cluster (iSCSI Target Server)
- SQLSERVER1 (IP Address 172.16.0.21): Domain member chạy Windows Server 2012 đóng vai trò SQL Server (Node 1)
- SQLSERVER2 (IP Address 172.16.0.22): Domain member chạy Windows Server 2012 đóng vai trò SQL Server (Node 2)
Bài LAB gồm các bước chính sau đây
1- Chuẩn bị hệ thống lưu trữ
2- Kêt nối hệ thống lưu trữ
3- Tạo Failover Cluster
4- Cài đặt SQL Node 1
5- Kết nối SQL Node 2 vào Failover Cluster
6- Kiểm tra hoạt động và khả năng chịu lỗi
1- Chuẩn bị hệ thống lưu trữ
Trên máy DC2012, bạn cần cài đặt iSCSI Target Server

Sau đó tạo sẵn các iSCSI Virtual Disk và đưa và 1 iSCSI Target và cho phép 2 máy có IP address là 172.16.0.21 và 172.16.0.22 kết nối như hình bên dưới
1- Chuẩn bị hệ thống lưu trữ
Trên máy DC2012, bạn cần cài đặt iSCSI Target Server

Sau đó tạo sẵn các iSCSI Virtual Disk và đưa và 1 iSCSI Target và cho phép 2 máy có IP address là 172.16.0.21 và 172.16.0.22 kết nối như hình bên dưới
01pt;font-size:medium;font-family:'Times New Roman';color:#000000;">
Nếu bạn chưa từng thực hiện các thao tác này thì có thể tham khảo bài viết này để thực hiện chi tiết
2- Kêt nối hệ thống lưu trữ
Trên 2 máy SQLSERVER1 và SQLSERVER2, thực hiện kết nối vào iSCSI Target bằng công cụ iSCSI Initiator

Nhấn Yes để xác nhận khởi động dịch vụ Microsoft iSCSI services

Trong khung Target, nhập IP của iSCSI Target Server (172.16.0.10) - Nhấn nút Quick Connect

Kiểm tra trạng thái kết nối là Connected - Nhấn nút Done

Nhấn OK

Tiếp theo bạn cần tạo volume từ các đĩa đã kết nối. Trên máy SQLSERVER1, mở Disk Management, quan sát bạn đã kết nối được 3 ổ đĩa (Disk1, Disk2 và Disk3) . Bấm phải chuột lên Disk1 - ChọnOnline

Bấm phải chuột lên Disk1 - Chọn Initialize Disk

Nhấn OK

Tiếp theo bạn tạo 1 Simple volume. Bấm phải chuột lên vùng trống trên Disk1 - Chọn New Simple Volume

Thực hiện các bước tạo volume và định dạng để tạo và định dạng một volume tên là ClusterDisk1

Thực hiện tương tự để tạo và định dạng thêm 2 simple volume tên là ClusterDisk2 và ClusterDisk3

3- Tạo Failover Cluster
Trên cả 2 máy SQLSERVER1 và SQLSERVER2, cài đặt feature Failover Clustering

Trên SQLSERVER1, mở Failover Clustering Manager

Tạo một Failover Cluster: Bấm phải chuột lên Failover Cluster Manager - Chọn Create Cluster

Nhấn Next

Lần lượt đưa 2 máy SQLSERVER1 và SQLSERVER2 vào danh sách Selected servers - Nhấn Next

Chọn No …. Nhấn Next (tôi sẽ kiểm tra tính tương thích cho Cluster ở bước sau)

Khung Cluster Name: Nhập tên tùy ý cho Failover Cluster (tôi đặt tên là SQLCluster). Nhập IP tùy ý cho Cluster (172.16.0.100). Lưu ý IP này phải chưa được sử dụng. Nhấn Next

Khung Cluster Name: Nhập tên tùy ý cho Failover Cluster (tôi đặt tên là SQLCluster). Nhập IP tùy ý cho Cluster (172.16.0.100). Lưu ý IP này phải chưa được sử dụng. Nhấn Next
Kiểm tra đã đánh dấu Add all eligible storage to the cluster - Nhấn Next

Nhấn Finish

Chọn SQLCluster.mcthub.local - Storage - Disks - quan sát ClusterDisk3 đã được sử dụng làm Disk Witness Quorum

Tiếp theo tôi kiểm tra tính tương thích cho Failover Cluster bằng cách bấm phải chuột vào SQLCluster.mcthub.local - Chọn Validate Cluster

Nhấn Next

Chọn Run all tests - Nhấn Next

Nhấn Next

Nhấn Next

Sau khi quá trình kiểm tra hoàn tất, nhấn nút View Report để xem báo cáo

Quan sát báo cáo và bảo đảm rằng không có tiêu chí nào có kết quả là Fail - Đóng báo cáo

Nhấn nút Finish

4- Cài đặt SQL Node 1
Sau khi đã tạo Failover Cluster, tiếp theo tôi sẽ cài đặt SQL Server 2012 đầu tiên vào cluster. Trên máy SQLSERVER1, đưa đĩa cài đặt SQL Server 2012 vào DVD và chạy File setup.exe

Chọn Installation - New SQL Server failover cluster installation

Nhấn Show details để xem chi tiết - Nhấn OK

Chọn Specify a free edition. Nhấn Next (nếu bạn có bản quyền SQL Server 2012 thì có thể chọn Enter the product key và nhập key)

Chấp nhận thông tin bản quyền - Nhấn Next

Chương trình cài đặt yêu cầu cập nhật các bản update cần thiết - Nhấn Next (chú ý để hoàn tất bước này server cần có kết nối internet). Nếu không có kết nối internet, bản có thể bỏ qua quá trình cập nhật bằng cách bỏ dấu check Include SQL Server product updates

Nhấn Show details để xem chi tiết - Nhấn Next

Chọn SQL Server Feature Installation - Nhấn Next

Chọn các thành phần cần thiết tùy thuộc vào nhu cầu sử dụng SQL của bạn - Nhấn Next

Nhấn Show details để xem chi tiết - Nhấn Next

Khung SQL Server Network Name: Đặt tên tùy ý cho SQL Failover Cluster, tôi đặt là SQLCLU - Nhấn Next

Nhấn Next

Nhấn Next

Chọn đĩa tùy ý để lưu trữ thông tin của cluster - Mặc định chương trình cài đặt sẽ chọn đĩa đầu tiên. Tôi chọn ClusterDisk2 - Nhấn Next

Trong khung IP Address, nhập một IP chưa sử dụng cho Cluster (172.16.0.111) - Nhấn Next

Chỉ định 2 account SQL Server Agent và SQL Server Database Engine là account domain administrator (MCTHUB\Administrator). Nhập password ở khung Passsord - Nhấn Next

Nhấn nút Add Current User

Nhấn Next

Nhấn Next

Nhấn Show details để xem chi tiết - Nhấn Next

Nhấn nút Install

Chờ đợi quá trình cài đặt


Chờ đợi quá trình cài đặt
Sau khi quá trình cài đặt hoàn tất - Nhấn nút Close

Mở Failover Cluster Manager kiểm tra. Chọn SQLCluster.mcthub.local - Roles. Bạn sẽ thấy role SQL Server (MSSQLSERVER) đang chạy (trạng thái Running)

Chọn SQLCluster.mcthub.local - Storage - Disk: quan sát Cluster Disk 2 đã được sử dụng cho SQL Server (MSSQLSERVER)

5- Cài đặt và kết nối SQL Node 2 vào Failover Cluster
Tiếp theo tôi sẽ cài đặt SQL Server 2012 và gia nhập SQLSERVER2 vào Cluster có sẵn. Trên máy SQLSERVER2, đưa đĩa DVD cài đặt SQL Server 2012 vào DVD và chạy File setup.exe

Chọn Installation - Add node to a SQL Server failover cluster sau đó thực hiện các bước tương tự như bước 4

Quan sát SQL Server instance name đã cài đặt trước đó trên node SQLSERVER1 - Nhấn Next

Quan sát IP Address của Cluster đã cấu hình trước đó - Nhấn Next

Nhập password của account domain admin (MCTHUB\Administrator) ở khung Password - Nhấn Next

Nhấn Next

Nhấn Show details để xem chi tiết - Nhấn Next

Nhấn Install

Sau khi quá trình cài đặt hoàn tất - Nhấn nút Close

6- Kiểm tra hoạt động và khả năng chịu lỗi
Trên một trong 2 máy SQLSERVER1 hoặc SQLSERVER2, mở Failover Cluster Manager kiểm tra, chọn Roles, quan sát SQL Server (MSSQLSERVER) đang chạy (Running) và có Owner Node làSQLSERVER1

Chọn Nodes - SQLSERVER1 quan sát thấy server này đang đảm nhận dịch vụ SQL Server (MSSQLSERVER)

Chọn Nodes - SQLSERVER2 quan sát thấy server này hiện không đảm nhận dịch vụ nào

Trước khi kiểm tra khả năng chịu lỗi của Failover Cluster tôi sẽ kiểm tra hoạt động của Cluster bằng cách di chuyển dịch vụ SQL Server (MSSQLSERVER) sang SQLSERVER2. Chọn Roles, bấm phải chuột lên SQL Server (MSSQLSERVER)- Chọn Move - Select Node

Chọn SQLSERVER2 - Nhấn OK

Chờ đợi quá trình di chuyển (trạng thái sẽ hiển thị là Pending)

Kiểm tra quá trình di chuyển thành công, SQL Server (MSSQLSERVER) đang có trạng thái Running và"> Chờ đợi quá trình di chuyển (trạng thái sẽ hiển thị là Pending)


Chọn Nodes - SQLSERVER1 quan sát thấy server không đảm nhận dịch vụ nào

Chọn Nodes - SQLSERVER2 quan sát thấy server này đang đảm nhận dịch vụ SQL Server (MSSQLSERVER)

Tiếp theo tôi sẽ kiểm tra tính chịu lỗi của Failover Cluster bằng cách giả lập lỗi trên server đang đảm nhận dịch vụ là SQLSERVER2. Sang máy SQLSERVER2, disable card mạng

SAng máy SQLSERVER1, chọn Nodes kiểm tra trạng thái của SQLSERVER2 là Down

Chọn Roles, chờ đợi giây lát bạn sẽ thấy dịch vụ được tự động chuyển sang Node đang hoạt động là SQLSERVER1

Kiểm tra dịch vụ SQL Server (MSSQLSERVER) đã chạy bình thường trên Node đang hoạt động là SQLSERVER1

Bài viết liên quan
Cấu hình Failover Cluster cho Hyper-V trên Windows Server 2012
Cấu hình iSCSI SAN Storage services trên Windows Server 2012