[Disk] Azure 관리형 디스크 Deep Dive : Azure Managed Disk

Azure
작성자
Roronoa
작성일
2022-03-14 21:57
조회
1297
Azure 관리형 디스크에 대한 이론적 설명(Deep Dive : Azure Managed Disk)
그림001
azure

그림001을 보면 디스크가 3가지 종류가 있습니다. Azure 에서 저장소는 다양한 종류가 많이 있습니다. 그중에서도 가장 많이 사용되는 디스크처럼 사용되는 저장소는 상단에 보이는 그림처럼 C 드라이브는 OS가 저장되는 디스크 C 드라이브가 있으며 그림의 빨간 화살표 부분입니다. 파란색 화살표는 임시 저장소 디스크 D 드라이브 이며 녹색 화살표는 네트워크 공유 디스크인 Azure Files 입니다.

 디스크 C 드라이브의 저장소를 일반적으로 블록 수준 저장소 디스크라 부르며 이를 Azure에서는 관리 디스크라고 부릅니다. 사실 Azure 관리디스크 가 나오기전에 Azure Disk 는 AWS의 AMI 처럼 이미지로 생성하거나 Managed 되는 기능이 없이 딸랑 VHD Blob으로 이미지를 생성하는 매우 비효율적인 구조 였습니다. 

그러나 2017년에 Managed 디스크가 나오면서 부터 관리 디스크의 기능인 AMI와 같은 기능인 디스크를 image 화 시켜서 재사용 할수 있는 기능이 추가 되었습니다. 이 기능이 없어서 Azure에서 매우 불편함과 불만을 가졌던 기억이 있었으며 이기능이 나온다음부터는 Managed 디스크는 이제 Azure에서 디폴트처럼 사용되어왔습니다. 

이름이 Managed 인데 먼가 관리적 기능이 왜 없지라고 생각한다면 관리적 기능이 현재는 디폴트처럼 사용되기 때문입니다. 이런 이미지로 재사용할수 있으며 이미지로 이미지갤러리에서 계정간 이동 구독간 이동 등 많은 기능이 나왔으며 이런 기능은 이제 특별한 기능이 아닙니다.

그러나 이 글에서는 단순한 디스크의 개념을 설명하고자 하는 목적이 아니고 이 Managed 디스크를 어떻게 구성되어 있으며 어떻게 쓰는것이 가장 효율적인지에 대해서 설명드릴 예정입니다.

 

OS 디스크

일반적으로 Azure에서는 디폴트 세팅은 윈도우가 127GiB 이며 리눅스는 30GiB 입니다. AWS의 경우 윈도우가 30GiB 이며 리눅스는 8GiB이며  OS 디스크의 경우 운영체제가 인스톨된 상태로 보통 제공되며 다양한 버전의 이미지는 마켓플레이스에서 대부분의 제품을 사용할 수 있습니다 . 물론 매우 오래된 선사시대 OS 인 Windows 2003 과 같은 예전 OS는 겨우 돌아가거나 잘 안되는 경우도 있습니다. 선사시대 물품은 이제 버리고 업그레이드 하는것이 정신건강에 좋으므로 추천하지 않고 서비스가 종료되어있는 제품은 사용하지 않는것이 좋습니다. 

그림002에서 보면 OS 디스크(C드라이브)와 데이터 디스크(E드라이브)는 어디에 위치하나요? Azure Storage 라는 저장소에 위치합니다.. OS 디스크와 데이터디스크는 Hypervisor가 있는 위치와 같은 위치에 존재하지 않습니다. 그러나 마치 같은 위치에 존재하는것 처럼 OS디스크는 캐쉬되어 연동되어 있습니다

그림002
azure

임시디스크(D드라이브)

근래에 최신 5세대 가상머신의 경우 임시디스크를 제공하지 않는 가상머신도 있으나 일반적인 가상머신은 임시디스크를 제공합니다. 임시디스크는 말그대로 임시 디스크이며 가상머신이 재부팅 되거나 호스트가 변경되는 경우 디스크의 저장된 부분이 휘발성을 가지고 날아가는 저장공간입니다. 

