비용을 효율적으로 사용하기 위해 불필요하게 크게 생성한 Compute Engine 디스크 크기를 조정하고자 할 수 있습니다.

하지만 Compute Engine Disk의 크기는 늘릴 수만 있으며 줄일 수 없습니다.

따라서 디스크 크기를 줄이려면 더 작은 크기의 새 디스크를 만들어야 합니다.

아래 방법을 따라 더 작은 크기의 디스크를 생성 및 기존 디스크로부터 데이터 마이그레이션을 진행하시기 바랍니다.


1. Console 상에서 VM을 중지

 . Console > Compute Engine > VM Instances > VM 선택 > Stop


2. 백업용 Disk Snapshot 생성

 . Console > Compute Engine > Disks > 기존 Disk 선택 > Actions > Create snapshot


3. 새로운 Disk 생성

 . 아래 gcloud 명령어를 사용합니다.

  .. gcloud compute disks create [Disk 이름] --zone=[Disk의 Zone] --architecture=X86_64 --guest-os-features=[OS 기능 설정 필요시] --size=[Disk Size] --image=[사용할 Disk 이미지] --type=[Disk Type]

 . 신규 Disk를 Boot Disk로 VM에 연결합니다.

  .. gcloud compute instances attach-disk [VM 이름] \

    --disk=[신규 Disk 이름] \

    --boot


4. VM을 다시 시작

 . Console > Compute Engine > VM Instances > VM 선택  > Start


5. 기존 Disk를 Additional Disk로 추가

 .  VM 선택  > Edit > Additional disks > + Attach Existing Disk > [기존 Disk]

 . 해당 VM에 Boot Disk와 Additional Disk가 올바르게 설정되어 있는지 확인합니다.

  .. Console > Compute Engine > VM instances > 해당 VM 선택 > Storage




6. 기존 Disk에서 신규 Disk로 필요한 Data Migration

 . VM에 SSH 접속하여 Disk 상황을 확인합니다.

    ※ 아직 Additional Disk가 Mount 되어있지 않은 것을 확인할 수 있습니다.

  .. Console > Compute Engine > VM instances > SSH

  .. lsblk # addtional disk 추가여부확인





 . Additional Disk를 VM에 Mount합니다.

  .. sudo mkdir -p [디렉토리 경로] # Disk를 mount할 디렉토리 생성

   ... ex : sudo mkdir -p /mnt/disks/test

  .. sudo mount -o discard,defaults [Mount할 Disk 이름] [디렉토리 경로] # Disk mount

   ... ex : sudo mount -o discard,defaults /dev/sdb1 /mnt/disks/test

  .. lsblk # mount여부 확인

  .. sudo chmod a+w [디렉토리 경로] # 해당 디렉토리 접근권한 허용

   ... ex : sudo chmod a+w /mnt/disks/test



 . cp 명령어를 사용하여 Additional Disk에서 필요한 Data를 Migration합니다.

  .. cd /mnt/disks/test/[데이터가 저장된 경로]

  .. cp * /[데이터를 저장할 경로]

  .. cd /[데이터를 저장할 경로]

  .. ls -la # 데이터 확인

  .. df -h # Disk 사용량 비교






7. Data Migration 완료 후 Additional Disk Detach


 . Additional Disk를 Detach합니다.

  .. Console > Compute Engine > VM instances > 해당 VM > Edit > Storage > Addtional disks > Remove disk



 . 해당 VM을 재시작 합니다.

※ 재시작을 안하면 df -h 명령어로 확인 시 아직 mount 된것처럼 표시됩니다.

  .. Console > Compute Engine > VM instances > 해당 VM 선택 > Stop / Start