将 EBS 卷或快照下载到文件

Sun*_*her 7 disk-volume amazon-ebs amazon-web-services aws-cli

有没有办法将 EBS 卷/快照转储/保存到文件或将其挂载到本地Linux 文件系统?

我只找到了这个旧线程这个打算通过 S3 保存它的脚本,而且似乎不太可靠。我也找到了这个 online-tool,但它对我不起作用。它甚至不包含所有可用区域。

我不寻求基于 rsync 的解决方案。

我们可以通过某种方式将EBS直接下载为.img.iso文件dd吗?

dan*_*aur 8

AWS 不提供下载或提取构成 EBS 卷的实际块设备的方法。获取副本的标准方法是使用 rsync,但由于您采用的是块级方法,因此本文可能会有用。

简而言之(如果上面的链接消失了),请在两端使用netcatdd,例如;

在发送方(卷附加到的 EC2 实例)上:

dd bs=16M if=/dev/sda|bzip2 -c|nc receiver.example.net 19000

在接收器(您的 PC、备份服务器等)上:

nc -l 19000|bzip2 -d|dd bs=16M of=/path/to/my/volume.img

这将通过端口 19000 以 16MB 的 bzipped 块传输块级设备的全部内容,虽然它也可以通过 ssh 完成,但根据它们的性能统计数据,速度要慢得多!当然,您也需要考虑这样做的安全性方面。如果您的块设备上有敏感数据,强烈建议使用 SSH 或使用 VPN 隧道对其进行加密,并且传输速度降低是一个合理的权衡。

需要注意的另一件事是文件系统可以缓存在内存中,因此可能会导致图像损坏。在运行上述之前卸载您的卷(但将其连接到实例)以确保文件系统一致性。

要获取快照的副本,您需要从中创建一个卷,将其附加到一个实例,然后执行上述操作。没有其他方法可以访问快照的数据。

  • 这种方法在“技术上”有效,但请记住文件系统缓存在内存中。此方法通常会导致还原时损坏的文件系统。在阻止复制任何设备之前卸载所有卷。这意味着您无法卸载根文件系统卷,因此无法对设备进行块复制。 (2认同)