가득 찬 디스크 및 디스크 크기 조절 문제 해결


이 페이지에서는 영구 디스크의 크기를 조절할 때 또는 영구 디스크가 가득 찼을 때 발생할 수 있는 일반적인 문제와 각 문제를 해결하는 방법을 설명합니다.

시작하기 전에

  • 문제 해결 단계를 수행하기 전에 항상 디스크 스냅샷을 생성하여 데이터가 백업되었는지 확인하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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

디스크 수정 시 비율 제한 오류

다음은 익스트림 영구 디스크 또는 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.
    

디스크 수정에 대한 다음 시간 제한을 검토합니다.

  • 익스트림 영구 디스크 또는 Hyperdisk Throughput 볼륨의 크기는 6시간 동안 한 번만 조절할 수 있습니다.
  • Hyperdisk Extreme 볼륨의 크기는 4시간 동안 한 번만 조절할 수 있습니다.
  • 하이퍼디스크 볼륨의 프로비저닝된 IOPS 또는 처리량은 4시간 동안 한 번만 변경할 수 있습니다.

이 오류를 해결하려면 마지막으로 수정한 후 필요한 시간만큼 기다린 후에 디스크 수정을 다시 시도하세요.

디스크 용량 오류

가득 찬 디스크

영구 디스크가 최대 용량에 도달하면 일반적으로 다음과 같은 오류가 발생할 수 있습니다. 이러한 오류는 직렬 콘솔 출력 또는 애플리케이션 로그 등 여러 곳에 나타날 수 있습니다.

    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: 부팅 디스크의 새로운 더 큰 크기(GB)

      예를 들어 example-disk-1 디스크 크기를 6GB로 조절하려면 다음 명령어를 실행합니다.

      gcloud compute disks resize example-disk-1 --size=6GB
      
    3. 다음을 실행하여 VM을 시작합니다.

      gcloud compute instances start VM_NAME
      
  5. SSH를 통해 VM에 연결을 다시 시도합니다. 그래도 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이 루트 파일 시스템의 크기를 조절하지 않은 경우 수동으로 파일 시스템 및 파티션의 크기를 조절합니다.