准备用于文件恢复的 StorageZones Controller

警告:

ShareFile 恢复功能不会自动备份您的永久存储位置。您负责选择备份实用程序并每 1 至 7 天运行一次。

如何准备文件恢复取决于数据的存储位置:

  • 受支持的第三方存储系统 — 如果您使用带有 StorageZones Controller 的第三方存储系统,则第三方存储是冗余的,不需要本地备份。但是,请注意,删除文件的 ShareFile 用户可以在短时间内从回收站恢复该文件。45 天后无法从 ShareFile 回收站恢复文件。恢复期后,文件将从区域中删除,因此从冗余的第三方存储中删除。如果恢复时间不够,请考虑以下解决方案之一:
    • 增加文件保留在 ShareFile 回收站中的时间量。要执行此操作,请更改 C:\inetpub\wwwroot\Citrix\StorageCenter\SCFileCleanSvc\FileDeleteService.exe.config 中的周期设置的值有关详细信息,请参阅自定义存储缓存操作。请记住,增加保留时间也会增加所需的第三方存储量。
    • 每七天创建一次本地备份 StorageZone 文件,并为备份确定适当的保留策略。
  • 本地存储 — 如果将本地维护的共享用于私有数据存储,则负责备份本地 StorageZones Controller 本地文件存储和注册表项。ShareFile 存档 ShareFile 云中驻留的相应文件元数据 3 年。 重要提示:为了防止数据丢失,您必须拍摄 StorageZones Controller 服务器的快照 备份其配置,并备份本地文件存储。

如本主题所述,准备用于文件恢复的 StorageZones Controller 后,您可以使用 ShareFile 管理员控制台执行以下操作:

  • 浏览特定日期和时间的 ShareFile Data 记录的存储区域,然后标记要还原的任何文件和文件夹。ShareFile 将标记的项目添加到恢复队列中。然后运行恢复脚本,将文件从备份还原到持久存储位置。

    有关详细信息,请参阅从您的 ShareFile 数据备份中恢复文件和文件夹

  • 当您无法从本地存储中恢复数据时,将存储在 ShareFile 云中的元数据与本地存储协调起来。ShareFile 协调功能从 ShareFile 云中永久删除指定日期和时间不再位于存储区域中的文件的元数据。

    有关详细信息,请参阅 将 ShareFile 云与存储区域协调

必备条件

  • Windows Server 2012 R2 或 Windows Server 2008 R2
  • Windows PowerShell(32 位和 64 位版本)必须支持 .NET 4 运行时程序集。有关详细信息,请参阅中的“PowerShell 脚本和命令”存储区域 Controller 系统要求

  • PsExec.exe - PsExec 允许您使用网络服务帐户启动 PowerShell。您还可以使用 PsExec 计划恢复任务。从 http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx 下载 PsExec.exe 并按照该页面上的安装说明进行操作。

用于灾难恢复的文件摘要

以下文件位于 C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\Disaster Recovery 中,用于灾难恢复。

文件名 说明
DoRecovery.ps1 Windows 任务计划程序执行的 PowerShell 脚本来处理恢复过程。此文件存储文件备份和存储位置。
Recovery.psm1 处理恢复队列操作的 PowerShell 模块。
恢复。日志 存储恢复进程输出的日志文件。
恢复错误。日志 存储恢复过程中错误的日志文件。
利日森 .dll 一个 .NET 库,用于处理来自 JSON(JavaScript 对象表示法)字符串的转换。

设置备份文件夹

在备份服务器上,创建要备份持久存储文件夹的文件夹。

ShareFile Data 文件备份的存储区域应遵循与 StorageZones Controller 永久存储相同的布局。

如果备份位置不遵循与 StorageZones Controller 持久存储相同的布局,则必须在恢复过程中执行额外步骤,将文件从备份位置复制到您在恢复 PowerShell 脚本中指定的位置。

存储布局

备份布局

\\\PrimaryStorageIP
  \StorageLocation
   \persistentstorage
    \sf-us-1
     \a024f83e-b147-437e-9f28-e7d03634af42
      \fi3d85dc_1d6c_49b0_8faa_1f36ef3d83b5
       \fi7d5cbb_93c8_43f0_a664_74f27e72bc83
        \fi47cd7e_64c4_47be_beb7_1207c93c1270

