Hi @Mark Turner,
You were correct, I guess working into the late night can have this effect, what had happened is the mount for ZOAU had been renamed from 1.3.4.0 to 1.3.4 and I had not noticed nor thought to look since 2 days ago the same config was operational. Our tooling manages about 20 ZOAU versions and over a 12 Python releases so we can easily recreate issues, so sometimes things sneak by me.
I am still trying some other options, but I believe I have been able to recreate, when escalating with `zos_copy` it seems to hang at this point.
78512 1745530955.20625: become_success: (source=stdout, state=awaiting_escalation): 'BECOME-SUCCESS-lslwcoxhqthxxnqvvrzuiurxjrzazoaj'
Escalation succeeded
As far as the performance, there is no reason it should take that long, I will come back with my update about that after I try your `zos_copy` loop snippet.
Interestingly only a couple of days ago, I wrote a loop to copy shared dasd to minidisks and was curious how long this would take, note that these zvm's I am use are really not tuned at all, the are purposely configured to not have large virtual storage, 1 GPU, no zipp/zapp , etc. Each iteration of the loop is copying 3 data sets from shared DASD to a minidisk, so all in all, this task below catalogs the data sets first on each zvm, then copies them to the minidisk, so 24 catalogs and 24 copies in just over 4 minutes (during the copy operation, the destination data sets don't exist, so they are created and cataloged by zos_copy per the precedence rules outlined in the modules documentation, just wanted to point that out as well).
For that copy operation I described above here is what the task was:
tasks:
- name: Catalog data sets from shared volser to zvm.
zos_data_set:
name: "{{src_hlq}}.{{ item }}"
state: cataloged
volumes: "EDSDMP"
register: result
loop: "{{ data_set_names }}"
- name: Copy binaries from shared volser to private volser.
zos_copy:
src: "{{src_hlq}}.{{ item }}"
dest: "{{dest_hlq}}.{{ item }}"
remote_src: true
force: true
volume: 'ANSI01'
is_binary: true
register: result
loop: "{{ data_set_names }}"
- debug:
var: result
Here was the command:
(venv-2.18) time ansible-playbook -i zvm1.svl.ibm.com,zvm2.svl.ibm.com,zvm3.svl.ibm.com,zvm4.svl.ibm.com,zvm5.svl.ibm.com,zvm6.svl.ibm.com,zvm7.svl.ibm.com,zvm8.svl.ibm.com zvm_copy_data_sets.yml
Here was the result, a little over 4 minutes (real 4m27.494s):
PLAY RECAP ***************************************************************************************************************************************************************
zvm1.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm2.svl.ibm.com : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm3.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm4.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm5.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm6.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm7.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
zvm8.svl.ibm.com : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
real 4m27.494s
user 0m6.163s
sys 0m7.945s