클라우드에는 모든 사용자에게 오픈되어 VM base 이미지로 사용되는 퍼블릭 이미지와 사용자에게만 오픈된 사용자가 만든 커스텀 이미지가 있습니다.
커스텀 이미지 ( snapshot )은 사용자의 VM 혹은 볼륨을 대상으로 현시점 데이터를 이미지화하여 필요할 때 동일 데이터를 가진 VM 혹은 볼륨에 대한 프로비저닝 기능을 제공합니다.
그리고 스냅샷 이미지는 리전 간 공유 기능을 통해 같은 데이터를 담은 VM과 볼륨을 여러 리전에 생성할 수 있습니다. (NCP의 경우 계정 간 이미지 공유는 불가능합니다. Openstack에서는 커스텀 이미지에 대한 visibility 를 public / private으로 선택 가능하며 커스텀 이미지를 공유하는 멤버 지정도( glance member-create <IMAGE_ID> <MEMBER_ID>
) 가능합니다. 이 부분이 조금 아쉽네요!)
NCP 에서는 내서버 이미지, 스냅샷, 유사서버 생성이라는 3가지 이름으로 위 기능들을 제공하고 있습니다.
저만 그런 것일 수 있겠지만...이름이 여러 개다 보니 헷갈려서 오늘은 이 3가지 친구들에 대해 정리를 해볼까 합니다.
내서버 이미지
내서버 이미지는 서버 OS 데이터와 추가 볼륨에 대한 snapshot 이미지를 만들어 줍니다. 실사용량 기준으로 가변적이긴 하지만 메뉴얼 상 용량 50G 기준으로 30분 정도 소요된다고 하네요.
동일한 사용량 기준으로
[ VM + 볼륨 서버 이미지
] 와
[ VM 내서버 이미지
] +
[ 볼륨 스냅샷
] 생성 소요 시간을 측정해봤습니다.
- 조건 : VM(20G/50G) + 볼륨(20G/100G) / 리눅스 OS
- 내서버 이미지 (VM + 볼륨) 생성 소요 시간 : 160분
- 내서버 이미지(VM) + 스냅샷 (볼륨) 소요시간의 합 : 68분 ( 내서버 이미지 60분 + 스냅샷 8분 )
클라우드 플랫폼에 이미지 upload 과정과 이미지 백엔드 스토리지에 Saving 하는 과정에서 당시 환경별 이미지 생성 소요 시간에 차이가 발생할 수 있습니다만, 시간이 좀 오래 걸리네요.
내서버 이미지를 생성하기 위해서 서버 상태가 shutoff 여야 하는 점을 감안하면 서비스 다운타임 최소화를 위해 볼륨 detach 후 VM OS 서버이미지와 볼륨 스냅샷을 따로 생성하는게 서비스 다운타임을 최소화 할 수 있는 방법이라고 생각됩니다. 추가로 내서버 이미지를 이용해서 VM을 생성할때, 부팅 디스크 타입과 동일하게 추가 볼륨 타입이 결정되므로 두 볼륨 타입이 달라야 한다면 서버 이미지 생성 전에 볼륨을 detach 하고 서버 이미지를 만드셔야 합니다.
그리고 서버가 running 중인 상태에서 이미지를 뜨게 되면 데이터 정합성 문제가 생길 수 있지만 shutoff 상태에서만 진행되니 그 부분에 대한 고려는 하지 않아도 되겠네요
해당 이미지에 대한 리전간 공유도 가능하므로 다른 리전에 동일한 VM을 생성할 수 있습니다.
스냅샷
스냅샷 기능의 대상은 볼륨입니다. 볼륨의 현 상태를 이미지화 합니다.
스냅샷 이미지를 이용해서 볼륨에 대한 타입 변경 및 리전간 이미지 공유를 통해 다른 리전에 동일한 볼륨을 생성할 수 있습니다.
NCP의 경우 볼륨으로 VM을 생성할 수 없기 때문에 스냅샷 기능은 그 대상이 볼륨에 한정적이며 볼륨 데이터에 대한 백업, 동일 볼륨 생성, 타 리전에 동일 볼륨 생성시에 사용하시면 됩니다.
그리고 볼륨 상태와 무관하게 언제든 스냅샷 이미지를 생성할 수 있습니다. 하지만 데이터 정합성을 고려한다면 I/O가 없는 상태 (볼륨 상태 : available 혹은 VM 상태가 shutoff) 에서 진행하는 것을 권장 드립니다.
유사 서버
유사서버 생성 기능은 소스 VM과 동일 OS, 사양, 키패어를 가진 VM을 만들어 줍니다.
userdata는 동일하게 적용되지 않으므로 그냥 VM 껍데기만 만든다고 생각하시면 되겠네요
동일한 스펙의 VM이 필요할 경우 OS 선택, 사양 선택 등의 손가락을 덜 움직일 수 있는 유용한 기능입니다.
정리
위 내용을 정리하면 아래와 같이 정리할 수 있겠네요
저만 헷갈린걸 수도 있겠지만 용어가 여러개다 보니 이번기회에 한번 정리해보는 시간을 가져봤습니다.
그럼 다음에 다시 찾아오겠습니다!