영역 영구 디스크 추가 또는 크기 조절

이 페이지에서는 영역 영구 부팅 디스크와 보조(비부팅) 영역 영구 디스크의 크기를 조절하는 방법을 설명합니다. 이 페이지에서는 인스턴스에 새 영역 영구 디스크를 추가하고 포맷하는 방법도 설명합니다.

영역 영구 디스크의 크기를 조절할 때는 크기 확대만 가능하며, 영역 영구 디스크의 크기 축소는 불가능합니다.

의도치 않은 데이터 손실을 방지하려면 스냅샷을 사용하여 디스크를 백업하는 것이 좋습니다.

영역 영구 디스크는 표준 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD)로 제공됩니다. 영역 영구 디스크와 제공되는 영구 디스크의 유형에 관한 일반적인 정보를 보려면 영구 디스크 개요를 읽어보세요.

Compute Engine은 영역 영구 디스크의 하드웨어를 관리하므로 스트라이핑이나 중복을 처리하지 않고 디스크를 추가하고 크기를 조절할 수 있습니다. 큰 보조 디스크 하나를 연결하여 필요한 추가 공간만큼 크기를 조절하거나 작은 디스크 여러 개를 연결하여 데이터를 여러 볼륨으로 구분합니다.

이미지에서 디스크를 만드는 경우를 제외하고 새 영역 영구 디스크는 데이터나 파일 시스템 없이 시작됩니다. 디스크를 인스턴스에 연결한 후에 직접 디스크를 포맷해야 합니다.

영역 표준 영구 디스크 또는 영역 SSD 영구 디스크가 성능 또는 유연성 요구 사항을 모두 충족하지 않는 경우 인스턴스에 스토리지 옵션을 추가할 수 있습니다.

영구 디스크를 만들 때 항상 적용되는 실제 블록 크기의 기본값은 4KB입니다. 데이터베이스 앱에서 더 큰 실제 블록 크기를 요구하는 경우 디스크를 만들 때 16KB를 선택할 수 있습니다. 부팅 디스크에서는 이 기능을 사용할 수 없습니다. 기존 디스크의 실제 블록 크기를 변경하려면 디스크의 스냅샷을 생성한 후 새 디스크를 만들어야 합니다. 영구 디스크의 실제 블록 크기를 직접 수정할 수는 없습니다.

시작하기 전에

인스턴스에 영역 영구 디스크 추가

영역 표준 영구 디스크 또는 영역 SSD 영구 디스크를 만들고 기존 인스턴스에 연결합니다. 인스턴스가 없으면 새 인스턴스를 만들고 시작합니다. 인스턴스를 만드는 동안 보조 비부팅 영역 영구 디스크를 최대 127개까지 연결하여 애플리케이션, 데이터 파일, 데이터베이스, 로그를 별도의 볼륨에 저장할 수 있습니다. 총 연결 용량은 인스턴스당 257TB까지 가능합니다. 대용량 볼륨에서 최대 성능을 보장하는 방법은 대용량 논리적 볼륨 성능을 참조하세요.

Google Cloud Platform Console, gcloud 도구 또는 API를 통해 영역 영구 디스크를 만들고 연결합니다.

Console

Google Cloud Platform Console에 영역 영구 디스크를 만들어 연결합니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 체크박스를 선택하고 디스크를 추가할 인스턴스의 이름을 클릭합니다.
  3. VM 인스턴스 세부정보 페이지의 상단에서 수정을 클릭합니다.
  4. 추가 디스크에서 새 디스크 추가를 클릭합니다.
  5. 디스크의 이름을 지정하고 디스크 속성을 구성한 다음 디스크의 소스 유형을 지정합니다.

  6. 필요한 경우 실제 블록 크기(KB)를 선택합니다. 디스크 기본 크기는 4KB이지만 드롭다운 목록에서 16KB를 선택하여 디스크의 실제 블록 크기를 늘릴 수 있습니다.

  7. 디스크 구성을 완료하려면 완료를 클릭합니다.

  8. VM 인스턴스 세부정보 페이지 하단에서 저장을 클릭하여 변경사항을 인스턴스에 적용하고 새 디스크를 추가합니다.

  9. 새 디스크를 만들거나 인스턴스에 연결한 후에는 운영체제가 가용 저장공간을 사용할 수 있도록 디스크를 포맷하고 마운트해야 합니다.