\\\BackupStorageIP
 \BackupLocation
  \persistentstorage
   \sf-us-1
    \a024f83e-b147-437e-9f28-e7d03634af42
     \fi3d85dc_1d6c_49b0_8faa_1f36ef3d83b5
      \fi7d5cbb_93c8_43f0_a664_74f27e72bc83
       \fi47cd7e_64c4_47be_beb7_1207c93c1270

重要:

ShareFile 恢复功能不会自动备份您的永久存储位置。您负责选择备份实用程序并每 1 至 7 天运行一次。

创建灾难恢复队列

此一次性设置是必需的。以下命令示例使用默认 StorageZones Controller 安装文件夹。

  1. 在 StorageZones Controller 上,以管理员身份运行 PowerShell。

  2. 此过程中使用的 PowerShell 脚本是未签名的,因此您可能需要更改 PowerShell 执行策略。

    1. 确定您的 PowerShell 执行策略是否允许您运行本地的未签名脚本:PS C:\ > 获取执行策略

      例如,“远程签名”、“无限制”或“绕过”策略允许您运行未签名的脚本。

    2. 要更改您的 PowerShell 执行策略,请执行 PS C:\>Set-ExecutionPolicy RemoteSigned

  3. 要验证 PowerShell 的版本是否正确,请键入:

    $PSE 版本表

    ClrVersion 的值必须为 4.0 或更高,才能使 PowerShell 能够在脚本中加载 .NET 程序集。如果不是,请更改 Windows PowerShell 的 32 位版本和 64 位版本,如下所示:

    1. 以管理员身份运行记事本。

    2. 创建具有以下内容的文件。

          <?xml version="1.0"?>
          <configuration>
              <startup useLegacyV2RuntimeActivationPolicy="true">
                  <supportedRuntime version="v4.0.30319"/>
                  <supportedRuntime version="v2.0.50727"/>
              </startup>
          </configuration>
      
    3. 选择“文件”>“另存为”,将文件命名为 powershell.exe.config,然后将其保存到以下位置:

      C:\Windows\System32\WindowsPowerShell\v1.0

      C:\Windows\SysWOW64\WindowsPowerShell\v1.0

    4. 关闭 PowerShell 窗口,以管理员身份打开一个新窗口,然后键入 $ psversion 表以验证 CLrVersion 是否正确。

  4. 关闭 PowerShell 窗口并使用 PsExec.exe 启动 PowerShell,如下所示:

    1. 以管理员身份打开命令提示符窗口。

    2. 导航到 PsExec.exe 的位置并输入:

      PsExec.exe -i -u “NT AUTHORITY\NetworkService” C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell

    3. 单击同意接受 PsExec.exe 许可协议。

  5. 导航到 StorageZones Controller 安装文件夹中的灾难恢复工具文件夹:

    cd ‘C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\Disaster Recovery’

  6. 导入 Recovery.psm1 模块:

    Import-Module .\Recovery.psm1

  7. 要创建恢复队列,请输入:新建 SCQue-名称恢复-操作恢复

    该命令的输出包括所创建的队列的名称。例如:Queue 92736b5d-1cff-4760-92c8-d8b04dc92cb2 created

    要查看新文件夹,请打开文件浏览器并导航到:

    \\ 服务器\(您的 主存储位置)\ 队列。您将看到“队列”文件夹,例如 92736b5d-1cff-4760-92c8-d8b04dc92cb2。

  8. 为您的位置自定义恢复 PowerShell 脚本,如下一节所述。

为您的位置自定义恢复 PowerShell 脚本

任务计划程序执行 DoRecovery.ps1 PowerShell 脚本以处理恢复过程。此文件包括必须为站点指定的文件备份和存储位置。

  1. 在 StorageZones Controller 上,导航到恢复 PowerShell 脚本:

    C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\Disaster Recovery\DoRecovery.ps1

  2. 按如下方式编辑脚本:

    a. 将 $backupRoot 参数设置为指向备份位置的 UNC 路径。例如:$backupRoot = “\\10.10.10.11\(YourBackupLocation)\persistentstorage”

    b. 将$storageRoot 参数设置为指向 StorageZones Controller 持久存储的 UNC 路径。例如:$storageRoot = “\\10.10.10.10\StorageLocation\persistentstorage”

