本页面介绍了在调整永久性磁盘的大小或永久性磁盘已满时可能遇到的常见问题,以及如何修复各个问题。
准备工作
- 在执行任何问题排查步骤之前,请务必创建磁盘快照,以确保数据已备份。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 您在 6 小时内只能调整一次极端永久性磁盘或 Hyperdisk Throughput 卷的大小。
- 您在 4 小时内只能调整一次 Hyperdisk Extreme 卷的大小。
- 您在在 4 小时内只能更改一次 Hyperdisk 卷的预配 IOPS 或吞吐量。
确认虚拟机的 SSH 故障是否因启动磁盘已满导致:
gcloud compute instances tail-serial-port-output VM_NAME
如果启动磁盘已满,则生成的输出将包含消息
No space left on device
。为虚拟机的启动磁盘创建快照(如果尚未这样做)。
尝试重启虚拟机。
如果您仍然无法访问虚拟机,请执行以下操作:
停止虚拟机:
gcloud compute instances stop VM_NAME
将
VM_NAME
替换为虚拟机名称。增加启动磁盘的大小:
gcloud compute disks resize BOOT_DISK_NAME --size DISK_SIZE
替换以下内容:
BOOT_DISK_NAME
:虚拟机的启动磁盘的名称DISK_SIZE
:启动磁盘新的更大大小(以 GB 为单位)
例如,如需将名为
example-disk-1
的磁盘的大小调整为 6GB,请运行以下命令:gcloud compute disks resize example-disk-1 --size=6GB
启动该虚拟机:
gcloud compute instances start VM_NAME
尝试通过 SSH 连接到虚拟机。如果您仍然无法访问虚拟机,请执行以下操作之一:
根据快照创建一块新的磁盘。如需了解详情,请参阅恢复无法访问的虚拟机或存储空间已满的启动磁盘。
使用以下方法之一检查您的虚拟机是否已调整启动磁盘的大小:
检查串行端口输出。查找指示已调整根分区大小的行。
例如,在具有 Debian 映像的虚拟机上,如果自动调整大小成功,则控制台日志会包含
... expand-root.sh[..]: Resizing ext4 filesystem on /dev/sda1
行。如果您可以使用 SSH 连接到 Linux 虚拟机,请运行命令
df -h
以检查是否存在可用磁盘空间。例如,此输出表明根文件系统用量已达到 92%:
Filesystem Size Used Avail Use% Mounted on udev 63G 0 63G 0% /dev tmpfs 13G 1.4M 13G 1% /run /dev/sda1 339G 315G 24G 92% /
如果您的虚拟机未调整根文件系统的大小,请手动调整文件系统和分区的大小。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
修改磁盘时的速率限制错误
以下是您在尝试修改极端永久性磁盘或 Google Cloud Hyperdisk 时可能会遇到的常见错误。您可能会在多个位置(例如,串行控制台输出或应用日志中)看到这些错误。
Disk cannot be resized due to being rate limited.
Cannot update provisioned iops due to being rate limited.
Cannot update provisioned throughput due to being rate limited.
查看修改磁盘的以下时间限制:
要解决这些错误,请等待自上次修改以来所需的时间量,然后再次尝试修改磁盘。
磁盘容量错误
完整磁盘
以下是您的永久性磁盘达到最大容量时可能会遇到的常见错误。您可能会在多个位置(例如,串行控制台输出或应用日志中)看到这些错误。
No space left on device
Not enough storage is available to process this command
如需解决此问题,请执行以下操作:
由于启动磁盘已满而导致虚拟机无法访问
如果虚拟机启动磁盘已满,则您可能无法访问虚拟机。此情况可能很难识别,因为虚拟机连接问题是由于启动磁盘已满导致时,这种情况并不总是显而易见。以下是您由于启动磁盘已满而无法通过 Google Cloud CLI 访问虚拟机时可能遇到的常见错误示例:
Network error: Software caused connection abort
ERROR: (gcloud.compute.ssh) Could not SSH into the instance. It is possible that your SSH key has not propagated to the instance yet. Try running this command again. If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.
You cannot connect to the VM instance because of an unexpected error. Wait a few moments and then try again.
No space left on device
ERROR Exception calling the response handler. [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']...
如需解决上述问题,请执行以下操作:
文件系统问题
调整文件系统大小
调整虚拟机启动磁盘的大小后,大多数虚拟机会调整根文件系统的大小并重启虚拟机。但是,对于某些虚拟机映像类型,您可能需要手动调整文件系统的大小。如果您的虚拟机不支持自动调整根文件系统大小,或者您已调整数据(非启动)永久性磁盘的大小,则必须手动调整文件系统和分区的大小。
如需检查在调整虚拟机启动磁盘的大小后根文件系统是否自动扩展,请执行以下操作:
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-21。
-