iscsi multipath dm-N device only used on first volume attachment
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned | ||
OpenStack Nova Compute Charm |
Invalid
|
High
|
Unassigned | ||
os-brick |
Invalid
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Expired
|
Undecided
|
Unassigned |
Bug Description
With nova-compute from cloud:xenial-queens and use-multipath=true iscsi multipath is configured and the dm-N devices used on the first attachment but subsequent attachments only use a single path.
The back-end storage is a Purestorage array.
The multipath.conf is attached
The issue is easily reproduced as shown below:
jog@pnjostkinfr
+------
| Field | Value |
+------
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2019-02-
| description | None |
| encrypted | False |
| id | e286161b-
| migration_status | None |
| multiattach | False |
| name | pure2 |
| properties | |
| replication_status | None |
| size | 10 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| type | pure |
| updated_at | None |
| user_id | c1fa4ae9a0b446f
+------
jog@pnjostkinfr
+------
| Field | Value |
+------
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2019-02-
| description | None |
| encrypted | False |
| id | e286161b-
| migration_status | None |
| multiattach | False |
| name | pure2 |
| os-vol-
| os-vol-
| os-vol-
| os-vol-
| properties | |
| replication_status | None |
| size | 10 |
| snapshot_id | None |
| source_volid | None |
| status | available |
| type | pure |
| updated_at | 2019-02-
| user_id | c1fa4ae9a0b446f
+------
Add the volume to an instance:
jog@pnjostkinfr
jog@pnjostkinfr
+------
| Field | Value |
+------
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-STS:vm_state | active |
| OS-SRV-
| OS-SRV-
| accessIPv4 | |
| accessIPv6 | |
| addresses | test-net=
| config_drive | |
| created | 2019-02-
| flavor | test (986ce042-
| hostId | 50e26a44ba01548
| id | dfe2704c-
| image | 0db099d0-
| key_name | None |
| name | T1 |
| progress | 0 |
| project_id | 9be499fd1eee48d
| properties | |
| security_groups | name='default' |
| status | ACTIVE |
| updated | 2019-02-
| user_id | c1fa4ae9a0b446f
| volumes_attached | id='e286161b-
+------
Check the device name used in the libvirt domain xml:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
<source dev='/dev/dm-0'/> ## NOTE multipath device
<
<target dev='vdb' bus='virtio'/>
<
<alias name='virtio-
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
Show the dm device and it's paths:
ubuntu@
Name: 3624a9370150c5d
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 2
Event number: 0
Major, minor: 252, 0
Number of targets: 1
UUID: mpath-3624a9370
ubuntu@
3624a9370150c5d
├─ (8:64)
├─ (8:48)
├─ (8:32)
└─ (8:16)
ubuntu@
3624a9370150c5d
size=10G features='0' hwhandler='1 alua' wp=rw
`-+- policy=
|- 19:0:0:1 sdb 8:16 active ready running
|- 20:0:0:1 sdc 8:32 active ready running
|- 21:0:0:1 sdd 8:48 active ready running
`- 22:0:0:1 sde 8:64 active ready running
Remove the volume:
jog@pnjostkinfr
jog@pnjostkinfr
+------
| Field | Value |
+------
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-
| OS-EXT-STS:vm_state | active |
| OS-SRV-
| OS-SRV-
| accessIPv4 | |
| accessIPv6 | |
| addresses | test-net=
| config_drive | |
| created | 2019-02-
| flavor | test (986ce042-
| hostId | 50e26a44ba01548
| id | dfe2704c-
| image | 0db099d0-
| key_name | None |
| name | T1 |
| progress | 0 |
| project_id | 9be499fd1eee48d
| properties | |
| security_groups | name='default' |
| status | ACTIVE |
| updated | 2019-02-
| user_id | c1fa4ae9a0b446f
| volumes_attached | |
+------
Add the volume back:
Check the device name used in the libvirt domain xml:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
<source dev='/dev/sdb'/> ## NOTE single path device
<
<target dev='vdb' bus='virtio'/>
<
<alias name='virtio-
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
Nova log:
2019-02-13 23:19:09.472 45238 INFO nova.compute.
2019-02-13 23:19:10.896 45238 INFO os_brick.
2019-02-13 23:19:10.897 45238 INFO os_brick.
2019-02-13 23:19:10.899 45238 INFO os_brick.
2019-02-13 23:19:10.900 45238 INFO os_brick.
2019-02-13 23:19:11.409 45238 WARNING os_brick.
2019-02-13 23:19:11.446 45238 WARNING os_brick.
2019-02-13 23:19:11.488 45238 WARNING os_brick.
2019-02-13 23:19:11.526 45238 WARNING os_brick.
2019-02-13 23:19:16.483 45238 INFO nova.compute.
Multipath device is still configured but not used by nova:
ubuntu@
192.168.
192.168.
192.168.
192.168.
ubuntu@
Name: 3624a9370150c5d
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 252, 0
Number of targets: 1
UUID: mpath-3624a9370
ubuntu@
3624a9370150c5d
├─ (8:64)
├─ (8:48)
├─ (8:32)
└─ (8:16)
ubuntu@
3624a9370150c5d
size=10G features='0' hwhandler='1 alua' wp=rw
`-+- policy=
|- 23:0:0:1 sdb 8:16 active ready running
|- 24:0:0:1 sdc 8:32 active ready running
|- 25:0:0:1 sdd 8:48 active ready running
`- 26:0:0:1 sde 8:64 active ready running
tags: | added: field-high |
Changed in charm-nova-compute: | |
status: | New → Invalid |
Changed in charm-nova-compute: | |
status: | New → Triaged |
importance: | Undecided → High |
milestone: | none → 19.04 |
Changed in os-brick: | |
status: | New → In Progress |
Changed in charm-nova-compute: | |
assignee: | nobody → Sahid Orentino (sahid-ferdjaoui) |
Changed in charm-nova-compute: | |
milestone: | 19.04 → 19.07 |
Changed in charm-nova-compute: | |
milestone: | 19.07 → 19.10 |
Changed in charm-nova-compute: | |
milestone: | 19.10 → 20.01 |
Changed in charm-nova-compute: | |
milestone: | 20.01 → 20.05 |
Changed in nova: | |
assignee: | Sahid Orentino (sahid-ferdjaoui) → nobody |
Changed in charm-nova-compute: | |
assignee: | Sahid Orentino (sahid-ferdjaoui) → Aurelien Lourot (aurelien-lourot) |
Changed in os-brick: | |
assignee: | Sahid Orentino (sahid-ferdjaoui) → Aurelien Lourot (aurelien-lourot) |
Changed in charm-nova-compute: | |
milestone: | 20.05 → 20.08 |
Subscribed this bug to field-high. A dev environment is accessible at the customer site for approximately one week, which includes an attachment to the Purestorage array.