在 Azure Stack HCI 上将固定预配卷转换为精简预配卷

适用于:Azure Stack HCI 版本 22H2

本文介绍如何使用 Windows PowerShell 将现有的固定预配卷转换为 Azure Stack HCI 群集上内联的精简预配卷。

固定预配与精简预配

固定预配会在创建卷时从存储池中为该卷分配完整大小。 此方法效率不高,因为尽管卷是空的,但仍会消耗一部分存储池资源。

从固定预配卷转换为精简预配卷可将任何未使用的存储归还到池中,供其他卷使用。 在卷中添加或删除数据时,存储分配会相应地增大和减小。

此图显示固定预配卷和精简预配卷。

使用 PowerShell 转换卷

使用 PowerShell 从固定预配转换为精简预配,如下所示:

  1. 以管理员身份运行 PowerShell。

  2. 检查卷的分配大小、大小和预配类型。

    对于非分层卷,请运行以下命令:

    Get-VirtualDisk -FriendlyName <volume_name> | FL AllocatedSize, Size, ProvisioningType
    

    下面是上述命令的示例输出:

    PS C:\> New-Volume -FriendlyName NonTierVol -Size 5TB -ProvisioningType Fixed
    
    DriveLetter  FriendlyName  FileSystemType  DriveType  HealthStatus  OperationalStatus
    -----------  ------------  --------------  ---------  ------------  -----------------
                 NonTierVol    CSVFS_ReFS      Fixed      Healthy       OK
    
    PS C:\> Get-VirtualDisk -FriendlyName NonTierVol | FL AllocatedSize, Size, ProvisioningType
    
    Allocated Size   : 5497558138880
    Size             : 5497558138880
    ProvisioningType : Fixed
    

    对于分层卷,请运行以下命令:

    Get-StorageTier -FriendlyName <volume_name*> | FL AllocatedSize, Size, ProvisioningType
    

    下面是上述命令的示例输出:

    PS C:\> Get-StorageTier -FriendlyName TierVol* | FL AllocatedSize, Size, ProvisioningType
    
    AllocatedSize    : 80530636800
    Size             : 80530636800
    ProvisioningType : Fixed
    
    AllocatedSize    : 26843545600
    Size             : 26843545600
    ProvisioningType : Fixed
    
  3. 从固定预配卷转换为精简预配卷,如下所示:

    对于非分层卷,请运行以下命令:

     Set-VirtualDisk -FriendlyName <volume_name> -ProvisioningType Thin 
    

    对于分层卷,请运行以下命令:

     Get-StorageTier <volume_name*> | Set-StorageTier -ProvisioningType Thin
    
  4. 重新装载卷,使更改生效。 之所以需要重新装载,是因为复原文件系统 (ReFS) 仅在装载时识别预配类型。

    对于单一服务器群集,请完成以下步骤。 工作负荷可能会遇到轻微的中断,建议在维护期间执行此操作。

    1. 获取群集共享卷 (CSV) 名称:

      Get-ClusterSharedVolume
      
    2. 接下来,使卷脱机:

      Stop-ClusterResource -Name <name>
      

      下面是上述命令的示例输出:

      PS C:\> Stop-ClusterResource -Name "Cluster Virtual Disk (TierVol)"
      
      Name                           State   Node
      ----                           -----   ----
      Cluster Virtual Disk (TierVol) Offline NodeA
      
    3. 然后使卷重新联机:

       Start-ClusterResource -Name <name>
      

    对于双节点和更大的群集,请执行以下操作:

    1. 获取 CSV 名称和节点名称:

       Get-ClusterSharedVolume
      
    2. 接下来,将 CSV 移动到另一个节点以重新装载卷:

       Move-ClusterSharedVolume -Name <name> -Node <new_node>
      

      下面是上述命令的示例输出:

      PS C:\> Get-ClusterSharedVolume
      
      Name                               State  Node
      ----                               -----  ----
      Cluster Virtual Disk (NonTierVol)  Online NodeA
      Cluster Virtual Disk (TierVol)     Online NodeB
      
      PS C:\> Move-ClusterSharedVolume -Name "Cluster Virtual Disk (TierVol)" -Node NodeA
      
      Name                           State         Node
      ----                           -----         ----
      Cluster Virtual Disk (TierVol) Online        NodeA
      
      
    3. 然后将 CSV 移回其原始节点:

       Move-ClusterSharedVolume -Name <name> -Node <original_node>
      
  5. (可选)从固定预配卷转换为精简预配卷后,会自然而然地不断回收空间。 若要加快此过程,请使用以下命令从该卷所在的节点运行 slab 合并:

    Get-Volume -FriendlyName <name> | Optimize-Volume -SlabConsolidate
    

    注意

    默认情况下,slab 合并的运行优先级较低。 若要更快地完成 slab 合并,同时只对前台 I/O 造成轻微的影响,请结合 -NormalPriority 参数运行上述命令。

  6. 确认 ProvisioningType 设置为 Thin,并且 AllocatedSize 小于卷大小 (Size):

    对于非分层卷,请运行以下命令:

    Get-VirtualDisk -FriendlyName <volume_name> | FL AllocatedSize, Size, ProvisioningType
    

    对于分层卷,请运行以下命令:

     Get-StorageTier -FriendlyName <volume_name*> | FL AllocatedSize, Size, ProvisioningType
    

后续步骤

详细了解存储精简预配