Deploy Hosted Engine with PowerFlex (formerly ScaleIO) storage
by twseagulls.kmj@gmail.com
Hi
This is the first time I have posted a question on here.
I am attempting to deploy a Self Hosted Engine with RHV 4.4.8, RHEL 8.4 using a PowerFlex (ScaleIO) volume. I have done this several times in the past with oVirt 4.3.x and 4.4.? but for some reason on this occasion I am hitting a problem. I think I might know what it is but I don't know how to fix it. The deployment appears to go fine up until the point where the question is asked about which storage device I want the HE copied to, I select Fibre Channel but unfortunately this fails and does not find any suitable devices - I know that PowerFlex is not technically FC but the devices are recognised by multipathd and have always worked previously (I was instrumental in getting the udev rules changed in the PowerFlex 3.6 version to ensure the devices could be recognised by multipathd, whereas previously it had required a udev rules edit).
The device I am trying to use is this:
# multipath -v2 -l
1abc8aad74a6630f-c4c045df00000000 dm-2 ##,##
size=120G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
`- #:#:#:# scinia 252:0 active undef running
I can see in the log that the device is being partially discovered but it seems that a 'vendor_id' is wanted and this is something that udev does not report for a PowerFlex device.
2021-11-02 07:07:10,057+0000 INFO otopi.ovirt_hosted_engine_setup.ansible_utils ansible_utils._process_output:112 TASK [ovirt.ovirt.hosted_engine_setup : Get Fibre Channel LUNs]
2021-11-02 07:07:10,960+0000 INFO otopi.ovirt_hosted_engine_setup.ansible_utils ansible_utils._process_output:112 ok: [localhost]
2021-11-02 07:07:11,261+0000 DEBUG otopi.ovirt_hosted_engine_setup.ansible_utils ansible_utils._process_output:106 PLAY RECAP [localhost] : ok: 5 changed: 0 unreachable: 0 skipped: 0 failed: 0
2021-11-02 07:07:11,362+0000 DEBUG otopi.ovirt_hosted_engine_setup.ansible_utils ansible_utils.run:223 ansible-playbook rc: 0
2021-11-02 07:07:11,362+0000 DEBUG otopi.ovirt_hosted_engine_setup.ansible_utils ansible_utils.run:230 ansible-playbook stdout:
2021-11-02 07:07:11,362+0000 DEBUG otopi.ovirt_hosted_engine_setup.ansible_utils ansible_utils.run:233 ansible-playbook stderr:
2021-11-02 07:07:11,362+0000 DEBUG otopi.plugins.gr_he_ansiblesetup.core.storage_domain storage_domain._query_fc_lunid:379 {'otopi_fc_devices': {'changed': False, 'ovirt_host_storages': [{'href': '/ovirt-engine/api/hosts/80308d4a-ef91-40fd-8ee
e-60c8314b7e13/storage/19eadf533875920f-46da4fac00000000', 'id': '19eadf533875920f-46da4fac00000000', 'host': {'href': '/ovirt-engine/api/hosts/80308d4a-ef91-40fd-8eee-60c8314b7e13', 'id': '80308d4a-ef91-40fd-8eee-60c8314b7e13'}, 'logical_unit
s': [{'discard_max_size': 1048576, 'discard_zeroes_data': False, 'id': '19eadf533875920f-46da4fac00000000', 'lun_mapping': 0, 'paths': 1, 'size': 111669149696, 'status': 'free'}], 'type': 'fcp'}], 'invocation': {'module_args': {'host': 'pfxhci
14.hci.spoc', 'fcp': {'lun_id': -1}, 'fetch_nested': False, 'nested_attributes': [], 'follows': [], 'iscsi': None}}, '_ansible_no_log': False}, 'ansible-playbook_rc': 0}
2021-11-02 07:07:11,362+0000 DEBUG otopi.plugins.gr_he_ansiblesetup.core.storage_domain storage_domain._select_lun:398 [{'href': '/ovirt-engine/api/hosts/80308d4a-ef91-40fd-8eee-60c8314b7e13/storage/19eadf533875920f-46da4fac00000000', 'id': '1
9eadf533875920f-46da4fac00000000', 'host': {'href': '/ovirt-engine/api/hosts/80308d4a-ef91-40fd-8eee-60c8314b7e13', 'id': '80308d4a-ef91-40fd-8eee-60c8314b7e13'}, 'logical_units': [{'discard_max_size': 1048576, 'discard_zeroes_data': False, 'i
d': '19eadf533875920f-46da4fac00000000', 'lun_mapping': 0, 'paths': 1, 'size': 111669149696, 'status': 'free'}], 'type': 'fcp'}]
2021-11-02 07:07:11,362+0000 DEBUG otopi.plugins.gr_he_ansiblesetup.core.storage_domain storage_domain._select_lun:407 [{'href': '/ovirt-engine/api/hosts/80308d4a-ef91-40fd-8eee-60c8314b7e13/storage/19eadf533875920f-46da4fac00000000', 'id': '1
9eadf533875920f-46da4fac00000000', 'host': {'href': '/ovirt-engine/api/hosts/80308d4a-ef91-40fd-8eee-60c8314b7e13', 'id': '80308d4a-ef91-40fd-8eee-60c8314b7e13'}, 'logical_units': [{'discard_max_size': 1048576, 'discard_zeroes_data': False, 'i
d': '19eadf533875920f-46da4fac00000000', 'lun_mapping': 0, 'paths': 1, 'size': 111669149696, 'status': 'free'}], 'type': 'fcp'}]
2021-11-02 07:07:11,362+0000 DEBUG otopi.context context._executeMethod:145 method exception
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/otopi/context.py", line 132, in _executeMethod
method['method']()
File "/usr/share/ovirt-hosted-engine-setup/scripts/../plugins/gr-he-ansiblesetup/core/storage_domain.py", line 738, in _closeup
lun = self._query_fc_lunid()
File "/usr/share/ovirt-hosted-engine-setup/scripts/../plugins/gr-he-ansiblesetup/core/storage_domain.py", line 395, in _query_fc_lunid
return self._select_lun(available_luns)
File "/usr/share/ovirt-hosted-engine-setup/scripts/../plugins/gr-he-ansiblesetup/core/storage_domain.py", line 418, in _select_lun
'vendorID': entry['logical_units'][0]['vendor_id'],
KeyError: 'vendor_id'
2021-11-02 07:07:11,364+0000 ERROR otopi.context context._executeMethod:154 Failed to execute stage 'Closing up': 'vendor_id'
2021-11-02 07:07:11,364+0000 DEBUG otopi.context context.dumpEnvironment:765 ENVIRONMENT DUMP - BEGIN
2021-11-02 07:07:11,364+0000 DEBUG otopi.context context.dumpEnvironment:775 ENV BASE/error=bool:'True'
2021-11-02 07:07:11,365+0000 DEBUG otopi.context context.dumpEnvironment:775 ENV BASE/exceptionInfo=list:'[(<class 'KeyError'>, KeyError('vendor_id',), <traceback object at 0x7ff0f4e6da88>)]'
2021-11-02 07:07:11,365+0000 DEBUG otopi.context context.dumpEnvironment:775 ENV QUESTION/1/OVEHOSTED_STORAGE_DOMAIN_TYPE=str:'fc'
Is there any way I can edit something to prevent this vendor_id being required?
As I said, this has worked previously so I can only assume something has been added that now checks this vendor_id
Many thanks in advance