oVirt on IBM POWER (PPC64) - new feature contributors

Itamar Heim iheim at redhat.com
Fri Jul 12 15:09:46 UTC 2013


On 07/12/2013 03:52 PM, Leonardo Bianconi wrote:
>
>
>> -----Original Message-----
>> From: Itamar Heim [mailto:iheim at redhat.com]
>> Sent: quinta-feira, 11 de julho de 2013 14:18
>> To: Leonardo Bianconi
>> Cc: Michal Skrivanek; arch at ovirt.org; Roy Golan
>> Subject: Re: oVirt on IBM POWER (PPC64) - new feature contributors
>>
>> On 07/11/2013 08:04 PM, Leonardo Bianconi wrote:
>>>
>>>
>>> -----Original Message-----
>>> From: Itamar Heim [mailto:iheim at redhat.com]
>>> Sent: sábado, 25 de maio de 2013 10:12
>>> To: Michal Skrivanek
>>> Cc: Leonardo Bianconi; arch at ovirt.org; Roy Golan
>>> Subject: Re: oVirt on IBM POWER (PPC64) - new feature contributors
>>>
>>> On 05/22/2013 10:46 AM, Michal Skrivanek wrote:
>>>>
>>>> On May 21, 2013, at 17:33 , Leonardo Bianconi <leonardo.bianconi at eldorado.org.br> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> We are planning to deliver support for PPC64 in 4 phases. We will manage to deliver a set of patches at the end of each phase.
>>>>>
>>>>> Phase 1
>>>>>
>>>>> 	 Change oVirt to handle other architectures by encapsulating all the architecture specific code and queries about the
>> capabilities of the hypervisor into a new class called ArchStrategy (based on the Strategy Design Pattern). Every operation involving
>> clusters and hosts will be validated by this new class. Some hard-coded parameters are going to be replaced by queries in the backend
>> in order to accommodate the support for new architectures into the engine.
>>>>
>>>> If you would like to discuss some internals or if anything is unclear please feel free to set up a quick mtg with myself, Omer and
>> Roy.
>>>> Sometimes (e.g. in the case of VmInterfaceType as mentioned on feature page) it would be actually beneficial for oVirt on x86 as
>> well to have a greater flexibility directly in the code, without Strategy encapsulation.
>>>>
>>>>>
>>>>>
>>>>> Phase 2
>>>>>
>>>>> 	Currently, each host hypervisor capabilities are obtained using hard-coded data structures. These structures will be replaced
>> either by some form of integration with libosinfo or by reading internal configuration files describing these capabilities. It will be
>> handled after Roy's patch.
>>>> Roy's osinfo will soon be merged.
>>>
>>>> link to patches?
>>>> does it cover adding arch at cluster level?
>>>
>>> Sorry about the late reply. We have already handled the gap between the osinfo patch, the architecture parameters are being
>> stored the same way as the OS info.
>>>
>>> We didn't add a specific architecture field on each cluster, because based on the cpu name and cluster compatibility version of the
>> cluster the architecture can be determined. Do you think it is really necessary to add another way to describe the architecture of each
>> cluster?
>>
>> i think it would be much easier to specify the list of OSs per arch type, rather than per list of cpu's. it will also be easier to know if a VM
>> can be created from a template based on their arch, rather than cpu lists (since x86_64 has a new cpu family every 6 months usually).
>
> We are not specifying the OS (or any other architecture specific detail) based on the cpu family directly. The ServerCpuList was modified to associate each
> processor family name to an architecture (currently there are only two possible values for this association, x86_64 and ppc64). For example:
>
> "3:Intel Conroe Family:vmx,nx,model_Conroe:Conroe:x86_64"
>
> Every architecture specific operation checks which is the associated architecture, and all the operations are done based only on this value. When initializing the engine this parameter is read by CpuFlagsManagerHandler. The OS property file (osinfo-defaults.properties) contains the architecture for each OS, so internally the ArchStrategy (the class responsible for abstracting architecture specific code) checks the compatibility based on the architecture name, not on the cpu family.

yes, i saw that, and it will work (just more code level comparisons than 
db ones, but as i said, just a matter of taste and i'm not strongly 
opinionated about this).

the question is if arch specific are part of the OS (there is a 
RHEL6_x64 and a RHEL6_ppc7 OSs).

if we separate the OSs, than why do we need the arch level repo, as you 
can do the limitation on the base default_os_ppc7?

the other concern is behavior with export/import.
since some issues are also discussed at patch level - lets move there 
and come back here if there is a conceptual issue worth revisiting.

