【问题标题】:How do I get files from GCP VM?如何从 GCP 虚拟机获取文件?
【发布时间】:2019-04-30 19:27:09
【问题描述】:

我目前有一个 GCP 虚拟机,我尝试在其中安装一些东西,但在 Ubuntu 上没有内存剩余错误。我尝试再次打开 SSH,但它无法正常工作。

P.S 防火墙/连接没有问题。

我只是想要一种方法来下载我存储在 VM 中的文件。有没有办法在不访问终端的情况下做到这一点?

【问题讨论】:

  • 似乎您的 GCP VM 本身无法访问(但从您的描述中不清楚)。您是否尝试通过对实例的串行控制台启用interactive access 来访问它?

标签: google-cloud-platform google-compute-engine


【解决方案1】:

如果您无法连接到实例,您始终可以获取磁盘的snapshot,然后创建一个副本以将其挂载到新实例中以从那里恢复数据。

【讨论】:

  • 问题似乎与实例上的操作系统有关,对磁盘或实例大小的任何更改都没有任何区别。我说大小是因为当我尝试在 VM 上安装某些东西时出现“没有剩余内存”错误,之后我最终在该站点上尝试了一个解决方案,该解决方案涉及使用 grep 删除一些占用太多内存的文件。现在虚拟机将无法打开。我意识到我已经严重过度复杂了。我只需要磁盘上的文件。如果操作系统损坏,我有什么办法可以解决这些问题?
【解决方案2】:

您的问题的描述和结果没有意义。但是,假设您的实例内存不足,您无法使用 SSH 连接到该实例。

  1. 重新启动实例并重试。安装软件可能会导致内存不足问题。重新启动应该可以纠正这个问题。
  2. 使用具有更多内存的更大机器类型启动实例。如果这是内存大小问题,这将纠正它。
  3. 分离实例的磁盘并附加到您可以连接的另一个实例。挂载文件系统并复制文件。

但是,如果您的问题是磁盘空间不足,这更有意义。

调整实例磁盘的大小。在 Google Cloud Console 中,转到 Compute Engine -> Disks。单击您的实例的磁盘。点击EDIT。在Size 下输入一个更大的新磁盘大小。现在启动您的实例。对于大多数操作系统(Ubuntu、Debian 等),操作系统会自动调整根文件系统的大小。我写了一个article 详细介绍了这一点。

【讨论】:

  • 感谢您的回复。我试过(1),(2)和(3),它没有任何区别。我什至尝试调整磁盘大小,但它没有改变任何东西。有没有可能是linux版本损坏了?我尝试用不同的磁盘创建另一个实例,它似乎工作得很好,所以连接部分没有问题。关于如何处理这个问题的任何建议?
  • 查看从控制台串口启动的实例。 cloud.google.com/sdk/gcloud/reference/compute/instances/…
  • 感谢您的回复。我尝试用旧磁盘创建一个新实例,它可以工作!我参考了其他建议之一中的步骤。
【解决方案3】:

如果您无法通过串行控制台登录,那么剩下的唯一选择就是通过创建新虚拟机从旧虚拟机中检索数据。

您可以按照以下步骤从受影响的 (OLD) VM 磁盘复制数据。

1 从 OLD VM 的启动盘创建一个snapshot

2 创建一个虚拟机。作为启动盘,你应该使用 Google public 图像(重要 - 不要使用您创建的快照)。

3 创建该实例后,尝试通过 SSH 连接到该实例以测试是否 您可以访问它。在这一点上应该没有问题 此 VM 实例,因为这是一个使用全新操作的新实例 系统。

4 在新创建的实例中,点击实例名称(在 控制台),然后单击页面顶部的“编辑”以编辑 机器。

5 在“附加磁盘”部分,单击“添加项目”。

6 在“名称”下拉列表中选择“创建磁盘”。在那个窗口 打开为磁盘添加一个名称,并在“源快照”下拉列表中 选择您在第 1 步中创建的快照。现在点击“创建”

7 单击“保存”以保存实例的新配置。

8 请通过 SSH 连接到新实例,然后运行命令 $lsblk 。你会 能够看到添加的新磁盘和分区(很可能 命名为 sdb1 但您应该检查并注意)。

9) 请运行以下命令,该命令将在 /mnt/newdisk 然后将附加磁盘分区挂载到该分区 挂载点。注意 - 将以下命令中的 /dev/sdb1 替换为 分区的名称(如果不同)。

$ sudo mkdir /mnt/newdisk | sudo mount -o 丢弃,默认 /dev/sdb1 /mnt/newdisk

快照文件系统现在将挂载到 /mnt/newdisk。

您现在应该能够浏览目录并检索任何数据。

我希望这对你有帮助。

【讨论】:

  • 我刚刚得到它。很好解释。谢谢!你能告诉我你是怎么调试的吗?你过去有没有遇到过同样的情况?
  • 这只是从磁盘有问题的虚拟机获取数据的一种解决方法。将来,“定期”拍摄 VM 快照始终是一种好方法。我使用有关“how to resize both persistent boot disks and secondary (non-boot) persistent disks”的帮助中心文章来构建命令。
  • 完美!谢谢!
  • 你救了我的命
  • 注意点:DiskType 应该相同。请注意partition 而不是disk 在答案中
猜你喜欢
  • 2018-09-06
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 2011-12-02
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多