在 Azure 中备份 Linux 虚拟机
可以通过定期创建备份来保护数据。 Azure 备份可创建恢复点,这些恢复点存储在异地冗余的恢复保管库中。 从恢复点还原时,可以还原整个 VM,或只是还原特定的文件。 本文介绍如何将单个文件还原到运行 nginx 的 Linux VM。 如果没有可用的 VM,可以参考 Linux 快速入门创建一个 VM。 本教程介绍如何执行下列操作:
- 创建 VM 的备份
- 计划每日备份
- 从备份还原文件
备份概述
当 Azure 备份服务启动备份时,将触发备份扩展来创建时间点快照。 Azure 备份服务在 Linux 中使用 VMSnapshotLinux 扩展。 该扩展是在首次 VM 备份(如果 VM 正在运行)期间安装的。 如果 VM 未运行,备份服务将创建基础存储的快照(因为在 VM 停止时不会发生任何应用程序写入)。
默认情况下,Azure 备份为 Linux VM 创建文件系统一致备份,但可以使用前脚本和后脚本框架将其配置为创建应用程序一致备份。 Azure 备份服务创建快照后,数据将传输到保管库。 为最大限度地提高效率,服务仅标识和传输自上次备份以后已更改的数据块。
数据传输完成后,会删除快照并创建恢复点。
创建备份
在恢复服务保管库中创建一个简单的已计划每日备份。
- 登录到 Azure 门户。
- 在左侧菜单中选择“虚拟机”。
- 从列表中选择要备份的 VM。
- 在 VM 边栏选项卡上的“设置”部分中,单击“备份”。 此时会打开“启用备份”边栏选项卡。
- 在“恢复服务保管库”中,单击“新建”并为新保管库提供名称。 将在与虚拟机相同的资源组和位置中创建新保管库。
- 单击“备份策略”。 对于本示例,请保留默认值,并单击“确定”。
- 在“启用备份”边栏选项卡中,单击“启用备份”。 这会根据默认的计划创建每日备份。
- 若要创建初始恢复点,请在“备份”边栏选项卡中单击“立即备份”。
- 在“立即备份”边栏选项卡中单击日历图标,使用日历控件选择保留此恢复点的最后一天,并单击“备份”。
在 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
在本地计算机上打开浏览器,并键入 VM 的公共 IP 地址查看默认的 nginx 网页。
通过 SSH 连接到 VM。
bash复制ssh 13.69.75.209
删除 /var/www/html/index.nginx-debian.html。
bash复制sudo rm /var/www/html/index.nginx-debian.html
在本地计算机上按 CTRL + F5 刷新浏览器,检查默认的 nginx 页面是否已消失。
在本地计算机上登录到 Azure 门户。
- 在左侧菜单中选择“虚拟机”。
- 从列表中选择 VM。
- 在 VM 边栏选项卡上的“设置”部分中,单击“备份”。 此时会打开“备份”边栏选项卡。
- 在边栏选项卡顶部的菜单中,选择“文件恢复”。 此时会打开“文件恢复”边栏选项卡。
- 在“步骤 1: 选择恢复点”中,从下拉列表中选择恢复点。
- 在“步骤 2: 下载脚本以浏览并恢复文件”中,单击“下载可执行文件”按钮。 将下载的文件保存到本地计算机。
- 单击“下载脚本”在本地下载脚本文件。
打开 Bash 提示符并键入以下命令。请将 Linux_myVM_05 05 2017.sh 替换为下载的脚本的正确路径和文件名,将 azureuser 替换为 VM 的用户名,将 13.69.75.209 替换为 VM 的公共 IP 地址。
bash复制scp Linux_myVM_05-05-2017.sh azureuser@13.69.75.209:
在本地计算机上打开 VM 的 SSH 连接。
bash复制ssh 13.69.75.209
在 VM 上,添加对脚本文件的执行权限。
bash复制chmod +x Linux_myVM_05-05-2017.sh
在 VM 上,运行该脚本将恢复点装载为文件系统。
bash复制./Linux_myVM_05-05-2017.sh
脚本的输出将提供装入点的路径。 输出与下面类似:
bash复制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...
在 VM 上,将 nginx 默认网页从装入点复制回到删除该文件的位置。
bash复制sudo cp ~/myVM-20170505191055/Volume1/var/www/html/index.nginx-debian.html /var/www/html/
在本地计算机上,打开已从中连接到 VM 的 IP 地址、显示 nginx 默认页面的浏览器标签页。 按 CTRL + F5 刷新浏览器页面。 现在,应会看到默认页面再次正常运行。
在本地计算机上,返回到 Azure 门户的浏览器选项卡,并在“步骤 3: 恢复后卸载磁盘”中单击“卸载磁盘”按钮。 如果忘记执行此步骤,与装入点的连接会在 12 小时后自动关闭。 在这 12 个小时后,若要创建新的装入点,需要下载新脚本。
后续步骤
在本教程中,已学习了如何执行以下操作:
- 创建 VM 的备份
- 计划每日备份
- 从备份还原文件
请转到下一教程,了解如何监视虚拟机。
立即访问http://market.azure.cn
在 Azure 中备份 Linux 虚拟机的更多相关文章
- 如何监视和更新 Azure 中的 Linux 虚拟机
为确保 Azure 中的虚拟机 (VM) 正常运行,可以查看启动诊断.性能指标,并管理程序包更新. 本教程介绍如何执行下列操作: 在 VM 上启用启动诊断 查看启动诊断 在 VM 上启用诊断扩展 基于 ...
- 如何在 Azure 中均衡 Linux 虚拟机负载以创建高可用性应用程序
负载均衡通过将传入请求分布到多个虚拟机来提供更高级别的可用性. 本教程介绍了 Azure 负载均衡器的不同组件,这些组件用于分发流量和提供高可用性. 你将学习如何执行以下操作: 创建 Azure 负载 ...
- 在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚 ...
- 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...
- 在 Azure 中的 Linux VM 上创建 MongoDB、Express、AngularJS 和 Node.js (MEAN) 堆栈
本教程介绍如何在 Azure 中的 Linux VM 上实现 MongoDB.Express.AngularJS 和 Node.js (MEAN) 堆栈. 通过创建的 MEAN 堆栈,可以在数据库中添 ...
- 使用Azure CLI创建Linux虚拟机
Azure提供了三种方式创建虚拟机,分别是Azure CLI.Azure PowerShell和Azure门户.本文介绍使用Azure CLI来创建Linux虚拟机. 使用Azure CLI创建Lin ...
- Azure 中的 Windows 虚拟机概述
Azure 虚拟机 (VM) 是 Azure 提供的多种可缩放按需分配计算资源之一. 通常情况下,如果需要以更大的力度(相对于其他控制选项)控制计算环境,则应选择 VM. 本文介绍创建 VM 之前的注 ...
- 使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境
发布于 2013-12-11 作者 Ross Gardler 微软开放技术有限公司 (MS Open Tech) 很高兴地宣布发行新的 Windows Azure Puppet 模块.通过这个模 ...
- [原]Windows Azure开发之Linux虚拟机
Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是虚 ...
随机推荐
- C/C++ -- Gui编程 -- Qt库的使用 -- 纯代码实现信号槽
失败,系统找不着槽 #include<QtGui> int main(int argc, char * argv[]) { QApplication app(argc, argv); QT ...
- Dock的生态开源技术(Etcd&Machine&Compose&Swarm&Mesos&Kubernetes)
Etcd CoreOS公司开源的高可用分布式键值数据库Etcd,该项目已经被广泛应用到分布式系统的一致性实现和服务发现中,基于Go语言实现. Etcd就是专门为集群环境设计,可以很好地实现数据一致性, ...
- Node.js最新Web技术栈(2016年4月)
Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见<全栈工程师之路-Node.js>,里面讲了No ...
- 开始使用 Vuejs 2.0 --- 组件间数据传递
Vue1.0组件间传递 使用$on()监听事件: 使用$emit()在它上面触发事件: 使用$dispatch()派发事件,事件沿着父链冒泡: 使用$broadcast()广播事件,事件向下传导给所有 ...
- 我理解的js中预解释
浏览器在执行代码前,先找带var和带function的地方,把带var的声明且赋予初始值undefined,把带function的声明且定义. 带var关键字预解释 让我们先看下这段代码执行的结果: ...
- java课件运行实践
两数相加 源文件:Addition.java 源代码: // An addition program import javax.swing.JOptionPane; // import class ...
- WCF配置文件与文件下载之坎坷路
题外话:本以为我会WCF了,精通WCF了,毕竟刚做过一个WCF的项目,不就是写写契约接口,然后实现接口,改下配置.最后用控制台或者服务发布一下,不就能用了.不就是简单ABC吗?不是So Easy吗?做 ...
- 通向全栈之路——(5)git通三端
一.在私有git服务中新建一个项目(码云):将电脑上id_rsa.pub(git公钥)拷贝至ssh下面中保存二.本地代码关联git:1.git全局设置:git config --global user ...
- vue中watch数组或者对象
1.普通的watch data() { return { frontPoints: 0 } }, watch: { frontPoints(newValue, oldValue) { console. ...
- [日常] CentOS安装最新版redis设置远程连接密码
wget http://download.redis.io/releases/redis-4.0.8.tar.gztar -zxvf redis-4.0.8.tar.gzmake完成后就会放在了src ...