Bài viết này trình bày thao tác cài đặt và cấu hình Failover Cluster cho SQL Server 2016 trên Windows 2016 sử dụng dịch vụ lưu trữ iSCSI SAN Storage có sẵn trên Windows.. Cài đặt iS
Trang 1
Cài đặt và cấu hình Failover Cluster SQL Server 2016
Trang 3
MỤC LỤC
Trang 4
I Giới thiệu
SQL Server đóng vài trò quan trọng, được dùng để lưu trữ dữ liệu cho các ứng dụng 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 Bài viết này trình bày thao tác cài đặt và cấu hình Failover Cluster cho SQL Server 2016 trên Windows
2016 sử dụng dịch vụ lưu trữ iSCSI SAN Storage có sẵn trên Windows
II Chi tiết cài đặt
Hướng dẫn này sử dụng 3 server:
- DC16 (IP Address 192.168.10.1) : Domain Controller (domain dc16.local) chạy Windows Serrer 2016.Trong bài, server này đảm nhận vai trò lưu trử cho Cluster (iSCSI Target Server)
- SQL1 (IP Address 192.168.10.2): Domain member chạy Windows Server 2016 đóng vai trò SQL Server(Node 1)
- SQL2 (IP Address 192.168.10.3): Domain member chạy Windows Server 2016 đóng vai trò SQL Server(Node 2)
Hướng dẫn gồm các bước chính sau đây
- Chuẩn bị hệ thống lưu trữ
- Kêt nối hệ thống lưu trữ
- Tạo Failover Cluster
- Cài đặt SQL Node 1
- Kết nối SQL Node 2 vào Failover Cluster
- 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 DC16, bạn cần cài đặt iSCSI Target Server, sau đó tạo sẵn các iSCSI Virtual Disk và đưa vào 1
iSCSI Target và cho phép 2 máy có IP address là 192.168.10.2 và 192.168.10.3 kết nối Thực hiện các bước
sau:
a Cài đặt iSCSI Target Server
- Trên máy DC16, bạn mở Server Manager Bạn vào menu Manage, chọn Add Roles and Features
- Màn hình Welcome, bạn nhấn Next Màn hình Select Server Roles, bung mục File and Storage Services, đánh dấu chọn vào ô iSCSI Target Server
Trang 5- Các bước còn lại bạn nhấn Next theo mặc định Màn hình Confirm installation selections, bạn
đánh dấu chọn vào ô Restart the destination server automatically if required, sau đó nhấn Install
Trang 6- Sau khi cài đặt xong, chương trình sẽ yêu cầu bạn khởi động lại máy tính Bạn nhấn vào nút Restart
Now để khởi động
b Tạo iSCSI Virtual Disk
iSCSI Virtual Disk là các đĩa ảo được tạo ra từ physical disk Như vậy một physical disk có thể tạo ra nhiều iSCSI Virtual Disk, phải tính toán tùy theo mục đích sử dụng
- Mở Server Manager, ở bên trái bạn chọn File and Storage Services
Trang 7- Ở khung bên trái, bạn chọniSCSI, sau đó vào mục TASKS nằm ở góc phải, chọn New iSCSI Virtual
Disk
Trang 8- Màn hình Select iSCSI virtual disk location , ở mục Select by volume bạn chọn vào phân vùng cần
tạo iSCSI Virtual Disk (chúng ta sẽ tạo Disk1 từ ổ đĩa C)
Trang 9- Màn hình Specify iSCSI virtual disk name, ở mục Name, bạn đặt tên là Disk1 Bạn chú ý ở mục
Path, Windows Server 2016 sẽ sử dụng công nghệ đĩa cứng ảo thông qua file vhdx
Trang 10- Màn hình Specify iSCSI virtual disk size, ở mục Free space sẽ cho bạn biết dung lượng còn trống
ở physical disk Ở mục Size, bạn thiết lập dung lượng choiSCSI virtual disk, trong bài này chúng ta
sẽ tạo Disk1 có dung lượng 10 GB
Trang 11- Màn hình Specify iSCSI target, chọn New iSCSI target iSCSI Target: tập hợp gồm 1 hoặc nhiều iSCSI Virtual Disk, là thành phần để các Server có thể kết nối và sử dụng
Trang 12- Màn hình Specify target name, ở mục Name, bạn đặt tên cho target của mình, trong bài này chúng
ta đặt tên là Target1
Trang 13- Màn hình Specify access server, bạn nhấn Add để thêm vào máy Server sẽ kết nối đến iSCSI
Target nhằm mục đích sử dụng hệ thống đĩa iSCSI Initiator (Access Server): là 1 Server đảm nhận
một dịch vụ bất kỳ mà nó sẽ kết nối tới iSCSI Target để sử dụng hệ thống đĩa
Trang 14- Cửa sổ Add Initiator ID, mụcSelect a method to identify the initiator ID , bạn chọn vào ô Enter the
value for a selected type Ở mục Type, bạn chọn IP Address Sau đó ở mục Value, bạn nhập vào
địa chỉ IP của máy SQL1
Trang 15- Lặp lại thao tác Add để thêm SQL2 Kết thúc, ta được như hình
Trang 16- Màn hình Enable Authentication , bạn nhấn Next theo mặc định
Trang 17- Màn hình Confirmation, bạn kiểm tra các thông tin mà mình đã thiết lập Sau đó, bạn nhấn vào nút
Create để tạo mới iSCSI Virtual Disk
Trang 18- Màn hình View Results, khi bạn nhận được thông báo iSCSI Virtual Disk was created
successfully nghĩa là quá trình tạo đĩa đã thành công Bạn nhấn vào nút Close để đóng lại
Trang 19- Quay lại Server Manager, lúc này bạn sẽ nhìn thấy iSCSI Virtual Disk và iSCSI Target
- Tương tự, bạn tạo thêm Disk2 Màn hình Select iSCSI virtual disk location, bạn chọn phân vùngcho Disk2 , trong bài này, bạn sẽ sử dụng phân vùng còn lại ( E:)
Trang 20- Màn hình Specify iSCSI virtual disk name , ở mục Name, bạn đặt tên là Disk2
Trang 21- Màn hình Specify iSCSI virtual disk size , bạn nhập vào dung lượng cho Disk2 là 9GB
Trang 22- Màn hình Assign iSCSI target, bạn chọn vào ô Existing iSCSI target mà mình đã tạo ở phần trên.
Sau đó bạn nhấn Next (như vậy, 1 iSCSI target có thể chứa một hoặc nhiều iSCSI virtual disk)
Trang 23- Các bước còn lại, bạn nhấn Nexttheo mặc định Màn hình View Results, lúc này bạn sẽ nhìn thấy
chương trình không còn tạo iSCSI target nữa mà chỉ tạo iSCSI virtual disk và gán vào target màbạn chỉ định
Trang 24- Quay lại Server Manager, bạn kiểm tra thấy đã có 2 iSCSI virtual disk
2 Kết nối hệ thống lưu trữ
- Trên 2 máy SQL1 và SQL2 , thực hiện kết nối vào iSCSI Target bằng công cụ iSCSI Initiator
Trang 25- 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 ( 192.168.10.1) - Nhấn nút Quick Connect
Trang 26- Kiểm tra trạng thái kết nối là Connected - Nhấn nút Done
Trang 27- Nhấn OK
Trang 28- Tiếp theo bạn cần tạo volume từ các đĩa đã kết nối Trên máy SQL1, mở Disk Management , quan
sát bạn đã kết nối được 2 ổ đĩa (Disk1, Disk2) Bấm phải chuột lên Disk1 - Chọn Online
Trang 29- Bấm phải chuột lên Disk1 - Chọn Initialize Disk
Trang 30- 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
Trang 31- 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
Trang 32- Thực hiện tương tự để tạo và định dạng thêm 2 simple volume tên là ClusterDisk2
- Thực hiện lại các thao tác ở mục (2) này cho SQL2 Ở SQL2, chúng ta chỉ cần thực hiện đến bước Online Disks là đủ
3 Tạo Failover Cluster
- Trên 2 máy SQL1 và SQL2, chúng ta cài đặt feature Failover Clustering
Trang 33- Tạo Cluster trên SQL1 Lưu ý, user tạo cluster phải có đủ quyền thực thi trên Active Directory Thực
hiện theo các bước ở Mục III trước khi tiếp tục ở bước này (hoặc tham khảo bài viết nguồn: https://docs.microsoft.com/en-us/windows-server/failover-clustering/prestage-cluster-adds) Sau khi
hoàn thành, mở Failover Clustering Managerđể bắt đầu tạo cluster
- Tạo một Failover Cluster: Bấm phải chuột lên Failover Cluster Manager - Chọn Create Cluster
Trang 34- Nhấn Next
- Lần lượt đưa 2 máy SQL1 và SQL2 vào danh sách Selected servers - Nhấn Next
Trang 35- Chọn No …. Nhấn Next (tôi sẽ kiểm tra tính tương thích cho Cluster ở bước sau)
Trang 36- Khung Cluster Name: Nhập tên tùy ý cho Failover Cluster (tôi đặt tên là SQLCluster) Nhập địa chỉ
IP vào mục Address (địa chỉ IP chưa được dùng trước đó) Nhấn Next
- Kiểm tra đã đánh dấu Add all eligible storage to the cluster - Nhấn Next
Trang 37- Nhấn Finish
Trang 384 Cài đặt SQL Node 1
- Chạy file setup.exe để bắt đầu cài đặt
- Chọn Installation - New SQL Server failover cluster installation
- Làm theo hướng dẫn và click Next ở các màn hình tiếp theo
- Ở màn hình Install Failover Cluster Rules , đảm bảo không có bất kỳ lỗi nào Click Next
Trang 39- Ở màn hìnhFeature Selection, chọn các tính năng cần thiết tùy thuộc vào nhu cầu sử dụng SQL của bạn Nhấn Next
Trang 40- Khung SQL Server Network Name, đặt tên tùy ý cho SQL Failover Cluster, tôi đặt là Sql2016Clu, nhấn Next Nếu bạn gặp lỗi “The given network name is unusable because there was a failure trying to determine ” khi nhấn Next, và nếu bạn đang dùng VirtualBox, thử gỡ bỏ Guest
Additional ở Program and Feature ra
Trang 41- Nhập Group Name và nhấn Next
Trang 42- Chọn đĩa tùy ý để lưu trữ thông tin của cluster Ở đây tôi chọn ClusterDisk1 Nhấn Next
Trang 43- Nhập địa chỉ IP chưa sử dụng cho Cluster (192.168.10.23) Nhấn Next
Trang 44- Chỉ định 2 account SQL Server Agent , SQL Server Database Engine và SQL Server Analysic
Services là account domain administrator (DC16\Administrator) Nhập password ở khung Passsord
- Nhấn Next
Trang 45- Chọn Mixed Mode, nhập password cho user sa, nhấn nút Add Current User
Trang 46- Nhấn Add Current User , nhấn Next
Trang 47- Nhấn Next
Trang 48- Nhấn Install
Trang 49- Chờ đợi quá trình cài đặt Sau khi quá trình cài đặt hoàn tất, nhấn nútClose Lưu ý: phải đảm bảo tất
cả các feature đều Succeeded trước khi Close
Trang 50- Mở Failover Cluster Manager kiểm tra Chọn SQLCluster.dc16.local - Roles Bạn sẽ thấy roleSQL
Server (SqlCluGroup) đang chạy (trạng thái Running)
Trang 51- Chọn SQLCluster.dc16.local - Storage - Disk: quan sát Cluster Disk 1 đã được sử dụng cho SQL Server (SqlCluGroup)
Trang 525 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 2016 và gia nhập SQL2 vào Cluster có sẵn Trên máy SQL2 , đư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
Trang 53- Quan sát SQL Server instance name đã cài đặt trước đó trên node SQL1 - Nhấn Next
Trang 54- Quan sát IP Address của Cluster đã cấu hình trước đó - Nhấn Next
Trang 55- Nhập password của account domain admin (MCTHUB\Administrator) ở khung Password - Nhấn
Next
Trang 56- Nhấn Install
Trang 57- 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 SQL1 hoặc SQL2, mở Failover Cluster Manager kiểm tra, chọnRoles, quan sát SQL Server (MSSQLSERVER) đang chạy ( Running) và có Owner Node làSQL1
Trang 58- Chọn Nodes - SQL1 quan sát thấy server này đang đảm nhận dịch vụ SQL Server (SqlCluGroup)
Trang 59- Chọn Nodes - SQL2 quan sát thấy server này hiện không đảm nhận dịch vụ nào
Trang 60- 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 (SqlCluGroup) sang SQL2. Chọn Roles, bấm phải chuột lên
SQL Server (SqlCluGroup)- Chọn Move - Select Node
Trang 61- Chọn SQL2 - Nhấn OK
Trang 62- Chờ đợi quá trình di chuyển (trạng thái sẽ hiển thị là Pending)
Trang 63- Kiểm tra quá trình di chuyển thành công, SQL Server (SqlCluGroup) đang có trạng thái Running vàđang có Owner Node là SQL2
Trang 64- Chọn Nodes - SQL1 quan sát thấy server không đảm nhận dịch vụ nào
- Chọn Nodes - SQL2 quan sát thấy server này đang đảm nhận dịch vụ SQL Server (SqlCluGroup)
- 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à SQL2 Sang máy SQL2, disable card mạng
- SAng máy SQL1, chọn Nodes kiểm tra trạng thái của SQL2 là Down
Trang 65- 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à
SQL1