영구 디스크 크기 늘리기


가상 머신(VM) 인스턴스에 추가 저장공간이나 높은 성능 한도가 필요한 경우 영구 디스크 크기를 늘릴 수 있습니다. 디스크가 실행 중인 VM에 연결되어 있는지 여부와 관계없이 언제든지 디스크 크기를 늘릴 수 있습니다.

디스크 크기를 늘릴 수만 있으며 줄일 수는 없습니다. 디스크 크기를 줄이려면 더 작은 크기로 새 디스크를 만들어야 합니다. 더 큰 원본 디스크까지 삭제할 때까지는 두 디스크 모두에 대한 요금이 부과됩니다.

커스텀 Linux 이미지 또는 커스텀 Windows 이미지를 만들 때는 부팅 디스크와 비부팅 디스크의 크기를 수동으로 늘려야 합니다. 공개 이미지를 사용하는 경우 Compute Engine에서 부팅 디스크 크기를 자동으로 조절합니다.

디스크 크기를 늘려도 디스크 데이터가 삭제 또는 수정되지 않지만 파일 시스템이나 파티션을 변경하기 전에 항상 스냅샷을 만들어 디스크를 백업하는 것이 좋습니다.

Compute Engine은 영구 디스크의 하드웨어를 관리하므로 스트라이핑이나 중복을 처리하지 않고 디스크를 추가하고 크기를 조절할 수 있습니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    Terraform

    로컬 개발 환경에서 이 페이지의 Terraform 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

    1. Google Cloud CLI를 설치합니다.
    2. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

      gcloud init
    3. Google 계정의 로컬 인증 사용자 인증 정보를 만듭니다.

      gcloud auth application-default login

    자세한 내용은 로컬 개발 환경의 인증 설정를 참조하세요.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

디스크 크기 늘리기

부팅 또는 비부팅 디스크 크기를 늘리려면 다음 절차를 따릅니다.

콘솔

  1. Google Cloud Console에서 디스크 페이지로 이동합니다.

    디스크로 이동

  2. 프로젝트의 영구 디스크 목록에서 크기를 조절하려는 디스크의 이름을 클릭합니다.

  3. 디스크 세부정보 페이지에서 수정을 클릭합니다. 작업 더보기 메뉴를 클릭한 후 수정을 클릭해야 할 수 있습니다.

  4. 크기 필드에 디스크의 새 크기를 입력합니다. MBR 파티션 테이블이 있는 디스크 크기를 최대 2TB까지만 조절할 수 있습니다.

  5. 저장을 클릭하여 변경사항을 디스크에 적용합니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  2. gcloud CLI에서 gcloud compute disks resize 명령어를 사용하고 원하는 디스크 크기(GB)로 --size 플래그를 지정합니다.

    gcloud compute disks resize DISK_NAME --size DISK_SIZE
    

    다음을 바꿉니다.

    • DISK_NAME: 크기를 조절할 디스크의 이름
    • DISK_SIZE: 디스크의 새 크기(GB). MBR 파티션 테이블이 있는 디스크는 최대 2TB까지만 크기를 조절할 수 있습니다.

Terraform

영구 디스크의 크기를 변경하려면 google_compute_disk 리소스를 사용하고 size 매개변수를 사용하면 됩니다.

# Using pd-standard because it's the default for Compute Engine

resource "google_compute_disk" "default" {
  name = "disk-data"
  type = "pd-standard"
  zone = "us-west1-a"
  size = "5"
}

image 또는 snapshot 매개변수와 함께 size 매개변수를 포함하는 경우 size 값은 이미지 또는 스냅샷의 크기와 같거나 커야 합니다.

imagesnapshot 매개변수를 생략하는 경우 size 매개변수를 기존 디스크 크기보다 작게 설정할 수 있습니다. 이렇게 하면 Terraform이 디스크를 폐기하고 비어 있는 새 영구 디스크를 만듭니다. 재생성하는 동안 Terraform은 라벨 또는 스냅샷 일정과 같이 Terraform 구성에 포함되지 않은 다른 데이터를 복사하지 않습니다. Terraform 구성에 디스크를 삭제하고 다시 만들지 않으려면 Terraform 구성에 lifecycle.prevent_destroy = true 설정을 추가하면 됩니다.

REST

compute.disks.resize 메서드에 대한 POST 요청을 생성합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/resize

