磁盘已满,我无法 SSH 到实例

Disk is full, and I can't SSH to instance

尝试通过 SSH 连接到我的实例时出现错误。它告诉我检查控制台串行输出。据我了解,它说我的磁盘没有更多 space。我该怎么办?我需要 SSH 清除 space 但不能 SSH,因为没有 space!

这是我看到的:

Starting OpenBSD Secure Shell server: sshdopen: No space left on device
Oct 14 13:18:13 instance-1 sshd[2771]: Server listening on 0.0.0.0 port 22.
[?25l[?1c7[1GOct 14 13:18:13 instance-1 sshd[2771]: Server listening on :: port 22.
[[32m ok [39;49m8[?25h[?0c.
udhcpd: Disabled. Edit /etc/default/udhcpd to enable it.
mktemp: failed to create file via template `/tmp/tmp.XXXXXXXXXX': No space left on device
mktemp: failed to create file via template `/tmp/tmp.XXXXXXXXXX': No space left on device
mktemp: failed to create file via template `/tmp/tmp.XXXXXXXXXX': No space left on device
mktemp: failed to create file via template `/tmp/tmp.XXXXXXXXXX': No space left on device
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  2384  100  2384    0     0  1126k      0 --:--:-- --:--:-- --:--:-- 2328k
Oct 14 13:18:13 instance-1 google: {"attributes":{"sshKeys":"ishener:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAFbCZDZDvuIxUbH5AHYeUU/WUWaOBYI1S7Yl9k3oVFwrenn6XsMdDHKiSH2VtpenQ7mHu3YcLDFe0pO1AwJjnSO39JR/3tTVLeVbuHDTEhOhDHt0NE84S1rqHX6r591IDwLhoGnFdNibGs0Sc0uyR/kRxl5hjAWdskOm4wzald+uRctBd+hbdBmt6az7iF2UzHEV362LxUtIzaYWoo1hnhld07+eimi6t+bUHsgqDkVGaEUUDaRFWTaNlFI9UW/AMYOcu9C24molfpPKwe2R5C5HLI+8nNI7qvoGtrUZww7K5bxNQPe+bMvVitArjYItYNDU6OXvQVA/u6gnqnbt1MM= google-ssh {\"userName\":\"ishener@gmail.com\",\"expireOn\":\"2015-10-14T13:13:05+0000\"}\nishener:ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCKT2j4VbRM6DXSjLb5UlOdzfaB4K2TvZHWGV3JD7T++EbWX87JLOKg6AdbDPWTlgKRan02TIT/Xshy28r7fCCc= google-ssh {\"userName\":\"ishener@gmail.com\",\"expireOn\":\"2015-10-14T13:12:58+0000\"}\nrsa-key-20150806:ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAxtMUn200CaOuRa8bHFuqrjDiyUDrLECUf9V/ZpxT24lrqEbS1bDT7oWQwcuxQZEcrTnfeCEDeIwQpbNoOGp8NufrZUUG8jpVnVQqCHQZ3T+0Gs6et6JYxldhb0xT3KJVwQM+qnZOfwsk7co/+XOhE63u62NvUlqpGDQQUvuFY1wV3B7Rfjhg2JYEHCMswLRnSfnvyxp6+uQJ
Oct 14 13:18:13 instance-1 google: 4THd/FlcGQJyJHUvpVQAqBIii8yc59+Rb32Xlyii6YU4+G60dfP6ON1iX2qkxJT5/mIkPfd3yPizbGsYhJbaqNQHPUE9hdqTlfk3gyA8S6SySNwViQtUqOH+sbo+suiJHHwr67V/qw== rsa-key-20150806\n"},"cpuPlatform":"Intel Ivy Bridge","description":"","disks":[{"deviceName":"instance-1","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}],"hostname":"instance-1.c.united-wavelet-102819.internal","id":1871676137734806120,"image":"","machineType":"projects/273410245967/machineTypes/g1-small","maintenanceEvent":"NONE","networkInterfaces":[{"accessConfigs":[{"externalIp":"104.197.52.39","type":"ONE_TO_ONE_NAT"}],"forwardedIps":[],"ip":"10.240.238.207","network":"projects/273410245967/networks/default"}],"scheduling":{"automaticRestart":"TRUE","onHostMaintenance":"MIGRATE"},"serviceAccounts":{"273410245967-compute@developer.gserviceaccount.com":{"aliases":["default"],"email":"273410245967-compute@developer.gserviceaccount.com","scopes":["https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write"]},"default":{"al
Oct 14 13:18:13 instance-1 google: iases":["default"],"email":"273410245967-compute@developer.gserviceaccount.com","scopes":["https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write"]}},"tags":["http-server","https-server"],"virtualClock":{"driftToken":"12943060760861539723"},"zone":"projects/273410245967/zones/us-central1-f"}
Oct 14 13:18:13 instance-1 google: No startup script found in metadata.
[....] startpar: service(s) returned failure: tomcat7 ...[?25l[?1c7[1G[[31mFAIL[39;49m8[?25h[?0c [31mfailed![39;49m
Oct 14 13:18:40 instance-1 accounts-from-metadata: WARNING Could not update /home/rsa-key-20150806/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:18:40 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:18:40 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener_zaph/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:18:45 instance-1 sshd[2884]: Connection closed by 173.194.92.49 [preauth]
Oct 14 13:18:46 instance-1 sshd[2886]: Connection closed by 173.194.92.49 [preauth]
Oct 14 13:18:47 instance-1 accounts-from-metadata: WARNING Could not update /home/rsa-key-20150806/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:18:47 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:18:47 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener_zaph/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:18:49 instance-1 sshd[2903]: Connection closed by 173.194.92.52 [preauth]
Oct 14 13:18:51 instance-1 sshd[2905]: Connection closed by 173.194.92.52 [preauth]
Oct 14 13:18:55 instance-1 sshd[2907]: Connection closed by 173.194.92.52 [preauth]
Oct 14 13:19:02 instance-1 sshd[2909]: Connection closed by 173.194.92.48 [preauth]
Oct 14 13:19:17 instance-1 sshd[2912]: Connection closed by 173.194.92.48 [preauth]
Oct 14 13:19:58 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener_zaph/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:19:58 instance-1 accounts-from-metadata: WARNING Could not update /home/rsa-key-20150806/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:19:58 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:20:01 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener_zaph/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:20:01 instance-1 accounts-from-metadata: WARNING Could not update /home/rsa-key-20150806/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:20:01 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:20:02 instance-1 sshd[2929]: Connection closed by 173.194.92.51 [preauth]
Oct 14 13:20:03 instance-1 sshd[2946]: Connection closed by 173.194.92.50 [preauth]
Oct 14 13:20:06 instance-1 sshd[2948]: Connection closed by 173.194.92.49 [preauth]
Oct 14 13:20:09 instance-1 sshd[2950]: Connection closed by 173.194.92.51 [preauth]
Oct 14 13:20:13 instance-1 sshd[2952]: Connection closed by 173.194.92.50 [preauth]
Oct 14 13:20:25 instance-1 sshd[2955]: Connection closed by 173.194.92.49 [preauth]
Oct 14 13:20:36 instance-1 sshd[2957]: Connection closed by 173.194.92.52 [preauth]
Oct 14 13:20:55 instance-1 sshd[2959]: Connection closed by 173.194.92.52 [preauth]
Oct 14 13:21:01 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener_zaph/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:21:01 instance-1 accounts-from-metadata: WARNING Could not update /home/rsa-key-20150806/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:21:01 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:21:34 instance-1 sshd[2977]: Connection closed by 173.194.92.51 [preauth]
Oct 14 13:23:01 instance-1 accounts-from-metadata: WARNING Could not update /home/rsa-key-20150806/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:23:01 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener_zaph/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
Oct 14 13:23:01 instance-1 accounts-from-metadata: WARNING Could not update /home/ishener/.ssh/authorized_keys due to [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']

您有不同的选择来解决这个问题:

  1. Check if your operating system supports automatic resizing:如果是这样,您可以使用 Cloud Console 编辑 VM 的根磁盘并增加其大小。您的虚拟机实例可以在您重新启动实例后自动调整分区大小以识别额外的 space。

  2. 使用 Interactive Serial Console feature 登录到您的 VM 并清理您的 VM 磁盘或将它们复制到另一个存储,如果您以后需要它们。

  3. 如果您知道要删除哪些数据,您可以配置 startup script 来删除文件并重新启动您的 VM 到 运行 脚本(例如 rm /tmp /*).

  4. 您可以分离永久磁盘并将此磁盘作为附加磁盘附加到另一台计算机。在临时机器上,您可以装载它并清理您的数据或将它们复制到另一个存储,如果您以后需要它们。最后使用相同的启动磁盘重新创建原始实例。您可以按照此 video 中描述的相同步骤将磁盘添加到另一个 Linux VM,但添加现有的启动磁盘而不是创建新磁盘。

  5. Check if your operating system supports automatic resizing:如果是,则为您的永久磁盘创建一个快照,从快照中创建一个更大容量的新永久磁盘。最后用这个更大的启动盘重新创建原始实例。

对于遇到此问题的任何其他人!

最简单的解决方案,因为我必须处理这个问题(从完全无法访问 centos 7 实例上的 ssh 10 GB 引导 SSD 到 20 GB 引导 SSD)

使用云控制台:

  1. 创建启动磁盘的快照:https://console.cloud.google.com/compute/snapshots
  2. 从刚刚创建的快照创建新的启动磁盘,但将新磁盘大小设置为 20 GB(或您认为可能需要的任何大小):https://console.cloud.google.com/compute/disks
  3. 下一步停止实例:https://console.cloud.google.com/compute/instances
  4. 一旦停止编辑实例并单击启动盘右侧的 'X',“添加”按钮将变为可用,单击该按钮和 select 新创建的启动盘并保存- 这将分离您无法访问的过载磁盘,并将新创建的启动磁盘附加到新大小的完整分区,无需将 10 GB 分区扩展到 20,因为它是自动魔术

这将解决与没有剩余的启动盘相关的多个问题 space。

如果你和我一样看到 ssh 登录通知说你应该切换到 oslogin 因为它不能通过 web ssh 连接然后正确设置它只是为了发现“即使你可以通过 ssh 访问实例它非常有限,因为它无法将用户添加到 sudo 组策略,也无法创建主目录 - 因此您在尝试做任何事情时都会出错,包括扩展我也尝试过的引导磁盘(但没有权限获取到我需要的主目录以删除文件以允许无错误连接以扩展引导驱动器或通过 yum 添加必要的工具)这肯定也会解决所有问题。

一旦完成“如果您的预算有限”,我建议删除不再附加到任何东西的快照和旧启动磁盘。

支持链接: 如何创建快照:https://cloud.google.com/compute/docs/disks/create-snapshots#creating_snapshots

如何从快照创建永久性启动磁盘:https://cloud.google.com/compute/docs/disks/create-root-persistent-disks#applying_snapshots

如何更新实例的启动磁盘:https://cloud.google.com/compute/docs/disks/detach-reattach-boot-disk#updating_a_boot_disk_for_an_instance