Multiple instances can be booted from the same volume
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
Undecided
|
Rohit Karajgi |
Bug Description
Nova allows multiple instances to be booted from the same volume (Cinder environment)
1. Create a bootable volume, say 'vol1'
2. Try to boot two (or more) instances from 'vol1'
Expected result:
Only 1 instance should be created, and booted from the volume in Active state
The other instance should not get created, and the API should return 409 Conflict for their requests.
Actual result:
* Both the instances get booted and become Active.
* It's possible to login to the console of both the instance - In this case it's possible to write data to the file system of instance1 and not in instance2, which gives a Read Only File System error.
Commands snip:
-------------------
rohit@precise$ cinder list
+------
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+------
| 7408008f-
+------
rohit@precise$
rohit@precise$ nova list
+------
| ID | Name | Status | Networks |
+------
| 0deb9d79-
| b314bbc5-
+------
rohit@precise$ virsh list
Id Name State
-------
9 instance-0000000d running
10 instance-0000000e running
The libvirt.xml for both instances contain the same device path for the block device:
rohit@precise$ grep iscsi-iqn instance-
<source dev="/dev/
rohit@precise$ grep iscsi-iqn instance-
<source dev="/dev/
Changed in nova: | |
assignee: | nobody → Rohit Karajgi (rohitkarajgi) |
status: | New → In Progress |
Changed in nova: | |
status: | In Progress → Confirmed |
Changed in nova: | |
status: | Confirmed → In Progress |
Changed in cinder: | |
milestone: | none → grizzly-2 |
status: | Fix Committed → Fix Released |
Changed in cinder: | |
milestone: | grizzly-2 → 2013.1 |
It looks like we should be calling reserve volume when we parse the block_device_ mapping and failing if we attempt to boot twice.