one question though to help me read the patches - what guest OSs can run 
on ppc7 arch (fedora? .el6? debian? other (i know windows isn't 
relevant, but what to expect there)?

Thanks,
    Itamar

>
>> similarly, it will be easier to know if you can move a VM between two clusters, according to their arch, rather trying to understand if
>> their cpu families allow that or not (you can move a VM between intel and amd cpu families).
>
> Actually we have already thought about it. The ArchStrategy class has a method to compare two CPU families and return if they are compatible. On this case, like above, it is using the architecture name added for each cpu family on the ServerCpuList and will be compatible only if both CPUs have the same architecture.
>
> Another advantage besides having the architecture encapsulated in the ArchStrategy is that every place on the code that the cpu name and compatibility version is accessible, the ArchStrategy can be obtained and there is no need to retrieve the cluster object.
>
>
>
> We are checking the comments on the patch and we will reply soon.
>
>>
>> so i think cluster arch is a good grouping for cpu families that are compatible.
>>
>> (and I wonder if anyone will get to add an arm arch as well...)
>>
>> in any case, I was very happy to see the set of patches arriving.
>>
>> Thanks,
>>     Itamar
>>
>>>
>>>>
>>>>>
>>>>>
>>>>> Phase 3
>>>>>
>>>>> 	The code for providing the support for IBM POWER systems will be added. The encapsulation done in the previous phase will
>> reduce the effort to include this feature into the engine. The other changes that will be introduced in this phase include:
>>>>>
>>>>> 	- Modifications in the frontend to avoid running a VM created on a POWER host in a x86-64 host (and vice-versa),
>>>>> 	- All the dynamically provided capacities of the first phase will be implemented according to the capacities of the QEMU/KVM
>> on POWER
>>>>> 	- The POWER processors will be available as an option in the list
>>>>> of processor names (this will imply in significant changes in the
>>>>> backend)
>>>>>
>>>>>
>>>>> Phase 4
>>>>>
>>>>> 	Adapt secondary features to polish the support for POWER:
>>>>>
>>>>> 	- OVF import and export of VMs running in POWER hosts
>>>>> 	- Dynamic searches capable of finding hosts, pools, vms and
>>>>> clusters according to their architectures
>>>>>
>>>>>
>>>>> Is there any ongoing oVirt architecture refactoring ? (that may
>>>>> conflict with Phase 1, for instance)
>>>> no, nothing major going on
>>>>
>>>>>
>>>>> Any comments ?
>>>> Looking forward to your patches!:-)
>>>>
>>>> Thanks,
>>>> michal
>>>>
>>>>>
>>>>> Regards,
>>>>> Vitor (vitor.lima at eldorado.org.br) / Leonardo
>>>>> (leonardo.bianconi at eldorado.org.br)
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Dave Neary [mailto:dneary at redhat.com]
>>>>> Sent: quarta-feira, 15 de maio de 2013 12:25
>>>>> To: Leonardo Bianconi
>>>>> Cc: arch at ovirt.org; Adam Litke
>>>>> Subject: Re: oVirt on IBM POWER (PPC64) - new feature contributors
>>>>>
>>>>> Hi,
>>>>>
>>>>> On 05/14/2013 08:05 PM, Leonardo Bianconi wrote:
>>>>>> We would like to introduce ourselves: Leonardo Bianconi and Vitor Lima.
>>>>>
>>>>> Welcome!
>>>>>
>>>>>> We would like to work on the features "Engine support for PPC64" (http://wiki.ovirt.org/Features/Engine_support_for_PPC64)
>> and the "Vdsm for PPC64" (http://wiki.ovirt.org/Features/Vdsm_for_PPC64). This work has already been started by some developers
>> at IBM.
>>>>>
>>>>> <snip>
>>>>>
>>>>>> About libosinfo:
>>>>>> =============
>>>>>>
>>>>>> In the previous discussion about this topic (http://lists.ovirt.org/pipermail/arch/2012-November/000976.html), occurred in
>> November 2012, it was suggested that integrating the libosinfo into the engine would be a better way to handle the differences
>> between the architectures that would be supported in the future.
>>>>>>
>>>>>> Is this approach still valid? If so, when will it be available? It seems to be a dependency for oVirt "Engine_support_for_PPC64"
>> feature implementation.
>>>>>
>>>>>
>>>>> This is great news. I don't know who, specifically, has been working on this issue in IBM - perhaps Adam Litke (CCed) can update
>> you on the progress that has been made.
>>>>
>>>>>
>>>>> Cheers,
>>>>> Dave.
>>>>>
>>>>> --
>>>>> Dave Neary - Community Action and Impact Open Source and Standards,
>>>>> Red Hat - http://community.redhat.com
>>>>> Ph: +33 9 50 71 55 62 / Cell: +33 6 77 01 92 13
>>>>> _______________________________________________
>>>>> Arch mailing list
>>>>> Arch at ovirt.org
>>>>> http://lists.ovirt.org/mailman/listinfo/arch
>>>>
>>>> _______________________________________________
>>>> Arch mailing list
>>>> Arch at ovirt.org
>>>> http://lists.ovirt.org/mailman/listinfo/arch
>>>>
>>>
>




More information about the Arch mailing list