将内容从旧 EBS 卷复制到 AWS 中的新 Nitro 系统 EBS 的最佳方式(最简单/最快)?

Posted

技术标签:

【中文标题】将内容从旧 EBS 卷复制到 AWS 中的新 Nitro 系统 EBS 的最佳方式(最简单/最快)?【英文标题】:Best way (easiest/fastest) to copy contents from an old EBS volume to new Nitro system EBS in AWS? 【发布时间】:2020-11-29 13:13:44 【问题描述】:

我有一个非常旧的 m3 服务器 (Ubuntu 14.04),它安装了 300GB 的 EBS 卷:/dev/xvdf。我还有一个新的 m5 服务器(Ubuntu 18.04),它使用 Nitro 系统和预装的 EBS 卷:/dev/nvme1n1。我尝试卸载然后分离旧的 EBS 卷,以便我可以附加并安装到新服务器。但是,这不起作用,因为实例 ID 不会在 AWS 控制台的 Attach Volume 屏幕中显示。即使新服务器已关闭,它也不会显示。我认为这是因为服务器的底层 AWS 系统之间不兼容。

话虽如此,我需要将数据从旧 EBS 复制到新 EBS。我在different SO answer 中读到了关于制作第三个实例的信息,我可以在其中附加两个实例。然后在两者之间做一个rsync。由于上面列出的安装问题,我认为这不会起作用。而且我认为这意味着我也不能使用 AWS CLI。

两台服务器位于同一个 AZ。大约需要传输 250GB 的数据。我打算通过 ssh 简单地使用 scp 的幼稚方法。

我的问题是,有没有比scp 更好的方法?

【问题讨论】:

通过 ssh 同步? 是的,这就是我要去的。旧的 EBS 总是被写入,所以我至少可以在实际切换之前的某个时间启动 rsync,然后再做几次以获得更新/更新的东西。谢谢! 【参考方案1】:

为什么不通过 ssh 使用rsync, 类似:

rsync -avzhe ssh --progress /mnt/nvme1n1 user@192.0.0.100:/mnt/rpmpkgs

【讨论】:

【参考方案2】:

最简单的就是使用递归scp。它一点也不天真。它是工作恕我直言的正确工具。无需同步、使用第三个实例或mount 命令。 scp 走开!

【讨论】:

以上是关于将内容从旧 EBS 卷复制到 AWS 中的新 Nitro 系统 EBS 的最佳方式(最简单/最快)?的主要内容,如果未能解决你的问题,请参考以下文章

您可以将 AWS Multi-Attach EBS 卷挂载到 Terraform 中的自动扩展组吗?

在 AWS beanstalk 下将特定的 EBS 卷挂载到 Docker

AWS 自动将 EBS 卷附加到 Elastic Beanstalk 后面的 EC2 实例

将 EBS 卷附加到 AutoScalingGroup

将 ImageField 的内容复制到 Django 中的新文件路径

AWS-EC2挂载EBS卷