영구 디스크 크기 늘리기


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

이 페이지에서는 Persistent Disk 크기를 늘리는 방법을 설명합니다. Google Cloud Hyperdisk 볼륨 크기를 늘리려면 Hyperdisk 설정 수정을 참조하세요.

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

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

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

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

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.

      REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.

필수 역할 및 권한

Persistent Disk의 크기를 조절하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 Persistent Disk 크기를 조절하는 데 필요한 compute.disks.update 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

디스크 크기 늘리기

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

콘솔

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

    디스크로 이동

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

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

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

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

새로운 디스크 크기가 디스크 목록에 표시됩니다.

gcloud

gcloud compute disks resize 명령어를 사용하고 새 디스크 크기 (기비바이트, GiB)로 --size 플래그를 지정합니다.

gcloud compute disks resize DISK_NAME \
    --size DISK_SIZE \
    --zone=ZONE

다음을 바꿉니다.

  • DISK_NAME: 크기를 조절할 디스크의 이름
  • DISK_SIZE: 디스크의 새 크기(기비바이트(GiB))입니다. MBR 파티션 테이블이 있는 디스크는 최대 2TB까지만 크기를 조절할 수 있습니다.
  • ZONE: 영역 Persistent Disk의 경우 디스크가 있는 영역을 지정합니다.

    리전 영구 디스크의 경우 대신 --region=REGION 플래그를 사용하고 리전 디스크가 있는 리전을 지정합니다.

Terraform

영역 디스크 또는 리전 영구 디스크의 크기를 조절하려면 다음 옵션 중 하나를 선택합니다.

영역 디스크

Persistent Disk의 크기를 변경하려면 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이 디스크를 폐기하고 비어 있는 새 영구 디스크를 만듭니다.

리전 영구 디스크

리전 Persistent Disk의 크기를 변경하려면 google_compute_region_disk 리소스를 사용하고 size 매개변수를 사용하면 됩니다.

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

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

imagesnapshot 매개변수를 생략하는 경우 size 매개변수를 기존 디스크 크기보다 작게 설정할 수 있습니다. 이렇게 하면 Terraform이 디스크를 폐기하고 비어 있는 새 RegionalPersistent Disk를 만듭니다.

REST

Persistent Disk 크기를 조절하려면 compute.disks.resize 메서드에 대한 POST 요청을 작성합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/resize
{
  "sizeGb": "DISK_SIZE"
}

리전 Persistent Disk 크기를 조절하려면 compute.regionDisks.resize 메서드에 대한 POST 요청을 작성합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize
{
   "sizeGb": "DISK_SIZE"
}

다음을 바꿉니다.

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

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

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

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

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

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

NVMe를 사용하여 영구 디스크를 연결한 경우 파일 시스템 및 파티션 크기 조절에서 NVMe 연결 디스크의 예시 출력을 참고하세요.

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을 다시 시작할 필요가 없습니다. 이제 추가된 디스크 공간을 사용하여 데이터를 저장할 수 있습니다.

다음 단계