영구 디스크 작업

영구 디스크를 가상 머신(VM) 인스턴스의 부팅 디스크로 사용하거나 VM에 연결하는 데이터 디스크로 사용할 수 있습니다. 이 문서에서는 다음을 수행하기 위해 기존 영구 디스크를 수정하는 방법을 설명합니다.

  • 저장공간을 늘립니다.
  • 액세스할 수 없는 인스턴스를 복구합니다.
  • 연결된 VM이 삭제될 때 디스크를 자동으로 삭제합니다.
  • 다른 디스크 유형으로 전환합니다.

영구 디스크와 사용 가능한 디스크 유형에 대한 일반적인 정보는 영구 디스크 개요를 참조하세요.

영구 디스크 크기 조정

가상 머신(VM) 인스턴스에 추가 저장공간 또는 더 높은 성능 한도가 필요한 경우 영구 디스크 크기를 늘릴 수 있습니다. 영구 디스크의 크기를 조절할 때는 크기 확대만 가능하며, 영구 디스크의 크기 축소는 불가능합니다.

디스크가 실행 중인 VM과 연결되어 있는지와 관계없이 언제든지 디스크의 크기를 조절할 수 있습니다.

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

디스크 크기 조절

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

Console

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

    디스크로 이동

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

  3. 디스크 세부정보 페이지에서 수정을 클릭합니다.

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

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

gcloud

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

gcloud compute disks resize DISK_NAME --size DISK_SIZE

다음을 바꿉니다.

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

API

API에서 compute.disks.resize 메서드에 대해 POST 요청을 작성합니다. 요청 본문에서 sizeGb 매개변수를 지정하고 원하는 디스크 크기(GB)로 설정합니다.

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까지만 크기를 조절할 수 있습니다.

디스크 백업

디스크 크기를 조절해도 디스크 데이터가 삭제되거나 수정되지는 않지만 파일 시스템 또는 파티션을 변경하기 전에 권장사항으로서 항상 스냅샷을 만들어서 디스크를 백업하는 것이 좋습니다.

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

디스크 크기를 조절한 후 파일 시스템 및 파티션의 크기를 조절해야 할 수 있습니다.

  • 부팅 디스크: 공개 이미지를 사용하는 VM은 VM에서 부팅 디스크 크기를 조절하고 VM을 다시 시작한 후 루트 파티션 및 파일 시스템 크기를 자동으로 조절합니다. 이 기능을 지원하지 않는 이미지를 사용하는 경우에는 루트 파티션 및 파일 시스템의 크기를 수동으로 조절해야 합니다.

  • 비부팅 디스크: 디스크 크기를 조절한 후 추가된 공간을 사용하도록 디스크에서 파일 시스템을 확장해야 합니다.

다음 예시에서는 부팅 디스크의 루트 파티션 및 파일 시스템 크기를 수동으로 조절하고 파티션 테이블이 없는 비부팅 데이터 디스크의 파일 시스템 크기를 수동으로 조절하는 방법을 보여줍니다.

Linux 인스턴스

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

    VM 인스턴스로 이동

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

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

    $ 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 파티션이 루트 파일 시스템으로 마운트되었고 /dev/sdb 디스크가 /mnt/disks/disk-1에 비부팅 데이터 디스크로 마운트된 것을 보여줍니다. 디스크에 ext4 또는 xfs 파일 시스템이 사용되는지 여부를 나타내는 유형 열을 확인합니다.

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

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

      sudo parted -sm /dev/sda -- resizepart 1 -1
      
    2. GPT 데이터 구조를 디스크 끝으로 이동하여 GPT 테이블을 정렬합니다.

      sudo sgdisk --move-second-header /dev/sda
      
    3. partprobe를 사용하여 새 파티션 테이블을 읽습니다.

      sudo partprobe /dev/sda
      
    4. ext4를 사용하는 경우 resize2fs 명령어를 사용하여 파일 시스템을 확장합니다.

      sudo resize2fs /dev/sda1
      
    5. xfs를 사용하는 경우 xfs_growfs 명령어를 사용하여 파일 시스템을 확장합니다.

      sudo xfs_growfs -d /
      
  5. 비부팅 데이터 디스크에서 파일 시스템 크기를 조절합니다.

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

      sudo resize2fs /dev/DEVICE_NAME
      

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

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

      sudo xfs_growfs MOUNT_DIR
      

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

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

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

Windows 인스턴스

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

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

    VM 인스턴스로 이동

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

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

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

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

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

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

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

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

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

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

이 프로세스를 완료한 후에 인스턴스를 다시 시작하지 않아도 됩니다. 이제 추가된 디스크 공간을 사용하여 데이터를 저장할 수 있습니다.

액세스할 수 없는 인스턴스 또는 전체 부팅 디스크 복구