gcloud

gcloud 도구를 사용하여 영역 영구 디스크를 만들고 연결합니다.

  1. gcloud beta compute disks create 명령어를 사용하여 영역 영구 디스크를 만듭니다. 처리량 또는 IOPS를 높이기 위해 SSD 영구 영역 디스크가 필요한 경우 --type 플래그를 포함하고 pd-ssd를 지정합니다. 필요한 경우 --physical-block-size 플래그를 추가하여 실제 블록 크기를 설정합니다.

    gcloud beta compute disks create [DISK_NAME] /
        --size [DISK_SIZE] /
        --type [DISK_TYPE] /
        --physical-block-size [BLOCK_SIZE]
    

    각 항목의 의미는 다음과 같습니다.

    • [DISK_NAME]은 새 디스크의 이름입니다.
    • [DISK_SIZE]는 새 디스크의 크기(GB)입니다.
    • [DISK_TYPE]은 영구 디스크의 유형(pd-standard 또는 pd-ssd)입니다.
    • [BLOCK_SIZE]4096(4KB) 또는 16384(16KB)입니다. 실제 블록 크기의 기본값은 4KB입니다. 16KB는 증가된 실제 블록 크기입니다.

  2. 디스크를 만든 후 실행 중이거나 중지된 인스턴스에 연결합니다. gcloud compute instances attach-disk 명령어를 사용합니다.

    gcloud compute instances attach-disk [INSTANCE_NAME] /
        --disk [DISK_NAME]
    

    각 항목의 의미는 다음과 같습니다.

    • [INSTANCE_NAME]은 새로 만든 영역 영구 디스크를 추가할 인스턴스의 이름입니다.
    • [DISK_NAME]은 인스턴스에 연결할 새 디스크의 이름입니다.

    새 디스크를 만들고 인스턴스에 연결한 후에는 운영체제가 가용 저장공간을 사용할 수 있도록 디스크를 포맷하고 마운트해야 합니다.

  3. gcloud beta compute disks describe 명령어를 사용하여 디스크의 설명을 확인합니다. 응답에 디스크의 실제 블록 크기가 포함됩니다.

API

  1. API에서 disks.insert 메서드로 POST 요청을 작성하여 영역 영구 디스크를 만듭니다. name, sizeGb, type 속성을 포함합니다. 이 새 디스크를 비어 있고 포맷되지 않은 비부팅 디스크로 만들려면 이 디스크에 대해 소스 이미지 또는 소스 스냅샷을 지정하지 마세요. 필요한 경우 physicalBlockSizeBytes 속성을 포함하여 실제 블록 크기를 설정합니다.

    POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
     "name": "[DISK_NAME]",
     "sizeGb": "[DISK_SIZE]",
     "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]"
     "physicalBlockSizeBytes": "[BLOCK_SIZE]"
    }
    

    각 항목의 의미는 다음과 같습니다.

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [ZONE]은 인스턴스와 새 디스크가 위치하는 영역입니다.
    • [DISK_NAME]은 새 디스크의 이름입니다.
    • [DISK_SIZE]는 새 디스크의 크기(GB)입니다.
    • [DISK_TYPE]은 영구 디스크의 유형입니다. pd-standard 또는 pd-ssd입니다.
    • [BLOCK_SIZE]4096(4KB) 또는 16384(16KB)입니다. 실제 블록 크기의 기본값은 4KB입니다. 16KB는 증가된 실제 블록 크기입니다.

  2. compute.instances.attachDisk 메서드에 대한 POST 요청을 작성하고 방금 만든 영역 영구 디스크의 URL을 포함합니다.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
    
    {
     "source": "/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]"
    }
    

    각 항목의 의미는 다음과 같습니다.

    • [PROJECT_ID]는 프로젝트 ID입니다.
    • [ZONE]은 인스턴스와 새 디스크가 위치하는 영역입니다.
    • [INSTANCE_NAME]은 새 영구 디스크를 추가할 인스턴스의 이름입니다.
    • [DISK_NAME]은 새 디스크의 이름입니다.

