将内容从旧 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 实例