在 Azure 中备份 Linux 虚拟机

可以通过定期创建备份来保护数据。 Azure 备份可创建恢复点,这些恢复点存储在异地冗余的恢复保管库中。 从恢复点还原时,可以还原整个 VM,或只是还原特定的文件。 本文介绍如何将单个文件还原到运行 nginx 的 Linux VM。 如果没有可用的 VM,可以参考 Linux 快速入门创建一个 VM。 本教程介绍如何执行下列操作:

  • 创建 VM 的备份
  • 计划每日备份
  • 从备份还原文件

备份概述

当 Azure 备份服务启动备份时,将触发备份扩展来创建时间点快照。 Azure 备份服务在 Linux 中使用 VMSnapshotLinux 扩展。 该扩展是在首次 VM 备份(如果 VM 正在运行)期间安装的。 如果 VM 未运行,备份服务将创建基础存储的快照(因为在 VM 停止时不会发生任何应用程序写入)。

默认情况下,Azure 备份为 Linux VM 创建文件系统一致备份,但可以使用前脚本和后脚本框架将其配置为创建应用程序一致备份。 Azure 备份服务创建快照后,数据将传输到保管库。 为最大限度地提高效率,服务仅标识和传输自上次备份以后已更改的数据块。

数据传输完成后,会删除快照并创建恢复点。

创建备份

在恢复服务保管库中创建一个简单的已计划每日备份。

  1. 登录到 Azure 门户
  2. 在左侧菜单中选择“虚拟机”。
  3. 从列表中选择要备份的 VM。
  4. 在 VM 边栏选项卡上的“设置”部分中,单击“备份”。 此时会打开“启用备份”边栏选项卡。
  5. 在“恢复服务保管库”中,单击“新建”并为新保管库提供名称。 将在与虚拟机相同的资源组和位置中创建新保管库。
  6. 单击“备份策略”。 对于本示例,请保留默认值,并单击“确定”。
  7. 在“启用备份”边栏选项卡中,单击“启用备份”。 这会根据默认的计划创建每日备份。
  8. 若要创建初始恢复点,请在“备份”边栏选项卡中单击“立即备份”。
  9. 在“立即备份”边栏选项卡中单击日历图标,使用日历控件选择保留此恢复点的最后一天,并单击“备份”。
  10. 在 VM 的“备份”边栏选项卡中,可以看到已完成的恢复点数。

    恢复点

首次备份大约需要 20 分钟。 完成备份后,请继续学习本教程的下一部分。

还原文件

如果意外删除或更改了某个文件,可以使用文件恢复从备份保管库恢复该文件。 文件恢复使用一个在 VM 上运行的脚本将恢复点装载为本地驱动器。 这些驱动器将保持装载 12 小时,以便可以从恢复点复制文件并将其还原到 VM。

本示例演示如何恢复默认 nginx 网页 /var/www/html/index.nginx-debian.html。 本示例中的 VM 的公共 IP 地址为 13.69.75.209。 可使用以下命令找到 VM 的 IP 地址:

az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --o tsv
  1. 在本地计算机上打开浏览器,并键入 VM 的公共 IP 地址查看默认的 nginx 网页。

    默认的 nginx 网页

  2. 通过 SSH 连接到 VM。

    ssh 13.69.75.209
    
  3. 删除 /var/www/html/index.nginx-debian.html。

    sudo rm /var/www/html/index.nginx-debian.html
    
  4. 在本地计算机上按 CTRL + F5 刷新浏览器,检查默认的 nginx 页面是否已消失。

    默认的 nginx 网页

  5. 在本地计算机上登录到 Azure 门户

  6. 在左侧菜单中选择“虚拟机”。
  7. 从列表中选择 VM。
  8. 在 VM 边栏选项卡上的“设置”部分中,单击“备份”。 此时会打开“备份”边栏选项卡。
  9. 在边栏选项卡顶部的菜单中,选择“文件恢复”。 此时会打开“文件恢复”边栏选项卡。
  10. 在“步骤 1: 选择恢复点”中,从下拉列表中选择恢复点。
  11. 在“步骤 2: 下载脚本以浏览并恢复文件”中,单击“下载可执行文件”按钮。 将下载的文件保存到本地计算机。
  12. 单击“下载脚本”在本地下载脚本文件。
  13. 打开 Bash 提示符并键入以下命令。请将 Linux_myVM_05 05 2017.sh 替换为下载的脚本的正确路径和文件名,将 azureuser 替换为 VM 的用户名,将 13.69.75.209 替换为 VM 的公共 IP 地址。

    scp Linux_myVM_05-05-2017.sh azureuser@13.69.75.209:
    
  14. 在本地计算机上打开 VM 的 SSH 连接。

    ssh 13.69.75.209
    
  15. 在 VM 上,添加对脚本文件的执行权限。

    chmod +x Linux_myVM_05-05-2017.sh
    
  16. 在 VM 上,运行该脚本将恢复点装载为文件系统。

    ./Linux_myVM_05-05-2017.sh
    
  17. 脚本的输出将提供装入点的路径。 输出与下面类似:

    Azure VM Backup - File Recovery
    ______________________________________________
    
    Connecting to recovery point using ISCSI service...
    
    Connection succeeded!
    
    Please wait while we attach volumes of the recovery point to this machine...
    
    ************ Volumes of the recovery point and their mount paths on this machine ************
    
    Sr.No.  |  Disk  |  Volume  |  MountPath 
    
    1)  | /dev/sdc  |  /dev/sdc1  |  /home/azureuser/myVM-20170505191055/Volume1
    
    ************ Open File Explorer to browse for files. ************
    
    After recovery, to remove the disks and close the connection to the recovery point, please click 'Unmount Disks' in step 3 of the portal.
    
    Please enter 'q/Q' to exit...
    
  18. 在 VM 上,将 nginx 默认网页从装入点复制回到删除该文件的位置。

    sudo cp ~/myVM-20170505191055/Volume1/var/www/html/index.nginx-debian.html /var/www/html/
    
  19. 在本地计算机上,打开已从中连接到 VM 的 IP 地址、显示 nginx 默认页面的浏览器标签页。 按 CTRL + F5 刷新浏览器页面。 现在,应会看到默认页面再次正常运行。

    默认的 nginx 网页

  20. 在本地计算机上,返回到 Azure 门户的浏览器选项卡,并在“步骤 3: 恢复后卸载磁盘”中单击“卸载磁盘”按钮。 如果忘记执行此步骤,与装入点的连接会在 12 小时后自动关闭。 在这 12 个小时后,若要创建新的装入点,需要下载新脚本。

后续步骤

在本教程中,已学习了如何执行以下操作:

  • 创建 VM 的备份
  • 计划每日备份
  • 从备份还原文件

请转到下一教程,了解如何监视虚拟机。