새 디스크를 만들고 인스턴스에 연결한 후에는 운영체제가 가용 저장공간을 사용할 수 있도록 디스크를 포맷하고 마운트해야 합니다.

영역 영구 디스크 포맷 및 마운트

새 영역 영구 디스크는 데이터나 파일 시스템 없이 시작됩니다. 이 디스크를 인스턴스에 연결한 후에 직접 포맷해야 합니다. Linux 인스턴스와 Windows 인스턴스의 포맷 프로세스는 서로 다릅니다.

Linux 인스턴스


Linux 인스턴스에서 새 디스크를 포맷하고 마운트합니다. 필요한 파티션 형식과 구성은 모두 사용할 수 있지만 파티션 테이블이 없는 단일 ext4 파일 시스템을 권장합니다. 저장공간이 더 필요한 경우 나중에 디스크 크기를 조절할 수 있습니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

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

  3. 터미널에서 lsblk 명령어를 사용하여 인스턴스에 연결된 디스크를 나열한 후 포맷하고 마운트하려는 디스크를 찾습니다.

    $ sudo lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   10G  0 disk
    └─sda1   8:1    0   10G  0 part /
    sdb      8:16   0  250G  0 disk
    

    이 예시에서는 sdb가 새 영역 영구 디스크의 기기 ID입니다.

  4. 디스크를 포맷합니다. 필요한 모든 파일 형식을 사용할 수 있지만 파티션 테이블이 없는 단일 ext4 파일 시스템을 권장합니다. 나중에 영역 영구 디스크의 크기를 조절하는 경우 디스크 파티션을 수정할 필요 없이 파일 시스템의 크기를 조절하면 됩니다.

    mkfs 도구를 사용하여 디스크를 포맷합니다. 이 명령어는 지정된 디스크의 모든 데이터를 삭제하므로 디스크 기기를 올바르게 지정해야 합니다. 디스크 성능을 극대화하려면 -E 플래그에 권장되는 포맷 옵션을 사용하세요. 이 보조 디스크에서는 루트 공간을 예약할 필요가 없으므로 -m 0을 지정하여 모든 가용 디스크 공간을 사용하세요.

    $ sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/[DEVICE_ID]
    

    여기서 [DEVICE_ID]는 포맷할 영역 영구 디스크의 기기 ID입니다. 이 예시에서는 sdb를 지정하여 전체 디스크를 파티션 테이블 없이 포맷합니다.

  5. 새 디스크의 마운트 지점 역할을 하는 디렉터리를 만듭니다. 원하는 모든 디렉터리를 사용할 수 있습니다. 다음 예시에서는 /mnt/disks/ 아래에 디렉터리를 만듭니다.

    $ sudo mkdir -p /mnt/disks/[MNT_DIR]
    

    여기서 [MNT_DIR]은 영역 영구 디스크를 마운트할 디렉터리입니다.

  6. mount 도구를 사용하여 디스크를 인스턴스에 마운트하고 discard 옵션을 사용 설정합니다.

    $ sudo mount -o discard,defaults /dev/[DEVICE_ID] /mnt/disks/[MNT_DIR]
    

    각 항목의 의미는 다음과 같습니다.

    • [DEVICE_ID]는 마운트할 영역 영구 디스크의 기기 ID입니다.
    • [MNT_DIR]은 영역 영구 디스크를 마운트할 디렉터리입니다.
  7. 기기에 대한 읽기 및 쓰기 권한을 구성합니다. 이 예시에서는 모든 사용자에게 기기에 대한 쓰기 액세스 권한을 부여합니다.

    $ sudo chmod a+w /mnt/disks/[MNT_DIR]
    

    여기서 [MNT_DIR]은 영역 영구 디스크가 마운트된 디렉터리입니다.

