)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":11,"context_line":"volume to multiple VM instances."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Previously-approved: mitaka"},{"line_number":14,"context_line":"Implements: blueprint multi_attach_volume"},{"line_number":15,"context_line":"Change-Id: I288f7140e3acd979b65734049fd42c2b3f3c5277"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9abb7d3a_ca19a27b","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":41},"updated":"2016-06-02 19:35:38.000000000","message":"Spec for blueprint multi-attach-volume\n\nOtherwise the link doesn\u0027t work.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"volume to multiple VM instances."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Previously-approved: mitaka"},{"line_number":14,"context_line":"Implements: blueprint multi_attach_volume"},{"line_number":15,"context_line":"Change-Id: I288f7140e3acd979b65734049fd42c2b3f3c5277"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9abb7d3a_8d221400","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":41},"in_reply_to":"9abb7d3a_ca19a27b","updated":"2016-06-02 20:37:38.000000000","message":"Done","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"}],"specs/newton/approved/multi-attach-volume.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71f977ab27adfe4967003448998d011855941b19","unresolved":false,"context_lines":[{"line_number":30,"context_line":"with two nodes where one is active and one is passive. Both"},{"line_number":31,"context_line":"require access to the same volume although only one accesses"},{"line_number":32,"context_line":"actively. When the active one goes down, the passive one can take"},{"line_number":33,"context_line":"over quickly and has access to the data."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_c2ed19f1","line":33,"updated":"2016-05-24 11:00:23.000000000","message":"Its very tempting to be clear that the VM is responsible to deciding between the read-write vs read-only mount inside the guest?","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"680175ee72d885cb2f9bdea21966939e714864db","unresolved":false,"context_lines":[{"line_number":30,"context_line":"with two nodes where one is active and one is passive. Both"},{"line_number":31,"context_line":"require access to the same volume although only one accesses"},{"line_number":32,"context_line":"actively. When the active one goes down, the passive one can take"},{"line_number":33,"context_line":"over quickly and has access to the data."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_2c25ecad","line":33,"in_reply_to":"bab6814e_1b62e3d8","updated":"2016-05-24 13:37:30.000000000","message":"ah, I missed that, thats fine.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0d404abb898d3d0e99649de0f0962dacf6dd50c8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"with two nodes where one is active and one is passive. Both"},{"line_number":31,"context_line":"require access to the same volume although only one accesses"},{"line_number":32,"context_line":"actively. When the active one goes down, the passive one can take"},{"line_number":33,"context_line":"over quickly and has access to the data."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_1b62e3d8","line":33,"in_reply_to":"bab6814e_c2ed19f1","updated":"2016-05-24 12:31:27.000000000","message":"This is only the use case description, so I would not add this here. There\u0027s a note in the documentation section below that what happens on the volume is the user\u0027s responsibility and it has to be documented correctly. I can add a note about this there if you think it\u0027s needed.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"45a3dccbb55550302595c52b01ca186ca4e52e17","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The changes needed in Nova are related to attach time and detach time."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Cinder will only allow a volume to be attached more than once if its"},{"line_number":43,"context_line":"\u0027multiattach\u0027 flag is set on the volume at create time. Nova is expected to"},{"line_number":44,"context_line":"rely on Cinder to do the check on the volume state during \u0027reserve_volume\u0027"},{"line_number":45,"context_line":"by following the changes [#]_ in the interaction of these two modules."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_2566cfec","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":70},"updated":"2016-05-12 02:50:51.000000000","message":"Can multiple attach or detach one volume to different vms at the same time?\nHow do you think about this kind of concurrent operation?","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"7805640448f30a5cbf17d8e1b3dfc231e3828482","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The changes needed in Nova are related to attach time and detach time."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Cinder will only allow a volume to be attached more than once if its"},{"line_number":43,"context_line":"\u0027multiattach\u0027 flag is set on the volume at create time. Nova is expected to"},{"line_number":44,"context_line":"rely on Cinder to do the check on the volume state during \u0027reserve_volume\u0027"},{"line_number":45,"context_line":"by following the changes [#]_ in the interaction of these two modules."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_db21a49f","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":70},"in_reply_to":"dab17558_2566cfec","updated":"2016-05-12 04:10:33.000000000","message":"No, as to decide on this is Cinder\u0027s responsibility and Cinder currently blocks these concurrent operations.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71f977ab27adfe4967003448998d011855941b19","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The changes needed in Nova are related to attach time and detach time."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Cinder will only allow a volume to be attached more than once if its"},{"line_number":43,"context_line":"\u0027multiattach\u0027 flag is set on the volume at create time. Nova is expected to"},{"line_number":44,"context_line":"rely on Cinder to do the check on the volume state during \u0027reserve_volume\u0027"},{"line_number":45,"context_line":"by following the changes [#]_ in the interaction of these two modules."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_62aa6d87","line":45,"range":{"start_line":42,"start_character":0,"end_line":45,"end_character":70},"in_reply_to":"dab17558_db21a49f","updated":"2016-05-24 11:00:23.000000000","message":"+1 ildiko","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"9249d130a2518c5b530c5671604f32a7852822b2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"},{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":53,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_29e081cc","line":50,"updated":"2016-05-11 16:32:55.000000000","message":"One of the big issue, if I correctly understood, is that we do not know in nova when we should terminate the connection with cinder as Nova doesn\u0027t know idea how many instances are using the volume, that is true especially with some specific cinder drivers which expose a single target shared by the difference instance connections on the same compute node.\nWhat is the proposed solution for this problem?\nIf there is any, please can you mention it here?","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"fd3950362b4c878e74fe82fce9a9726b3c8e7bdf","unresolved":false,"context_lines":[{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"},{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":53,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_21db2eef","line":50,"in_reply_to":"bab6814e_2c04ccc4","updated":"2016-05-24 15:16:59.000000000","message":"Cool, I will add a note here about the intentions and highlight the need for handling a microversion here.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"680175ee72d885cb2f9bdea21966939e714864db","unresolved":false,"context_lines":[{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"},{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":53,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_2c04ccc4","line":50,"in_reply_to":"bab6814e_602a5ee9","updated":"2016-05-24 13:37:30.000000000","message":"I think we could be vague and say Cinder needs to tell nova when a detach is required in a new microversion. And then discuss that the attach of a multi-attach volume will fail if that microversion is not present.\n\nWe don\u0027t need the cinder details here, but I think we should define the interaction, at least roughly.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0d404abb898d3d0e99649de0f0962dacf6dd50c8","unresolved":false,"context_lines":[{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"},{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":53,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_602a5ee9","line":50,"in_reply_to":"bab6814e_8ecdfa88","updated":"2016-05-24 12:31:27.000000000","message":"The bug report is a bit tricky in the sense of with only single attach the workarounds we have now are keeping the code alive. Although I think we can report a bug based on what we discussed yesterday on the meeting about the VM movement actions.\n\nI think by the end of the day we will need a Cinder microversion, I don\u0027t think the initialize_connection changes will be backported or anything like that. I will confirm this with the Cinder guys as well.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"8717eb1dd4065da247c39d27180579249178c5ef","unresolved":false,"context_lines":[{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"},{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":53,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_d7bfcbcd","line":50,"in_reply_to":"dab17558_29e081cc","updated":"2016-05-11 18:32:34.000000000","message":"We are focusing on simplifying the interaction between Cinder and Nova and move the responsibilities back where they belong. In this sense Cinder should be the ultimate source of truth. The planned first step is to modify initialize_connection and store connection_info in Cinder along with the host info. This way Cinder can decide at terminate_connection time whether the target should be removed or not.\n\nWe still have work to do on Nova side, which is to identify when to call disconnect_volume as that is the first in the row. There are multiple options for this one. One is that Cinder provides the information whether the target for the given volume is shared or not. By having this information Nova knows everything to be able to determine when to remove the connection. Another option is to add a new API to Cinder which tells whether it\u0027s safe to disconnect or not.\n\nThese items can be considered as improvements in the current interaction flow which also happen to be prerequisites for multiattach, so I would not necessarily want to add all these details to this spec. The Cinder side of implementation is ongoing and what I described above is a little bit experimental. I will check whether we have a sort of bug report for this issue for Cinder and if not I will create one and add it to here as a dependency. That way we will not be limited by the implementation details.\n\nPlease let me know if you have further questions.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71f977ab27adfe4967003448998d011855941b19","unresolved":false,"context_lines":[{"line_number":47,"context_line":"At detach time, Nova needs to pass the attachment_id to the cinderclient"},{"line_number":48,"context_line":"to tell cinder which specific attachment it\u0027s requesting to detach. This change"},{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":53,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_8ecdfa88","line":50,"in_reply_to":"dab17558_d7bfcbcd","updated":"2016-05-24 11:00:23.000000000","message":"Hmm, we should state that as a dependency, and point to the particular bug that needs to get fixed.\n\nIt maybe we require a cinder microversion to be available to support multi-attach. Or did we find a way for that not to be required?","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71f977ab27adfe4967003448998d011855941b19","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Nova needs to set this \u0027shareable\u0027 flag for the multi-attach disks of the"},{"line_number":60,"context_line":"instances. Only the libvirt driver is modified to support multi-attach, for"},{"line_number":61,"context_line":"all other virt drivers this capability is disabled, the information is stored"},{"line_number":62,"context_line":"among the virt driver capabilities dict in the base ComputeDriver."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_6ec6d64a","line":62,"updated":"2016-05-24 11:00:23.000000000","message":"Nit: We should be explicit, this means the compute node will reject the attach if the virt driver doesn\u0027t support mult-attach.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0d404abb898d3d0e99649de0f0962dacf6dd50c8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Nova needs to set this \u0027shareable\u0027 flag for the multi-attach disks of the"},{"line_number":60,"context_line":"instances. Only the libvirt driver is modified to support multi-attach, for"},{"line_number":61,"context_line":"all other virt drivers this capability is disabled, the information is stored"},{"line_number":62,"context_line":"among the virt driver capabilities dict in the base ComputeDriver."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_9ba41309","line":62,"in_reply_to":"bab6814e_6ec6d64a","updated":"2016-05-24 12:31:27.000000000","message":"Done","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71f977ab27adfe4967003448998d011855941b19","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"There are features of the Nova API that has to be handled by care or disabled"},{"line_number":89,"context_line":"completely for now for volumes that support multi-attach. In this sense"},{"line_number":90,"context_line":"\u0027create_volume_snapshot\u0027 is disabled as we cannot identify the BDM without"},{"line_number":91,"context_line":"the instance_uuid. The API format for this request is not changed, it is only"},{"line_number":92,"context_line":"a protection until the required API changes to support this request with"},{"line_number":93,"context_line":"multi-attach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_2eecce8e","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":23},"updated":"2016-05-24 11:00:23.000000000","message":"Hmm, which REST API does that actually mean?\n\nI think it is os-assisted-volume-snapshots (create):\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/assisted_volume_snapshots.py#L47\n\nThats added only for Cinder to call, for the case where you have \"local\" volumes, I believe?\n\nI assume Cinder doesn\u0027t allow local volumes to be multi-attached, as that doesn\u0027t seem possible? So this seems like a very small limitation (good spot by the way!)","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"fd3950362b4c878e74fe82fce9a9726b3c8e7bdf","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"There are features of the Nova API that has to be handled by care or disabled"},{"line_number":89,"context_line":"completely for now for volumes that support multi-attach. In this sense"},{"line_number":90,"context_line":"\u0027create_volume_snapshot\u0027 is disabled as we cannot identify the BDM without"},{"line_number":91,"context_line":"the instance_uuid. The API format for this request is not changed, it is only"},{"line_number":92,"context_line":"a protection until the required API changes to support this request with"},{"line_number":93,"context_line":"multi-attach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_64fc243f","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":23},"in_reply_to":"bab6814e_0cd74824","updated":"2016-05-24 15:16:59.000000000","message":"Done","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0d404abb898d3d0e99649de0f0962dacf6dd50c8","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"There are features of the Nova API that has to be handled by care or disabled"},{"line_number":89,"context_line":"completely for now for volumes that support multi-attach. In this sense"},{"line_number":90,"context_line":"\u0027create_volume_snapshot\u0027 is disabled as we cannot identify the BDM without"},{"line_number":91,"context_line":"the instance_uuid. The API format for this request is not changed, it is only"},{"line_number":92,"context_line":"a protection until the required API changes to support this request with"},{"line_number":93,"context_line":"multi-attach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_66b556cf","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":23},"in_reply_to":"bab6814e_2eecce8e","updated":"2016-05-24 12:31:27.000000000","message":"Based on the \u0027get_by_volume\u0027 call that should be the one.\n\nI will double check when it\u0027s used as if that\u0027s the only case you mentioned then it looks unnecessary to do that check.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"680175ee72d885cb2f9bdea21966939e714864db","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"There are features of the Nova API that has to be handled by care or disabled"},{"line_number":89,"context_line":"completely for now for volumes that support multi-attach. In this sense"},{"line_number":90,"context_line":"\u0027create_volume_snapshot\u0027 is disabled as we cannot identify the BDM without"},{"line_number":91,"context_line":"the instance_uuid. The API format for this request is not changed, it is only"},{"line_number":92,"context_line":"a protection until the required API changes to support this request with"},{"line_number":93,"context_line":"multi-attach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_0cd74824","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":23},"in_reply_to":"bab6814e_66b556cf","updated":"2016-05-24 13:37:30.000000000","message":"I quite like the check as a \"just in case\" protection for someone using the interface incorrectly (it would be great to check if the volume is a local volume, etc).\n\nI think we should talk about the REST API using the API call here, just to avoid and confusion.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"0c5d68851992e57ef83ff27f55d484bdfeb7cec1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_913966a6","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"updated":"2016-05-13 15:29:07.000000000","message":"This is already the case, at the moment we log a warning and I am quite sure that no one is interesting at it.\nI am thinking that having a multi-attach in place just increase the chances of errors and I am not sure Cinder should return an error, as long as Cinder has accepted the request from Nova side we have done, if something goes wrong it is a Cinder issue.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"fd3950362b4c878e74fe82fce9a9726b3c8e7bdf","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_042278b9","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"bab6814e_4c867014","updated":"2016-05-24 15:16:59.000000000","message":"I like the \"no change required\" better also, I think it\u0027s more straight forward than modifying this behaviour.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"680175ee72d885cb2f9bdea21966939e714864db","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_4c867014","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"bab6814e_6017fe54","updated":"2016-05-24 13:37:30.000000000","message":"Yeah, I could go either way here. This is the \"no change required\" way, which is probably best, as its simpler to describe/understand.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0d404abb898d3d0e99649de0f0962dacf6dd50c8","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_6017fe54","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"bab6814e_6e7376e8","updated":"2016-05-24 12:31:27.000000000","message":"In the sense of Cinder handles it I\u0027m not sure we should change anything in Nova as when you have only one attachment left the flag becomes valid. Until that case Cinder will not delete the volume, so I think the flag is still valid. We might add it to the documentation that in case of multiattach volumes the deletion will happen in case of the last attachment is getting detached.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71f977ab27adfe4967003448998d011855941b19","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_6e7376e8","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"dab17558_21e9b57f","updated":"2016-05-24 11:00:23.000000000","message":"It is tempting to not allow delete_on_termination for any multi-attach volumes. Just to stop any confusion.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"15d785610577653adc1b36bae8d07390ecc1d2c6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_d6a0ffa7","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"dab17558_235aeb83","updated":"2016-05-13 15:54:05.000000000","message":"No I am not suggesting to change the workflow. I was referring to the use case you described about Cinder not deleting a volume in case that the volume has still active attachments. We do not have this issue at the moment as we do not have multi-attach but introducing the multi-attach we are going to hit this problem, but I think that actually it is not a problem for Nova, in fact even now if we get an error while we are deleting a volume Nova just logs a warning and goes ahead, so I was thinking that if Cinder get a request for deleting a volume it should check if it can do that and if it can\u0027t I do not see the point of returning an error to Nova.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"f58bd4b0cc945665389988e3063e5cee6cfe5010","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_235aeb83","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"dab17558_913966a6","updated":"2016-05-13 15:39:58.000000000","message":"A few questions for my better understanding. Which errors do you see have bigger chance in this case? The process of complete the termination of the instance is already there in Nova. Do you suggest to change the workflow?","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"cefb306eb6915b7e78934a777087f7b1c52d9754","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\u0027delete_on_termination\u0027 flag, which if set to True is intended to remove the"},{"line_number":98,"context_line":"volume that is attached to the instance when it is deleted. This option does"},{"line_number":99,"context_line":"not cause problem as Cinder takes care of not deleting a volume if it still"},{"line_number":100,"context_line":"has active attachments. Nova will receive an error from Cinder that the volume"},{"line_number":101,"context_line":"deletion failed, which will then be logged [#]_, but will not affect the"},{"line_number":102,"context_line":"instance termination process. According to this this flag will be allowed to"},{"line_number":103,"context_line":"use along with multi-attach, no changes are necessary when the volume provided"},{"line_number":104,"context_line":"has multiattach\u003dTrue and the delete_on_termination\u003dTrue flag is passed in for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dab17558_21e9b57f","line":101,"range":{"start_line":100,"start_character":24,"end_line":101,"end_character":47},"in_reply_to":"dab17558_d6a0ffa7","updated":"2016-05-17 16:08:25.000000000","message":"This is a special case when we have the \u0027delete_on_termination\u0027 flag set, on the other hand there can be multiple reasons why Cinder cannot delete the volume and multi-attach is only one of those. I think a log entry can still be useful about this even on Nova side.","commit_id":"7222d8a1275067ea4715dc53338349f46085b435"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/multi-attach-volume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Currently, Nova only allows a volume to be attached to a single"},{"line_number":14,"context_line":"host or instance.  There are times when a user may want to be able"},{"line_number":15,"context_line":"to attach the same volume to multiple instances."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_2a25cead","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":4},"updated":"2016-06-02 19:35:38.000000000","message":"guest?\n\nI\u0027d probably just drop the \u0027host or\u0027 part.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/multi-attach-volume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Currently, Nova only allows a volume to be attached to a single"},{"line_number":14,"context_line":"host or instance.  There are times when a user may want to be able"},{"line_number":15,"context_line":"to attach the same volume to multiple instances."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_cd025c0b","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":4},"in_reply_to":"9abb7d3a_2a25cead","updated":"2016-06-02 20:37:38.000000000","message":"Done","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"72744206ea549264ba39a44285dfee0f5301fa74","unresolved":false,"context_lines":[{"line_number":49,"context_line":"was added during Mitaka by getting the volume info from the volume_api and"},{"line_number":50,"context_line":"searching for the attachment by using the instance_uuid."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Beyond the aformentioned change Nova still needs to know when it can safely"},{"line_number":53,"context_line":"disconnect the volume. Cinder is planned to provide the information to Nova,"},{"line_number":54,"context_line":"the change will be added under new API microversion(s). Nova will not support"},{"line_number":55,"context_line":"multi-attach, when Cinder does not have the minimum required microversion."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"By default libvirt assumes all disks are exclusively used by a single guest."},{"line_number":58,"context_line":"If you want to share disks between instances, you need to tell libvirt"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_b2392a44","line":55,"range":{"start_line":52,"start_character":0,"end_line":55,"end_character":74},"updated":"2016-05-24 15:46:21.000000000","message":"+1 for mentioning to the detach issue, thanks.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Nova needs to set this \u0027shareable\u0027 flag for the multi-attach disks of the"},{"line_number":65,"context_line":"instances. Only the libvirt driver is modified to support multi-attach, for"},{"line_number":66,"context_line":"all other virt drivers this capability is disabled, the information is stored"},{"line_number":67,"context_line":"among the virt driver capabilities dict in the base ComputeDriver. Nova will"},{"line_number":68,"context_line":"reject the attach request in case the hypervisor does not support it."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_2aedce8e","line":68,"range":{"start_line":67,"start_character":67,"end_line":68,"end_character":69},"updated":"2016-06-02 19:35:38.000000000","message":"So, the nova-api doesn\u0027t check the capabilities of the computes, so I\u0027m not sure how we\u0027re going to do this. This is where things fall into capability discovery via the API, which we don\u0027t have yet (we\u0027re working on discoverable policy in Newton).\n\nFor clouds like at Rackspace which use Xen, and this won\u0027t work, they\u0027ll probably add a policy check to the code. Although alternatively if Rackspace has a policy against creating multiattach volumes in the first place it\u0027s a non-issue - or they don\u0027t have volume create requests land anywhere that support multiattach, I\u0027m not sure.\n\nIf we can\u0027t check in the API, then it fails in the compute, which is after a cast - which kind of sucks for usability. You request to attach a volume to an instance, get a 202, and it eventually fails. The instance state doesn\u0027t change, the only trail is the instance action event (if we even track that for volume attach).\n\nAnother thing for this is downlevel computes. Do we have anything in this spec about checking from the API that the minimum compute service version is high enough to support multiattach? I had to add that in the get-me-a-network API change here:\n\nhttps://review.openstack.org/#/c/316398/6/nova/api/openstack/compute/servers.py@526\n\nThat at least provides a fast way to fail in the API if we know all of the computes in the deployment aren\u0027t at the proper code level (ignoring the fact they could still fail if they aren\u0027t using libvirt).","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Nova needs to set this \u0027shareable\u0027 flag for the multi-attach disks of the"},{"line_number":65,"context_line":"instances. Only the libvirt driver is modified to support multi-attach, for"},{"line_number":66,"context_line":"all other virt drivers this capability is disabled, the information is stored"},{"line_number":67,"context_line":"among the virt driver capabilities dict in the base ComputeDriver. Nova will"},{"line_number":68,"context_line":"reject the attach request in case the hypervisor does not support it."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_2830369e","line":68,"range":{"start_line":67,"start_character":67,"end_line":68,"end_character":69},"in_reply_to":"9abb7d3a_2aedce8e","updated":"2016-06-02 20:37:38.000000000","message":"Added some notes about these.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"REST API impact"},{"line_number":92,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_caf8824c","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":4},"updated":"2016-06-02 19:35:38.000000000","message":"Well, unless we have to store more information in the nova.block_device_mappings.connection_info json blob, but that is dependent on what changes are required from the Cinder side, so it\u0027s probably OK to leave this None.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"REST API impact"},{"line_number":92,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_68b87ee6","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":4},"in_reply_to":"9abb7d3a_caf8824c","updated":"2016-06-02 20:37:38.000000000","message":"With the intention to simplify the interaction between Nova and Cinder I think we got even further from adding any extra piece to the BDM than where we were a few weeks ago.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"REST API impact"},{"line_number":92,"context_line":"---------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"There are features of the Nova API that has to be handled by care or disabled"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_ad39d8da","line":91,"updated":"2016-06-02 19:35:38.000000000","message":"This section talks about boot from volume, but doesn\u0027t mention that we could schedule the instance to land on a compute that doesn\u0027t support multiattach for volumes (either because it\u0027s running mitaka code, or because it\u0027s not running the libvirt driver). I see two solutions:\n\n1. The compute manager is going to check the virt driver capabilities when prepping block devices (during build_and_run_instance) and see it doesn\u0027t support multiattach, and fail. This should kick the build request back to the scheduler for finding another host. Not great, but it\u0027s something.\n\n2. I\u0027d think we could have a (new) scheduler filter, or use the compute capabilities filter + extra specs (gross), to see that we\u0027ve been requested to place and build an instance and attach that instance to a multiattach volume, so the filter would check the compute capabilities to filter out compute nodes that don\u0027t support multiattach. The upside to this is you fail during scheduling rather than when you\u0027re on the compute (so you don\u0027t waste time allocating networks for the instance once the scheduler has picked a host).","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"REST API impact"},{"line_number":92,"context_line":"---------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"There are features of the Nova API that has to be handled by care or disabled"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_c8f7ea8a","line":91,"in_reply_to":"9abb7d3a_ad39d8da","updated":"2016-06-02 20:37:38.000000000","message":"I like option #2 better in the sense of we don\u0027t need to reschedule for innumerable times.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"For cases, where Nova creates the volume itself, i.e. source_type is"},{"line_number":127,"context_line":"blank/image/snapshot, it should not enable multi-attach for the volume for now."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"More desired REST API changes are listed in a follow up spec."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_caa6c252","line":129,"updated":"2016-06-02 19:35:38.000000000","message":"Is this true? It was in Mitaka at one point, but I\u0027m not sure it is anymore.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"For cases, where Nova creates the volume itself, i.e. source_type is"},{"line_number":127,"context_line":"blank/image/snapshot, it should not enable multi-attach for the volume for now."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"More desired REST API changes are listed in a follow up spec."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_8834c24a","line":129,"in_reply_to":"9abb7d3a_caa6c252","updated":"2016-06-02 20:37:38.000000000","message":"Good catch, we finally agreed on they are not needed.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Other end user impact"},{"line_number":150,"context_line":"---------------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"The command line will now allow you to call Nova volume-attach for a volume"},{"line_number":153,"context_line":"to multiple instances."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_4d72ecae","line":152,"updated":"2016-06-02 19:35:38.000000000","message":"I\u0027d probably just say None for this section.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Other end user impact"},{"line_number":150,"context_line":"---------------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"The command line will now allow you to call Nova volume-attach for a volume"},{"line_number":153,"context_line":"to multiple instances."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_68107ea9","line":152,"in_reply_to":"9abb7d3a_4d72ecae","updated":"2016-06-02 20:37:38.000000000","message":"Done","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Performance Impact"},{"line_number":156,"context_line":"------------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"None"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other deployer impact"},{"line_number":161,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_0d862465","line":158,"updated":"2016-06-02 19:35:38.000000000","message":"There is obviously some overhead with Nova making more calls to Cinder to get details of a volume (if we only have the volume ID) so we can tell if it\u0027s multiattach or not. But that\u0027s really only if we don\u0027t already have a volume, but I thought there were cases where we only pass a volume ID over the compute RPC API to the compute manager, and then the code in the compute manager or virt driver needs to get the volume details to check that flag.\n\nThere are also potentially new cinder APIs to call on disconnect to see if the refcount on volume attachments is such that we can safely call disconnect_volume in os-brick.\n\nThese aren\u0027t show stoppers, but more API calls between services does impact performance.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Performance Impact"},{"line_number":156,"context_line":"------------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"None"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other deployer impact"},{"line_number":161,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_48493a8e","line":158,"in_reply_to":"9abb7d3a_0d862465","updated":"2016-06-02 20:37:38.000000000","message":"I think with the intention to create a simple Cinder API and also to remove things like check_attach, so by the end of the day we should not really end up with more calls and/or significant performance issues.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":160,"context_line":"Other deployer impact"},{"line_number":161,"context_line":"---------------------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"None"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Developer impact"},{"line_number":166,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_ad955889","line":163,"updated":"2016-06-02 19:35:38.000000000","message":"If we had a policy check for this in the API, or a new scheduler filter for boot from volume, then there would be a deployer impact. This spec doesn\u0027t say there would be, but I\u0027m still wondering about those.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"Other deployer impact"},{"line_number":161,"context_line":"---------------------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"None"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Developer impact"},{"line_number":166,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_1ed76824","line":163,"in_reply_to":"9abb7d3a_ad955889","updated":"2016-06-02 20:37:38.000000000","message":"I added those as future improvement alternatives therefore I will leave this here \u0027None\u0027.","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":206,"context_line":"* Link needed to Cinder spec to address detach issues currently captured here:"},{"line_number":207,"context_line":"  https://etherpad.openstack.org/p/cinder-nova-api-changes"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Testing"},{"line_number":210,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"We\u0027ll have to add new Tempest tests to support the new Cinder volume"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_ed6be083","line":209,"updated":"2016-06-02 19:35:38.000000000","message":"I think we should list test coverage for swap volume as a pre-requisite too so we know that\u0027s at least working before any of the changes with this, i.e. what happens if I migrate (swap volume) a multiattach volume?","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ed87267a42112793d4cca412a69d3f25822580d0","unresolved":false,"context_lines":[{"line_number":206,"context_line":"* Link needed to Cinder spec to address detach issues currently captured here:"},{"line_number":207,"context_line":"  https://etherpad.openstack.org/p/cinder-nova-api-changes"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Testing"},{"line_number":210,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"We\u0027ll have to add new Tempest tests to support the new Cinder volume"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_e82bce92","line":209,"in_reply_to":"9abb7d3a_ed6be083","updated":"2016-06-02 20:37:38.000000000","message":"Done","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":264,"context_line":"     - Introduced"},{"line_number":265,"context_line":"   * - Liberty"},{"line_number":266,"context_line":"     - Re-approved"},{"line_number":267,"context_line":"   * - Mitaka-1"},{"line_number":268,"context_line":"     - Re-approved"},{"line_number":269,"context_line":"   * - Mitaka-2"},{"line_number":270,"context_line":"     - Updated with API limitations and testing scenarios"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_2d8e8827","line":267,"range":{"start_line":267,"start_character":7,"end_line":267,"end_character":15},"updated":"2016-06-02 19:35:38.000000000","message":"Just Mitaka?","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2b18abfd6e76021626e6b00867f0b57e5c8a6c3","unresolved":false,"context_lines":[{"line_number":266,"context_line":"     - Re-approved"},{"line_number":267,"context_line":"   * - Mitaka-1"},{"line_number":268,"context_line":"     - Re-approved"},{"line_number":269,"context_line":"   * - Mitaka-2"},{"line_number":270,"context_line":"     - Updated with API limitations and testing scenarios"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_ed75a032","line":269,"range":{"start_line":269,"start_character":7,"end_line":269,"end_character":15},"updated":"2016-06-02 19:35:38.000000000","message":"Newton?","commit_id":"9a79a6c237f6c773c61d5c33ba27ad49e332dee4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e928ce1c2f1912cb73ea2a9692e2d4dd3acc734","unresolved":false,"context_lines":[{"line_number":234,"context_line":" * Tying to attach a non-multiattach volume to multiple instances"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Additionally to the above, Cinder migrate needs to be tested on the gate, as it"},{"line_number":237,"context_line":"triggres swap_volume in Nova that is not tested today at all."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Documentation Impact"},{"line_number":240,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_59b46ad0","line":237,"range":{"start_line":237,"start_character":0,"end_line":237,"end_character":8},"updated":"2016-06-02 20:59:56.000000000","message":"triggers","commit_id":"06559388c6b1463cc13ad622c064c2555d45472c"}]}
