You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Donal Lafferty <do...@citrix.com> on 2013/06/26 14:43:23 UTC

Can Hypervisors have multiple image formats?

Judging by StorageManagerImpl.getHypervisorTypeFromFormat, each format can only be used by one Hypervisor type.

The reason I ask, is that Hyper-V 2012 supports a legacy disk image type called 'VHD' in addition to 'VHDX'.  It's straightforward to add VHDX to the  ImageFormat enum, but less straightforward when it comes to adding a VHD image type.

Any guidance would be most welcome.


E.g. from StorageManagerImpl.java

    @Override
    public HypervisorType getHypervisorTypeFromFormat(ImageFormat format) {

        if (format == null) {
            return HypervisorType.None;
        }

        if (format == ImageFormat.VHD) {
            return HypervisorType.XenServer;
        } else if (format == ImageFormat.OVA) {
            return HypervisorType.VMware;
        } else if (format == ImageFormat.QCOW2) {
            return HypervisorType.KVM;
        } else if (format == ImageFormat.RAW) {
            return HypervisorType.Ovm;
        } else {
            return HypervisorType.None;
        }
    }

Re: Can Hypervisors have multiple image formats?

Posted by Ahmad Emneina <ae...@gmail.com>.
I would love to see multiple image formats opened up for hypervisors. Live
Wido said... KVM alone can support a myriad of image formats. Using ceph
requires an import of qcow2 and a conversion of that to RAW on every deploy
is incredibly slow/wasteful/painful to endure.


On Wed, Jun 26, 2013 at 3:06 PM, Wido den Hollander <wi...@widodh.nl> wrote:

>
>
> On 06/26/2013 02:43 PM, Donal Lafferty wrote:
>
>> Judging by StorageManagerImpl.**getHypervisorTypeFromFormat, each format
>> can only be used by one Hypervisor type.
>>
>> The reason I ask, is that Hyper-V 2012 supports a legacy disk image type
>> called 'VHD' in addition to 'VHDX'.  It's straightforward to add VHDX to
>> the  ImageFormat enum, but less straightforward when it comes to adding a
>> VHD image type.
>>
>>
> That is odd indeed. Any insight on this would be welcome, since I know
> that slowly QCOW3 is being worked on, so at some point we will want to
> support QCOW2 and QCOW3 for KVM.
>
> Other then QCOW2, with RBD (Ceph) you have to use RAW since it's native
> RBD. So simply assuming that with KVM it will always be QCOW2 isn't a safe
> bet.
>
> Wido
>
>
>  Any guidance would be most welcome.
>>
>>
>> E.g. from StorageManagerImpl.java
>>
>>      @Override
>>      public HypervisorType getHypervisorTypeFromFormat(**ImageFormat
>> format) {
>>
>>          if (format == null) {
>>              return HypervisorType.None;
>>          }
>>
>>          if (format == ImageFormat.VHD) {
>>              return HypervisorType.XenServer;
>>          } else if (format == ImageFormat.OVA) {
>>              return HypervisorType.VMware;
>>          } else if (format == ImageFormat.QCOW2) {
>>              return HypervisorType.KVM;
>>          } else if (format == ImageFormat.RAW) {
>>              return HypervisorType.Ovm;
>>          } else {
>>              return HypervisorType.None;
>>          }
>>      }
>>
>>

Re: Can Hypervisors have multiple image formats?

Posted by Wido den Hollander <wi...@widodh.nl>.

On 06/26/2013 02:43 PM, Donal Lafferty wrote:
> Judging by StorageManagerImpl.getHypervisorTypeFromFormat, each format can only be used by one Hypervisor type.
>
> The reason I ask, is that Hyper-V 2012 supports a legacy disk image type called 'VHD' in addition to 'VHDX'.  It's straightforward to add VHDX to the  ImageFormat enum, but less straightforward when it comes to adding a VHD image type.
>

That is odd indeed. Any insight on this would be welcome, since I know 
that slowly QCOW3 is being worked on, so at some point we will want to 
support QCOW2 and QCOW3 for KVM.

Other then QCOW2, with RBD (Ceph) you have to use RAW since it's native 
RBD. So simply assuming that with KVM it will always be QCOW2 isn't a 
safe bet.

Wido

> Any guidance would be most welcome.
>
>
> E.g. from StorageManagerImpl.java
>
>      @Override
>      public HypervisorType getHypervisorTypeFromFormat(ImageFormat format) {
>
>          if (format == null) {
>              return HypervisorType.None;
>          }
>
>          if (format == ImageFormat.VHD) {
>              return HypervisorType.XenServer;
>          } else if (format == ImageFormat.OVA) {
>              return HypervisorType.VMware;
>          } else if (format == ImageFormat.QCOW2) {
>              return HypervisorType.KVM;
>          } else if (format == ImageFormat.RAW) {
>              return HypervisorType.Ovm;
>          } else {
>              return HypervisorType.None;
>          }
>      }
>