重复数据删除 DPM 存储

System Center Data Protection Manager(DPM)可以使用重复数据删除。

数据去重 (dedup) 查找并删除卷中重复的数据,同时确保数据的正确性和完整性。 详细了解 重复数据删除计划

  • Dedup 可减少存储消耗。 尽管一组数据的冗余量将取决于工作负荷和数据类型,但通常备份数据在进行重复数据删除时会显著节省。

  • 在一起处理类似类型和工作负荷的备份数据时,可以通过重复数据进一步减少数据冗余。

  • Dedup 旨在安装在主数据卷上,而无需附加专用硬件,因此不会影响服务器上的主工作负荷。 默认设置是非侵入性的,因为它们允许数据在处理特定文件之前保留 5 天,并且默认的最小文件大小为 32 KB。 本实现用于低内存和 CPU 使用率。

  • 可以在以下工作负载上实现 Dedup:

    • 常规文件共享:组内容发布和共享、用户主文件夹和文件夹重定向/脱机文件

    • 软件部署共享:软件二进制文件、映像和更新

    • VHD 库:用于为虚拟机监控程序提供的虚拟硬盘 (VHD) 文件存储

    • VDI 部署(仅 Windows Server 2012 R2):使用 Hyper-V 的虚拟桌面基础结构 (VDI) 部署

    • 虚拟化备份:备份解决方案(例如 Hyper-V 虚拟机中运行的 DPM),用于将备份数据保存到 Windows 文件服务器上的 VHD/VHDX 文件

DPM 和 dedup

将 dedup 与 DPM 配合使用可能会导致节省大量资金。 优化 DPM 备份数据时,dedup 所节省的空间量因所备份的数据类型而异。 例如,由于任何重复数据会被加密过程所隐藏,加密数据库服务器的备份可能会导致最低限度的节省。 但是,备份大型虚拟桌面基础结构 (VDI) 部署可以实现 70% 到 90% 以上的数据节省,因为虚拟桌面环境之间通常存在大量数据冗余。 在本文中所述的配置中,我们运行了各种测试工作负荷,节省的范围为 50% 到 90%。

若要对 DPM 存储使用数据重复删除功能,DPM 应在 Hyper-V 虚拟机中运行,并将备份数据存储在启用了数据重复删除功能的共享文件夹中的 VHD。

若要将 DPM 部署为将数据备份到 dedupl 卷的虚拟机,建议使用以下部署拓扑:

  • DPM 在 HYPER-V 主机群集中的虚拟机中运行。

  • 使用存储在文件服务器 SMB 3.0 共享上的 VHD/VHDX 文件进行 DPM 存储。

  • 在我们的测试示例中,我们通过直接连接的 SAS 驱动器创建存储空间池,并从中配置存储卷,将文件服务器配置为通过这些存储卷部署的横向扩展文件服务器(SOFS)。 此部署可确保大规模性能。

请注意:

  • DPM 2012 R2 及更高版本以及 DPM 2012 R2 及更高版本可以备份的所有工作负荷数据都支持此部署。

  • 所有存放 DPM 虚拟硬盘和启用重复数据删除 (dedup) 的 Windows 文件服务器节点必须运行 Windows Server 2012 R2,且安装2014 年 11 月更新汇总或更高版本。

  • 我们将提供有关方案部署的一般建议和说明。 只要给出特定硬件的示例,则部署在 Microsoft 云平台系统 (CPS) 的硬件可以用于引用。

  • 此示例使用远程 SMB 3.0 共享来存储备份数据,因此主要的硬件要求都围绕于文件服务器节点而非 Hyper-V 节点。 以下硬件配置在 CPS 中用于备份和生产存储。 整体硬件用于备份和生产存储,但驱动器机箱中列出的驱动器数只是用于备份的驱动器数。

    • 四节点扩展文件服务器集群

    • 每个节点的配置

      • 2x Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00 GHz、2001 MHz、8 核、16 个逻辑处理器

      • 128 GB 1333 MHz RDIMM 内存

      • 存储连接:2 个 SAS 端口,1 个端口 10 GbE iWarp/RDMA

    • 四个 JBOD 驱动器机箱

      • 每个 JBOD 中的 18 个磁盘 - 16 x 4 TB HDD + 2 x 800 GB SSD

      • 每个驱动器的双路径 - 仅为故障转移设置的多路径 I/O 加载平衡策略

      • SSD 配置为回写缓存 (WBC),其余部分为专用日志驱动器

