<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 19, 2017 at 11:37 PM, Ben Nemec <span dir="ltr"><<a href="mailto:openstack@nemebean.com" target="_blank">openstack@nemebean.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 07/18/2017 08:18 AM, Numan Siddique wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
<br>
On Thu, Jul 13, 2017 at 3:02 PM, Saravanan KR <<a href="mailto:skramaja@redhat.com" target="_blank">skramaja@redhat.com</a> <mailto:<a href="mailto:skramaja@redhat.com" target="_blank">skramaja@redhat.com</a>>> wrote:<br>
<br>
On Tue, Jul 11, 2017 at 11:40 PM, Ben Nemec <<a href="mailto:openstack@nemebean.com" target="_blank">openstack@nemebean.com</a><br></span><div><div class="h5">
<mailto:<a href="mailto:openstack@nemebean.com" target="_blank">openstack@nemebean.com</a><wbr>>> wrote:<br>
><br>
><br>
> On 07/11/2017 10:17 AM, Numan Siddique wrote:<br>
>><br>
>> Hello Tripleo team,<br>
>><br>
>> I have few questios regarding migration from neutron ML2OVS to OVN. Below<br>
>> are some of the requirements<br>
>><br>
>> - We want to migrate an existing depoyment from Neutroon default ML2OVS<br>
>> to OVN<br>
>> - We are targetting this for tripleo Queen's release.<br>
>> - The plan is to first upgrade the tripleo deployment from Pike to<br>
>> Queens with no changes to neutron. i.e with neutron ML2OVS. Once the upgrade<br>
>> is done, we want to migrate to OVN.<br>
>> - The migration process will stop all the neutron agents, configure<br>
>> neutron server to load OVN mechanism driver and start OVN services (with no<br>
>> or very limited datapath downtime).<br>
>> - The migration would be handled by an ansible script. We have a PoC<br>
>> ansible script which can be found here [1]<br>
>><br>
>> And the questions are<br>
>> - (A broad question) - What is the right way to migrate and switch the<br>
>> neutron plugin ? Can the stack upgrade handle the migration as well ?<br>
This is going to be a broader problem as it is also require to migrate<br>
ML2OvS to ODL for NFV deployments, pretty much at the same timeline.<br>
If i understand correctly, this migration involves stopping services<br>
of ML2OVS (like neutron-ovs-agent) and starting the corresponding new<br>
ML2 (OVN or ODL), along with few parameter additions and removals.<br>
<br>
>> - The migration procedure should be part of tripleo ? or can it be a<br>
>> standalone ansible script ? (I presume it should be former).<br>
Each service has upgrade steps which can be associated via ansible<br>
steps. But this is not a service upgrade. It disables an existing<br>
service and enables a new service. So I think, it would need an<br>
explicit disabled service [1], stop the required service. And enabled<br>
the new service.<br>
<br>
>> - If it should be part of the tripleo then what would be the command to do<br>
>> it ? A update stack command with appropriate environment files for OVN ?<br>
>> - In case the migration can be done as a standalone script, how to handle<br>
>> later updates/upgrades since tripleo wouldn't be aware of the migration ?<br>
><br>
I would also discourage doing it standalone.<br>
<br>
Another area which needs to be looked is that, should it be associated<br>
with containers upgrade? May be OVN and ODL can be migrated as<br>
containers only instead of baremetal by default (just a thought, could<br>
have implications to be worked/discussed out).<br>
<br>
Regards,<br>
Saravanan KR<br>
<br>
[1]<br>
<a href="https://github.com/openstack/tripleo-heat-templates/tree/master/puppet/services/disabled" rel="noreferrer" target="_blank">https://github.com/openstack/t<wbr>ripleo-heat-templates/tree/mas<wbr>ter/puppet/services/disabled</a><br>
<<a href="https://github.com/openstack/tripleo-heat-templates/tree/master/puppet/services/disabled" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>tripleo-heat-templates/tree/ma<wbr>ster/puppet/services/disabled</a>><br>
<br>
><br>
> This last point seems like the crux of the discussion here. Sure, you can<br>
> do all kinds of things to your cloud using standalone bits, but<br>
if any of<br>
> them affect things tripleo manages (which this would) then you're<br>
going to<br>
> break on the next stack update.<br>
><br>
> If there are things about the migration that a stack-update can't<br>
handle,<br>
> then the migration process would need to be twofold: 1) Run the<br>
standalone<br>
> bits to do the migration 2) Update the tripleo configuration to<br>
match the<br>
> migrated config so stack-updates work.<br>
><br>
> This is obviously a complex and error-prone process, so I'd strongly<br>
> encourage doing it in a tripleo-native fashion instead if at all<br>
possible.<br>
><br>
<br>
<br>
<br>
Thanks Ben and Saravanan for your comments.<br>
<br>
I did some testing. I first deployed an overcloud with the command [1] and then I ran the command [2] which enables the OVN services. After the completion of [2], all the neutron agents were stopped and all the OVN services were up.<br>
<br>
The question is is this the right way to disable some services and enable some ? or "openstack overcloud update stack" is the right command ?<br>
</div></div></blockquote>
<br>
Re-running the deploy command as you did is the right way to change configuration. The update stack command is just for updating packages.<br>
<br></blockquote><div><br></div><div>Thanks Ben for the confirmation.</div><div><br></div><div>Numan</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
<br>
[1] - openstack overcloud deploy \<br>
--templates /usr/share/openstack-tripleo-h<wbr>eat-templates \<br></span>
--libvirt-type qemu --control-flavor oooq_control --compute-flavor oooq_compute --ceph-storage-flavor oooq_ceph --block-storage-flavor oooq_blockstorage --swift-storage-flavor oooq_objectstorage --timeout 90 -e /home/stack/cloud-names.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/net<wbr>work-isolation.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/net<wbr>-single-nic-with-vlans.yaml -e /home/stack/network-environmen<wbr>t.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/pup<wbr>pet-pacemaker.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/low<wbr>-memory-usage.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/dis<wbr>able-telemetry.yaml --validation-warnings-fatal --compute-scale 1 --control-scale 3 --ntp-server <a href="http://pool.ntp.org" rel="noreferrer" target="_blank">pool.ntp.org</a> <<a href="http://pool.ntp.org" rel="noreferrer" target="_blank">http://pool.ntp.org</a>> \<span class=""><br>
${DEPLOY_ENV_YAML:+-e $DEPLOY_ENV_YAML} "$@" && status_code=0 || status_code=$?<br>
<br>
<br>
[2] - openstack overcloud deploy \<br>
--templates /usr/share/openstack-tripleo-h<wbr>eat-templates \<br></span>
--libvirt-type qemu --control-flavor oooq_control --compute-flavor oooq_compute --ceph-storage-flavor oooq_ceph --block-storage-flavor oooq_blockstorage --swift-storage-flavor oooq_objectstorage --timeout 90 -e /home/stack/cloud-names.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/net<wbr>work-isolation.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/net<wbr>-single-nic-with-vlans.yaml -e /home/stack/network-environmen<wbr>t.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/pup<wbr>pet-pacemaker.yaml */-e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/neu<wbr>tron-ml2-ovn.yaml /*-e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/low<wbr>-memory-usage.yaml -e /usr/share/openstack-tripleo-h<wbr>eat-templates/environments/dis<wbr>able-telemetry.yaml --validation-warnings-fatal --compute-scale 1 --control-scale 3 --ntp-server <a href="http://pool.ntp.org" rel="noreferrer" target="_blank">pool.ntp.org</a> <<a href="http://pool.ntp.org" rel="noreferrer" target="_blank">http://pool.ntp.org</a>> \<span class=""><br>
${DEPLOY_ENV_YAML:+-e $DEPLOY_ENV_YAML} "$@" && status_code=0 || status_code=$?<br>
<br>
<br>
Thanks<br>
Numan<br>
<br>
<br>
>><br>
>><br>
>> Request to provide your comments so that we can move in the right<br>
>> direction.<br>
>><br>
>> [1] -<br>
<a href="https://github.com/openstack/networking-ovn/tree/master/migration" rel="noreferrer" target="_blank">https://github.com/openstack/n<wbr>etworking-ovn/tree/master/migr<wbr>ation</a><br>
<<a href="https://github.com/openstack/networking-ovn/tree/master/migration" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>networking-ovn/tree/master/mig<wbr>ration</a>><br>
>><br>
>> Thanks<br>
>> Numan<br>
>><br>
>><br>
>><br>
>><br>
______________________________<wbr>______________________________<wbr>______________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe:<br>
<a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br></span>
<<a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">http://OpenStack-dev-request@<wbr>lists.openstack.org?subject:un<wbr>subscribe</a>><br>
>><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><span class=""><br>
<<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cg<wbr>i-bin/mailman/listinfo/opensta<wbr>ck-dev</a>><br>
>><br>
><br>
><br>
______________________________<wbr>______________________________<wbr>______________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe:<br>
<a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br></span>
<<a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">http://OpenStack-dev-request@<wbr>lists.openstack.org?subject:un<wbr>subscribe</a>><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><span class=""><br>
<<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cg<wbr>i-bin/mailman/listinfo/opensta<wbr>ck-dev</a>><br>
<br>
<br>
<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
<br>
</span></blockquote>
</blockquote></div><br></div></div>