)]}'
{"specs/liberty/approved/rbd-instance-snapshots.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"091eb3e65ad305efe160d9e2b8b740093459f066","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Instead of copying all the data to local disk, keep it in rbd by"},{"line_number":60,"context_line":"taking an rbd snapshot in nova. Rather than uploading the data, just"},{"line_number":61,"context_line":"tell glance about its location in rbd. This way data stays in the ceph"},{"line_number":62,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":65,"context_line":"to the current full copy method."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_a4dc4247","line":62,"updated":"2015-06-04 18:53:26.000000000","message":"It might also be worth mentioning that this is quite exactly the reversal of how cloning an image to an ephemeral rbd disk works when booting an instance.","commit_id":"150dc968818d98512d9f3285f3bd874a1bc398c7"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"0cfb59deaabb5562c3f9cc78e3023fdb89d46ae6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Instead of copying all the data to local disk, keep it in rbd by"},{"line_number":60,"context_line":"taking an rbd snapshot in nova. Rather than uploading the data, just"},{"line_number":61,"context_line":"tell glance about its location in rbd. This way data stays in the ceph"},{"line_number":62,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":65,"context_line":"to the current full copy method."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_1ea7dd50","line":62,"in_reply_to":"3afb71cf_a4dc4247","updated":"2015-06-04 22:23:08.000000000","message":"Good idea","commit_id":"150dc968818d98512d9f3285f3bd874a1bc398c7"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"091eb3e65ad305efe160d9e2b8b740093459f066","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"[1] Ceph authentication docs: http://ceph.com/docs/master/rados/operations/user-management/#modify-user-capabilities"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"[2] Glance cleanup patch: https://review.openstack.org/#/c/127397/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_c4097edf","line":190,"updated":"2015-06-04 18:53:26.000000000","message":"Also add a reference to the nova code review here?","commit_id":"150dc968818d98512d9f3285f3bd874a1bc398c7"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"0cfb59deaabb5562c3f9cc78e3023fdb89d46ae6","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"[1] Ceph authentication docs: http://ceph.com/docs/master/rados/operations/user-management/#modify-user-capabilities"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"[2] Glance cleanup patch: https://review.openstack.org/#/c/127397/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_9e718de3","line":190,"in_reply_to":"3afb71cf_c4097edf","updated":"2015-06-04 22:23:08.000000000","message":"Done","commit_id":"150dc968818d98512d9f3285f3bd874a1bc398c7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"573aea80b8766c9fd76c9a6ef2df9268d0505e10","unresolved":false,"context_lines":[{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Liberty priorities aren\u0027t clear yet, but many operators consider this"},{"line_number":48,"context_line":"a bug: https://bugs.launchpad.net/nova/+bug/1346525"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Some operators are already using these patches because instance"},{"line_number":51,"context_line":"snapshots are too painful otherwise. Operator and user pain should be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_24870711","line":48,"updated":"2015-06-12 20:17:51.000000000","message":"They are clear now. I don\u0027t think this fits under any of the existing priorities, so you should just put \"None.\" here. This isn\u0027t the section to defend the priority of it, but rather to document which it falls under (if any). People know that ceph is the most popular non-local mechanism, so it should be clear to everyone reviewing that this is a popular thing.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"2c9e8cf7588557c35d8c5bb784bfeba2c89ff2d2","unresolved":false,"context_lines":[{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Liberty priorities aren\u0027t clear yet, but many operators consider this"},{"line_number":48,"context_line":"a bug: https://bugs.launchpad.net/nova/+bug/1346525"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Some operators are already using these patches because instance"},{"line_number":51,"context_line":"snapshots are too painful otherwise. Operator and user pain should be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_5a365804","line":48,"in_reply_to":"1af86dd1_24870711","updated":"2015-06-12 21:12:40.000000000","message":"will do","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"de7dfba96d03302e06957d481387d14162ec0afe","unresolved":false,"context_lines":[{"line_number":73,"context_line":"To accomplish this, create an rbd clone and store the clone\u0027s location"},{"line_number":74,"context_line":"in glance, and when nova deletes an rbd disk with snapshots, rename"},{"line_number":75,"context_line":"the disk to include a marker that glance looks for to know they can be"},{"line_number":76,"context_line":"deleted when glance deletes the snapshots."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_bf9d605b","line":76,"updated":"2015-06-05 01:59:00.000000000","message":"I guess I don\u0027t really understand the above paragraph... Glance is always the owner of the snapshot once *any* snapshot of *any* image, regardless of whether the backing store in Glance is RBD or something else. I fail to see how this proposal would change that fact?\n\nAre you saying that the original disk in RBD would not be modifiable by Nova due to the snapshot operation, and therefore in order to delete the instance (and its associated backing image), that Nova would need to call Glance in order to get a list of snapshots that were deltas from some original disk image, and delete all the snapshot images from Ceph before being able to delete the original backing disk in RBD?\n\nIf that is indeed the case, isn\u0027t there a problem where a user does the following?\n\n1. Launch an instance from some golden image in Glance\n2. Install the user\u0027s applications and whatnot into the instance.\n3. Snapshot the instance to essentially create a \"base application image\".\n4. Delete the original instance that was used to build the \"base applicaiton image\".\n5. Launch a new instance based on the \"base application image\" snapshot.\n\nIn the above use case, if I\u0027m reading your above paragraphs correctly, the user would run into issues because when the user deleted, in step #4, the temporary instance used for building the \"base application image\", all of the snapshots would be deleted from RBD in order to delete the original backing image.\n\nAm I missing something important here? :)","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"2c9e8cf7588557c35d8c5bb784bfeba2c89ff2d2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"To accomplish this, create an rbd clone and store the clone\u0027s location"},{"line_number":74,"context_line":"in glance, and when nova deletes an rbd disk with snapshots, rename"},{"line_number":75,"context_line":"the disk to include a marker that glance looks for to know they can be"},{"line_number":76,"context_line":"deleted when glance deletes the snapshots."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_9f03a20f","line":76,"in_reply_to":"1af86dd1_844a3b82","updated":"2015-06-12 21:12:40.000000000","message":"If you snapshot the new instance, in rbd you\u0027d have another new clone that glance would reference.\n\nThere\u0027s no difference between a brand new instance and one that\u0027s been created from a snapshot for this spec.\n\nAt the rbd level, an instance snapshot would be:\n\nFor each disk:\na) rbd snapshot of the instance disk\nb) rbd clone of this snapshot (necessary because glance references rbd by name, and we may rename the instance disk later)\nc) rbd snapshot of this clone (images in the rbd glance_store refer to rbd snapshots since they are immutable and can be cloned)\n\n(c) is exposed through glance\u0027s location information (usually not to the end user, but to nova and cinder). Everything else is hidden by the rbd glance_store and rbd imagebackend.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"df153aa80c892aa4ac17cf9cbffcbb8885bb00cd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"To accomplish this, create an rbd clone and store the clone\u0027s location"},{"line_number":74,"context_line":"in glance, and when nova deletes an rbd disk with snapshots, rename"},{"line_number":75,"context_line":"the disk to include a marker that glance looks for to know they can be"},{"line_number":76,"context_line":"deleted when glance deletes the snapshots."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_f99e5106","line":76,"in_reply_to":"3afb71cf_bf9d605b","updated":"2015-06-05 06:50:38.000000000","message":"I probably should have used more than two sentences to explain that :)\n\nThe complexity is because an rbd disk cannot be deleted when it has rbd snapshots.\n\nThe idea is to hide this from the user. When a user deletes the nova instance, nova does not delete the rbd disk the instance was using if it has rbd snapshots. Instead, nova marks the disk in rbd as needing deletion in the future, and returns success to the user. This marker is currently implemented as appending \u0027_to_be_deleted_by_glance\u0027 to the instance disk\n\nGlance is then responsible for deleting the original instance disk in the future. When the last snapshot of the instance disk is deleted from glance, glance will delete its parent, the original instance disk, if it has \u0027_to_be_deleted_by_glance\u0027 in its name.\n\nSo in your example use case, after step 5 there would be four disks in rbd:\n\n1) the golden image\n\n2) the instance disk, renamed on the backend (a clone of the golden image)\n\n3) the \u0027snapshot\u0027 disk (a clone of the instance disk)\n\n4) the new instance disk (a clone of the \u0027snapshot\u0027 disk)\n\nWhen (4) and (3) are deleted, glance would also delete (2), since it would no\nlonger be necessary at that point.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"573aea80b8766c9fd76c9a6ef2df9268d0505e10","unresolved":false,"context_lines":[{"line_number":73,"context_line":"To accomplish this, create an rbd clone and store the clone\u0027s location"},{"line_number":74,"context_line":"in glance, and when nova deletes an rbd disk with snapshots, rename"},{"line_number":75,"context_line":"the disk to include a marker that glance looks for to know they can be"},{"line_number":76,"context_line":"deleted when glance deletes the snapshots."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_844a3b82","line":76,"in_reply_to":"3afb71cf_f99e5106","updated":"2015-06-12 20:17:51.000000000","message":"if I snapshot again after this happens, do I end up with another couple of intermediate images? And are these exposed in glance or just there on disk if I were to look?","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"573aea80b8766c9fd76c9a6ef2df9268d0505e10","unresolved":false,"context_lines":[{"line_number":137,"context_line":"---------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Compute nodes would not need large disks when using rbd as an image"},{"line_number":140,"context_line":"backend.."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"There could be a config option added to change the marker used to tell"},{"line_number":143,"context_line":"glance it is responsible for deleting the nova image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_44fe836c","line":140,"updated":"2015-06-12 20:17:51.000000000","message":"I think you can drop this as it\u0027s mentioned several times above, and isn\u0027t really what this section is looking for.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"2c9e8cf7588557c35d8c5bb784bfeba2c89ff2d2","unresolved":false,"context_lines":[{"line_number":137,"context_line":"---------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Compute nodes would not need large disks when using rbd as an image"},{"line_number":140,"context_line":"backend.."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"There could be a config option added to change the marker used to tell"},{"line_number":143,"context_line":"glance it is responsible for deleting the nova image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_3a095c2d","line":140,"in_reply_to":"1af86dd1_44fe836c","updated":"2015-06-12 21:12:40.000000000","message":"will do","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":8787,"name":"Dmitry Borodaenko","email":"angdraug@gmail.com","username":"angdraug"},"change_message_id":"c6109c5f66261217b6d8d7a2b93eb2688df9be54","unresolved":false,"context_lines":[{"line_number":140,"context_line":"backend.."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"There could be a config option added to change the marker used to tell"},{"line_number":143,"context_line":"glance it is responsible for deleting the nova image."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"To use this in an existing installation, adding \u0027allow rwx pool\u003dvms\u0027"},{"line_number":146,"context_line":"to glance\u0027s ceph user capabilities is necessary. The \u0027ceph auth caps\u0027"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_04e9cb1a","line":143,"updated":"2015-06-05 01:07:20.000000000","message":"I think this should remain internal implementation detail and not be exposed to operator. Once you expose and document this, it will be much harder to replace the marker mechanism if a cleaner alternative becomes possible (e.g. an extended attribute of an RBD volume in Ceph).","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"2c9e8cf7588557c35d8c5bb784bfeba2c89ff2d2","unresolved":false,"context_lines":[{"line_number":140,"context_line":"backend.."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"There could be a config option added to change the marker used to tell"},{"line_number":143,"context_line":"glance it is responsible for deleting the nova image."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"To use this in an existing installation, adding \u0027allow rwx pool\u003dvms\u0027"},{"line_number":146,"context_line":"to glance\u0027s ceph user capabilities is necessary. The \u0027ceph auth caps\u0027"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_9f4ba2b0","line":143,"in_reply_to":"1af86dd1_04276b13","updated":"2015-06-12 21:12:40.000000000","message":"Another good point. Sounds like we should definitely avoid a config option for this.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"97e687c935ef8e34192de12b3a48ff0ddf4ef38f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"backend.."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"There could be a config option added to change the marker used to tell"},{"line_number":143,"context_line":"glance it is responsible for deleting the nova image."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"To use this in an existing installation, adding \u0027allow rwx pool\u003dvms\u0027"},{"line_number":146,"context_line":"to glance\u0027s ceph user capabilities is necessary. The \u0027ceph auth caps\u0027"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_84ca5b4e","line":143,"in_reply_to":"3afb71cf_04e9cb1a","updated":"2015-06-05 01:23:20.000000000","message":"That\u0027s a good point. rbd metadata (key/value pairs associated with an rbd image) is already in master for ceph, but no stable release yet. In the future we could switch to using that instead.\n\nI\u0027m happy to avoid more configuration options in nova and glance too.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"573aea80b8766c9fd76c9a6ef2df9268d0505e10","unresolved":false,"context_lines":[{"line_number":140,"context_line":"backend.."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"There could be a config option added to change the marker used to tell"},{"line_number":143,"context_line":"glance it is responsible for deleting the nova image."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"To use this in an existing installation, adding \u0027allow rwx pool\u003dvms\u0027"},{"line_number":146,"context_line":"to glance\u0027s ceph user capabilities is necessary. The \u0027ceph auth caps\u0027"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_04276b13","line":143,"in_reply_to":"3afb71cf_84ca5b4e","updated":"2015-06-12 20:17:51.000000000","message":"Well, the other thing is, if you let the operator set this, and they decide to change it later, they\u0027re going to stop purging images tagged with the old marker. We have this problem now with things like LVM volumes. If they change the name pattern option, then suddenly we don\u0027t see any instance disks because we think they\u0027re named differently.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"573aea80b8766c9fd76c9a6ef2df9268d0505e10","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"To use this in an existing installation, adding \u0027allow rwx pool\u003dvms\u0027"},{"line_number":146,"context_line":"to glance\u0027s ceph user capabilities is necessary. The \u0027ceph auth caps\u0027"},{"line_number":147,"context_line":"command can be used for this [1]."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Developer impact"},{"line_number":150,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_e4868fb8","line":147,"updated":"2015-06-12 20:17:51.000000000","message":"Does this imply that the old way of snapshotting rbd images will continue to work? If not, this is not something we can suddenly enforce on our users across a single cycle change. If it continues to work as it does until/unless this permission change is made, then that\u0027s fine (although maybe I missed how it will know whether to do them smartly or stupidly).\n\nIf it can\u0027t operate in both ways, presumably there could be the argument that an operator doesn\u0027t want to drop their isolation of pools, right? I\u0027d guess the answer is \"that\u0027s dumb, because this is much faster\" but... should we consider that case?","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"4018f36e7273a71cdea2e686e970148d9bfa20ba","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"To use this in an existing installation, adding \u0027allow rwx pool\u003dvms\u0027"},{"line_number":146,"context_line":"to glance\u0027s ceph user capabilities is necessary. The \u0027ceph auth caps\u0027"},{"line_number":147,"context_line":"command can be used for this [1]."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Developer impact"},{"line_number":150,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_c5808c49","line":147,"in_reply_to":"1af86dd1_e4868fb8","updated":"2015-06-13 00:18:26.000000000","message":"Accidentally discarded my response to this earlier.\n\nThe old way of of snapshotting will still work - it needs to stay to function when glance isn\u0027t backed by rbd. If the new way fails, we fall back to the old way.\n\nThis would include failing because glance doesn\u0027t have permissions for the nova pool. So the old way would still be used until the permissions are changed.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"573aea80b8766c9fd76c9a6ef2df9268d0505e10","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Testing"},{"line_number":177,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"The existing tempest tests with ceph in the gate cover instance snapshots."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"},{"line_number":182,"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":3,"id":"1af86dd1_04dc0be3","line":179,"updated":"2015-06-12 20:17:51.000000000","message":"Yes, but they wouldn\u0027t verify that this is actually done properly. Presumably this section needs pointers to unit and, ideally, functional tests to prove out the new behavior.\n\nAlso, once this is in place and is just \"the\" way this happens, surely tempest should be able to look at some glance attributes of the snapshot to make sure that it\u0027s actually linked in ceph some way instead of having been done the old way, right?","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"2c9e8cf7588557c35d8c5bb784bfeba2c89ff2d2","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Testing"},{"line_number":177,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"The existing tempest tests with ceph in the gate cover instance snapshots."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"},{"line_number":182,"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":3,"id":"1af86dd1_fa5e2444","line":179,"in_reply_to":"1af86dd1_04dc0be3","updated":"2015-06-12 21:12:40.000000000","message":"Yes, I didn\u0027t think unit tests needed mentioning since they\u0027re always required.\n\nFunctional tests like that would be great, though I was under the impression that whitebox testing for backend-specific things like this is not the domain of tempest.\n\nFrom the glance api we can tell whether the old or new way was used based on which ceph pool is referenced by glance\u0027s image location field.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"4018f36e7273a71cdea2e686e970148d9bfa20ba","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Testing"},{"line_number":177,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"The existing tempest tests with ceph in the gate cover instance snapshots."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"},{"line_number":182,"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":3,"id":"fa32b979_859364a3","line":179,"in_reply_to":"1af86dd1_b5343fde","updated":"2015-06-13 00:18:26.000000000","message":"Excellent, we should definitely have whitebox tests for this then.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3aac0625b2d212a1081bace576aa91fe6bb3a932","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Testing"},{"line_number":177,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"The existing tempest tests with ceph in the gate cover instance snapshots."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"},{"line_number":182,"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":3,"id":"1af86dd1_b5343fde","line":179,"in_reply_to":"1af86dd1_fa5e2444","updated":"2015-06-12 21:16:39.000000000","message":"Whitebox is outside the scope. But, functional tests are not equal to tempest (integration tests). We have a section in the nova tree called functional testing, where we stand up more of a normal stack and do things that cut across many layers at once. That provides you a good place to do whiteboxy stuff. We planned to have the ability to stand up a glance as part of that, but we don\u0027t have it done yet. However, I think you should be able to mock out enough glance to make your stuff work and make sure that things happen as you expect.","commit_id":"62b55fa9c1bc7266b8473cc510dff416978bd45e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b0d6eee4077f64b5abc55bc165bd314a9ed0b207","unresolved":false,"context_lines":[{"line_number":55,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":58,"context_line":"to the current full copy method."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This is the reverse of how images are cloned into nova instance disks"},{"line_number":61,"context_line":"when both are on rbd [0]."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_53213f9e","line":58,"updated":"2015-06-16 13:16:20.000000000","message":"What sort of things would cause the snapshot creation to fail. I can see disk space exhaustion being one, but that would also cause a full copy to fail. Likewise server connectivity errors, would cause both methods to fail.\n\nAre there any likely scenarios which cause snapshot to fail, but which would not cause a fully copy to fail.\n\nIOW, I\u0027d be inclined to say that if snapshot fails, we should fail the operation and allow the admin to take whatever action  is needed to resolve it. Transparently falling back to full copy could be quite an unpleasant surprise for a cloud admin who thought all user snapshots were being done efficiently.","commit_id":"153cb0a1ca3341635fd6420772f62e1a938d8d1e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"cdad806a68b3f5f2f951a4667c32260d07e0f74a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":58,"context_line":"to the current full copy method."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This is the reverse of how images are cloned into nova instance disks"},{"line_number":61,"context_line":"when both are on rbd [0]."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_7003030e","line":58,"in_reply_to":"fa32b979_53213f9e","updated":"2015-06-16 20:18:12.000000000","message":"Sometimes it will fail due to intentional configuration choices, like:\n\n- glance is not using rbd as a backend\n\n- glance and nova are using different ceph clusters\n\nIn cases like these, falling back to full copy makes sense. Another reason, brought up by Dan Smith in the previous revision, is that falling back makes upgrades graceful. I.e., if glance isn\u0027t upgraded with ceph permissions for the pool nova uses yet, nova will continue functioning with full copy snapshots.\n\nFalling back to full copy also matches nova and cinder\u0027s behavior with rbd clones from glance.\n\nWe could add a config option to explicitly enable this efficient snapshotting, without falling back to full copy, but personally I don\u0027t think it\u0027s worth another nova option.","commit_id":"153cb0a1ca3341635fd6420772f62e1a938d8d1e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"65d846d02cebc45e2a25854c7795759f143facb7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":58,"context_line":"to the current full copy method."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This is the reverse of how images are cloned into nova instance disks"},{"line_number":61,"context_line":"when both are on rbd [0]."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_af67d34b","line":58,"in_reply_to":"fa32b979_7003030e","updated":"2015-06-17 09:49:00.000000000","message":"Ok, can you include these details of why it would fail in the spec, as its important reference for people understanding why it was done this way.","commit_id":"153cb0a1ca3341635fd6420772f62e1a938d8d1e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"b86a4fbbaf252fd3cb5cad2b2efbc47090acfea6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":58,"context_line":"to the current full copy method."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This is the reverse of how images are cloned into nova instance disks"},{"line_number":61,"context_line":"when both are on rbd [0]."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_88c67798","line":58,"in_reply_to":"fa32b979_af67d34b","updated":"2015-06-17 14:54:30.000000000","message":"Added to the spec","commit_id":"153cb0a1ca3341635fd6420772f62e1a938d8d1e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b0d6eee4077f64b5abc55bc165bd314a9ed0b207","unresolved":false,"context_lines":[{"line_number":84,"context_line":"from the user if they delete an instance with snapshots by making"},{"line_number":85,"context_line":"glance responsible for their eventual deletion, once their dependent"},{"line_number":86,"context_line":"snapshots are deleted. Nova does this by renaming instance disks that"},{"line_number":87,"context_line":"it deletes in rbd, so glance is aware that they can be deleted."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"When a glance snapshot is deleted, it deletes (c), then (b), and"},{"line_number":90,"context_line":"(a). If nova has renamed its parent in rbd with a preset suffix, the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_13b17747","line":87,"updated":"2015-06-16 13:16:20.000000000","message":"Do we need changes to glance in order to support the delayed deletion logic you describe here. If so, where\u0027s the blueprint for that and have glance team agreed ?","commit_id":"153cb0a1ca3341635fd6420772f62e1a938d8d1e"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"cdad806a68b3f5f2f951a4667c32260d07e0f74a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"from the user if they delete an instance with snapshots by making"},{"line_number":85,"context_line":"glance responsible for their eventual deletion, once their dependent"},{"line_number":86,"context_line":"snapshots are deleted. Nova does this by renaming instance disks that"},{"line_number":87,"context_line":"it deletes in rbd, so glance is aware that they can be deleted."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"When a glance snapshot is deleted, it deletes (c), then (b), and"},{"line_number":90,"context_line":"(a). If nova has renamed its parent in rbd with a preset suffix, the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_01926f57","line":87,"in_reply_to":"fa32b979_13b17747","updated":"2015-06-16 20:18:12.000000000","message":"It\u0027s a simple glance_store change. It\u0027s linked in the references of this spec:\n\nhttps://review.openstack.org/#/c/127397/\n\nSince it\u0027s not much use without nova, glance folks would like to see the nova spec approved.","commit_id":"153cb0a1ca3341635fd6420772f62e1a938d8d1e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"baa22c5b16ffbb42b8d4e457d8e7724618082f11","unresolved":false,"context_lines":[{"line_number":105,"context_line":"(a). If nova has renamed its parent in rbd with a preset suffix, the"},{"line_number":106,"context_line":"instance has been destroyed already, so glance tries to delete the"},{"line_number":107,"context_line":"original instance disk. The original instance disk will be"},{"line_number":108,"context_line":"successfully deleted when the last snapshot is removed."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"If glance snapshots are created but deleted before the instance is"},{"line_number":111,"context_line":"destroyed, nova will delete the instance disks as usual."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_065501f9","line":108,"updated":"2015-06-26 10:08:50.000000000","message":"The deletion / cleanup aspect of this design is probably what concerns me the most. I\u0027m somewhat uneasy about the idea of Glance relying on Nova using a special naming scheme to indicate deletion. For deletion we\u0027re doing is creating a contract between glance and nova for certain actions, and since these are separate independantly developed projects I feel this really ought to be much more explicitly handled. This proposal is dealing with deletion implicitly by making glance and nova rely on some internal implementation they both have, rather than using something in the public \u0026 formally specified API between the two. So it feels to me like there ought to be some formal API Nova could invoke on glance to tell it that it can perform clean up.","commit_id":"1ad6a0faec6bd4a9a590a462ea8a0d24d5b9d852"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"7668ebe601c3d93b1a2961786377f3be9714a9e2","unresolved":false,"context_lines":[{"line_number":105,"context_line":"(a). If nova has renamed its parent in rbd with a preset suffix, the"},{"line_number":106,"context_line":"instance has been destroyed already, so glance tries to delete the"},{"line_number":107,"context_line":"original instance disk. The original instance disk will be"},{"line_number":108,"context_line":"successfully deleted when the last snapshot is removed."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"If glance snapshots are created but deleted before the instance is"},{"line_number":111,"context_line":"destroyed, nova will delete the instance disks as usual."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_e7391143","line":108,"in_reply_to":"fa32b979_065501f9","updated":"2015-06-29 06:40:45.000000000","message":"FWIW, I\u0027m with Dan here. I spent a couple of hours last week looking at the glance_store side of this to have it be more generic. OTOH, it\u0027s not as simple as I wished.\n\nThe things that I don\u0027t like about this proposal are:\n\n1. It requires wiring both projects through this hard-coded suffix.\n2. #1 makes the proposal itself fragile\n3. glance_store is a library and I\u0027d hate it to have \"project specific\" hard-coded implementations. Although the library is not meant to be used outside Glance\u0027s scope (maybe?), I don\u0027t think it should have nova-specific code in there.\n\nIn the alternatives, you mentioned Nova can `deep-flatten` the rbd clone. Does that need to happen on creation? Can it be done when the parent is being deleted? If the later is possible, I think that\u0027d be a good solution.\n\nWhen the artifacts work will be done, I think it\u0027ll be possible to just rely on the built-in dependency chain but that won\u0027t happen anytime soon.","commit_id":"1ad6a0faec6bd4a9a590a462ea8a0d24d5b9d852"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"eab623f3aa92b1cdd031cb248cadc33e3a99e28d","unresolved":false,"context_lines":[{"line_number":122,"context_line":"original disk could be different. It could use an image property with"},{"line_number":123,"context_line":"certain restrictions which aren\u0027t possible in the current glance api:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* it must be writeable only once"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* to avoid exposing backend details, it would need to be hidden from"},{"line_number":128,"context_line":"  end users"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_86bfc7cf","line":125,"updated":"2015-06-30 18:28:00.000000000","message":"What do you mean by \"writeable only once\". In Glance, once an image is uploaded, the image bytes cannot be updated.","commit_id":"1ad6a0faec6bd4a9a590a462ea8a0d24d5b9d852"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"5a5a5c532e0c97f98623be06f7bb1e9c887cb78f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"original disk could be different. It could use an image property with"},{"line_number":123,"context_line":"certain restrictions which aren\u0027t possible in the current glance api:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* it must be writeable only once"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* to avoid exposing backend details, it would need to be hidden from"},{"line_number":128,"context_line":"  end users"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_890a3d20","line":125,"in_reply_to":"ba3cc151_86bfc7cf","updated":"2015-06-30 22:46:47.000000000","message":"I meant an image property that nova could set, but nothing could change afterwards","commit_id":"1ad6a0faec6bd4a9a590a462ea8a0d24d5b9d852"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c907a1a4ddc223973745ece10444bafd74d1eb05","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Primary assignee:"},{"line_number":208,"context_line":"  nic"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Other contributors:"},{"line_number":211,"context_line":"  jdurgin"},{"line_number":212,"context_line":"  pbrady"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a50d1a3_aead6aea","line":210,"updated":"2015-07-28 20:48:53.000000000","message":"You might want to also ping nagyz:\n\nhttps://review.openstack.org/#/c/125963/","commit_id":"e08f93defe81d317fffc2a9d22b4d236b432a494"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"2726b9a8c6ed51c2af30b9bc09666e976be7cf8b","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Primary assignee:"},{"line_number":208,"context_line":"  nic"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Other contributors:"},{"line_number":211,"context_line":"  jdurgin"},{"line_number":212,"context_line":"  pbrady"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a50d1a3_5491a5ef","line":210,"in_reply_to":"3a50d1a3_aead6aea","updated":"2015-07-29 17:01:01.000000000","message":"Done","commit_id":"e08f93defe81d317fffc2a9d22b4d236b432a494"}],"specs/mitaka/approved/rbd-instance-snapshots.rst":[{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"d00da8a6b2a3e869b8f16b10a1fa620c02a99b38","unresolved":false,"context_lines":[{"line_number":156,"context_line":"---------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Glance will need to be configured with direct_url support enabled"},{"line_number":159,"context_line":"in order for Nova to determine what and where to clonethe image"},{"line_number":160,"context_line":"from, depending on system configurations, this could leak backend"},{"line_number":161,"context_line":"credentials [5].  Devstack has already been updated to switch"},{"line_number":162,"context_line":"behaviors when Ceph support is requested [6]."}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_5e49808d","line":159,"updated":"2015-09-02 06:09:30.000000000","message":"s/clonethe/clone the/","commit_id":"53aacfd4bce437ea981032e59ac93355deb2d27f"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"c9207a97890e2a831bba4e7a58887c92ed00de70","unresolved":false,"context_lines":[{"line_number":156,"context_line":"---------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Glance will need to be configured with direct_url support enabled"},{"line_number":159,"context_line":"in order for Nova to determine what and where to clonethe image"},{"line_number":160,"context_line":"from, depending on system configurations, this could leak backend"},{"line_number":161,"context_line":"credentials [5].  Devstack has already been updated to switch"},{"line_number":162,"context_line":"behaviors when Ceph support is requested [6]."}],"source_content_type":"text/x-rst","patch_set":10,"id":"da20952f_7b1a3719","line":159,"in_reply_to":"da20952f_5e49808d","updated":"2015-09-02 17:04:56.000000000","message":"Done","commit_id":"53aacfd4bce437ea981032e59ac93355deb2d27f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f3ead51566a6e8f0e3524904f1c0ed32595a5776","unresolved":false,"context_lines":[{"line_number":38,"context_line":"customize or update them, and start using the snapshots far more"},{"line_number":39,"context_line":"quickly."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For operators, this eliminates any need for large local disks on"},{"line_number":42,"context_line":"compute nodes, since instance data in rbd stays in rbd. It also"},{"line_number":43,"context_line":"prevents lots of wasted space."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_86a95226","line":41,"range":{"start_line":41,"start_character":20,"end_line":41,"end_character":61},"updated":"2015-09-18 09:47:47.000000000","message":"I\u0027d rather say reduces the need. Off the top of my head, log files still require a fair bit of space. So it\u0027s not like we could shrink local disks to 50MB if this spec merged.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":6984,"name":"Sébastien Han","email":"seb@redhat.com","username":"leseb"},"change_message_id":"23cc90aa95cdcba30194a4778b9e3f7a9255553e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"customize or update them, and start using the snapshots far more"},{"line_number":39,"context_line":"quickly."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For operators, this eliminates any need for large local disks on"},{"line_number":42,"context_line":"compute nodes, since instance data in rbd stays in rbd. It also"},{"line_number":43,"context_line":"prevents lots of wasted space."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_a26b1bb6","line":41,"range":{"start_line":41,"start_character":20,"end_line":41,"end_character":61},"in_reply_to":"ba15a1d1_86a95226","updated":"2015-09-18 12:46:17.000000000","message":"The point is that the ops don\u0027t need large local disks anymore to store vm disks, so this sounds fair enough.\n\nMoreover we could it as the idea here is to push forward a diskless compute model. It\u0027s really up to you to control log files.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f3ead51566a6e8f0e3524904f1c0ed32595a5776","unresolved":false,"context_lines":[{"line_number":56,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":59,"context_line":"to the current full copy method."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"This is the reverse of how images are cloned into nova instance disks"},{"line_number":62,"context_line":"when both are on rbd [0]."}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_4102440b","line":59,"updated":"2015-09-18 09:47:47.000000000","message":"If the fast snapshot failed, is the full method any more likely to work? Should we just retry instead? It depends on the type of failure I suppose, we should just retry for a network failure but fallback for a permissions issue.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"098d07201a71d31c7582bb4b30ad5401c083d042","unresolved":false,"context_lines":[{"line_number":56,"context_line":"cluster, and the snapshot is instantly usable by the end user."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":59,"context_line":"to the current full copy method."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"This is the reverse of how images are cloned into nova instance disks"},{"line_number":62,"context_line":"when both are on rbd [0]."}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_d43446df","line":59,"in_reply_to":"ba15a1d1_4102440b","updated":"2015-09-22 18:22:26.000000000","message":"In certain configurations, yes.  One of them is explicitly detailed below (using different clusters for glance and nova).","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f3ead51566a6e8f0e3524904f1c0ed32595a5776","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"* It makes upgrades graceful, since nova snapshots still work before"},{"line_number":68,"context_line":"  glance has enough permissions for efficient snapshots (see Security"},{"line_number":69,"context_line":"  Impact for glance permission details)."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Nova snapshots still work when efficient snapshots are not possible"},{"line_number":72,"context_line":"  due to architecture choices, such as not using rbd as a glance"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_c60f4a35","line":69,"updated":"2015-09-18 09:47:47.000000000","message":"If \"efficient snapshots\" aren\u0027t possible, we should know/detect that and immediately use the old method rather than having to attempt and fall back.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"098d07201a71d31c7582bb4b30ad5401c083d042","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"* It makes upgrades graceful, since nova snapshots still work before"},{"line_number":68,"context_line":"  glance has enough permissions for efficient snapshots (see Security"},{"line_number":69,"context_line":"  Impact for glance permission details)."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Nova snapshots still work when efficient snapshots are not possible"},{"line_number":72,"context_line":"  due to architecture choices, such as not using rbd as a glance"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_b49e72b6","line":69,"in_reply_to":"ba15a1d1_c60f4a35","updated":"2015-09-22 18:22:26.000000000","message":"That implies a configuration option, which implies global restarts in order to switch the behavior.  Checking every time is (very) fast, introduces negligible overhead, and requires no extra configuration or maintenance.\n\nPremature optimization is the root of all evil.  This portion of the code is not where the time is spent.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f3ead51566a6e8f0e3524904f1c0ed32595a5776","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Nova snapshots still work when efficient snapshots are not possible"},{"line_number":72,"context_line":"  due to architecture choices, such as not using rbd as a glance"},{"line_number":73,"context_line":"  backend, or using different ceph clusters for glance and nova."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* This is consistent with existing rbd behavior in nova and cinder. If"},{"line_number":76,"context_line":"  cloning from a glance image fails, both projects fall back to full"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_661e7e71","line":73,"updated":"2015-09-18 09:47:47.000000000","message":"Same point","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"098d07201a71d31c7582bb4b30ad5401c083d042","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Nova snapshots still work when efficient snapshots are not possible"},{"line_number":72,"context_line":"  due to architecture choices, such as not using rbd as a glance"},{"line_number":73,"context_line":"  backend, or using different ceph clusters for glance and nova."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* This is consistent with existing rbd behavior in nova and cinder. If"},{"line_number":76,"context_line":"  cloning from a glance image fails, both projects fall back to full"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_14b07e42","line":73,"in_reply_to":"ba15a1d1_661e7e71","updated":"2015-09-22 18:22:26.000000000","message":"Same counter-point.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f3ead51566a6e8f0e3524904f1c0ed32595a5776","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  cloning from a glance image fails, both projects fall back to full"},{"line_number":77,"context_line":"  copies when creating volumes or instance disks."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Since glance references rbd images by name, and the name of the nova"},{"line_number":80,"context_line":"rbd disk may change later, create an rbd clone. Since rbd images in"},{"line_number":81,"context_line":"glance are meant to serve as the basis for further clones, take a"},{"line_number":82,"context_line":"snapshot of this clone."}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_4129e488","line":79,"range":{"start_line":79,"start_character":64,"end_line":79,"end_character":68},"updated":"2015-09-18 09:47:47.000000000","message":"you mean the original disk? this is unclear","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"098d07201a71d31c7582bb4b30ad5401c083d042","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  cloning from a glance image fails, both projects fall back to full"},{"line_number":77,"context_line":"  copies when creating volumes or instance disks."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Since glance references rbd images by name, and the name of the nova"},{"line_number":80,"context_line":"rbd disk may change later, create an rbd clone. Since rbd images in"},{"line_number":81,"context_line":"glance are meant to serve as the basis for further clones, take a"},{"line_number":82,"context_line":"snapshot of this clone."}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_d4c8c676","line":79,"in_reply_to":"ba15a1d1_4129e488","updated":"2015-09-22 18:22:26.000000000","message":"Will clarify.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f3ead51566a6e8f0e3524904f1c0ed32595a5776","unresolved":false,"context_lines":[{"line_number":85,"context_line":"dependencies between rbd images simple, nova should deep-flatten"},{"line_number":86,"context_line":"the rbd clone, to make it no longer depend on the snapshot.  The"},{"line_number":87,"context_line":"source snapshot can then be removed, and the image can be made"},{"line_number":88,"context_line":"available for use."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Alternatives"},{"line_number":91,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_a18a4062","line":88,"updated":"2015-09-18 09:47:47.000000000","message":"I got totally lost here. Please could you provide a small example or diagram to show the process and what gets cloned, snapshotted and flattened? You\u0027ve explained the \"Alternatives\" more comprehensively than your proposed change!","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"098d07201a71d31c7582bb4b30ad5401c083d042","unresolved":false,"context_lines":[{"line_number":85,"context_line":"dependencies between rbd images simple, nova should deep-flatten"},{"line_number":86,"context_line":"the rbd clone, to make it no longer depend on the snapshot.  The"},{"line_number":87,"context_line":"source snapshot can then be removed, and the image can be made"},{"line_number":88,"context_line":"available for use."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Alternatives"},{"line_number":91,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ba15a1d1_34d7c2c0","line":88,"in_reply_to":"ba15a1d1_a18a4062","updated":"2015-09-22 18:22:26.000000000","message":"I implemented the \"Alternative\" approach, and it works very well is is much simpler, so I flopped the two in the spec.\n\nI have lost a fair amount of objectivity at this point regarding what is simple and comprehendible, but I will attempt to clarify this language to reduce confusion.","commit_id":"7fd3207833d044276a594fe857ca4c130f8b11b6"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d4e01b1ec076d1bc9f733277ceec62be7cdc86fe","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"For operators, this is also a problem of efficiency and cost. For"},{"line_number":31,"context_line":"rbd-backed nova deployments, this is the last part that uses"},{"line_number":32,"context_line":"significant local disk space."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a29b11f_f431660c","line":32,"updated":"2015-10-20 05:25:08.000000000","message":"Great problem description!","commit_id":"6fe2ec503148c4a8b2a2a601b433585c3319b78e"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"7eb62f209a7ce1fb69b902edcbb3d2e5b0e29a6d","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"  c) a snapshot of the clone"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  (c) is exposed through glance\u0027s backend location."},{"line_number":122,"context_line":"  (b) is an internal detail of glance."},{"line_number":123,"context_line":"  (a) is an internal detail that nova and glance handle."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a1a9d01_b5c2d332","line":121,"updated":"2015-09-29 07:44:29.000000000","message":"If you look at the rendered doc http://docs-draft.openstack.org/44/188244/12/check/gate-nova-specs-docs/d7be609//doc/build/html/specs/mitaka/approved/rbd-instance-snapshots.html the above three bullet points get numbered 1), 2), 3) instead of a),b),c), messing up the references to it.","commit_id":"6fe2ec503148c4a8b2a2a601b433585c3319b78e"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d4e01b1ec076d1bc9f733277ceec62be7cdc86fe","unresolved":false,"context_lines":[{"line_number":186,"context_line":"Performance Impact"},{"line_number":187,"context_line":"------------------"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Instance snapshots would be fast."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Other end user impact"},{"line_number":192,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a29b11f_34591e5b","line":189,"updated":"2015-10-20 05:25:08.000000000","message":"What is the impact if if efficient snapshots fail?\n\nWill persistent failures be cached to avoid pointless work?","commit_id":"6fe2ec503148c4a8b2a2a601b433585c3319b78e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  2. Clone the snapshot into Glance\u0027s storage pool"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"  3. Since RBD images in glance are meant to serve as the basis for"},{"line_number":66,"context_line":"     further clones, make a protected snapshot of this clone"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  4. To keep from having to manage dependencies between snapshots"},{"line_number":69,"context_line":"     and clones, deep-flatten the Glance clone, and detach it from"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_1c54f5fc","line":66,"updated":"2015-11-02 16:45:13.000000000","message":"Is this done in glance or RBD as described in:\n\nhttp://docs.ceph.com/docs/master/dev/rbd-layering/","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":66,"context_line":"     further clones, make a protected snapshot of this clone"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  4. To keep from having to manage dependencies between snapshots"},{"line_number":69,"context_line":"     and clones, deep-flatten the Glance clone, and detach it from"},{"line_number":70,"context_line":"     the Nova snapshot"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  5. Remove the Nova snapshot, as it is no longer needed"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_1c7b958d","line":69,"updated":"2015-11-02 16:45:13.000000000","message":"Detach it how?  Null out the instance_uuid in the image metadata?\n\nOr is this all RBD-isms?  I\u0027m unfamiliar with RBD so having a hard time telling what is doing what in this spec.","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":80,"context_line":"If any of these steps fail, clean up any partial state and fall back"},{"line_number":81,"context_line":"to the current full copy method. Failure of the RBD snapshot method"},{"line_number":82,"context_line":"will be quick and usually transient in nature. The cloud admin can"},{"line_number":83,"context_line":"monitor for these failures and address the underlying CEPH issues"},{"line_number":84,"context_line":"causing the RBD snapshot to fail."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"There are a few reasons for falling back to full copies instead of"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_3cb7713b","line":83,"updated":"2015-11-02 16:45:13.000000000","message":"Monitor how?  Will Nova emit a notification or just standard warning logging monitoring?","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":178,"context_line":"would need to be able to create the snapshot in the pool used by"},{"line_number":179,"context_line":"glance, it would need write access to this pool as well."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"In ceph terms, client.cinder would need the additional osd capability"},{"line_number":182,"context_line":"\u0027allow rwx pool\u003dimages\u0027 when authx is used."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_5c1b4dca","line":181,"updated":"2015-11-02 16:45:13.000000000","message":"I\u0027m not an RBD guy, but is client.cinder correct here?","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":189,"context_line":"Performance Impact"},{"line_number":190,"context_line":"------------------"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Instance snapshots would be fast."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Other end user impact"},{"line_number":195,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_5ced8db5","line":192,"updated":"2015-11-02 16:45:13.000000000","message":"RBD-backed*","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Other end user impact"},{"line_number":195,"context_line":"---------------------"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Other deployer impact"},{"line_number":200,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_9c3ec526","line":197,"updated":"2015-11-02 16:45:13.000000000","message":"Part of the point of the spec is to make RBD-backed instance snapshot operations faster for the user.","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":203,"context_line":"rwx pool\u003dimages\u0027 to nova\u0027s ceph user capabilities is necessary. The"},{"line_number":204,"context_line":"\u0027ceph auth caps\u0027 command can be used for this [1]. If these permissions"},{"line_number":205,"context_line":"are not updated, nova will continue using the existing full copy"},{"line_number":206,"context_line":"mechanism for instance snapshots."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Developer impact"},{"line_number":209,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_7c6f292b","line":206,"updated":"2015-11-02 16:45:13.000000000","message":"Because we detect it or because the fast snapshot operation fails and we fallback to full copy?","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":237,"context_line":"Dependencies"},{"line_number":238,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"None."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Testing"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_1cf5d555","line":240,"updated":"2015-11-02 16:45:13.000000000","message":"What version of Glance or glance-store is required for all of this to work?","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":242,"context_line":"Testing"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"The existing tempest tests with ceph in the gate cover instance"},{"line_number":246,"context_line":"snapshots generically. Additionally, unit tests and functional tests"},{"line_number":247,"context_line":"in nova will verify error handling (falling back to full copies if the"},{"line_number":248,"context_line":"process fails), and make sure that when configured correctly rbd"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_fcbd7968","line":245,"updated":"2015-11-02 16:45:13.000000000","message":"Won\u0027t the ceph job configuration need to change to enable fast snapshots?","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5ca4848d8f1a83b124901c10e0251f3d286bbee","unresolved":false,"context_lines":[{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"The existing tempest tests with ceph in the gate cover instance"},{"line_number":246,"context_line":"snapshots generically. Additionally, unit tests and functional tests"},{"line_number":247,"context_line":"in nova will verify error handling (falling back to full copies if the"},{"line_number":248,"context_line":"process fails), and make sure that when configured correctly rbd"},{"line_number":249,"context_line":"snapshots and clones are used rather than full copies."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a26ad4f_7c8ba9c3","line":246,"updated":"2015-11-02 16:45:13.000000000","message":"I\u0027m not really sure how functional testing is going to happen in nova with this proposed change.","commit_id":"491c2b3bbda165c5d70673a1a83334f9be599c8d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"171d2a3c6314595bd2d0ed3bb6c9ed132b5193bc","unresolved":false,"context_lines":[{"line_number":18,"context_line":"As background reading the follow link provides an overview of the"},{"line_number":19,"context_line":"snapshotting capabilities available in ceph."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"http://docs.ceph.com/docs/v0.79/rbd/rbd-snapshot/"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\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":14,"id":"fa80f949_a0318dee","line":21,"updated":"2015-11-03 19:11:33.000000000","message":"nit: might want to base this off master:\n\nhttp://docs.ceph.com/docs/master/rbd/rbd-snapshot/","commit_id":"0841854ee5834dce87893c88c256379c2efd9e91"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"171d2a3c6314595bd2d0ed3bb6c9ed132b5193bc","unresolved":false,"context_lines":[{"line_number":193,"context_line":"Performance Impact"},{"line_number":194,"context_line":"------------------"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Snapshots of RBD-backed instances would be signifigantly faster."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Other end user impact"},{"line_number":199,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"fa80f949_00a5f902","line":196,"updated":"2015-11-03 19:11:33.000000000","message":"s/signifigantly/significantly/","commit_id":"0841854ee5834dce87893c88c256379c2efd9e91"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"171d2a3c6314595bd2d0ed3bb6c9ed132b5193bc","unresolved":false,"context_lines":[{"line_number":198,"context_line":"Other end user impact"},{"line_number":199,"context_line":"---------------------"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Snapshots of RBD-backed instances would be signifigantly faster."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Other deployer impact"},{"line_number":204,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"fa80f949_c0aff1e1","line":201,"updated":"2015-11-03 19:11:33.000000000","message":"ditto","commit_id":"0841854ee5834dce87893c88c256379c2efd9e91"}]}