设置重复数据删除卷

让我们考虑一下,卷应该有多大以支持进行重复数据删除的包含 DPM 数据的 VHDX 文件。 在 CPS 中,我们创建了每个容量为 7.2 TB 的卷。 最佳的卷的大小主要取决于卷上的数据更改的多少、频率,以及磁盘存储子系统的数据访问吞吐率。 请务必注意,如果重复数据删除处理无法跟上每日数据更改(变动率),则节省率将下降,直到处理完成。 有关详细信息,请参阅 数据重复删除卷大小调整。 建议针对数据去重卷遵循以下一般准则:

  • 使用具外壳感知功能的奇偶校验存储空间以提高可靠性并增加磁盘利用率。

  • 使用 64 KB 分配单元和大型文件记录段格式化 NTFS,以便更好地使用稀疏文件。

  • 在建议的卷大小为 7.2 TB 卷以上的硬件配置中,卷将按如下所示进行配置:

    • 机箱感知双奇偶校验 7.2 TB + 1 GB 写回缓存

      • ResiliencySettingName == 奇偶校验

      • PhysicalDiskRedundancy = = 2

      • NumberOfColumns = = 7

      • 交错 == 256 KB(64 KB 交错时的双奇偶校验性能表现远低于默认 256 KB 交错时的性能表现)

      • IsEnclosureAware == $true

      • 分配单元大小=64 KB

      • 大型FRS (频谱射频系统)

      在指定的存储池中设置新的虚拟磁盘,如下所示:

      New-VirtualDisk -Size 7.2TB -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity -StoragePoolFriendlyName BackupPool -FriendlyName BackupStorage -NumberOfColumns 7 -IsEnclosureAware $true
      
    • 每一个卷都需要被格式化为:

      Format-Volume -Partition <volume> -FileSystem NTFS -AllocationUnitSize 64 KB -UseLargeFRS -Force
      

      在 CPS 部署中,这些将被配置为 CSV 格式。

    • 在这些卷中,DPM 将存储一系列 VHDX 文件来保存备份数据。 在将卷格式化如下后启用卷的数据去重功能:

      Enable-DedupVolume -Volume <volume> -UsageType HyperV
      Set-DedupVolume -Volume <volume> -MinimumFileAgeDays 0 -OptimizePartialFiles:$false
      

      此命令还会修改以下卷级去重设置:

      • 将 UsageType 设置为 HyperV:这会导致重复处理打开的文件,因为 DPM 用于备份存储的 VHDX 文件在虚拟机中运行的 DPM 保持打开状态。

      • 禁用 PartialFileOptimization:这会导致 dedup 对打开文件的所有部分进行优化,而不是扫描已更改且时间超过最低时限的分区。

      • 将 MinFileAgeDays 参数设置为 0:禁用 PartialFileOptimization 时,MinFileAgeDays 会更改其行为,以便 dedup 只考虑在该天数内未更改的文件。 由于我们希望 Dedup 立刻开始处理所有 DPM VHDX 文件中的备份数据,我们需要将 MinFileAgeDays 设置为 0。

有关设置数据重复删除的详细信息,请参阅安装和配置数据重复删除

设置 DPM 存储

