blivet
blivet copied to clipboard
Blivet aborted due to unable to handle Veritas DMP devices.
Hello,
The VERITAS Storage Foundation creates its raw and block devices for the nodes in the directories /dev/vx/rdmp and /dev/vx/dmp, however it does not create any objects VxDMP* in the /dev directory.
$ cat proc/partitions | grep Vx
201 16 1000000 VxDMP2
201 17 500000 VxDMP2p1
201 18 500000 VxDMP2p2
...
# pwd
/dev/vx/dmp
# ls
... sda sda1 sda2 ...
# pwd
/dev
# find /dev -name VxDMP*
==>NULL
Due to this design, the following call trace happend when getting devices information:
Traceback (most recent call last):
File "antest.py", line 104, in <module>
_ansiballz_main()
File "antest.py", line 96, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "antest.py", line 42, in invoke_module
runpy.run_module(mod_name='ansible.modules.blivet', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python3.6/runpy.py", line 205, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/ansible_blivet_payload_4mba_3tn/ansible_blivet_payload.zip/ansible/modules/blivet.py", line 1717, in <module>
File "/tmp/ansible_blivet_payload_4mba_3tn/ansible_blivet_payload.zip/ansible/modules/blivet.py", line 1713, in main
File "/tmp/ansible_blivet_payload_4mba_3tn/ansible_blivet_payload.zip/ansible/modules/blivet.py", line 1625, in run_module
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/blivet.py", line 140, in reset
self.devicetree.populate(cleanup_only=cleanup_only)
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 420, in populate
self._populate()
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 465, in _populate
self.handle_device(dev)
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 271, in handle_device
device = helper_class(self, info).run()
File "/usr/lib/python3.6/site-packages/blivet/populator/helpers/partition.py", line 106, in run
exists=True, parents=[disk])
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/devices/partition.py", line 194, in __init__
self._parted_partition = self.disk.format.parted_disk.getPartitionByPath(self.path)
AttributeError: 'NoneType' object has no attribute 'getPartitionByPath'
In fact the above issue could be easily reproduced if I intentionally renamed my /dev/sdb to /dev/sdb-bak on a system without Veritas DMP installed, so that we could simulate the device /dev/sdb could not be seen when I was trying to run the ansible script to detect the devices.
For more details about the VxDMP, refer to:
- https://www.veritas.com/support/en_US/article.100021449
Best regards, Flos