Start
1. 创建分布式存储
可故障转移群集创建完毕后,接下来在群集中启用分布式存储(Storage Space Direct),来作为群集存储使用。
1) 在启用分布式存储之前,首先需要处理所有磁盘,使所有磁盘处于可用状态
磁盘要求为:用于存储空间直通的磁盘必须为空且没有分区或其他数据。 如果磁盘有分区或其他数据,那么它不会包含在存储空间直通系统中。
2)下面,通过一个脚本,来清理磁盘,使磁盘处于可用状态
在任意节点上打开PowerShell控制台,然后输入以下命令
icm (Get-Cluster -Name HCI-Cluster | Get-ClusterNode) {
Update-StorageProviderCache
Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue
Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue
Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue
Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue
Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -ne RAW | % {
$_ | Set-Disk -isoffline:$false
$_ | Set-Disk -isreadonly:$false
$_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false
$_ | Set-Disk -isreadonly:$true
$_ | Set-Disk -isoffline:$true
}
Get-Disk |? Number -ne $null |? IsBoot -ne $true |? IsSystem -ne $true |? PartitionStyle -eq RAW | Group -NoElement -Property FriendlyName
} | Sort -Property PsComputerName,Count
3)命令执行完毕后,输出如下
4) 启用存储直通
创建群集后,使用 Enable-ClusterStorageSpacesDirect PowerShell cmdlet(它会将存储系统置于存储空间直通模式),并自动执行以下操作:
创建池:创建具有“S2D on Cluster1”之类的名称的单个大型池。
配置存储空间直通缓存:如果存在多个媒体(驱动器)类型可供存储空间直通使用,作为缓存设备可实现最快速度(在大多数情况下读取和写入)
层:创建 2 层作为默认层。 其中一个称为“容量”,另一个称为“性能”。 cmdlet 通过组合设备类型和复原能力来分析设备并配置每个层。
通过管理系统,在以管理员权限打开的 PowerShell 命令窗口中,启动以下命令。 群集名称是在前面的步骤中创建的群集的名称。
5) 使用域管理员身份登录到任意一台物理机,以管理员身份打开PowerShell控制台,然后输入
Enable-ClusterStorageSpacesDirect
确认操作页,输入Y
6)此命令完成(可能需要几分钟时间)之后,系统将准备好要创建卷
创建完成后,会生成一个报告
7) 打开生成的报告,可以看到自动使用的磁盘状况
8)打开故障转移群集管理器,可以看到创建的存储池信息
9)机箱页,可以看到当前的服务器信息
2.创建存储卷
所谓卷,就是类似于我们传统存储的存储LUN,在传统存储中,底层磁盘全部整合为一个存储池(或组),然后在存储池(或组)中创建存储LUN,再分配给主机使用。
微软存储直通---分布式存储池,在整合完所有服务器的本地磁盘成为一个统一存储池后,在上面划分卷,每个卷以类似于传统共享存储的形式挂载到虚拟化集群,最终转换为微软集群所需的群集共享卷(CSV),整体架构图如下所示。
群集中的所有服务器都可以同时访问所有卷。创建卷后,他们会显示在所有服务器上的C:\ClusterStorage\中
1) 在故障转移群集管理器中,导航到存储->池,在右侧点击“新建虚拟磁盘”
2) 选择存储池并单击确定.
3) 在打开的新建虚拟磁盘向导(存储空间直通)页中,点击“下一步”
4) 命名虚拟磁盘然后点击“下一步”
5) 输入虚拟磁盘大小,然后点击“下一步”
6) 检查虚拟磁盘创建设置,确认无误后,点击“创建”
7) 创建完成,勾选“在此向导关闭时创建卷”,然后点击“关闭”
8) 此时将打开新建卷向导
在起始页,点击“下一步”
9) 在“服务器和磁盘”页,服务器选择群集,磁盘选择刚才创建的磁盘,然后点击“下一步”
10) 指定卷的大小(与虚拟磁盘大小相同),然后点击“下一步”
11) 在“驱动器号或文件夹”页,选择“不分配驱动器号或文件夹”,然后点击“下一步”
Note:因为是给群集做共享卷用,所以不分配驱动器号(此部分设置与传统存储设置一样)
12) 文件系统选择”ReFS”分配单元打啊小选择4096,输入卷标,然后点击“下一步”
13) 查看设置,确认无误后,点击“创建”
14) 卷创建完成后,点击“关闭”
15) 在故障转移群集管理器中,导航到存储->磁盘
选择刚才创建的虚拟磁盘,然后从右侧的“操作”窗格中,选择添加到群集共享卷
16) 卷创建完成后,在服务器的C:\ClusterStorage中即可看到创建的卷目录
17) 操作完成!根据需要重复操作以创建多个卷
3.创建虚拟机测试
1) 在故障转移群集管理器中,导航到角色,在右侧 点击 虚拟机->新建虚拟机
2) 选择承载虚拟机的物理服务器节点
3) 输入虚拟机名称,存储位置选择我们创建的群集共享卷位置
4) 虚拟机代数选择“第二代”
5) 分配内存页,设置内存大小,然后点击“下一步”
6) 在“配置网络”页面,选择之前创建的虚拟交换机,然后点击“下一步”
7) 设置创建虚拟磁盘的大小,然后点击“下一步”
8) 选择安装操作系统的ISO映像,点击“下一步”
9) 确认虚拟机创建配置,确认无误后,点击“完成”
10) 虚拟机创建完成后,会自动配置群集高可用性,点击“完成”
11) 虚拟机创建完成,点击“启动”启动虚拟机,然后开始安装操作系统
4.存储卷扩展
1) 在日常使用中,经常会面临存储卷空间不足的情况,因此有可能会面临需要扩展存储卷的情况。在三向镜像模式下,每扩充1GB需要三倍的底层空间支撑。
2) 在调整卷大小之前,请确保存储池中有足够的容量,以容纳其新的更大占用空间。 例如,将三向镜像卷的大小从 1 TB 调整为 2 TB 时,其占用空间将从 3 TB 增长到 6 TB。 要成功调整大小,存储池中将至少需要 (6 - 3) = 3 TB 的可用容量。
3) 在存储空间直通中,每个卷都由一些堆叠对象组成:群集共享卷 (CSV)(这是一个卷)、分区、磁盘(这是一个虚拟磁盘)以及一个或多个存储层(如果适用)。 若要调整卷的大小,你将需要调整其中一些对象的大小。
4) 在本次测试中,我将测试将一个500GB的LUN扩容到1TB,LUN(在存储空间直通中称之为虚拟磁盘)的名称为Test-Extend
首先检查关联的CSV的状态
5) 在扩展卷之前,需要关闭在该卷上的所有VM,并暂停该卷的IO操作
在任意节点,执行如下命令暂停IO
Get-ClusterSharedVolume "群集虚拟磁盘(Test-Extend)" | Suspend-ClusterResource
6) 输入如下命令,检查该LUN是否有做自动分层,在我的测试环境,由于只有1个Mirror层,因此并未做分层
Get-VirtualDisk Test-Extend | Get-StorageTier
7) 使用如下命令检查虚拟磁盘处于哪个存储层
Get-VirtualDisk -Friendlyname "Test-Extend" | Get-StorageTier | FT Friendlyname, @{Name="Size in GB";Expression={($_.AllocatedSize/1gb)}}
由于我们是直接使用群集自动配置的,并且只有一层,因此会发现每个虚拟磁盘LUN都是一个Tier
8) 使用如下命令同时扩展LUN与Tier层
Get-VirtualDisk "Test-Extend" | Get-StorageTier | ? Friendlyname -eq "Test-Extend_Capacity" | Resize-StorageTier -Size 1024GB
9) 当调整 StorageTier 的大小时,VirtualDisk 和 Disk 也会自动跟着调整大小
10) 接下来扩展分区大小(大小单位为B)
Get-VirtualDisk "Test-Extend"| Get-Disk | Get-Partition | ? Type -eq Basic | Resize-Partition -Size 1099511627776
11) 扩展完毕后,可以看到该卷已经是1 TB了
12) 当调整 Partition 的大小时,Volume 和 ClusterSharedVolume 也会自动跟着调整大小。
13) 扩展完成后,使用如下命令将卷恢复IO操作
Get-ClusterSharedVolume "群集虚拟磁盘(Test-Extend)" | Resume-ClusterResource
14) 在群集管理器看到CSV大小已经是1TB
15) 扩展完成
End