若要避免出现碎片问题并维护效率,DPM 存储使用驻留在删除了重复数据的卷上的 VHDX 文件来进行分配。 在每个卷上创建 10 个 1 TB 的动态 VHDX 文件,并将其附加到 DPM。 此外,对存储进行 3 TB 的过度预配是为了利用 dedup 生成的存储节省。 由于 dedup 会产生额外的存储节省,因此可以在这些卷上创建新的 VHDX 文件,以占用节省的空间。 我们测试了 DPM 服务器,其中附加了多达 30 个 VHDX 文件。

  1. 运行以下命令以创建之后添加到 DPM 服务器的虚拟硬盘:

    New-SCVirtualDiskDrive -Dynamic -SCSI -Bus $Bus -LUN $Lun -JobGroup $JobGroupId -VirtualHardDiskSizeMB 1048576 -Path $Using:Path -FileName <VHDName>
    
  2. 然后,将创建的虚拟硬盘添加到 DPM 服务器,如下所示:

    Import-Module "DataProtectionManager"
    Set-StorageSetting -NewDiskPolicy OnlineAll
    $dpmdisks = @()
    $dpmdisks = Get-DPMDisk -DPMServerName $env:computername | ? {$_.CanAddToStoragePool -
    eq $true -and $_.IsInStoragePool -eq $false -and $_.HasData -eq $false}
    Add-DPMDisk $dpmdisks
    

    此步骤将存储池中的一个或多个磁盘配置为 DPM 存储受保护数据的副本和恢复点的介质。 此池是 DPM 配置的一部分,并且独立于用于创建上一部分中所述的数据卷的存储空间池。 有关 DPM 存储池的详细信息,请参阅 配置磁盘存储和存储池

设置 Windows 文件服务器群集

由于数据的规模和单个文件的大小,Dedup 需要一组特殊的配置选项来支持虚拟化的 DPM 存储。 这些选项是针对集群或集群节点的全局选项。 必须启用 Dedup,并且必须将群集设置单独配置到每个群集节点上。

  1. 在 Windows 文件服务器存储上启用 dedup - 重复数据删除角色必须安装在 Windows 文件服务器群集的所有节点上。 为此,请在群集的每个节点上运行以下 PowerShell 命令:

    Install-WindowsFeature -Name FileAndStorage-Services,FS-Data-Deduplication -ComputerName <node name>
    
  2. 调整备份数据文件的重复数据删除处理 - 运行以下 PowerShell 命令以立即开始优化,而不针对部分文件写入进行优化。 默认情况下,垃圾回收(GC)作业是每周安排的,每隔第四周,GC 作业会以“深度 GC”模式运行,以便更详尽、更耗时地搜索要删除的数据。 对于 DPM 工作负荷,这种“深度 GC”模式不会带来任何显著的收益,并减少了重复数据优化的时间。 我们因此禁用此深层模式。

    Set-ItemProperty -Path HKLM:\Cluster\Dedup -Name DeepGCInterval -Value 0xFFFFFFFF
    
  3. 优化大规模操作的性能 - 运行以下 PowerShell 脚本以执行以下操作:

    • 当深入垃圾收集操作运行时,禁用其他处理和 I/O

    • 保留其他内存以进行哈希处理

    • 启用优先级优化以允许即时的大型文件的碎片整理

    Set-ItemProperty -Path HKLM:\Cluster\Dedup -Name HashIndexFullKeyReservationPercent -Value 70
    Set-ItemProperty -Path HKLM:\Cluster\Dedup -Name EnablePriorityOptimization -Value 1
    

    这些设置修改以下内容:

    • HashIndexFullKeyReservationPercent:此值控制用于现有区块哈希与新区块哈希的优化作业内存量。 在大规模情况下,70%的结果比默认的50%具有更好的优化吞吐量。

    • EnablePriorityOptimization:随着文件接近 1 TB,单个文件的碎片可以累积足够多的碎片来接近单文件限制。 优化处理将合并这些片段并防止接近此限制。 通过设置此注册表项,Dedup 将添加一个额外进程,以高优先级处理高碎片化的去重文件。

设置 DPM 和 dedup 调度