필요한 경우 인스턴스가 다시 시작될 때 기기가 자동으로 다시 마운트되도록 /etc/fstab 파일에 영역 영구 디스크를 추가할 수 있습니다.

  1. 현재 /etc/fstab 파일의 백업을 만듭니다.

    $ sudo cp /etc/fstab /etc/fstab.backup
    
  2. blkid 명령어를 사용하여 영역 영구 디스크의 UUID를 찾습니다. 이 UUID는 디스크를 포맷할 때 생성됩니다. 시스템 간에 디스크를 이동하더라도 UUID는 변경되지 않으므로 UUID를 사용하여 영역 영구 디스크를 마운트합니다.

    $ sudo blkid /dev/[DEVICE_ID]
    
    /dev/[DEVICE_ID]: UUID="[UUID_VALUE]" TYPE="ext4"
    

    각 항목의 의미는 다음과 같습니다.

    • [DEVICE_ID]는 자동으로 마운트할 영역 영구 디스크의 기기 ID입니다. 디스크에 파티션 테이블을 만든 경우 마운트하려는 파티션을 지정합니다.
    • [UUID_VALUE]/etc/fstab 파일에 포함해야 하는 영역 영구 디스크의 UUID입니다.
  3. 텍스트 편집기에서 /etc/fstab 파일을 열고 UUID를 포함하는 항목을 만듭니다. 이 영구 디스크를 사용할 수 없는 경우에도 시스템을 부팅할 수 있도록 nofail 옵션을 지정합니다. 예를 들면 다음과 같습니다.

    UUID=[UUID_VALUE] /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2
    

    각 항목의 의미는 다음과 같습니다.

    • [UUID_VALUE]/etc/fstab 파일에 포함해야 하는 영역 영구 디스크의 UUID입니다.
    • [MNT_DIR]은 영역 영구 디스크가 마운트된 디렉터리입니다.
    • [NOFAIL_OPTION]은 부팅 시 영역 영구 디스크를 마운트할 수 없을 경우 운영체제가 수행해야 할 작업을 지정하는 변수입니다. 영역 영구 디스크를 마운트할 수 없더라도 시스템이 부팅을 계속하도록 허용하려면 이 옵션을 지정합니다. 대부분의 배포판에서는 nofail 옵션을 지정합니다. Ubuntu 12.04 또는 Ubuntu 14.04의 경우 nobootwait 옵션을 지정합니다.

    필요한 경우 명령어 하나로 이 단계를 완료할 수 있습니다. 예를 들어 다음 명령어는 /etc/fstab에 항목을 만들고 해당 UUID를 사용하여 /dev/sdb 영역 영구 디스크를 /mnt/disks/disk-1에 마운트합니다.

    $ echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
    
    UUID=c994cf26-1853-48ab-a6a5-9d7c0250fed4 /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2
    
    
  4. cat 명령어를 사용하여 /etc/fstab 항목이 올바른지 확인합니다.

    $ cat /etc/fstab
    
    LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
    UUID=d761bdc5-7e2a-4529-a393-b9aefdb623b6 /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2
    
    

이 영역 영구 디스크를 분리하거나 이 인스턴스의 부팅 디스크로 스냅샷을 만드는 경우 /etc/fstab 파일을 수정하고 이 영역 영구 디스크의 항목을 삭제하세요. nofail 옵션이 있더라도 인스턴스에 연결된 기기와 /etc/fstab 파일의 동기화 상태를 유지하고 부팅 디스크 스냅샷을 만들기 전이나 영역 영구 디스크를 분리할 때 이 항목을 삭제해야 합니다.

Windows 인스턴스


