)]}'
{"specs/juno/neutron-migration.rst":[{"author":{"_account_id":2227,"name":"Ed Hall","email":"edhall@yahoo-inc.com","username":"edhall"},"change_message_id":"94a822a04e0deabfc7b009246fcd54e70699be8b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* Neutron process \u0026 agents should be running in parallel with Nova-network"},{"line_number":40,"context_line":"* nova.conf should contain all required data to reach Neutron"},{"line_number":41,"context_line":"* Nova should be restarted to have Neutron API as default network API"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"After Neutron becomes the default network API all new instances will be"},{"line_number":44,"context_line":"handled by Neutron while existing instances will still need to be handled by"},{"line_number":45,"context_line":"Nova-network (until migrated). There needs to be a way to choose proper"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_cc77f239","line":42,"updated":"2014-06-26 23:10:15.000000000","message":"As proposed, no IP allocation/deallocation can take place during migration since existing allocations in Nova won\u0027t be replicated in Neutron until all instances are migrated. Thus there needs to be a mechanism to block any IP allocations or deallocations. This implies that certain Nova API operations will be non-functional during the migration period.","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"bb02a6bfeafa5b47e4b1d6431fbba796ff878dea","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* Neutron process \u0026 agents should be running in parallel with Nova-network"},{"line_number":40,"context_line":"* nova.conf should contain all required data to reach Neutron"},{"line_number":41,"context_line":"* Nova should be restarted to have Neutron API as default network API"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"After Neutron becomes the default network API all new instances will be"},{"line_number":44,"context_line":"handled by Neutron while existing instances will still need to be handled by"},{"line_number":45,"context_line":"Nova-network (until migrated). There needs to be a way to choose proper"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_20d68df2","line":42,"in_reply_to":"1ae5cdf2_cc77f239","updated":"2014-06-27 11:24:35.000000000","message":"Yes, with current proposal all IP allocations (incliuding new instance creation) should not be allowed during migration period, I\u0027ll update the spec. Not sure however how IP deallocation may break things, can you please clarify this a bit? I must be missing something obvios..","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":2227,"name":"Ed Hall","email":"edhall@yahoo-inc.com","username":"edhall"},"change_message_id":"94a822a04e0deabfc7b009246fcd54e70699be8b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"network API (Neutron or Nova-network) to use when working with particular"},{"line_number":47,"context_line":"instance. The proposal is to check instance\u0027s network info cache attributes"},{"line_number":48,"context_line":"to get some key signs (network_uuid, bridge name, subnets, etc)."},{"line_number":49,"context_line":"This may be a decorator for network API functions which will do such check."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The migration will contain following steps:"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_2cedb68e","line":49,"updated":"2014-06-26 23:10:15.000000000","message":"Which operations would be supported via the network API such that this determination would be required? I\u0027d assume that only queries would be allowed for unmigrated instances.","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"bb02a6bfeafa5b47e4b1d6431fbba796ff878dea","unresolved":false,"context_lines":[{"line_number":46,"context_line":"network API (Neutron or Nova-network) to use when working with particular"},{"line_number":47,"context_line":"instance. The proposal is to check instance\u0027s network info cache attributes"},{"line_number":48,"context_line":"to get some key signs (network_uuid, bridge name, subnets, etc)."},{"line_number":49,"context_line":"This may be a decorator for network API functions which will do such check."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The migration will contain following steps:"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_be09da2c","line":49,"in_reply_to":"1ae5cdf2_2cedb68e","updated":"2014-06-27 11:24:35.000000000","message":"What issues do you see with allowing network operations (which do not require ip allocations) for migrated instances?","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":2227,"name":"Ed Hall","email":"edhall@yahoo-inc.com","username":"edhall"},"change_message_id":"94a822a04e0deabfc7b009246fcd54e70699be8b","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":54,"context_line":"  floating_ips"},{"line_number":55,"context_line":"* ensure identical security group exists in Neutron"},{"line_number":56,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"},{"line_number":57,"context_line":"  corresponding means port with the same ip/mac addresses, security groups"},{"line_number":58,"context_line":"* plug port"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_cc59b25c","line":55,"updated":"2014-06-26 23:10:15.000000000","message":"I think that handling security groups and floating IPs might be deferred to a later iteration of this mechanism. Once the core functionality is working, migration of these elements could be added. There are certainly users who would be able to utilize a migration mechanism but don\u0027t use security groups or floating IPs. Such a path would also make reviewing the resulting patches easier and more focused.","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"bb02a6bfeafa5b47e4b1d6431fbba796ff878dea","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":54,"context_line":"  floating_ips"},{"line_number":55,"context_line":"* ensure identical security group exists in Neutron"},{"line_number":56,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"},{"line_number":57,"context_line":"  corresponding means port with the same ip/mac addresses, security groups"},{"line_number":58,"context_line":"* plug port"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_03fefb37","line":55,"in_reply_to":"1ae5cdf2_cc59b25c","updated":"2014-06-27 11:24:35.000000000","message":"I see your point and it\u0027s absolutely fair for those who don\u0027t use security groups and floating ips.\n\nBut in case security groups are used, migrating such an instance to Neutron network without applying the same security rules doesn\u0027t meet user expectations and may introduce security vulnerabilities, so I believe we must check for security groups and ensure they are applied on a Neutron port before instance migration.\n\nAnyway if we rely that all corresponding networks/security groups/floating ips are created in Neutron on migration phase 1 (which is not part of this blueprint) then during instance migration we only need to properly map and associate security groups and floating ips to the port, which should not be a big deal.","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":2227,"name":"Ed Hall","email":"edhall@yahoo-inc.com","username":"edhall"},"change_message_id":"94a822a04e0deabfc7b009246fcd54e70699be8b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"* could not allocate a neutron port with target ip - ip is already allocated"},{"line_number":68,"context_line":"  (dhcp port)"},{"line_number":69,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":70,"context_line":"  external net (router gateway)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":73,"context_line":"ip and floating_ip to use when migrating an instance."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_c76d0d9b","line":70,"updated":"2014-06-26 23:10:15.000000000","message":"If IPs are allocated or deallocated (e.g. via new or deleted instances) won\u0027t these failures be common? But if allocated IPs remain stable -- API operations that affect them are suspended as suggested above -- these failures should be \"can\u0027t happen\" events as long as Neutron networks match Nova\u0027s.","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"bb02a6bfeafa5b47e4b1d6431fbba796ff878dea","unresolved":false,"context_lines":[{"line_number":67,"context_line":"* could not allocate a neutron port with target ip - ip is already allocated"},{"line_number":68,"context_line":"  (dhcp port)"},{"line_number":69,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":70,"context_line":"  external net (router gateway)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":73,"context_line":"ip and floating_ip to use when migrating an instance."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_1e72ce11","line":70,"in_reply_to":"1ae5cdf2_c76d0d9b","updated":"2014-06-27 11:24:35.000000000","message":"Again not sure how deallocation may break things. As for ip allocation - even if we handle them as you propose (I like the proposal BTW) these failures may still happen due to the fact that Neutron uses additional ip address for dhcp port on a network and also additional ips on external network for routers external gateways","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":2227,"name":"Ed Hall","email":"edhall@yahoo-inc.com","username":"edhall"},"change_message_id":"94a822a04e0deabfc7b009246fcd54e70699be8b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"will be based on OVS, so that was the primary reason to not go with this"},{"line_number":91,"context_line":"option."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Data model impact"},{"line_number":95,"context_line":"-----------------"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_c7c50d3e","line":93,"updated":"2014-06-26 23:10:15.000000000","message":"I\u0027d propose another alternative which should avoid the need to suppress new IP allocations:\n\n1) continue using Nova to allocate/deallocate IPs until migration is complete.\n\n2) use Neutron to actually set up new instances, using the IP that Nova allocated\n\n3) Perform migration operations as you have specified\n\n4) Other Nova API operations that utilize the network API are routed appropriately according to whether the instance is migrated (or created during the migration process) or unmigrated\n\n5) Once all instances have been allocated, cut over to using the Neutron API and shut down nova-network for good\n\nHandling other elements of migration (that I suggested be deferred, such as floating IPs and security groups) would be unaffected by this procedure.","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"bb02a6bfeafa5b47e4b1d6431fbba796ff878dea","unresolved":false,"context_lines":[{"line_number":90,"context_line":"will be based on OVS, so that was the primary reason to not go with this"},{"line_number":91,"context_line":"option."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Data model impact"},{"line_number":95,"context_line":"-----------------"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_59fe3006","line":93,"in_reply_to":"1ae5cdf2_c7c50d3e","updated":"2014-06-27 11:24:35.000000000","message":"I\u0027m definitely in favor of this proposal. I\u0027ll look into how it can be implemented, if not too complex we may go with it right in the first iteration, otherwise I think we can always add this improvement at some point later (again, better for review)","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":2227,"name":"Ed Hall","email":"edhall@yahoo-inc.com","username":"edhall"},"change_message_id":"94a822a04e0deabfc7b009246fcd54e70699be8b","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Start Neutron service and agents"},{"line_number":196,"context_line":"* Create target Neutron network, external network and router if needed"},{"line_number":197,"context_line":"* Reconfigure Nova-compute to use Neutron as default network API"},{"line_number":198,"context_line":"   * network_api_class \u003d nova.network.neutronv2.api.API"},{"line_number":199,"context_line":"   * service_neutron_metadata_proxy \u003d True"},{"line_number":200,"context_line":"   * security_group_api \u003d neutron"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_076ff528","line":197,"updated":"2014-06-26 23:10:15.000000000","message":"If my suggested alternative is followed, this would instead be configuring a new API that wraps the logic for utilizing Nova\u0027s network API for allocation and Neutron for actually allocation and plugging while the \"migrating_to_neutron\" option is True","commit_id":"c7a693c5e4c4389141c624815bf9e0c981c0ece3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1dce62f78951981ee1bb1feda6d98d399cc3db5f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternative which should avoid the need to suppress new IP allocations:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* continue using Nova to allocate/deallocate IPs until migration is complete"},{"line_number":63,"context_line":"* use Neutron to actually set up new instances, using the IP that Nova"}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_8a55501f","line":60,"updated":"2014-07-01 14:52:51.000000000","message":"Please move to the alternatives section. Makes it clear what is actually being implemented as part of this proposal.","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"223bb24a9af23a801f4f90fce5cf4ce269b941d3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternative which should avoid the need to suppress new IP allocations:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* continue using Nova to allocate/deallocate IPs until migration is complete"},{"line_number":63,"context_line":"* use Neutron to actually set up new instances, using the IP that Nova"}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_19f252d2","line":60,"in_reply_to":"baada198_8a55501f","updated":"2014-07-03 14:18:09.000000000","message":"Done","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1dce62f78951981ee1bb1feda6d98d399cc3db5f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":81,"context_line":"  floating ip"},{"line_number":82,"context_line":"* plug port"},{"line_number":83,"context_line":"* lively update instance vif device using libvirt (switch bridge on tap device)"},{"line_number":84,"context_line":"* update instance info cache with neutron vif data"},{"line_number":85,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_6a2f1ca2","line":83,"updated":"2014-07-01 14:52:51.000000000","message":"we need a plan for all supported hypervisors","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"223bb24a9af23a801f4f90fce5cf4ce269b941d3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":81,"context_line":"  floating ip"},{"line_number":82,"context_line":"* plug port"},{"line_number":83,"context_line":"* lively update instance vif device using libvirt (switch bridge on tap device)"},{"line_number":84,"context_line":"* update instance info cache with neutron vif data"},{"line_number":85,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_99e90283","line":83,"in_reply_to":"baada198_6a2f1ca2","updated":"2014-07-03 14:18:09.000000000","message":"This may be a known limitation of the neutron migration, I think support for other compute drivers may be added incrementally","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1dce62f78951981ee1bb1feda6d98d399cc3db5f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"REST API impact"},{"line_number":123,"context_line":"---------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* New action in AdminActions v2 API extension:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  * Name: os-migrateToNeutron"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_c51739a2","line":125,"updated":"2014-07-01 14:52:51.000000000","message":"it feels like over kill to have a rest API.\n\ncould we not do this with nova-manage, or similar kinds of scripts.","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"223bb24a9af23a801f4f90fce5cf4ce269b941d3","unresolved":false,"context_lines":[{"line_number":122,"context_line":"REST API impact"},{"line_number":123,"context_line":"---------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* New action in AdminActions v2 API extension:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  * Name: os-migrateToNeutron"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_5c4e7870","line":125,"in_reply_to":"baada198_c51739a2","updated":"2014-07-03 14:18:09.000000000","message":"Well, migration is a rather complex operation and goes deeply in code and Nova internal processes. nova-manage seems to be intended for some simplier things and so I thought adding neutron migration as an admin action will be the most smoth path.","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"e41ace3629ee8b2d476f13b38fdd26c958eab08d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* JSON schema definition for the body data::"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    {"},{"line_number":170,"context_line":"        \"os-migrateToNeutron\": {"},{"line_number":171,"context_line":"            \"network_id\": \"274a6c33-dee9-457e-be51-7d726d603c10\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_ba2fbba0","line":168,"updated":"2014-07-01 17:03:40.000000000","message":"What if the VM being migrated has multiple NICs ?","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"223bb24a9af23a801f4f90fce5cf4ce269b941d3","unresolved":false,"context_lines":[{"line_number":165,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* JSON schema definition for the body data::"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    {"},{"line_number":170,"context_line":"        \"os-migrateToNeutron\": {"},{"line_number":171,"context_line":"            \"network_id\": \"274a6c33-dee9-457e-be51-7d726d603c10\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_52e63116","line":168,"in_reply_to":"baada198_ba2fbba0","updated":"2014-07-03 14:18:09.000000000","message":"Good question. I was trying to keep things as simple as possible for the first variant of the migration. But yes, multiple NICs case should be described in the spec. I\u0027m thinking of adding optional parameter \u003csource_network_id\u003e so that migration is performed for only NIC(s) from this network to specified neutron network.","commit_id":"9f6f380d9dfd6aba692a09ce0dbea950113e7662"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"migrate running instances from Nova-network to Neutron."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova-network deprecation process requires Neutron to reach full feature parity"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_b74b1b58","line":17,"updated":"2014-07-10 21:09:59.000000000","message":"Is there more detail available regarding the parity requirement for automatic migration?  There isn\u0027t mention of \u0027live\u0027 migration being a requirement, but that would appear to be specified in the design.  Based on our discussion, maybe it makes sense to make it explicit that the migration will allow instances to stay up during the process but that not guarantee of connectivity will be provided during that time.\n\nIt might also be helpful to know if the problem could be constrained to specific nova-network configuration(s) (e.g. vlanmanager/non-ha), at least initially, to  allow for more focused test planning.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":14,"context_line":"migrate running instances from Nova-network to Neutron."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova-network deprecation process requires Neutron to reach full feature parity"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_17104000","line":17,"in_reply_to":"baada198_b74b1b58","updated":"2014-07-11 13:33:56.000000000","message":"This etherpad contains some details on the requirements for the migration: https://etherpad.openstack.org/p/neutron-nova-parity. I\u0027ll add more details to the description.\n\nOn constraning the problem  - this seems to go  a little bit out of scope of this spec which is about a single instance migration rather than a full deloyment migration. I should be more specific about this in the problem description.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova-network deprecation process requires Neutron to reach full feature parity"},{"line_number":21,"context_line":"with Nova-network and as part of parity plan there needs to be a way to"},{"line_number":22,"context_line":"automatically migrate existing deployments to Neutron. This will likely"},{"line_number":23,"context_line":"involve some work on both Nova and Neutron sides as well as on orchestration"},{"line_number":24,"context_line":"level."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_d931a80c","line":21,"updated":"2014-07-10 21:09:59.000000000","message":"parity plan -\u003e the parity plan","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Nova-network deprecation process requires Neutron to reach full feature parity"},{"line_number":21,"context_line":"with Nova-network and as part of parity plan there needs to be a way to"},{"line_number":22,"context_line":"automatically migrate existing deployments to Neutron. This will likely"},{"line_number":23,"context_line":"involve some work on both Nova and Neutron sides as well as on orchestration"},{"line_number":24,"context_line":"level."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_77f41ccf","line":21,"in_reply_to":"baada198_d931a80c","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Nova-network deprecation process requires Neutron to reach full feature parity"},{"line_number":21,"context_line":"with Nova-network and as part of parity plan there needs to be a way to"},{"line_number":22,"context_line":"automatically migrate existing deployments to Neutron. This will likely"},{"line_number":23,"context_line":"involve some work on both Nova and Neutron sides as well as on orchestration"},{"line_number":24,"context_line":"level."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_19132067","line":23,"updated":"2014-07-10 21:09:59.000000000","message":"involve some work on -\u003e require changes to\n\nsides -\u003e  \n\non orchestration level -\u003e support at the orchestration level","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Nova-network deprecation process requires Neutron to reach full feature parity"},{"line_number":21,"context_line":"with Nova-network and as part of parity plan there needs to be a way to"},{"line_number":22,"context_line":"automatically migrate existing deployments to Neutron. This will likely"},{"line_number":23,"context_line":"involve some work on both Nova and Neutron sides as well as on orchestration"},{"line_number":24,"context_line":"level."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_b7feb4ac","line":23,"in_reply_to":"baada198_19132067","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Current proposal describes an approach to migrate one running instance lively"},{"line_number":31,"context_line":"to a specified Neutron network. This can then be consumed by orchestration"},{"line_number":32,"context_line":"level for bulk migrations. Creating and configuring proper Neutron network is"},{"line_number":33,"context_line":"out of scope of this document."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_1ccb0ea6","line":30,"updated":"2014-07-10 21:09:59.000000000","message":"Current -\u003e The current\n\nmigrate -\u003e perform a live migration of\n\nlively -\u003e","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Current proposal describes an approach to migrate one running instance lively"},{"line_number":31,"context_line":"to a specified Neutron network. This can then be consumed by orchestration"},{"line_number":32,"context_line":"level for bulk migrations. Creating and configuring proper Neutron network is"},{"line_number":33,"context_line":"out of scope of this document."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_d72c084d","line":30,"in_reply_to":"baada198_1ccb0ea6","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Current proposal describes an approach to migrate one running instance lively"},{"line_number":31,"context_line":"to a specified Neutron network. This can then be consumed by orchestration"},{"line_number":32,"context_line":"level for bulk migrations. Creating and configuring proper Neutron network is"},{"line_number":33,"context_line":"out of scope of this document."},{"line_number":34,"context_line":"The new API extension will accept instance_id and Neutron network_id."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_bc5062d5","line":31,"updated":"2014-07-10 21:09:59.000000000","message":"This -\u003e Once implemented, this capability\n\norchestration level -\u003e an orchestration mechanism","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Current proposal describes an approach to migrate one running instance lively"},{"line_number":31,"context_line":"to a specified Neutron network. This can then be consumed by orchestration"},{"line_number":32,"context_line":"level for bulk migrations. Creating and configuring proper Neutron network is"},{"line_number":33,"context_line":"out of scope of this document."},{"line_number":34,"context_line":"The new API extension will accept instance_id and Neutron network_id."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_f72f4c3c","line":31,"in_reply_to":"baada198_bc5062d5","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Current proposal describes an approach to migrate one running instance lively"},{"line_number":31,"context_line":"to a specified Neutron network. This can then be consumed by orchestration"},{"line_number":32,"context_line":"level for bulk migrations. Creating and configuring proper Neutron network is"},{"line_number":33,"context_line":"out of scope of this document."},{"line_number":34,"context_line":"The new API extension will accept instance_id and Neutron network_id."},{"line_number":35,"context_line":"This will be an admin-only extension."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_fc61faa8","line":32,"updated":"2014-07-10 21:09:59.000000000","message":"proper -\u003e the proper","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Current proposal describes an approach to migrate one running instance lively"},{"line_number":31,"context_line":"to a specified Neutron network. This can then be consumed by orchestration"},{"line_number":32,"context_line":"level for bulk migrations. Creating and configuring proper Neutron network is"},{"line_number":33,"context_line":"out of scope of this document."},{"line_number":34,"context_line":"The new API extension will accept instance_id and Neutron network_id."},{"line_number":35,"context_line":"This will be an admin-only extension."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_17276065","line":32,"in_reply_to":"baada198_fc61faa8","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"(Neutron or Nova-network) to use when working with particular instance. The"},{"line_number":48,"context_line":"proposal is to check instance\u0027s network info cache attributes to get some key"},{"line_number":49,"context_line":"signs (network_uuid, bridge name, subnets, etc). This may be a decorator for"},{"line_number":50,"context_line":"network API functions which will do such check."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Migrating state:"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_7ce24a02","line":50,"updated":"2014-07-10 21:09:59.000000000","message":"check -\u003e a check","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":47,"context_line":"(Neutron or Nova-network) to use when working with particular instance. The"},{"line_number":48,"context_line":"proposal is to check instance\u0027s network info cache attributes to get some key"},{"line_number":49,"context_line":"signs (network_uuid, bridge name, subnets, etc). This may be a decorator for"},{"line_number":50,"context_line":"network API functions which will do such check."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Migrating state:"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_372aa42c","line":50,"in_reply_to":"baada198_7ce24a02","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"No new IP allocations will be allowed during the migration period since"},{"line_number":55,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":56,"context_line":"instances are migrated. This includes new instance creation, adding interfaces,"},{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_bcece2f4","line":56,"updated":"2014-07-10 21:09:59.000000000","message":"This includes -\u003e This restriction should include\n\nadding interfaces -\u003e interface addition","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"No new IP allocations will be allowed during the migration period since"},{"line_number":55,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":56,"context_line":"instances are migrated. This includes new instance creation, adding interfaces,"},{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_5720f848","line":56,"in_reply_to":"baada198_bcece2f4","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"No new IP allocations will be allowed during the migration period since"},{"line_number":55,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":56,"context_line":"instances are migrated. This includes new instance creation, adding interfaces,"},{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_dca196aa","line":57,"updated":"2014-07-10 21:09:59.000000000","message":"Current -\u003e The current\n\nnew Nova config option \"neutron_migrating\" -\u003e a new Nova config option (\"neutron migrating\")","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":54,"context_line":"No new IP allocations will be allowed during the migration period since"},{"line_number":55,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":56,"context_line":"instances are migrated. This includes new instance creation, adding interfaces,"},{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_771b3c1c","line":57,"in_reply_to":"baada198_dca196aa","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":56,"context_line":"instances are migrated. This includes new instance creation, adding interfaces,"},{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_3caff295","line":58,"updated":"2014-07-10 21:09:59.000000000","message":"to check for migrating state. -\u003e to indicate that Nova is in a state of migration.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":55,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":56,"context_line":"instances are migrated. This includes new instance creation, adding interfaces,"},{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_971a9015","line":58,"in_reply_to":"baada198_3caff295","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_3c861214","line":60,"updated":"2014-07-10 21:09:59.000000000","message":"following -\u003e the following","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":57,"context_line":"etc. Current proposal is to use new Nova config option \"neutron_migrating\""},{"line_number":58,"context_line":"to check for migrating state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_b715d4e6","line":60,"in_reply_to":"baada198_3c861214","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"},{"line_number":64,"context_line":"* ensure identical security groups, floating ips exist in Neutron"},{"line_number":65,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_9cad5e8b","line":62,"updated":"2014-07-10 21:09:59.000000000","message":"the given instance get -\u003e a given instance, retrieve","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance migration will contain following steps:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"},{"line_number":64,"context_line":"* ensure identical security groups, floating ips exist in Neutron"},{"line_number":65,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_d7d32836","line":62,"in_reply_to":"baada198_9cad5e8b","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"},{"line_number":64,"context_line":"* ensure identical security groups, floating ips exist in Neutron"},{"line_number":65,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"},{"line_number":66,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":67,"context_line":"  floating ip"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_7c3a4a35","line":64,"updated":"2014-07-10 21:09:59.000000000","message":"ensure identical security groups, floating ips exist in -\u003e ensure security groups and floating ips for the instance are mirrored from Nova to Neutron","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"},{"line_number":64,"context_line":"* ensure identical security groups, floating ips exist in Neutron"},{"line_number":65,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"},{"line_number":66,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":67,"context_line":"  floating ip"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_f7d66c26","line":64,"in_reply_to":"baada198_7c3a4a35","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"},{"line_number":64,"context_line":"* ensure identical security groups, floating ips exist in Neutron"},{"line_number":65,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"},{"line_number":66,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":67,"context_line":"  floating ip"},{"line_number":68,"context_line":"* plug port"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_1c5b0e88","line":65,"updated":"2014-07-10 21:09:59.000000000","message":"for fetched vif allocate a corresponding -\u003e for each vif associated with the instance, create a new port\n\nNeutron -\u003e the Neutron\n\nHere corresponding means port with the same... -\u003e The new port should have the same...as the port defined in Nova.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* for the given instance get its current network data - vif, security groups,"},{"line_number":63,"context_line":"  floating_ips"},{"line_number":64,"context_line":"* ensure identical security groups, floating ips exist in Neutron"},{"line_number":65,"context_line":"* for fetched vif allocate a corresponding port using Neutron API. Here"},{"line_number":66,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":67,"context_line":"  floating ip"},{"line_number":68,"context_line":"* plug port"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_17de803f","line":65,"in_reply_to":"baada198_1c5b0e88","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":67,"context_line":"  floating ip"},{"line_number":68,"context_line":"* plug port"},{"line_number":69,"context_line":"* lively update instance vif device using libvirt (switch bridge on tap device)"},{"line_number":70,"context_line":"* update instance info cache with neutron vif data"},{"line_number":71,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_3cba926e","line":69,"updated":"2014-07-10 21:09:59.000000000","message":"What do you mean by \u0027lively\u0027?","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  corresponding means port with the same ip/mac addresses, security groups,"},{"line_number":67,"context_line":"  floating ip"},{"line_number":68,"context_line":"* plug port"},{"line_number":69,"context_line":"* lively update instance vif device using libvirt (switch bridge on tap device)"},{"line_number":70,"context_line":"* update instance info cache with neutron vif data"},{"line_number":71,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_f1611ca9","line":69,"in_reply_to":"baada198_3cba926e","updated":"2014-07-11 13:33:56.000000000","message":"That means that an instance should stay running and not be suspened/resumed or restarted. I\u0027ll be more specific","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* plug port"},{"line_number":69,"context_line":"* lively update instance vif device using libvirt (switch bridge on tap device)"},{"line_number":70,"context_line":"* update instance info cache with neutron vif data"},{"line_number":71,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"If an instance has multiple VIFs then source Nova-net network id must be"},{"line_number":74,"context_line":"specified to migrate only VIFs from that network."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_5c7746d4","line":71,"updated":"2014-07-10 21:09:59.000000000","message":"cleanup instance -\u003e remove the instance\u0027s\n\nin -\u003e from","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* plug port"},{"line_number":69,"context_line":"* lively update instance vif device using libvirt (switch bridge on tap device)"},{"line_number":70,"context_line":"* update instance info cache with neutron vif data"},{"line_number":71,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"If an instance has multiple VIFs then source Nova-net network id must be"},{"line_number":74,"context_line":"specified to migrate only VIFs from that network."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_37b8e4e4","line":71,"in_reply_to":"baada198_5c7746d4","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":70,"context_line":"* update instance info cache with neutron vif data"},{"line_number":71,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"If an instance has multiple VIFs then source Nova-net network id must be"},{"line_number":74,"context_line":"specified to migrate only VIFs from that network."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Possible failures:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_5c5e6646","line":73,"updated":"2014-07-10 21:09:59.000000000","message":"source -\u003e the source","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":70,"context_line":"* update instance info cache with neutron vif data"},{"line_number":71,"context_line":"* cleanup instance vif data in Nova-network"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"If an instance has multiple VIFs then source Nova-net network id must be"},{"line_number":74,"context_line":"specified to migrate only VIFs from that network."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Possible failures:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_77c97c78","line":73,"in_reply_to":"baada198_5c5e6646","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  external net (router gateway)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":84,"context_line":"ip and floating_ip to use when migrating an instance."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_7c07aa1d","line":84,"updated":"2014-07-10 21:09:59.000000000","message":"Is it worth mentioning that having to change fixed/floating ips might reduce the value of a live migration, since it may impact connectivity to a given instance and clients of that instance?\n\nBased on our discussion, maybe it makes to require the operator undertaking migration to resolve potential conflicts out-of-band?","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  external net (router gateway)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":84,"context_line":"ip and floating_ip to use when migrating an instance."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_b7715446","line":84,"in_reply_to":"baada198_7c07aa1d","updated":"2014-07-11 13:33:56.000000000","message":"Agree, I\u0027ll add the notes.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":101,"context_line":"will be based on OVS, so that was the primary reason to not go with this"},{"line_number":102,"context_line":"option."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Alternative which should avoid the need to suppress new IP allocations:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* continue using Nova to allocate/deallocate IPs until migration is complete"},{"line_number":107,"context_line":"* use Neutron to actually set up new instances, using the IP that Nova"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_57a9dfdd","line":104,"updated":"2014-07-10 21:09:59.000000000","message":"Alternative -\u003e An alterantive","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":101,"context_line":"will be based on OVS, so that was the primary reason to not go with this"},{"line_number":102,"context_line":"option."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Alternative which should avoid the need to suppress new IP allocations:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* continue using Nova to allocate/deallocate IPs until migration is complete"},{"line_number":107,"context_line":"* use Neutron to actually set up new instances, using the IP that Nova"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_17e840b3","line":104,"in_reply_to":"baada198_57a9dfdd","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Please note that it\u0027s not an alternative to the whole approach, but only to"},{"line_number":111,"context_line":"the prohibiting new IP allocations while being in the migration state."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"An alternative to \"neutron_migrating\" config option is having the new API"},{"line_number":114,"context_line":"wrapper which will be setting \"NOVA\", \"MIGRATING\" or \"NEUTRON\" modes across a"},{"line_number":115,"context_line":"cluster, removing the necessity of restarting nova-compute synchronously across"},{"line_number":116,"context_line":"all compute nodes at the start and end of migration. This adds operational"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_37f46bf1","line":113,"updated":"2014-07-10 21:09:59.000000000","message":"Is \u0027the new API wrapper\u0027 described somewhere?\n\nI\u0027m also not sure, given the brevity of the problem statement, whether the operational flexibility implied by this capability can be judged to be in scope or not.  It\u0027s also not clear whether Nova has any existing capability to make state changes online rather than via a config file, and having to add it from scratch wouldn\u0027t seem wise for a Neutron-focused effort.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Please note that it\u0027s not an alternative to the whole approach, but only to"},{"line_number":111,"context_line":"the prohibiting new IP allocations while being in the migration state."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"An alternative to \"neutron_migrating\" config option is having the new API"},{"line_number":114,"context_line":"wrapper which will be setting \"NOVA\", \"MIGRATING\" or \"NEUTRON\" modes across a"},{"line_number":115,"context_line":"cluster, removing the necessity of restarting nova-compute synchronously across"},{"line_number":116,"context_line":"all compute nodes at the start and end of migration. This adds operational"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_e2086cdb","line":113,"in_reply_to":"baada198_37f46bf1","updated":"2014-07-11 13:33:56.000000000","message":"Actually there is no detailed description of the idea, it was suggested as possible improvement. So as I stated below this won\u0027t be part of the current blueprint.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* Parameters:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":161,"context_line":"| Parameter     | Style | Type         | Description                          |"},{"line_number":162,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":163,"context_line":"| network_id    | query | uuid         | Neutron network id which an instance |"},{"line_number":164,"context_line":"|               |       |              | should migrate to.                   |"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_1730479d","line":161,"updated":"2014-07-10 21:09:59.000000000","message":"Is there a reason the instance id is not included in the parameter list?  Also, will there need to be a (maybe optional) check for whether the source and destination networks are owned by the same tenant, and if so, should this be documented in the spec or left an implementation detail?","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* Parameters:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":161,"context_line":"| Parameter     | Style | Type         | Description                          |"},{"line_number":162,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":163,"context_line":"| network_id    | query | uuid         | Neutron network id which an instance |"},{"line_number":164,"context_line":"|               |       |              | should migrate to.                   |"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_a8ef2086","line":161,"in_reply_to":"baada198_1730479d","updated":"2014-07-11 13:33:56.000000000","message":"Given that migration is an instance action instance_id will be the part of the request REST path so there is no need to include it in the parameters list. For tenant_id there should definiteluy be a check matching instance\u0027s tenant with destination network\u0027s tenant_id but I think of it more as of an implementation detail.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        }"},{"line_number":185,"context_line":"    }"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* JSON schema definition for the response data: This operation does not"},{"line_number":188,"context_line":"  return a response body."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_9721b7fe","line":187,"updated":"2014-07-10 21:09:59.000000000","message":"Does the lack of response data indicate that it won\u0027t be possible to track the progress of a given migration?","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        }"},{"line_number":185,"context_line":"    }"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* JSON schema definition for the response data: This operation does not"},{"line_number":188,"context_line":"  return a response body."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_a3458144","line":187,"in_reply_to":"baada198_9721b7fe","updated":"2014-07-11 13:33:56.000000000","message":"Actually the progress of a given migration can be tracked by checking instance\u0027s task state.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":275,"context_line":"* https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"Testing"},{"line_number":279,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Along with unit and tempest testing Grenade Nova-net to Neutron migration test"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_4ef949c7","line":278,"updated":"2014-07-10 21:09:59.000000000","message":"Are there additional testing beyond tempest and grenade that will be required to verify the specifics of the migration?","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":275,"context_line":"* https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"Testing"},{"line_number":279,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Along with unit and tempest testing Grenade Nova-net to Neutron migration test"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_c37a75f0","line":278,"in_reply_to":"baada198_4ef949c7","updated":"2014-07-11 13:33:56.000000000","message":"Well, I can\u0027t say \"No, no additional testing will be required\" :) it\u0027s always better to have as much testing as possible. Do you have something in mind?","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":283,"context_line":"several tenants/networks/instances, perform a full migration to Neutron and"},{"line_number":284,"context_line":"do following network checks (before and after migration):"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"* internal connectivity"},{"line_number":287,"context_line":"* external connectivity"},{"line_number":288,"context_line":"* security groups functionality"},{"line_number":289,"context_line":"* floating ips functionality"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_ce5e39e9","line":286,"updated":"2014-07-10 21:09:59.000000000","message":"I think all of these test cases are already covered by the Neutron scenario tests found in Tempest and this section should indicate as much.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":283,"context_line":"several tenants/networks/instances, perform a full migration to Neutron and"},{"line_number":284,"context_line":"do following network checks (before and after migration):"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"* internal connectivity"},{"line_number":287,"context_line":"* external connectivity"},{"line_number":288,"context_line":"* security groups functionality"},{"line_number":289,"context_line":"* floating ips functionality"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_a3a4a14b","line":286,"in_reply_to":"baada198_ce5e39e9","updated":"2014-07-11 13:33:56.000000000","message":"Yeah, that\u0027s what I meant here. All existing tempest scenario tests should be ran before and after the migration","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"627d830b19f0a48aa37a9dfd15c8a860d589b9a6","unresolved":false,"context_lines":[{"line_number":288,"context_line":"* security groups functionality"},{"line_number":289,"context_line":"* floating ips functionality"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"This should be tested for all three network managers available in Nova-network."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_2ee175fe","line":291,"updated":"2014-07-10 21:09:59.000000000","message":"The target Neutron configuration(s) (e.g. ml2+ovs+vlan) should probably be documented here as well.","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"62f5bc17c46e018c16c669918d3aa3ca4df5dada","unresolved":false,"context_lines":[{"line_number":288,"context_line":"* security groups functionality"},{"line_number":289,"context_line":"* floating ips functionality"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"This should be tested for all three network managers available in Nova-network."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_2315f148","line":291,"in_reply_to":"baada198_2ee175fe","updated":"2014-07-11 13:33:56.000000000","message":"Done","commit_id":"585e01a6249e1d42a613e07ea4837463388346cc"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"level. Here are some key requirements and considerations:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Instances should stay running and not need restarting."},{"line_number":27,"context_line":"* Brief data plane outage is possible as some L3 services are transferred:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  * Routing"},{"line_number":30,"context_line":"  * DHCP"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_356c35d0","line":27,"updated":"2014-07-11 19:31:31.000000000","message":"Brief data plane outage is possible as some L3 services are transferred -\u003e Data-plan outages are possible for the following services during migration of L3 services","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"level. Here are some key requirements and considerations:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Instances should stay running and not need restarting."},{"line_number":27,"context_line":"* Brief data plane outage is possible as some L3 services are transferred:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  * Routing"},{"line_number":30,"context_line":"  * DHCP"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_e48cce82","line":27,"in_reply_to":"baada198_356c35d0","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"capability can then be consumed by an orchestration mechanism for bulk"},{"line_number":39,"context_line":"migrations. Creating and configuring the proper Neutron network is out of"},{"line_number":40,"context_line":"scope of this document. The new API extension will in fact be a new instance"},{"line_number":41,"context_line":"admin action accepting Neutron network_id."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Preconditions:"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_9594218c","line":41,"updated":"2014-07-11 19:31:31.000000000","message":"Neutron -\u003e a Neutron","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"capability can then be consumed by an orchestration mechanism for bulk"},{"line_number":39,"context_line":"migrations. Creating and configuring the proper Neutron network is out of"},{"line_number":40,"context_line":"scope of this document. The new API extension will in fact be a new instance"},{"line_number":41,"context_line":"admin action accepting Neutron network_id."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Preconditions:"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_048aa263","line":41,"in_reply_to":"baada198_9594218c","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":62,"context_line":"instances are migrated. This restriction should include new instance creation,"},{"line_number":63,"context_line":"interface addition, etc. The current proposal is to use a new Nova config"},{"line_number":64,"context_line":"option (\"neutron migrating\") to indicate that Nova is in a state of migration."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Instance migration will contain the following steps:"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_f538fda1","line":64,"updated":"2014-07-11 19:31:31.000000000","message":"neutron migrating -\u003e migrating_to_neutron\n\nApologies for the original correction to remove the underscore, it was accidental.\n\nI looked at the code and I can see see how the existing \u0027migrating\u0027 state in nova suggested the \u0027neutron_migrating\u0027 state, but the it would a more correct name would be \u0027migrating_to_neutron\u0027.","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"existing allocations in Nova won\u0027t be replicated in Neutron until all"},{"line_number":62,"context_line":"instances are migrated. This restriction should include new instance creation,"},{"line_number":63,"context_line":"interface addition, etc. The current proposal is to use a new Nova config"},{"line_number":64,"context_line":"option (\"neutron migrating\") to indicate that Nova is in a state of migration."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Instance migration will contain the following steps:"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_c4da6a77","line":64,"in_reply_to":"baada198_f538fda1","updated":"2014-07-11 21:39:16.000000000","message":"Agree, thank you","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  Neutron API. The new port should have the same ip/mac addresses, security"},{"line_number":74,"context_line":"  groups, floating ip as the VIF defined in Nova."},{"line_number":75,"context_line":"* plug port"},{"line_number":76,"context_line":"* lively (no restart/suspend) update the instance vif device using libvirt"},{"line_number":77,"context_line":"  (switch bridge on tap device)"},{"line_number":78,"context_line":"* update instance info cache with neutron vif data"},{"line_number":79,"context_line":"* remove the instance\u0027s vif data from Nova-network"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_1533b1ab","line":76,"updated":"2014-07-11 19:31:31.000000000","message":"-\u003e use libvirt to move the tap device between the nova network-managed linux bridge and the neutron-managed ovs bridge while the instance remains running","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  Neutron API. The new port should have the same ip/mac addresses, security"},{"line_number":74,"context_line":"  groups, floating ip as the VIF defined in Nova."},{"line_number":75,"context_line":"* plug port"},{"line_number":76,"context_line":"* lively (no restart/suspend) update the instance vif device using libvirt"},{"line_number":77,"context_line":"  (switch bridge on tap device)"},{"line_number":78,"context_line":"* update instance info cache with neutron vif data"},{"line_number":79,"context_line":"* remove the instance\u0027s vif data from Nova-network"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_84287234","line":76,"in_reply_to":"baada198_1533b1ab","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":89,"context_line":"  external net (router gateway)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":92,"context_line":"fixed and floating ips to use when migrating an instance. This however might"},{"line_number":93,"context_line":"reduce the value of a live migration, since it may impact connectivity"},{"line_number":94,"context_line":"to a given instance and clients of that instance. So this should probably be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_15a8118c","line":91,"updated":"2014-07-11 19:31:31.000000000","message":"To deal with such failures there needs to be an -\u003e Dealing with such failures suggests adding the","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":89,"context_line":"  external net (router gateway)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":92,"context_line":"fixed and floating ips to use when migrating an instance. This however might"},{"line_number":93,"context_line":"reduce the value of a live migration, since it may impact connectivity"},{"line_number":94,"context_line":"to a given instance and clients of that instance. So this should probably be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_a4e73611","line":91,"in_reply_to":"baada198_15a8118c","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  external net (router gateway)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":92,"context_line":"fixed and floating ips to use when migrating an instance. This however might"},{"line_number":93,"context_line":"reduce the value of a live migration, since it may impact connectivity"},{"line_number":94,"context_line":"to a given instance and clients of that instance. So this should probably be"},{"line_number":95,"context_line":"the operator responsibility to resolve potential conflicts beforehand."}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_7596ad4d","line":92,"updated":"2014-07-11 19:31:31.000000000","message":"however -\u003e","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  external net (router gateway)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":92,"context_line":"fixed and floating ips to use when migrating an instance. This however might"},{"line_number":93,"context_line":"reduce the value of a live migration, since it may impact connectivity"},{"line_number":94,"context_line":"to a given instance and clients of that instance. So this should probably be"},{"line_number":95,"context_line":"the operator responsibility to resolve potential conflicts beforehand."}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_647fde17","line":92,"in_reply_to":"baada198_7596ad4d","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":92,"context_line":"fixed and floating ips to use when migrating an instance. This however might"},{"line_number":93,"context_line":"reduce the value of a live migration, since it may impact connectivity"},{"line_number":94,"context_line":"to a given instance and clients of that instance. So this should probably be"},{"line_number":95,"context_line":"the operator responsibility to resolve potential conflicts beforehand."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_55b369e8","line":94,"updated":"2014-07-11 19:31:31.000000000","message":"that instance... -\u003e that instance, so it will be considered out-of-scope for this spec.  It will be the responsibility of the operator to detect and resolve these kinds of conflicts in advance of the migration method proposed by this spec.","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":91,"context_line":"To deal with such failures there needs to be an ability to specify alternative"},{"line_number":92,"context_line":"fixed and floating ips to use when migrating an instance. This however might"},{"line_number":93,"context_line":"reduce the value of a live migration, since it may impact connectivity"},{"line_number":94,"context_line":"to a given instance and clients of that instance. So this should probably be"},{"line_number":95,"context_line":"the operator responsibility to resolve potential conflicts beforehand."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_8484f20b","line":94,"in_reply_to":"baada198_55b369e8","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"|               |       |              | instance should migrate from         |"},{"line_number":179,"context_line":"|               |       |              | (in case instance has multiple VIFs) |"},{"line_number":180,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":181,"context_line":"| fixed_ip      | query | ip address   | IP address the server should get     |"},{"line_number":182,"context_line":"| (optional)    |       |              | after migrating to Neutron           |"},{"line_number":183,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":184,"context_line":"| floating_ip   | query | ip address   | Floating IP address the server should|"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_1567314e","line":181,"updated":"2014-07-11 19:31:31.000000000","message":"As discussed, being able to change fixed and floating ips of a migrating instance should be considered out-of-scope for this spec.  Changes of that kind will need to be done separately by operators.","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":178,"context_line":"|               |       |              | instance should migrate from         |"},{"line_number":179,"context_line":"|               |       |              | (in case instance has multiple VIFs) |"},{"line_number":180,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":181,"context_line":"| fixed_ip      | query | ip address   | IP address the server should get     |"},{"line_number":182,"context_line":"| (optional)    |       |              | after migrating to Neutron           |"},{"line_number":183,"context_line":"+---------------+-------+--------------+--------------------------------------+"},{"line_number":184,"context_line":"| floating_ip   | query | ip address   | Floating IP address the server should|"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_04a702a8","line":181,"in_reply_to":"baada198_1567314e","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"0811bc950ec6ea6597b92ee01549790b8f67351c","unresolved":false,"context_lines":[{"line_number":241,"context_line":"   * add other Neutron options"},{"line_number":242,"context_line":"* Set \"neuron_migrating\" config option to True"},{"line_number":243,"context_line":"* Restart Nova services (api, compute)"},{"line_number":244,"context_line":"* Migrate instances to Neutron (orchestartion script)"},{"line_number":245,"context_line":"* Set \"neuron_migrating\" config option to False"},{"line_number":246,"context_line":"* Restart Nova services (api, compute)"},{"line_number":247,"context_line":"* Stop Nova-network"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_15e491df","line":244,"updated":"2014-07-11 19:31:31.000000000","message":"orchestartion -\u003e orchestration","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b3e9c517aa9195e24bb53ced5c1708f5fc5831e","unresolved":false,"context_lines":[{"line_number":241,"context_line":"   * add other Neutron options"},{"line_number":242,"context_line":"* Set \"neuron_migrating\" config option to True"},{"line_number":243,"context_line":"* Restart Nova services (api, compute)"},{"line_number":244,"context_line":"* Migrate instances to Neutron (orchestartion script)"},{"line_number":245,"context_line":"* Set \"neuron_migrating\" config option to False"},{"line_number":246,"context_line":"* Restart Nova services (api, compute)"},{"line_number":247,"context_line":"* Stop Nova-network"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baada198_441e5a71","line":244,"in_reply_to":"baada198_15e491df","updated":"2014-07-11 21:39:16.000000000","message":"Done","commit_id":"0b349849e98ead5b08f323a40729715907d9f64a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":23,"context_line":"changes to both Nova and Neutron as well as support at the orchestration"},{"line_number":24,"context_line":"level. Here are some key requirements and considerations:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Instances should stay running and not need restarting."},{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_9c3973a6","line":26,"updated":"2014-07-14 19:07:23.000000000","message":"This would be great, of course. However, with things like upgrades, we have orchestrated things before using migrations (cold and live). I don\u0027t think we should rule out an approach that does instance migrations to achieve the re-plumbing required to make the move, especially if it affects a smaller unit at a time (i.e. an instance instead of the whole cloud).","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4eb3f71cadf8e820110638e6738820851851fc7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"changes to both Nova and Neutron as well as support at the orchestration"},{"line_number":24,"context_line":"level. Here are some key requirements and considerations:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Instances should stay running and not need restarting."},{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_db52e7dd","line":26,"in_reply_to":"baada198_1d91c8f0","updated":"2014-07-15 16:23:03.000000000","message":"Meaning, convert one compute host at a time and migrate instances from legacy compute nodes to neutron-using ones.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":23,"context_line":"changes to both Nova and Neutron as well as support at the orchestration"},{"line_number":24,"context_line":"level. Here are some key requirements and considerations:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Instances should stay running and not need restarting."},{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_1d91c8f0","line":26,"in_reply_to":"baada198_9c3973a6","updated":"2014-07-15 13:24:50.000000000","message":"Sorry, I didn\u0027t quite get \"an approach that does instance migrations to achieve the re-plumbing required to make the move\", can you please clarify a bit more?","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"233c2aa03034c5b9732992f49544e3ca840d562a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"changes to both Nova and Neutron as well as support at the orchestration"},{"line_number":24,"context_line":"level. Here are some key requirements and considerations:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Instances should stay running and not need restarting."},{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_1416d055","line":26,"in_reply_to":"baada198_db52e7dd","updated":"2014-07-16 10:19:54.000000000","message":"+1","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Routing"},{"line_number":31,"context_line":"  * DHCP"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_fc27cf60","line":30,"updated":"2014-07-14 19:07:23.000000000","message":"Does this mean routing of any packets? If so, this is basically an entire outage and not necessarily any better than an instance migration. Yes, instances on the same L2 would still be able to talk to each other, but if they can\u0027t talk to anything outside their L2, I\u0027m not sure we\u0027ve gained much by making this requirement.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"233c2aa03034c5b9732992f49544e3ca840d562a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Routing"},{"line_number":31,"context_line":"  * DHCP"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_b4160457","line":30,"in_reply_to":"baada198_613cde93","updated":"2014-07-16 10:19:54.000000000","message":"Can\u0027t you send gARPs to speed that up.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"125f210bdf338c1a9b837ddfadad322ed63f7b70","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Routing"},{"line_number":31,"context_line":"  * DHCP"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_5cb751f5","line":30,"in_reply_to":"baada198_b4160457","updated":"2014-07-17 15:08:28.000000000","message":"I think it can be done, thanks for the suggestion","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":27,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Routing"},{"line_number":31,"context_line":"  * DHCP"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_613cde93","line":30,"in_reply_to":"baada198_fc27cf60","updated":"2014-07-15 13:24:50.000000000","message":"This doesn\u0027t mean a complete outage but a brief one. Tests showed that an instance is still able to be communicated to after the arp tables refresh (~20-30 sec)","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Routing"},{"line_number":31,"context_line":"  * DHCP"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_7c13bf00","line":31,"updated":"2014-07-14 19:07:23.000000000","message":"A DHCP outage for any amount of time longer than the lease time of the network is a larger problem, right?","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  of L3 services"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * Routing"},{"line_number":31,"context_line":"  * DHCP"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_61305e56","line":31,"in_reply_to":"baada198_7c13bf00","updated":"2014-07-15 13:24:50.000000000","message":"With current approach if migrating to a dhcp-enabled Neutron network no significant (if even any) DHCP outage is expected.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":63,"context_line":"instances are migrated. This restriction should include new instance creation,"},{"line_number":64,"context_line":"interface addition, etc. The current proposal is to use a new Nova config"},{"line_number":65,"context_line":"option (\"migrating_to_neutron\") to indicate that Nova is in a state of"},{"line_number":66,"context_line":"migration."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Instance migration will contain the following steps:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_5cab5b74","line":66,"updated":"2014-07-14 19:07:23.000000000","message":"I think that stopping all instance creates on the entire cloud to accomplish the transition is probably not something that a reasonable deployment will be willing to do. Further, I don\u0027t think that adding a temporary configuration variable like this is really the best way to accomplish the goal of simply freezing network allocations.\n\nI think this is approach is being taken to avoid having to synchronize allocations between nova-network and neutron during the migration phase, but given the impact to a deployer that completely freezing the cloud has, I think it\u0027s worth trying to work out a plan for how to do it properly.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"233c2aa03034c5b9732992f49544e3ca840d562a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"instances are migrated. This restriction should include new instance creation,"},{"line_number":64,"context_line":"interface addition, etc. The current proposal is to use a new Nova config"},{"line_number":65,"context_line":"option (\"migrating_to_neutron\") to indicate that Nova is in a state of"},{"line_number":66,"context_line":"migration."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Instance migration will contain the following steps:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_f71ebe5e","line":66,"in_reply_to":"baada198_24a674ab","updated":"2014-07-16 10:19:54.000000000","message":"+1 it feels like we should ensure that new builds go to the new system and new hosts, somehow.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":63,"context_line":"instances are migrated. This restriction should include new instance creation,"},{"line_number":64,"context_line":"interface addition, etc. The current proposal is to use a new Nova config"},{"line_number":65,"context_line":"option (\"migrating_to_neutron\") to indicate that Nova is in a state of"},{"line_number":66,"context_line":"migration."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Instance migration will contain the following steps:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_24a674ab","line":66,"in_reply_to":"baada198_5cab5b74","updated":"2014-07-15 13:24:50.000000000","message":"There is such a plan briefly described in Alternatives section of the current spec and ultimately this should be the way to go. We should probably prioritize this approach and include it as a part of the blueprint, not an alternative.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* could not allocate a neutron port with target ip - ip is already allocated"},{"line_number":90,"context_line":"  (dhcp port)"},{"line_number":91,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":92,"context_line":"  external net (router gateway)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dealing with such failures suggests adding the ability to specify alternative"},{"line_number":95,"context_line":"fixed and floating ips to use when migrating an instance. This might reduce"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_3c6a271a","line":92,"updated":"2014-07-14 19:07:23.000000000","message":"The other thing to consider here is that this process seems to affect the entire cloud. If we\u0027re migrating things away from nova-network to neutron and we hit a snag in the middle, we\u0027re frozen and can\u0027t really do anything until we figure out a way around the snag. To me, making that sort of requirement on a nova deployment is something we should really try to avoid. Scoping the changes to smaller units, like individual instances or compute hosts is a much better approach, IMHO.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* could not allocate a neutron port with target ip - ip is already allocated"},{"line_number":90,"context_line":"  (dhcp port)"},{"line_number":91,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":92,"context_line":"  external net (router gateway)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dealing with such failures suggests adding the ability to specify alternative"},{"line_number":95,"context_line":"fixed and floating ips to use when migrating an instance. This might reduce"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_d221f6b4","line":92,"in_reply_to":"baada198_3c6a271a","updated":"2014-07-15 13:24:50.000000000","message":"Well, actually this blueprint is devoted exactly to individual instance migration. Other information is added to give a more broader picture - how a whole deployment can be migrated using this approach.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4eb3f71cadf8e820110638e6738820851851fc7","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* could not allocate a neutron port with target ip - ip is already allocated"},{"line_number":90,"context_line":"  (dhcp port)"},{"line_number":91,"context_line":"* could not allocate a neutron floating ip - ip is already allocated on"},{"line_number":92,"context_line":"  external net (router gateway)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dealing with such failures suggests adding the ability to specify alternative"},{"line_number":95,"context_line":"fixed and floating ips to use when migrating an instance. This might reduce"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_bbc45342","line":92,"in_reply_to":"baada198_d221f6b4","updated":"2014-07-15 16:23:03.000000000","message":"AFAICT, there is no way to do this without freezing allocations for the entire deployment, even if you just want to migrate one compute host or one instance. That is the big problem I see. Even though your actions are per-instance, you still have to cripple the entire deployment to do it.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":132,"context_line":"flexibility which could be useful for a large cluster. This alternative"},{"line_number":133,"context_line":"however is not a part of current blueprint and can be implemented at any"},{"line_number":134,"context_line":"point later."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Data model impact"},{"line_number":138,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_fcb7cf82","line":135,"updated":"2014-07-14 19:07:23.000000000","message":"Another alternative would be to provide a way to synchronize nova-network and neutron\u0027s notion of the world to allow allocations to continue to be modified during the migration phase. If that were the case, then operators should be able to convert individual compute nodes and their instances without placing a huge atomic lock on the whole deployment, right?\n\nIf, while migrating, you ensure that neutron has an empty allocation for the destination network, doesn\u0027t accept any new requests from anything other than nova, etc., then I think synchronization should be fairly simple. Converting a compute node could be as easy as reconfiguring it to use the neutron API and then adding some init_host() routines to do the VIF swaps on startup (or as triggered from the api).\n\nFurther, I think that supporting this mixed environment where some computes use nova-network and some use neutron could provide an easier path where simply migrating an instance from a n-net-using compute host to a neutron-using host performs the conversion. We do other big migrations (read: upgrades) this way, and thus I don\u0027t think it\u0027s unreasonable to use the same approach here.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"a958a46d1b2924a0e44334eb827f96612c78bdf9","unresolved":false,"context_lines":[{"line_number":132,"context_line":"flexibility which could be useful for a large cluster. This alternative"},{"line_number":133,"context_line":"however is not a part of current blueprint and can be implemented at any"},{"line_number":134,"context_line":"point later."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Data model impact"},{"line_number":138,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_8dcd91ba","line":135,"in_reply_to":"baada198_980ddf91","updated":"2014-07-15 18:40:19.000000000","message":"Would this allow us to migrate some VMs and then pause for a while to check it was all working OK ? Migrating 1000s of VMs in a single go is a concern since there can always be problems that mean a big bang approach is \u0027courageous\u0027.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":132,"context_line":"flexibility which could be useful for a large cluster. This alternative"},{"line_number":133,"context_line":"however is not a part of current blueprint and can be implemented at any"},{"line_number":134,"context_line":"point later."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Data model impact"},{"line_number":138,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_980ddf91","line":135,"in_reply_to":"baada198_fcb7cf82","updated":"2014-07-15 13:24:50.000000000","message":"This is actually a really good suggestion, thanks, I will look into this.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":150,"context_line":"* New v3 API extension:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"  * Name: MigrateToNeutron"},{"line_number":153,"context_line":"  * Alias: os-migrate-to-neutron"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* Description: Live-migrates a server from Nova-network to Neutron without"},{"line_number":156,"context_line":"  rebooting."}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_5c7fdbaa","line":153,"updated":"2014-07-14 19:07:23.000000000","message":"I\u0027m not sure how I feel about a new API extension for this action. It\u0027s necessarily temporary, very neutron-specific, and kinda icky feeling to me for some reason.\n\nWe have a reset-network call right now, maybe we use that or some other existing refresh call to trigger the migration, if it\u0027s available/pending?","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4eb3f71cadf8e820110638e6738820851851fc7","unresolved":false,"context_lines":[{"line_number":150,"context_line":"* New v3 API extension:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"  * Name: MigrateToNeutron"},{"line_number":153,"context_line":"  * Alias: os-migrate-to-neutron"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* Description: Live-migrates a server from Nova-network to Neutron without"},{"line_number":156,"context_line":"  rebooting."}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_1b8d3f2b","line":153,"in_reply_to":"baada198_533c0893","updated":"2014-07-15 16:23:03.000000000","message":"Right, I forgot about needing to provide the new network_id. Regardless, adding a new API extension and admin action specifically for migrating to neutron is something I think we should try to avoid if at all possible.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":150,"context_line":"* New v3 API extension:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"  * Name: MigrateToNeutron"},{"line_number":153,"context_line":"  * Alias: os-migrate-to-neutron"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* Description: Live-migrates a server from Nova-network to Neutron without"},{"line_number":156,"context_line":"  rebooting."}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_533c0893","line":153,"in_reply_to":"baada198_5c7fdbaa","updated":"2014-07-15 13:24:50.000000000","message":"Not sure I understand \"if it\u0027s available/pending\" - can you please clarify? We can try to use some existing call but wel still need to specify network_id of the net which an instance should migrate to, what actually means modifying the call and making it neutron-specific. I don\u0027t think this will look more graceful.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d48946fbb4073cba8419bb0e3436d481901c2923","unresolved":false,"context_lines":[{"line_number":222,"context_line":"by Neutron while others still by Nova-network (migrating state) we need to have"},{"line_number":223,"context_line":"a check in all network API calls to determine which API to use. This will"},{"line_number":224,"context_line":"likely slow down such calls. After all instances are migrated such check will"},{"line_number":225,"context_line":"not be needed."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Other deployer impact"},{"line_number":228,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_bc363701","line":225,"updated":"2014-07-14 19:07:23.000000000","message":"At what point can we remove the checks? Or do you mean we only run the checks if the migrating_to_neutron\u003dTrue?","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"5edb788a477267360c9e13dd96859364b00c8061","unresolved":false,"context_lines":[{"line_number":222,"context_line":"by Neutron while others still by Nova-network (migrating state) we need to have"},{"line_number":223,"context_line":"a check in all network API calls to determine which API to use. This will"},{"line_number":224,"context_line":"likely slow down such calls. After all instances are migrated such check will"},{"line_number":225,"context_line":"not be needed."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Other deployer impact"},{"line_number":228,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_64d5cc41","line":225,"in_reply_to":"baada198_bc363701","updated":"2014-07-15 13:24:50.000000000","message":"Yes, currently this is the idea.","commit_id":"fcc0cc0092751de4531a0581023240f27ee9842c"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"417f483fb1dca572da604f1f2ac52b6dd8eaea86","unresolved":false,"context_lines":[{"line_number":55,"context_line":"* each neutron node should:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":" * continue using Nova-network to allocate/deallocate IPs until migration (on"},{"line_number":58,"context_line":"   each compute node) is complete"},{"line_number":59,"context_line":" * use Neutron to actually set up new instances, using the IP that Nova"},{"line_number":60,"context_line":"   allocated"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_8dca2e6c","line":58,"updated":"2014-07-21 14:18:03.000000000","message":"By \"on each compute node\" do you mean \"on all compute nodes\"? Just to make it clearer.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"* each neutron node should:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":" * continue using Nova-network to allocate/deallocate IPs until migration (on"},{"line_number":58,"context_line":"   each compute node) is complete"},{"line_number":59,"context_line":" * use Neutron to actually set up new instances, using the IP that Nova"},{"line_number":60,"context_line":"   allocated"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_b161873a","line":58,"in_reply_to":"baada198_8dca2e6c","updated":"2014-07-23 12:15:56.000000000","message":"on all, yes","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da561535d252fb6b8acdd3229dd1cbb62df4da38","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Neutron nodes should be aware of migrating state in order to use nova-net for"},{"line_number":63,"context_line":"ip address management. Current proposal would be adding a new config option to"},{"line_number":64,"context_line":"define \"migrating_state\" on a node."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* all new instances should be created on neutron nodes"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_564f6f34","line":64,"updated":"2014-07-22 16:15:28.000000000","message":"So, I think this is somewhat opposite from the meaning of this variable before. This will be set \u003dTrue on nodes that are already neutron-enabled to indicate that they have state synchronization work to do, is that right?\n\nProbably need to name this something more descriptive, as \"migrating_state\" could mean a lot of things, none of which would point to networking if I were to guess :)\n\nI wonder if it doesn\u0027t make more sense to modify nova-network to provide this synchronization mechanism? The new neutron nodes would be \"pristine\" and behave the way we\u0027d expect any neutron node to behave. Then the nova-network nodes (which may be one node, or may be every node) would be configured to forward its allocation decisions to neutron, and potentially even stash pre-created ports into the info cache or some other store? Not sure, just throwing it out there. That would make the transition \"complete\" when you get rid of the last nova-network node, and not require another restart to take all the neutron nodes out of \"migrating\" mode...","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Neutron nodes should be aware of migrating state in order to use nova-net for"},{"line_number":63,"context_line":"ip address management. Current proposal would be adding a new config option to"},{"line_number":64,"context_line":"define \"migrating_state\" on a node."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* all new instances should be created on neutron nodes"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_4cbc1407","line":64,"in_reply_to":"baada198_564f6f34","updated":"2014-07-23 12:15:56.000000000","message":"Yes on your first question, and yes, this should be \"migrating_to_neutron\" to be more descriptive.\n\nI\u0027m not sure how we can use nova-network to provide the synchronization mechanism: currently network API class (neutron or nova-net) is configured on a compute node so if new node is using neutron it\u0027s not clear how nova-network can influence ip allocations on that node. I\u0027ll think more about it but at the moment I only see a way where we explicitly specify that compute node should use both nova-net and neutron.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da561535d252fb6b8acdd3229dd1cbb62df4da38","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This implies some modifications to nova-scheduler which should be able to"},{"line_number":69,"context_line":"distinguish nova-net and neutron nodes and always schedule to neutron nodes."},{"line_number":70,"context_line":"This however will be considered out of scope of the current blueprint."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Single instance migration"},{"line_number":73,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_160df735","line":70,"updated":"2014-07-22 16:15:28.000000000","message":"This is probably achievable simply by specifying that before starting this process, the administrator must disable all nova-compute services that are not neutron nodes, right? That will prevent the scheduler from choosing those hosts, while leaving them still accessible and running.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This implies some modifications to nova-scheduler which should be able to"},{"line_number":69,"context_line":"distinguish nova-net and neutron nodes and always schedule to neutron nodes."},{"line_number":70,"context_line":"This however will be considered out of scope of the current blueprint."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Single instance migration"},{"line_number":73,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_ec6fa8c2","line":70,"in_reply_to":"baada198_160df735","updated":"2014-07-23 12:15:56.000000000","message":"This should work, thanks for the suggestion, I\u0027ll add this","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da561535d252fb6b8acdd3229dd1cbb62df4da38","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Once having a neutron node in \"migrating_to_neutron\" state an operator may exec"},{"line_number":76,"context_line":"live migration for an instance to a nova-net node also specifying neutron"},{"line_number":77,"context_line":"network_id(s) as a parameter. If an instance has multiple VIFs then"},{"line_number":78,"context_line":"a dictionary parameter must be provided which will map source nova-net"},{"line_number":79,"context_line":"network_ids to neutron network_ids."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_b6960b3d","line":77,"updated":"2014-07-22 16:15:28.000000000","message":"This sounds backwards \"migration for an instance TO a NOVA-NET node\" ?","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Once having a neutron node in \"migrating_to_neutron\" state an operator may exec"},{"line_number":76,"context_line":"live migration for an instance to a nova-net node also specifying neutron"},{"line_number":77,"context_line":"network_id(s) as a parameter. If an instance has multiple VIFs then"},{"line_number":78,"context_line":"a dictionary parameter must be provided which will map source nova-net"},{"line_number":79,"context_line":"network_ids to neutron network_ids."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_cca3c4fe","line":77,"in_reply_to":"baada198_b6960b3d","updated":"2014-07-23 12:15:56.000000000","message":"yeah, this should be \"to neutron node\", thanks","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da561535d252fb6b8acdd3229dd1cbb62df4da38","unresolved":false,"context_lines":[{"line_number":116,"context_line":"for this spec. It will be the responsibility of the operator to detect and"},{"line_number":117,"context_line":"resolve these kinds of conflicts in advance of the migration method proposed"},{"line_number":118,"context_line":"by this spec."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_346594e2","line":119,"updated":"2014-07-22 16:15:28.000000000","message":"I think we need to support cold migration as well. It works with all hypervisors and is decidedly less risky than live migration. A deployer may want to take some instance downtime (limited only to the instances on a given host) in return for a more controlled process and thus choose cold migration.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9259131861c41a024883e752a7deffb76391f58","unresolved":false,"context_lines":[{"line_number":116,"context_line":"for this spec. It will be the responsibility of the operator to detect and"},{"line_number":117,"context_line":"resolve these kinds of conflicts in advance of the migration method proposed"},{"line_number":118,"context_line":"by this spec."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_4cbb2de4","line":119,"in_reply_to":"baada198_0cae9c2f","updated":"2014-07-23 14:58:07.000000000","message":"In-place migration is nice, but based on the previous iteration of this spec that talked about adding a new temporary API extension to support this, and what it would mean for the internals of nova-compute, I\u0027m less than thrilled about that approach. Definitely agree that it would be less disruptive to the users, of course.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"for this spec. It will be the responsibility of the operator to detect and"},{"line_number":117,"context_line":"resolve these kinds of conflicts in advance of the migration method proposed"},{"line_number":118,"context_line":"by this spec."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_8c354caa","line":119,"in_reply_to":"baada198_346594e2","updated":"2014-07-23 12:15:56.000000000","message":"Agree, however not sure if design of the neutron migration will differ depending on migration type (live or cold), need to investigate it more","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"6ed6eee75a73ac5cd06940f05ede2b316dcc93f9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"for this spec. It will be the responsibility of the operator to detect and"},{"line_number":117,"context_line":"resolve these kinds of conflicts in advance of the migration method proposed"},{"line_number":118,"context_line":"by this spec."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_0cae9c2f","line":119,"in_reply_to":"baada198_346594e2","updated":"2014-07-23 12:22:34.000000000","message":"Or also provide the in-place network switch capability described as the first alternative. Personally I favour this since it has the ability to work for all Nova configurations, not just those support live migration, without downtime for VMs.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"6ed6eee75a73ac5cd06940f05ede2b316dcc93f9","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"However the preference was given to a live migration between hosts as it is"},{"line_number":144,"context_line":"less disruptive and is actually the established pattern for big"},{"line_number":145,"context_line":"migrations/upgrades on real deployments."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"2. Add nova-network compatible mode for linux-bridge-agent:"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_ecd248d0","line":145,"updated":"2014-07-23 12:22:34.000000000","message":"There is a problem that Live migration does not work for all supported VM types. For example if you have instances backed by LVM, you cannot do live migration of them.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"da561535d252fb6b8acdd3229dd1cbb62df4da38","unresolved":false,"context_lines":[{"line_number":201,"context_line":"---------------------"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* a connection reset for all existing TCP connections on the migrated instance"},{"line_number":204,"context_line":"  is expected"},{"line_number":205,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":206,"context_line":"  of L3 services"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_34791431","line":204,"updated":"2014-07-22 16:15:28.000000000","message":"Why? This is not normally a result of a live migration.\n\nNot that I think it\u0027s a huge deal, mind you, but I think we should explain why, if it\u0027s really true.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":201,"context_line":"---------------------"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* a connection reset for all existing TCP connections on the migrated instance"},{"line_number":204,"context_line":"  is expected"},{"line_number":205,"context_line":"* Data-plane outages are possible for the following services during migration"},{"line_number":206,"context_line":"  of L3 services"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_ac905043","line":204,"in_reply_to":"baada198_34791431","updated":"2014-07-23 12:15:56.000000000","message":"I didn\u0027t have a chance to test neutron migration as part of live migration yet, but tests on a single host using libvirt update_device func showed that some time is needed in order to  resresh the arp tables. So I think it is safer to say that outages are possible. I\u0027ll add the explanation.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"6ed6eee75a73ac5cd06940f05ede2b316dcc93f9","unresolved":false,"context_lines":[{"line_number":231,"context_line":"* restart Nova-compute service on each neutron node with \"migrating_to_neutron\""},{"line_number":232,"context_line":"  config option set to False"},{"line_number":233,"context_line":"* stop Nova-network"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Developer impact"},{"line_number":237,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_cce664b0","line":234,"updated":"2014-07-23 12:22:34.000000000","message":"If we\u0027re going with live migration as the approach, then we need to clearly spell out that some valid nova configurations will be impossible to migrate since they lack live migration support currently.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c9259131861c41a024883e752a7deffb76391f58","unresolved":false,"context_lines":[{"line_number":231,"context_line":"* restart Nova-compute service on each neutron node with \"migrating_to_neutron\""},{"line_number":232,"context_line":"  config option set to False"},{"line_number":233,"context_line":"* stop Nova-network"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Developer impact"},{"line_number":237,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_ecaa4170","line":234,"in_reply_to":"baada198_cce664b0","updated":"2014-07-23 14:58:07.000000000","message":"Cold migration gives us coverage for everyone else, although obviously it\u0027s more disruptive. However, I think we\u0027ve got prior art for using migrations (either type) to move between hosts of different configurations.\n\nI would expect that any deployer that expects VMs to stay running across hardware maintenance windows will have chosen an environment where live migration is doable.","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c4685fbc4477cd48455b28a0c6450b96081488ac","unresolved":false,"context_lines":[{"line_number":231,"context_line":"* restart Nova-compute service on each neutron node with \"migrating_to_neutron\""},{"line_number":232,"context_line":"  config option set to False"},{"line_number":233,"context_line":"* stop Nova-network"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Developer impact"},{"line_number":237,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_1b6fad61","line":234,"in_reply_to":"baada198_cce664b0","updated":"2014-07-29 07:59:25.000000000","message":"I\u0027ll add also cold migration approach to this spec in the next revision","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"417f483fb1dca572da604f1f2ac52b6dd8eaea86","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"* ip allocations should be synchronized with nova-net on neutron nodes"},{"line_number":259,"context_line":"* update existing live-migration mechanism to include possible migration from"},{"line_number":260,"context_line":"  nova-ne to neutron. Do not handle security groups and floating ips"},{"line_number":261,"context_line":"* handle instance security groups migration"},{"line_number":262,"context_line":"* handle instance floating ip migration"},{"line_number":263,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_4d83b602","line":260,"updated":"2014-07-21 14:18:03.000000000","message":"nit: nova-net","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9ed18caa803a8046a6ec55e094b16fcfb7a6e6a","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"* ip allocations should be synchronized with nova-net on neutron nodes"},{"line_number":259,"context_line":"* update existing live-migration mechanism to include possible migration from"},{"line_number":260,"context_line":"  nova-ne to neutron. Do not handle security groups and floating ips"},{"line_number":261,"context_line":"* handle instance security groups migration"},{"line_number":262,"context_line":"* handle instance floating ip migration"},{"line_number":263,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"baada198_cc0d84ea","line":260,"in_reply_to":"baada198_4d83b602","updated":"2014-07-23 12:15:56.000000000","message":"Done","commit_id":"c563d2d2da7b2841c593c470be9f58aec26bd93a"}]}