备份和重复数据删除操作都大量占用 I/O。 如果他们在同一时间运行,操作之间进行切换的额外开销可能代价高昂,并会导致每日备份或重复数据删除的数据减少。 我们建议你配置专用和单独的重复数据删除和备份的窗口。 这有助于确保在每日系统操作期间,有效地分发这些操作的 I/O 流量。 用于计划的建议准则是:

  • 将天划分为备份窗口和去重窗口,两者互不重叠。

  • 设置自定义的备份计划。

  • 设置自定义的去重计划。

  • 在每日 Dedup 窗口中计划优化。

  • 分别设置周末去重计划,利用这段时间进行垃圾回收和清理作业。

你可以用以下 PowerShell 命令设置 DPM 计划:

Set-DPMConsistencyCheckWindow -ProtectionGroup $mpg -StartTime $startTime -
DurationInHours $duration
Set-DPMBackupWindow -ProtectionGroup $mpg -StartTime $startTime -DurationInHours
$duration

在此配置中,DPM 配置为在晚上 10 点至早上 6 点之间备份虚拟机。 一天中剩余的 16 小时计划进行重复数据删除。 配置的实际重复时间取决于卷大小。 有关更多信息,请参阅 数据重复删除的卷大小调整。 备份窗口结束后,从上午 6 点开始的 16 小时数据去重窗口的配置可在任何单个群集节点上进行:

#disable default schedule
Set-DedupSchedule * -Enabled:$false
#Remainder of the day after an 8 hour backup window starting at 10pm $dedupDuration = 16
$dedupStart = "6:00am"
#On weekends GC and scrubbing start one hour earlier than optimization job.
# Once GC/scrubbing jobs complete, the remaining time is used for weekend
# optimization.
$shortenedDuration = $dedupDuration - 1
$dedupShortenedStart = "7:00am"
#if the previous command disabled priority optimization schedule
#reenable it
if ((Get-DedupSchedule -name PriorityOptimization -ErrorAction SilentlyContinue) -ne $null)
{
Set-DedupSchedule -Name PriorityOptimization -Enabled:$true
}
#set weekday and weekend optimization schedules
New-DedupSchedule -Name DailyOptimization -Type Optimization -DurationHours $dedupDuration -Memory 50 -Priority Normal -InputOutputThrottleLevel None -Start $dedupStart -Days Monday,Tuesday,Wednesday,Thursday,Friday
New-DedupSchedule -Name WeekendOptimization -Type Optimization -DurationHours $shortenedDuration -Memory 50 -Priority Normal -InputOutputThrottleLevel None -Start $dedupShortenedStart -Days Saturday,Sunday
#re-enable and modify scrubbing and garbage collection schedules
Set-DedupSchedule -Name WeeklyScrubbing -Enabled:$true -Memory 50 -DurationHours $dedupDuration -Priority Normal -InputOutputThrottleLevel None -Start $dedupStart -StopWhenSystemBusy:$false -Days Sunday
Set-DedupSchedule -Name WeeklyGarbageCollection -Enabled:$true -Memory 50 -DurationHours $dedupDuration -Priority Normal -InputOutputThrottleLevel None -Start $dedupStart -StopWhenSystemBusy:$false -Days Saturday
#disable background optimization
if ((Get-DedupSchedule -name BackgroundOptimization -ErrorAction SilentlyContinue) -ne $null)
{
Set-DedupSchedule -Name BackgroundOptimization -Enabled:$false
}

每当修改备份窗口时,必须同时修改重复数据删除窗口,以确保它们不重叠,这一点至关重要。 重复数据删除和备份窗口不必占满整天 24 小时;然而,强烈建议这样做,以允许由于预计的每日工作负荷和数据变动而导致的处理时间变化。

对备份性能的影响

