ディスクの空き容量不足とサイズ変更のトラブルシューティング


このページでは、永続ディスクのサイズ変更時や永続ディスクの空き容量がなくなった場合に発生する可能性のある、一般的な問題とその解決方法について説明します。

始める前に

  • データを確実にバックアップするには、必ずディスクのスナップショットを作成してからトラブルシューティングを行ってください。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

ディスク変更時のレート制限エラー

Extreme Persistent Disk または 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.
    

ディスクの変更に関する次の制限時間を確認してください。

  • Extreme Persistent Disk または Hyperdisk Throughput ボリュームのサイズを変更できるのは、6 時間に 1 回だけです。
  • Hyperdisk Extreme ボリュームのサイズを変更できるのは、4 時間に 1 回だけです。
  • Hyperdisk ボリュームにプロビジョニングされた IOPS またはスループットは 4 時間に 1 回だけ変更できます。

これらのエラーを解決するには、前回の変更から必要な時間が経過してから、ディスクの変更を再試行してください。

ディスク容量エラー

ディスクの空き容量なし

永続ディスクの空き容量がなくなったときに発生する一般的なエラーは次のとおりです。これらのエラーは、シリアル コンソールの出力やアプリケーション ログなど、さまざまな場所に表示されます。

    No space left on device
    
    Not enough storage is available to process this command
    

この問題を解決するには、次の手順を行います。

  1. ディスクのスナップショットを作成します

  2. ディスク上の不要なファイルを削除して、空き容量を増やします。

  3. これらの操作を行っても容量が不足する場合は、ディスクのサイズを変更します。

ブートディスクがいっぱいのため VM にアクセスできない

ブートディスクがいっぱいの場合、VM にアクセスできない可能性があります。ブートディスクがいっぱいであることが VM の接続に関する問題の原因だということは常に明らかではないため、このシナリオは特定が難しい場合があります。ブートディスクがいっぱいであるために Google Cloud CLI から VM にアクセスできない場合、次のようなエラーが発生することがあります。

      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', '/']...
      

上記の問題を解決するには、次の手順を実施します。

  1. VM の SSH 障害が、ブートディスクがいっぱいであるためだということを確認します。

    gcloud compute instances tail-serial-port-output VM_NAME
    

    ブートディスクがいっぱいの場合、結果の出力には No space left on device というメッセージが含まれます。

  2. VM のブートディスクのスナップショットを作成していない場合は、作成します。

  3. VM の再起動を試します。

  4. それでも VM にアクセスできない場合は、次の手順を行います。

    1. VM を停止します。

      gcloud compute instances stop VM_NAME
      

      VM_NAME は実際の VM 名に置き換えます。

    2. ブートディスクのサイズを増やします。

      gcloud compute disks resize BOOT_DISK_NAME --size DISK_SIZE
      

      次のように置き換えます。

      • BOOT_DISK_NAME: VM のブートディスクの名前
      • DISK_SIZE: ブートディスクの新しいサイズ(ギガバイト単位)

      たとえば、example-disk-1 という名前のディスクを 6 GB にサイズ変更するには、次のコマンドを実行します。

      gcloud compute disks resize example-disk-1 --size=6GB
      
    3. VM を起動します。

      gcloud compute instances start VM_NAME
      
  5. VM への SSH を再試行します。それでも VM にアクセスできない場合は、次のいずれかを行います。

ファイル システムの問題

ファイル システムのサイズ変更

VM ブートディスクのサイズを変更すると、ほとんどの VM はルート ファイル システムのサイズを変更し、VM を再起動します。ただし、一部の VM イメージタイプでは、ファイル システムのサイズを手動で変更する必要があります。VM がルート ファイル システムの自動サイズ変更をサポートしていない場合や、データ(非ブート)永続ディスクのサイズを変更した場合は、手動でファイル システムとパーティションのサイズを変更する必要があります。

VM ブートディスクのサイズを変更した後にルート ファイル システムが自動的に拡張されたかどうかを確認するには、次の手順を行います。

  1. 次のいずれかの方法を使用して、VM がブートディスクのサイズを変更したかどうかを確認します。

    • シリアルポート出力を検査します。ルート パーティションのサイズが変更されたことを示す行を探します。

      たとえば、Debian イメージを使用した VM では、自動サイズ変更に成功した場合、コンソールログに ... expand-root.sh[..]: Resizing ext4 filesystem on /dev/sda1 という行が含まれます。

    • SSH を使用して Linux VM に接続できる場合は、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% /
      
  2. VM でルート ファイル システムのサイズを変更していない場合は、手動でファイル システムとパーティションのサイズを変更します。