Windows 디스크 관리를 사용하여 Windows 인스턴스에서 새 디스크를 포맷하고 마운트합니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

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

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

    Windows 시작 버튼을 마우스 오른쪽 버튼으로 클릭하여 디스크 관리 선택

  4. 예전에 영역 영구 디스크를 초기화하지 않았다면 디스크 관리에 새 디스크의 파티션 나누기 스키마를 선택하라는 메시지가 표시됩니다. GPT를 선택하고 확인을 클릭합니다.

    디스크 초기화 창에서 파티션 스키마 선택

  5. 디스크가 초기화된 후 할당되지 않은 디스크 공간을 마우스 오른쪽 버튼으로 클릭하고 새 단순 볼륨을 선택합니다.

    연결된 디스크에서 새 단순 볼륨 만들기

  6. 단순 볼륨 만들기 마법사의 안내에 따라 새 볼륨을 구성합니다. 파티션 형식은 원하는 것을 사용하면 되지만 이 예시에서는 NTFS를 선택합니다. 또한 빠른 포맷 실행을 선택해 포맷 프로세스 속도를 높입니다. 필요한 경우 할당 단위 크기 필드에서 클러스터 크기를 설정합니다. 클러스터 크기는 파티션의 최대 크기를 제한합니다. 나중에 영역 영구 디스크와 이 파티션의 크기를 조절하려고 시도할 경우 이 점을 염두에 두어야 합니다.

    단순 볼륨 만들기 마법사에서 파티션 형식 유형 선택

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

    디스크가 온라인이고 상태가 정상인지 확인합니다.

이제 영역 영구 디스크에 파일을 쓸 수 있습니다.

영역 영구 디스크 크기 조절

인스턴스에 더 많은 스토리지가 필요한 경우 영역 영구 디스크의 크기를 조절할 수 있으며, 데이터를 고유 파티션으로 구분해야 하는 경우에 한해 여러 개의 보조 디스크를 연결합니다.

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

디스크 크기를 조절해도 디스크 데이터가 삭제되거나 수정되지는 않지만 변경사항을 적용하기 전에 디스크의 스냅샷을 생성하는 것이 좋습니다.

Console

  1. 디스크 페이지로 이동하여 프로젝트의 영역 영구 디스크 목록을 확인합니다.

    디스크 페이지로 이동

  2. 크기를 조절하려는 디스크의 이름을 클릭합니다.
  3. 디스크 세부정보 페이지 상단에서 수정을 클릭합니다.
  4. 크기 필드에 디스크의 새 크기를 입력합니다. 부팅 디스크와 MBR 파티션 테이블이 있는 보조 디스크는 최대 2TB로 크기를 조절할 수 있습니다.
  5. 디스크 세부정보 페이지 하단에 있는 저장을 클릭하여 변경사항을 디스크에 적용합니다.
  6. 디스크 크기를 조절한 후에는 운영체제가 추가 공간에 액세스할 수 있도록 파일 시스템 크기를 조절해야 합니다.

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://www.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로만 크기를 조절할 수 있습니다.

디스크 크기를 조절한 후에는 운영체제가 추가 공간에 액세스할 수 있도록 파일 시스템 크기를 조절해야 합니다.

영역 영구 디스크의 파일 시스템 및 파티션 크기 조절

영역 영구 디스크의 크기를 조절한 후에는 디스크의 파일 시스템을 구성해야 추가 디스크 공간을 사용할 수 있습니다. 부팅 디스크처럼 파티션 테이블이 있는 디스크는 파티션을 늘리고 해당 파티션의 파일 시스템 크기를 조절해야 합니다. 영역 영구 디스크에 파일 시스템만 있고 파티션 테이블이 없는 경우에는 파일 시스템의 크기만 조절해도 됩니다.

또는 최신 버전의 공개 이미지를 사용하는 인스턴스는 시스템이 재부팅된 후에 파티션과 파일 시스템의 크기를 자동으로 조절할 수 있습니다. SLES(SUSE Linux Enterprise Server) 공개 이미지는 이 기능을 지원하지 않는 유일한 이미지입니다.

