)]}'
{"specs/queens/svm-ha.rst":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      * etc."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The clients continue read from and/or write to the share during this"},{"line_number":88,"context_line":"share service outage.  Although ome \"hiccups\" might be noticed --"},{"line_number":89,"context_line":"e.g. packets re-transmitted or I/O errors that require application"},{"line_number":90,"context_line":"retries -- I/O continues to the original mount via the original export"},{"line_number":91,"context_line":"location.  There is no corruption of data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_83149845","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":35},"updated":"2017-10-23 22:07:34.000000000","message":"Out of Memory Exception?","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      * etc."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The clients continue read from and/or write to the share during this"},{"line_number":88,"context_line":"share service outage.  Although ome \"hiccups\" might be noticed --"},{"line_number":89,"context_line":"e.g. packets re-transmitted or I/O errors that require application"},{"line_number":90,"context_line":"retries -- I/O continues to the original mount via the original export"},{"line_number":91,"context_line":"location.  There is no corruption of data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_4905a113","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":35},"in_reply_to":"3f4b6375_63b07c8b","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      * etc."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The clients continue read from and/or write to the share during this"},{"line_number":88,"context_line":"share service outage.  Although ome \"hiccups\" might be noticed --"},{"line_number":89,"context_line":"e.g. packets re-transmitted or I/O errors that require application"},{"line_number":90,"context_line":"retries -- I/O continues to the original mount via the original export"},{"line_number":91,"context_line":"location.  There is no corruption of data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_690cdd40","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":35},"in_reply_to":"3f4b6375_83149845","updated":"2017-10-24 01:44:48.000000000","message":"Exactly :)","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":85,"context_line":"      * etc."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The clients continue read from and/or write to the share during this"},{"line_number":88,"context_line":"share service outage.  Although ome \"hiccups\" might be noticed --"},{"line_number":89,"context_line":"e.g. packets re-transmitted or I/O errors that require application"},{"line_number":90,"context_line":"retries -- I/O continues to the original mount via the original export"},{"line_number":91,"context_line":"location.  There is no corruption of data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_63b07c8b","line":88,"range":{"start_line":88,"start_character":32,"end_line":88,"end_character":35},"in_reply_to":"3f4b6375_83149845","updated":"2017-10-23 23:27:09.000000000","message":"I think it\u0027s probably meant to say \"some\".","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The clients continue read from and/or write to the share during this"},{"line_number":88,"context_line":"share service outage.  Although ome \"hiccups\" might be noticed --"},{"line_number":89,"context_line":"e.g. packets re-transmitted or I/O errors that require application"},{"line_number":90,"context_line":"retries -- I/O continues to the original mount via the original export"},{"line_number":91,"context_line":"location.  There is no corruption of data."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_4ec36739","line":90,"range":{"start_line":89,"start_character":0,"end_line":90,"end_character":7},"updated":"2017-10-23 23:27:09.000000000","message":"I think this spec should state more precise expectations around the maximum length of outage which can be tolerated by clients.  For example if it\u0027s only a few seconds, that probably rules out any kind of HA solution which relies on rebooting an SVM.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The clients continue read from and/or write to the share during this"},{"line_number":88,"context_line":"share service outage.  Although ome \"hiccups\" might be noticed --"},{"line_number":89,"context_line":"e.g. packets re-transmitted or I/O errors that require application"},{"line_number":90,"context_line":"retries -- I/O continues to the original mount via the original export"},{"line_number":91,"context_line":"location.  There is no corruption of data."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_1b2a4c7e","line":90,"range":{"start_line":89,"start_character":0,"end_line":90,"end_character":7},"in_reply_to":"3f4b6375_4ec36739","updated":"2017-10-24 01:44:48.000000000","message":"Agree.  I need to do more research here.  If anyone has actual data here, please share!","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  booted up.  We call the neutron ports with these ``native`` IP"},{"line_number":126,"context_line":"  addresses the SVM\u0027s ``native`` ports."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Normally a neutron port is allowed only one IP address (within an address family).  So even if an interface on a VM attached to that port has more than one IP bound to it within the VM, traffic from the extra IP will not be allowed to pass into the neutron network.  However, we want to be able to use a Virtual IP address and migrate it between the SVM interfaces attached to the native ports. To this end, when the native ports are set up the manila driver will run a neutron client command, in an administrative context, to allow the VIP to be used on those ports as well. `[3]`_."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* A third neutron port is assigned a Virtual IP address (VIP) `[4]`_"},{"line_number":131,"context_line":"  on the same share-network subnet as the native IPs.  This is the IP"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_2e170b48","line":128,"range":{"start_line":128,"start_character":278,"end_line":128,"end_character":324},"updated":"2017-10-23 23:27:09.000000000","message":"Just a nitpick, but you refer to the need for a VIP here before introducing the full motivation in the next paragraph.  I think it would be slightly more legible if you swapped these two paragraphs around.\n\nAnd I agree with Tom that this paragraph should be line-wrapped, otherwise it makes reviewing it in Gerrit quite a challenge :-)","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"03a73c3850bdce52ce01ea213605009d1cbb2b8f","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  booted up.  We call the neutron ports with these ``native`` IP"},{"line_number":126,"context_line":"  addresses the SVM\u0027s ``native`` ports."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Normally a neutron port is allowed only one IP address (within an address family).  So even if an interface on a VM attached to that port has more than one IP bound to it within the VM, traffic from the extra IP will not be allowed to pass into the neutron network.  However, we want to be able to use a Virtual IP address and migrate it between the SVM interfaces attached to the native ports. To this end, when the native ports are set up the manila driver will run a neutron client command, in an administrative context, to allow the VIP to be used on those ports as well. `[3]`_."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* A third neutron port is assigned a Virtual IP address (VIP) `[4]`_"},{"line_number":131,"context_line":"  on the same share-network subnet as the native IPs.  This is the IP"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff5d4b2f_9e46ad4f","line":128,"updated":"2017-09-20 11:06:59.000000000","message":"linebreak missing","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  booted up.  We call the neutron ports with these ``native`` IP"},{"line_number":126,"context_line":"  addresses the SVM\u0027s ``native`` ports."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Normally a neutron port is allowed only one IP address (within an address family).  So even if an interface on a VM attached to that port has more than one IP bound to it within the VM, traffic from the extra IP will not be allowed to pass into the neutron network.  However, we want to be able to use a Virtual IP address and migrate it between the SVM interfaces attached to the native ports. To this end, when the native ports are set up the manila driver will run a neutron client command, in an administrative context, to allow the VIP to be used on those ports as well. `[3]`_."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* A third neutron port is assigned a Virtual IP address (VIP) `[4]`_"},{"line_number":131,"context_line":"  on the same share-network subnet as the native IPs.  This is the IP"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_09c9e924","line":128,"range":{"start_line":128,"start_character":278,"end_line":128,"end_character":324},"in_reply_to":"3f4b6375_2e170b48","updated":"2017-10-24 01:44:48.000000000","message":"Done :)","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  booted up.  We call the neutron ports with these ``native`` IP"},{"line_number":126,"context_line":"  addresses the SVM\u0027s ``native`` ports."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Normally a neutron port is allowed only one IP address (within an address family).  So even if an interface on a VM attached to that port has more than one IP bound to it within the VM, traffic from the extra IP will not be allowed to pass into the neutron network.  However, we want to be able to use a Virtual IP address and migrate it between the SVM interfaces attached to the native ports. To this end, when the native ports are set up the manila driver will run a neutron client command, in an administrative context, to allow the VIP to be used on those ports as well. `[3]`_."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* A third neutron port is assigned a Virtual IP address (VIP) `[4]`_"},{"line_number":131,"context_line":"  on the same share-network subnet as the native IPs.  This is the IP"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_c98071c2","line":128,"in_reply_to":"ff5d4b2f_9e46ad4f","updated":"2017-10-24 01:44:48.000000000","message":"Thanks!","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  bound to either of the SVMs or any other compute instance."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* Initially, the SVM with the higher native IP will assume the active"},{"line_number":137,"context_line":"  role: it will run a linux \u0027ip address\u0027 command to bind the VIP to"},{"line_number":138,"context_line":"  the same interface as its native IP and issue a gratuitous ARP with"},{"line_number":139,"context_line":"  the mac address on that interface so that clients learn immediately"},{"line_number":140,"context_line":"  of the layer 2 address for the VIP.  And it will start necessary"},{"line_number":141,"context_line":"  services to export shares from that VIP.  No neutron commands are"},{"line_number":142,"context_line":"  issued to bind the VIP or the neutron port to which it is assigned"},{"line_number":143,"context_line":"  to the SVM or its interfaces."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_ae59bb35","line":140,"range":{"start_line":137,"start_character":8,"end_line":140,"end_character":37},"updated":"2017-10-23 23:27:09.000000000","message":"If Pacemaker is used, this should actually be handled by Pacemaker (most likely the ocf:heartbeat:IPaddr2 primitive), whereas this text seems to imply (possibly unintentionally) that Manila would take care of that itself.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  bound to either of the SVMs or any other compute instance."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* Initially, the SVM with the higher native IP will assume the active"},{"line_number":137,"context_line":"  role: it will run a linux \u0027ip address\u0027 command to bind the VIP to"},{"line_number":138,"context_line":"  the same interface as its native IP and issue a gratuitous ARP with"},{"line_number":139,"context_line":"  the mac address on that interface so that clients learn immediately"},{"line_number":140,"context_line":"  of the layer 2 address for the VIP.  And it will start necessary"},{"line_number":141,"context_line":"  services to export shares from that VIP.  No neutron commands are"},{"line_number":142,"context_line":"  issued to bind the VIP or the neutron port to which it is assigned"},{"line_number":143,"context_line":"  to the SVM or its interfaces."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_a9a1b548","line":140,"range":{"start_line":137,"start_character":8,"end_line":140,"end_character":37},"in_reply_to":"3f4b6375_ae59bb35","updated":"2017-10-24 01:44:48.000000000","message":"I updated this paragraph, recognizing that more detail may be appropriate.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":152,"context_line":"  the VIP to the newly active SVM, and (3) starts all relevant"},{"line_number":153,"context_line":"  services on the newly active SVM."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* Fencing operations require OpenStack client software on the SVMs."},{"line_number":156,"context_line":"  The newly active SVM can fence off the failed SVM by issuing nova"},{"line_number":157,"context_line":"  commands to shut off the failed SVM, then poll to ensure it is off,"},{"line_number":158,"context_line":"  then bring it back up in hot-standby state.  Or it can combine such"},{"line_number":159,"context_line":"  commands with neutron commands that block relevant ports to"},{"line_number":160,"context_line":"  interfaces on the failed SVM."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Once the failed SVM is fenced, the newly active SVM just assumes the"},{"line_number":163,"context_line":"  VIP assumes the VIP and issues a gratuitous ARP in the same manner"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_0e9d6fbb","line":160,"range":{"start_line":155,"start_character":0,"end_line":160,"end_character":31},"updated":"2017-10-23 23:27:09.000000000","message":"AFAIK no such fencing agent for Pacemaker exists yet, so it\u0027s worth mentioning that this would need to be written.\n\nAlso, since there is no quorum in this 2-node cluster, how would it deal with split brain scenarios where the nodes lose connectivity to each other and both want to fence the other node?  I saw footnote [2] and if Beekhof says there is a way to solve this then I believe him, but it would be good to document the details at a high level at least :-)","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":152,"context_line":"  the VIP to the newly active SVM, and (3) starts all relevant"},{"line_number":153,"context_line":"  services on the newly active SVM."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* Fencing operations require OpenStack client software on the SVMs."},{"line_number":156,"context_line":"  The newly active SVM can fence off the failed SVM by issuing nova"},{"line_number":157,"context_line":"  commands to shut off the failed SVM, then poll to ensure it is off,"},{"line_number":158,"context_line":"  then bring it back up in hot-standby state.  Or it can combine such"},{"line_number":159,"context_line":"  commands with neutron commands that block relevant ports to"},{"line_number":160,"context_line":"  interfaces on the failed SVM."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Once the failed SVM is fenced, the newly active SVM just assumes the"},{"line_number":163,"context_line":"  VIP assumes the VIP and issues a gratuitous ARP in the same manner"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_c9b51180","line":160,"range":{"start_line":155,"start_character":0,"end_line":160,"end_character":31},"in_reply_to":"3f4b6375_0e9d6fbb","updated":"2017-10-24 01:44:48.000000000","message":"I updated the paragraph to indicate that the fencing agents need to be written.\n\nI may have over-optimistically interpreted Beekhof\u0027s remarks from a video-conference.  This needs more investigation.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":159,"context_line":"  commands with neutron commands that block relevant ports to"},{"line_number":160,"context_line":"  interfaces on the failed SVM."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Once the failed SVM is fenced, the newly active SVM just assumes the"},{"line_number":163,"context_line":"  VIP assumes the VIP and issues a gratuitous ARP in the same manner"},{"line_number":164,"context_line":"  as an active SVM does when the share server is first created.  And"},{"line_number":165,"context_line":"  once the VIP is up pacemaker starts the relevant services for the"},{"line_number":166,"context_line":"  SVM to export shares."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_aea77b0b","line":163,"range":{"start_line":162,"start_character":59,"end_line":163,"end_character":21},"updated":"2017-10-23 23:27:09.000000000","message":"Duplicated words here.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":159,"context_line":"  commands with neutron commands that block relevant ports to"},{"line_number":160,"context_line":"  interfaces on the failed SVM."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Once the failed SVM is fenced, the newly active SVM just assumes the"},{"line_number":163,"context_line":"  VIP assumes the VIP and issues a gratuitous ARP in the same manner"},{"line_number":164,"context_line":"  as an active SVM does when the share server is first created.  And"},{"line_number":165,"context_line":"  once the VIP is up pacemaker starts the relevant services for the"},{"line_number":166,"context_line":"  SVM to export shares."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_29a6e554","line":163,"range":{"start_line":162,"start_character":59,"end_line":163,"end_character":21},"in_reply_to":"3f4b6375_aea77b0b","updated":"2017-10-24 01:44:48.000000000","message":"Thanks.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":160,"context_line":"  interfaces on the failed SVM."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Once the failed SVM is fenced, the newly active SVM just assumes the"},{"line_number":163,"context_line":"  VIP assumes the VIP and issues a gratuitous ARP in the same manner"},{"line_number":164,"context_line":"  as an active SVM does when the share server is first created.  And"},{"line_number":165,"context_line":"  once the VIP is up pacemaker starts the relevant services for the"},{"line_number":166,"context_line":"  SVM to export shares."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* When a hot-standby SVM goes active it needs to \"see\" relevant state"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_cec997ac","line":165,"range":{"start_line":163,"start_character":26,"end_line":165,"end_character":20},"updated":"2017-10-23 23:27:09.000000000","message":"As mentioned above the VIP would be handled by Pacemaker, with an appropriate order constraint.  There are two possible approaches to ordering here:\n\n1. Ensure that the VIP starts up *after* the share export services.  If the services require binding to an IP at startup then this would require binding to non-local IPs to be enabled in the kernel.\n\n2. Ensure that the VIP starts up *before* the share export services.  In this case the share export services would be able to immediately bind to the VIP on startup, but the downside is that it opens up a window in which clients could connect to the VIP but their requests would go nowhere useful.  That can be addressed by introducing a third portblock service into the ordering: https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/portblock\n\nHaving said that, maybe that is too much implementation detail to warrant being mentioned in this spec?  I\u0027m not sure.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"  interfaces on the failed SVM."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Once the failed SVM is fenced, the newly active SVM just assumes the"},{"line_number":163,"context_line":"  VIP assumes the VIP and issues a gratuitous ARP in the same manner"},{"line_number":164,"context_line":"  as an active SVM does when the share server is first created.  And"},{"line_number":165,"context_line":"  once the VIP is up pacemaker starts the relevant services for the"},{"line_number":166,"context_line":"  SVM to export shares."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* When a hot-standby SVM goes active it needs to \"see\" relevant state"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_492c81ab","line":165,"range":{"start_line":163,"start_character":26,"end_line":165,"end_character":20},"in_reply_to":"3f4b6375_cec997ac","updated":"2017-10-24 01:44:48.000000000","message":"Probably the implementation detail would be useful, at least in a footnote.  More investigation to do ...","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"   * This solution is implemented and understood today."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"   * Resurrecting a dead SVM requires a nova boot and may take too long"},{"line_number":193,"context_line":"     for clients not to be affected."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"2. Integrate alternative #1 with masakari `[7]`_ and/or senlin `[8]`_"},{"line_number":196,"context_line":"   to solve the issues regarding detection of and recovery from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_ae865b12","line":193,"range":{"start_line":192,"start_character":5,"end_line":193,"end_character":36},"updated":"2017-10-23 23:27:09.000000000","message":"Exactly.  That\u0027s why it would help if this spec clarified exactly what are the requirements around recovery time.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"   * This solution is implemented and understood today."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"   * Resurrecting a dead SVM requires a nova boot and may take too long"},{"line_number":193,"context_line":"     for clients not to be affected."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"2. Integrate alternative #1 with masakari `[7]`_ and/or senlin `[8]`_"},{"line_number":196,"context_line":"   to solve the issues regarding detection of and recovery from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_db1f1459","line":193,"range":{"start_line":192,"start_character":5,"end_line":193,"end_character":36},"in_reply_to":"3f4b6375_ae865b12","updated":"2017-10-24 01:44:48.000000000","message":"Agree.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":192,"context_line":"   * Resurrecting a dead SVM requires a nova boot and may take too long"},{"line_number":193,"context_line":"     for clients not to be affected."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"2. Integrate alternative #1 with masakari `[7]`_ and/or senlin `[8]`_"},{"line_number":196,"context_line":"   to solve the issues regarding detection of and recovery from"},{"line_number":197,"context_line":"   falures within the nosting Compute node or within the SVM.  (See"},{"line_number":198,"context_line":"   `[9]`_ for a nice presentation by Adam Spiers on this approach to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_eea7b3bc","line":195,"range":{"start_line":195,"start_character":33,"end_line":195,"end_character":69},"updated":"2017-10-23 23:27:09.000000000","message":"Probably best to split these into two separate alternatives, since they would be fundamentally different architectures.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":192,"context_line":"   * Resurrecting a dead SVM requires a nova boot and may take too long"},{"line_number":193,"context_line":"     for clients not to be affected."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"2. Integrate alternative #1 with masakari `[7]`_ and/or senlin `[8]`_"},{"line_number":196,"context_line":"   to solve the issues regarding detection of and recovery from"},{"line_number":197,"context_line":"   falures within the nosting Compute node or within the SVM.  (See"},{"line_number":198,"context_line":"   `[9]`_ for a nice presentation by Adam Spiers on this approach to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_bb2458b0","line":195,"range":{"start_line":195,"start_character":33,"end_line":195,"end_character":69},"in_reply_to":"3f4b6375_eea7b3bc","updated":"2017-10-24 01:44:48.000000000","message":"OK, I need to learn more ....","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"   * Promising, but no implementation or track record yet."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"   * Still have the issue of having to wait for SVM reboot."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"3. Extend alternative #2 to use containers rather than SVMs."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_2e994b78","line":203,"range":{"start_line":203,"start_character":5,"end_line":203,"end_character":59},"updated":"2017-10-23 23:27:09.000000000","message":"Yes, I suspect this could be a major problem with using masakari.  But possibly not with Senlin - I don\u0027t have in-depth knowledge but it seems to me that this is exactly the sort of use case which Senlin is trying to target.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"   * Promising, but no implementation or track record yet."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"   * Still have the issue of having to wait for SVM reboot."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"3. Extend alternative #2 to use containers rather than SVMs."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_9b3d1cc6","line":203,"range":{"start_line":203,"start_character":5,"end_line":203,"end_character":59},"in_reply_to":"3f4b6375_2e994b78","updated":"2017-10-24 01:44:48.000000000","message":"ack.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"   * Start of container is likely fast enough to make resurrection transparent to clients."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"   * No manila solution for container life cycled in place yet."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"   * No base implementation or track record yet."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_4348e05a","line":209,"range":{"start_line":209,"start_character":43,"end_line":209,"end_character":49},"updated":"2017-10-23 22:07:34.000000000","message":"cycle","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"   * Start of container is likely fast enough to make resurrection transparent to clients."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"   * No manila solution for container life cycled in place yet."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"   * No base implementation or track record yet."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_5b3324f7","line":209,"range":{"start_line":209,"start_character":43,"end_line":209,"end_character":49},"in_reply_to":"3f4b6375_4348e05a","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":211,"context_line":"   * No base implementation or track record yet."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"4. Use active/hot-standby SVMs as proposed but instead of managing"},{"line_number":214,"context_line":"   with pacemeaker, SVMs would write heartbeats indicating"},{"line_number":215,"context_line":"   availability and health and manila itself would (1) read these to"},{"line_number":216,"context_line":"   determine SVM availability and service health, (2) invoke nova"},{"line_number":217,"context_line":"   and/or neutron to fence dead or moribund SVMs.  SVMs could run"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_ce5757ca","line":214,"range":{"start_line":214,"start_character":8,"end_line":214,"end_character":18},"updated":"2017-10-23 23:27:09.000000000","message":"Pacemaker","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":211,"context_line":"   * No base implementation or track record yet."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"4. Use active/hot-standby SVMs as proposed but instead of managing"},{"line_number":214,"context_line":"   with pacemeaker, SVMs would write heartbeats indicating"},{"line_number":215,"context_line":"   availability and health and manila itself would (1) read these to"},{"line_number":216,"context_line":"   determine SVM availability and service health, (2) invoke nova"},{"line_number":217,"context_line":"   and/or neutron to fence dead or moribund SVMs.  SVMs could run"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_3b3068e8","line":214,"range":{"start_line":214,"start_character":8,"end_line":214,"end_character":18},"in_reply_to":"3f4b6375_ce5757ca","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":219,"context_line":"   make VIP migration possible the same way it would in the proposal"},{"line_number":220,"context_line":"   considered in this spec."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"   * Need to design mailbox messaging, perhaps using shared storage"},{"line_number":223,"context_line":"     available to manila as well as to the SVMs."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"   * Would a separate monitoring thread watch mailboxes from manila or"},{"line_number":226,"context_line":"     could this be done as a periodic task triggered from the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_0ed56f1c","line":223,"range":{"start_line":222,"start_character":5,"end_line":223,"end_character":48},"updated":"2017-10-23 23:27:09.000000000","message":"No need to reinvent the wheel here, why not just use SBD?\n\nhttp://www.linux-ha.org/wiki/SBD_Fencing\nhttps://www.suse.com/documentation/sle_ha/book_sleha/data/sec_ha_storage_protect_fencing.html\nhttp://blog.clusterlabs.org/blog/2015/sbd-fun-and-profit\n\nSBD will actually run fine even without Pacemaker, as discussed in I7da600824441341eed8cc13a48f35e50821d8156.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":219,"context_line":"   make VIP migration possible the same way it would in the proposal"},{"line_number":220,"context_line":"   considered in this spec."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"   * Need to design mailbox messaging, perhaps using shared storage"},{"line_number":223,"context_line":"     available to manila as well as to the SVMs."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"   * Would a separate monitoring thread watch mailboxes from manila or"},{"line_number":226,"context_line":"     could this be done as a periodic task triggered from the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_1b4fec6b","line":223,"range":{"start_line":222,"start_character":5,"end_line":223,"end_character":48},"in_reply_to":"3f4b6375_0ed56f1c","updated":"2017-10-24 01:44:48.000000000","message":"Yeah, after reading your remarks on Gorka\u0027s spec I realized this is an avenue we should explore.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"84076cc3814a5dd0d1221ac03ec0b23ce0c991ec","unresolved":false,"context_lines":[{"line_number":219,"context_line":"   make VIP migration possible the same way it would in the proposal"},{"line_number":220,"context_line":"   considered in this spec."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"   * Need to design mailbox messaging, perhaps using shared storage"},{"line_number":223,"context_line":"     available to manila as well as to the SVMs."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"   * Would a separate monitoring thread watch mailboxes from manila or"},{"line_number":226,"context_line":"     could this be done as a periodic task triggered from the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_2c7dc97e","line":223,"range":{"start_line":222,"start_character":5,"end_line":223,"end_character":48},"in_reply_to":"3f4b6375_1b4fec6b","updated":"2017-10-24 09:57:36.000000000","message":"Cool, so based on your response it sounds like you are planning to include this in the spec soon, right?","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"875a549fd416b6990fc01e199c858502d28eb347","unresolved":false,"context_lines":[{"line_number":219,"context_line":"   make VIP migration possible the same way it would in the proposal"},{"line_number":220,"context_line":"   considered in this spec."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"   * Need to design mailbox messaging, perhaps using shared storage"},{"line_number":223,"context_line":"     available to manila as well as to the SVMs."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"   * Would a separate monitoring thread watch mailboxes from manila or"},{"line_number":226,"context_line":"     could this be done as a periodic task triggered from the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_cfe867e3","line":223,"range":{"start_line":222,"start_character":5,"end_line":223,"end_character":48},"in_reply_to":"3f4b6375_2c7dc97e","updated":"2017-10-25 13:55:27.000000000","message":"Yes, I need to research it a bit but will push a new version of the spec with it appearing as alternative.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":230,"context_line":"     changes to manila itself would be required and the solution is"},{"line_number":231,"context_line":"     necessarily manila-specific.  On the other hand, there are less"},{"line_number":232,"context_line":"     dependencies on pacemaker."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Data model impact"},{"line_number":235,"context_line":"-----------------"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_6ee50309","line":233,"updated":"2017-10-23 23:27:09.000000000","message":"Another alternative is very similar to the main proposed solution, except using SBD for fencing via Pacemaker instead of a custom fencing agent which relies on the nova API.  That would probably work quicker, and wouldn\u0027t depend on the control plane being available.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":230,"context_line":"     changes to manila itself would be required and the solution is"},{"line_number":231,"context_line":"     necessarily manila-specific.  On the other hand, there are less"},{"line_number":232,"context_line":"     dependencies on pacemaker."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Data model impact"},{"line_number":235,"context_line":"-----------------"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_db54b400","line":233,"in_reply_to":"3f4b6375_6ee50309","updated":"2017-10-24 01:44:48.000000000","message":"Yeah, let\u0027s explore this alternative too.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"875a549fd416b6990fc01e199c858502d28eb347","unresolved":false,"context_lines":[{"line_number":230,"context_line":"     changes to manila itself would be required and the solution is"},{"line_number":231,"context_line":"     necessarily manila-specific.  On the other hand, there are less"},{"line_number":232,"context_line":"     dependencies on pacemaker."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Data model impact"},{"line_number":235,"context_line":"-----------------"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_850c67ec","line":233,"in_reply_to":"3f4b6375_acad39ea","updated":"2017-10-25 13:55:27.000000000","message":"Agree, I will try to keep the latest version up to date even though it will for some time be clear that various parts are still not complete.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"84076cc3814a5dd0d1221ac03ec0b23ce0c991ec","unresolved":false,"context_lines":[{"line_number":230,"context_line":"     changes to manila itself would be required and the solution is"},{"line_number":231,"context_line":"     necessarily manila-specific.  On the other hand, there are less"},{"line_number":232,"context_line":"     dependencies on pacemaker."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Data model impact"},{"line_number":235,"context_line":"-----------------"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_acad39ea","line":233,"in_reply_to":"3f4b6375_db54b400","updated":"2017-10-24 09:57:36.000000000","message":"Thanks. I think it\u0027s good to include all possible avenues in the spec - they\u0027ll all need various degrees of feasibility investigation, and all but one will get rejected, so if some are less certain than others that\u0027s fine :)\n\nBTW since this is a WIP spec, if you want, IMHO it would also be fine to include stub items as placeholders (e.g. marked with a \"FIXME\"), even before investigation takes place.  That way all reviewers only need to look at the latest version to understand what work on the spec still remains.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":246,"context_line":"Driver impact"},{"line_number":247,"context_line":"-------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"TBD, but using pacemaker to manage cluster state rather than manila"},{"line_number":250,"context_line":"minimizes even what tphe driver has to know about the cluster to its"},{"line_number":251,"context_line":"basic lifecycle rather than having it be cognizant of"},{"line_number":252,"context_line":"active/hot-standby state changes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_836b78b5","line":249,"range":{"start_line":249,"start_character":0,"end_line":249,"end_character":3},"updated":"2017-10-23 22:07:34.000000000","message":"a driver supporting this architecture would ask manila to reserve 3 IP addresses instead of one, and the rest can be handled in the driver itself (without having to interact with neutron), isn\u0027t that correct? the mechanism for reserving IPs already exists (`share_driver.get_network_allocations_number()`)","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":246,"context_line":"Driver impact"},{"line_number":247,"context_line":"-------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"TBD, but using pacemaker to manage cluster state rather than manila"},{"line_number":250,"context_line":"minimizes even what tphe driver has to know about the cluster to its"},{"line_number":251,"context_line":"basic lifecycle rather than having it be cognizant of"},{"line_number":252,"context_line":"active/hot-standby state changes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_5b48c45a","line":249,"range":{"start_line":249,"start_character":0,"end_line":249,"end_character":3},"in_reply_to":"3f4b6375_836b78b5","updated":"2017-10-24 01:44:48.000000000","message":"I think that\u0027s essentially correct but we\u0027ll need to explicitly set up neutron ports with the IPs when we reserve the IPs ...","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":247,"context_line":"-------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"TBD, but using pacemaker to manage cluster state rather than manila"},{"line_number":250,"context_line":"minimizes even what tphe driver has to know about the cluster to its"},{"line_number":251,"context_line":"basic lifecycle rather than having it be cognizant of"},{"line_number":252,"context_line":"active/hot-standby state changes."},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_0378a88d","line":250,"range":{"start_line":250,"start_character":20,"end_line":250,"end_character":24},"updated":"2017-10-23 22:07:34.000000000","message":"the","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":247,"context_line":"-------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"TBD, but using pacemaker to manage cluster state rather than manila"},{"line_number":250,"context_line":"minimizes even what tphe driver has to know about the cluster to its"},{"line_number":251,"context_line":"basic lifecycle rather than having it be cognizant of"},{"line_number":252,"context_line":"active/hot-standby state changes."},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_bbce98b1","line":250,"range":{"start_line":250,"start_character":20,"end_line":250,"end_character":24},"in_reply_to":"3f4b6375_0378a88d","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* limit access to the SVMs only to ssh over an administrative network by a manila service user"},{"line_number":260,"context_line":"* inject credentials for ssh via cloud init"},{"line_number":261,"context_line":"* limit OpenStack client privileges to a manila service project or potentially to the tenant project so that only SVMs and ports belonging to the tenant project can be affected by nova or neutron commands issued from an SVM."},{"line_number":262,"context_line":"* inject OpenStack credentials via cloud init or ssh"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_438fc074","line":261,"range":{"start_line":261,"start_character":93,"end_line":261,"end_character":100},"updated":"2017-10-23 22:07:34.000000000","message":"line break","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* limit access to the SVMs only to ssh over an administrative network by a manila service user"},{"line_number":260,"context_line":"* inject credentials for ssh via cloud init"},{"line_number":261,"context_line":"* limit OpenStack client privileges to a manila service project or potentially to the tenant project so that only SVMs and ports belonging to the tenant project can be affected by nova or neutron commands issued from an SVM."},{"line_number":262,"context_line":"* inject OpenStack credentials via cloud init or ssh"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_fb341095","line":261,"range":{"start_line":261,"start_character":93,"end_line":261,"end_character":100},"in_reply_to":"3f4b6375_438fc074","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":259,"context_line":"* limit access to the SVMs only to ssh over an administrative network by a manila service user"},{"line_number":260,"context_line":"* inject credentials for ssh via cloud init"},{"line_number":261,"context_line":"* limit OpenStack client privileges to a manila service project or potentially to the tenant project so that only SVMs and ports belonging to the tenant project can be affected by nova or neutron commands issued from an SVM."},{"line_number":262,"context_line":"* inject OpenStack credentials via cloud init or ssh"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_238cc47d","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":52},"updated":"2017-10-23 22:07:34.000000000","message":"how is this different from point 2?","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":259,"context_line":"* limit access to the SVMs only to ssh over an administrative network by a manila service user"},{"line_number":260,"context_line":"* inject credentials for ssh via cloud init"},{"line_number":261,"context_line":"* limit OpenStack client privileges to a manila service project or potentially to the tenant project so that only SVMs and ports belonging to the tenant project can be affected by nova or neutron commands issued from an SVM."},{"line_number":262,"context_line":"* inject OpenStack credentials via cloud init or ssh"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_5b61e4d2","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":52},"in_reply_to":"3f4b6375_238cc47d","updated":"2017-10-24 01:44:48.000000000","message":"Well, the ssh key is different than the manila service user keystone password.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":"* _`[2]` The most robust pacemaker clusters are comprised of an odd"},{"line_number":351,"context_line":"  number of nodes so that they can determine quorum.  From informal"},{"line_number":352,"context_line":"  conversation with Andrew Beekhoff, however, we believe that a"},{"line_number":353,"context_line":"  two-node cluster will be sufficient.  Recent versions of pacemaker"},{"line_number":354,"context_line":"  are more robust in handling potential split-brain situations without"},{"line_number":355,"context_line":"  requiring quorum.  Additionally, both nodes in our clusters will be"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_cefd176f","line":352,"range":{"start_line":352,"start_character":27,"end_line":352,"end_character":35},"updated":"2017-10-23 23:27:09.000000000","message":"Beekhof ;-)","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":"* _`[2]` The most robust pacemaker clusters are comprised of an odd"},{"line_number":351,"context_line":"  number of nodes so that they can determine quorum.  From informal"},{"line_number":352,"context_line":"  conversation with Andrew Beekhoff, however, we believe that a"},{"line_number":353,"context_line":"  two-node cluster will be sufficient.  Recent versions of pacemaker"},{"line_number":354,"context_line":"  are more robust in handling potential split-brain situations without"},{"line_number":355,"context_line":"  requiring quorum.  Additionally, both nodes in our clusters will be"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_bba7b80b","line":352,"range":{"start_line":352,"start_character":27,"end_line":352,"end_character":35},"in_reply_to":"3f4b6375_cefd176f","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":356,"context_line":"  on the same share-network, diminishing the likelihood of network"},{"line_number":357,"context_line":"  partitions while both nodes are really up."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"* _`[3]` The manila driver uses a command of the form ``openstack port set --  allowed-address ip-address\u003d\u003cVIP\u003e \u003cSVM\u003e``."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"* _`[4]` Note that although a VIP migrates, and therefore might be"},{"line_number":362,"context_line":"  said to \"float\", between nodes it is not the same as an OpenStack"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_a3f554ef","line":359,"range":{"start_line":359,"start_character":53,"end_line":359,"end_character":54},"updated":"2017-10-23 22:07:34.000000000","message":"line break","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":356,"context_line":"  on the same share-network, diminishing the likelihood of network"},{"line_number":357,"context_line":"  partitions while both nodes are really up."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"* _`[3]` The manila driver uses a command of the form ``openstack port set --  allowed-address ip-address\u003d\u003cVIP\u003e \u003cSVM\u003e``."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"* _`[4]` Note that although a VIP migrates, and therefore might be"},{"line_number":362,"context_line":"  said to \"float\", between nodes it is not the same as an OpenStack"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_3bb3c84f","line":359,"range":{"start_line":359,"start_character":53,"end_line":359,"end_character":54},"in_reply_to":"3f4b6375_a3f554ef","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":367,"context_line":"  IPs are not suitable for our purposes since the aim is to present a"},{"line_number":368,"context_line":"  migratable IP on the *same* network as the share client\u0027s interface."},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* _`[5]` See for example https://review.openstack.org/#/c/389103/4/specs/queens/instance-ha.rst"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"* _`[6]` Although the nova command to bring up a VM on a new node with the same state it had on the old, now dead node is called ``nova evacutate``, we speak of resurrection rather than evacuation since the VM died along with the old compute node that it originally inhabited."},{"line_number":373,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_c3c970ac","line":370,"range":{"start_line":370,"start_character":25,"end_line":370,"end_character":95},"updated":"2017-10-23 22:07:34.000000000","message":"https://review.openstack.org/#/c/389103 would suffice, the current patchset is 6","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":367,"context_line":"  IPs are not suitable for our purposes since the aim is to present a"},{"line_number":368,"context_line":"  migratable IP on the *same* network as the share client\u0027s interface."},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* _`[5]` See for example https://review.openstack.org/#/c/389103/4/specs/queens/instance-ha.rst"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"* _`[6]` Although the nova command to bring up a VM on a new node with the same state it had on the old, now dead node is called ``nova evacutate``, we speak of resurrection rather than evacuation since the VM died along with the old compute node that it originally inhabited."},{"line_number":373,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_fb8ad067","line":370,"range":{"start_line":370,"start_character":25,"end_line":370,"end_character":95},"in_reply_to":"3f4b6375_c3c970ac","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8b728a71c8b285861cd0a9a86f5ac4bd60374583","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* _`[5]` See for example https://review.openstack.org/#/c/389103/4/specs/queens/instance-ha.rst"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"* _`[6]` Although the nova command to bring up a VM on a new node with the same state it had on the old, now dead node is called ``nova evacutate``, we speak of resurrection rather than evacuation since the VM died along with the old compute node that it originally inhabited."},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* _`[7]` https://wiki.openstack.org/wiki/Masakari"},{"line_number":375,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_234f2435","line":372,"range":{"start_line":372,"start_character":98,"end_line":372,"end_character":100},"updated":"2017-10-23 22:07:34.000000000","message":"line break","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* _`[5]` See for example https://review.openstack.org/#/c/389103/4/specs/queens/instance-ha.rst"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"* _`[6]` Although the nova command to bring up a VM on a new node with the same state it had on the old, now dead node is called ``nova evacutate``, we speak of resurrection rather than evacuation since the VM died along with the old compute node that it originally inhabited."},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* _`[7]` https://wiki.openstack.org/wiki/Masakari"},{"line_number":375,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_5b8fa474","line":372,"range":{"start_line":372,"start_character":98,"end_line":372,"end_character":100},"in_reply_to":"3f4b6375_234f2435","updated":"2017-10-24 01:44:48.000000000","message":"Done","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"af48dee5470367c52e3ddd5c62e8271ddf682032","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"* _`[8]` https://wiki.openstack.org/wiki/Senlin"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"* _`[9]` https://www.slideshare.net/openstackil/high-availability-for-instances-moving-to-a-converged-upstream-solution-adam-spiers-openstack-day-israel-2017"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_2e438bb1","line":378,"range":{"start_line":378,"start_character":9,"end_line":378,"end_character":157},"updated":"2017-10-23 23:27:09.000000000","message":"https://youtu.be/uMCMDF9VkYk might be a slightly nicer link for this.","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6915001802e771ccdcfc6a19ace726ed6d8416a7","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"* _`[8]` https://wiki.openstack.org/wiki/Senlin"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"* _`[9]` https://www.slideshare.net/openstackil/high-availability-for-instances-moving-to-a-converged-upstream-solution-adam-spiers-openstack-day-israel-2017"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_3b8ce87d","line":378,"range":{"start_line":378,"start_character":9,"end_line":378,"end_character":157},"in_reply_to":"3f4b6375_2e438bb1","updated":"2017-10-24 01:44:48.000000000","message":"Thanks!","commit_id":"6a6863e35d69bcf7acda9748bdac2884f46e739b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"84076cc3814a5dd0d1221ac03ec0b23ce0c991ec","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Pacemaker will be configured to control which native port assumes"},{"line_number":146,"context_line":"  the active role and which acts as hot standby, likely using"},{"line_number":147,"context_line":"  ocf:heartbeat:Ipaddr2 primitive.  It will bind the VIP to the same"},{"line_number":148,"context_line":"  interface as the native IP, trigger issue of a gratuitous ARP with"},{"line_number":149,"context_line":"  the mac address on that interface so that clients learn immediately"},{"line_number":150,"context_line":"  of the layer 2 address for the VIP, and start or reload necessary"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_892cafac","line":147,"range":{"start_line":147,"start_character":2,"end_line":147,"end_character":23},"updated":"2017-10-24 09:57:36.000000000","message":"I\u0027m not sure whether Pacemaker config is case-sensitive, but it\u0027s actually `IPaddr2` not `Ipaddr2`.  Also worth enclosing this in backticks, and maybe adding a footnote link to either http://linux-ha.org/doc/man-pages/re-ra-IPaddr2.html or https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/IPaddr2.","commit_id":"2fcc3e470575f010b70564eba70810cad9004a4b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"875a549fd416b6990fc01e199c858502d28eb347","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Pacemaker will be configured to control which native port assumes"},{"line_number":146,"context_line":"  the active role and which acts as hot standby, likely using"},{"line_number":147,"context_line":"  ocf:heartbeat:Ipaddr2 primitive.  It will bind the VIP to the same"},{"line_number":148,"context_line":"  interface as the native IP, trigger issue of a gratuitous ARP with"},{"line_number":149,"context_line":"  the mac address on that interface so that clients learn immediately"},{"line_number":150,"context_line":"  of the layer 2 address for the VIP, and start or reload necessary"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_c5381fa1","line":147,"range":{"start_line":147,"start_character":2,"end_line":147,"end_character":23},"in_reply_to":"3f4b6375_892cafac","updated":"2017-10-25 13:55:27.000000000","message":"Thanks, fixed.","commit_id":"2fcc3e470575f010b70564eba70810cad9004a4b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"ffb640fbbacf35ec5f5a48ff87a1cff531f54115","unresolved":false,"context_lines":[{"line_number":243,"context_line":"     necessarily manila-specific.  On the other hand, there are less"},{"line_number":244,"context_line":"     dependencies on pacemaker."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"5. As in #4 but use Storage Based Death Fencing with a Software"},{"line_number":247,"context_line":"   Watchdog instead of relying on manila to monitor and fence."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"   * Attractive in that it seems simpler than relying on manila itself"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f4b6375_3f17fba6","line":246,"range":{"start_line":246,"start_character":20,"end_line":246,"end_character":47},"updated":"2017-10-25 16:48:52.000000000","message":"Presumably you intended to link to footnotes [13] and [14] here?","commit_id":"14217a4d50608d9f5a56a6567e61db25258cd2b4"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d7c47a62e8b461640596689704c5983f56221172","unresolved":false,"context_lines":[{"line_number":243,"context_line":"     necessarily manila-specific.  On the other hand, there are less"},{"line_number":244,"context_line":"     dependencies on pacemaker."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"5. As in #4 but use Storage Based Death Fencing with a Software"},{"line_number":247,"context_line":"   Watchdog instead of relying on manila to monitor and fence."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"   * Attractive in that it seems simpler than relying on manila itself"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f4b6375_4263feb2","line":246,"range":{"start_line":246,"start_character":20,"end_line":246,"end_character":47},"in_reply_to":"3f4b6375_3f17fba6","updated":"2017-10-25 17:14:16.000000000","message":"Yes, thanks.","commit_id":"14217a4d50608d9f5a56a6567e61db25258cd2b4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ffcc226a4845b8a211f36d45e83a23bb358f9444","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Pacemaker will be configured to control which native port assumes"},{"line_number":146,"context_line":"  the active role and which acts as hot standby, likely using"},{"line_number":147,"context_line":"  ``ocf:heartbeat:IPaddr2`` primitive. `[5]`_ `[6]`_ It will bind the VIP to the same"},{"line_number":148,"context_line":"  interface as the native IP, trigger issue of a gratuitous ARP with"},{"line_number":149,"context_line":"  the mac address on that interface so that clients learn immediately"},{"line_number":150,"context_line":"  of the layer 2 address for the VIP, and start or reload necessary"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_abf3e409","line":147,"range":{"start_line":147,"start_character":69,"end_line":147,"end_character":85},"updated":"2017-11-30 19:23:21.000000000","message":"you could make this look nicer in the rst \u003d)","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ed84f060eeb1280fd4dd80c8d6a71373adc60b89","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Pacemaker will be configured to control which native port assumes"},{"line_number":146,"context_line":"  the active role and which acts as hot standby, likely using"},{"line_number":147,"context_line":"  ``ocf:heartbeat:IPaddr2`` primitive. `[5]`_ `[6]`_ It will bind the VIP to the same"},{"line_number":148,"context_line":"  interface as the native IP, trigger issue of a gratuitous ARP with"},{"line_number":149,"context_line":"  the mac address on that interface so that clients learn immediately"},{"line_number":150,"context_line":"  of the layer 2 address for the VIP, and start or reload necessary"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_7a5bc853","line":147,"range":{"start_line":147,"start_character":69,"end_line":147,"end_character":85},"in_reply_to":"ff82abbf_abf3e409","updated":"2017-12-01 02:29:50.000000000","message":"Done","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ffcc226a4845b8a211f36d45e83a23bb358f9444","unresolved":false,"context_lines":[{"line_number":178,"context_line":"  SVM to export shares."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* When a hot-standby SVM goes active it needs to \"see\" relevant state"},{"line_number":181,"context_line":"  from the failed-over SVM.  Since these SVMs are serve up shared"},{"line_number":182,"context_line":"  storage the most natural way to do this is for the active SVM to"},{"line_number":183,"context_line":"  persist state like its exports and allowed accesses to the shared"},{"line_number":184,"context_line":"  storage and for a newly active SVM to refresh this state from the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_0bed3024","line":181,"range":{"start_line":181,"start_character":50,"end_line":181,"end_character":55},"updated":"2017-11-30 19:23:21.000000000","message":"serving","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ed84f060eeb1280fd4dd80c8d6a71373adc60b89","unresolved":false,"context_lines":[{"line_number":178,"context_line":"  SVM to export shares."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* When a hot-standby SVM goes active it needs to \"see\" relevant state"},{"line_number":181,"context_line":"  from the failed-over SVM.  Since these SVMs are serve up shared"},{"line_number":182,"context_line":"  storage the most natural way to do this is for the active SVM to"},{"line_number":183,"context_line":"  persist state like its exports and allowed accesses to the shared"},{"line_number":184,"context_line":"  storage and for a newly active SVM to refresh this state from the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_da2f74a5","line":181,"range":{"start_line":181,"start_character":50,"end_line":181,"end_character":55},"in_reply_to":"ff82abbf_0bed3024","updated":"2017-12-01 02:29:50.000000000","message":"Done","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ffcc226a4845b8a211f36d45e83a23bb358f9444","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"2. Integrate alternative #1 with masakari `[9]`_ and/or senlin `[10]`_"},{"line_number":208,"context_line":"   to solve the issues regarding detection of and recovery from"},{"line_number":209,"context_line":"   falures within the nosting Compute node or within the SVM.  (See"},{"line_number":210,"context_line":"   `[11]`_ for a nice presentation by Adam Spiers on this approach to"},{"line_number":211,"context_line":"   HA for \"pet\" OpenStack VMs in the general case.  And see also: `[12]`_"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_7007721a","line":209,"range":{"start_line":209,"start_character":22,"end_line":209,"end_character":29},"updated":"2017-11-30 19:23:21.000000000","message":"nesting?","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"4683ba4934fbc94f76bfb8a1ff5a7c373a4b8f78","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"2. Integrate alternative #1 with masakari `[9]`_ and/or senlin `[10]`_"},{"line_number":208,"context_line":"   to solve the issues regarding detection of and recovery from"},{"line_number":209,"context_line":"   falures within the nosting Compute node or within the SVM.  (See"},{"line_number":210,"context_line":"   `[11]`_ for a nice presentation by Adam Spiers on this approach to"},{"line_number":211,"context_line":"   HA for \"pet\" OpenStack VMs in the general case.  And see also: `[12]`_"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_bff38573","line":209,"range":{"start_line":209,"start_character":22,"end_line":209,"end_character":29},"in_reply_to":"ff82abbf_7007721a","updated":"2017-11-30 22:18:55.000000000","message":"I think it\u0027s supposed to say \"hosting\".","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ed84f060eeb1280fd4dd80c8d6a71373adc60b89","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"2. Integrate alternative #1 with masakari `[9]`_ and/or senlin `[10]`_"},{"line_number":208,"context_line":"   to solve the issues regarding detection of and recovery from"},{"line_number":209,"context_line":"   falures within the nosting Compute node or within the SVM.  (See"},{"line_number":210,"context_line":"   `[11]`_ for a nice presentation by Adam Spiers on this approach to"},{"line_number":211,"context_line":"   HA for \"pet\" OpenStack VMs in the general case.  And see also: `[12]`_"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_ba3e30d8","line":209,"range":{"start_line":209,"start_character":22,"end_line":209,"end_character":29},"in_reply_to":"ff82abbf_bff38573","updated":"2017-12-01 02:29:50.000000000","message":"\u0027hosting\u0027 was intended.  Fixed.","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ffcc226a4845b8a211f36d45e83a23bb358f9444","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"3. Extend alternative #2 to use containers rather than SVMs."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"   * Start of container is likely fast enough to make resurrection transparent to clients."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"   * No manila solution for container life cycle in place yet."},{"line_number":222,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_10186673","line":219,"range":{"start_line":219,"start_character":78,"end_line":219,"end_character":90},"updated":"2017-11-30 19:23:21.000000000","message":"could break line here","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ed84f060eeb1280fd4dd80c8d6a71373adc60b89","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"3. Extend alternative #2 to use containers rather than SVMs."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"   * Start of container is likely fast enough to make resurrection transparent to clients."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"   * No manila solution for container life cycle in place yet."},{"line_number":222,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_5a2364bf","line":219,"range":{"start_line":219,"start_character":78,"end_line":219,"end_character":90},"in_reply_to":"ff82abbf_10186673","updated":"2017-12-01 02:29:50.000000000","message":"Done","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ffcc226a4845b8a211f36d45e83a23bb358f9444","unresolved":false,"context_lines":[{"line_number":313,"context_line":"Performance Impact"},{"line_number":314,"context_line":"------------------"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Should be no different than with individual SVMs."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Other deployer impact"},{"line_number":319,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_70f1b201","line":316,"range":{"start_line":316,"start_character":9,"end_line":316,"end_character":22},"updated":"2017-11-30 19:23:21.000000000","message":"additional memory consumption to have 2 SVMs instead of one?\nmonitoring overhead?\ncpu cycles of 2 SVMs running?\n\nI know those are all negligible, but your statement implies that there is no difference from the current state.","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ed84f060eeb1280fd4dd80c8d6a71373adc60b89","unresolved":false,"context_lines":[{"line_number":313,"context_line":"Performance Impact"},{"line_number":314,"context_line":"------------------"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Should be no different than with individual SVMs."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Other deployer impact"},{"line_number":319,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_7a09882f","line":316,"range":{"start_line":316,"start_character":9,"end_line":316,"end_character":22},"in_reply_to":"ff82abbf_70f1b201","updated":"2017-12-01 02:29:50.000000000","message":"All true.  I\u0027ve added what is hopefully a better explanation of the situation as I see it, which boils down to: if the cloud is properly provisioned the additional required load will not be noticed (and if it\u0027s not, there would be other problems meeting demand anyways).","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ffcc226a4845b8a211f36d45e83a23bb358f9444","unresolved":false,"context_lines":[{"line_number":334,"context_line":"Assignee(s)"},{"line_number":335,"context_line":"-----------"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"Driver developers."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Work Items"},{"line_number":340,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_f0e4e23e","line":337,"range":{"start_line":337,"start_character":0,"end_line":337,"end_character":18},"updated":"2017-11-30 19:23:21.000000000","message":"\"Manila contributors\" would fit better here","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ed84f060eeb1280fd4dd80c8d6a71373adc60b89","unresolved":false,"context_lines":[{"line_number":334,"context_line":"Assignee(s)"},{"line_number":335,"context_line":"-----------"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"Driver developers."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Work Items"},{"line_number":340,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_1a063c22","line":337,"range":{"start_line":337,"start_character":0,"end_line":337,"end_character":18},"in_reply_to":"ff82abbf_f0e4e23e","updated":"2017-12-01 02:29:50.000000000","message":"Done","commit_id":"9da5822115d30d6ebef6616c4925ee8296db7544"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"b0312b0e889317aec962c44f400a8c27f4567cca","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  off or is sufficiently unhealthy, the hot-standby node takes over."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* A driver may provide configuration options for the cloud operator to"},{"line_number":111,"context_line":"  indicate a pair of Availabilty Zones (AZs) for SVM clusters, in"},{"line_number":112,"context_line":"  which case it will launch each member of an SVM HA pair in a"},{"line_number":113,"context_line":"  different AZ.  If the driver does not supply this option or the"},{"line_number":114,"context_line":"  option is not configured it will still be critical that SVMs in the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_7effbaaa","line":111,"range":{"start_line":111,"start_character":21,"end_line":111,"end_character":32},"updated":"2017-12-19 03:46:24.000000000","message":"it should be changed: Availability","commit_id":"41a012a1e6ce1a0a842d443b0fba6c90390bb438"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"b0312b0e889317aec962c44f400a8c27f4567cca","unresolved":false,"context_lines":[{"line_number":194,"context_line":"   remote running on Compute nodes `[7]`_ to detect node failure and"},{"line_number":195,"context_line":"   resurrect `[8]`_ dead SVMs on new Compute nodes.  On the new"},{"line_number":196,"context_line":"   Compute node the SVM would serve up the same export locations as it"},{"line_number":197,"context_line":"   did orignially."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"   * Detects node failure but not failures within the hosting compute"},{"line_number":200,"context_line":"     node or within the SVM running on that Compute node."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_9e15dee7","line":197,"range":{"start_line":197,"start_character":7,"end_line":197,"end_character":17},"updated":"2017-12-19 03:46:24.000000000","message":"originally?","commit_id":"41a012a1e6ce1a0a842d443b0fba6c90390bb438"}]}
