Windows Server 2008 R2 에서의 VHD 성능에 대한 WritePaper가 나왔습니다.
위의 문서에서는 Windows Server 2008 R2에서 VHD 파일에 대한 성능이 어떻게 향상되었는지에 대한 측정 결과를 설명하고 있습니다.
VHD 파일은 Virtual server 에서 부터 사용되었으며 그 스팩과 사용할 수 있는 API(virtdisk.dll)가 공개되어 있습니다.
The Virtual Disk API In Windows 7
https://msdn.microsoft.com/en-us/magazine/dd569754.aspx
VHD 에는 Fixed, Dynamic, Differencing disk가 있습니다.
Fixed disk 는 offline 에서만 사이즈를 늘릴 수 있으며 줄이는 것은 지원하지 않습니다. 디스크 생성시에 디스크 크기 만큼의 파일을 생성하며 파일을 0으로 초기화 하는 과정이 있어 생성에 시간이 많이 걸립니다.
Dynamicallyy Expanding disk 는 최초에 작은 사이즈의 파일이 생성된 후 디스크의 사용률이 높아지면 크기가 증가되는 것 입니다.
Differencing 은 하나의 부모 디스크를 기준으로 변경사항이 기록되어 있는 다수의 디스크를 만드는 방식 입니다. 변경 사항에 대해서 원본을 보호하거나 Image 배포시에 원본 이미지를 가지고 있는 용도로 사용됩니다.
자세한 성능 측정 결과에 대해서는 문서를 확인해 보시면 될 것 같고 정리를 해 보면
Windows 2008 R2의 VHD 성능이 더 향상 되었다. 이고 RawDisk, RawFile,FixedVHD 등의 성능은 거의 차이가 없습니다. 결국 Disk를 직접 사용하거나 File 을 사용하거나 VHD를 사용하거나 성능의 차이는 별로 없다는 것 입니다. 생각을 한번 해보면 결국 가장 느린 것은 DiskI/O 일 것이므로 그 위에 Software 적으로 되어 있는 것은 큰 영향을 주지 않는 것 같습니다.
하지만 Dynamic disk의 경우 성능이 PhysicalDisk 와 FixedVHD에 비해서 떨어짐을 알 수 있습니다.
저장소 형태 |
장점 |
단점 |
Pass-through Disk | 가장 좋은 성능 Live Migration을 할 때 가장 빠름 낮은 CPU 사용률 매우 큰 디스크 지원 | VM snapshot 지원 안함 하나의 VM이 Disk 전체를 소유 Hyper-V VSS writer에 의해서 Backup 안됨 |
Fixed sized VHD | 높은 성능 간단한 VHD 포맷 관리의 용의성 확장 가능 | 큰 VHD 배포는 스토리지 비용 증가 큰 VHD 생성에 시간이 많이 걸림 크기 줄이는 것을 지원 안함 |
Dynamically expanding or Differencing VHD | 빠른 시간에 생성됨 동적으로 크기 늘어남 작은 VHD 파일 크기 압축 가능 | I/O를 증가 시킴 VHD 파일 증가가 발생하는 Write는 성능 저하 2TB 이상 증가 불가 VHD 를 증가 시키기 위해 VM은 멈추어야 함 Differencing 에서는 VHD 증가 안됨 Defrag 추천되지 않음 |
감사합니다.