영역 영구 디스크의 파일 시스템을 수정하기 전에 스냅샷을 생성하세요.

Linux 인스턴스


Linux 인스턴스의 경우, 추가한 디스크 공간을 사용하려면 인스턴스에 연결하고 수동으로 파티션과 파일 시스템의 크기를 조절합니다. 이 수동 프로세스를 완료한 후에 인스턴스를 다시 시작하지 않아도 됩니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

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

  3. 크기를 조절하려는 파일 시스템과 파티션이 있는 디스크를 식별합니다. 디스크가 이미 마운트되어 있는 경우 df 명령어와 lsblk 명령어를 사용하여 파일 시스템의 크기를 비교하고 디스크 ID를 찾을 수 있습니다. 이 예시에서는 /dev/sda1 파티션이 있는 부팅 디스크가 20GB로 크기가 조절되었지만 파티션 테이블과 파일 시스템은 운영체제에 9.7GB만 제공합니다. 또한 /dev/sdb 보조 디스크에 파티션 테이블이 없지만 해당 디스크의 파일 시스템이 운영체제에 250GB만 제공합니다.

    $ sudo df -h
    
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1       9.7G  1.2G  8.5G  12% /
    /dev/sdb        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
    
    

    이 예시에서 df 명령어는 /dev/sda1 파티션이 루트 파일 시스템으로 마운트되었고, /dev/sdb 디스크는 /mnt/disks/disk-1에 보조 디스크로 마운트되었음을 보여줍니다.

    디스크에 기록된 파일 시스템이 있고 파티션 테이블이 없는 경우 growpart 유틸리티를 설치하고 파티션을 늘리는 방법을 설명하는 4단계를 건너뛰어도 됩니다.

  4. 크기를 조절하려는 디스크에 파티션 테이블이 있는 경우에는 파일 시스템의 크기를 조절하기 전에 파티션을 늘려야 합니다. growpart를 사용하여 이미지 파티션의 크기를 조절하세요.

    1. Debian 서버에 growpart를 설치하려면 다음을 실행합니다.

      $ sudo apt -y install cloud-guest-utils
    2. CentOS 서버에 growpart를 설치하려면 다음을 실행합니다.

      $  sudo yum -y install cloud-utils-growpart

      설치 후 도구와 관련하여 도움이 필요하면 growpart -h를 실행하세요.

    3. growpart 도구를 설치하면 파티션을 늘릴 수 있습니다.

      $ sudo growpart /dev/[DEVICE_ID] [PARTITION_NUMBER]

      여기서 [DEVICE_ID]는 기기 ID이고 [PARTITION_NUMBER]는 해당 기기의 파티션 번호입니다. 예를 들어 sudo growpart /dev/sda 1의 경우 기기 ID와 파티션 번호 사이에 공백이 있다는 점에 유의하세요.

  5. 추가된 공간을 사용하려면 디스크의 파일 시스템이나 파티션을 확장합니다.

    ext4를 사용하는 경우 resize2fs 명령어를 사용합니다. 디스크의 파티션을 늘린 경우 해당 파티션을 지정합니다. 디스크에 파티션 테이블이 없으면 디스크 ID만 지정합니다.

    $ sudo resize2fs /dev/[DEVICE_ID][PARTITION_NUMBER]

    여기서 [DEVICE_ID]는 기기 ID이고 [PARTITION_NUMBER]는 파일 시스템의 크기를 조절할 기기의 파티션 번호입니다. 예를 들어 /dev/sda는 디스크를 가리키고 /dev/sda1은 해당 디스크의 첫 번째 파티션을 가리킵니다.

    xfs를 사용하는 경우에는 xfs_growfs 명령어를 사용하여 파일 시스템을 확장하고 기기 ID 대신 마운트 지점을 지정합니다.

    $ sudo xfs_growfs /mnt/disks/disk-1

    disk-1은 마운트 지점입니다.

  6. 필요한 경우 df 명령어를 사용하여 파일 시스템의 크기가 조절되었는지 확인합니다.

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

    여기서 [DEVICE_ID]는 파일 시스템 구성을 보려는 디스크의 기기 ID입니다.

