You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行debian-10-buster的谷歌云VM实例无法SSH连接故障求助

排查&解决步骤

核心根因说明

本次故障的核心诱因是磁盘100%占满:SSHD服务启动、权限校验过程需要写入临时文件、日志文件,磁盘满时SSHD无法正常启动,因此出现所有SSH方式都无法连接的问题。你之前清理空间后依旧显示占满,是因为删除的文件仍被运行中的进程持有句柄,空间未真正释放。

第一步:挂载启动盘到正常实例清理磁盘

  • 先停止故障实例,在GCE控制台进入该实例的引导磁盘详情页,选择「附加到实例」,选择同区域的另一台正常运行的Debian系列实例作为挂载目标,挂载时不要勾选只读选项。
  • 登录正常实例,执行lsblk找到刚挂载的磁盘设备(大小和故障实例启动盘一致,通常为/dev/sdb),创建临时挂载目录并挂载主分区:
    mkdir /mnt/fault_disk
    # 以下分区名根据lsblk输出的实际分区结构调整,通常为/dev/sdb1
    mount /dev/sdb1 /mnt/fault_disk
    
  • 清理冗余大文件,优先排查Docker相关占用:
    • 进入Docker默认存储路径:cd /mnt/fault_disk/var/lib/docker
    • 先执行查看Docker资源占用:docker --root /mnt/fault_disk/var/lib/docker system df
    • 注意:如果有未备份的重要Docker镜像、容器数据,执行清理前请先确认资源归属,避免误删
    • 清理Docker冗余资源(停止的容器、悬空镜像、未使用的卷):docker --root /mnt/fault_disk/var/lib/docker system prune -a -f
    • 若清理后空间仍不足,执行du -h --max-depth=1 /mnt/fault_disk逐层排查大文件,优先清理/var/log下的老旧日志、用户目录下的冗余安装包、缓存文件。
  • 清理完成后执行df -h /mnt/fault_disk确认磁盘占用率降到90%以下,卸载磁盘:umount /mnt/fault_disk,回到GCE控制台将该磁盘从正常实例卸载,重新挂载回原故障实例作为启动盘。

第二步:验证恢复与后续优化

  • 启动原故障实例,等待2-3分钟后查看串行控制台输出,确认无磁盘满相关报错、sshd服务显示启动成功后,尝试本地SSH或GCE在线SSH连接即可。
  • 连接成功后建议做2项配置避免后续再次触发同类故障:
    1. 配置Docker日志轮转,限制日志大小避免无限占盘:修改/etc/docker/daemon.json加入以下配置:
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m",
        "max-file": "3"
      }
    }
    
    配置完成后执行systemctl daemon-reload && systemctl restart docker生效。
    2. 确认ext4文件系统预留5%的root用户空间(默认会预留,若之前手动调整过可恢复):tune2fs -m 5 /dev/sda1(对应你的启动盘主分区名),预留空间后即便普通用户占满磁盘,root用户仍可登录清理。

内容的提问来源于stack exchange,提问作者porcelainsnake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:45:03