删除重复文件集后,访问文件时可能会略有性能成本。 这是由于附加处理需要访问删除重复数据的文件所使用的文件格式。 在此方案中,这些文件是一组在备份窗口期间被 DPM 连续使用的 VHDX 文件。 删除这些文件的效果意味着备份和恢复操作可能略慢于不删除重复数据。 对于任何备份产品,DPM 是一个以写操作为主的工作负荷,读取操作在还原操作期间是最重要的。 解决由于重复数据删除产生的备份性能影响的建议如下:

  • 读取/还原操作:读取操作的效果通常可以忽略不计,由于重复数据删除功能缓存了删除了重复数据的区块而不需要任何特殊注意事项。

  • 写入/备份操作:在定义备份窗口时规划备份时间增加 5-10%。 (这比写入非重复数据删除卷时预期的备份时间有所增加。)

监控

DPM 和重复数据删除可以进行监视以确保:

  • 设置了足够的磁盘空间以存储备份的数据

  • DPM 备份作业正常完成

  • 在备份卷上启用了重复数据删除

  • 正确设置了重复数据删除计划

  • 去重处理每天正常完成。

  • 数据去重节省率符合系统配置的假设

重复数据删除的成功取决于整体系统硬件功能(包括 CPU 处理速度、I/O 带宽、存储容量),正确的系统配置、系统平均负载,和每日修改的数据量。

你可以使用 DPM 中央控制台监视 DPM。 请参阅 安装中央控制台

可以使用以下 PowerShell 命令监视 dedup 以检查 dedup 状态、保存速率和计划状态:

获取状态:

PS C:\> Get-DedupStatus
FreeSpace SavedSpace OptimizedFiles InPolicyFiles Volume
-------------- ---------- -------------- ------------- ------
280.26 GB 529.94 GB 36124 36125 X:
151.26 GB 84.19 GB 43017 43017 Z:

享受优惠

PS C:\> Get-DedupVolume
Enabled SavedSpace SavingsRate Volume
------- ---------- ----------- ------
True 529.94 GB 74 % X:

使用 Get-DedupSchedule cmdlet 获取计划状态。

监视事件

监视事件日志可帮助了解重复数据删除事件和状态。

  • 若要查看重复数据删除事件,请在文件资源管理器中导航到应用程序和服务日志>Microsoft>Windows>重复数据删除

  • 如果值“LastOptimizationResult = 0x00000000”显示在 Get DedupStatus |fl Windows PowerShell 结果中,则整个数据集已由以前的优化作业处理。 如果不是这样,那么系统无法完成重复数据删除处理,你可能要检查你的配置设置,例如卷的大小。

有关更详细的 cmdlet 示例,请参阅 数据去重的监控和报告

监视备份存储

在我们的配置示例中,7.2 TB 卷被填满了10 TB的逻辑数据(即未删除重复数据时的数据大小),这些数据存储在10个动态1 TB的VHDX文件中。 随着这些文件累积了更多的备份数据,它们将会慢慢填满存储空间。 如果重复数据删除产生的节省百分比足够高,则所有 10 个文件都可以达到其最大逻辑大小,但仍适合 7.2 TB 卷(可能甚至可能还有额外的空间来分配其他 VHDX 文件供 DPM 服务器使用)。 但是,如果通过重复数据删除节省的空间不足够,卷上的空间可能会在 VHDX 文件达到其完整逻辑大小之前耗尽,导致卷已满。 为防止存储卷满,建议执行以下操作:

  • 对容量大小的要求要保守,并允许一些存储超额配置。 建议在计划备份存储使用时预留至少10%的缓冲空间,以便应对重复数据删除的节省效果和数据变化的预期波动。

  • 监视用于备份存储的卷,以确保空间利用率和重复数据删除节省率达到预期水平。

如果存储卷已满,则会出现以下症状:

  • DPM 虚拟机将会处于暂停临界状态,该虚拟机不能进一步发布备份作业。

  • 所有使用该完整卷上的 VHDX 文件的备份作业将会失败。