Windows 인스턴스


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

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 크기가 조절된 디스크가 있는 인스턴스 옆의 RDP 버튼을 클릭합니다. 브라우저에서 해당 인스턴스로의 RDP 연결이 열립니다.
  3. Windows 시작 버튼을 마우스 오른쪽 버튼으로 클릭하고 디스크 관리를 선택하여 디스크 관리 도구를 엽니다.

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

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

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

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

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

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

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

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

이제 추가된 영역 영구 디스크 공간을 사용하여 데이터를 저장할 수 있습니다.

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

인스턴스에 디스크 공간이 전혀 없거나 Linux 게스트 환경을 실행하고 있지 않은 경우 보조 영구 디스크의 크기를 늘린 후에도 루트 파일 시스템의 크기를 자동으로 조절할 수 없습니다. 인스턴스에 연결할 수 없거나 부팅 디스크가 가득 찼지만 크기를 조절할 수 없는 경우 새 인스턴스를 만들고 스냅샷에서 부팅 디스크를 다시 만들어 크기를 조절해야 합니다.

다시 만들고 있는 부팅 디스크의 크기를 알아야 합니다. Compute Engine Console에서 검색하여 디스크 크기를 찾습니다.

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

    1. 연결할 수 없는 인스턴스 옆의 체크박스를 선택합니다.
    2. 인스턴스 이름을 클릭하여 VM 인스턴스 세부정보 페이지를 엽니다.
    3. VM 인스턴스 세부정보 페이지 상단의 중지를 클릭하여 인스턴스를 중지합니다.
    4. 부팅 디스크 섹션으로 스크롤하고 부팅 디스크의 크기를 확인합니다.
  2. 디스크 페이지로 이동하여 프로젝트의 영구 디스크 목록을 확인합니다.

    디스크 페이지로 이동

    1. 목록에서 해당 인스턴스의 부팅 디스크를 선택합니다.
    2. 스냅샷 만들기를 클릭하여 디스크의 스냅샷을 만듭니다.
  3. Google Cloud Platform Console의 스냅샷 페이지로 이동합니다.
    스냅샷 페이지로 이동
    1. 스냅샷 이름을 입력합니다.
    2. 소스 디스크 드롭다운 메뉴에서 디스크를 선택합니다.
    3. 디스크 세부정보를 입력합니다.
  4. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  5. 인스턴스 세부정보를 입력합니다.
  6. 부팅 디스크를 변경합니다.
    1. 스냅샷을 선택합니다.
    2. 부팅 디스크 스냅샷을 선택합니다.
    3. 부팅 디스크 유형을 선택합니다.
    4. 새 디스크 크기를 입력합니다.
    5. 선택을 클릭합니다.
  7. 만들기를 클릭합니다.
  8. 디스크를 마운트하고 포맷합니다.

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

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

Console

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 디스크가 연결된 인스턴스 옆의 체크박스를 선택합니다.
  3. 인스턴스 이름을 클릭합니다.
  4. VM 인스턴스 세부정보 페이지가 나타납니다.
  5. 페이지 상단의 수정을 클릭합니다.
  6. 추가 디스크로 스크롤합니다.
  7. 연필을 클릭하여 디스크의 삭제 규칙을 수정합니다.
  8. 완료를 클릭하여 변경사항을 저장합니다.
  9. 저장을 클릭하여 인스턴스를 업데이트합니다.

gcloud


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

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

API


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

https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/example-instance/setDiskAutoDelete?deviceName=deviceName,autoDelete=true

클라이언트 라이브러리를 사용할 경우에는 instances().setDiskAutoDelete 메서드를 사용합니다.

def setAutoDelete(gce_service, auth_http):
  request = gce_service.instances().setDiskAutoDelete(project=example-project, zone=us-central1-f, deviceName=my-new-device, instance=example-instance, autoDelete=True)
  response = request.execute(http=auth_http)

  print response

