)]}'
{"specs/juno/storage-optimization-for-multi-datastore-clusters.rst":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e31b8aa331cc44231eaf299d5595f78b80463833","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint storage-optimization-for-multi-datastore-clusters allows images"},{"line_number":14,"context_line":"to launch faster and saves disk space by creating linked clones of instances"},{"line_number":15,"context_line":"using the base disk already present in the image cache of other datastore of"},{"line_number":16,"context_line":"the ESX cluster."},{"line_number":17,"context_line":"VMware ESX cluster can have multiple datastores that are shared across all the"},{"line_number":18,"context_line":"hosts of the cluster. Its much more efficient to have a single copy of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_bdb82d12","line":15,"updated":"2014-06-11 13:00:00.000000000","message":"\"of other\" should be \"in another\"?","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint storage-optimization-for-multi-datastore-clusters allows images"},{"line_number":14,"context_line":"to launch faster and saves disk space by creating linked clones of instances"},{"line_number":15,"context_line":"using the base disk already present in the image cache of other datastore of"},{"line_number":16,"context_line":"the ESX cluster."},{"line_number":17,"context_line":"VMware ESX cluster can have multiple datastores that are shared across all the"},{"line_number":18,"context_line":"hosts of the cluster. Its much more efficient to have a single copy of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_474bb8b0","line":15,"in_reply_to":"1ae5cdf2_bdb82d12","updated":"2014-06-12 09:09:31.000000000","message":"Will update this in the next patch","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e31b8aa331cc44231eaf299d5595f78b80463833","unresolved":false,"context_lines":[{"line_number":15,"context_line":"using the base disk already present in the image cache of other datastore of"},{"line_number":16,"context_line":"the ESX cluster."},{"line_number":17,"context_line":"VMware ESX cluster can have multiple datastores that are shared across all the"},{"line_number":18,"context_line":"hosts of the cluster. Its much more efficient to have a single copy of the"},{"line_number":19,"context_line":"image in only one datastore of the cluster and create linked clones using"},{"line_number":20,"context_line":"this image."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_dd3899a2","line":18,"updated":"2014-06-11 13:00:00.000000000","message":"Its -\u003e It is","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":15,"context_line":"using the base disk already present in the image cache of other datastore of"},{"line_number":16,"context_line":"the ESX cluster."},{"line_number":17,"context_line":"VMware ESX cluster can have multiple datastores that are shared across all the"},{"line_number":18,"context_line":"hosts of the cluster. Its much more efficient to have a single copy of the"},{"line_number":19,"context_line":"image in only one datastore of the cluster and create linked clones using"},{"line_number":20,"context_line":"this image."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_87c86023","line":18,"in_reply_to":"1ae5cdf2_dd3899a2","updated":"2014-06-12 09:09:31.000000000","message":"Will update this in the next patch","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e31b8aa331cc44231eaf299d5595f78b80463833","unresolved":false,"context_lines":[{"line_number":38,"context_line":"When using the VMware ESX hypervisor nova driver for such clusters with"},{"line_number":39,"context_line":"multiple shared datastores the image can get cached in each datastore."},{"line_number":40,"context_line":"Additionally a disk of size equal to the flavor of the instance is also"},{"line_number":41,"context_line":"created in the cache. Instance are created as linked clones to this flavor"},{"line_number":42,"context_line":"sized disks."},{"line_number":43,"context_line":"This approach has the following problems"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_fd6475ba","line":41,"updated":"2014-06-11 13:00:00.000000000","message":"Instance -\u003e Instances","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":38,"context_line":"When using the VMware ESX hypervisor nova driver for such clusters with"},{"line_number":39,"context_line":"multiple shared datastores the image can get cached in each datastore."},{"line_number":40,"context_line":"Additionally a disk of size equal to the flavor of the instance is also"},{"line_number":41,"context_line":"created in the cache. Instance are created as linked clones to this flavor"},{"line_number":42,"context_line":"sized disks."},{"line_number":43,"context_line":"This approach has the following problems"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_e7d3e4d2","line":41,"in_reply_to":"1ae5cdf2_fd6475ba","updated":"2014-06-12 09:09:31.000000000","message":"Will update this in the next patch","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e31b8aa331cc44231eaf299d5595f78b80463833","unresolved":false,"context_lines":[{"line_number":50,"context_line":"This approach leads to a reduction of the actual storage space available for"},{"line_number":51,"context_line":"creating instances."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"In the existing design, when an instance creation is done, the following occur"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Step 1. The driver determines the best datastore to place the instance. It"},{"line_number":56,"context_line":"  does this by selecting the datastore with maximum free space."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_9d69b18e","line":53,"updated":"2014-06-11 13:00:00.000000000","message":"occur -\u003e occurs","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":50,"context_line":"This approach leads to a reduction of the actual storage space available for"},{"line_number":51,"context_line":"creating instances."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"In the existing design, when an instance creation is done, the following occur"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Step 1. The driver determines the best datastore to place the instance. It"},{"line_number":56,"context_line":"  does this by selecting the datastore with maximum free space."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_07dc50e3","line":53,"in_reply_to":"1ae5cdf2_9d69b18e","updated":"2014-06-12 09:09:31.000000000","message":"Will update this in the next patch","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"a05efb8140bd4efbf30968cb723858107532f9c2","unresolved":false,"context_lines":[{"line_number":74,"context_line":"* 1. The drivers datastore selection can be modified to select the datastore"},{"line_number":75,"context_line":"  that has the image already cached and if has enough space for the new"},{"line_number":76,"context_line":"  instance (as per Step 4 above)"},{"line_number":77,"context_line":"* 2. If the datastore where the image is cached does not have enough space for"},{"line_number":78,"context_line":"  the new instance, then create a linked clone in a different datastore but"},{"line_number":79,"context_line":"  still using the cached image as the base disk"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_232eae8c","line":77,"updated":"2014-06-11 23:02:56.000000000","message":"I like the idea of favoring placement based on whether an image is already cached. In terms of the actual mechanics, that probably means we have to do DatastoreBrowser searches across all datastores? Are we going to cache the image-\u003eds mapping?\n\nI feel iffy about the fallback case using the base disk from another datastore. In linked clone mode, this has space savings, but now each new VM using this image is dependent on two datastores. It is also hard to reason about whether a datastore is able to sustain the IO now that we are able to create many more VMs in some other datastores that can read the base image disk in the said datastore.\n\nFurthermore, this approach incurs an ongoing cost for every subsequent spawn using the same image in non-linked clone mode, since (I assume) we will be making cross-datastore clone of the base disk into the vm directory residing in some other datastore.\n\nHow about the alternative of going with 1. as stated, but upon realizing that the datastore we want to place the VM can no longer hold another, pick the next one and fully cache another copy of the image? Sure it uses more cache space, but much of the driver\u0027s behavior will not stay the same, as will be that of the VM it spawns.\n\nWe can devise some kind of simulations to convince us of this, but intuitively with this approach (coupled with the fact we pick ds canidadates based on free capacity as well), it is highly unlikely that we will degenerate into a case where all datastores end up hold all (or even a large percentage of) images used.\n\nThoughts?","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"597e35283371253ca3a2ac69ea4b50b88e8e9960","unresolved":false,"context_lines":[{"line_number":74,"context_line":"* 1. The drivers datastore selection can be modified to select the datastore"},{"line_number":75,"context_line":"  that has the image already cached and if has enough space for the new"},{"line_number":76,"context_line":"  instance (as per Step 4 above)"},{"line_number":77,"context_line":"* 2. If the datastore where the image is cached does not have enough space for"},{"line_number":78,"context_line":"  the new instance, then create a linked clone in a different datastore but"},{"line_number":79,"context_line":"  still using the cached image as the base disk"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_a3371e4c","line":77,"in_reply_to":"1ae5cdf2_232eae8c","updated":"2014-06-11 23:18:50.000000000","message":"oops typos galore: \n\"the said datastore\" -\u003e \"said datastore\"\n\"behavior will not stay\" -\u003e \"behavior will stay\"\n\"canidadates\" -\u003e \"candidates\"\n\nAnother way to look at the last paragraph is that, assuming fairly similar datastore capacities as the starting point, the fact that an image has picked one as its \u0027home\u0027 datatsore (and using it) means that it is more unlikely for the next image to do the same, and so on...","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":74,"context_line":"* 1. The drivers datastore selection can be modified to select the datastore"},{"line_number":75,"context_line":"  that has the image already cached and if has enough space for the new"},{"line_number":76,"context_line":"  instance (as per Step 4 above)"},{"line_number":77,"context_line":"* 2. If the datastore where the image is cached does not have enough space for"},{"line_number":78,"context_line":"  the new instance, then create a linked clone in a different datastore but"},{"line_number":79,"context_line":"  still using the cached image as the base disk"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_87d14059","line":77,"in_reply_to":"1ae5cdf2_a3371e4c","updated":"2014-06-12 09:09:31.000000000","message":"The actual performance degradation due to having the VM referencing the base disk residing in another datastore needs to be checked in a scale setup. From our initial tests we have not seen a degradation. But yes this needs to be tested further.\n\nCan we make this configurable instead? The default would be to use your suggestion of copying over the file to the datastore we intend to place the VM and the drivers behavior stays the same. I can add detailed documentation on the impact of using this flag so that the admins are aware of the impact of this option.\n\nIf the user chooses to use base disks referenced across datastore, the config can be turned on and it will provide the new mechanism (point #2).\n\nThe idea of \u0027home\u0027 datastore should be addressed by #1.\n\nRegarding implementation of how we will check if the cache of other datastores already has the images, I\u0027m thinking of using datastore searches to find out if the image exists in the cache. Yes, this would be additional call. But when compared to the image download time this is a small price.\nWe can cache as you suggested, but this has work along with the image cache lifecycle management implementation. The initial implementation we plan to use the datastore searches.","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"a05efb8140bd4efbf30968cb723858107532f9c2","unresolved":false,"context_lines":[{"line_number":82,"context_line":"------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Another alternative is to schedule instances to the clusters that have the"},{"line_number":85,"context_line":"image already cached. This will work fine until the cluster has capacity."},{"line_number":86,"context_line":"To use this alternative, the following changes will be required"},{"line_number":87,"context_line":"(1) the VMware nova driver will have to publish the"},{"line_number":88,"context_line":"list of images in its cache."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_7f8a10c0","line":85,"updated":"2014-06-11 23:02:56.000000000","message":"\u0027has capacity\u0027/\ndo you mean \u0027lack the required capacity\u0027?","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":82,"context_line":"------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Another alternative is to schedule instances to the clusters that have the"},{"line_number":85,"context_line":"image already cached. This will work fine until the cluster has capacity."},{"line_number":86,"context_line":"To use this alternative, the following changes will be required"},{"line_number":87,"context_line":"(1) the VMware nova driver will have to publish the"},{"line_number":88,"context_line":"list of images in its cache."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_c7da684a","line":85,"in_reply_to":"1ae5cdf2_7f8a10c0","updated":"2014-06-12 09:09:31.000000000","message":"Meant \u0027has capacity\u0027. The reason is - if the cluster on which the image is cached has enough space to host the new instance, then scheduler selecting such a cluster first is better.\n\nWhen the cluster that has the image cached is run out of capacity, then the scheduler will pick another cluster and then cache for that cluster needs to be updated.","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"e31b8aa331cc44231eaf299d5595f78b80463833","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Other deployer impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Developer impact"},{"line_number":135,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_fda715bb","line":132,"updated":"2014-06-11 13:00:00.000000000","message":"If for some reason some datastores need to be off line then it would be very difficult to figure out which vm(s) will be affected. Right?","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"2d17704d3c53f4614858d41232b63fd6d832b422","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Other deployer impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Developer impact"},{"line_number":135,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_a70abc87","line":132,"in_reply_to":"1ae5cdf2_fda715bb","updated":"2014-06-12 09:09:31.000000000","message":"Yes. It will not be obvious to the user. \nAs per Vui\u0027s suggestion of copying the disk to the datastore \nwhere the VM is provisioned this problem will go away.\n\nHowever as a configurable option, if referencing across datastore is used then I can add in the documentation of the config option regarding this concern of identifying the VMs base disks. Also, there are scripts that are available that can list the instances associated with a particular base disk.","commit_id":"db22b9fce7cb859c0cf9d4c6146f54306e694f57"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"021c734066a6cbb99461555f44e018c15b3b647e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"the recommended configuration. This configuration enable the live migration"},{"line_number":36,"context_line":"of VMs across all hosts of the cluster."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"When using the VMware ESX hypervisor nova driver for such clusters with"},{"line_number":39,"context_line":"multiple shared datastores the image can get cached in each datastore."},{"line_number":40,"context_line":"Additionally a disk of size equal to the flavor of the instance is also"},{"line_number":41,"context_line":"created in the cache. Instances are created as linked clones to this flavor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_d910fb51","line":38,"updated":"2014-06-24 14:44:03.000000000","message":"The ESXi virt driver in Nova is being deprecated this cycle. Are you sure you don\u0027t mean the vCenter driver in Nova?","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4d4f8b94108d9ab92fd73669e7a010fc6d13c6f3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"the recommended configuration. This configuration enable the live migration"},{"line_number":36,"context_line":"of VMs across all hosts of the cluster."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"When using the VMware ESX hypervisor nova driver for such clusters with"},{"line_number":39,"context_line":"multiple shared datastores the image can get cached in each datastore."},{"line_number":40,"context_line":"Additionally a disk of size equal to the flavor of the instance is also"},{"line_number":41,"context_line":"created in the cache. Instances are created as linked clones to this flavor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_c33538a9","line":38,"in_reply_to":"1ae5cdf2_07f11e96","updated":"2014-06-25 18:24:04.000000000","message":"OK, just change the wording on that to be clear it\u0027s the vCenter driver, not the deprecated ESX one...","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"282574035e53f1541b6f1fc10a0e19a31b696e54","unresolved":false,"context_lines":[{"line_number":35,"context_line":"the recommended configuration. This configuration enable the live migration"},{"line_number":36,"context_line":"of VMs across all hosts of the cluster."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"When using the VMware ESX hypervisor nova driver for such clusters with"},{"line_number":39,"context_line":"multiple shared datastores the image can get cached in each datastore."},{"line_number":40,"context_line":"Additionally a disk of size equal to the flavor of the instance is also"},{"line_number":41,"context_line":"created in the cache. Instances are created as linked clones to this flavor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_b499fb6e","line":38,"in_reply_to":"1ae5cdf2_c33538a9","updated":"2014-06-27 10:36:43.000000000","message":"Done","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"1fe817de186b0cb8bd5a6d7941e4adbf2f802f82","unresolved":false,"context_lines":[{"line_number":35,"context_line":"the recommended configuration. This configuration enable the live migration"},{"line_number":36,"context_line":"of VMs across all hosts of the cluster."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"When using the VMware ESX hypervisor nova driver for such clusters with"},{"line_number":39,"context_line":"multiple shared datastores the image can get cached in each datastore."},{"line_number":40,"context_line":"Additionally a disk of size equal to the flavor of the instance is also"},{"line_number":41,"context_line":"created in the cache. Instances are created as linked clones to this flavor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_07f11e96","line":38,"in_reply_to":"1ae5cdf2_d910fb51","updated":"2014-06-24 15:32:58.000000000","message":"That correct. It is the VMware vCenter driver that I am referring to.","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c7ce511f07ea2bd917885a629c7d70add818395d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Another alternative is to schedule instances to the clusters that have the"},{"line_number":86,"context_line":"image already cached. This will work fine until the cluster has capacity."},{"line_number":87,"context_line":"To use this alternative, the following changes will be required"},{"line_number":88,"context_line":"(1) the VMware nova driver will have to publish the"},{"line_number":89,"context_line":"list of images in its cache."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_15b83174","line":86,"updated":"2014-06-25 19:01:09.000000000","message":"s/has/is at/ ?","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"282574035e53f1541b6f1fc10a0e19a31b696e54","unresolved":false,"context_lines":[{"line_number":83,"context_line":"------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Another alternative is to schedule instances to the clusters that have the"},{"line_number":86,"context_line":"image already cached. This will work fine until the cluster has capacity."},{"line_number":87,"context_line":"To use this alternative, the following changes will be required"},{"line_number":88,"context_line":"(1) the VMware nova driver will have to publish the"},{"line_number":89,"context_line":"list of images in its cache."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_d4a12796","line":86,"in_reply_to":"1ae5cdf2_111caa65","updated":"2014-06-27 10:36:43.000000000","message":"Done","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"24aea19d6bd1c8f0aa068b57669cf6a7daa8b9b1","unresolved":false,"context_lines":[{"line_number":83,"context_line":"------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Another alternative is to schedule instances to the clusters that have the"},{"line_number":86,"context_line":"image already cached. This will work fine until the cluster has capacity."},{"line_number":87,"context_line":"To use this alternative, the following changes will be required"},{"line_number":88,"context_line":"(1) the VMware nova driver will have to publish the"},{"line_number":89,"context_line":"list of images in its cache."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_111caa65","line":86,"in_reply_to":"1ae5cdf2_15b83174","updated":"2014-06-26 10:07:36.000000000","message":"Will make the change in the next patch","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c7ce511f07ea2bd917885a629c7d70add818395d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"(2) A new scheduler filter will then select the nova-compute (cluster) that"},{"line_number":91,"context_line":"already has the image in its cache. If there are no clusters that have the"},{"line_number":92,"context_line":"image then it would return all clusters (existing behaviour). This will be"},{"line_number":93,"context_line":"addressed a separate blueprint (will be submitting this)."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Data model impact"},{"line_number":96,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_f542e566","line":93,"updated":"2014-06-25 19:01:09.000000000","message":"s/a/in a/ ?\n\nAre you saying this whole alternative implementation will also be implemented and submitted? Meaning, you want both things?","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"282574035e53f1541b6f1fc10a0e19a31b696e54","unresolved":false,"context_lines":[{"line_number":90,"context_line":"(2) A new scheduler filter will then select the nova-compute (cluster) that"},{"line_number":91,"context_line":"already has the image in its cache. If there are no clusters that have the"},{"line_number":92,"context_line":"image then it would return all clusters (existing behaviour). This will be"},{"line_number":93,"context_line":"addressed a separate blueprint (will be submitting this)."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Data model impact"},{"line_number":96,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_34a5eb9e","line":93,"in_reply_to":"1ae5cdf2_f542e566","updated":"2014-06-27 10:36:43.000000000","message":"Done","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"24aea19d6bd1c8f0aa068b57669cf6a7daa8b9b1","unresolved":false,"context_lines":[{"line_number":90,"context_line":"(2) A new scheduler filter will then select the nova-compute (cluster) that"},{"line_number":91,"context_line":"already has the image in its cache. If there are no clusters that have the"},{"line_number":92,"context_line":"image then it would return all clusters (existing behaviour). This will be"},{"line_number":93,"context_line":"addressed a separate blueprint (will be submitting this)."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Data model impact"},{"line_number":96,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_b115b63e","line":93,"in_reply_to":"1ae5cdf2_f542e566","updated":"2014-06-26 10:07:36.000000000","message":"Yes. The alternative will complement this blueprint. \nWithout the filter, only if the scheduler picks happens to select a compute that has the cached image, the user will benefit from the optimization provided by this blueprint.","commit_id":"09f1b324c3da6854f16c4a73be1236ba19e29082"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4ae4c47826e4292b3186c5819cabb1fb5eefa9c9","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  When this option is not set, then the following occur:"},{"line_number":101,"context_line":"  a. The lock on the image is aquired. The lock is the same as the one"},{"line_number":102,"context_line":"  aquired by the periodic task during image cache cleanup."},{"line_number":103,"context_line":"  b. The image is copied from the datastore to the cache of the datastore"},{"line_number":104,"context_line":"  that is selected for the instance."},{"line_number":105,"context_line":"  c. The lock is released"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_fb5599c6","line":102,"updated":"2014-07-02 11:38:01.000000000","message":"I think you need the lock on the remote hypervisor, that already has the image, and on the local hypervisor that wants to copy the image in.\n\nOtherwise you might get too local copies at once, or the remote image might get deleted while you are trying to copy it.","commit_id":"57ff913e23f5c591ec92eae29fae18e36f30ec3e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8c68a650f5cfdec40c928d7e0ed7a51e063a32cb","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  When this option is not set, then the following occur:"},{"line_number":101,"context_line":"  a. The lock on the image is aquired. The lock is the same as the one"},{"line_number":102,"context_line":"  aquired by the periodic task during image cache cleanup."},{"line_number":103,"context_line":"  b. The image is copied from the datastore to the cache of the datastore"},{"line_number":104,"context_line":"  that is selected for the instance."},{"line_number":105,"context_line":"  c. The lock is released"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_a31b28c9","line":102,"in_reply_to":"baada198_bb02413c","updated":"2014-07-16 11:49:07.000000000","message":"Can you please make that clearer in the description?","commit_id":"57ff913e23f5c591ec92eae29fae18e36f30ec3e"},{"author":{"_account_id":7239,"name":"Kiran Kumar Vaddi","email":"kiran-kumar.vaddi@hp.com","username":"kirankv"},"change_message_id":"bad9eab4d35bd83792269d98c12e8113e24c45a5","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  When this option is not set, then the following occur:"},{"line_number":101,"context_line":"  a. The lock on the image is aquired. The lock is the same as the one"},{"line_number":102,"context_line":"  aquired by the periodic task during image cache cleanup."},{"line_number":103,"context_line":"  b. The image is copied from the datastore to the cache of the datastore"},{"line_number":104,"context_line":"  that is selected for the instance."},{"line_number":105,"context_line":"  c. The lock is released"}],"source_content_type":"text/x-rst","patch_set":8,"id":"baada198_bb02413c","line":102,"in_reply_to":"baada198_fb5599c6","updated":"2014-07-02 11:54:14.000000000","message":"The nova-compute service manages the cluster and does not manage individual hosts in the cluster. Therefore we are not talking about multiple computes.\nThere can be multiple datastores in a single cluster. Its the image cache cleanup code of nova-compute that can delete the image while a copy is initiated. Therefore the lock will be used so that the two separate threads do not run at the same time.\nAlso if there are multiple spawn instance happening, the cache is re-checked after the lock is acquired so that the copy is not initiated again.\n\nNote: There is a separate blueprint that discusses copy across computes and the problem you mentioned exists there and needs to be solved.\nhttps://review.openstack.org/84662","commit_id":"57ff913e23f5c591ec92eae29fae18e36f30ec3e"}]}
