티스토리 뷰

공부/CS

GSP004: Creating a Persistent Disk

대학원생 슬 2021. 11. 7. 21:17

https://www.cloudskillsboost.google/focuses/1753?parent=catalog

Disclaimer

이 글은 개인 복습 및 영어가 어려운 분을 위한 참고 자료 목적으로 작성했습니다. 본문의 저작권을 침해할 생각이 전혀 없으며, 글쓴이는 구글 스터디잼에서 제공하는 Cloud Skill Boost Subscription 쿠폰을 사용해 해당 컨텐츠를 학습했습니다. 해당 랩을 진행하기 위해선 구독권을 구매하거나, 크레딧을 사용해야 합니다.

Overview

Compute Engine의 Persistent Disk 기능을 학습하는 랩. Persistent Disk는 VM의 주 저장소로 작동함. VM과 독립적이고, VM이 삭제된 경우에도 데이터를 유지할 수 있음. 두가지 종류가 있음. - 국문 영구 디스크로 사용하긴 함.

  • Standard persistent disk
  • SSD Persistent disk

랩에서 둘의 차이를 다루진 않음. 생성하고 VM에 붙이는 것에만 집중.

  • VM 인스턴스 새로 생성하고 디스크 붙이기
  • 디스크 포맷 및 마운트하기

Vim 외의 사전 지식은 필요하지 않음. Setup은 생략.

Create a new instance

먼저 VM부터 만든다. gcloud compute instances create gcelab --zone us-central1-c

Create a new persistent disk

디스크를 붙이기 위해, 이전 단계와 같은 존에 생성해야 한다. gcloud compute disks create mydisk --size=200GB --zone us-central1-c

Attaching a disk

위에서 생성한 mydiskgcelab에 붙여보자. gcloud compute instances attach-disk gcelab --disk mydisk --zone us-central1-c

Finding the persistent disk in the virtual machine

이제 디스크를 block device처럼 사용할 수 있다. gcloud compute ssh gcelab --zone us-central1-c를 입력하고, SSH 키 생성을 수락한다. passphrase는 넣지 않는다. ls -l /dev/disk/by-id/로 디스크를 찾는다.

scsi-0Google_PersistentDisk_persistent-disk-1이 기본 이름인데, 처음 붙일 때 device-name 파라미터를 줘서 바꿀 수 있다. 예시 명령어: gcloud compute instances attach-disk gcelab --disk mydisk --device-name <YOUR_DEVICE_NAME> --zone us-central1-c

Formatting and mounting

디스크를 찾았으면 파티션, 포맷, 마운트를 리눅스 명령어로 할 수 있다.

  1. 먼저 마운팅 포인트를 만든다: sudo mkdir /mnt /mydisk
  2. mkfs를 이용해 단일 ext4 파일시스템으로 포맷한다. 디스크의 모든 내용을 지우니 조심하자. sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1
  3. mount로 디스크를 끼운다. discard 옵션도 활성화한다. sudo mount -o discard,defaults /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk

Automatically mount the disk on restart

기본 설정값으로는 VM이 재시작할 때 마운트가 다시 되지 않는다. 재시작시 다시 끼워지도록 /etc/fstab에 엔트리를 추가한다.

  1. /etc/fstab을 열자. sudo vim /etc/fstab
  2. 첫번째 줄의 UUID에 다음 내용을 입력한다. /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk ext4 defaults 1 1
  3. esc + :wq로 종료한다.

Test your knowledge

  1. 인스턴스가 삭제될 때 붙은 디스크도 같이 삭제 안되게 하는 방법은 다음과 같다. 1. 인스턴스를 생성할 때 '삭제시 부트디스크 삭제' 옵션을 체크 해제한다. 2. gcloud compute instances delete --keep-disks 옵션을 사용한다.
  2. 디스크의 데이터를 다른 리전으로 옮기기 위해선, 다음 순서를 밟아야한다. 5 Unmount file system - 3 Create snapshot - 2 Create Disk - 4 Create Instance - 1 Attach disk

Local SSDs

Compute Engine엔 Local SSD를 달 수도 있다. Local SSD는 VM 인스턴스를 호스팅하는 서버에 물리적으로 있는 SSD로, VM에 끼울 수 있다. 강력한 성능을 제공하는 커플링으로, 초당 입출력 수행력이 높고 일반 디스크에 비해 지연 또한 극히 적다.

  • 1ms 이하 지연
  • 초당 680,000 읽기연산, 360,000 쓰기 연산.

성능에선 엄청 나아지지만, 가용성, 지속성, 유연성에서 손해가 생긴다. 이런 Trade-off 때문에 자동으로 확장하지 않으며 사용자는 특히 백업에 신경을 많이 써야한다.

이 랩에선 local SSD를 다루지 않는다. 또한 이런 local SSD 성능을 극대화하려면 NVMe를 지원하는 특별한 리눅스 이미지가 필요하다. 해당 내용은 Local SSD documentation에서 좀 더 다룬다.

반응형
공지사항