여러 인스턴스에서 영역 영구 디스크 공유

비부팅 영구 디스크를 하나 이상의 가상 머신 인스턴스에 읽기 전용 모드로 연결할 수 있으며, 이 경우 정적 데이터를 여러 인스턴스에서 공유할 수 있습니다. 한 영구 디스크에서 여러 인스턴스 사이에 고정 데이터를 공유하면 인스턴스마다 데이터를 고유 디스크에 복제할 때보다 비용이 적게 듭니다.

영구 디스크를 여러 인스턴스에 연결할 경우 해당 인스턴스가 모두 영구 디스크를 읽기 전용 모드로 연결해야 합니다. 영구 디스크를 읽기-쓰기 모드로 여러 인스턴스에 연결하는 것은 불가능합니다. 여러 인스턴스 사이에 동적 저장공간을 공유해야 할 경우 다음 옵션 중 하나를 사용할 수 있습니다.

영구 디스크의 데이터를 여러 인스턴스에서 공유하려는 경우 영구 디스크를 읽기-쓰기 인스턴스와 분리하여 하나 이상의 인스턴스에 읽기 전용 모드로 연결합니다.

Console

  1. 프로젝트의 인스턴스 목록을 보려면 VM 인스턴스 페이지로 이동합니다.

    인스턴스 페이지로 이동

  2. 이름 열에서 디스크를 연결하려는 인스턴스의 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 열립니다.
  3. 인스턴스 세부정보 페이지의 상단에서 수정을 클릭합니다.
  4. 추가 디스크 섹션에서 다음 중 하나를 클릭합니다.
    1. 인스턴스에 디스크를 읽기 전용 모드로 추가하려면 디스크를 추가합니다.
    2. 기존 디스크를 선택하고 읽기 전용 모드로 인스턴스에 연결하려면 기존 디스크를 연결합니다.
  5. 디스크의 다른 옵션을 지정합니다.
  6. 완료를 클릭하여 변경사항을 적용합니다.
  7. VM 인스턴스 세부정보 페이지 하단에 있는 저장을 클릭하여 변경사항을 인스턴스에 적용합니다.
  8. 인스턴스에 연결하고 디스크를 마운트합니다.
  9. 다른 인스턴스에 디스크를 읽기 전용 모드로 추가하려면 이 프로세스를 반복합니다.

gcloud

gcloud 도구에서 compute instances attach-disk 명령어를 사용하고 ro 옵션으로 --mode 플래그를 지정합니다.

gcloud compute instances attach-disk [INSTANCE_NAME] \
    --disk [DISK_NAME] \
    --mode ro

각 항목의 의미는 다음과 같습니다.

  • [INSTANCE_NAME]은 영역 영구 디스크를 연결하려는 인스턴스의 이름입니다.
  • [DISK_NAME]은 연결하려는 디스크의 이름입니다.

디스크를 연결한 후 인스턴스에 연결하고 디스크를 마운트합니다.

이 디스크를 읽기 전용 모드로 추가하려는 각 인스턴스에 이 명령어를 반복합니다.

API

API에서 compute.instances.attachDisk 메서드에 대해 POST 요청을 작성합니다. 요청 본문에서 mode 매개변수를 READ_ONLY로 지정합니다.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk

{
 "source": "zones/[ZONE]/disks/[DISK_NAME]",
 "mode": "READ_ONLY"
}

각 항목의 의미는 다음과 같습니다.

  • [INSTANCE_NAME]은 영역 영구 디스크를 연결하려는 인스턴스의 이름입니다.
  • [PROJECT_ID]는 프로젝트 ID입니다.
  • [ZONE]은 디스크가 위치하는 영역입니다.
  • [DISK_NAME]은 연결할 디스크의 이름입니다.

디스크를 연결한 후 인스턴스에 연결하고 디스크를 마운트합니다.

이 디스크를 읽기 전용 모드로 추가하려는 각 인스턴스에 이 요청을 반복합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서