빈 영구 디스크를 만들거나 데이터 소스에서 디스크를 생성할 수 있습니다. 영구 디스크를 가상 머신(VM) 인스턴스의 부팅 디스크로 사용하거나 VM에 연결하는 데이터 디스크로 사용할 수 있습니다. 이 문서에서는 다음 작업을 실행하는 방법을 설명합니다.
- 빈 비부팅 영역 영구 디스크를 만들고 VM 인스턴스에 연결합니다.
- 디스크나 파일 시스템 없이 시작되므로 디스크를 포맷하고 마운트합니다.
영구 디스크와 사용 가능한 디스크 유형에 대한 일반적인 정보는 영구 디스크 개요를 참조하세요.
시작하기 전에
- 이 가이드의 명령줄 예시를 사용하려면 다음을 수행하세요.
- 최신 버전의 Google Cloud CLI를 설치하거나 업데이트합니다.
- 기본 리전 및 영역을 설정합니다.
- 이 가이드의 API 예시를 사용하려면 API 액세스를 설정합니다.
제한사항
- 인스턴스를 만드는 동안 보조 비부팅 영역 영구 디스크를 최대 127개까지 연결할 수 있습니다.
- 총 연결 용량은 인스턴스당 257TB까지 가능합니다. 대용량 볼륨에서 최대 성능을 보장하는 방법은 논리 볼륨 크기를 참조하세요.
VM에 비부팅 디스크 추가
Google Cloud 콘솔, Google Cloud CLI 또는 Compute Engine API를 사용하여 비부팅 영역 디스크 만들고 연결합니다.
Google Cloud 콘솔에서 디스크를 만드는 경우 기본 디스크 유형은 pd-balanced
입니다. gcloud CLI 또는 Compute Engine API를 사용하여 디스크를 만드는 경우 기본 디스크 유형은 pd-standard
입니다.
Console
VM 인스턴스 페이지로 이동합니다.
체크박스를 선택하고 디스크를 추가할 인스턴스의 이름을 클릭합니다.
VM 인스턴스 세부정보 페이지에서 수정을 클릭합니다.
추가 디스크에서 새 디스크 추가를 클릭합니다.
디스크 이름을 지정하고 디스크 속성을 구성한 다음 소스 유형으로 빈 디스크를 선택합니다.
완료를 클릭하여 디스크 구성을 완료합니다.
저장을 클릭하여 변경사항을 인스턴스에 적용하고 새 디스크를 추가합니다.
gcloud
-
Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.
Google Cloud 콘솔 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.
gcloud compute disks create
명령어를 사용하여 영역 영구 디스크를 만듭니다.gcloud compute disks create DISK_NAME \ --size DISK_SIZE \ --type DISK_TYPE
다음을 바꿉니다.
DISK_NAME
: 새 디스크의 이름입니다.DISK_SIZE
: 새 디스크의 크기(GB)입니다. 허용되는 크기는 10GB부터 65,536GB까지 1GB 단위로 증가하는 크기입니다.DISK_TYPE
: 영구 디스크 유형의 전체 또는 부분 URL입니다. 예를 들면https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
입니다.
디스크를 만든 후 실행 중이거나 중지된 인스턴스에 연결합니다.
gcloud compute instances attach-disk
명령어를 사용합니다.gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME
다음을 바꿉니다.
INSTANCE_NAME
: 새 영역 영구 디스크를 추가할 인스턴스의 이름입니다.DISK_NAME
: 인스턴스에 연결할 새 디스크의 이름입니다.
gcloud compute disks describe
명령어를 사용하여 디스크의 설명을 확인합니다.
Terraform
디스크를 만들려면 google_compute_disk
리소스를 사용합니다.
VM에 디스크를 연결하려면 google_compute_instance
리소스를 사용합니다.
Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.
API
API에서
disks.insert
메서드를 사용하여 영역 영구 디스크를 만들기 위한POST
요청을 작성합니다.name
,sizeGb
,type
속성을 포함합니다. 이 디스크를 비어 있고 포맷되지 않은 비부팅 디스크로 만들려면 소스 이미지 또는 소스 스냅샷을 지정하지 마세요.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "DISK_NAME", "sizeGb": "DISK_SIZE", "type": "DISK_TYPE" }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 ID입니다.ZONE
: 인스턴스와 새 디스크가 배치되는 영역입니다.DISK_NAME
: 새 디스크의 이름입니다.DISK_SIZE
: 새 디스크의 크기(GB)입니다. 허용되는 크기는 10GB부터 65,536GB까지 1GB 단위로 증가하는 크기입니다.DISK_TYPE
: 영구 디스크 유형의 전체 또는 부분 URL입니다. 예를 들면https://www.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE/diskTypes/pd-ssd
입니다.
compute.instances.attachDisk
메서드에 대한 POST 요청을 작성하고 방금 만든 영역 영구 디스크의 URL을 포함합니다.POST https://compute.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
: 새 디스크의 이름입니다.
새 디스크를 만들고 VM에 연결한 후에는 운영체제가 가용 저장공간을 사용할 수 있도록 디스크를 포맷하고 마운트해야 합니다.
Linux VM에서 비부팅 디스크 포맷 및 마운트
VM에 연결
VM 인스턴스 페이지로 이동합니다.
새 디스크가 연결된 인스턴스 옆에 있는 SSH 버튼을 클릭합니다. 브라우저에서 해당 VM으로의 터미널 연결이 열립니다.
디스크 포맷
터미널에서
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
는 새로운 빈 영구 디스크의 기기 이름입니다.mkfs
도구를 사용하여 디스크를 포맷합니다. 이 명령어는 지정된 디스크의 모든 데이터를 삭제하므로 디스크 기기를 올바르게 지정해야 합니다.필요한 모든 파일 형식을 사용할 수 있지만 파티션 테이블이 없는 단일
ext4
파일 시스템을 권장합니다. 나중에 디스크 파티션을 수정할 필요 없이 디스크 크기를 늘릴 수 있습니다.디스크 성능을 극대화하려면
-E
플래그에 권장되는 포맷 옵션을 사용하세요. 이 보조 디스크에서는 루트 볼륨 공간을 예약할 필요가 없으므로-m 0
을 지정하여 모든 가용 디스크 공간을 사용하세요.$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME
DEVICE_NAME
을 포맷할 디스크의 기기 이름으로 바꿉니다. 이 예시에서는sdb
를 지정하여 전체 디스크를 파티션 테이블 없이 포맷합니다.
디스크 마운트
VM에서 새 디스크의 마운트 지점 역할을 하는 디렉터리를 만듭니다. 어떤 디렉터리든 사용할 수 있습니다. 다음 예시에서는
/mnt/disks/
아래에 디렉터리를 만듭니다.$ sudo mkdir -p /mnt/disks/MOUNT_DIR
MOUNT_DIR
을 디스크를 마운트할 디렉터리로 바꿉니다.마운트 도구를 사용하여 디스크를 인스턴스에 마운트하고
discard
옵션을 사용 설정합니다.$ sudo mount -o discard,defaults /dev/DEVICE_NAME /mnt/disks/MOUNT_DIR
다음을 바꿉니다.
DEVICE_NAME
: 마운트할 디스크의 기기 이름입니다.MOUNT_DIR
: 디스크를 마운트할 디렉터리입니다.
디스크에 대한 읽기 및 쓰기 권한을 구성합니다. 이 예시에서는 모든 사용자에게 디스크에 대한 쓰기 액세스 권한을 부여합니다.
$ sudo chmod a+w /mnt/disks/MOUNT_DIR
MOUNT_DIR
을 디스크가 마운트된 디렉터리로 바꿉니다.
VM 재시작 시 자동 마운트 구성
VM이 다시 시작될 때 디스크가 자동으로 다시 마운트되도록 /etc/fstab
파일에 디스크를 추가합니다. Linux 운영체제에서는 재부팅할 때마다 기기 이름이 변경될 수 있지만 기기 UUID는 디스크를 시스템 간 이동하는 경우에도 항상 동일한 볼륨을 가리킵니다. 이러한 이유로 VM 이름 대신 기기 UUID를 사용하여 VM 재시작 시 자동 마운트를 구성하는 것이 좋습니다.
현재
/etc/fstab
파일의 백업을 만듭니다.$ sudo cp /etc/fstab /etc/fstab.backup
blkid
명령어를 사용하여 디스크의 UUID를 나열합니다.$ sudo blkid /dev/DEVICE_NAME
다음을 바꿉니다.
DEVICE_NAME
: 자동 마운트하려는 디스크의 기기 이름입니다. 디스크에 파티션 테이블을 만든 경우 기기 이름에 추가된 서픽스를 추가하여 마운트할 파티션을 지정합니다. 예를 들어sdb
가 디스크의 기기 이름인 경우sdb1
은 파티션의 이름일 수 있습니다.
텍스트 편집기에서
/etc/fstab
파일을 열고 UUID를 포함하는 항목을 만듭니다. 예를 들면 다음과 같습니다.UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
다음을 바꿉니다.
UUID_VALUE
: 이전 단계의 출력에 나열된 디스크의 UUID입니다.MOUNT_DIR
: 디스크를 마운트한 디렉터리입니다.MOUNT_OPTION
: 부팅 시 영역 영구 디스크를 마운트할 수 없을 경우 운영체제가 수행할 작업을 지정합니다. 유효한 값은 Linuxfstab
문서의 네 번째 필드를 참조하세요. 디스크를 사용할 수 없는 경우에도 시스템을 부팅하려면nofail
옵션을 사용합니다.
cat
명령어를 사용하여/etc/fstab
항목이 올바른지 확인합니다.$ cat /etc/fstab LABEL=cloudimg-rootfs / ext4 defaults 0 0 UUID=d761bdc5-7e2a-4529-a393-b9aefdb623b6 /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
이 디스크를 분리하거나 이 VM의 부팅 디스크로 스냅샷을 만드는 경우 /etc/fstab
파일을 수정하고 이 디스크의 항목을 삭제합니다. MOUNT_OPTION
을 nofail
또는 nobootwait
로 설정한 경우에도 /etc/fstab
파일을 VM에 연결된 기기와 동기화하고 부팅 디스크 스냅샷을 생성하거나 디스크를 분리하기 전에 이 항목을 삭제해야 합니다.
Windows VM에서 비부팅 디스크 포맷 및 마운트
Windows 디스크 관리 유틸리티를 사용하여 Windows VM에서 새 디스크를 포맷하고 마운트합니다.
VM 인스턴스 페이지로 이동합니다.
새 빈 디스크가 연결된 VM 옆에 있는 RDP 버튼을 클릭합니다. 브라우저에서 인스턴스로의 RDP 연결이 열립니다.
Windows 시작 버튼을 마우스 오른쪽 버튼으로 클릭하고 디스크 관리를 선택합니다.
디스크 관리에 새 디스크의 파티션 나누기 스키마를 선택하라는 메시지가 표시됩니다. GPT를 선택하고 확인을 클릭합니다.
디스크가 초기화된 후 할당되지 않은 디스크 공간을 마우스 오른쪽 버튼으로 클릭하고 새 단순 볼륨을 선택합니다.
단순 볼륨 만들기 마법사의 안내에 따라 새 볼륨을 구성합니다. 파티션 형식은 원하는 것을 사용하면 되지만 이 예시에서는
NTFS
를 선택합니다. 또한 빠른 포맷 실행을 선택해 포맷 프로세스 속도를 높입니다. 필요한 경우 할당 단위 크기 필드에서 클러스터 크기를 설정합니다. 클러스터 크기는 파티션의 최대 크기를 제한합니다. 나중에 영역 영구 디스크와 이 파티션의 크기를 조절하려고 시도할 경우 이 점을 염두에 두어야 합니다.마법사를 완료하고 볼륨 포맷을 마친 후에는 연결된 디스크 목록의
Status
열에서 새 디스크의 상태가Healthy
인지 확인합니다.
이제 디스크에 파일을 작성할 수 있습니다.
다음 단계
- 영구 디스크 크기를 조절하는 방법을 알아봅니다.
- 의도치 않은 데이터 손실을 방지하기 위해 정기적으로 스냅샷을 사용하여 디스크를 백업하는 방법을 알아봅니다.
- 두 영역 간 동기식 복제에 리전 영구 디스크를 사용합니다.