저는 윈도우 7 초창기부터 SSD에 VHD 부팅을 사용했기 때문에, 사실 VHD라고 물리 디스크에 비해 퍼포먼스가 떨어진다는 느낌은 별로 받지 못했습니다. 하지만 VHD에 관심을 가지게 된 분들은 가장 먼저 퍼포먼스에 대한 걱정부터 하더군요.

검색하다 보니 이미 작년 3월에 관련 자료가 나와 있었는데...

http://download.microsoft.com/download/0/7/7/0778C0BB-5281-4390-92CD-EC138A18F2F9/WS08_R2_VHD_Performance_WhitePaper.docx

전부 읽어보시면 좋겠지만, 귀찮으시다면 중간에 나오는 도표만 보셔도 되겠습니다. 결과적으로 VHD 부팅이라 해서 성능이 떨어지는 부분은 거의 없어 보이네요. 물론 Fixed 방식에서 그렇다는 얘기고... ^^;; 저처럼 Expandable 방식에 Differencing VHD 부팅을 사용한다면 성능 저하는 좀 있습니다. 하지만 저는 SSD라서 성능 저하를 거의 느끼지 못하고 있지요. ^^;;


우선 아래 자료를 보시면 Fixed VHD의 경우 물리 디스크와 거의 차이가 없음을 알 수 있습니다.



하지만 Expandable VHD는 IOPS가 대략 80% 정도 나오고 있습니다. Differencing VHD 역시 Expandable 방식이기 때문에 이 결과를 보시면 되겠습니다.



아래 자료는 실제로 VHD 부팅을 했을 때 프로그램 구동 환경에서 IOPS 측정값입니다. 실질적으로 가장 중요한 테스트라 할 수 있는데요, 보시다시피 Fixed 방식은 물리 디스크와 거의 차이가 없지만 Expandable 방식은 80~90% 정도의 성능을 보이고 있습니다. 그래도 성능이 그렇게 떨어지는 것은 아니죠?



마지막으로 Expandable 방식의 장단점을 정리한 표입니다.

Dynamically expanding or

Differencing VHD

·         Good performance

·         Quicker to create  than fixed sized VHD

·         Grow dynamically to save disk space and provide efficient storage usage.

·         Smaller VHD file size makes it more nimble in terms of transporting across the network.

·         Blocks of full zeros will not get allocated and thus save the space under certain circumstances.

·         Compact operation is available to reduce the actual physical file size.

·         Interleaving of meta-data and data blocks may cause I/O alignment issues.

·         Write performance may suffer during VHD expanding.

·         Dynamically expanding and differencing VHDs cannot exceed 2040GB

·         May get VM paused or VHD yanked out if disk space is running out due to the dynamic growth.

·         Shrinking the virtual capacity is not supported.

·         Expanding is not available for differencing VHDs due to the inherent size limitation of parent disk.

·         Defrag is not recommended due to inherent re-directional layer.


장점은 한마디로 요약하자면 공간의 효율적 활용이라 볼 수 있고, 단점은 디스크 단편화와 성능 저하 정도가 되겠습니다.


제게 윈도우 7을 사용하는 이유를 꼽으라면 단연 0순위가 바로 VHD 부팅, 그것도 Differencing VHD 부팅 때문입니다. 나머지 편의성들은 그 다음입니다. 하지만 개인적으로 저는 SSD 사용자에게만 VHD 부팅을 권장합니다. 일반 하드에서 Expandable 부모에 Differencing 자식까지 붙이면 확실히 하드디스크 긁는 소리가 심할 것 같습니다. 물론 Fixed 부모에 Differencing 자식이라면 상황이 좀 나아지겠지만... SSD는 용량이 작아서 그렇다 쳐도 일반 하드에서는 그다지 용량 걱정할 일이 없으니 굳이 Differencing VHD 부팅을 활용하고 싶으시다면 일반 하드 사용자는 Fixed 부모 + Differencing 자식 조합을 추천합니다.