)]}'
{"specs/newton/approved/auto-live-migration-completion.rst":[{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"d99090f887dcb9cdb82be3aa0fcfe9f071c8007c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1a122d0e_a03fd385","updated":"2016-04-19 14:45:58.000000000","message":"I\u0027m not sure a single dimensional \u0027importance\u0027 provides enough information to determine the strategy.  For example is it a bursty VM that will actually settle down to use less memory changes soon? Are you prepared to take the downsides of postcopy? Do you think autoconverge will help for this load?","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"139f663ccdabc7d76883749172fd9dd92f145d02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1a122d0e_e7333c12","in_reply_to":"1a122d0e_a03fd385","updated":"2016-04-21 07:44:11.000000000","message":"Point taken but I\u0027m not sure how to implement a more sophisticated solution within the constraints of Nova.","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"d99090f887dcb9cdb82be3aa0fcfe9f071c8007c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"it by further increments of 10% until the instance is effectively"},{"line_number":62,"context_line":"paused. The initial decrease and increment size can be adjusted during"},{"line_number":63,"context_line":"the live migration process via the libvirt API."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Post-Copy"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"If enabled the live migration process will make a first pass of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_a024f35f","line":64,"updated":"2016-04-19 14:45:58.000000000","message":"This is specifying too much about the auto-converge process;  there is a autoconverge mechanism in qemu (the parameters to it are still marked experimental but the mechanism is there).  There are also higher level implementations that can be done using cgroups (I think ovirt does that).","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"139f663ccdabc7d76883749172fd9dd92f145d02","unresolved":false,"context_lines":[{"line_number":61,"context_line":"it by further increments of 10% until the instance is effectively"},{"line_number":62,"context_line":"paused. The initial decrease and increment size can be adjusted during"},{"line_number":63,"context_line":"the live migration process via the libvirt API."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Post-Copy"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"If enabled the live migration process will make a first pass of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_a7fb0446","line":64,"in_reply_to":"1a122d0e_a024f35f","updated":"2016-04-21 07:44:11.000000000","message":"Done","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"d99090f887dcb9cdb82be3aa0fcfe9f071c8007c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":81,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":82,"context_line":"be rebooted."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Maximum Downtime Setting"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"In order to perform the switch over from the source to target instances"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_608adb1c","line":83,"updated":"2016-04-19 14:45:58.000000000","message":"Note also that certain things are incompatible with qemu\u0027s postcopy; in particular RDMA migration, file backed memory areas (i.e. explicit huge page) and the multi-thread compression mechanism. (Those are mostly fixable; with varying amounts of work).","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"139f663ccdabc7d76883749172fd9dd92f145d02","unresolved":false,"context_lines":[{"line_number":80,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":81,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":82,"context_line":"be rebooted."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Maximum Downtime Setting"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"In order to perform the switch over from the source to target instances"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_87dfe8d4","line":83,"in_reply_to":"1a122d0e_608adb1c","updated":"2016-04-21 07:44:11.000000000","message":"Done","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"d99090f887dcb9cdb82be3aa0fcfe9f071c8007c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"It is proposed that post copy be enabled in manual mode, i.e. it will"},{"line_number":158,"context_line":"only start performing post copy if an API call is performed to initiate"},{"line_number":159,"context_line":"it."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Alternatives"},{"line_number":162,"context_line":"------------"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_e041cbaa","line":160,"updated":"2016-04-19 14:45:58.000000000","message":"There are some reasonably good heuristics for postcopy; but they can depend a little on the guest behaviour - for example let it do \u0027n\u0027 passes of precopy and then auto switch to postcopy.  IMHO this is better than letting a human control it in most cases.  The choice of \u0027n\u0027 is perhaps guest dependent, for example \u00271\u0027 might be a good choice if you know the load always needs postcopy.","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"139f663ccdabc7d76883749172fd9dd92f145d02","unresolved":false,"context_lines":[{"line_number":157,"context_line":"It is proposed that post copy be enabled in manual mode, i.e. it will"},{"line_number":158,"context_line":"only start performing post copy if an API call is performed to initiate"},{"line_number":159,"context_line":"it."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Alternatives"},{"line_number":162,"context_line":"------------"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a122d0e_47d950f2","line":160,"in_reply_to":"1a122d0e_e041cbaa","updated":"2016-04-21 07:44:11.000000000","message":"Done","commit_id":"fcd4e5108a9c391018529252d5402c43449ed5a2"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"7043abdb437aab5cf02171c6c34dc51f09b827e6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"as far as possible, progress to completion without operator"},{"line_number":34,"context_line":"intervention."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"A new parameter will be added to the live migration API to specify the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_569fdb4f","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":15},"updated":"2016-04-18 15:32:10.000000000","message":"what about drivers other than libvirt?","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"6d4ef0019394c9e7a9ca9764a0a1cbcfdcf4d11f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"as far as possible, progress to completion without operator"},{"line_number":34,"context_line":"intervention."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"A new parameter will be added to the live migration API to specify the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_caca1c1a","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":15},"in_reply_to":"1a122d0e_569fdb4f","updated":"2016-04-19 09:52:36.000000000","message":"Those who maintain other drivers can implement similar enhancements but this spec focuses on the libvirt implementation.","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9830b77da8d539c5e85f7d2dec602220931742b7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"as far as possible, progress to completion without operator"},{"line_number":34,"context_line":"intervention."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"A new parameter will be added to the live migration API to specify the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_a97ea916","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":15},"in_reply_to":"1a122d0e_caca1c1a","updated":"2016-04-19 11:53:50.000000000","message":"Yes, but as you proposing to change API by adding parameter, what if I running env on xenapi and try to migrate instance with new param? will it fail or this param will be ignored? Could you also cover it in spec, please?","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"7043abdb437aab5cf02171c6c34dc51f09b827e6","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The relevant instance availability setting are"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"importance\u003d\u003c\u0027cattle\u0027, \u0027pet\u0027, \u0027panda\u0027\u003e"},{"line_number":107,"context_line":"down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":108,"context_line":"cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":109,"context_line":"tolerate_suspend\u003d\u003cboolean\u003e"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_b6a0efa0","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":37},"updated":"2016-04-18 15:32:10.000000000","message":"could you explicitly describe this model here?","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"6d4ef0019394c9e7a9ca9764a0a1cbcfdcf4d11f","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The relevant instance availability setting are"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"importance\u003d\u003c\u0027cattle\u0027, \u0027pet\u0027, \u0027panda\u0027\u003e"},{"line_number":107,"context_line":"down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":108,"context_line":"cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":109,"context_line":"tolerate_suspend\u003d\u003cboolean\u003e"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_9d833004","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":37},"in_reply_to":"1a122d0e_b6a0efa0","updated":"2016-04-19 09:52:36.000000000","message":"Done","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"7043abdb437aab5cf02171c6c34dc51f09b827e6","unresolved":false,"context_lines":[{"line_number":134,"context_line":"Medium + Panda  \u003d 10"},{"line_number":135,"context_line":"Low + Panda     \u003d  0"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Use this \u0027aggression\u0027 value to determine which features to employ to"},{"line_number":138,"context_line":"complete the migration. The aggression value needs to be equal to or"},{"line_number":139,"context_line":"greater than the values below for the respective feature to be used."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Force-Complete \u003d 40"},{"line_number":142,"context_line":"Auto-Converge  \u003d 35"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_16d563b8","line":139,"range":{"start_line":137,"start_character":0,"end_line":139,"end_character":68},"updated":"2016-04-18 15:32:10.000000000","message":"could you provide example: what things will be enabled if \u0027aggression\u0027 value is equal 35 or 40?","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"6d4ef0019394c9e7a9ca9764a0a1cbcfdcf4d11f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"Medium + Panda  \u003d 10"},{"line_number":135,"context_line":"Low + Panda     \u003d  0"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Use this \u0027aggression\u0027 value to determine which features to employ to"},{"line_number":138,"context_line":"complete the migration. The aggression value needs to be equal to or"},{"line_number":139,"context_line":"greater than the values below for the respective feature to be used."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Force-Complete \u003d 40"},{"line_number":142,"context_line":"Auto-Converge  \u003d 35"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_5d907843","line":139,"range":{"start_line":137,"start_character":0,"end_line":139,"end_character":68},"in_reply_to":"1a122d0e_16d563b8","updated":"2016-04-19 09:52:36.000000000","message":"Done","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"0e40672120a53d8800dca19ad5aa76a56ab2e32b","unresolved":false,"context_lines":[{"line_number":274,"context_line":"Dependencies"},{"line_number":275,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"None"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Testing"},{"line_number":280,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_9919a47c","line":277,"range":{"start_line":277,"start_character":0,"end_line":277,"end_character":4},"updated":"2016-04-18 15:37:41.000000000","message":"I think that you need to add https://review.openstack.org/#/c/305425/ as a prerequisite","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"6d4ef0019394c9e7a9ca9764a0a1cbcfdcf4d11f","unresolved":false,"context_lines":[{"line_number":274,"context_line":"Dependencies"},{"line_number":275,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"None"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Testing"},{"line_number":280,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_7d9d7458","line":277,"range":{"start_line":277,"start_character":0,"end_line":277,"end_character":4},"in_reply_to":"1a122d0e_9919a47c","updated":"2016-04-19 09:52:36.000000000","message":"Done","commit_id":"8bcf917a7611728002028259774ec9462922fe6d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f209cf67166d45eb44db1748e65dac905dd5bf94","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"A new parameter will be added to the live migration API to specify the"},{"line_number":40,"context_line":"importance of the live migration operation. This will accept values of"},{"line_number":41,"context_line":"\u0027low\u0027, \u0027medium\u0027 or \u0027high\u0027 defaulting to \u0027medium\u0027 if omitted."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The live migration processing will use this importance setting as well"},{"line_number":44,"context_line":"as the instance\u0027s availability profile settings[1]_ to determine what"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_29a3b9b3","line":41,"range":{"start_line":41,"start_character":59,"end_line":41,"end_character":60},"updated":"2016-04-19 12:11:37.000000000","message":"I have the same comment as in the previous spec about instance priorties - I\u0027m really not at all a fan of adding such vague concepts as \"low\", \"Medium\", and \"High\" because it doesn\u0027t say anything useful about semantics of this.\n\nI really thing we need to more directly express desired behaviour. For example I could see 3 policies for behaviour of live migration:\n\n- \u0027force-complete\u0027 - guarantee migration completes, regardless of what impact it might have on guest performance SLA requirements\n- \u0027best-effort\u0027 - try to ensure migration completes, throttling performance within bounds allowed by the guest SLA\n- \u0027no-impact\u0027 - try to migrate the guest but do not attempt to throttle its performance.","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c092cf2f5c0ba007530621606421864ed3220f30","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"A new parameter will be added to the live migration API to specify the"},{"line_number":40,"context_line":"importance of the live migration operation. This will accept values of"},{"line_number":41,"context_line":"\u0027low\u0027, \u0027medium\u0027 or \u0027high\u0027 defaulting to \u0027medium\u0027 if omitted."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The live migration processing will use this importance setting as well"},{"line_number":44,"context_line":"as the instance\u0027s availability profile settings[1]_ to determine what"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_517e4a6a","line":41,"range":{"start_line":41,"start_character":59,"end_line":41,"end_character":60},"in_reply_to":"1a122d0e_29a3b9b3","updated":"2016-04-20 17:39:44.000000000","message":"Done","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f209cf67166d45eb44db1748e65dac905dd5bf94","unresolved":false,"context_lines":[{"line_number":115,"context_line":"The relevant instance availability setting are"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"importance\u003d\u003c\u0027cattle\u0027, \u0027pet\u0027, \u0027panda\u0027\u003e"},{"line_number":118,"context_line":"see https://review.openstack.org/#/c/305425/ for definition of these"},{"line_number":119,"context_line":"importance values."},{"line_number":120,"context_line":"down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":121,"context_line":"cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_291a997d","line":118,"range":{"start_line":118,"start_character":19,"end_line":118,"end_character":28},"updated":"2016-04-19 12:11:37.000000000","message":"Per my comments on that spec, I don\u0027t think we should use such vague terms at all.","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c092cf2f5c0ba007530621606421864ed3220f30","unresolved":false,"context_lines":[{"line_number":115,"context_line":"The relevant instance availability setting are"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"importance\u003d\u003c\u0027cattle\u0027, \u0027pet\u0027, \u0027panda\u0027\u003e"},{"line_number":118,"context_line":"see https://review.openstack.org/#/c/305425/ for definition of these"},{"line_number":119,"context_line":"importance values."},{"line_number":120,"context_line":"down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":121,"context_line":"cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_91dbc27b","line":118,"range":{"start_line":118,"start_character":19,"end_line":118,"end_character":28},"in_reply_to":"1a122d0e_291a997d","updated":"2016-04-20 17:39:44.000000000","message":"Done","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d89dcf227ab1b4a3269d8ebf319ed1f3d97f53e6","unresolved":false,"context_lines":[{"line_number":131,"context_line":"Migration importance Medium \u003d 10"},{"line_number":132,"context_line":"Migration importance High   \u003d 25"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Instance importance Cattle \u003d 25"},{"line_number":135,"context_line":"Instance importance Pet    \u003d 15"},{"line_number":136,"context_line":"Instance importance Panda  \u003d 0"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Sum the two numbers so:"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_697ad178","line":136,"range":{"start_line":134,"start_character":0,"end_line":136,"end_character":30},"updated":"2016-04-19 11:48:44.000000000","message":"From my sight it\u0027s quite unclear that instance importance is\ndecreasing sequence, and cattle value is 25, while Panda - 0.","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c092cf2f5c0ba007530621606421864ed3220f30","unresolved":false,"context_lines":[{"line_number":131,"context_line":"Migration importance Medium \u003d 10"},{"line_number":132,"context_line":"Migration importance High   \u003d 25"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Instance importance Cattle \u003d 25"},{"line_number":135,"context_line":"Instance importance Pet    \u003d 15"},{"line_number":136,"context_line":"Instance importance Panda  \u003d 0"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Sum the two numbers so:"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_11d6924e","line":136,"range":{"start_line":134,"start_character":0,"end_line":136,"end_character":30},"in_reply_to":"1a122d0e_697ad178","updated":"2016-04-20 17:39:44.000000000","message":"Done","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f209cf67166d45eb44db1748e65dac905dd5bf94","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Force-Complete \u003d 40"},{"line_number":155,"context_line":"Post-Copy      \u003d 35"},{"line_number":156,"context_line":"Auto-Converge  \u003d 25"},{"line_number":157,"context_line":"Max-Downtime   \u003d 15"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"However apply the following rule as well:"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_8c677be8","line":157,"range":{"start_line":157,"start_character":17,"end_line":157,"end_character":19},"updated":"2016-04-19 12:11:37.000000000","message":"I can\u0027t help feeling this is all getting pretty overly complicated / over engineered, and at the same time a linear scale like this is quite rigid. eg this linear scaling is essentially saying that one migration feature is always better than another migration feature and would not be able to cope with differing levels of desirabilty depending on guest SLA.","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c092cf2f5c0ba007530621606421864ed3220f30","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Force-Complete \u003d 40"},{"line_number":155,"context_line":"Post-Copy      \u003d 35"},{"line_number":156,"context_line":"Auto-Converge  \u003d 25"},{"line_number":157,"context_line":"Max-Downtime   \u003d 15"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"However apply the following rule as well:"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_91490234","line":157,"range":{"start_line":157,"start_character":17,"end_line":157,"end_character":19},"in_reply_to":"1a122d0e_8c677be8","updated":"2016-04-20 17:39:44.000000000","message":"Done","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f209cf67166d45eb44db1748e65dac905dd5bf94","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"If the instance\u0027s down_time_max is non zero then if the migration is"},{"line_number":165,"context_line":"not completing set the maximum downtime setting to this value (*1000"},{"line_number":166,"context_line":"for milliseconds)."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"If tolerate_suspend is false do not use Force-Complete."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_6c249f5f","line":166,"range":{"start_line":166,"start_character":16,"end_line":166,"end_character":18},"updated":"2016-04-19 12:11:37.000000000","message":"It doesn\u0027t make a whole lot of sense to talk about \"if downtime is non-zero\". For every single migration downtime will *always* be non-zero as its technically impossible to complete a migration with zero downtime. Also you don\u0027t want to immediately set downtime to its maximum value as that means that you\u0027ll essentially *always* get that worst case blackout period. The downtime should start very low and slowly ramp up towards the maximum value, so that you maximise the chance of being able to complete with a short blackout period - this is what nova does today. Currently we deal with settings per-host, but we\u0027d want some way to customize them per guest depending on some declared SLA property(s).","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c092cf2f5c0ba007530621606421864ed3220f30","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"If the instance\u0027s down_time_max is non zero then if the migration is"},{"line_number":165,"context_line":"not completing set the maximum downtime setting to this value (*1000"},{"line_number":166,"context_line":"for milliseconds)."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"If tolerate_suspend is false do not use Force-Complete."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_110b32d7","line":166,"range":{"start_line":166,"start_character":16,"end_line":166,"end_character":18},"in_reply_to":"1a122d0e_6c249f5f","updated":"2016-04-20 17:39:44.000000000","message":"Done","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d89dcf227ab1b4a3269d8ebf319ed1f3d97f53e6","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"If tolerate_suspend is false do not use Force-Complete."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"For example, if the aggression value was 35 then the live migration"},{"line_number":171,"context_line":"process would try to perform the live migration normally, i.e. without"},{"line_number":172,"context_line":"employing any of the features listed above. If the live migration"},{"line_number":173,"context_line":"monitor thread detected that the live migration was not progressing"},{"line_number":174,"context_line":"then it would first adjust the Max-Downtime to help it complete."},{"line_number":175,"context_line":"If that was unssuccessful it adjust the auto-converge setting to"},{"line_number":176,"context_line":"allow the cpu to be throttled. If the live migration was still not"},{"line_number":177,"context_line":"able to complete it would switch to Post-Copy mode."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Given an aggression value of 40 the same process as above but if"},{"line_number":180,"context_line":"the instance\u0027s availability profile indicated it could tolerate"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_a93ce9c8","line":177,"range":{"start_line":170,"start_character":0,"end_line":177,"end_character":51},"updated":"2016-04-19 11:48:44.000000000","message":"AFAIR you could adjust \u0027Max-Downtime\u0027 for existing migration, but \u0027Auto-Converge\u0027 requires to abort existing migration and restart it with additional flag. Talking to Post-Copy mode there will be separate workflow, as vm requires all configurations on target nodes to be done before migration started, and also you couldn\u0027t change existing migration to post-copy. So in that case there will be 3 attempt to run live-migration, is it correct?","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c092cf2f5c0ba007530621606421864ed3220f30","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"If tolerate_suspend is false do not use Force-Complete."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"For example, if the aggression value was 35 then the live migration"},{"line_number":171,"context_line":"process would try to perform the live migration normally, i.e. without"},{"line_number":172,"context_line":"employing any of the features listed above. If the live migration"},{"line_number":173,"context_line":"monitor thread detected that the live migration was not progressing"},{"line_number":174,"context_line":"then it would first adjust the Max-Downtime to help it complete."},{"line_number":175,"context_line":"If that was unssuccessful it adjust the auto-converge setting to"},{"line_number":176,"context_line":"allow the cpu to be throttled. If the live migration was still not"},{"line_number":177,"context_line":"able to complete it would switch to Post-Copy mode."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Given an aggression value of 40 the same process as above but if"},{"line_number":180,"context_line":"the instance\u0027s availability profile indicated it could tolerate"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_51000a66","line":177,"range":{"start_line":170,"start_character":0,"end_line":177,"end_character":51},"in_reply_to":"1a122d0e_a93ce9c8","updated":"2016-04-20 17:39:44.000000000","message":"Nope I was not thinking of restarting the live migration but setting up the live migration so that any feature we might use is available","commit_id":"588ecfbb1c45511a7171dd24e281c53de79b7183"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":48,"context_line":"availability:cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":49,"context_line":"availability:tolerate_suspend\u003d\u003cboolean\u003e"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_8e73414d","line":47,"range":{"start_line":47,"start_character":52,"end_line":47,"end_character":53},"updated":"2016-05-06 09:50:44.000000000","message":"I\u0027m not sure we ultimately need this configurable per guest. With the usage of auto-converge and post-copy, the need to set a high max downtime value is greatly diminished, because the auto-converge/post-copy features can cope with pretty much any value. IOW I think it\u0027d be fine to just rely on the global per-host default.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":48,"context_line":"availability:cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":49,"context_line":"availability:tolerate_suspend\u003d\u003cboolean\u003e"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_19f83de5","line":47,"range":{"start_line":47,"start_character":52,"end_line":47,"end_character":53},"in_reply_to":"dab17558_8e73414d","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":48,"context_line":"availability:cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":49,"context_line":"availability:tolerate_suspend\u003d\u003cboolean\u003e"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"If any of these are not specified the following defaults will be"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_aef1e5cf","line":48,"updated":"2016-05-06 09:50:44.000000000","message":"I don\u0027t think this is actually usable in practice. Auto-converge does not let us set a upper bound of throttling percentage. IOW, once you enable auto-converge, it will throttle the guest all the way up to 99% until it completes. There\u0027s no way to tell it to stop throttling at 60%.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":48,"context_line":"availability:cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":49,"context_line":"availability:tolerate_suspend\u003d\u003cboolean\u003e"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"If any of these are not specified the following defaults will be"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_39ca61a2","line":48,"in_reply_to":"dab17558_aef1e5cf","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":48,"context_line":"availability:cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":49,"context_line":"availability:tolerate_suspend\u003d\u003cboolean\u003e"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"If any of these are not specified the following defaults will be"},{"line_number":52,"context_line":"assumed."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_cea549b6","line":49,"range":{"start_line":49,"start_character":38,"end_line":49,"end_character":39},"updated":"2016-05-06 09:50:44.000000000","message":"I\u0027m not sure we really need this - I think I view this as the chief distinction between best-effort and force-complete. In Best-effort mode we should never pause the guest. In force-complete mode we should always pause the guest if necessary to complete.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:down_time_max\u003d\u003cmax down time in seconds\u003e"},{"line_number":48,"context_line":"availability:cpu_throttling_max\u003d\u003cmax cpu throttling percentage\u003e"},{"line_number":49,"context_line":"availability:tolerate_suspend\u003d\u003cboolean\u003e"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"If any of these are not specified the following defaults will be"},{"line_number":52,"context_line":"assumed."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_99738d4d","line":49,"range":{"start_line":49,"start_character":38,"end_line":49,"end_character":39},"in_reply_to":"dab17558_cea549b6","updated":"2016-05-06 10:56:43.000000000","message":"In the past I\u0027ve encountered situations where some customers have indicated that they don\u0027t like their instances being suspended but would rather them be stopped and restarted during maintenance operations whilst others have indicated the opposite.  However I take your point so will remove this.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":72,"context_line":"performance and/or increasing the permitted downtime during switch to"},{"line_number":73,"context_line":"target node within bounds allowed by the guest SLA"},{"line_number":74,"context_line":"\u0027no-impact\u0027 - try to migrate the guest but do not attempt to throttle"},{"line_number":75,"context_line":"its performance or increase downtime above default values."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"The live migration processing will use this importance setting as well"},{"line_number":78,"context_line":"as the instance\u0027s availability profile settings to determine what"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_4e8679ba","line":75,"updated":"2016-05-06 09:50:44.000000000","message":"I\u0027m thinking perhaps we should call it \"low-impact\" since everything has some level of impact on the guest, whether through the downtime period or the inherent cpu spikes due to qemu monitoring page dirtying rate.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":72,"context_line":"performance and/or increasing the permitted downtime during switch to"},{"line_number":73,"context_line":"target node within bounds allowed by the guest SLA"},{"line_number":74,"context_line":"\u0027no-impact\u0027 - try to migrate the guest but do not attempt to throttle"},{"line_number":75,"context_line":"its performance or increase downtime above default values."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"The live migration processing will use this importance setting as well"},{"line_number":78,"context_line":"as the instance\u0027s availability profile settings to determine what"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_79a3499f","line":75,"in_reply_to":"dab17558_4e8679ba","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":126,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":127,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":128,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":129,"context_line":"be rebooted."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Force-Complete"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_ee73edb2","line":129,"range":{"start_line":129,"start_character":11,"end_line":129,"end_character":12},"updated":"2016-05-06 09:50:44.000000000","message":"In testing, the impact on the guest after post-copy is pretty short lived assuming moderate network bandwidth is available. With an extreme memory intensive workload, the impact of post-copy overall is more favourable than auto-converge, because auto-converge has to throttle the guest CPUs dramatically (90-95% or even 99%) before it can get completion and this throttling lasts a very long time - several iterations.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":126,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":127,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":128,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":129,"context_line":"be rebooted."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Force-Complete"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_79f8697d","line":129,"range":{"start_line":129,"start_character":11,"end_line":129,"end_character":12},"in_reply_to":"dab17558_ee73edb2","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Note that Force-Complete is not effective once the switch to Post-Copy"},{"line_number":139,"context_line":"has been performed. Force-Complete will be used instead of Post-Copy"},{"line_number":140,"context_line":"not as well as, see below for details."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Using the live migration importance level and instance availability"},{"line_number":143,"context_line":"profile settings the live migration processing will be initiated and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_ce86e964","line":140,"updated":"2016-05-06 09:50:44.000000000","message":"Whether pausing or switching to post-copying, you\u0027ll have the same amount of remaining memory to transfer. Post-copy has the advantage that the guest continues running. IOW, if post-copy migration is available you\u0027d want the force complete API to trigger a switch to post-copy mode, instead of pausing. The only exception is if the failure risk is unacceptable","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Note that Force-Complete is not effective once the switch to Post-Copy"},{"line_number":139,"context_line":"has been performed. Force-Complete will be used instead of Post-Copy"},{"line_number":140,"context_line":"not as well as, see below for details."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Using the live migration importance level and instance availability"},{"line_number":143,"context_line":"profile settings the live migration processing will be initiated and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_39354146","line":140,"in_reply_to":"dab17558_ce86e964","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":160,"context_line":"increase the downtime allowed during the switch-over until the"},{"line_number":161,"context_line":"migration completes or the instance\u0027s maximum downtime is reached."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Auto-Converge and Post-Copy will be disabled for no-impact migrations."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Best-Effort."},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_0e81114b","line":163,"updated":"2016-05-06 09:50:44.000000000","message":"Yep,  no-impact should basically be what Nova does today.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":160,"context_line":"increase the downtime allowed during the switch-over until the"},{"line_number":161,"context_line":"migration completes or the instance\u0027s maximum downtime is reached."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Auto-Converge and Post-Copy will be disabled for no-impact migrations."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Best-Effort."},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_593c852f","line":163,"in_reply_to":"dab17558_0e81114b","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":171,"context_line":"the expected CPU speed. The use of auto-converge the initial decrease"},{"line_number":172,"context_line":"will be set to 20%. The increment value will be set to 10%. The"},{"line_number":173,"context_line":"default behaviour will be to allow Auto-converge to increment the"},{"line_number":174,"context_line":"CPU throttling automatically."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"At present there is no mechanism to limit the percentage of CPU"},{"line_number":177,"context_line":"throttling. We may be able to implement an upper limit by detecting"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_8ee4e13b","line":174,"updated":"2016-05-06 09:50:44.000000000","message":"If post-copy is available, we should not use auto-converge at all, as it imposes a significant impact on guest performance.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"55dfef0cfbcc0c0803e17d753428f9464bf0fea5","unresolved":false,"context_lines":[{"line_number":171,"context_line":"the expected CPU speed. The use of auto-converge the initial decrease"},{"line_number":172,"context_line":"will be set to 20%. The increment value will be set to 10%. The"},{"line_number":173,"context_line":"default behaviour will be to allow Auto-converge to increment the"},{"line_number":174,"context_line":"CPU throttling automatically."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"At present there is no mechanism to limit the percentage of CPU"},{"line_number":177,"context_line":"throttling. We may be able to implement an upper limit by detecting"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_b94931d3","line":174,"in_reply_to":"dab17558_8ee4e13b","updated":"2016-05-06 10:56:43.000000000","message":"Done","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b2de763922fe0eec74bfb2126de977d9840cc7e1","unresolved":false,"context_lines":[{"line_number":205,"context_line":"regardless of the instance\u0027s availability settings."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Even if the instance\u0027s tolerate_suspend setting is false use it if all"},{"line_number":208,"context_line":"other options fail to complete the migration."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Alternatives"},{"line_number":211,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_ce64294b","line":208,"range":{"start_line":208,"start_character":44,"end_line":208,"end_character":45},"updated":"2016-05-06 09:50:44.000000000","message":"Overall we have 2 scenarios:\n\n1. Post-copy is available.\n\nIn this case best-effort and force-complete should be treated essentially the same - we just enable post-copy and switch to post-copy mode when we see the guest stop making progress.\n\n2. Auto-converge is available.\n\nIn this case it is questionable whether we should use auto-converge for best-effort since it ultimately throttles all the way to 99% if needed. So I tend to think auto-converge is only suitable for use under force-complete mode\n\nIndeed, this makes me wonder whether we actually need the \u0027best-effort\u0027 mode I suggested. Perhaps we should stick with simpler option initially of just \u0027no-impact\u0027 and \u0027force-complete\u0027 and re-consider if we need to add a \"best-effort\" at a later date based on operator feedback.","commit_id":"9185a4bfb67f66013a36cbb99347d12237af63a5"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Define instance availability settings. These will be name/value pairs"},{"line_number":40,"context_line":"that would be expressed as flavor extra specs or scheduler hints. If"},{"line_number":41,"context_line":"the same setting is present in the flavor extra specs and instance"},{"line_number":42,"context_line":"scheduler hints the latter will override the former, allowing users"},{"line_number":43,"context_line":"to override settings on a per instance basis."}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_f00b3522","line":40,"range":{"start_line":40,"start_character":49,"end_line":40,"end_character":64},"updated":"2016-05-10 20:11:29.000000000","message":"Why scheduler hints? It isn\u0027t something that scheduler will use in any case, but description of an instance.\n\nAnd one more thing - isn\u0027t there any case where we drop scheduler hints from original request spec?","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Define instance availability settings. These will be name/value pairs"},{"line_number":40,"context_line":"that would be expressed as flavor extra specs or scheduler hints. If"},{"line_number":41,"context_line":"the same setting is present in the flavor extra specs and instance"},{"line_number":42,"context_line":"scheduler hints the latter will override the former, allowing users"},{"line_number":43,"context_line":"to override settings on a per instance basis."}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_225d5c15","line":40,"range":{"start_line":40,"start_character":49,"end_line":40,"end_character":64},"in_reply_to":"dab17558_f00b3522","updated":"2016-05-11 06:24:54.000000000","message":"My thinking is that the scheduler hint can be used to override the extra spec associated with the flavor, allowing a user to use a flavor which has as particular set of availability settings but override one or more.\n\nI see scheduler hints in the request spec, not sure why they would be omitted but will check this.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"By default it will initially decrease the CPU speed by 30% then reduce"},{"line_number":91,"context_line":"it by further increments of 10% until the instance is effectively"},{"line_number":92,"context_line":"paused. The initial decrease and increment size can be adjusted during"},{"line_number":93,"context_line":"the live migration process via the libvirt API."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Auto-converge can only be used if libvirt version 1.2.3 and qemu"},{"line_number":96,"context_line":"version 2.5 are installed on the source compute node. A nova"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_2bd0acf5","line":93,"range":{"start_line":92,"start_character":7,"end_line":93,"end_character":47},"updated":"2016-05-10 20:11:29.000000000","message":"Is this exposed through libvirt API? These two are still marked as experimental in QEMU and I haven\u0027t found any commit that adds these parameters to libvirt API.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"By default it will initially decrease the CPU speed by 30% then reduce"},{"line_number":91,"context_line":"it by further increments of 10% until the instance is effectively"},{"line_number":92,"context_line":"paused. The initial decrease and increment size can be adjusted during"},{"line_number":93,"context_line":"the live migration process via the libvirt API."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Auto-converge can only be used if libvirt version 1.2.3 and qemu"},{"line_number":96,"context_line":"version 2.5 are installed on the source compute node. A nova"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_c2af307b","line":93,"range":{"start_line":92,"start_character":7,"end_line":93,"end_character":47},"in_reply_to":"dab17558_2bd0acf5","updated":"2016-05-11 06:24:54.000000000","message":"The docs say it is and David Gilbert confirmed this exists but also pointed out it was experimental and thus should probably not be used at this stage. We are not proposing to do so, they are simply mentioned as background so will remove this to avoid confusion.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":98,"context_line":"added with a default value of false. The operator must set this flag to"},{"line_number":99,"context_line":"true to make auto-converge available. If the flag is enabled but the"},{"line_number":100,"context_line":"versions of libvirt and qemu installed do not support auto-converge"},{"line_number":101,"context_line":"then the flagwill be reset to false and an error message will be"},{"line_number":102,"context_line":"written to the log file."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_547150a7","line":101,"range":{"start_line":101,"start_character":9,"end_line":101,"end_character":17},"updated":"2016-05-10 20:11:29.000000000","message":"flag will","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":98,"context_line":"added with a default value of false. The operator must set this flag to"},{"line_number":99,"context_line":"true to make auto-converge available. If the flag is enabled but the"},{"line_number":100,"context_line":"versions of libvirt and qemu installed do not support auto-converge"},{"line_number":101,"context_line":"then the flagwill be reset to false and an error message will be"},{"line_number":102,"context_line":"written to the log file."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_02ce5862","line":101,"range":{"start_line":101,"start_character":9,"end_line":101,"end_character":17},"in_reply_to":"dab17558_547150a7","updated":"2016-05-11 06:24:54.000000000","message":"Done","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":109,"context_line":"been updated on the target from the source as they are accessed."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Post-copy must be enabled prior to the migration starting if it is to"},{"line_number":112,"context_line":"be employed.  A libvirt API is call is performed to tell it to switch."},{"line_number":113,"context_line":"Post-copy can only be used if libvirt version 1.3.3 and qemu"},{"line_number":114,"context_line":"version 2.5 are installed on the source and target compute nodes. A"},{"line_number":115,"context_line":"nova configuration flag called :code:`live_migration_post_copy` will be"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_f46044d1","line":112,"range":{"start_line":112,"start_character":24,"end_line":112,"end_character":38},"updated":"2016-05-10 20:11:29.000000000","message":"API call is performed","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"b2edfd77827765d63486861fa732256356bc9e89","unresolved":false,"context_lines":[{"line_number":109,"context_line":"been updated on the target from the source as they are accessed."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Post-copy must be enabled prior to the migration starting if it is to"},{"line_number":112,"context_line":"be employed.  A libvirt API is call is performed to tell it to switch."},{"line_number":113,"context_line":"Post-copy can only be used if libvirt version 1.3.3 and qemu"},{"line_number":114,"context_line":"version 2.5 are installed on the source and target compute nodes. A"},{"line_number":115,"context_line":"nova configuration flag called :code:`live_migration_post_copy` will be"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_edcce58a","line":112,"range":{"start_line":112,"start_character":24,"end_line":112,"end_character":38},"in_reply_to":"dab17558_f46044d1","updated":"2016-05-11 06:45:15.000000000","message":"Done","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":124,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":125,"context_line":"be rebooted."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":128,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"},{"line_number":129,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Live-migration-force-complete"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_9471f878","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":44},"updated":"2016-05-10 20:11:29.000000000","message":"How are we going to detect this? Right now the only way to turn it on is to add RDMA flag to live_migration_flags, but we want to remove live_migration_flags in Newton cycle.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":124,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":125,"context_line":"be rebooted."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":128,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"},{"line_number":129,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Live-migration-force-complete"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_822ec8f8","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":44},"in_reply_to":"dab17558_9471f878","updated":"2016-05-11 06:24:54.000000000","message":"if we decide to continue to support this flag the we need to check it is not turned on prior to switching to post-copy.  If we remove it and use some other mechanism to control it we will need to ensure that whatever we use is visible to the live migration monitor thread.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":128,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"},{"line_number":129,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Live-migration-force-complete"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_941f3807","line":129,"range":{"start_line":129,"start_character":33,"end_line":129,"end_character":67},"updated":"2016-05-10 20:11:29.000000000","message":"Same here, what will happen if someone turns it on through libvirt API and then trigger post-copy live migration?","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":128,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"},{"line_number":129,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Live-migration-force-complete"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_a285cccf","line":129,"range":{"start_line":129,"start_character":33,"end_line":129,"end_character":67},"in_reply_to":"dab17558_941f3807","updated":"2016-05-11 06:24:54.000000000","message":"only the nova compute manager on the source node should be issuing such API calls.  If we add the facility the do so then we need to ensure that the ive migration monitor thread is able to detect this action.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":131,"context_line":"Live-migration-force-complete"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"The \u0027live-migration-force-complete\u0027 operation on an ongoing live"},{"line_number":134,"context_line":"migrationcan be used to suspended (paused in libvirt parlance) to"},{"line_number":135,"context_line":"allow the migration to complete. It will be automatically resumed"},{"line_number":136,"context_line":"when the migration completes and it switches to the target."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_f4184420","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":12},"updated":"2016-05-10 20:11:29.000000000","message":"migration can","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":131,"context_line":"Live-migration-force-complete"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"The \u0027live-migration-force-complete\u0027 operation on an ongoing live"},{"line_number":134,"context_line":"migrationcan be used to suspended (paused in libvirt parlance) to"},{"line_number":135,"context_line":"allow the migration to complete. It will be automatically resumed"},{"line_number":136,"context_line":"when the migration completes and it switches to the target."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_e26b541c","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":12},"in_reply_to":"dab17558_f4184420","updated":"2016-05-11 06:24:54.000000000","message":"Done","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"616e70a658349f15eb22df149af5fc524ba43e48","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"None"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"Other deployer impact"},{"line_number":276,"context_line":"---------------------"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_94a29897","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":21},"updated":"2016-05-10 20:11:29.000000000","message":"-mlock in QEMU will not work as expected when post-copy is used. Should we describe it somewhere in this spec? If someone is paranoid about running out of memory it might cause some problems.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"8f79bdf1930205c1bd0bb0eb90115b8a62134670","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"None"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"Other deployer impact"},{"line_number":276,"context_line":"---------------------"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_629be418","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":21},"in_reply_to":"dab17558_94a29897","updated":"2016-05-11 06:24:54.000000000","message":"as described above, only the nova compute process should be messing with libvirt or qemu so we need to ensure we understand the impact of any actions we expose.","commit_id":"ba2883f0495f4eecb7fcb736a0ce2c40633e744c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"15fa1cd88d905ce5b4759c7b4190e6e787a43ab4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"the live migration process via the libvirt API. However these API calls"},{"line_number":94,"context_line":"are experimental so nova will not be using them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Auto-converge can only be used if libvirt version 1.2.3 and qemu"},{"line_number":97,"context_line":"version 2.5 are installed on the source compute node. A nova"},{"line_number":98,"context_line":"configuration flag called :code:`live_migration_auto_converge` will be"},{"line_number":99,"context_line":"added with a default value of false. The operator must set this flag to"},{"line_number":100,"context_line":"true to make auto-converge available. If the flag is enabled but the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_a8a12b48","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":52},"updated":"2016-05-11 07:51:04.000000000","message":"Static auto converge can be used since QEMU 1.6. Don\u0027t we want to make it possible too? It throttles down CPU by 75% if LM is stuck. Might be helpful for people with older libvirt/qemu when they don\u0027t have an option to use post-copy and auto converge is the only way to accelerate process without pausing an instance. There are a lot of distros with QEMU older than 2.5 supported in Newton: https://wiki.openstack.org/wiki/LibvirtDistroSupportMatrix","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"15fa1cd88d905ce5b4759c7b4190e6e787a43ab4","unresolved":false,"context_lines":[{"line_number":117,"context_line":"added with a default value of true. The operator should set this flag"},{"line_number":118,"context_line":"to false if they wish to globally prevent this feature from being"},{"line_number":119,"context_line":"employed. If the flag is enabled but the versions of libvirt and qemu"},{"line_number":120,"context_line":"installed do not support auto-converge then the flag will be reset to"},{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_089af7b8","line":120,"range":{"start_line":120,"start_character":25,"end_line":120,"end_character":38},"updated":"2016-05-11 07:51:04.000000000","message":"It should be post-copy here","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c9cbc7da2306a6c7e0674f4ecf5b5b3db43973e5","unresolved":false,"context_lines":[{"line_number":117,"context_line":"added with a default value of true. The operator should set this flag"},{"line_number":118,"context_line":"to false if they wish to globally prevent this feature from being"},{"line_number":119,"context_line":"employed. If the flag is enabled but the versions of libvirt and qemu"},{"line_number":120,"context_line":"installed do not support auto-converge then the flag will be reset to"},{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_6e8e2b2f","line":120,"range":{"start_line":120,"start_character":25,"end_line":120,"end_character":38},"in_reply_to":"dab17558_089af7b8","updated":"2016-05-11 08:19:49.000000000","message":"Done","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"15fa1cd88d905ce5b4759c7b4190e6e787a43ab4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_68d62350","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"updated":"2016-05-11 07:51:04.000000000","message":"So I understand that if migration fails I will need to take action and reboot VM manually? Isn\u0027t it more like hypervisor will reboot instance on destination/source automatically?","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c9cbc7da2306a6c7e0674f4ecf5b5b3db43973e5","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_4edb671b","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"in_reply_to":"dab17558_68d62350","updated":"2016-05-11 08:19:49.000000000","message":"Not sure if that would happen automatically, it might place it in error state. If we can detect this scenario and do an automatic reboot that might be a good approach?","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"15fa1cd88d905ce5b4759c7b4190e6e787a43ab4","unresolved":false,"context_lines":[{"line_number":171,"context_line":"until the migration completes or the configured maximum downtime is"},{"line_number":172,"context_line":"reached."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Auto-converge will be not be enabled."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Post-copy will be enabled if available but will not be employed unless"},{"line_number":177,"context_line":"the operator performs a \u0027live-migration-force-complete\u0027 operation and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_882f073e","line":174,"range":{"start_line":174,"start_character":13,"end_line":174,"end_character":28},"updated":"2016-05-11 07:51:04.000000000","message":"will not be","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c9cbc7da2306a6c7e0674f4ecf5b5b3db43973e5","unresolved":false,"context_lines":[{"line_number":171,"context_line":"until the migration completes or the configured maximum downtime is"},{"line_number":172,"context_line":"reached."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Auto-converge will be not be enabled."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Post-copy will be enabled if available but will not be employed unless"},{"line_number":177,"context_line":"the operator performs a \u0027live-migration-force-complete\u0027 operation and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_8e070f81","line":174,"range":{"start_line":174,"start_character":13,"end_line":174,"end_character":28},"in_reply_to":"dab17558_882f073e","updated":"2016-05-11 08:19:49.000000000","message":"Done","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"15fa1cd88d905ce5b4759c7b4190e6e787a43ab4","unresolved":false,"context_lines":[{"line_number":234,"context_line":"      \"os-migrateLive\": {"},{"line_number":235,"context_line":"          \"importance\": “force-complete”,"},{"line_number":236,"context_line":"      }"},{"line_number":237,"context_line":"}"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"  Normal http response code: `202 Accepted`"},{"line_number":240,"context_line":"  No response body is needed"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_88b9c7ce","line":237,"updated":"2016-05-11 07:51:04.000000000","message":"indentation","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"c9cbc7da2306a6c7e0674f4ecf5b5b3db43973e5","unresolved":false,"context_lines":[{"line_number":234,"context_line":"      \"os-migrateLive\": {"},{"line_number":235,"context_line":"          \"importance\": “force-complete”,"},{"line_number":236,"context_line":"      }"},{"line_number":237,"context_line":"}"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"  Normal http response code: `202 Accepted`"},{"line_number":240,"context_line":"  No response body is needed"}],"source_content_type":"text/x-rst","patch_set":10,"id":"dab17558_ae001367","line":237,"in_reply_to":"dab17558_88b9c7ce","updated":"2016-05-11 08:19:49.000000000","message":"Done","commit_id":"902d825a90d14d1dfc31f99543a439eccd6e251b"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"455ef34b51fa1b01d5cf0b543f1cb85586bbbf64","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:tolerate_migration_risk\u003d\u003cboolean\u003e"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"If this is not specified the default will be True. Setting this to False"},{"line_number":50,"context_line":"will cause the instance to be suspended rather than using migration"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_87324da5","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":46},"updated":"2016-05-11 11:19:41.000000000","message":"I don\u0027t really think this is a sensible / practical thing to define, as \"risk\" is a very nebulous concept in a cloud world.\n\nTenant users have no idea what kind of \"risk\" their VMs would be susceptible to since they have no idea what kind of network topology is in use between the compute nodes. ie, only the cloud admin knows whether migration is taking place over a network link that has redundancy built in, or indeed whether the network is even using TCP as opposed to RDMA.\n\nThis is really true of the cloud compute service in general. Whether the tenant user is running pets or cattle, they have little to no idea about the level of risk to their VM operation when running normally. eg they\u0027ve no idea what memory overcommit setting is applied to the compute host and whether there is sufficient swap available to prevent their VM being killed by OOM killer if memory pressure gets too high.\n\nThe only people who are in a position to judge risk are the cloud admins. As such it only makes sense to decide between things like post-copy, auto-converge or other strategies based on cloud admin knowledge, via nova configuration settings. I don\u0027t see any way in a which a tenant user can make a meaningful judgement / decision on a per-VM basis as they simply don\u0027t have any credible information on which to evaluate it.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"b02d64dec451cb059baf7f0dbf1d76135a3d4b7b","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:tolerate_migration_risk\u003d\u003cboolean\u003e"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"If this is not specified the default will be True. Setting this to False"},{"line_number":50,"context_line":"will cause the instance to be suspended rather than using migration"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_ea667db9","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":46},"in_reply_to":"dab17558_87324da5","updated":"2016-05-11 11:42:28.000000000","message":"While i don\u0027t really like the \u0027risk\u0027 idea, I think the VM user may have some idea of how important the VM is.\nTheir cloud provider may also provide a range of different VM types that are scheduled on hardware/networks of varying quality that are described to the user (e.g. this type costs you more but it\u0027s run on the shiny new hardware with redundent PSUs and networking).","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"5d075ab65e2f2fcd80153563cbcec36da6c9f813","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:tolerate_migration_risk\u003d\u003cboolean\u003e"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"If this is not specified the default will be True. Setting this to False"},{"line_number":50,"context_line":"will cause the instance to be suspended rather than using migration"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_e94e8239","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":46},"in_reply_to":"dab17558_8d11cb5f","updated":"2016-05-11 14:29:48.000000000","message":"Done","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f94aa3c2a185e6476e6f4d7c6d205c4c97673a74","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Initially we will define the following availability settings:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"availability:tolerate_migration_risk\u003d\u003cboolean\u003e"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"If this is not specified the default will be True. Setting this to False"},{"line_number":50,"context_line":"will cause the instance to be suspended rather than using migration"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_8d11cb5f","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":46},"in_reply_to":"dab17558_ea667db9","updated":"2016-05-11 12:02:26.000000000","message":"The problem is that there\u0027s no way to express risk for different cloud deployments. Two different deployments of openstack can have totally different technology beneath them, so this suggested image parameter can never have any clearly defined, let alone consistent, semantics between different cloud deployments. So this isn\u0027t the kind of image property we can support in Nova.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"455ef34b51fa1b01d5cf0b543f1cb85586bbbf64","unresolved":false,"context_lines":[{"line_number":100,"context_line":"true to make auto-converge available. If the flag is enabled but the"},{"line_number":101,"context_line":"versions of libvirt and qemu installed do not support auto-converge"},{"line_number":102,"context_line":"then the flag will be reset to false and an error message will be"},{"line_number":103,"context_line":"written to the log file."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Post-Copy"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_a7bf915f","line":103,"range":{"start_line":103,"start_character":23,"end_line":103,"end_character":24},"updated":"2016-05-11 11:19:41.000000000","message":"IMHO we should treat the config option as a tri-state with a default value of None. eg\n\n - auto_converge \u003d\u003d None -\u003e try to use auto-converge if it is available, and no other better migration strategy is available, fallback to plain migration if not available\n - auto_converge \u003d\u003d no - never use auto-converge\n - auto_converge \u003d\u003d yes - use auto-converge if available and no other better migration strategy is availble. error if auto-converge is not available\n\nWith a default of None, so that users who have it available will benefit out of the box","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"5d075ab65e2f2fcd80153563cbcec36da6c9f813","unresolved":false,"context_lines":[{"line_number":100,"context_line":"true to make auto-converge available. If the flag is enabled but the"},{"line_number":101,"context_line":"versions of libvirt and qemu installed do not support auto-converge"},{"line_number":102,"context_line":"then the flag will be reset to false and an error message will be"},{"line_number":103,"context_line":"written to the log file."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Post-Copy"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_09b94615","line":103,"range":{"start_line":103,"start_character":23,"end_line":103,"end_character":24},"in_reply_to":"dab17558_a7bf915f","updated":"2016-05-11 14:29:48.000000000","message":"Done","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"455ef34b51fa1b01d5cf0b543f1cb85586bbbf64","unresolved":false,"context_lines":[{"line_number":118,"context_line":"to false if they wish to globally prevent this feature from being"},{"line_number":119,"context_line":"employed. If the flag is enabled but the versions of libvirt and qemu"},{"line_number":120,"context_line":"installed do not support post-copy then the flag will be reset to"},{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_87fd2c70","line":121,"range":{"start_line":121,"start_character":58,"end_line":121,"end_character":59},"updated":"2016-05-11 11:19:41.000000000","message":"I\u0027d suggest we treat the config opt as a tri-state with default of None, as with autoconverge opt.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"5d075ab65e2f2fcd80153563cbcec36da6c9f813","unresolved":false,"context_lines":[{"line_number":118,"context_line":"to false if they wish to globally prevent this feature from being"},{"line_number":119,"context_line":"employed. If the flag is enabled but the versions of libvirt and qemu"},{"line_number":120,"context_line":"installed do not support post-copy then the flag will be reset to"},{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_49886e71","line":121,"range":{"start_line":121,"start_character":58,"end_line":121,"end_character":59},"in_reply_to":"dab17558_87fd2c70","updated":"2016-05-11 14:29:48.000000000","message":"Done","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"94a143aac6749510d5d482f9fe91ca7f9d0358e2","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_6ecd8b30","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"updated":"2016-05-11 08:24:45.000000000","message":"So we need to make it clear what it really means. Will hypervisor handle it or do we need to handle it in nova?","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"b2b9b78e0800103d0b80185981b5833819811b1f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_c25a8bf1","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"in_reply_to":"dab17558_6ecd8b30","updated":"2016-05-11 08:40:44.000000000","message":"The hypervisor won\u0027t reboot it - depending on the failure one of the source or the destination might die and the other one be left paused (I\u0027m not sure of libvirt\u0027s behaviour when this happens).  The important point is that no one tries to restart the source after this happens if we\u0027ve entered postcopy, since storage may have been written by the destination and is inconsistent with the state as seen by the source.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"5d075ab65e2f2fcd80153563cbcec36da6c9f813","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_c9ad7eea","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"in_reply_to":"dab17558_87aa4c83","updated":"2016-05-11 14:29:48.000000000","message":"In the event of a prolonged loss of network connectivity between compute nodes the migration will fail and because it was in post copy mode the \u0027rollback\u0027 code should destroy the source instance and leave the instance on the target node.  Seems to me that assuming that the disk data has been copied to the target then the instance on the target node can be restored with a simple hard reboot or start, i.e. libvirt destroy and start. There is no need to place the instance in a error state, simply shutting it down should be enough.  However if error state is seen as being more appropriate then a rest-state --active and hard reboot should still restore the instance?","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"8c6865eb425e82be8f4e4d250da75bf7b475f99c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_e5f23905","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"in_reply_to":"dab17558_c25a8bf1","updated":"2016-05-11 08:59:21.000000000","message":"Looks like libvirt does not change VM state in case of a fail during post copy phase: https://github.com/libvirt/libvirt/commit/630517d86077403381eefcf901e4e4e99590b083","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"a8da61622898aa12d00cfc5cd7d538cb86733fc0","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_9899fdc6","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"in_reply_to":"dab17558_c9ad7eea","updated":"2016-05-11 15:34:39.000000000","message":"The question is what we do to the VM on the target node. We can\u0027t simply leave it in a paused state, as that would allow the user to restart it which is certainly not safe. We would have to either kill the VM on *both* source and target, or leave it in an error state, at which point it must be manually killed to clear the error.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"455ef34b51fa1b01d5cf0b543f1cb85586bbbf64","unresolved":false,"context_lines":[{"line_number":121,"context_line":"false and an error message will be written to the log file."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The use of Post-Copy has an impact on instance performance after the"},{"line_number":124,"context_line":"switch to post copying mode. Also, once in post copy mode if the"},{"line_number":125,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":126,"context_line":"be rebooted."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Note that post-copy will not be enabled if it is detected that it is"},{"line_number":129,"context_line":"not viable due to the uses of RDMA migration, file backed memory areas"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_87aa4c83","line":126,"range":{"start_line":124,"start_character":29,"end_line":126,"end_character":12},"in_reply_to":"dab17558_e5f23905","updated":"2016-05-11 11:19:41.000000000","message":"We need to be more explicit here about the actual failure scenario.  \n\nSpecifically the problems are:\n\n - If the source host or QEMU crashes while post-copy is taking place, we loose the VM as there\u0027s no way to get the oustanding memory pages. This is not really any different/worse than if the host or QEMU crashes while running normally.  QEMU or host crashes \u003d\u003d bye bye VM whether migration is running or not.\n\n - If the network between source and target host fails in a non-recoverable way, then we loose the VM as there\u0027s again no way to get outstanding memory pages. Even though the source QEMU may still exists we can\u0027t talk to it. Since migration uses TCP, a transient network failure is not a problem, since TCP will recover and carry on. Only if we get a prolonged or permanent network failure are we in trouble. The likelihood of this happening depends on the network topology between the 2 hosts. If there are redundant switches and bonded network interfaces, you have a higher degree or reliability than if there\u0027s just a single network interface \u0026 switch between the 2 hosts.\n\nIn the case of failure, the VM would have to be marked as in an error state in nova. The only option at this point is to destroy the VM and boot it fresh, as you would if a compute host died.\n\nAs noted above, there are always failure scenarios for VMs, even when they are not migrating between hosts. Post-copy does introduce a new potential failure scenario once migration has switched to the post-copy phase. It should be noted though that the chance of this failure is small and mitigated if you have redundancy in the network layer. Also the window in which this failure can strike is also pretty small. ie if you have a 10gbs network link, and you switch to post-copy mode with only 1GB of guest RAM outstanding to copy, the window of risk is barely 1 second long.\n\nIOW, in general the benefit of post-copy should outweigh the small window of risk for all but the most paranoid deployments.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"455ef34b51fa1b01d5cf0b543f1cb85586bbbf64","unresolved":false,"context_lines":[{"line_number":130,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":131,"context_line":"Thus when adding any features to Nova that interact with libvirt or qemu"},{"line_number":132,"context_line":"we need to ensure that actions taken do not adversely impact on going"},{"line_number":133,"context_line":"operations such as live migration."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Live-migration-force-complete"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_27bc40ba","line":133,"updated":"2016-05-11 11:19:41.000000000","message":"We\u0027re not using multi-thread compression in Nova so there;s no point in mentioning it here.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"ff56c5abe9162b564a6409b4bbbfd9b0f58d98b5","unresolved":false,"context_lines":[{"line_number":130,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":131,"context_line":"Thus when adding any features to Nova that interact with libvirt or qemu"},{"line_number":132,"context_line":"we need to ensure that actions taken do not adversely impact on going"},{"line_number":133,"context_line":"operations such as live migration."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Live-migration-force-complete"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_6714884c","line":133,"in_reply_to":"dab17558_27bc40ba","updated":"2016-05-11 11:27:04.000000000","message":"What about RDMA? live_migration_flags conf option is marked as deprecated and we wanted to remove it during Newton cycle as far as I remember. Probably we will need another config option to keep it there in nova. Thoughts?","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0941daea34339438beb207d74ab363e8193b1eaa","unresolved":false,"context_lines":[{"line_number":130,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":131,"context_line":"Thus when adding any features to Nova that interact with libvirt or qemu"},{"line_number":132,"context_line":"we need to ensure that actions taken do not adversely impact on going"},{"line_number":133,"context_line":"operations such as live migration."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Live-migration-force-complete"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_aacf5554","line":133,"in_reply_to":"dab17558_6714884c","updated":"2016-05-11 11:35:24.000000000","message":"This isn\u0027t really something that\u0027s relevant to this spec. In general though RDMA requires locking guest memory into physical RAM. RMDA can either do that on-demand, or all upfront. For hosts that are running VMs with over-commit we should simply not use RDMA at all, since pinning a guest into RAM on an overcommit host risks causing OOM for other guests. For hosts that are running VMs with dedicated RAM with huge pages, the pages are already inherantly pinned into RAM, so there\u0027s no need to set the VIR_MIGRATE_RDMA_PIN_ALL flag. So I don\u0027t think there\u0027s any compelling reason to expose ability to set this flag explicitly in nova.conf.","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"5d075ab65e2f2fcd80153563cbcec36da6c9f813","unresolved":false,"context_lines":[{"line_number":130,"context_line":"(i.e. explicit huge page) or the multi-thread compression mechanism."},{"line_number":131,"context_line":"Thus when adding any features to Nova that interact with libvirt or qemu"},{"line_number":132,"context_line":"we need to ensure that actions taken do not adversely impact on going"},{"line_number":133,"context_line":"operations such as live migration."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Live-migration-force-complete"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_13d699f0","line":133,"in_reply_to":"dab17558_aacf5554","updated":"2016-05-11 14:29:48.000000000","message":"Done","commit_id":"159c6fa54852a0965af1b966daa72aaad0921e5d"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"When an operator performs a live migration they need to monitor it to"},{"line_number":24,"context_line":"ensure it is making progress and take actions to help it complete."},{"line_number":25,"context_line":"This is labor intensive and this expensive in terms of cloud operating"},{"line_number":26,"context_line":"costs. It would be preferable if the live migration process could"},{"line_number":27,"context_line":"automatically take action to try and complete the migration."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_8e16aaef","line":25,"range":{"start_line":25,"start_character":28,"end_line":25,"end_character":32},"updated":"2016-05-12 11:06:01.000000000","message":"s/this//","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"When an operator performs a live migration they need to monitor it to"},{"line_number":24,"context_line":"ensure it is making progress and take actions to help it complete."},{"line_number":25,"context_line":"This is labor intensive and this expensive in terms of cloud operating"},{"line_number":26,"context_line":"costs. It would be preferable if the live migration process could"},{"line_number":27,"context_line":"automatically take action to try and complete the migration."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_e598301e","line":25,"range":{"start_line":25,"start_character":28,"end_line":25,"end_character":32},"in_reply_to":"dab17558_8e16aaef","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"----------"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As an operator of an OpenStack cloud, I like live migrations to,"},{"line_number":33,"context_line":"as far as possible, progress to completion without operator"},{"line_number":34,"context_line":"intervention."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_8e722a48","line":32,"range":{"start_line":32,"start_character":38,"end_line":32,"end_character":44},"updated":"2016-05-12 11:06:01.000000000","message":"maybe \"I would like\"","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"----------"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As an operator of an OpenStack cloud, I like live migrations to,"},{"line_number":33,"context_line":"as far as possible, progress to completion without operator"},{"line_number":34,"context_line":"intervention."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_05ed748e","line":32,"range":{"start_line":32,"start_character":38,"end_line":32,"end_character":44},"in_reply_to":"dab17558_8e722a48","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":58,"context_line":"during the live migration process via a libvirt API call. Increasing"},{"line_number":59,"context_line":"this value may enable the migration to complete."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Auto-converge."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"This feature provides a method for slowing down guest execution speed"},{"line_number":64,"context_line":"in order to allow the live migration to copy dirty memory pages to the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_6ed0a6f8","line":61,"range":{"start_line":61,"start_character":13,"end_line":61,"end_character":14},"updated":"2016-05-12 11:06:01.000000000","message":"s/.//","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"during the live migration process via a libvirt API call. Increasing"},{"line_number":59,"context_line":"this value may enable the migration to complete."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Auto-converge."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"This feature provides a method for slowing down guest execution speed"},{"line_number":64,"context_line":"in order to allow the live migration to copy dirty memory pages to the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_25d518b9","line":61,"range":{"start_line":61,"start_character":13,"end_line":61,"end_character":14},"in_reply_to":"dab17558_6ed0a6f8","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"13173cbedb4d8663da6b9016b00db7b99687f50f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"added. This flag can have the following values:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"none - try to use auto-converge if it is available and no other better"},{"line_number":83,"context_line":"       migration strategy is available.  This will be the default."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_f00f5986","line":83,"updated":"2016-05-12 10:04:29.000000000","message":"The term \"none\" seems misleading here, how about \"if-available\" or \"auto\"?","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"added. This flag can have the following values:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"none - try to use auto-converge if it is available and no other better"},{"line_number":83,"context_line":"       migration strategy is available.  This will be the default."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_c5488ccf","line":83,"in_reply_to":"dab17558_e9ce50b6","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":80,"context_line":"added. This flag can have the following values:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"none - try to use auto-converge if it is available and no other better"},{"line_number":83,"context_line":"       migration strategy is available.  This will be the default."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_e9ce50b6","line":83,"in_reply_to":"dab17558_f00f5986","updated":"2016-05-12 11:06:01.000000000","message":"\"none\" seems too strict to me too. I would assume that it means that I don\u0027t want auto-converge. I think \"auto\" would be better. I could think of \"soft\" or \"desired\" too.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"efa249a6d7d7697c601d58976d7582186dcdaf7b","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_3eb279e5","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"updated":"2016-05-11 16:25:26.000000000","message":"This is a little bit confusing. What about making it simple? If auto_converge\u003dyes just use it, regardless of post-copy capability, because both can be used at the same time. This will allow to configure nova LM in fully automated way and \u0027force it to complete\u0027 way:\n* when post_copy and auto_converge are set to none, LM is fully automated, default configuration\n* when post_copy and auto_converge are set to yes, operator explicitly forces both features to improve convergence","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"cc7bc1c2bb3ba3ce44d888428b30540eed2c9a6b","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_841eb409","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_3eb279e5","updated":"2016-05-11 16:40:53.000000000","message":"There\u0027s really no point in using post_copy and auto_converge at the same time IMHO - auto-converge will just have an uneccessarily negative affect on guest performance during the pre-copy phase.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"3beb9615cc43283fbde8e94ed0fbfc7d3f25b01a","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_8f936d5a","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_841eb409","updated":"2016-05-11 16:54:02.000000000","message":"But this \u0027yes\u0027 brings nothing more than potential error when using live migration. Another thing that you must read and learn how it behaves.\n\nAlso, basing on this https://review.openstack.org/#/c/306561/12/specs/newton/approved/auto-live-migration-completion.rst@163 auto converge might make switch to post-copy unnecessary in some cases.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ae3bbc86134ca68c814f7729f51d0da805239f63","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_bf50fa0b","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_8f936d5a","updated":"2016-05-12 11:12:26.000000000","message":"Yeah, so in retrospect my suggestion to make it a tri-state is not required. Lets rename the config option to make it clear that it is not telling nova to use the feature, but rather it is giving nova permission to use it if desired.\n\neg\n\n  live_migration_permit_auto_converge\u003dyes|no\n  live_migration_permit_post_copy\u003dyes|no\n\nwith both defaulting to \u0027yes\u0027. Nova will automatically pick the best method to use out of the methods set to \u0027yes\u0027, which are supported by QEMU. The admin can set either to \u0027no\u0027 to 100% block their use.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_05c61416","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_bf50fa0b","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"775ac005ca8607f1a2c3ed0e1bd16d8ff78b2abf","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_ffec4194","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_bf50fa0b","updated":"2016-05-12 11:41:23.000000000","message":"This idea to make it a tri-state is good I believe - with Jens and Laszlo suggestion to change \u0027none\u0027 to \u0027auto\u0027. So \u0027yes\u0027 means that feature should be used, \u0027no\u0027 don\u0027t use at all and \u0027auto\u0027 means that nova will take care of it. While \u0027yes\u0027 and \u0027no\u0027 are static, \u0027auto\u0027 is dynamic and we can change logic in the future according to operators feedback based on their experience with real workloads.\n\nOn the other hand if we use \u0027permit\u0027 in the name of configuration option it will also make it possible to change logic in nova in the future if needed. However, I\u0027ve seen yes|no|auto in many project configs already and it makes sense, because it is clear.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_6569e025","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_e2bf865e","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":14672,"name":"Dr. David Alan Gilbert","email":"dgilbert@redhat.com"},"change_message_id":"bb6b3280dffe55b4ab2adc29bd8758e94223f60c","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_e2bf865e","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_e2e026cf","updated":"2016-05-12 12:10:45.000000000","message":"\u003e However, given that auto-converge was introduced to QEMU\n\u003e before post-copy, any QEMU which supports post-copy will \n\u003e always support auto-converge.\n\nHmm that\u0027s kind of fuzzy; the auto-converge behaviour in qemu changed quite a lot recently; the old version was very primitive and just dropped the performance one notch at a fairly fixed time.  The new behaviour is much more iterative and will keep pushing the CPU down (although the parameters to tune that affect are only just due to be made non-experimental, the defaults are useful).","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_c576cc05","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_e2e026cf","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"45ddfcba1d35b5fde330d5dd01679d28b94d71f3","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"no   - never use auto-converge."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":88,"context_line":"       strategy is availble. Emmit an error message if auto-converge"},{"line_number":89,"context_line":"       is not available."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Post-Copy"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_e2e026cf","line":88,"range":{"start_line":87,"start_character":7,"end_line":88,"end_character":28},"in_reply_to":"dab17558_ffec4194","updated":"2016-05-12 11:56:20.000000000","message":"I don\u0027t think we actually need the distinction between \u0027yes\u0027 and \u0027auto\u0027 in practice, because if both settings are \"yes\", then effectively nova will always prefer post-copy, so in practice yes and auto end up meaning the same thing. \n\nLets consider the combinations with the tri-state, and the feature preference order it lets nova choose from:\n\n - auto-converge\u003dno, post-copy\u003dno -\u003e plain\n - auto-converge\u003dno, post-copy\u003dyes -\u003e post-copy, plain\n - auto-converge\u003dno, post-copy\u003dauto -\u003e post-copy, plain\n - auto-converge\u003dyes, post-copy\u003dno -\u003e auto-converge, plain\n - auto-converge\u003dyes, post-copy\u003dyes -\u003e post-copy, auto-converge, plain\n - auto-converge\u003dyes, post-copy\u003dauto -\u003e auto-converge, post-copy, plain\n - auto-converge\u003dauto, post-copy\u003dno -\u003e auto-converge, plain\n - auto-converge\u003dauto, post-copy\u003dyes -\u003e post-copy, auto-converge, plain\n - auto-converge\u003dauto, post-copy\u003dauto -\u003e post-copy, auto-converge, plain\n\nWith a boolean we have\n\n - permit-auto-converge\u003dno, permit-post-copy\u003dno -\u003e plain\n - permit-auto-converge\u003dno, permit-post-copy\u003dyes -\u003e post-copy, plain\n - permit-auto-converge\u003dyes, permit-post-copy\u003dno -\u003e auto-converge, plain\n - permit-auto-converge\u003dyes, permit-post-copy\u003dyes -\u003e post-copy, auto-converge, plain\n\n\nSo the only difference between a tri-state and a boolean, is that the tri-state lets us express an preference for auto-converge to be used instead of post-copy if both are available. ie the \u0027auto-converge, post-copy, plain\u0027 ordering.\n\nHowever, given that auto-converge was introduced to QEMU before post-copy, any QEMU which supports post-copy will always support auto-converge.\n\nSo the ordering \"auto-converge, post-copy, plain\" is in practice identical to \"auto-converge, plain\".\n\nThus, using a tri-state does not provide any additional benefit over using a boolean. The boolean lets us express enough options for the admin to control what\u0027s used with any given QEMU binary. The tri-state just adds complexity that is liable to be mis-understood.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":102,"context_line":"nova configuration flag called :code:`live_migration_post_copy` will be"},{"line_number":103,"context_line":"added. This flag can have the following values:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"none - try to use post-copy if it is available. This will be the"},{"line_number":106,"context_line":"       default."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"no   - never use post-copy."}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_c9b9cccd","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":4},"updated":"2016-05-12 11:06:01.000000000","message":"Same as above.","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"nova configuration flag called :code:`live_migration_post_copy` will be"},{"line_number":103,"context_line":"added. This flag can have the following values:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"none - try to use post-copy if it is available. This will be the"},{"line_number":106,"context_line":"       default."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"no   - never use post-copy."}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_052a94e7","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":4},"in_reply_to":"dab17558_c9b9cccd","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Live-migration-force-complete"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The \u0027live-migration-force-complete\u0027 operation on an ongoing live"},{"line_number":121,"context_line":"migration can be used to suspended (paused in libvirt parlance) to"},{"line_number":122,"context_line":"allow the migration to complete. It will be automatically resumed"},{"line_number":123,"context_line":"when the migration completes and it switches to the target."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_04f73bf6","line":121,"range":{"start_line":121,"start_character":0,"end_line":121,"end_character":34},"updated":"2016-05-12 11:06:01.000000000","message":"I don\u0027t quite understand this. I think something is missing here.\nMaybe you meant: \"... can be used to put the server to suspended status ...\"","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Live-migration-force-complete"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The \u0027live-migration-force-complete\u0027 operation on an ongoing live"},{"line_number":121,"context_line":"migration can be used to suspended (paused in libvirt parlance) to"},{"line_number":122,"context_line":"allow the migration to complete. It will be automatically resumed"},{"line_number":123,"context_line":"when the migration completes and it switches to the target."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_85f7a48b","line":121,"range":{"start_line":121,"start_character":0,"end_line":121,"end_character":34},"in_reply_to":"dab17558_04f73bf6","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":137,"context_line":"attempt to abort a live-migration after the switch to post-copy will"},{"line_number":138,"context_line":"also be rejected."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Live Migration Strategy."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Live migration force-complete flag set to False - the default."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_24b35f0c","line":140,"range":{"start_line":140,"start_character":23,"end_line":140,"end_character":24},"updated":"2016-05-12 11:06:01.000000000","message":"s/.//","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":137,"context_line":"attempt to abort a live-migration after the switch to post-copy will"},{"line_number":138,"context_line":"also be rejected."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Live Migration Strategy."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Live migration force-complete flag set to False - the default."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_2586b813","line":140,"range":{"start_line":140,"start_character":23,"end_line":140,"end_character":24},"in_reply_to":"dab17558_24b35f0c","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Live migration force-complete flag set to False - the default."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"If the migration is not completing but has copied most of the memory"},{"line_number":145,"context_line":"then gradually increase the downtime allowed during the switch-over"},{"line_number":146,"context_line":"until the migration completes or the configured maximum downtime is"},{"line_number":147,"context_line":"reached."}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_64a2879c","line":144,"range":{"start_line":144,"start_character":24,"end_line":144,"end_character":34},"updated":"2016-05-12 11:06:01.000000000","message":"completed","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Live migration force-complete flag set to False - the default."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"If the migration is not completing but has copied most of the memory"},{"line_number":145,"context_line":"then gradually increase the downtime allowed during the switch-over"},{"line_number":146,"context_line":"until the migration completes or the configured maximum downtime is"},{"line_number":147,"context_line":"reached."}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_c5c7ec62","line":144,"range":{"start_line":144,"start_character":24,"end_line":144,"end_character":34},"in_reply_to":"dab17558_64a2879c","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"3ca18ced844fc26972586606d167e3db8e6f1568","unresolved":false,"context_lines":[{"line_number":182,"context_line":"on instance performance."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Another approach would to be to provide the operator with APIs so they"},{"line_number":185,"context_line":"could select and tune these setting before and during live migrations."},{"line_number":186,"context_line":"However it is not desirable to expose driver specifics to Nova API."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_84ee8bb2","line":185,"range":{"start_line":185,"start_character":22,"end_line":185,"end_character":35},"updated":"2016-05-12 11:06:01.000000000","message":"these settings","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"10d65e6cb9ecc93a7bd2b02018eb41ef744936c3","unresolved":false,"context_lines":[{"line_number":182,"context_line":"on instance performance."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Another approach would to be to provide the operator with APIs so they"},{"line_number":185,"context_line":"could select and tune these setting before and during live migrations."},{"line_number":186,"context_line":"However it is not desirable to expose driver specifics to Nova API."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dab17558_c5f08ccc","line":185,"range":{"start_line":185,"start_character":22,"end_line":185,"end_character":35},"in_reply_to":"dab17558_84ee8bb2","updated":"2016-05-12 12:24:31.000000000","message":"Done","commit_id":"8b27b6d99c02d3288e97f1ae8c42b888e0446496"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"5e97549b75d80f6e03f04cec51bc38d0c62fa71b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"no   - never use auto-converge."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":84,"context_line":"       strategy is availble."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Post-Copy"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"dab17558_f3291af4","line":84,"updated":"2016-05-12 12:50:56.000000000","message":"I\u0027d like to bring our discussion back here.\n\nDavid wrote that:\n\"Hmm that\u0027s kind of fuzzy; the auto-converge behaviour in qemu changed quite a lot recently; the old version was very primitive and just dropped the performance one notch at a fairly fixed time.  The new behaviour is much more iterative and will keep pushing the CPU down (although the parameters to tune that affect are only just due to be made non-experimental, the defaults are useful).\"\n\nAnd that\u0027s really my point. Auto converge was improved recently and in some cases can make switch to post-copy unnecessary at all. I really would like to give an option to operators, so that they will be able to try different options, and not only static one that we defined. If we define static option (permit - yes|no) their feedback will be like \"\nit works\" or \"it doesn\u0027t\". If we give them some room to change configuration, they will be able to test out different things and see which configuration fits their needs. And here I\u0027m talking about yes|no|auto.\n\nAlso, in my understanding \u0027yes\u0027 means that \u0027use this feature\u0027, not \u0027use this feature only if...\u0027 because it doesn\u0027t really mean \u0027yes\u0027.","commit_id":"6346f2f3b79c176faecf8212bb25ffae28d011bf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ea3008bef3522c420c891e64040937552b5a58ac","unresolved":false,"context_lines":[{"line_number":81,"context_line":"no   - never use auto-converge."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":84,"context_line":"       strategy is availble."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Post-Copy"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"dab17558_1273efb5","line":84,"in_reply_to":"dab17558_19ecbd8e","updated":"2016-05-12 15:25:17.000000000","message":"I think it is important to avoid trying to over-design / engineer this first time around. I don\u0027t see \"automatic migration completion\" as being a one-time effort for Newton - I expect it to be an ongoing effort that will continue indefinitely across future dev cycles as QEMU gains more features and we learn about their effectiveness in the context of Nova.\n\nIt isn\u0027t clear that combining auto-converge and post-copy is beneficial in general, and even less clear how nova would decide when it is appropriate to abandon auto-converge and switch to post-copy.\n\nI have produced performance results showing the relative behaviours of auto-converge and post-copy when faced with the worst case workloads and post-copy is a clear winner there. There is clearly scope for doing more benchmarking to analysis behaviour under other workloads, or by combining multiple features at the same time. I think we should investigate these possibilities though, before going ahead an implementing them in nova without any idea if they\u0027re actually useful or not. The ability to explore these kind of strategies is the main reason I spent the time to create a formal test harness for measuring migration with QEMU.\n\nIOW, I think that for Newton, we should keep it simple, allow a single feature, either post-copy or auto-converge or neither to be used with migration, controlled via the host config. In parallel with that we should carry on testing \u0026 measuring other strategies and workloads in order to identify further improvements (such as concurrent use of multiple features) we can make for the Ocata release. This also gives us time to collect real world feedback on the feature set introduced in Newton from operators.","commit_id":"6346f2f3b79c176faecf8212bb25ffae28d011bf"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"25901e25795b1a35fc0f4d407a38d019c3105d74","unresolved":false,"context_lines":[{"line_number":81,"context_line":"no   - never use auto-converge."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":84,"context_line":"       strategy is availble."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Post-Copy"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"dab17558_19ecbd8e","line":84,"in_reply_to":"dab17558_d9023509","updated":"2016-05-12 13:17:37.000000000","message":"But do not allow to use both at the same time. We shouldn\u0027t block anything without clear reason (and we really don\u0027t have one, but e.g. operators feedback can be such reason). Post-copy is not a cure to all problems, it is just another knob to force it to complete. Using both together, auto converge and post-copy, can give option to finish some of migrations (we can\u0027t guess percents here, that\u0027s why \u0027some\u0027 migrations), without really switching to post-copy. If auto-converge is not enough after few cycles - post-copy it.\n\nWhat kind of benchmark is it? Database workload can be migrated without throttling it by 95% or 99% and this is not the only workload running in data centers. Of course there are some workloads that are harder to migrate, but aren\u0027t the only workloads running in DCs.","commit_id":"6346f2f3b79c176faecf8212bb25ffae28d011bf"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"13178574e8dad3120ac9e8d8e840ca7ce07ad383","unresolved":false,"context_lines":[{"line_number":81,"context_line":"no   - never use auto-converge."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":84,"context_line":"       strategy is availble."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Post-Copy"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"dab17558_19eb1db2","line":84,"in_reply_to":"dab17558_f3291af4","updated":"2016-05-12 13:13:21.000000000","message":"Setting permit_auto_converge to yes means just that, use is permitted.\n\nIf I get David\u0027s point it is that in more recent versions of qemu (which are the only ones where post-copy is also available) auto-converge is much improved.\n\nI think Pawel is arguing for a way to determine which of auto-converge or post-copy is preferred on a per migration basis.\n\nMaybe we should enhance the live-migration-force-complete operation to have an optional --method parameter which could be set to a driver specific value, in the case of libvirt the options would be...\n\nsuspend\nauto-converge\npost-copy\n\nThe default if the method is not specified is to use what the deiver code (in libvirt\u0027s case to live_migration_monitor thread) decides is most appropriate based on the features available.  As described below this would be suspend unless post copy is available.\n\nHowever, I think we could just as easily make the case for leaving this as is so if the operator wants to try out auto-converge over post copy they change the configuration flags to auto-converge\u003dyes, post-copy\u003dno and try it out.","commit_id":"6346f2f3b79c176faecf8212bb25ffae28d011bf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f62b16fceafb3785b84f12bff24acb7b57c12d9b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"no   - never use auto-converge."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"yes  - use auto-converge if available and no other better migration"},{"line_number":84,"context_line":"       strategy is availble."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Post-Copy"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"dab17558_d9023509","line":84,"in_reply_to":"dab17558_f3291af4","updated":"2016-05-12 13:02:12.000000000","message":"This proposal still allows operators to choose auto-converge over post-copy if they so wish - they merely need set  live_migration_permit_auto_converge\u003dyes and live_migration_permit_post_copy\u003dno if they want to force nova to use auto-converge. So I\u0027m nbot seeing any problem here.\n\nAlso while auto-converge may have improved, it is still pretty bad as a default choice because benchmarks show it still has to throttle down guest CPU as much as 95% (even 99% in some tests) to ensure convergence. This is a pretty terrible impact on guest VM CPUs. There may be workloads where auto-converge is OK, and if admins were directly controlling migration features per-VM with knowledge of the VM workload, they might use auto-converge. For nova though where we need to pick a strategy that works well by default across all different workloads, post-copy is a clear winner over auto-converge.","commit_id":"6346f2f3b79c176faecf8212bb25ffae28d011bf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"db4427cdbeca24ebef35107fdd4d1f98c369301c","unresolved":false,"context_lines":[{"line_number":301,"context_line":"References"},{"line_number":302,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"None"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"History"},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"dab17558_d7f039cc","line":304,"range":{"start_line":304,"start_character":0,"end_line":304,"end_character":4},"updated":"2016-05-12 15:13:46.000000000","message":"FYI I have finally finished my write of test results from the various migration features that you can link to\n\nhttps://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/","commit_id":"6346f2f3b79c176faecf8212bb25ffae28d011bf"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"5b3961cbda39adb3982601e7467015f88c843ddd","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Live migration force-complete flag set to False - the default."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"If the migration is not completed but has copied most of the memory"},{"line_number":138,"context_line":"then gradually increase the downtime allowed during the switch-over"},{"line_number":139,"context_line":"until the migration completes or the configured maximum downtime is"},{"line_number":140,"context_line":"reached."}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_285bf6f7","line":137,"updated":"2016-05-13 11:05:01.000000000","message":"Not sure what most means, but don\u0027t need any more detail here.","commit_id":"06128450c9ed218d61ca596c9f2975ed2e44fb73"},{"author":{"_account_id":21272,"name":"Luis Tomas","email":"luis5tb@gmail.com","username":"luis5tb"},"change_message_id":"2223d4ae81395a64ff05cdd4151b9ccb6c50bbac","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"nova live-migration --importance \u003cimportance\u003e"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"Where \u003cimportance\u003e is \u0027no-impact\u0027, \u0027best-effort\u0027 or \u0027force-complete\u0027."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"The default will be \u0027best-effort\u0027"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_507073dc","line":238,"range":{"start_line":238,"start_character":23,"end_line":238,"end_character":49},"updated":"2016-05-15 10:17:48.000000000","message":"Will \"no-impact\u0027 and \u0027best-effort\u0027 be implemented as part of this spec? Are they already being implemented in another. If the former, it should be briefly explained what they actually do. If the latter, include a reference to the spec.","commit_id":"06128450c9ed218d61ca596c9f2975ed2e44fb73"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"a5d69327c710b411b67ee3d08c99ff0ecef794f6","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"nova live-migration --importance \u003cimportance\u003e"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"Where \u003cimportance\u003e is \u0027no-impact\u0027, \u0027best-effort\u0027 or \u0027force-complete\u0027."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"The default will be \u0027best-effort\u0027"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_604b1788","line":238,"range":{"start_line":238,"start_character":23,"end_line":238,"end_character":49},"in_reply_to":"dab17558_507073dc","updated":"2016-05-16 07:28:57.000000000","message":"This was a hangover from a previous version of the spec, fixed now","commit_id":"06128450c9ed218d61ca596c9f2975ed2e44fb73"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"37ac5a2fb1c43fb13eb7fd2361e962efaa176c42","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The options available are as follows:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Maximum Downtime Setting"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"In order to perform the switch over from the source to target instances"},{"line_number":55,"context_line":"the live migration process needs to pause the instance for a short"}],"source_content_type":"text/x-rst","patch_set":15,"id":"bab6814e_adf4b65a","line":52,"updated":"2016-05-20 17:54:37.000000000","message":"micronit: could make these subheadings.","commit_id":"02b9c82bbcc4f843832a24ccacddf849a234266e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"37ac5a2fb1c43fb13eb7fd2361e962efaa176c42","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"  {"},{"line_number":203,"context_line":"      \"os-migrateLive\": {"},{"line_number":204,"context_line":"          \"importance\": “force-complete”,"},{"line_number":205,"context_line":"      }"},{"line_number":206,"context_line":"  }"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"bab6814e_8d561228","line":204,"range":{"start_line":204,"start_character":11,"end_line":204,"end_character":21},"updated":"2016-05-20 17:54:37.000000000","message":"Hmm, why not \"force-complete\": True/False, and if its missing, it defaults to False?","commit_id":"02b9c82bbcc4f843832a24ccacddf849a234266e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"37ac5a2fb1c43fb13eb7fd2361e962efaa176c42","unresolved":false,"context_lines":[{"line_number":291,"context_line":"New API needs to be documented:"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"* Compute API extensions documentation"},{"line_number":294,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* nova.compute.api documentation"},{"line_number":297,"context_line":"  http://docs.openstack.org/developer/nova/api/nova.compute.api.html"}],"source_content_type":"text/x-rst","patch_set":15,"id":"bab6814e_e80b4c22","line":294,"updated":"2016-05-20 17:54:37.000000000","message":"Note thse docs are now dead. We instead update:\nhttp://developer.openstack.org/api-ref/compute/\nand\nhttp://developer.openstack.org/api-guide/compute/server_concepts.html#moving-servers","commit_id":"02b9c82bbcc4f843832a24ccacddf849a234266e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"37ac5a2fb1c43fb13eb7fd2361e962efaa176c42","unresolved":false,"context_lines":[{"line_number":294,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* nova.compute.api documentation"},{"line_number":297,"context_line":"  http://docs.openstack.org/developer/nova/api/nova.compute.api.html"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"References"},{"line_number":300,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"bab6814e_081e905e","line":297,"updated":"2016-05-20 17:54:37.000000000","message":"I would leave this out.","commit_id":"02b9c82bbcc4f843832a24ccacddf849a234266e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4e9f18e62f4b2524a3d0a8a3abc352089371ef1b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Post-Copy"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"If enabled the live migration process will make a first pass of"},{"line_number":81,"context_line":"copying all memory pages to the target then it will make the instance"},{"line_number":82,"context_line":"on the target active and start pulling memory pages that have not yet"},{"line_number":83,"context_line":"been updated on the target from the source as they are accessed."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Post-copy must be enabled prior to the migration starting if it is to"}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_27d7c524","line":82,"range":{"start_line":81,"start_character":39,"end_line":82,"end_character":51},"updated":"2016-05-24 13:51:14.000000000","message":"This seems to contradict your description that ends on line 143.\n\nIt made me think the force-complete API made no difference.","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4e9f18e62f4b2524a3d0a8a3abc352089371ef1b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":99,"context_line":"be rebooted."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Live-migration-force-complete"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The \u0027live-migration-force-complete\u0027 operation on an ongoing live"},{"line_number":104,"context_line":"migration can be used to place the instance in suspended (paused"}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_a747351c","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":29},"updated":"2016-05-24 13:51:14.000000000","message":"I think you should move this after the live-migration strategy.","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"9850e39dcee70e1a3233e6bb64eb82fd6cbf88b0","unresolved":false,"context_lines":[{"line_number":98,"context_line":"migration processing fails then the instance will crash and need to"},{"line_number":99,"context_line":"be rebooted."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Live-migration-force-complete"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The \u0027live-migration-force-complete\u0027 operation on an ongoing live"},{"line_number":104,"context_line":"migration can be used to place the instance in suspended (paused"}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_e5abebd4","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":29},"in_reply_to":"bab6814e_a747351c","updated":"2016-05-24 16:42:03.000000000","message":"Done","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4e9f18e62f4b2524a3d0a8a3abc352089371ef1b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"monitoring the data remaining high water mark. If the data remaining"},{"line_number":141,"context_line":"high water mark does not decrease by at least 10% on each iteration,"},{"line_number":142,"context_line":"then it is a sign that live migration will not complete in suitable"},{"line_number":143,"context_line":"timeframe. At that point Nova should switch to post-copy mode."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The auto-converge feature will be enabled if it is available and"},{"line_number":146,"context_line":"post-copy is not available."}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_a7c0d57d","line":143,"range":{"start_line":143,"start_character":11,"end_line":143,"end_character":62},"updated":"2016-05-24 13:51:14.000000000","message":"Ah, and the idea is the operator could call force-complete to switch to post-copy mode right away?","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"9850e39dcee70e1a3233e6bb64eb82fd6cbf88b0","unresolved":false,"context_lines":[{"line_number":140,"context_line":"monitoring the data remaining high water mark. If the data remaining"},{"line_number":141,"context_line":"high water mark does not decrease by at least 10% on each iteration,"},{"line_number":142,"context_line":"then it is a sign that live migration will not complete in suitable"},{"line_number":143,"context_line":"timeframe. At that point Nova should switch to post-copy mode."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The auto-converge feature will be enabled if it is available and"},{"line_number":146,"context_line":"post-copy is not available."}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_e5364be6","line":143,"range":{"start_line":143,"start_character":11,"end_line":143,"end_character":62},"in_reply_to":"bab6814e_a7c0d57d","updated":"2016-05-24 16:42:03.000000000","message":"Done","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"a8bf6f96559562546b0ed6b5056e3d8e36d97bba","unresolved":false,"context_lines":[{"line_number":158,"context_line":"because use of these features can potentially have a significant impact"},{"line_number":159,"context_line":"on instance performance."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Another approach would to be to provide the operator with APIs so they"},{"line_number":162,"context_line":"could select and tune these settings before and during live migrations."},{"line_number":163,"context_line":"However it is not desirable to expose driver specifics to Nova API."},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_153ae0e6","line":161,"range":{"start_line":161,"start_character":22,"end_line":161,"end_character":26},"updated":"2016-05-23 16:05:38.000000000","message":"redundant to?","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"9850e39dcee70e1a3233e6bb64eb82fd6cbf88b0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"because use of these features can potentially have a significant impact"},{"line_number":159,"context_line":"on instance performance."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Another approach would to be to provide the operator with APIs so they"},{"line_number":162,"context_line":"could select and tune these settings before and during live migrations."},{"line_number":163,"context_line":"However it is not desirable to expose driver specifics to Nova API."},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"bab6814e_93498891","line":161,"range":{"start_line":161,"start_character":22,"end_line":161,"end_character":26},"in_reply_to":"bab6814e_153ae0e6","updated":"2016-05-24 16:42:03.000000000","message":"Done","commit_id":"05e75b4099d897790be4777d9148dd05d79f2bc2"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"6fee5658dbfe4e587ec418a697b0c62807b45768","unresolved":false,"context_lines":[{"line_number":139,"context_line":"on whether the post-copy feature is available.  If it is available,"},{"line_number":140,"context_line":"i.e. :code:`live_migration_permit_post_copy` is set to \u0027yes\u0027 and it is"},{"line_number":141,"context_line":"supported by the libvirt/qemu versions in use, a switch to post-copy"},{"line_number":142,"context_line":"mode will be performed instead of suspending the instance. However,"},{"line_number":143,"context_line":"if the live-migration-force-complete operation is performed before the"},{"line_number":144,"context_line":"completion of the first iteration of memory pages copying it will defer"},{"line_number":145,"context_line":"the switch to post-copy until the first iteration of memory page"},{"line_number":146,"context_line":"copying is complete."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":149,"context_line":"instance once the switch to post-copy has been performed.  Also an"}],"source_content_type":"text/x-rst","patch_set":19,"id":"9abb7d3a_40c2ae34","line":146,"range":{"start_line":142,"start_character":59,"end_line":146,"end_character":20},"updated":"2016-05-28 06:55:11.000000000","message":"could you please explicitly describe how are you going to track iterations of copying memory pages","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"73df90f06c16b7082fba5a71e8d29026877e618c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"on whether the post-copy feature is available.  If it is available,"},{"line_number":140,"context_line":"i.e. :code:`live_migration_permit_post_copy` is set to \u0027yes\u0027 and it is"},{"line_number":141,"context_line":"supported by the libvirt/qemu versions in use, a switch to post-copy"},{"line_number":142,"context_line":"mode will be performed instead of suspending the instance. However,"},{"line_number":143,"context_line":"if the live-migration-force-complete operation is performed before the"},{"line_number":144,"context_line":"completion of the first iteration of memory pages copying it will defer"},{"line_number":145,"context_line":"the switch to post-copy until the first iteration of memory page"},{"line_number":146,"context_line":"copying is complete."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":149,"context_line":"instance once the switch to post-copy has been performed.  Also an"}],"source_content_type":"text/x-rst","patch_set":19,"id":"9abb7d3a_6285e805","line":146,"range":{"start_line":142,"start_character":59,"end_line":146,"end_character":20},"in_reply_to":"9abb7d3a_40c2ae34","updated":"2016-05-31 10:26:31.000000000","message":"Done","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"7ddfe78ffaf08dc01a8ad16d623dcc2e66e78c1c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"the switch to post-copy until the first iteration of memory page"},{"line_number":146,"context_line":"copying is complete."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":149,"context_line":"instance once the switch to post-copy has been performed.  Also an"},{"line_number":150,"context_line":"attempt to abort a live-migration after the switch to post-copy will"},{"line_number":151,"context_line":"also be rejected."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Alternatives"},{"line_number":154,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"bab6814e_df959940","line":151,"range":{"start_line":148,"start_character":0,"end_line":151,"end_character":17},"updated":"2016-05-25 15:30:02.000000000","message":"How do we know if the running migration is in post-copy mode?\nDo we need to query the virt driver or do we want to save this info in the migration object so we can query it without going down to the compute node?\nThe error will be returned by the API call or the call will return a 20x code and then fails when the compute node will try to actually abort/suspend the migration?\n\nProbably this is something that can be discussed during the code review.","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"73df90f06c16b7082fba5a71e8d29026877e618c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"the switch to post-copy until the first iteration of memory page"},{"line_number":146,"context_line":"copying is complete."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":149,"context_line":"instance once the switch to post-copy has been performed.  Also an"},{"line_number":150,"context_line":"attempt to abort a live-migration after the switch to post-copy will"},{"line_number":151,"context_line":"also be rejected."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Alternatives"},{"line_number":154,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"9abb7d3a_2296403f","line":151,"range":{"start_line":148,"start_character":0,"end_line":151,"end_character":17},"in_reply_to":"bab6814e_697ab425","updated":"2016-05-31 10:26:31.000000000","message":"Done","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"933ac376a8f220c770d50abc5be5264db0809fa0","unresolved":false,"context_lines":[{"line_number":145,"context_line":"the switch to post-copy until the first iteration of memory page"},{"line_number":146,"context_line":"copying is complete."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":149,"context_line":"instance once the switch to post-copy has been performed.  Also an"},{"line_number":150,"context_line":"attempt to abort a live-migration after the switch to post-copy will"},{"line_number":151,"context_line":"also be rejected."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Alternatives"},{"line_number":154,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"bab6814e_697ab425","line":151,"range":{"start_line":148,"start_character":0,"end_line":151,"end_character":17},"in_reply_to":"bab6814e_df959940","updated":"2016-05-26 19:07:38.000000000","message":"Abort will be refused by libvirt, see http://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003dd64adcdb96e842578cd25c993b9321918a9db9b8\nHowever, I don\u0027t what libvirt will do in case someone triggers suspend on an instance during post-copy","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"73df90f06c16b7082fba5a71e8d29026877e618c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"the switch to post-copy until the first iteration of memory page"},{"line_number":146,"context_line":"copying is complete."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":149,"context_line":"instance once the switch to post-copy has been performed.  Also an"},{"line_number":150,"context_line":"attempt to abort a live-migration after the switch to post-copy will"},{"line_number":151,"context_line":"also be rejected."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Alternatives"},{"line_number":154,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"9abb7d3a_4291c446","line":151,"range":{"start_line":148,"start_character":0,"end_line":151,"end_character":17},"in_reply_to":"bab6814e_df959940","updated":"2016-05-31 10:26:31.000000000","message":"Done","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"7ddfe78ffaf08dc01a8ad16d623dcc2e66e78c1c","unresolved":false,"context_lines":[{"line_number":196,"context_line":"Performance Impact"},{"line_number":197,"context_line":"------------------"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"None"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Other deployer impact"},{"line_number":202,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"bab6814e_4a828953","line":199,"range":{"start_line":199,"start_character":0,"end_line":199,"end_character":4},"updated":"2016-05-25 15:30:02.000000000","message":"actually any strategy is affecting performance in some way. as you mentioned already above.","commit_id":"3920e6d717a5125ba0388a0af44c8eed5ff4d157"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c88da13e7746348ae16ca76e3e1c364fd5f246fe","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The options available are as follows:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Maximum Downtime Setting"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"In order to perform the switch over from the source to target instances"},{"line_number":47,"context_line":"the live migration process needs to pause the instance for a short"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_b9889fc6","line":44,"updated":"2016-05-31 11:01:30.000000000","message":"Nit: would be nice if these were sub-headings really","commit_id":"356dbddb538101eddeabe98fcad82a07d5132339"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"e38afee6a84638baf76e55d8e550f5a3d073cc8e","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"An attempt to abort a live-migration after the switch to post-copy will"},{"line_number":153,"context_line":"be rejected. Libvirt will reject an abort job API call if the migration"},{"line_number":154,"context_line":"has switched to post-copy mode.  However when the driver issues the"},{"line_number":155,"context_line":"request to switch to post-copy mode it  could update the migration"},{"line_number":156,"context_line":"status to indicate that post-copy mode is in effect, i.e. update it"},{"line_number":157,"context_line":"from \u0027running\u0027 to  \u0027running (post-copy)\u0027. The API method called by"},{"line_number":158,"context_line":"\u0027live-migration-abort\u0027 could be enhanced to check the migration status"},{"line_number":159,"context_line":"to ensure it is not in post-copy mode. If the switch to post-copy"},{"line_number":160,"context_line":"occurs after the check in the API but before the execution of the abort"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_eed6dfef","line":157,"range":{"start_line":154,"start_character":33,"end_line":157,"end_character":41},"updated":"2016-05-31 10:39:14.000000000","message":"while we expose in some way implementation deails `running (post-copy)` I like this approach, as it will be possible to reject request as early as possible.","commit_id":"356dbddb538101eddeabe98fcad82a07d5132339"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"e38afee6a84638baf76e55d8e550f5a3d073cc8e","unresolved":false,"context_lines":[{"line_number":156,"context_line":"status to indicate that post-copy mode is in effect, i.e. update it"},{"line_number":157,"context_line":"from \u0027running\u0027 to  \u0027running (post-copy)\u0027. The API method called by"},{"line_number":158,"context_line":"\u0027live-migration-abort\u0027 could be enhanced to check the migration status"},{"line_number":159,"context_line":"to ensure it is not in post-copy mode. If the switch to post-copy"},{"line_number":160,"context_line":"occurs after the check in the API but before the execution of the abort"},{"line_number":161,"context_line":"by the driver then we will rely on libvirt to reject the abort request."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":164,"context_line":"instance once the switch to post-copy has been performed.  Note that"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_ee441fb8","line":161,"range":{"start_line":159,"start_character":39,"end_line":161,"end_character":71},"updated":"2016-05-31 10:39:14.000000000","message":"yes, we could just record failure in instance_actions. Anyway, I think it could be discussed on  implementation patches.","commit_id":"356dbddb538101eddeabe98fcad82a07d5132339"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c88da13e7746348ae16ca76e3e1c364fd5f246fe","unresolved":false,"context_lines":[{"line_number":156,"context_line":"status to indicate that post-copy mode is in effect, i.e. update it"},{"line_number":157,"context_line":"from \u0027running\u0027 to  \u0027running (post-copy)\u0027. The API method called by"},{"line_number":158,"context_line":"\u0027live-migration-abort\u0027 could be enhanced to check the migration status"},{"line_number":159,"context_line":"to ensure it is not in post-copy mode. If the switch to post-copy"},{"line_number":160,"context_line":"occurs after the check in the API but before the execution of the abort"},{"line_number":161,"context_line":"by the driver then we will rely on libvirt to reject the abort request."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Note that live-migration-force-complete cannot be used to suspend an"},{"line_number":164,"context_line":"instance once the switch to post-copy has been performed.  Note that"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_54285a86","line":161,"range":{"start_line":159,"start_character":39,"end_line":161,"end_character":71},"in_reply_to":"9abb7d3a_ee441fb8","updated":"2016-05-31 11:01:30.000000000","message":"my preference would be to include this \"possible\" stuff in the alternatives, I am fine keeping this simple to start with.","commit_id":"356dbddb538101eddeabe98fcad82a07d5132339"}]}
