티스토리 뷰

Cloud/Google Cloud Platform

[GCP] Virtual Machine - disk

Reo Dongmin Lee 2019. 1. 15. 23:21

Google Cloud Platform Virtual Machine의 disk option 들을 알아보자. 


GCP는 다음과 같은 disk type을 제공한다.

Persistent disks(HDD, SSD), Local SSD disks, RAM disk


제일 먼저 위의 option들과 별개로 VM 생성시 동반되는 boot disk 부터 살펴보자.





Boot Disk


VM 은 기본적으로 하나의 root persistent disk를 가진다. (base image로 선택한 OS image가 로딩되는 disk)


이 image는 VM에 붙여서 부팅이 가능하고 VM이 종료되도 survive 가능하다. 


boot disk 용으로다양한 OS image를 제공하는데 (최신 버젼도 계속해서 업데이트) 커스터마이징 가능한 OS image들도 있다.


VM 생성화면에서 "Delete boot disk when instance is deleted" 의 체크박스를 해제하면 VM이 지워져도 disk는 남아있다. 만약 boot disk 를 사용해 시스템 image를 만들려 한다면 VM이 기동중일때는 image 생성이 불가능하기 때문에 반드시 저 옵션을 꺼주고 VM을 생성해야한다.




Persistent Disks


네트워크 인터페이스를 통해 VM에 붙는 disk 다. 

이름에 persistent가 들어가서 왠지 VM이랑 같이 살고 같이 죽을꺼 같지만, 동일한 VM 상에 있는 것이 아니라 물리적으로 분리된 상태로 네트워크를 통해 연결되어 있기 때문에 VM이 종료되더라도 disk는 그대로 유지된다. 

다만 persistent disk 는 ZONE 에 묶여있어서 다른 ZONE으로 이동은 불가능하다. (하지만 snaphot 기능을 제공하기 때문에 다른 ZONE으로 데이터 migration은 가능)

HDD랑 SSD는 성능차가 있고 당연히 SSD 사용료가 더 비싸다.

눈에 띄는 특징으로는 disk 용량을 dynamic 하게 실시간으로 resize 가능하다는 점.

클라우드 환경이 아닌 전통적인 환경에서는 disk 를 사용하려면 포멧도 해야하고 파티션도 만들어야되고 중간에 disk 용량을 늘리려면 다시 파티션을 늘려주던지(이러면 포멧해야되서 데이터 다 날려야하고) 아니면 새로운 디스크 증설을 해야하는데 클라우드 환경이라 dynamic resizing이 가능하다. 

심지어 VM 이 running 상태일때도 변경 가능하다. 아주 다이내믹하다.

또한 read-only 모드로 여러개의 VM에 붙일수도 있다. 각 VM마다 따로 disk 를 만들지 않아도 되니 이 경우 매우 큰 비용감소를 기대할 수 있다.

snapshot 기능을 제공해서 backup 및 data migration 가능. (snapshot 기능에 대해서는 추후에 좀더 자세히 정리 예정)



Local SSD disks

Local SSD disks는 persistent disk랑 다르게 VM에 물리적으로 붙어있는 SSD disk 다.
물리적으로 붙어있기 때문에 persistent disk에 비해 IOPS, latency, throughput 에서 더 좋은 성능을 가진다.
성능적인 장점과 함께 물리적으로 붙어있어 다음과 같은 단점도 가진다.
  • VM reset 시에는 data 가 유지되지만 VM이 멈추거나 종료될때는 데이터가 유실된다. (Persistent SSD의 경우 데이터가 몇몇 물리 disk에 분산되어 저장되기 때문에 data redundancy를 제공하는데 Local SSD는 성능은 좋지만 data redundancy를 제공하지 않음)
  • 해당 VM에 특화되어서 다른 VM에 붙일수 없다.
  • snpshot 기능 제공안함


RAM disk

가장 좋은 퍼포먼스를 제공하지만 휘발성이 높다.
리눅스 OS에 기본적으로 설치되어있는 tmpfs 툴을 사용해서 간단히 생성 가능하다. 생성법은 다음 링크를 참고한다.

주의할점은 tmpfs 사용시 VM instance의 가용 메모리를 전부 사용해버리는 불상사가 없도록 해야한다. instance의 default 설정은 swap space를 하나도 가지고 있지않다. Ram disk 가 instance의 메모리를 모두 사용하면 instance가 crash 되거나 data 유실사태가 벌어질수 있다.

휘발성이 높고 자체적으로 저장기능이 없기 때문에 주로 persistent disk 와 같이 연동해서 쓴다.





이래저래 장황하게 적었지만 다음 슬라이드 한장으로 요약된다. 
Coursera의 Google Cloud Platform infrastructure: foundation 강의에서 제공하는 disk 타입 요약 슬라이드다.




댓글