测试恢复过程

  1. 创建一个测试文件并将其上载到 ShareFile。

  2. 一个小时左右后,验证该文件是否显示在持久存储中(在为 $backupRoot 指定的路径中)。

  3. 从 ShareFile 中删除文件:在 ShareFile 管理员工具中,单击 回收站,选择该文件,然后单击 永久删除

  4. 从永久存储中删除文件。

    此步骤将重新创建 ShareFile 将在文件被删除 45 天后执行的操作。

  5. 在 ShareFile 管理员工具中,转到 管理 > 存储区域,单击该区域,然后单击 恢复文件

  6. 在“恢复日期”文本框中单击,然后选择文件被删除之前和上载之后的日期和时间。

    此时将显示指定日期和时间存储区域的文件列表。

  7. 选中该文件的复选框。

  8. 选择要包含还原文件的文件夹,然后单击 还原

    该文件将添加到备份队列中,并准备好恢复。成功恢复文件后,屏幕会更改以显示现在包含已恢复文件的文件夹。

  9. 要恢复文件,请执行以下操作:

    a. 以管理员身份打开命令提示符窗口。

    b. 导航到 PsExec.exe 的位置,然后键入:

    ```
    PsExec.exe -i -u "NT AUTHORITY\NetworkService" C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell
    ```
    

    c. 在 PowerShell 窗口中,导航到:

    CD C:\inetpub\wwwroot\Citrix\StorageCenter\Tools\Disaster Recovery

    d. 运行恢复脚本:

    .\DoRecovery.ps1

    PowerShell 窗口将包含消息“已恢复项目”。文件将添加到永久存储位置。

  10. 从 ShareFile 网站下载还原的文件。

相关的 PowerShell 命令

以下 PowerShell 命令支持灾难恢复。

  • 恢复等待中的文件 ID

    获取恢复所需的文件 ID 列表。对于语法和参数,请使用以下命令:

    获取帮助获取恢复等待文件-已满

  • Set-RecoveryQueueItemsStatus

    为恢复队列中的所有项目或指定项目设置状态。这将覆盖队列中的现有恢复状态。对于语法和参数,请使用以下命令:

    Get-Help Set-RecoveryQueueItemsStatus -full

创建和计划恢复任务的步骤

如果需要计划恢复任务,请执行以下步骤。

  1. 启动 Windows 任务计划程序,然后在“操作”窗格中单击“创建任务”。
  2. 常规选项 卡上:

    a. 键入任务的有意义的名称。

    b. 在“安全选项”下,单击“更改用户或组”,然后指定要运行任务的用户(网络服务或对存储位置具有写入权限的指定用户)。

    c. 从“配置为”菜单中,选择要运行任务的服务器的操作系统。

  3. 要创建触发器,请在“触发器”选项卡上单击“建”。
  4. 在“开始任务”中,选择“按计划”,然后指定计划。
  5. 要创建操作,请在“ 作”选项卡上单击“建”。

    a. 对于“操作”,选择“启动程序”并指定程序的完整路径。例如:C:\Windows\System32\cmd.exe

    b. 对于“添加参数”, 键入: /c “c:\windows\syswow64\WindowsPowerShell\v1.0\PowerShell.exe -File .\DoRecovery.ps1” >> .\recovery.log 2>>.\recoveryerror.log

    c. 对于“开始”,请在 StorageZones Controller 安装位置中指定灾难恢复文件夹。例如:c:\inetpub\wwwroot\Citrix\StorageCenter\Tools\Disaster Recovery

删除服务默认期间

从 StorageZone 控制器 4.0 开始,删除服务计时器将设置为 45 天。45 天的默认期限将覆盖以前的任何设置。要修改默认期间,请编辑 C:\inetpub\wwwroot\Citrix\StorageCenter\SCFileCleanSvc 下的 FileDeleteService.exe.config。

<!--No. of days to keep data blob in active storage after deletion-->

<add key="Period" value="45"/>

修改升级后删除服务默认期间

在某些升级方案中,DeletePeriod 值将设置为空在“FileDeleteService.exe.config”。如果设置为空,则“删除期间”将默认为 45 天,从物理存储中删除已从 ShareFile 中删除的文件之前的默认天数。

要修改 StorageZones Controller 上的删除周期,请在以下位置编辑 FileDeleteService.exe.config 文件:C:\inetpub\wwwroot\Citrix\StorageCenter\SCFileCleanSvc\FileDeleteService.exe.config

在对 StorageZones Controller 进行干净安装后,删除服务将每 8 小时运行一次,以清理临时文件和文件夹。要修改计时器,请在以下位置编辑文件删除。Exe.config 文件: C:\inetpub\wwwroot\Citrix\StorageCenter\SCFileCleanSvc\FileDeleteService.exe.config

准备用于文件恢复的 StorageZones Controller