{
 "sizeGb": "DISK_SIZE"
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 디스크가 있는 영역입니다.
  • DISK_NAME: 크기를 조절할 디스크의 이름입니다.
  • DISK_SIZE: 디스크의 새 크기(GB). MBR 파티션 테이블이 있는 디스크는 최대 2TB까지만 크기를 조절할 수 있습니다.

파일 시스템 및 파티션 크기 조절

디스크 크기를 늘린 후 파일 시스템과 파티션의 크기를 조절해야 할 수 있습니다. 다음 목록에서는 부팅 디스크와 비부팅 디스크에 대한 추가 정보를 보여줍니다.

  • 부팅 디스크: 커스텀 Linux 이미지 또는 커스텀 Windows 이미지를 사용하는 경우 루트 파티션과 파일 시스템의 크기를 수동으로 조절해야 합니다. 공개 이미지가 있는 VM의 경우 부팅 디스크 크기를 늘리고 VM을 다시 시작하면 Compute Engine에서 루트 파티션과 파일 시스템의 크기를 자동으로 조절합니다.

  • 비부팅 디스크: 디스크 크기를 늘린 후 추가된 공간을 사용하려면 디스크의 파일 시스템을 확장해야 합니다.

다음 예시에서는 부팅 디스크의 루트 파티션 및 파일 시스템 크기를 수동으로 조절하고 파티션 테이블이 없는 비부팅 데이터 디스크의 파일 시스템 크기를 수동으로 조절하는 방법을 보여줍니다. 이 예시에서는 연결된 디스크가 이전에 포맷되고 마운트되었다고 가정합니다.

Linux VM

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 새 연결된 디스크가 있는 인스턴스 옆에서 SSH 버튼을 클릭합니다. 브라우저에서 인스턴스로의 터미널 연결이 열립니다.

  3. dflsblk 명령어를 사용하여 파일 시스템 크기를 나열하고 디스크의 기기 이름을 찾습니다.

    $ sudo df -Th
    
    Filesystem      Type     Size   Used  Avail  Use%  Mounted on
    /dev/sda1       ext4     9.7G   1.2G   8.5G   12%  /
    /dev/sdb        ext4     250G    60M   250G    1%  /mnt/disks/disk-1
    
    
    $ sudo lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda       8:0    0   20G  0 disk
    └─sda1    8:1    0   10G  0 part /
    sdb       8:16   0  500G  0 disk /mnt/disks/disk-1
    
    

    이 예시에는 다음 디스크가 포함됩니다.

    • 부팅 디스크: /dev/sda1 파티션은 크기가 20GB로 조절된 부팅 디스크에 있습니다. 파티션 테이블 및 파일 시스템은 운영체제에 9.7GB만 제공합니다.
    • 비부팅 데이터 디스크: /dev/sdb 비부팅 데이터 디스크는 파티션 테이블이 없습니다. 하지만 이 디스크의 파일 시스템은 운영체제에 250GB만 제공합니다. 이 디스크의 마운트 디렉터리는 /mnt/disks/disk-1입니다.

    df 명령어에서는 루트 파일 시스템으로 마운트된 /dev/sda1 파티션과 /mnt/disks/disk-1에 비부팅 데이터 디스크로 마운트된 /dev/sdb 디스크를 보여줍니다. 디스크에서 ext4 또는 xfs 파일 시스템을 사용하는지 여부를 나타내는 유형 열을 확인합니다.

  4. 파티션 유형을 확인합니다.

    sudo parted -l
    
    또는 특정 디스크에 대한 정보만 볼 수 있습니다.
    sudo parted -l /dev/DEVICE_NAME
    
    파티션 테이블 필드를 찾습니다. 값이 msdos이면 디스크에 MBR 파티션 유형이 사용된 것입니다. 이러한 디스크의 최대 크기는 2TB입니다.

  5. 부팅 디스크의 루트 파티션 및 파일 시스템 크기를 조절합니다. 이 예시에서는 VM 이미지에서 자동 루트 파티션 나누기 및 파일 시스템 크기 조절을 지원하지 않는다고 가정합니다.

    1. parted를 사용하여 루트 파티션 크기를 조절합니다. 예를 들어 다음 명령어는 /dev/sda의 파티션 1을 가능한 최대 크기로 확장합니다.

      1. /dev/sda 파티션에서 parted를 엽니다.

        sudo parted /dev/sda
        
      2. (parted) 프롬프트에서 다음을 입력합니다.

        resizepart
        
      3. Partition number? 프롬프트에서 다음을 입력합니다.

        1
        
      4. Warning: Partition /dev/sda1 is being used. Are you sure you want to continue? 프롬프트에서 다음을 입력합니다.

        Yes
        
      5. End? 프롬프트에서 다음을 입력합니다.

        100%
        
      6. (parted) 프롬프트에서 다음을 입력합니다.

        quit
        
    2. partprobe를 사용하여 새 파티션 테이블을 읽습니다.

      sudo partprobe /dev/sda
      
    3. 파일 시스템을 확장합니다.

      • ext4를 사용하는 경우 resize2fs 명령어를 사용합니다.

        sudo resize2fs /dev/sda1
        
      • xfs를 사용하는 경우 xfs_growfs 명령어를 사용합니다.

        sudo xfs_growfs -d /
        
      • btrfs를 사용하는 경우 btrfs 명령어를 사용합니다.

        sudo btrfs filesystem resize max /
        
  6. 비부팅 데이터 디스크에서 파일 시스템 크기를 조절합니다.

    • ext4를 사용하는 경우 resize2fs 명령어를 사용하여 파일 시스템을 확장합니다.

      sudo resize2fs /dev/DEVICE_NAME
      

      DEVICE_NAME을 디스크의 기기 이름으로 바꿉니다. 이 예시에서 기기 이름은 /dev/sdb입니다.

    • xfs를 사용하는 경우 xfs_growfs 명령어를 사용하여 파일 시스템을 확장합니다.

      sudo xfs_growfs MOUNT_DIR
      

      MOUNT_DIR을 기기의 마운트 지점으로 바꿉니다. lsblk 명령어 출력의 MOUNTPOINT 열에서 나열된 마운트 지점을 찾을 수 있습니다.

    • btrfs를 사용하는 경우 btrfs 명령어를 사용하여 파일 시스템을 확장합니다.

      sudo btrfs filesystem resize max MOUNT_DIR
      

      MOUNT_DIR을 기기의 마운트 지점으로 바꿉니다. lsblk 명령어 출력의 MOUNTPOINT 열에서 나열된 마운트 지점을 찾을 수 있습니다.

  7. df 명령어를 사용하여 파일 시스템이 확장되었는지 확인합니다. 예를 들면 다음과 같습니다.

    df -h /dev/sdb
    
    Filesystem  Size  Used  Avail  Use%  Mounted on
    /dev/sdb    493G   70M  492G     1%  /mnt/disks/disk-1
    

Windows VM

Windows 인스턴스에서는 Windows 디스크 관리 도구를 사용하여 파티션의 크기를 조절합니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 디스크 크기가 조절된 인스턴스 옆에서 RDP 버튼을 클릭합니다. 브라우저에서 인스턴스로의 RDP 연결이 열립니다.

  3. Windows 시작 버튼을 마우스 오른쪽 버튼으로 클릭하고 디스크 관리를 선택하여 디스크 관리 도구를 엽니다.

    Windows 시작 버튼의 오른쪽 클릭 메뉴에서 Windows 디스크 관리 도구 선택

  4. Powershell에서 다음을 실행하여 디스크 파티션 유형을 표시합니다.

    Get-Disk
    
    파티션 스타일 열에서 값이 MBR이면 디스크가 MBR 파티션 유형을 사용하고 있는 것입니다. 이러한 디스크의 최대 크기는 2TB입니다.

  5. 영역 영구 디스크의 추가 공간을 인식하도록 디스크 관리 도구를 새로 고칩니다. 디스크 관리 창 상단에서 작업을 클릭하고 새로고침을 선택합니다.

    동작 메뉴를 클릭하고 새로 고침을 선택하여 디스크 관리 도구의 영역 영구 디스크 정보 업데이트

  6. 크기를 조절한 디스크에서 포맷된 파티션을 마우스 오른쪽 버튼으로 클릭하고 볼륨 확장을 선택합니다.

    디스크의 포맷된 부분을 마우스 오른쪽 버튼으로 클릭하고 볼륨 확장 옵션 선택

  7. 볼륨 확장 마법사의 안내에 따라 추가 디스크 공간을 포함하도록 기존 파티션을 확장합니다. 기존 파티션이 NTFS로 포맷된 경우 최대 파티션 크기는 해당 클러스터 크기 설정으로 제한됩니다.

  8. 마법사를 완료하고 볼륨 포맷을 마친 후에는 연결된 디스크 목록의 Status 열에서 새 디스크의 상태가 Healthy인지 확인합니다.

    Windows에서 인식한 디스크 목록을 보며 인스턴스가 온라인이고 상태가 정상인지 확인

이 프로세스를 완료한 후 VM을 다시 시작할 필요가 없습니다. 이제 추가된 디스크 공간을 사용하여 데이터를 저장할 수 있습니다.

다음 단계