)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Update the devref for volume migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch proposes a thorough update to the development doc"},{"line_number":10,"context_line":"for the volume migration."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibe233d82a0694b29ecdf4abce4af735b34821c3f"},{"line_number":13,"context_line":"Partial-implements: blueprint migration-improvement"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da20952f_d2e9dc80","line":10,"updated":"2015-09-09 20:59:24.000000000","message":"You can remove \u0027the\u0027 there, and maybe add something like \"several improvements to volume migration have been made during the last development cycle and this patch attempts to document the current state.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a8d83c136a9e3d7c1f3963619969defa9482b656","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Update the devref for volume migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch proposes a thorough update to the development doc"},{"line_number":10,"context_line":"for the volume migration."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibe233d82a0694b29ecdf4abce4af735b34821c3f"},{"line_number":13,"context_line":"Partial-implements: blueprint migration-improvement"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da20952f_35548bc4","line":10,"in_reply_to":"da20952f_d2e9dc80","updated":"2015-09-11 03:08:20.000000000","message":"Done","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"}],"doc/source/devref/index.rst":[{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    gmr"},{"line_number":34,"context_line":"    replication"},{"line_number":35,"context_line":"    api.apache"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Background Concepts for Cinder"},{"line_number":39,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_b20d48ea","side":"PARENT","line":36,"updated":"2015-09-09 20:59:24.000000000","message":"There\u0027s another one above \"Indicies and tables\" you could remove while you\u0027re in there.","commit_id":"8e70d0d286cca00f770bdbb8c2fd61ba32fd1c74"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a8d83c136a9e3d7c1f3963619969defa9482b656","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    gmr"},{"line_number":34,"context_line":"    replication"},{"line_number":35,"context_line":"    api.apache"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Background Concepts for Cinder"},{"line_number":39,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_5559fffb","side":"PARENT","line":36,"in_reply_to":"da20952f_b20d48ea","updated":"2015-09-11 03:08:20.000000000","message":"Done","commit_id":"8e70d0d286cca00f770bdbb8c2fd61ba32fd1c74"}],"doc/source/devref/migration.rst":[{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Introduction to volume migration"},{"line_number":21,"context_line":"--------------------------------"},{"line_number":22,"context_line":"Cinder provides the volume migration support within the same deployment,"},{"line_number":23,"context_line":"which means the volume node(c-vol node), where the source volume is located,"},{"line_number":24,"context_line":"is able to access the one(c-vol node), where the destination volume is"},{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_5214ece7","line":23,"updated":"2015-09-09 20:59:24.000000000","message":"Or you could just call this \u0027the cinder volume service\u0027, it reads better IMHO","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Introduction to volume migration"},{"line_number":21,"context_line":"--------------------------------"},{"line_number":22,"context_line":"Cinder provides the volume migration support within the same deployment,"},{"line_number":23,"context_line":"which means the volume node(c-vol node), where the source volume is located,"},{"line_number":24,"context_line":"is able to access the one(c-vol node), where the destination volume is"},{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_502dd2fb","line":23,"updated":"2015-09-09 16:03:19.000000000","message":"space here. node (c-vol node)","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Introduction to volume migration"},{"line_number":21,"context_line":"--------------------------------"},{"line_number":22,"context_line":"Cinder provides the volume migration support within the same deployment,"},{"line_number":23,"context_line":"which means the volume node(c-vol node), where the source volume is located,"},{"line_number":24,"context_line":"is able to access the one(c-vol node), where the destination volume is"},{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_294fd293","line":23,"in_reply_to":"da20952f_5214ece7","updated":"2015-09-14 02:20:14.000000000","message":"I like to keep the c-vol as a short term and change the volume node into node of the cinder volume service.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"--------------------------------"},{"line_number":22,"context_line":"Cinder provides the volume migration support within the same deployment,"},{"line_number":23,"context_line":"which means the volume node(c-vol node), where the source volume is located,"},{"line_number":24,"context_line":"is able to access the one(c-vol node), where the destination volume is"},{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_f033c660","line":24,"updated":"2015-09-09 16:03:19.000000000","message":"same","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The volume is able to migrate, when it is in‘available’ or ‘in-use’"},{"line_number":29,"context_line":"status. There are two major scenarios, which volume migration supports"},{"line_number":30,"context_line":"in Cinder:"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_52706c40","line":28,"updated":"2015-09-09 20:59:24.000000000","message":"I would stipulate that migration will succeed for \u0027available\u0027 volumes whos drivers implement the migration routines.  And \u0027in-use\u0027 migration may be possible for some volume drivers, depending on wether it\u0027s the source or destination of the volume.  Essentially, it\u0027s possible but not guaranteed for all drivers.\n\nFor example, RBD -\u003e LVM in-use succeeds, but LVM -\u003e RBD does not (at the moment).","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"7f585784b68fd91678400f08a1315cbfcea6c207","unresolved":false,"context_lines":[{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The volume is able to migrate, when it is in‘available’ or ‘in-use’"},{"line_number":29,"context_line":"status. There are two major scenarios, which volume migration supports"},{"line_number":30,"context_line":"in Cinder:"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_5063f6b0","line":28,"updated":"2015-09-07 11:02:48.000000000","message":"Missing space - in \u0027available\u0027","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The volume is able to migrate, when it is in‘available’ or ‘in-use’"},{"line_number":29,"context_line":"status. There are two major scenarios, which volume migration supports"},{"line_number":30,"context_line":"in Cinder:"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_10d3dad6","line":28,"updated":"2015-09-09 16:03:19.000000000","message":"are these a special kind of \u0027 ? They look different than the ones below","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"located, and both of them share the same Cinder API service, scheduler"},{"line_number":26,"context_line":"service, message queue service, etc."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The volume is able to migrate, when it is in‘available’ or ‘in-use’"},{"line_number":29,"context_line":"status. There are two major scenarios, which volume migration supports"},{"line_number":30,"context_line":"in Cinder:"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_4906c621","line":28,"in_reply_to":"da20952f_52706c40","updated":"2015-09-14 02:20:14.000000000","message":"I will rephrase Jon\u0027s comments and put them here as a better explanation.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"in Cinder:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Scenario 1 is the migration between the same volume type, which is to"},{"line_number":33,"context_line":"migrate a volume from one back-end on one volume node(c-vol node) to the"},{"line_number":34,"context_line":"same back-end on another volume node(c-vol node). Both of the source and"},{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_901a8ac5","line":33,"updated":"2015-09-09 16:03:19.000000000","message":"same","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Scenario 1 is the migration between the same volume type, which is to"},{"line_number":33,"context_line":"migrate a volume from one back-end on one volume node(c-vol node) to the"},{"line_number":34,"context_line":"same back-end on another volume node(c-vol node). Both of the source and"},{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_b06c6e37","line":34,"updated":"2015-09-09 16:03:19.000000000","message":"same","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Scenario 1 is the migration between the same volume type, which is to"},{"line_number":33,"context_line":"migrate a volume from one back-end on one volume node(c-vol node) to the"},{"line_number":34,"context_line":"same back-end on another volume node(c-vol node). Both of the source and"},{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"},{"line_number":38,"context_line":"to migrate a volume from one back-end on one volume node(c-vol node) to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_32c3783a","line":35,"updated":"2015-09-09 20:59:24.000000000","message":"Duncan raises a good point.  It may also be valuable to mention that same-backend migration maybe be optimized if the driver provides an implementation for retype, and will fallback to \u0027generic\u0027 migration provided in the manager if no such implementation is found wherein dd is used (or file I/O) to move data from source to destination.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"7f585784b68fd91678400f08a1315cbfcea6c207","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Scenario 1 is the migration between the same volume type, which is to"},{"line_number":33,"context_line":"migrate a volume from one back-end on one volume node(c-vol node) to the"},{"line_number":34,"context_line":"same back-end on another volume node(c-vol node). Both of the source and"},{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"},{"line_number":38,"context_line":"to migrate a volume from one back-end on one volume node(c-vol node) to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_70015aae","line":35,"updated":"2015-09-07 11:02:48.000000000","message":"This is not technically correct - just because the type is the same doesn\u0027t mean that the backend is the same - people can and do set up types such that one type points to several different backends","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Scenario 1 is the migration between the same volume type, which is to"},{"line_number":33,"context_line":"migrate a volume from one back-end on one volume node(c-vol node) to the"},{"line_number":34,"context_line":"same back-end on another volume node(c-vol node). Both of the source and"},{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"},{"line_number":38,"context_line":"to migrate a volume from one back-end on one volume node(c-vol node) to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_c41f1b5a","line":35,"in_reply_to":"da20952f_32c3783a","updated":"2015-09-14 02:20:14.000000000","message":"Good. I will mention this case and add more explanations.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"7f585784b68fd91678400f08a1315cbfcea6c207","unresolved":false,"context_lines":[{"line_number":34,"context_line":"same back-end on another volume node(c-vol node). Both of the source and"},{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"},{"line_number":38,"context_line":"to migrate a volume from one back-end on one volume node(c-vol node) to"},{"line_number":39,"context_line":"a different back-end on the same or a different volume node(c-vol node)."},{"line_number":40,"context_line":"The source and destination back-ends belong to different volume types."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_1027be63","line":37,"updated":"2015-09-07 11:02:48.000000000","message":"\"is is\"","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":35,"context_line":"destination back-ends belong to the same volume type."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"},{"line_number":38,"context_line":"to migrate a volume from one back-end on one volume node(c-vol node) to"},{"line_number":39,"context_line":"a different back-end on the same or a different volume node(c-vol node)."},{"line_number":40,"context_line":"The source and destination back-ends belong to different volume types."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_90712a0f","line":38,"updated":"2015-09-09 16:03:19.000000000","message":"same","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Scenario 2 is the migration between different volume types, which is is"},{"line_number":38,"context_line":"to migrate a volume from one back-end on one volume node(c-vol node) to"},{"line_number":39,"context_line":"a different back-end on the same or a different volume node(c-vol node)."},{"line_number":40,"context_line":"The source and destination back-ends belong to different volume types."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_305ffe76","line":39,"updated":"2015-09-09 16:03:19.000000000","message":"same","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                        migration to be aborted. The volume status is still in"},{"line_number":74,"context_line":"                        the original status. Default\u003dFalse."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Important note: Currently the migration abortion management is under"},{"line_number":77,"context_line":"development in Cinder. If we would like the volume migration to finish"},{"line_number":78,"context_line":"without any interruption, please set --lock-volume to True. If it is set"},{"line_number":79,"context_line":"to False, we cannot predict what will happen, if other actions like attach,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_b2fc6873","line":76,"updated":"2015-09-09 20:59:24.000000000","message":"\"Currently, error handling for failed migration operations is under development...\"","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                        migration to be aborted. The volume status is still in"},{"line_number":74,"context_line":"                        the original status. Default\u003dFalse."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Important note: Currently the migration abortion management is under"},{"line_number":77,"context_line":"development in Cinder. If we would like the volume migration to finish"},{"line_number":78,"context_line":"without any interruption, please set --lock-volume to True. If it is set"},{"line_number":79,"context_line":"to False, we cannot predict what will happen, if other actions like attach,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_a43787e2","line":76,"in_reply_to":"da20952f_b2fc6873","updated":"2015-09-14 02:20:14.000000000","message":"Done","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  --migration-policy \u003cnever|on-demand\u003e"},{"line_number":96,"context_line":"                        Migration policy during retype of volume."},{"line_number":97,"context_line":"In order to make the volume able to migrate, we need to set"},{"line_number":98,"context_line":"--migration-policy to ‘on-demand’ for the ‘cinder retype’ command."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Configurations"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_723ed02a","line":98,"updated":"2015-09-09 20:59:24.000000000","message":"Could be helpful to include a completely formed command as an example.  Something like:\n\n    $ cinder retype --migration-policy on-demand \u003cvolume id\u003e \u003cvolume type\u003e","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  --migration-policy \u003cnever|on-demand\u003e"},{"line_number":96,"context_line":"                        Migration policy during retype of volume."},{"line_number":97,"context_line":"In order to make the volume able to migrate, we need to set"},{"line_number":98,"context_line":"--migration-policy to ‘on-demand’ for the ‘cinder retype’ command."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Configurations"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_2487f762","line":98,"in_reply_to":"da20952f_723ed02a","updated":"2015-09-14 02:20:14.000000000","message":"Done","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"--------------"},{"line_number":103,"context_line":"To set up a an environment to try the volume migration, we need to"},{"line_number":104,"context_line":"configure at least two different back-ends on the same volume"},{"line_number":105,"context_line":"node(c-vol node) or two back-ends on two volume nodes(c-vol nodes)."},{"line_number":106,"context_line":"Which command to use, ‘cinder migrate’ or ‘cinder retype’, depends"},{"line_number":107,"context_line":"on which type of volume we would like to test."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_10eafa74","line":105,"updated":"2015-09-09 16:03:19.000000000","message":"same","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"696a48a563fcbdc362a63e20c8c9199aa5bf81c5","unresolved":false,"context_lines":[{"line_number":191,"context_line":"‘completing’, it means the volume is in the process of a migration."},{"line_number":192,"context_line":"If the migration status is ‘success’, it means the migration has finished"},{"line_number":193,"context_line":"and the previous migration of this volume succeeded. If the"},{"line_number":194,"context_line":"migration status is ‘error, it means the migration has finished and"},{"line_number":195,"context_line":"the previous migration of this volume failed."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_c049f48f","line":194,"updated":"2015-09-10 08:29:29.000000000","message":"The ending single quotation is missing here.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":191,"context_line":"‘completing’, it means the volume is in the process of a migration."},{"line_number":192,"context_line":"If the migration status is ‘success’, it means the migration has finished"},{"line_number":193,"context_line":"and the previous migration of this volume succeeded. If the"},{"line_number":194,"context_line":"migration status is ‘error, it means the migration has finished and"},{"line_number":195,"context_line":"the previous migration of this volume failed."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_64b64f3f","line":194,"in_reply_to":"da20952f_c049f48f","updated":"2015-09-14 02:20:14.000000000","message":"Done","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"86b7f3d0340e49fd8ce2f1b385086125c7575ac9","unresolved":false,"context_lines":[{"line_number":216,"context_line":"--force-host-copy is set to True from the API request. Normally you"},{"line_number":217,"context_line":"do not need to change any code, unless you need to transfer the volume"},{"line_number":218,"context_line":"from your driver via a different way from the the block-based transfer"},{"line_number":219,"context_line":"or the file-based transfer."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"If you would like to implement a driver specific volume migration for"},{"line_number":222,"context_line":"your driver, the API method associated with the driver specific migration"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_9267e450","line":219,"updated":"2015-09-09 20:59:24.000000000","message":"We could add: \"If you\u0027re driver uses a network connection to communicate block data itself, you can use file I/O to participate in migration.  See the RBD driver for an example.","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":216,"context_line":"--force-host-copy is set to True from the API request. Normally you"},{"line_number":217,"context_line":"do not need to change any code, unless you need to transfer the volume"},{"line_number":218,"context_line":"from your driver via a different way from the the block-based transfer"},{"line_number":219,"context_line":"or the file-based transfer."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"If you would like to implement a driver specific volume migration for"},{"line_number":222,"context_line":"your driver, the API method associated with the driver specific migration"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_c4f2bb06","line":219,"in_reply_to":"da20952f_9267e450","updated":"2015-09-14 02:20:14.000000000","message":"Done","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"cd6fc62490fd2a020d00f19cc556ea9d8343128a","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Required methods"},{"line_number":229,"context_line":"----------------"},{"line_number":230,"context_line":"There is only one method needs to be implemented for the driver to"},{"line_number":231,"context_line":"implement the driver specific volume migration."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"**migrate_volume**"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_b0af8e2a","line":230,"updated":"2015-09-09 16:03:19.000000000","message":"\"There is only one method that needs to be...\"","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"1665092e885c99ac1726e7d6275f7254f5b337f8","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Required methods"},{"line_number":229,"context_line":"----------------"},{"line_number":230,"context_line":"There is only one method needs to be implemented for the driver to"},{"line_number":231,"context_line":"implement the driver specific volume migration."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"**migrate_volume**"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba15a1d1_44b9cb2d","line":230,"in_reply_to":"da20952f_b0af8e2a","updated":"2015-09-14 02:20:14.000000000","message":"Done","commit_id":"571d40f4e20100adffb925b2bc5ccb42ab97ac3a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Introduction to volume migration"},{"line_number":21,"context_line":"--------------------------------"},{"line_number":22,"context_line":"Cinder provides the volume migration support within the same deployment,"},{"line_number":23,"context_line":"which means the node of cinder volume service (c-vol node), where the"},{"line_number":24,"context_line":"source volume is located, is able to access the one (c-vol node), where"},{"line_number":25,"context_line":"the destination volume is located, and both of them share the same"},{"line_number":26,"context_line":"Cinder API service, scheduler service, message queue service, etc."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_eb268a15","line":23,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/service (c-vol node), where the/service, c-vol node where the","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":21,"context_line":"--------------------------------"},{"line_number":22,"context_line":"Cinder provides the volume migration support within the same deployment,"},{"line_number":23,"context_line":"which means the node of cinder volume service (c-vol node), where the"},{"line_number":24,"context_line":"source volume is located, is able to access the one (c-vol node), where"},{"line_number":25,"context_line":"the destination volume is located, and both of them share the same"},{"line_number":26,"context_line":"Cinder API service, scheduler service, message queue service, etc."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_0ec5113b","line":24,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/the one (c-vol node), where/the c-vol node where","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":25,"context_line":"the destination volume is located, and both of them share the same"},{"line_number":26,"context_line":"Cinder API service, scheduler service, message queue service, etc."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Normally, the volume is able to migrate, when it is in ‘available’ or"},{"line_number":29,"context_line":"‘in-use’ status, for the drivers, which have implemented volume migration."},{"line_number":30,"context_line":"So far, we are confident that migration will succeed for \u0027available\u0027"},{"line_number":31,"context_line":"volumes, whose drivers implement the migration routines. However,"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_4eb1c98e","line":28,"updated":"2015-10-06 14:58:23.000000000","message":"nit: As a general rule migration is possible for volumes in \u0027available\u0027 or","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Cinder API service, scheduler service, message queue service, etc."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Normally, the volume is able to migrate, when it is in ‘available’ or"},{"line_number":29,"context_line":"‘in-use’ status, for the drivers, which have implemented volume migration."},{"line_number":30,"context_line":"So far, we are confident that migration will succeed for \u0027available\u0027"},{"line_number":31,"context_line":"volumes, whose drivers implement the migration routines. However,"},{"line_number":32,"context_line":"the migration of \u0027in-use\u0027 volumes cannot guarantee the success all the time."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_ce639919","line":29,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/drivers, which/driver which","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":29,"context_line":"‘in-use’ status, for the drivers, which have implemented volume migration."},{"line_number":30,"context_line":"So far, we are confident that migration will succeed for \u0027available\u0027"},{"line_number":31,"context_line":"volumes, whose drivers implement the migration routines. However,"},{"line_number":32,"context_line":"the migration of \u0027in-use\u0027 volumes cannot guarantee the success all the time."},{"line_number":33,"context_line":"It may depend on different drivers, e.g. whether it is the source driver"},{"line_number":34,"context_line":"or destination driver of the volume."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_ae173d50","line":32,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/cannot guarantee the success all the time/is driver dependent.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":30,"context_line":"So far, we are confident that migration will succeed for \u0027available\u0027"},{"line_number":31,"context_line":"volumes, whose drivers implement the migration routines. However,"},{"line_number":32,"context_line":"the migration of \u0027in-use\u0027 volumes cannot guarantee the success all the time."},{"line_number":33,"context_line":"It may depend on different drivers, e.g. whether it is the source driver"},{"line_number":34,"context_line":"or destination driver of the volume."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"For example, from RBD to LVM, the migration of \u0027in-use\u0027 volume will"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_9109442f","line":33,"updated":"2015-10-06 14:58:23.000000000","message":"nit: It depends on the different drivers involved in the operation. It may fail depending on the source or destination driver of the volume.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":43,"context_line":"migrate a volume from one back-end on one node of cinder volume"},{"line_number":44,"context_line":"service (c-vol node) to the same back-end or a different back-end"},{"line_number":45,"context_line":"on another node of cinder volume service (c-vol node). Both of the"},{"line_number":46,"context_line":"source and destination back-ends must belong to the same volume type."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Scenario 2 is the migration between different volume types, which is"},{"line_number":49,"context_line":"to migrate a volume from one back-end on one node of cinder volume"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_51964c4d","line":46,"updated":"2015-10-06 14:58:23.000000000","message":"?: This paragraph is a little convoluted.\n\nScenario 1: Migration between back-ends with the same volume type, regardless if the back-ends are located on the same c-vol node or not.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":49,"context_line":"to migrate a volume from one back-end on one node of cinder volume"},{"line_number":50,"context_line":"service (c-vol node) to a different back-end on the same or a different"},{"line_number":51,"context_line":"node of cinder volume service (c-vol node). The source and destination"},{"line_number":52,"context_line":"back-ends belong to different volume types."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"How to do volume migration via CLI"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_f18d1832","line":52,"updated":"2015-10-06 14:58:23.000000000","message":"?: Same as above?","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":89,"context_line":"under development in Cinder. If we would like the volume migration to finish"},{"line_number":90,"context_line":"without any interruption, please set --lock-volume to True. If it is set"},{"line_number":91,"context_line":"to False, we cannot predict what will happen, if other actions like attach,"},{"line_number":92,"context_line":"detach, extend, etc, are issued on the volume, if the same volume is being"},{"line_number":93,"context_line":"migrated. It is a typical race condition, since it all depends on which"},{"line_number":94,"context_line":"stage the volume migration has reached, when the request of another"},{"line_number":95,"context_line":"action comes."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_11ae9485","line":92,"updated":"2015-10-06 14:58:23.000000000","message":"nit s/volume, if the same volume is being migrated/volume during the migration","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":90,"context_line":"without any interruption, please set --lock-volume to True. If it is set"},{"line_number":91,"context_line":"to False, we cannot predict what will happen, if other actions like attach,"},{"line_number":92,"context_line":"detach, extend, etc, are issued on the volume, if the same volume is being"},{"line_number":93,"context_line":"migrated. It is a typical race condition, since it all depends on which"},{"line_number":94,"context_line":"stage the volume migration has reached, when the request of another"},{"line_number":95,"context_line":"action comes."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_31c2b034","line":93,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/It is a typical race condition, since it all depends/It all depends","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":91,"context_line":"to False, we cannot predict what will happen, if other actions like attach,"},{"line_number":92,"context_line":"detach, extend, etc, are issued on the volume, if the same volume is being"},{"line_number":93,"context_line":"migrated. It is a typical race condition, since it all depends on which"},{"line_number":94,"context_line":"stage the volume migration has reached, when the request of another"},{"line_number":95,"context_line":"action comes."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_51d2cc01","line":94,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/reached, when/reached and when","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Scenario 2 of volume migration can be done via the following command"},{"line_number":99,"context_line":"from the CLI:"},{"line_number":100,"context_line":"cinder retype [--migration-policy \u003cnever|on-demand\u003e]"},{"line_number":101,"context_line":"                     \u003cvolume\u003e \u003cvolume-type\u003e"},{"line_number":102,"context_line":"Mandatory arguments:"},{"line_number":103,"context_line":"  \u003cvolume\u003e              Name or ID of volume for which to modify type."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_f11758a1","line":100,"updated":"2015-10-06 14:58:23.000000000","message":"nit: No optional, without on-demand there is no scenario 2 so it would be better to just document it as `retype --migration-policy on-demand`","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                        Migration policy during retype of volume."},{"line_number":109,"context_line":"In order to make the volume able to migrate, we need to set"},{"line_number":110,"context_line":"--migration-policy to ‘on-demand’ for the ‘cinder retype’ command as below:"},{"line_number":111,"context_line":"cinder retype --migration-policy on-demand \u003cvolume id\u003e \u003cvolume type\u003e."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Configurations"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_717588c9","line":111,"updated":"2015-10-06 14:58:23.000000000","message":"nit: If above comment is followed these 6 lines would not be needed.\n\nnit: I would add, \"Source volume type and destination volume type must be different and they must refer to different back-ends.\"","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":115,"context_line":"--------------"},{"line_number":116,"context_line":"To set up a an environment to try the volume migration, we need to"},{"line_number":117,"context_line":"configure at least two different back-ends on the same node of cinder"},{"line_number":118,"context_line":"volume service (c-vol node) or two back-ends on two volume nodes of"},{"line_number":119,"context_line":"cinder volume service (c-vol nodes). Which command to use,"},{"line_number":120,"context_line":"‘cinder migrate’ or ‘cinder retype’, depends on which type of volume"},{"line_number":121,"context_line":"we would like to test."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_515f2c41","line":118,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/two volume/two different volume","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"To configure the environment for Scenario 1 migration, e.g. a"},{"line_number":126,"context_line":"volume is migrated from back-end driver-biz on Node 1 to back-end"},{"line_number":127,"context_line":"driver-biz on Node 2, cinder.conf needs to contains the following"},{"line_number":128,"context_line":"entries for the same back-end on both of source and the destination"},{"line_number":129,"context_line":"nodes:"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_fc1def66","line":127,"updated":"2015-10-06 14:58:23.000000000","message":"-1: They don\u0027t need to have the same back-end name and giving it the same name makes it confusing.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The back-end drivers from Node 1 and Node2 should have the same"},{"line_number":146,"context_line":"value for volume_backend_name. A volume type needs to be created"},{"line_number":147,"context_line":"with the extra specs {volume_backend_name: driver-biz}."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"**Scenario 2 for migration**"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_7cf31f0b","line":147,"updated":"2015-10-06 14:58:23.000000000","message":"-1: They don\u0027t need to have the same name and we don\u0027t need a type to do the migration.  It is when you add a volume type to the volume and the volume type has a backend restriction that you need them to have the same backend name.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"ed7207d1d752f8d97c619d42d381b5f4eb5583f4","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The back-end drivers from Node 1 and Node2 should have the same"},{"line_number":146,"context_line":"value for volume_backend_name. A volume type needs to be created"},{"line_number":147,"context_line":"with the extra specs {volume_backend_name: driver-biz}."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"**Scenario 2 for migration**"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_53bafb0b","line":147,"in_reply_to":"7a2fa921_7cf31f0b","updated":"2015-10-12 08:49:56.000000000","message":"I agree on all the other comments you have given, but not this one.\n\nIf \"cinder migration\" is issued, the scheduler will only check the available destination hosts for the volume within the same volume type. Volume type seems to be an important concept for migration. I hope we can meet on IRC to discuss it.\n\nIf we want to put several c-vol nodes into one volume type, what I can think about is to set volume_backend_name of these nodes into the same value, so I give the example that both of the nodes need to have the same back-end name. Well, this will be be changed. I am also curious whether we still have other ways to configure the volume type except having the same name for volume_backend_name.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":197,"context_line":"administrator can check the ‘migration status’ via the ‘cinder list’"},{"line_number":198,"context_line":"or ‘cinder show \u003cvolume-id\u003e’ command. The ‘cinder list’ command presents"},{"line_number":199,"context_line":"a list of all the volumes with some properties displayed, including the"},{"line_number":200,"context_line":"migration status, to the administrator. However, the migration status is"},{"line_number":201,"context_line":"not included if ‘cinder list’ is issued by an ordinary user. The"},{"line_number":202,"context_line":"‘cinder show \u003cvolume-id\u003e’ will present all the detailed information of"},{"line_number":203,"context_line":"a specific volume, including the migration status, to the administrator."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_fc03afb6","line":200,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/migration status, to the administrator/migration status when issued by the administrator\n\nor\n\ns/migration status, to the administrator/migration status, only to the administrator","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":200,"context_line":"migration status, to the administrator. However, the migration status is"},{"line_number":201,"context_line":"not included if ‘cinder list’ is issued by an ordinary user. The"},{"line_number":202,"context_line":"‘cinder show \u003cvolume-id\u003e’ will present all the detailed information of"},{"line_number":203,"context_line":"a specific volume, including the migration status, to the administrator."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"If the migration status of a volume shows ‘starting’, ‘migrating’ or"},{"line_number":206,"context_line":"‘completing’, it means the volume is in the process of a migration."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_fc1acf16","line":203,"updated":"2015-10-06 14:58:23.000000000","message":"nit: Same as above","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":213,"context_line":"How to implement volume migration for a back-end driver"},{"line_number":214,"context_line":"-------------------------------------------------------"},{"line_number":215,"context_line":"There are two kinds of implementations for the volume migration currently"},{"line_number":216,"context_line":"in Cinder. The first is the generic host-assisted migration, which"},{"line_number":217,"context_line":"consists of the block-based transfer mode and the file-based transfer mode."},{"line_number":218,"context_line":"This implementation is based on the volume attachment to the node of"},{"line_number":219,"context_line":"cinder volume service (c-vol node) via the iSCSI protocol. Any back-end"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_1c4c6bc6","line":216,"updated":"2015-10-06 14:58:23.000000000","message":"nit: I would move it to another paragraph (starting at \"The first\")","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":214,"context_line":"-------------------------------------------------------"},{"line_number":215,"context_line":"There are two kinds of implementations for the volume migration currently"},{"line_number":216,"context_line":"in Cinder. The first is the generic host-assisted migration, which"},{"line_number":217,"context_line":"consists of the block-based transfer mode and the file-based transfer mode."},{"line_number":218,"context_line":"This implementation is based on the volume attachment to the node of"},{"line_number":219,"context_line":"cinder volume service (c-vol node) via the iSCSI protocol. Any back-end"},{"line_number":220,"context_line":"driver supporting iSCSI and has it implemented, will be able to support"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_5c8743b5","line":217,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/of the block-based transfer mode and the file-based transfer mode./of two different transfer modes, block-based and file-based.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":217,"context_line":"consists of the block-based transfer mode and the file-based transfer mode."},{"line_number":218,"context_line":"This implementation is based on the volume attachment to the node of"},{"line_number":219,"context_line":"cinder volume service (c-vol node) via the iSCSI protocol. Any back-end"},{"line_number":220,"context_line":"driver supporting iSCSI and has it implemented, will be able to support"},{"line_number":221,"context_line":"the generic host-assisted migration in Cinder. The block-based transfer"},{"line_number":222,"context_line":"mode is done by ‘dd’ command, applying to drivers like LVM, Storwize,"},{"line_number":223,"context_line":"etc, and the file-based transfer mode is done by file copy, typically"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_dc091397","line":220,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/and has it implemented, will/will/\n\nIf the driver has support it is implemented, otherwise it doesn\u0027t have support.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":221,"context_line":"the generic host-assisted migration in Cinder. The block-based transfer"},{"line_number":222,"context_line":"mode is done by ‘dd’ command, applying to drivers like LVM, Storwize,"},{"line_number":223,"context_line":"etc, and the file-based transfer mode is done by file copy, typically"},{"line_number":224,"context_line":"applying to the RBD driver. The second is the driver specific migration."},{"line_number":225,"context_line":"Since some storage back-ends have their special commands to copy the volume,"},{"line_number":226,"context_line":"Cinder also provides a way for them to implement in terms of their own"},{"line_number":227,"context_line":"internal commands to migrate."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_7cd1dfcc","line":224,"updated":"2015-10-06 14:58:23.000000000","message":"nit: Another paragraph for the second","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":227,"context_line":"internal commands to migrate."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"If the volume is migrated between two nodes configured with the same"},{"line_number":230,"context_line":"back-end, the migration will be optimized by calling the method"},{"line_number":231,"context_line":"migrate_volume in the driver, if the driver provides an implementation for"},{"line_number":232,"context_line":"it to migrate the volume within the same back-end, and will fallback to"},{"line_number":233,"context_line":"the generic host-assisted migration provided in the manager, if no such"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_5cae632f","line":230,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/back-end/storage back-end","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":234,"context_line":"implementation is found or this implementation is not applicable for"},{"line_number":235,"context_line":"this migration."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"If your storage driver in Cinder has already supported iSCSI, it should"},{"line_number":238,"context_line":"be able to work under the generic host-assisted migration, when"},{"line_number":239,"context_line":"--force-host-copy is set to True from the API request. Normally you"},{"line_number":240,"context_line":"do not need to change any code, unless you need to transfer the volume"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_dc4fd390","line":237,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/supported iSCSI/iSCSI support","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Required methods"},{"line_number":262,"context_line":"----------------"},{"line_number":263,"context_line":"There is one mandatory method that needs to be implemented for"},{"line_number":264,"context_line":"the driver to implement the driver specific volume migration."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"**migrate_volume**"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_b75eb0e7","line":263,"updated":"2015-10-06 14:58:23.000000000","message":"-1: This is not mandatory like you explained above if they can work with the generic volume migration path.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"ed7207d1d752f8d97c619d42d381b5f4eb5583f4","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Required methods"},{"line_number":262,"context_line":"----------------"},{"line_number":263,"context_line":"There is one mandatory method that needs to be implemented for"},{"line_number":264,"context_line":"the driver to implement the driver specific volume migration."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"**migrate_volume**"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_002ae7e7","line":263,"in_reply_to":"7a2fa921_b75eb0e7","updated":"2015-10-12 08:49:56.000000000","message":"I think this method is specially MANDATORY \"to implement the driver specific volume migration\", not the generic migration.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":276,"context_line":"Used to return the key-value pairs to update the volume model after"},{"line_number":277,"context_line":"a successful migration. The key-value pairs returned are supposed to"},{"line_number":278,"context_line":"be the final values your driver would like to be in the volume model,"},{"line_number":279,"context_line":"if a migration is done. This method can be used in a generally wide"},{"line_number":280,"context_line":"range, but the most common use case covered in this method is to"},{"line_number":281,"context_line":"rename the back-end name to the original volume id in your driver"},{"line_number":282,"context_line":"to make sure that the back-end still keeps the same id or name as"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_f76c289e","line":279,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/done/completed\n\nnit: Split this in 2 paragraphs.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":281,"context_line":"rename the back-end name to the original volume id in your driver"},{"line_number":282,"context_line":"to make sure that the back-end still keeps the same id or name as"},{"line_number":283,"context_line":"it is before the volume migration. For this use case, there are two"},{"line_number":284,"context_line":"important fields: _name_id and provider_location. The filed _name_id"},{"line_number":285,"context_line":"is used to map the cinder volume id and the back-end id or name. The"},{"line_number":286,"context_line":"default value is None, which means the cinder volume id is the same to"},{"line_number":287,"context_line":"the back-end id or name. If they are different, _name_id is used to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_1701a4ae","line":284,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/filed/field\n\nnit: Split in 2 paragraphs.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":285,"context_line":"is used to map the cinder volume id and the back-end id or name. The"},{"line_number":286,"context_line":"default value is None, which means the cinder volume id is the same to"},{"line_number":287,"context_line":"the back-end id or name. If they are different, _name_id is used to"},{"line_number":288,"context_line":"saved the back-end id or name. The field provider_location is used to"},{"line_number":289,"context_line":"save the export information, created by the volume attach. This field"},{"line_number":290,"context_line":"is optional, since some drivers support the export creation and some"},{"line_number":291,"context_line":"do not. It is the driver maintainer\u0027s responsibility is to decide what"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_b7d31038","line":288,"updated":"2015-10-06 14:58:23.000000000","message":"nit: Split in 2 paragraphs.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":288,"context_line":"saved the back-end id or name. The field provider_location is used to"},{"line_number":289,"context_line":"save the export information, created by the volume attach. This field"},{"line_number":290,"context_line":"is optional, since some drivers support the export creation and some"},{"line_number":291,"context_line":"do not. It is the driver maintainer\u0027s responsibility is to decide what"},{"line_number":292,"context_line":"this field needs to be. If the back-end id or name is renamed"},{"line_number":293,"context_line":"successfully, this method can return"},{"line_number":294,"context_line":"{\u0027_name_id\u0027: None, \u0027provider_location\u0027: None}. It is the choice for"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_b7ba30e0","line":291,"updated":"2015-10-06 14:58:23.000000000","message":"nit: s/responsibility is to/responsibility to","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"76395f8a9e9b756726567f8914fb82f4780b4184","unresolved":false,"context_lines":[{"line_number":289,"context_line":"save the export information, created by the volume attach. This field"},{"line_number":290,"context_line":"is optional, since some drivers support the export creation and some"},{"line_number":291,"context_line":"do not. It is the driver maintainer\u0027s responsibility is to decide what"},{"line_number":292,"context_line":"this field needs to be. If the back-end id or name is renamed"},{"line_number":293,"context_line":"successfully, this method can return"},{"line_number":294,"context_line":"{\u0027_name_id\u0027: None, \u0027provider_location\u0027: None}. It is the choice for"},{"line_number":295,"context_line":"your driver to implement this method and decide what use cases should"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a2fa921_b7a1d0ab","line":292,"updated":"2015-10-06 14:58:23.000000000","message":"nit: Split in 2 paragraphs.","commit_id":"fa6b559121430647f0d9cd3044650760ca16a897"}]}