若要从此条件恢复并将系统还原为正常操作,可以预配其他存储,并执行 DPM 虚拟机或其 VHDX 的存储迁移以释放空间:

  1. 停止管理完整备份共享上 VHDX 文件的 DPM 服务器。

  2. 创建一个额外卷和一个备份共享,并使用与现有共享相同的配置和设置,包括 NTFS 设置和重复数据删除。

  3. 迁移 DPM 服务器虚拟机的存储 ,并将至少一个 VHDX 文件从完整备份共享迁移到步骤 2 中创建的新备份共享。

  4. 在已满的源备份共享上运行重复数据删除垃圾回收 (GC) 作业。 GC 任务应成功并回收可用空间。

  5. 重新启动 DPM 服务器虚拟机。

  6. 对于以前失败的所有数据源,将在下一个备份窗口中触发 DPM 一致性检查作业。

  7. 所有备份任务现在预计会成功。

总结

重复数据删除与 DPM 相结合,可以显著节省空间。 这样能够实现更高的保留率、更频繁的备份,并给予 DPM 部署更好的总体拥有成本。 本文档中的指导和建议将帮助你掌握为 DPM 存储配置重复数据删除的工具和知识,并在自己的部署中看到优点。

常见问题

问: DPM VHDX 文件的大小需要为 1 TB。 这是否意味着 DPM 无法备份大小小于>1 TB的 VM、SharePoint 或 SQL 数据库或文件卷?

答: 不是。 DPM 将多个卷聚合为一个以用于存储备份。 因此,1 TB 的文件大小对 DPM 可以备份的数据源大小没有任何影响。

问: DPM 存储的 VHDX 文件似乎只能部署在远程 SMB 文件共享上。 如果我将备份的 VHDX 文件存储在运行 DPM 虚拟机的系统上启用了数据重复删除功能的卷上,会发生什么情况?

答: 如上所述,DPM、Hyper-V 和数据去重是存储和计算密集型操作。 将这三者组合在一个系统中可能会导致 I/O 和进程密集型操作,这些操作可能会耗尽 Hyper-V 及其 VM。 如果决定尝试在同一台计算机上使用备份存储卷在 VM 中配置 DPM,则应仔细监视性能,以确保有足够的 I/O 带宽和计算容量来维护同一台计算机上的所有三个操作。

问: 你建议设置专门的重复数据删除和备份时段。 为什么在 DPM 正在备份时无法启用 dedup? 我需要每隔 15 分钟备份一次 SQL DB。

答: Dedup 和 DPM 是存储密集型操作,同时运行这两个操作可能会效率低下,从而导致 I/O 饥饿。 因此,若要每天多次保护工作负荷(例如 SQL Server 每 15 分钟一次),并同时启用去重,请确保有足够的 I/O 带宽和计算能力来避免资源匮乏。

问: 根据所述的配置,DPM 需要在虚拟机中运行。 为什么不能直接在副本卷和卷影复制卷上启用数据去重,而只是对 VHDX 文件进行呢?

答: Dedup 在单独的文件上进行每个卷的重复数据删除操作。 由于 dedup 在文件级别进行了优化,因此它并不旨在支持 DPM 用来存储其备份数据的 VolSnap 技术。 通过在 VM 中运行 DPM,HYPER-V 将 DPM 卷操作映射到 VHDX 文件级别,允许 Dedup 优化备份数据并提供更大的存储节省空间。

问: 上述示例配置仅创建了 7.2 TB 的存储卷。 我可以创建体积更大或更小的卷吗?

答:Dedup 在每个卷上运行一个线程。 随着卷的大小变得更大,Dedup 将需要更多时间才能完成其优化。 另一方面,使用小容量时,可供查找重复块的数据较少,这可能会导致节省效益降低。 因此,建议根据总数据更替量和系统硬件能力微调卷容量,以实现最佳节省。 有关确定与重复数据删除一起使用的卷大小的详细信息,可以参阅 Windows Server 中的重复数据删除卷尺寸指南。 有关用于数据重复删除的卷大小确定的更多详细信息,请参阅 数据重复删除卷大小确定