임시 디스크는 하이퍼바이저 소프트웨어를 실행하는 호스트 운영체제에 저장이 되며 영구적인 디스크는 Azure Storage에 저장됩니다. 쉽게 말해 D 라이브로 잡히는 디스크가 임시디스크이며 이 D 드라이브는 가상머신이 재부팅되거나 호스트 변경이 되면 모두 없어집니다. 영구적으로 저장하는 용도로는 절대 사용하면안되며 하이퍼바이저를 실행하는 호스트 운영체제에 저장되므로 빠릅니다. 그림002를 보면 하이퍼바이저 에서 바로 연결이 되어 있는 것을 보시면 쉽게 빠른 이유를 유추할 수 있습니다. 그에 반해   C드라이브(OS 영역)와 E드라이브(데이터영역)은 위치가 Hypervisor 위치가 아닌 Azure Storage 이므로 바로 옆에서 실행되는 D드라이브인(임시디스크)가 가장 빠른 속도를 자랑합니다. 

초기에 임시디스크는 확실하게 빠른 IOPS를 자랑했지만 현재는 영구디스크도 발전해서 임시디스크 만큼 속도가 빠르며 데이터 디스크인 울트라 디스크의 경우 더 빠른 디스크이므로 생각보다 입지가 좁아졌습니다. 그러나 여전히 데이터베이스의 파일을 임시 배치해서 빠르게 사용하는 용도로 사용하기에 매력적인 제품입니다. 그 이외 시나리오에서는 영구적이지 않으므로 좁은 범위에서만 사용 가능합니다.

 

그림003

azure

가상머신과 연결된 3가지 타입의 디스크에 대한 내부 구조를 보여주는 다이어그램입니다. 공식문서에 가상머신의 관리디스크는 3가지로 분류될수 있는데 이중에 캐쉬안된 1번 디스크는 단순하게 디스크 레벨 프로비전과 가상머신과 네트워크 간에 프로비저닝에 따라 IOPS 리밋이 정해집니다. 쉽게 말해서 디스크의 크기에 따라 IOPS 가 정해지는데 이는 프로비저닝 수준을 결정하게 되고 이는 또 가상머신과 네트워크 수준에 따라 리밋이 결정됩니다. 그래서 1번  캐쉬 안된 디스크는 두개 단계로 IOPS가 정해지게 됩니다. 

이것이 왜 중요한가를 아는것이 최고의 조합과 비용을 찾아는 이론 방법이 여기 공식에서 나오게 됩니다. 

2번째 캐쉬된 디스크는 먼저 SSD 수준 프로비저닝이 존재하며 이는 캐쉬된 데이터가 있는지 먼저 요청되고 이 요청이 없다면 1번 캐쉬 안된 디스크처럼 디스크 수준 프로비저닝과 가상머신과 네트워크 간에 프로비저닝에 따라 데이터를 가져옵니다.

 

3번째 로컬과 임시 디스크의 경우 Azure Storage 에서 가져오는것이 아니므로 SSD 수준 프로비전에 따라서 데이터를 가져옵니다.

이런 구조를 잘 이해하고 원하는 시나리오에 맞게 디스크 조합과 가상머신 + 네트워크 조합에 맞춰서 관리디스크를 사용하지 않으면 제대로된 퍼포먼스가 나오지 않으며 비싸고 큰차를 타고 좁은 골목길에서 배달하는 상황을 맞게 될수 있습니다. 

 

결론

일반적으로 관리되는 디스크를 이해하고 IOPs가 원하는 만큼 나오지 않는 경우가 많이 있습니다. 이는 공식문서에서 제공하는 IOPs는 최대 IOPs 이며 매우 이상적인 상황이되어야 최고성능이 나오며 자동차로 비교하자면 연비를 최고 연비만 표시한것과 비슷합니다. 그러므로 최고 연비가 나오길 기대하면 안되며 그 최고 연비가 나오도록 잘 조합한 세팅이 필요합니다.

 

마이크로소프트 공식문서 - Azure Managed Disk

https://docs.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview?WT.mc_id=AZ-MVP-5002667