If user faces locking related problem when two nova-compute hosts sharing same disk area via nfs, try to download same image into cache concurrently - Then base_dir_name can be set to "_base_$my_ip" in nova.conf
Default value for base_dir_name is "_base" thus retaining existing behavior.
1. There are two nova-compute Hosts : HostA and HostB
2. NFS server : HostC exports "/shared_instances_path"
3. Both HostA and HostB mount HostC:/shared_instances_path at /shared_instances_path
4. Both HostA and HostB have "instances_path=/shared_instances_path" in their nova.conf
5. HostC:/shared_instances_path is empty to begin with
6. Two VMs are launched from the same image at the same time (Parallel VM creation)
7. Since there are no cached images in <instances_path>/_base folder - both nova-compute hosts try to download kernel and ramdisk images to the same location, same filename.
This seems like problem related to file locking.
Since these are two different compute hosts, @utils.synchronized is not useful.
Expected Response:
Parallel VM Creation as explained above should not fail.
Actual Response:
using same disk area from multiple nova-compute crashes instance images.
** Regression **
Minimal this is geared to small systems like ARM machines.
** Impact **
If user faces locking related problem when two nova-compute hosts sharing same disk area via nfs, try to download same image into cache concurrently - Then base_dir_name can be set to "_base_$my_ip" in nova.conf
Default value for base_dir_name is "_base" thus retaining existing behavior.
** Development Fix **
This issue has been address in the development trunk: https:/ /review. openstack. org/6262 and fixed in quantal.
** Stable Fix **
This issue has been address in the stable tree: https:/ /review. openstack. org/7269
** Test Case **
1. There are two nova-compute Hosts : HostA and HostB instances_ path" shared_ instances_ path at /shared_ instances_ path path=/shared_ instances_ path" in their nova.conf shared_ instances_ path is empty to begin with path>/_ base folder - both nova-compute hosts try to download kernel and ramdisk images to the same location, same filename.
2. NFS server : HostC exports "/shared_
3. Both HostA and HostB mount HostC:/
4. Both HostA and HostB have "instances_
5. HostC:/
6. Two VMs are launched from the same image at the same time (Parallel VM creation)
7. Since there are no cached images in <instances_
This seems like problem related to file locking.
Since these are two different compute hosts, @utils.synchronized is not useful.
Expected Response:
Parallel VM Creation as explained above should not fail.
Actual Response:
using same disk area from multiple nova-compute crashes instance images.
** Regression **
Minimal this is geared to small systems like ARM machines.