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

适用于:Azure Stack HCI 版本 22H2

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

固定预配与精简预配

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

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

Diagram showing both fixed and thin provisioned volumes.

使用 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
    

后续步骤

详细了解存储精简预配