powershell构建wsfc
相关sql server的:https://docs.microsoft.com/zh-cn/powershell/module/sqlserver/?view=sqlserver-ps&viewFallbackFrom=sql-server-ver15
【1】powershell 查看帮助
(1.1)如何查看 cluster 模块有哪些命令?
get-command *cluster*
(1.2)如何查看某个命令的具体用法?
get-help add-ClusterNode
【2】powershell 构建 wsfc 相关
(2.1)集群相关
那么如下图,核心就是这些命令
Add-ClusterNode -- 增加集群节点
Get-Cluster -- 查看当前机器加入的集群
Remove-Cluster -- 删除、销毁 集群
Start-Cluster -- 启动集群
Stop-Cluster -- 停止集群
Test-Cluster -- 测试构建集群的节点间的相关配置与通信
【2.2】集群节点操作相关
Add-ClusterDisk
Get-ClusterAvailableDisk
Get-ClusterNode
New-Cluster
Remove-ClusterNode
Resume-ClusterNode
Start-ClusterNode
Stop-ClusterNode
Suspend-ClusterNode
Test-Cluster
【最佳实践】用powershell 构建 wsfc 集群
(1)test-cluster 测试集群节点间的配置、通信、存储等
New-Cluster cmdlet 创建一个新的故障转移群集。
在创建集群之前,必须连接硬件(服务器、网络和存储),并且必须运行验证测试。
使用 Test-Cluster 运行验证测试。测试将确认硬件和设置与故障转移群集兼容。有多种类型的测试,包括清单、系统配置、网络、存储和其他类型的测试。
test-cluster -list : 可以查看到所有的测试检查项目清档 # 如果只想验证某几项,或者只忽略某几项参考 Test-Cluster -Node "node1", "node2" -Include "Storage" -- 只运行 存储测试,多个以逗号分隔即可,如 "a","b" Test-Cluster -Node "node1", "node2" -Ignore Inventory -- 只排除 清单项,其他的测试都运行,多个以逗号分隔即可如 "a","b"
step1:验证2个节点的所有验证配置、通信、存储 等
Test-Cluster -Node "node1", "node2" (一般没有什么特殊字符的话,也不用双引号)
实际运行参考如下:运行期间也会有进度条,下面也会告知运行出来的的存储报告位置
PS C:\Windows\system32> test-cluster WIN-62DD8FDOAL9,WIN-F5B5UKVG8RU 警告: 存储 - 验证 SCSI 设备重要产品数据 (VPD): 测试报告了一些警告。。 警告: 存储 - 验证 SCSI-3 永久保留: 测试报告了一些警告。。 警告: 存储 - 验证磁盘访问延迟: 测试报告了一些警告。。 警告: 存储 - 验证磁盘仲裁: 测试报告了一些警告。。 警告: 存储 - 验证存储空间永久保留: 测试报告了一些警告。。 警告: 存储 - 验证多重仲裁: 测试报告了一些警告。。 警告: 存储 - 验证基于 Microsoft MPIO 的磁盘: 测试报告了一些警告。。 警告: 存储 - 验证磁盘故障转移: 测试报告了一些警告。。 警告: 存储 - 验证文件系统: 测试报告了一些警告。。 警告: 存储 - 验证并发故障转移: 测试报告了一些警告。。 警告: 清单 - 列出软件更新: 测试报告了一些警告。。 警告: 群集配置 - 验证仲裁配置: 测试报告了一些警告。。 警告: 系统配置 - 验证软件更新级别: 测试报告了一些警告。。 警告: 网络 - 验证网络通信: 测试报告了一些警告。。 警告: 测试结果: ClusterConditionallyApproved 测试已成功完成。该配置似乎适合进行群集,但你仍应当查看报告,因为该报告可能包含某些警告,你需要解决这些警告才能获得最 高可用性。 测试报告文件路径: C:\Users\alwaysonadmin\AppData\Local\Temp\验证报告 在 10.48.47 上的 2022.05.07 .xml.mht Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2022/5/7 10:49 542708 验证报告 在 10.48.47 上的 2022.05.07 .xml.mht
(2)new-cluster 创建集群
官网其实和 get-help new-cluster 信息相差无几,基本形式如下:(一般我们使用加红的4个即可)
New-Cluster [-Name] <String> # 集群名称 [-Node <StringCollection>] # 哪些节点参与集群构建 [-StaticAddress <StringCollection>] # 集群静态地址VIP,一般这个,不加会自动使用 dhcp 默认分配的动态地址,云环境可以看情况适当去掉该参数 [-IgnoreNetwork <StringCollection>] # 这个忽略网段,指的是动态 dhcp 地址不分配这个网段的地址给集群 vip [-NoStorage] # 忽略共享存储 [-S2D] [-AdministrativeAccessPoint <AdminAccessPoint>] [-Force] [<CommonParameters>]
最佳生产使用案例:
New-Cluster -Name cluster1 -Node node1,node2,node3 -NoStorage -StaticAddress 2.0.0.123
# 跨网段、多网段的时候使用
# New-Cluster -Name cluster1 -Node node1,node2,node3 -NoStorage -StaticAddress 2.0.0.123,3.0.0.123
(3)add-clusterNode 增加新的节点到集群
该操作之前,也强烈建议 甚至是必须要再次操作 test-cluster
Add-ClusterNode [[-Name] <StringCollection>] # 新增的节点名称 [-NoStorage] # 不加对应节点机器的存储设备到集群 [-InputObject <PSObject>] [-Cluster <String>] # 集群名称 [<CommonParameters>]
最佳生产使用案例:
# 在已经加入该集群的机器上运行 Add-ClusterNode -Name node4 -NoStorage # 在同域但未加入集群的机器上运行 Get-Cluster -Name cluster1 | Add-ClusterNode -Name node3 Add-ClusterNode -Cluster cluster1 -Name node3
(4)Remove-ClusterNode 删除集群节点
Remove-ClusterNode [[-Name] <StringCollection>] [-Force] [-Wait <Int32>] [-IgnoreStorageConnectivityLoss] [-CleanupDisks] [-InputObject <PSObject>] [-Cluster <String>] [-WhatIf] [-Confirm] [<CommonParameters>]
最佳生产使用案例:
Remove-ClusterNode -Name node4