인스턴스에 연결할 수 없거나 부팅 디스크가 가득 찼지만 크기를 조절할 수 없는 경우 새 인스턴스를 만들고 스냅샷에서 부팅 디스크를 다시 만들어 크기를 조절해야 합니다. 다시 만들고 있는 부팅 디스크의 크기를 알아야 합니다.

  1. Google Cloud Console에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

    1. 인스턴스 이름을 클릭하여 VM 인스턴스 세부정보 페이지를 엽니다.
    2. 중지를 클릭합니다.
    3. 부팅 디스크 섹션에서 부팅 디스크의 크기와 이름을 확인합니다.
  2. Google Cloud Console에서 스냅샷 만들기 페이지로 이동합니다.

    스냅샷 만들기로 이동

    1. 스냅샷 이름을 입력합니다.
    2. 소스 디스크 드롭다운 목록에서 부팅 디스크를 선택합니다.
    3. 만들기를 클릭합니다.
  3. Google Cloud Console에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  4. 인스턴스 세부정보를 입력합니다.

  5. 이전 부팅 디스크의 스냅샷에서 새 부팅 디스크를 만듭니다.

    1. 부팅 디스크에서 변경을 선택합니다.
    2. 스냅샷을 선택합니다.
    3. 스냅샷 드롭다운 목록에서 이전 부팅 디스크의 스냅샷을 선택합니다.
    4. 부팅 디스크 유형을 선택합니다.
    5. 새 디스크 크기를 입력합니다.
    6. 선택을 클릭하여 디스크 옵션을 확인합니다.
  6. 만들기를 클릭합니다.

영역 영구 디스크의 자동 삭제 상태 설정

연결된 VM 인스턴스가 삭제될 때 읽기/쓰기 영역 영구 디스크를 자동으로 삭제할 수 있습니다. 이 동작은 연결된 영역 영구 디스크의 VM 인스턴스에서 autoDelete 속성에 의해 제어되며 언제든지 업데이트할 수 있습니다. 마찬가지로 autoDelete 값을 false로 표시하여 영역 영구 디스크가 삭제되지 않도록 할 수도 있습니다.

Console

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

    VM 인스턴스로 이동

  2. 디스크가 연결된 인스턴스를 선택합니다.

  3. 인스턴스 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 나타납니다.

  4. 수정을 클릭합니다.

  5. 추가 디스크로 스크롤합니다.

  6. 연필을 클릭하여 디스크의 삭제 규칙을 수정합니다.

  7. 완료를 클릭하여 변경사항을 저장합니다.

  8. 저장을 클릭하여 인스턴스를 업데이트합니다.

gcloud

영역 영구 디스크의 자동 삭제 상태를 설정하려면 gcloud compute instances set-disk-auto-delete 명령어를 사용합니다.

gcloud compute instances set-disk-auto-delete example-instance \
  [--auto-delete|--no-auto-delete] \
  --disk DISK_NAME

DISK_NAME을 디스크 이름으로 바꿉니다.

API

API를 사용할 경우 다음 URI에 대한 POST 요청을 수행합니다.

https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setDiskAutoDelete?deviceName=DISK_NAME,autoDelete=true

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 인스턴스와 디스크가 있는 영역입니다.
  • INSTANCE_NAME: 인스턴스의 이름입니다.
  • DISK_NAME: 디스크의 이름입니다.

영구 디스크의 유형 변경

언제든지 영구 디스크 유형을 변경할 수 있습니다. 영구 디스크 유형은 가격 책정성능 특성에 따라 달라지므로, 워크로드에 맞게 기존 영구 디스크의 유형을 변경해야 할 수 있습니다.

스냅샷을 사용하여 영구 디스크의 유형을 변경할 수 있습니다. 예를 들어 표준 영구 디스크를 SSD 영구 디스크로 변경하려면 다음 프로세스를 따르세요.

Console

  1. 표준 영구 디스크의 스냅샷을 만듭니다.
  2. 스냅샷을 기반으로 새로운 영구 디스크를 만듭니다. 유형 드롭다운 목록에서 'SSD 영구 디스크'를 선택합니다.

gcloud

  1. 표준 영구 디스크의 스냅샷을 만듭니다.
  2. 스냅샷을 기반으로 새로운 영구 디스크를 만듭니다. --type 플래그를 포함하고 pd-ssd를 지정합니다.

API

  1. 표준 영구 디스크의 스냅샷을 만듭니다.
  2. 스냅샷을 기반으로 새로운 영구 디스크를 만듭니다. type 필드에서 "zones/ZONE/diskTypes/pd-ssd"를 지정하고 ZONE을 인스턴스 및 새 디스크가 있는 영역으로 바꿉니다.

다음 단계