
On Thu, Nov 4, 2021 at 6:32 AM <twseagulls.kmj@gmail.com> wrote:
Hi
This is the first time I have posted a question on here.
Welcome :-).
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?
It should be rather simple to patch the deploy code not fail on missing vendor_id, it's used only for reporting. But it might not be required, for now. You can try instead something like: hosted-engine --deploy --otopi-environment=OVEHOSTED_STORAGE/LunID=str:19eadf533875920f-46da4fac00000000 I didn't try this, not sure it would be enough. If it's not, you might check the generated answer file from an old successful run and copy and edit some more relevant lines (those with OVEHOSTED_STORAGE), put in an answer file, and pass it with --config-append=answerfile.
As I said, this has worked previously so I can only assume something has been added that now checks this vendor_id
No, the code checking vendor_id didn't change for at least 3 years. Do you still have setup logs of successful deployments with this storage (or as similar as possible)? Can you check them? Search for otopi_fc_devices? It sounds either as some change on the storage side (does not report vendor id anymore) or on the engine/sdk/ansible-module/whatever (not passing it anymore). Nikolai, did you test FC HE deploy? Can you check logs? Thanks and best regards, -- Didi