重复数据删除 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 存储使用 dedup,DPM 应在 Hyper-V 虚拟机中运行,并将备份数据存储到启用了重复数据的共享文件夹中的 VHD。

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

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

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

  • 在我们的测试示例中,我们使用直接连接的 SAS 驱动器构建的存储空间池配置存储卷,将文件服务器配置为使用该存储卷部署的向外扩展文件服务器 (SOFS)。 此部署可确保大规模性能。

请注意:

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

  • DPM 虚拟硬盘所在的所有 Windows 文件服务器节点以及将启用 dedup 的所有 Windows 文件服务器节点都必须在 2014 年 11 月更新汇总 2014 年 11 月或更高版本上运行 Windows Server 2012 R2

  • 我们将提供有关方案部署的一般建议和说明。 只要给出特定硬件的示例,则部署在 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),其余部分为专用日志驱动器

设置 dedup 卷

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

  • 将具有外壳识别功能的奇偶校验存储空间用于复原和增加磁盘利用率。

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

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

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

      • ResiliencySettingName = = 奇偶校验

      • PhysicalDiskRedundancy = = 2

      • NumberOfColumns = = 7

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

      • IsEnclosureAware = = $true

      • AllocationUnitSize=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
      

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

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

      • 禁用 PartialFileOptimization:这会导致 dedup 优化打开的文件的所有部分,而不是扫描具有最小年龄的已更改分区。

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

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

设置 DPM 存储

若要避免出现碎片问题并维护效率,DPM 存储使用驻留在删除了重复数据的卷上的 VHDX 文件来进行分配。 每个卷上创建 1 TB 的 10 个动态 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 窗口按天拆分。

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

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

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

  • 使用垃圾回收和清理作业的时间来单独设置周末 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 x 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 部署更好的 TCO。 本文档中的指导和建议应为你提供工具和知识来为 DPM 存储配置重复数据删除,并在你的部署中为你查找优点。

常见问题

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

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

问: DPM 存储的 VHDX 文件似乎只能部署在远程 SMB 文件共享上。 如果我在 DPM 虚拟机运行的相同系统上的 Dedup 启用卷上存储备份的 VHDX 文件将会发生什么情况?

答: 如上所述,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 中的重复数据删除调整卷的大小中进行查找。 有关确定用于重复数据删除的卷大小的更多详细信息,请参阅 重复数据删除的大小调整卷的大小。